solc-0.8.36-memorymasking-07 0xdd3f50f8a6cafbe9b31a427582963f465e745af8 via-ir-low-runs

8849 bytes

5f1960805260a06040526004361015610016575f80fd5b5f5f3560e01c806312065fe014610f465780631b7dd4c014610eaa5780631e35fed814610e905780631eddb62614610e7657806322b1751d14610d3357806327c8f19314610ca35780633b36f59214610c6157806354fd4d5014610c41578063606b649714610b0a57806363a5db9e1461092257806372f5158d1461082c578063888b042f14610809578063b7013dc11461071b578063c095415d14610691578063d0e30db0146101665763db82047b146100cf575f80fd5b80600319360112610163576100f06074516100e86113de565b163014611032565b6101586100fb61131c565b610150604051916101446030846020808201946f636f6e74726163742e6164647265737360801b86528051918291018484015e810188838201520301601f198101855284610f60565b60745192519020611469565b163314611032565b6101606110b8565b80f35b80fd5b5080600319360112610163576101806074516100e86113de565b60745161019361018e61107d565b6114a0565b16604051636ada784760e01b8152602081600481855afa908115610377578391610672575b5015610614576040516301ae78a160e11b8152602081600481855afa9081156103775783916105e2575b50341061057a576101fa346101f5610f90565b6115ee565b604051637eb6744f60e11b8152602081600481865afa90811561056f57849161053d575b50808211610382575b5050604051630de705b560e01b8152602081600481855afa8015610377578390610343575b6102579150346120c3565b8261032f57670de0b6b3a7640000610270910434611659565b6074517f000000000000000000000000ae78736cd615f374d3085123a210448e74fc63931690813b1561032b575f916044839260405194859384926394bf804d60e01b845260048401523360248401525af1801561032057610309575b50610160906040513481524260208201527f7aa1a8eb998c779420645fc14513bf058edb347d95c2fc2e6845bdc22f88863160403392a2611538565b6103169192505f90610f60565b5f906101606102cd565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b83526012600452602483fd5b506020813d60201161036f575b8161035d60209383610f60565b8101031261032b57610257905161024c565b3d9150610350565b6040513d85823e3d90fd5b6040516323fd21a560e11b8152602081600481875afa9081156104ab57859161050e575b50156104b65760049060206074516103bf61018e61111b565b166040519384809263e60b40bf60e01b82525afa9081156104ab578591610475575b6103eb92506115ee565b106103f7575f80610227565b60405162461bcd60e51b815260206004820152605d60248201525f5160206122715f395f51905f5260448201527f736974696e672028616e64206d61746368696e672077697468206d696e69706f60648201527f6f6c7329206578636565647320746865206d6178696d756d2073697a65000000608482015260a490fd5b90506020823d6020116104a3575b8161049060209383610f60565b8101031261032b576103eb9151906103e1565b3d9150610483565b6040513d87823e3d90fd5b60405162461bcd60e51b815260206004820152603f60248201525f5160206122715f395f51905f5260448201527f736974696e67206578636565647320746865206d6178696d756d2073697a65006064820152608490fd5b610530915060203d602011610536575b6105288183610f60565b810190611103565b5f6103a6565b503d61051e565b90506020813d602011610567575b8161055860209383610f60565b8101031261032b57515f61021e565b3d915061054b565b6040513d86823e3d90fd5b60405162461bcd60e51b815260206004820152603a60248201527f546865206465706f736974656420616d6f756e74206973206c657373207468616044820152796e20746865206d696e696d756d206465706f7369742073697a6560301b6064820152608490fd5b90506020813d60201161060c575b816105fd60209383610f60565b8101031261032b57515f6101e2565b3d91506105f0565b60405162461bcd60e51b815260206004820152603060248201527f4465706f7369747320696e746f20526f636b657420506f6f6c2061726520637560448201526f1c9c995b9d1b1e48191a5cd8589b195960821b6064820152608490fd5b61068b915060203d602011610536576105288183610f60565b5f6101b8565b5080600319360112610163576106ab6074516100e86113de565b6101606040516106bc604082610f60565b600b815261015060208201916a1c9bd8dad95d15985d5b1d60aa1b83526101446030604051809560208201946f636f6e74726163742e6164647265737360801b86525180918484015e810188838201520301601f198101855284610f60565b503461016357806003193601126101635761073c610737610f90565b612040565b6107476107376115a7565b91808383039312908284139082159385128316828516176107f55750826107ec575b82156107d3575b50501561078257602090604051908152f35b60405162461bcd60e51b8152602060048201526024808201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604482015263666c6f7760e01b6064820152608490fd5b909150816107e4575b505f80610770565b90505f6107dc565b80159250610769565b634e487b7160e01b81526011600452602490fd5b50346101635780600319360112610163576020610824611349565b604051908152f35b5080600319360112610163576108466074516100e86113de565b60405160208101906e6d696e69706f6f6c2e65786973747360881b82523360601b602f8201526023815261087b604382610f60565b5190206020607451835460081c1691602460405180948193633d70e7e560e11b835260048301525afa9081156109175782916108f8575b50156108c0576101606110b8565b60405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081b5a5b9a5c1bdbdb60821b6044820152606490fd5b610911915060203d602011610536576105288183610f60565b5f6108b2565b6040513d84823e3d90fd5b5034610163576020366003190112610163576004356109456074516100e86113de565b61099961095061131c565b610150604051916101446030846020808201946f636f6e74726163742e6164647265737360801b86528051918291018484015e810189838201520301601f198101855284610f60565b6109a1611349565b8111610ab257816074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b15610a9957818091602460405180948193631df699e760e11b83528860048401525af1801561091757610a9d575b506074517f000000000000000000000000ae78736cd615f374d3085123a210448e74fc639316803b15610a9957818391600460405180948193630d930b5160e31b83525af1801561091757610a84575b50506040519081524260208201527f992f462cfb62e164bd03bf07baf2cffce83fbd9370cae10635842b202001212060403392a280f35b81610a8e91610f60565b610a9957815f610a4d565b5080fd5b81610aa791610f60565b610a9957815f6109fd565b60405162461bcd60e51b815260206004820152602a60248201527f496e73756666696369656e74206578636573732062616c616e636520666f72206044820152691dda5d1a191c985dd85b60b21b6064820152608490fd5b50346101635760203660031901126101635780600435610b2e6074516100e86113de565b610b396109506112ed565b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b15610c3d57828091602460405180948193631df699e760e11b83528760048401525af1908115610377578391610c25575b50808092335af13d15610c20573d6068518111610c0c5760405190610bc0601f8201601f191660200183610f60565b81528260203d92013e5b15610bd25780f35b60405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b610bca565b81610c2f91610f60565b610c3a57815f610b91565b50fd5b5050fd5b503461016357806003193601126101635760ff6020915416604051908152f35b5034610163578060031936011261016357610c806074516100e86113de565b6020610c99607451610c9361018e61107d565b166116b2565b6040519015158152f35b5034610163578060031936011261016357610cc26074516100e86113de565b610cd3607451610c9361018e61107d565b15610cdb5780f35b60405162461bcd60e51b815260206004820152602a60248201527f4465706f7369742061737369676e6d656e7473206172652063757272656e746c6044820152691e48191a5cd8589b195960b21b6064820152608490fd5b50602036600319011261032b57610d4e6074516100e86113de565b610da2610d596112ed565b610150604051916101446030846020808201946f636f6e74726163742e6164647265737360801b86528051918291018484015e81015f838201520301601f198101855284610f60565b34610e0d575b80607451815460081c16803b15610c3a57818091604460405180948193632b6cd4f760e21b83525f5160206122315f395f51905f5260381b600484015260043560248401525af1801561091757610dfc5750f35b81610e0691610f60565b6101635780f35b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b1561032b575f60049160405192838092634c752fe560e11b825234905af1801561032057610e63575b50610da8565b610e6f91505f90610f60565b5f5f610e5d565b3461032b575f36600319011261032b57602061082461114c565b3461032b575f36600319011261032b5760206108246115a7565b5f36600319011261032b57610ec36074516100e86113de565b610f3c604051610ed4604082610f60565b601481526101506020820191733937b1b5b2ba20bab1ba34b7b726b0b730b3b2b960611b83526101446030604051809560208201946f636f6e74726163742e6164647265737360801b86525180918484015e81015f838201520301601f198101855284610f60565b610f446110b8565b005b3461032b575f36600319011261032b576020610824610f90565b90601f80199101168101908110606851821117610f7c57604052565b634e487b7160e01b5f52604160045260245ffd5b6040516335ee5f8760e01b81526020600482015260116024820152701c9bd8dad95d11195c1bdcda5d141bdbdb607a1b60448201526020816064816074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d6165afa908115610320575f91611003575090565b90506020813d60201161102a575b8161101e60209383610f60565b8101031261032b575190565b3d9150611011565b1561103957565b60405162461bcd60e51b815260206004820152601c60248201527b125b9d985b1a59081bdc881bdd5d19185d19590818dbdb9d1c9858dd60221b6044820152606490fd5b6040519061108c604083610f60565b602082527f726f636b657444414f50726f746f636f6c53657474696e67734465706f7369746020830152565b6111016074516110c961018e61107d565b166040513481524260208201527f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d40627919660851292560403392a2611538565b565b9081602091031261032b5751801515810361032b5790565b6040519061112a604083610f60565b6013825272726f636b65744d696e69706f6f6c517565756560681b6020830152565b60745161115a61018e61107d565b16604051636ada784760e01b8152602081600481855afa908115610320575f916112ce575b50156112c95761118d610f90565b604051637eb6744f60e11b8152602081600481865afa908115610320575f91611297575b50600460208294604051928380926323fd21a560e11b82525afa908115610320575f91611278575b506111fa575b50818110156111f4576111f191611659565b90565b50505f90565b6004919250602060745161120f61018e61111b565b166040519384809263e60b40bf60e01b82525afa908115610320575f91611242575b61123b92506115ee565b905f6111df565b90506020823d602011611270575b8161125d60209383610f60565b8101031261032b5761123b915190611231565b3d9150611250565b611291915060203d602011610536576105288183610f60565b5f6111d9565b90506020813d6020116112c1575b816112b260209383610f60565b8101031261032b57515f6111b1565b3d91506112a5565b505f90565b6112e7915060203d602011610536576105288183610f60565b5f61117f565b604051906112fc604083610f60565b60118252701c9bd8dad95d139bd91951195c1bdcda5d607a1b6020830152565b6040519061132b604083610f60565b600f82526e0e4dec6d6cae8a8ded6cadca48aa89608b1b6020830152565b6004602060745161135b61018e61111b565b166040519283809263e60b40bf60e01b82525afa908115610320575f9161139d575b50611386610f90565b908181106113945750505f90565b6111f191611659565b90506020813d6020116113c7575b816113b860209383610f60565b8101031261032b57515f61137d565b3d91506113ab565b51906074518216820361032b57565b602460206074515f5460081c16604051928380926321f8a72160e01b82527f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb260048301525afa908115610320575f91611435575090565b90506020813d602011611461575b8161145060209383610f60565b8101031261032b576111f1906113cf565b3d9150611443565b60206074515f5460081c16916024604051809481936321f8a72160e01b835260048301525afa908115610320575f91611435575090565b6114f1906040516114e96030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e81015f838201520301601f198101835282610f60565b519020611469565b6074518116156114fe5790565b60405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081b9bdd08199bdd5b9960721b6044820152606490fd5b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b1561032b575f60049260405193848092634c752fe560e11b825234905af19182156103205761159492611597575b506116b2565b50565b5f6115a191610f60565b5f61158e565b602460206074515f5460081c166040519283809263bd02d0f560e01b82525f5160206122315f395f51905f5260381b60048301525afa908115610320575f91611003575090565b908101908181116116455781106116025790565b60405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b9081811161166d5781039081116116455790565b60405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606490fd5b5f90607451166040516323fd21a560e11b8152602081600481855afa908115610320575f91612021575b50156111f4576074516116f061018e61111b565b1690604051638ed8045360e01b8152602081600481865afa908115610320575f91612002575b5015611bda579060049160745161172e61018e61218a565b16611737610f90565b6020869360405196878092633b474a6560e01b82525afa948515611bcf578695611b9b575b5061176b8594939796956121cf565b926117796040519485610f60565b848452601f19611788866121cf565b01865b818110611b4b5750869283915081805b888210611906575b5050505050505090919293806117bd575b50505050600190565b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b15611902578491602483926040519485938492631df699e760e11b845260048401525af1801561056f579084916118e9575b505b828110156117b457602061182d82846121e1565b510151156118e45760745161184282846121e1565b515116602061185183856121e1565b51015190803b156118e0578590600460405180948193634814611360e01b83525af180156104ab579085916118c7575b505060019060745161189382856121e1565b5151165f5160206122515f395f51905f52604060206118b285886121e1565b5101518151908152426020820152a201611819565b816118d191610f60565b6118dc57835f611881565b8380fd5b8580fd5b6117b4565b816118f391610f60565b6118fe57825f611817565b8280fd5b8480fd5b8015611a30575b8015611a1c575f19019085158015611a0a575b611a0557604051631d33eeb960e31b81529b60208d8c81806119458a60048301612209565b03918a5af19c8d156119fa578b9d61199a575b509088999a9b9c87602061197884611972846001986115ee565b9d6121e1565b510152611985828c6121e1565b519060745116905201909a999897969a61179b565b909c506020813d82116119f2575b816119b560209383610f60565b810103126119ee579088999a9b9c87602061197884611972846119d96001996113cf565b9f5050505050505090919c9b9a99989c611958565b8a80fd5b3d91506119a8565b6040513d8d823e3d90fd5b6117a3565b5085611a168d85611659565b10611920565b634e487b7160e01b8a52601160045260248afd5b50604080516304b5466b60e01b815291955090925082600481865afa8015611b405788928991611af7575b5093826005811015611ae3578015611a05576020611a8d91604051809381926304a0030d60e21b835260048301612209565b03818a5afa908115611ad8578a91611aa7575b509461190d565b90506020813d8211611ad0575b81611ac160209383610f60565b8101031261032b57515f611aa0565b3d9150611ab4565b6040513d8c823e3d90fd5b634e487b7160e01b8a52602160045260248afd5b9250506040823d8211611b38575b81611b1260409383610f60565b81010312611b34578151916005831015611b3057602001515f611a5b565b8880fd5b8780fd5b3d9150611b05565b6040513d8a823e3d90fd5b60409995969798995160408101818110606851821117611b875790602092916040528a81528a8382015282828a0101520198979695949861178b565b634e487b7160e01b8b52604160045260248bfd5b9094506020813d602011611bc7575b81611bb760209383610f60565b8101031261032b5751935f61175c565b3d9150611baa565b6040513d88823e3d90fd5b91607493919351611bec61018e61218a565b169360405193633b474a6560e01b8552602085600481845afa948515610320575f95611fcb575b506020600494959660405195868092630d1a7ded60e21b82525afa938415610320575f94611f97575b50611c478434612138565b60046020611c5c87611c57610f90565b612138565b93604051928380926378cda08360e11b82525afa908115610320575f91611f5f575b50915f97611c906024938a96956115ee565b91808311611f57575b50808211611f4f575b506040519788938492637e0e497b60e01b845260048401525af1938415610320575f94611eba575b50835180611cdc575b50600193505050565b82611ce6916120c3565b6074517f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b1561032b575f91602483926040519485938492631df699e760e11b845260048401525af1801561032057611ea7575b5080805b8551821015611e3357607451611d5783886121e1565b5116803b156118dc57604051630d0e30db60e41b8152848160048189865af180156104ab57908591611e1e575b505060206004916040519283809263d2ceebd160e01b82525afa90811561056f578491611dec575b50611db9906001926115ee565b91607451611dc782896121e1565b51165f5160206122515f395f51905f5260408051888152426020820152a20190611d41565b90506020813d8211611e16575b81611e0660209383610f60565b8101031261032b57516001611dac565b3d9150611df9565b81611e2891610f60565b6118dc57835f611d84565b925050919250607451825460081c1690813b156118fe57829160448392604051948593849263ebb9d8c960e01b84525f5160206122315f395f51905f5260381b600485015260248401525af1801561091757611e92575b808392611cd3565b611e9d828092610f60565b6101635780611e8a565b611eb391505f90610f60565b5f5f611d3d565b9093503d805f833e611ecc8183610f60565b81019060208183031261032b57805190606851821161032b57019080601f8301121561032b578151611efd816121cf565b92611f0b6040519485610f60565b81845260208085019260051b82010192831161032b57602001905b828210611f3757505050925f611cca565b60208091611f44846113cf565b815201910190611f26565b90505f611ca2565b91505f611c99565b939290506020843d602011611f8f575b81611f7c60209383610f60565b8101031261032b5792519192915f611c7e565b3d9150611f6f565b9093506020813d602011611fc3575b81611fb360209383610f60565b8101031261032b5751925f611c3c565b3d9150611fa6565b9394506020843d602011611ffa575b81611fe760209383610f60565b8101031261032b57925193926020611c13565b3d9150611fda565b61201b915060203d602011610536576105288183610f60565b5f611716565b61203a915060203d602011610536576105288183610f60565b5f6116dc565b600160ff1b81101561204f5790565b60405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608490fd5b81156120af570490565b634e487b7160e01b5f52601260045260245ffd5b9081156111f457808202918083048203611645576120e190836120a5565b036120e95790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b908015612148576111f1916120a5565b60405162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b6044820152606490fd5b60405190612199606083610f60565b60218252601b60fa1b6040837f726f636b657444414f50726f746f636f6c53657474696e67734d696e69706f6f60208201520152565b6068518111610f7c5760051b60200190565b80518210156121f55760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b91906020830192600582101561221c5752565b634e487b7160e01b5f52602160045260245ffdfe000000000000006465706f7369742e706f6f6c2e6e6f64652e62616c616e6365a1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be9546865206465706f73697420706f6f6c2073697a65206166746572206465706f