solc-0.8.36-fakeopcode 0x4e90495f66fb04a5fba401967abd607e2ea0ab46 via-ir-low-runs

10017 bytes

60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714611b7a57806302c37ddc14611b5d57806306fdde0314611ac9578063081812fc14611aab578063095ea7b3146119e2578063127a5298146119b7578063166c4b05146119875780631785f53c1461195a57806318160ddd1461193d57806323b872dd1461186857806324d7806c14611845578063278d9c411461179a57806328db38b4146117745780632f745c59146117565780633f4ba83a146116b957806342842e0e1461167b57806342966c68146114a45780634f6ccce71461146c57806355f804b3146113035780635c975abb146112e05780636352211e146112b057806367e971ce14611270578063704802751461124357806370a08231146112185780638129fc1c146111815780638456cb591461111b5780638bad0c0a146111005780638d23209414610a9657806395d89b41146109c95780639cd3cad614610930578063a140ae23146108d5578063a22cb46514610830578063b88d4fde146106f9578063c4d66de814610666578063c87b56dd14610391578063d890c8e21461032e578063e985e9c5146102de5763f980f3dc146101bb575f80fd5b346102da5760403660031901126102da576004356001600160401b0381116102da57366023820112156102da578060040135906101f782611c57565b916102056040519384611c34565b8083526024602084019160051b830101913683116102da57602401905b8282106102ca5783610232611be4565b906102436101065460ff1615611dc4565b61025461024f33612135565b611e05565b5f5b81518110156102ad576102698183611e9d565b519061013c54916001830180931161029957846102929161028c84600196611e90565b9061217c565b5001610256565b634e487b7160e01b5f52601160045260245ffd5b6102bb825161013c54611e90565b61013c55602060405160018152f35b8135815260209182019101610222565b5f80fd5b346102da5760403660031901126102da5760206103206102fc611bce565b610304611be4565b6001600160a01b039091165f9081526069845260409020611ef0565b5460ff166040519015158152f35b346102da5760603660031901126102da576044356004356001600160a01b03821682036102da576020916103879161036c6101065460ff1615611dc4565b61037e6103793383611ec5565b611e47565b6024359061217c565b6040519015158152f35b346102da5760203660031901126102da57600435805f5261013d6020526103c46103be60405f205461239b565b9161239b565b906040515f8161013b54916103d883611d69565b808352926001811690811561064757506001146105fa575b6103fc92500382611c34565b60409081519361040c8386611c34565b60018552602f60f81b6020860152825193610428602086611c34565b5f85526104596104516104496104418651855190611e90565b895190611e90565b845190611e90565b865190611e90565b9361046385611cdc565b9461047082519687611c34565b80865261047f601f1991611cdc565b013660208701375f965f5b85518110156104c957806104a06001928861238a565b516001600160f81b031916996104c26104b88261236e565b9b5f1a918a61238a565b530161048a565b5091935091945f5b845181101561051057806104e76001928761238a565b516001600160f81b031916986105096104ff8261236e565b9a5f1a918961238a565b53016104d1565b5091949092505f5b8351811015610557578061052e6001928661238a565b516001600160f81b031916976105506105468261236e565b995f1a918861238a565b5301610518565b509150925f5b825181101561059c57806105736001928561238a565b516001600160f81b0319169661059561058b8261236e565b985f1a918761238a565b530161055d565b509290505f5b81518110156105e157806105b86001928461238a565b516001600160f81b031916956105da6105d08261236e565b975f1a918661238a565b53016105a2565b8351602080825281906105f690820186611baa565b0390f35b5061013b5f90815290915f5160206126c15f395f51905f525b81831061062b5750509060206103fc928201016103f0565b6020919350806001915483858801015201910190918392610613565b602092506103fc94915060ff191682840152151560051b8201016103f0565b346102da5760203660031901126102da5761067f611bce565b5f54906101018260081c60ff1692831593846106f0575b80156106e5575b6106a690611fb7565b61ffff1916175f556106b781612135565b156106d6575b5061ff005f54911560081b169061ff001916175f555f80f35b6106df906122d3565b816106bd565b5060ff81161561069d565b50303b15610696565b346102da5760803660031901126102da57610712611bce565b61071a611be4565b6044356064356001600160401b0381116102da57366023820112156102da5761074d903690602481600401359101611cf7565b916107676101065460ff161561076281611dc4565b611dc4565b610771823361226c565b156102da5761077f82611f73565b6001600160a01b038086169591168590036102da576001600160a01b0382169485156102da576108299584916107b483612645565b60601b60601c90815f5260686020526107cf60405f20612678565b60601b60601c90815f5260686020526107ea60405f2061268f565b825f5260666020526107ff8560405f206120a7565b5f5160206126e15f395f51905f525f80a461081a8382612543565b61082483836125f5565b612467565b156102da57005b346102da5760403660031901126102da57610849611bce565b602435908115158092036102da576108676101065460ff1615611dc4565b6001600160a01b038116338181146102da577f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31916108b860209260601b60601c94855f526069845260405f20611ef0565b60ff1981541660ff871617905560405194855260601b60601c93a3005b346102da5760403660031901126102da576004356108f1611be4565b906109026101065460ff1615611dc4565b61090f6103793383611ec5565b61013c54916001830180931161029957826103879260209461013c5561217c565b346102da5760403660031901126102da5760043561094c611be4565b6109596103793384611ec5565b5f82815260d3602052604090206001600160a01b0382169182156102da57610981818361215c565b6102da5761098e91611ef0565b805460ff191660011790556001600160a01b0316907fe1bd660d9f7c60e6fb12dd6479fdde12d21fc96385dc7b9b022c0b2f319e73915f80a3005b346102da575f3660031901126102da576040515f61013a546109ea81611d69565b8084529060018116908115610a725750600114610a26575b6105f683610a1281850382611c34565b604051918291602083526020830190611baa565b61013a5f9081525f5160206127015f395f51905f52939250905b808210610a5857509091508101602001610a12610a02565b919260018160209254838588010152019101909291610a40565b60ff191660208086019190915291151560051b84019091019150610a129050610a02565b346102da5760803660031901126102da576004356001600160401b0381116102da57610ac6903690600401611d2d565b6024356001600160401b0381116102da57610ae5903690600401611d2d565b906044356001600160401b0381116102da57610b05903690600401611d2d565b906064356001600160401b0381116102da57610b25903690600401611c6e565b925f54926101018460081c60ff1694851595866110f7575b80156110ec575b610b4d90611fb7565b61ffff1916178060081c60ff1690818015928391826110e3575b80156110d8575b610b7790611fb7565b906110cf575b80156110c4575b610b8d90611fb7565b5f55610b9f6301ffc9a760e01b612343565b5f805461ff001916911560081b61ff00169182179055610c076380ac58cd60e01b610bc981612343565b60016101005f549461ff001986161794610bf98660081c60ff16801597886110ba575b81156110ae575b50611fb7565b61ffff191617175f55611d4b565b156102da57600190610c1f63780e9d6360e01b612343565b8161010061ff005f54931560081b1661ff001984161792610c558460081c60ff1680159586611096575b811561108a5750611fb7565b61ffff191617175f55610c6733612135565b156110a0575b5f61ff00808254931560081b168119841617610c9d8160081c60ff168015928361109657811561108a5750611fb7565b60ff196101065416610106551560081b169161ffff19161717175f555f5b8551811015610ce95780610ce3610cd460019389611e9d565b516001600160a01b03166122d3565b01610cbb565b50825184906001600160401b038111610ede57610d0861013954611d69565b601f811161102e575b50602094601f8211600114610fc9579481929394955f92610fbe575b50508160011b915f199060031b1c191617610139555b82516001600160401b038111610ede57610d5f61013a54611d69565b601f8111610f62575b506020601f8211600114610efd57819293945f92610ef2575b50508160011b915f199060031b1c19161761013a555b81516001600160401b038111610ede57610db361013b54611d69565b601f8111610e82575b50602092601f8211600114610e1f57928192935f92610e14575b50508160011b915f199060031b1c19161761013b555b610dfc635b5e139f60e01b612343565b61ff005f54911560081b169061ff001916175f555f80f35b015190508380610dd6565b601f1982169361013b5f52805f20915f5b868110610e6a5750836001959610610e52575b505050811b0161013b55610dec565b01515f1960f88460031b161c19169055838080610e43565b91926020600181928685015181550194019201610e30565b81811115610dbc5761013b5f52601f820160051c5f5160206126c15f395f51905f5260208410610ed6575b81601f9101920160051c03905f5b828110610ec9575050610dbc565b5f82820155600101610ebb565b5f9150610ead565b634e487b7160e01b5f52604160045260245ffd5b015190508480610d81565b601f1982169061013a5f52805f20915f5b818110610f4a57509583600195969710610f32575b505050811b0161013a55610d97565b01515f1960f88460031b161c19169055848080610f23565b9192602060018192868b015181550194019201610f0e565b81811115610d685761013a5f52601f820160051c5f5160206127015f395f51905f5260208410610fb6575b81601f9101920160051c03905f5b828110610fa9575050610d68565b5f82820155600101610f9b565b5f9150610f8d565b015190508580610d2d565b601f198216956101395f52805f20915f5b88811061101657508360019596979810610ffe575b505050811b0161013955610d43565b01515f1960f88460031b161c19169055858080610fef565b91926020600181928685015181550194019201610fda565b81811115610d11576101395f52601f820160051c5f5160206126a15f395f51905f5260208410611082575b81601f9101920160051c03905f5b828110611075575050610d11565b5f82820155600101611067565b5f9150611059565b905060ff16158c610bf3565b303b159150610c49565b6110a9336122d3565b610c6d565b905060ff16158d610bf3565b303b159150610bec565b5060ff811615610b84565b50303b15610b7d565b5060ff831615610b6e565b50303b15610b67565b5060ff811615610b44565b50303b15610b3d565b346102da575f3660031901126102da57611119336120c7565b005b346102da575f3660031901126102da5761113761024f33612135565b60016101065461114a8160ff1615611dc4565b60ff191617610106556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a1005b346102da575f3660031901126102da576111b15f548060081c60ff1690811561120e575b81156112025750611fb7565b60405162461bcd60e51b815260206004820152602360248201527f506f61703a2075736520706172616d65746572697a656420696e697469616c696044820152623d32b960e91b6064820152608490fd5b905060ff161582610bf3565b303b1591506111a5565b346102da5760203660031901126102da57602061123b611236611bce565b611f93565b604051908152f35b346102da5760203660031901126102da5761111961125f611bce565b61126b61024f33612135565b6122d3565b346102da5760403660031901126102da57604061129761128e611bce565b60243590611f36565b805f5261013d602052815f205482519182526020820152f35b346102da5760203660031901126102da5760206112ce600435611f73565b6040516001600160a01b039091168152f35b346102da575f3660031901126102da5760206101065460ff166040519015158152f35b346102da5760203660031901126102da576004356001600160401b0381116102da57611333903690600401611d2d565b61133f61024f33612135565b61134f6101065460ff1615611dc4565b80516001600160401b038111610ede5761136b61013b54611d69565b601f8111611410575b50602091601f82116001146113b1579181925f926113a6575b50505f19600383901b1c191660019190911b1761013b55005b01519050828061138d565b601f1982169261013b5f52805f20915f5b8581106113f8575083600195106113e0575b505050811b0161013b55005b01515f1960f88460031b161c191690558280806113d4565b919260206001819286850151815501940192016113c2565b818111156113745761013b5f52601f820160051c5f5160206126c15f395f51905f5260208410611464575b81601f9101920160051c03905f5b828110611457575050611374565b5f82820155600101611449565b5f915061143b565b346102da5760203660031901126102da57600435609e548110156102da57611495602091611f09565b90549060031b1c604051908152f35b346102da5760203660031901126102da576004356114c2813361226c565b801561166c575b15611627576114d781611f73565b6114e082611f73565b6001600160a01b0380831691168190036102da576115569183809261150482612645565b60601b60601c805f52606860205261151e60405f20612678565b5f8281526066602052604081206115369082906120a7565b6001600160a01b0316905f5160206126e15f395f51905f525f80a4612543565b805f52609d6020525f6040812055609e54806001116102da576115789061237c565b815f52609f60205261158e60405f205491611f09565b90549060031b1c6115ba816115a284611f09565b90919082549060031b91821b915f19901b1916179055565b5f52609f60205260405f2055609e548015611613575f19016115f06115e082609e611f21565b8154905f199060031b1b19169055565b609e55805f52609f6020525f60408120555f5261013d6020525f60408120555f80f35b634e487b7160e01b5f52603160045260245ffd5b60405162461bcd60e51b815260206004820152601e60248201527f53656e64657220646f65736e27742068617665207065726d697373696f6e00006044820152606490fd5b5061167633612135565b6114c9565b346102da5761168936611bfa565b6101065460ff16159161169b83611dc4565b610767604051936116ad602086611c34565b5f855261076281611dc4565b346102da575f3660031901126102da576116d561024f33612135565b610106548060ff16156117185760ff1916610106556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a1005b60405162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd0814185d5cd95960521b6044820152606490fd5b346102da5760403660031901126102da57602061123b61128e611bce565b346102da5760403660031901126102da576020610387611792611be4565b600435611ec5565b346102da5760403660031901126102da576004356024356001600160401b0381116102da576117cd903690600401611c6e565b906117de6101065460ff1615611dc4565b6117eb6103793383611ec5565b5f5b82518110156118375761013c5490600182018092116102995761183061181582600194611e90565b61181f8387611e9d565b516001600160a01b0316908561217c565b50016117ed565b6102bb835161013c54611e90565b346102da5760203660031901126102da576020610387611863611bce565b612135565b346102da5761187636611bfa565b906118876101065460ff1615611dc4565b611891823361226c565b156102da5761189f82611f73565b6001600160a01b0380851691168190036102da576001600160a01b03821680156102da5761111994848092611938946118d783612645565b60601b60601c90815f5260686020526118f260405f20612678565b60601b60601c90815f52606860205261190d60405f2061268f565b825f5260666020526119228760405f206120a7565b5f5160206126e15f395f51905f525f80a4612543565b6125f5565b346102da575f3660031901126102da576020609e54604051908152f35b346102da5760203660031901126102da57611119611976611bce565b61198261024f33612135565b6120c7565b346102da5760403660031901126102da576111196119a3611be4565b6119af61024f33612135565b60043561201a565b346102da5760203660031901126102da576004355f5261013d602052602060405f2054604051908152f35b346102da5760403660031901126102da576119fb611bce565b60243590611a0f6101065460ff1615611dc4565b611a1882611f73565b6001600160a01b0390811691908116908183146102da573383148015611a86575b156102da57611a5390845f52606760205260405f206120a7565b6001600160a01b0390811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b508260601b60601c5f526069602052611aa23360405f20611ef0565b5460ff16611a39565b346102da5760203660031901126102da5760206112ce600435611da1565b346102da575f3660031901126102da576040515f61013954611aea81611d69565b8084529060018116908115610a725750600114611b11576105f683610a1281850382611c34565b6101395f9081525f5160206126a15f395f51905f52939250905b808210611b4357509091508101602001610a12610a02565b919260018160209254838588010152019101909291611b2b565b346102da5760203660031901126102da576111193360043561201a565b346102da5760203660031901126102da576004356001600160e01b0319811681036102da57610387602091611d4b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036102da57565b602435906001600160a01b03821682036102da57565b60609060031901126102da576004356001600160a01b03811681036102da57906024356001600160a01b03811681036102da579060443590565b601f909101601f19168101906001600160401b03821190821017610ede57604052565b6001600160401b038111610ede5760051b60200190565b9080601f830112156102da57813590611c8682611c57565b92611c946040519485611c34565b82845260208085019360051b8201019182116102da57602001915b818310611cbc5750505090565b82356001600160a01b03811681036102da57815260209283019201611caf565b6001600160401b038111610ede57601f01601f191660200190565b929192611d0382611cdc565b91611d116040519384611c34565b8294818452818301116102da578281602093845f960137010152565b9080601f830112156102da57816020611d4893359101611cf7565b90565b6001600160e01b0319165f9081526033602052604090205460ff1690565b90600182811c92168015611d97575b6020831014611d8357565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611d78565b611daa8161208b565b156102da575f52606760205260405f205460601b60601c90565b15611dcb57565b60405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc814185d5cd95960721b6044820152606490fd5b15611e0c57565b60405162461bcd60e51b815260206004820152601360248201527229b2b73232b91034b9903737ba1020b236b4b760691b6044820152606490fd5b15611e4e57565b60405162461bcd60e51b815260206004820152601a60248201527929b2b73232b91034b9903737ba1022bb32b73a1026b4b73a32b960311b6044820152606490fd5b9190820180921161029957565b8051821015611eb15760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90611ecf81612135565b918215611edb57505090565b611d4892505f5260d360205260405f2061215c565b9060601b60601c60601b60601c5f5260205260405f2090565b609e54811015611eb157609e5f5260205f2001905f90565b8054821015611eb1575f5260205f2001905f90565b90611f4082611f93565b8110156102da576001600160a01b039091165f908152609c60205260409020611f699190611f21565b90549060031b1c90565b5f908152606660205260409020546001600160a01b031680156102da5790565b6001600160a01b031680156102da5760601b60601c5f52606860205260405f205490565b15611fbe57565b60405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b6064820152608490fd5b5f81815260d36020526040902090916001600160a01b038116919082156102da57612045818361215c565b156102da5761205391611ef0565b805460ff191690556001600160a01b0316907fb6882c4d609d560f6d57e78e73dd96027f0d9852739b0b922537a6dd3c8e944c5f80a3565b5f908152606660205260409020546001600160a01b0316151590565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031680156102da578060601b60601c5f5260d260205260405f205460ff16156102da576001600160a01b03165f81815260d260205260408120805460ff191690557fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f9080a2565b6001600160a01b031680156102da5760601b60601c5f5260d260205260405f205460ff1690565b906001600160a01b038116156102da5761217591611ef0565b5460ff1690565b90916001600160a01b038116905f9082156102da5761219a8561208b565b6102da578480926121f494825f5260666020526121ba8460405f206120a7565b60601b60601c90815f5260686020526121d560405f2061268f565b6001600160a01b03165f5160206126e15f395f51905f525f80a46125f5565b609e545f838152609f6020526040902081905590600160401b821015610ede578261224e7f4b3711cd7ece062b0828c1b6e08d814a72d4c003383a016c833cbb1b45956e34946115a285600160409701609e55609e611f21565b805f5261013d60205281835f205582519182526020820152a1600190565b61227582611f73565b60601b60601c8160601b60601c8181149384156122b5575b5050821561229a57505090565b612175925060601b60601c5f52606960205260405f20611ef0565b6122c191929450611da1565b6001600160a01b031614915f8061228d565b6001600160a01b031680156102da578060601b60601c5f5260d260205260405f205460ff166102da576001600160a01b03165f81815260d260205260408120805460ff191660011790557f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e3399080a2565b6001600160e01b03199081169081146102da575f52603360205260405f20600160ff19825416179055565b5f1981146102995760010190565b5f1981019190821161029957565b908151811015611eb1570160200190565b80156124475780815f925b61243357506123b482611cdc565b916123c26040519384611c34565b808352601f196123d182611cdc565b013660208501375f19810190811161029957815b6123ee57505090565b600a82066030019182603011610299578182156102995761242a600a935f19019460ff1660ff1660f81b60f81c60ff1660f81b5f1a918661238a565b530490816123e5565b9161243f600a9161236e565b9204806123a6565b50604051612456604082611c34565b60018152600360fc1b602082015290565b919290803b1561253a576124ba935f60209460405196879586948593630a85bd0160e11b85523360601b60601c600486015260601b60601c60248501526044840152608060648401526084830190611baa565b03926001600160a01b03165af190811561252f575f916124ec575b506001600160e01b031916630a85bd0160e11b1490565b90506020813d602011612527575b8161250760209383611c34565b810103126102da57516001600160e01b0319811681036102da575f6124d5565b3d91506124fa565b6040513d5f823e3d90fd5b50505050600190565b6001600160a01b03165f818152609c6020526040902054909190600181106102da5761256e9061237c565b905f52609d60205260405f2054908082036125ad575b50505f52609c60205260405f2080548015611613575f1901906125aa6115e08383611f21565b55565b6125c290835f52609c60205260405f20611f21565b90549060031b1c825f52609c6020526125e2816115a28460405f20611f21565b5f52609d60205260405f20555f80612584565b6001600160a01b03165f818152609c602081815260408084208054878652609d845291852082905594909352529190600160401b831015610ede57826115a291600161264395018155611f21565b565b5f818152606760205260408120546001600160a01b0316612664575050565b612643915f52606760205260405f206120a7565b8054806001116102da5761268b9061237c565b9055565b80549060018201809211610299575556fe22d66071756d4d57920b8322c1a903a27bd75b44065e925d5f9f1c08908d28f6e1abe72d20e3d8bbb0a91fbb1c3cdd65253a0a0af97f17849f67ad7b3d1a6a62ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef1cc3277f886bc7650038e458160d07e0113c6dbe808de6ada3226131dc580251