solc-0.8.36-memorymasking-07 0xdd3f50f8a6cafbe9b31a427582963f465e745af8 via-ir
8873 bytes
5f1960805260a06040526004361015610016575f80fd5b5f5f3560e01c806312065fe014610f7b5780631b7dd4c014610edf5780631e35fed814610ec55780631eddb62614610eab57806322b1751d14610d5c57806327c8f19314610ccc5780633b36f59214610c8a57806354fd4d5014610c6a578063606b649714610b3357806363a5db9e1461094b57806372f5158d14610855578063888b042f14610832578063b7013dc114610744578063c095415d146106ba578063d0e30db0146101665763db82047b146100cf575f80fd5b80600319360112610163576100f06074516100e8611414565b163014611067565b6101586100fb611352565b610150604051916101446030846020808201946f636f6e74726163742e6164647265737360801b86528051918291018484015e810188838201520301601f198101855284610f95565b6074519251902061149f565b163314611067565b6101606110ee565b80f35b80fd5b5080600319360112610163576101806074516100e8611414565b60745161019361018e6110b3565b6114d6565b16604051636ada784760e01b8152602081600481855afa90811561037757839161069b575b501561063d576040516301ae78a160e11b8152602081600481855afa90811561037757839161060b575b5034106105a0576101fa346101f5610fc5565b611630565b604051637eb6744f60e11b8152602081600481865afa908115610595578491610563575b50808211610382575b5050604051630de705b560e01b8152602081600481855afa8015610377578390610343575b610257915034612139565b8261032f57670de0b6b3a764000061027091043461169d565b6074517f000000000000000000000000ae78736cd615f374d3085123a210448e74fc63931690813b1561032b575f916044839260405194859384926394bf804d60e01b845260048401523360248401525af1801561032057610309575b50610160906040513481524260208201527f7aa1a8eb998c779420645fc14513bf058edb347d95c2fc2e6845bdc22f88863160403392a261156e565b6103169192505f90610f95565b5f906101606102cd565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b83526012600452602483fd5b506020813d60201161036f575b8161035d60209383610f95565b8101031261032b57610257905161024c565b3d9150610350565b6040513d85823e3d90fd5b6040516323fd21a560e11b8152602081600481875afa9081156104be578591610534575b50156104c95760049060206074516103bf61018e611151565b166040519384809263e60b40bf60e01b82525afa9081156104be578591610488575b6103eb9250611630565b106103f7575f80610227565b60405162461bcd60e51b815260206004820152605d60248201527f546865206465706f73697420706f6f6c2073697a65206166746572206465706f60448201527f736974696e672028616e64206d61746368696e672077697468206d696e69706f60648201527f6f6c7329206578636565647320746865206d6178696d756d2073697a65000000608482015260a490fd5b90506020823d6020116104b6575b816104a360209383610f95565b8101031261032b576103eb9151906103e1565b3d9150610496565b6040513d87823e3d90fd5b60405162461bcd60e51b815260206004820152603f60248201527f546865206465706f73697420706f6f6c2073697a65206166746572206465706f60448201527f736974696e67206578636565647320746865206d6178696d756d2073697a65006064820152608490fd5b610556915060203d60201161055c575b61054e8183610f95565b810190611139565b5f6103a6565b503d610544565b90506020813d60201161058d575b8161057e60209383610f95565b8101031261032b57515f61021e565b3d9150610571565b6040513d86823e3d90fd5b60405162461bcd60e51b815260206004820152603a60248201527f546865206465706f736974656420616d6f756e74206973206c6573732074686160448201527f6e20746865206d696e696d756d206465706f7369742073697a650000000000006064820152608490fd5b90506020813d602011610635575b8161062660209383610f95565b8101031261032b57515f6101e2565b3d9150610619565b60405162461bcd60e51b815260206004820152603060248201527f4465706f7369747320696e746f20526f636b657420506f6f6c2061726520637560448201526f1c9c995b9d1b1e48191a5cd8589b195960821b6064820152608490fd5b6106b4915060203d60201161055c5761054e8183610f95565b5f6101b8565b5080600319360112610163576106d46074516100e8611414565b6101606040516106e5604082610f95565b600b815261015060208201916a1c9bd8dad95d15985d5b1d60aa1b83526101446030604051809560208201946f636f6e74726163742e6164647265737360801b86525180918484015e810188838201520301601f198101855284610f95565b5034610163578060031936011261016357610765610760610fc5565b6120b6565b6107706107606115dd565b918083830393129082841390821593851283168285161761081e575082610815575b82156107fc575b5050156107ab57602090604051908152f35b60405162461bcd60e51b8152602060048201526024808201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604482015263666c6f7760e01b6064820152608490fd5b9091508161080d575b505f80610799565b90505f610805565b80159250610792565b634e487b7160e01b81526011600452602490fd5b5034610163578060031936011261016357602061084d61137f565b604051908152f35b50806003193601126101635761086f6074516100e8611414565b60405160208101906e6d696e69706f6f6c2e65786973747360881b82523360601b602f820152602381526108a4604382610f95565b5190206020607451835460081c1691602460405180948193633d70e7e560e11b835260048301525afa908115610940578291610921575b50156108e9576101606110ee565b60405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081b5a5b9a5c1bdbdb60821b6044820152606490fd5b61093a915060203d60201161055c5761054e8183610f95565b5f6108db565b6040513d84823e3d90fd5b50346101635760203660031901126101635760043561096e6074516100e8611414565b6109c2610979611352565b610150604051916101446030846020808201946f636f6e74726163742e6164647265737360801b86528051918291018484015e810189838201520301601f198101855284610f95565b6109ca61137f565b8111610adb57816074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b15610ac257818091602460405180948193631df699e760e11b83528860048401525af1801561094057610ac6575b506074517f000000000000000000000000ae78736cd615f374d3085123a210448e74fc639316803b15610ac257818391600460405180948193630d930b5160e31b83525af1801561094057610aad575b50506040519081524260208201527f992f462cfb62e164bd03bf07baf2cffce83fbd9370cae10635842b202001212060403392a280f35b81610ab791610f95565b610ac257815f610a76565b5080fd5b81610ad091610f95565b610ac257815f610a26565b60405162461bcd60e51b815260206004820152602a60248201527f496e73756666696369656e74206578636573732062616c616e636520666f72206044820152691dda5d1a191c985dd85b60b21b6064820152608490fd5b50346101635760203660031901126101635780600435610b576074516100e8611414565b610b62610979611323565b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b15610c6657828091602460405180948193631df699e760e11b83528760048401525af1908115610377578391610c4e575b50808092335af13d15610c49573d6068518111610c355760405190610be9601f8201601f191660200183610f95565b81528260203d92013e5b15610bfb5780f35b60405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b610bf3565b81610c5891610f95565b610c6357815f610bba565b50fd5b5050fd5b503461016357806003193601126101635760ff6020915416604051908152f35b5034610163578060031936011261016357610ca96074516100e8611414565b6020610cc2607451610cbc61018e6110b3565b166116f6565b6040519015158152f35b5034610163578060031936011261016357610ceb6074516100e8611414565b610cfc607451610cbc61018e6110b3565b15610d045780f35b60405162461bcd60e51b815260206004820152602a60248201527f4465706f7369742061737369676e6d656e7473206172652063757272656e746c6044820152691e48191a5cd8589b195960b21b6064820152608490fd5b50602036600319011261032b57610d776074516100e8611414565b610dcb610d82611323565b610150604051916101446030846020808201946f636f6e74726163742e6164647265737360801b86528051918291018484015e81015f838201520301601f198101855284610f95565b34610e42575b80607451815460081c16803b15610c6357818091604460405180948193632b6cd4f760e21b8352786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b600484015260043560248401525af1801561094057610e315750f35b81610e3b91610f95565b6101635780f35b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b1561032b575f60049160405192838092634c752fe560e11b825234905af1801561032057610e98575b50610dd1565b610ea491505f90610f95565b5f5f610e92565b3461032b575f36600319011261032b57602061084d611182565b3461032b575f36600319011261032b57602061084d6115dd565b5f36600319011261032b57610ef86074516100e8611414565b610f71604051610f09604082610f95565b601481526101506020820191733937b1b5b2ba20bab1ba34b7b726b0b730b3b2b960611b83526101446030604051809560208201946f636f6e74726163742e6164647265737360801b86525180918484015e81015f838201520301601f198101855284610f95565b610f796110ee565b005b3461032b575f36600319011261032b57602061084d610fc5565b90601f80199101168101908110606851821117610fb157604052565b634e487b7160e01b5f52604160045260245ffd5b6040516335ee5f8760e01b81526020600482015260116024820152701c9bd8dad95d11195c1bdcda5d141bdbdb607a1b60448201526020816064816074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d6165afa908115610320575f91611038575090565b90506020813d60201161105f575b8161105360209383610f95565b8101031261032b575190565b3d9150611046565b1561106e57565b60405162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206f72206f7574646174656420636f6e7472616374000000006044820152606490fd5b604051906110c2604083610f95565b602082527f726f636b657444414f50726f746f636f6c53657474696e67734465706f7369746020830152565b6111376074516110ff61018e6110b3565b166040513481524260208201527f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d40627919660851292560403392a261156e565b565b9081602091031261032b5751801515810361032b5790565b60405190611160604083610f95565b6013825272726f636b65744d696e69706f6f6c517565756560681b6020830152565b60745161119061018e6110b3565b16604051636ada784760e01b8152602081600481855afa908115610320575f91611304575b50156112ff576111c3610fc5565b604051637eb6744f60e11b8152602081600481865afa908115610320575f916112cd575b50600460208294604051928380926323fd21a560e11b82525afa908115610320575f916112ae575b50611230575b508181101561122a576112279161169d565b90565b50505f90565b6004919250602060745161124561018e611151565b166040519384809263e60b40bf60e01b82525afa908115610320575f91611278575b6112719250611630565b905f611215565b90506020823d6020116112a6575b8161129360209383610f95565b8101031261032b57611271915190611267565b3d9150611286565b6112c7915060203d60201161055c5761054e8183610f95565b5f61120f565b90506020813d6020116112f7575b816112e860209383610f95565b8101031261032b57515f6111e7565b3d91506112db565b505f90565b61131d915060203d60201161055c5761054e8183610f95565b5f6111b5565b60405190611332604083610f95565b60118252701c9bd8dad95d139bd91951195c1bdcda5d607a1b6020830152565b60405190611361604083610f95565b600f82526e0e4dec6d6cae8a8ded6cadca48aa89608b1b6020830152565b6004602060745161139161018e611151565b166040519283809263e60b40bf60e01b82525afa908115610320575f916113d3575b506113bc610fc5565b908181106113ca5750505f90565b6112279161169d565b90506020813d6020116113fd575b816113ee60209383610f95565b8101031261032b57515f6113b3565b3d91506113e1565b51906074518216820361032b57565b602460206074515f5460081c16604051928380926321f8a72160e01b82527f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb260048301525afa908115610320575f9161146b575090565b90506020813d602011611497575b8161148660209383610f95565b8101031261032b5761122790611405565b3d9150611479565b60206074515f5460081c16916024604051809481936321f8a72160e01b835260048301525afa908115610320575f9161146b575090565b6115279060405161151f6030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e81015f838201520301601f198101835282610f95565b51902061149f565b6074518116156115345790565b60405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081b9bdd08199bdd5b9960721b6044820152606490fd5b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b1561032b575f60049260405193848092634c752fe560e11b825234905af1918215610320576115ca926115cd575b506116f6565b50565b5f6115d791610f95565b5f6115c4565b602460206074515f5460081c166040519283809263bd02d0f560e01b8252786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b60048301525afa908115610320575f91611038575090565b908101908181116116895781106116445790565b60405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b908181116116b15781039081116116895790565b60405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606490fd5b5f90607451166040516323fd21a560e11b8152602081600481855afa908115610320575f91612097575b501561122a5760745161173461018e611151565b1690604051638ed8045360e01b8152602081600481865afa908115610320575f91612078575b5015611c31579060049160745161177261018e612203565b1661177b610fc5565b6020869360405196878092633b474a6560e01b82525afa948515611c26578695611bf2575b506117af859493979695612248565b926117bd6040519485610f95565b848452601f196117cc86612248565b01865b818110611ba25750869283915081805b88821061195d575b505050505050509091929380611801575b50505050600190565b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b15611959578491602483926040519485938492631df699e760e11b845260048401525af1801561059557908491611940575b505b828110156117f8576020611871828461225a565b5101511561193b57607451611886828461225a565b5151166020611895838561225a565b51015190803b15611937578590600460405180948193634814611360e01b83525af180156104be5790859161191e575b50506001906074516118d7828561225a565b5151167fa1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be960406020611909858861225a565b5101518151908152426020820152a20161185d565b8161192891610f95565b61193357835f6118c5565b8380fd5b8580fd5b6117f8565b8161194a91610f95565b61195557825f61185b565b8280fd5b8480fd5b8015611a87575b8015611a73575f19019085158015611a61575b611a5c57604051631d33eeb960e31b81529b60208d8c818061199c8a60048301612282565b03918a5af19c8d15611a51578b9d6119f1575b509088999a9b9c8760206119cf846119c984600198611630565b9d61225a565b5101526119dc828c61225a565b519060745116905201909a999897969a6117df565b909c506020813d8211611a49575b81611a0c60209383610f95565b81010312611a45579088999a9b9c8760206119cf846119c984611a30600199611405565b9f5050505050505090919c9b9a99989c6119af565b8a80fd5b3d91506119ff565b6040513d8d823e3d90fd5b6117e7565b5085611a6d8d8561169d565b10611977565b634e487b7160e01b8a52601160045260248afd5b50604080516304b5466b60e01b815291955090925082600481865afa8015611b975788928991611b4e575b5093826005811015611b3a578015611a5c576020611ae491604051809381926304a0030d60e21b835260048301612282565b03818a5afa908115611b2f578a91611afe575b5094611964565b90506020813d8211611b27575b81611b1860209383610f95565b8101031261032b57515f611af7565b3d9150611b0b565b6040513d8c823e3d90fd5b634e487b7160e01b8a52602160045260248afd5b9250506040823d8211611b8f575b81611b6960409383610f95565b81010312611b8b578151916005831015611b8757602001515f611ab2565b8880fd5b8780fd5b3d9150611b5c565b6040513d8a823e3d90fd5b60409995969798995160408101818110606851821117611bde5790602092916040528a81528a8382015282828a010152019897969594986117cf565b634e487b7160e01b8b52604160045260248bfd5b9094506020813d602011611c1e575b81611c0e60209383610f95565b8101031261032b5751935f6117a0565b3d9150611c01565b6040513d88823e3d90fd5b91607493919351611c4361018e612203565b169360405193633b474a6560e01b8552602085600481845afa948515610320575f95612041575b506020600494959660405195868092630d1a7ded60e21b82525afa938415610320575f9461200d575b50611c9e84346121ae565b60046020611cb387611cae610fc5565b6121ae565b93604051928380926378cda08360e11b82525afa908115610320575f91611fd5575b50915f97611ce76024938a9695611630565b91808311611fcd575b50808211611fc5575b506040519788938492637e0e497b60e01b845260048401525af1938415610320575f94611f30575b50835180611d33575b50600193505050565b82611d3d91612139565b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b1561032b575f91602483926040519485938492631df699e760e11b845260048401525af1801561032057611f1d575b5080805b8551821015611e9d57607451611dae838861225a565b5116803b1561193357604051630d0e30db60e41b8152848160048189865af180156104be57908591611e88575b505060206004916040519283809263d2ceebd160e01b82525afa908115610595578491611e56575b50611e1090600192611630565b91607451611e1e828961225a565b51167fa1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be960408051888152426020820152a20190611d98565b90506020813d8211611e80575b81611e7060209383610f95565b8101031261032b57516001611e03565b3d9150611e63565b81611e9291610f95565b61193357835f611ddb565b925050919250607451825460081c1690813b1561195557829160448392604051948593849263ebb9d8c960e01b8452786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b600485015260248401525af1801561094057611f08575b808392611d2a565b611f13828092610f95565b6101635780611f00565b611f2991505f90610f95565b5f5f611d94565b9093503d805f833e611f428183610f95565b81019060208183031261032b57805190606851821161032b57019080601f8301121561032b578151611f7381612248565b92611f816040519485610f95565b81845260208085019260051b82010192831161032b57602001905b828210611fad57505050925f611d21565b60208091611fba84611405565b815201910190611f9c565b90505f611cf9565b91505f611cf0565b939290506020843d602011612005575b81611ff260209383610f95565b8101031261032b5792519192915f611cd5565b3d9150611fe5565b9093506020813d602011612039575b8161202960209383610f95565b8101031261032b5751925f611c93565b3d915061201c565b9394506020843d602011612070575b8161205d60209383610f95565b8101031261032b57925193926020611c6a565b3d9150612050565b612091915060203d60201161055c5761054e8183610f95565b5f61175a565b6120b0915060203d60201161055c5761054e8183610f95565b5f611720565b600160ff1b8110156120c55790565b60405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608490fd5b8115612125570490565b634e487b7160e01b5f52601260045260245ffd5b90811561122a5780820291808304820361168957612157908361211b565b0361215f5790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b9080156121be576112279161211b565b60405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606490fd5b60405190612212606083610f95565b60218252601b60fa1b6040837f726f636b657444414f50726f746f636f6c53657474696e67734d696e69706f6f60208201520152565b6068518111610fb15760051b60200190565b805182101561226e5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b9190602083019260058210156122955752565b634e487b7160e01b5f52602160045260245ffd