Skip to content

Instantly share code, notes, and snippets.

@FoobarProtocol
Created April 28, 2025 00:44
Show Gist options
  • Save FoobarProtocol/fe35110614a990871c4f20359d8bc540 to your computer and use it in GitHub Desktop.
Save FoobarProtocol/fe35110614a990871c4f20359d8bc540 to your computer and use it in GitHub Desktop.
This is the equivalent Yul code of the Gnosis Safe logic contract for version 1.1.1
// Decompiled by library.dedaub.com
// 2025.04.18 18:07 UTC
object "contract" {
code { }
object "runtime" {
code {
function func_0x311e(_0, _1, _2) -> ret_val_0, ret_val_1 {
let _3 := mload(0x40)
mstore(_3, _0)
mstore(0x40, add(_3, add(0x20, mul(0x20, _0))))
let _4 := iszero(_0)
if not(_4){
let _5 := add(0x20, _3)
let _6 := mul(_0, 0x20)
codecopy(_5, codesize(), _6)
let _7 := add(_5, _6)
}
let _8 := 0x0
let _9 := 0x0
let _10 := 0x0
let _11 := 0x0
let _12 := 0x0
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1)))
let _13 := add(0x20, 0x0)
mstore(_13, 0x1)
let _14 := sload(keccak256(0x0, add(0x20, _13)))
let _15 := and(0xffffffffffffffffffffffffffffffffffffffff, div(_14, exp(0x100, 0x0)))
let _16 := _15
let _17 := _15
let _18 := _15
let _19 := _15
let _20 := _15
for {
let _22 := 0xffffffffffffffffffffffffffffffffffffffff
let _23 := and(_22, _16)
let _24 := 0xffffffffffffffffffffffffffffffffffffffff
let _25 := 0x0
let _26 := and(_24, _25)
let _27 := eq(_23, _26)
let _28 := iszero(_27)
let _21 := _28
let _29 := 0x1
let _30 := add(_29, _12)
}
not(iszero(_21))
{ }
{
_25 := 0x0
_24 := 0xffffffffffffffffffffffffffffffffffffffff
_26 := and(_24, _25)
_22 := 0xffffffffffffffffffffffffffffffffffffffff
_23 := and(_22, _16)
_27 := eq(_23, _26)
_28 := iszero(_27)
let _31 := _28
_21 := _28
let _32 := iszero(_28)
let _33 := iszero(_31)
if not(_33){
_8 := _30
_21 := lt(_8, _0)
}
let _34 := not(iszero(_21))
if _34{
_9 := _30
mstore(_3, _9)
ret_val_0 := _17
ret_val_1 := _3
leave
break
}
if not(_34){
_10 := _30
let _35 := mload(_3)
let _36 := lt(_10, _35)
if _36{
_11 := _30
_12 := _30
mstore(add(add(0x20, mul(0x20, _11)), _3), and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _18)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _19)))
let _37 := add(0x20, 0x0)
mstore(_37, 0x1)
let _38 := sload(keccak256(0x0, add(0x20, _37)))
let _39 := and(0xffffffffffffffffffffffffffffffffffffffff, div(_38, exp(0x100, 0x0)))
_16 := _39
_17 := _39
_18 := _39
_19 := _39
_20 := _39
_29 := 0x1
_30 := add(_29, _12)
_8 := _30
_9 := _30
_10 := _30
_11 := _30
_12 := _30
}
if not(_36){
invalid()
}
}
let _40 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _20), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
_31 := _40
_21 := _40
}
}
mstore(0x40, 0x80)
let _41 := lt(calldatasize(), 0x4)
if not(_41){
let _42 := shr(0xe0, calldataload(0x0))
let _43 := gt(0xaffed0e0, _42)
if _43{
let _44 := gt(0x610b5925, _42)
if _44{
let _45 := gt(0x2f54bf6e, _42)
if _45{
let _46 := eq(0xa1028c4, _42)
switch _42
case 0xa1028c4{
func_getMessageHash()
}
case 0xd582f13{
func_addOwnerWithThreshold()
}
case 0x20c13b0b{
func_isValidSignature()
}
default { }
}
if not(_45){
let _47 := eq(0x2f54bf6e, _42)
switch _42
case 0x2f54bf6e{
func_isOwner()
}
case 0x468721a7{
func_execTransactionFromModule()
}
case 0x5229073f{
func_execTransactionFromModuleReturnData()
}
case 0x5ae6bd37{
func_signedMessages()
}
default { }
}
}
if not(_44){
let _48 := gt(0x7de7edef, _42)
if _48{
let _49 := eq(0x610b5925, _42)
switch _42
case 0x610b5925{
func_enableModule()
}
case 0x694e80c3{
func_changeThreshold()
}
case 0x6a761202{
func_execTransaction()
}
case 0x7d832974{
func_approvedHashes()
}
default { }
}
if not(_48){
let _50 := eq(0x7de7edef, _42)
switch _42
case 0x7de7edef{
func_changeMasterCopy()
}
case 0x85a5affe{
func_signMessage()
}
case 0xa0e67e2b{
func_getOwners()
}
case 0xa3f4df7e{
func_NAME()
}
default { }
}
}
}
if not(_43){
let _51 := gt(0xe009cfde, _42)
if _51{
let _52 := gt(0xc4ca3a9c, _42)
if _52{
let _53 := eq(0xaffed0e0, _42)
switch _42
case 0xaffed0e0{
func_nonce()
}
case 0xb2494df3{
func_getModules()
}
case 0xb63e800d{
func_setup()
}
default { }
}
if not(_52){
let _54 := eq(0xc4ca3a9c, _42)
switch _42
case 0xc4ca3a9c{
func_requiredTxGas()
}
case 0xcc2f8452{
func_getModulesPaginated()
}
case 0xd4d9bdcd{
func_approveHash()
}
case 0xd8d11f78{
func_getTransactionHash()
}
default { }
}
}
if not(_51){
let _55 := gt(0xf08a0323, _42)
if _55{
let _56 := eq(0xe009cfde, _42)
switch _42
case 0xe009cfde{
func_disableModule()
}
case 0xe318b52b{
func_swapOwner()
}
case 0xe75235b8{
func_getThreshold()
}
case 0xe86637db{
func_encodeTransactionData()
}
default { }
}
if not(_55){
let _57 := eq(0xf08a0323, _42)
switch _42
case 0xf08a0323{
func_setFallbackHandler()
}
case 0xf698da25{
func_domainSeparator()
}
case 0xf8dc5dd9{
func_removeOwner()
}
case 0xffa1ad74{
func_VERSION()
}
default { }
}
}
}
}
func_fallback()
function func_fallback() {
let _58 := gt(callvalue(), 0x0)
let _59 := _58
if not(_58){
_59 := eq(calldatasize(), 0x0)
}
let _60 := iszero(_59)
if _60{
let _61 := sload(shl(0x0, 0x6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d5))
let _62 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, _61), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if not(_62){
calldatacopy(0x0, 0x0, calldatasize())
let _63 := call(gas(), _61, 0x0, 0x0, calldatasize(), 0x0, 0x0)
returndatacopy(0x0, 0x0, returndatasize())
let _64 := iszero(eq(_63, 0x0))
if _64{
return(0x0, returndatasize())
}
if not(_64){
revert(0x0, returndatasize())
}
}
}
stop()
}
function func_0x24af(_65, _66) {
let _67 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _67{
let _68 := sload(0x3)
let _69 := iszero(gt(_65, _68))
if _69{
let _70 := iszero(lt(_65, 0x1))
if _70{
sstore(0x4, _65)
let _71 := sload(0x4)
let _72 := mload(0x40)
mstore(_72, _71)
let _73 := mload(0x40)
log1(_73, sub(add(0x20, _72), _73), 0x610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c93)
leave
}
if not(_70){
let _74 := mload(0x40)
mstore(_74, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _75 := add(0x4, _74)
let _76 := add(0x20, _75)
mstore(_75, sub(_76, _75))
mstore(_76, 0x24)
let _77 := add(0x20, _76)
codecopy(_77, 0x5c7a, 0x24)
let _78 := mload(0x40)
revert(_78, sub(add(0x40, _77), _78))
}
}
if not(_69){
let _79 := mload(0x40)
mstore(_79, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _80 := add(0x4, _79)
let _81 := add(0x20, _80)
mstore(_80, sub(_81, _80))
mstore(_81, 0x23)
let _82 := add(0x20, _81)
codecopy(_82, 0x5ba4, 0x23)
let _83 := mload(0x40)
revert(_83, sub(add(0x40, _82), _83))
}
}
if not(_67){
let _84 := mload(0x40)
mstore(_84, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _85 := add(0x4, _84)
let _86 := add(0x20, _85)
mstore(_85, sub(_86, _85))
mstore(_86, 0x2c)
let _87 := add(0x20, _86)
codecopy(_87, 0x5cd5, 0x2c)
let _88 := mload(0x40)
revert(_88, sub(add(0x40, _87), _88))
}
}
function func_0x470a(_89, _90, _91, _92, _93) {
let _94 := 0x0
let _95 := 0x0
let _96 := 0x0
let _97 := 0x0
let _98 := 0x0
let _99 := 0x0
let _100 := sload(0x4)
let _101 := gt(_100, 0x0)
if _101{
let _102 := and(0xffffffff, 0x5938)
let _103 := mload(_90)
let _104 := iszero(lt(_103, func_0x5938(0x41, _100, 0x479b)))
if _104{
let _105 := 0x0
let _106 := 0x0
let _107 := 0x0
let _108 := 0x0
for {
let _109 := lt(_106, _100)
let _110 := 0xffffffffffffffffffffffffffffffffffffffff
let _111 := caller()
let _112 := and(_110, _111)
let _113 := 0xffffffffffffffffffffffffffffffffffffffff
let _114 := 0x0
_99 := _94
_98 := _96
_97 := _96
let _115 := 0x0
let _116 := 0x41
let _117 := mul(_116, _107)
let _118 := 0x20
let _119 := add(_117, _118)
let _120 := add(_90, _119)
let _121 := mload(_120)
_96 := shr(_115, _121)
_95 := _96
let _122 := 0x1
let _123 := add(_122, _108)
let _124 := shr(_114, _121)
let _125 := and(_113, _124)
let _126 := eq(_112, _125)
_94 := iszero(_126)
}
not(iszero(_109))
{ }
{
_106 := _123
_109 := lt(_106, _100)
let _127 := not(iszero(_109))
_107 := _123
_116 := 0x41
_117 := mul(_116, _107)
_118 := 0x20
_119 := add(_117, _118)
_120 := add(_90, _119)
_121 := mload(_120)
let _128 := mload(add(_90, add(_117, 0x40)))
let _129 := mload(add(_90, add(_117, 0x41)))
let _130 := and(_129, 0xff)
let _131 := iszero(eq(and(0xff, _130), 0x0))
if _131{
let _132 := iszero(eq(and(0xff, _130), 0x1))
if _132{
let _133 := iszero(gt(and(0xff, _130), 0x1e))
if _133{
let _134 := mload(0x40)
mstore(_134, 0x0)
mstore(0x40, add(0x20, _134))
let _135 := mload(0x40)
mstore(_135, _92)
let _136 := add(0x20, _135)
mstore(_136, and(0xff, and(0xff, _130)))
let _137 := add(0x20, _136)
mstore(_137, _121)
let _138 := add(0x20, _137)
mstore(_138, _128)
let _139 := mload(0x40)
let _140 := staticcall(gas(), 0x1, _139, sub(add(0x20, _138), _139), sub(_139, 0x20), 0x20)
let _141 := iszero(iszero(_140))
if _141{
let _142 := mload(0x40)
let _143 := mload(sub(_142, 0x20))
_105 := _143
_98 := _143
_97 := _143
_95 := _143
}
if not(_141){
returndatacopy(0x0, 0x0, returndatasize())
revert(0x0, returndatasize())
}
}
if not(_133){
let _144 := mload(0x40)
let _145 := add(0x20, _144)
mstore(_145, 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000)
let _146 := add(0x1c, _145)
mstore(_146, _92)
let _147 := add(0x20, _146)
let _148 := mload(0x40)
mstore(_148, sub(sub(_147, _148), 0x20))
mstore(0x40, _147)
let _149 := mload(_148)
let _150 := mload(0x40)
mstore(_150, 0x0)
mstore(0x40, add(0x20, _150))
let _151 := mload(0x40)
mstore(_151, keccak256(add(0x20, _148), _149))
let _152 := add(0x20, _151)
mstore(_152, and(0xff, and(0xff, sub(_130, 0x4))))
let _153 := add(0x20, _152)
mstore(_153, _121)
let _154 := add(0x20, _153)
mstore(_154, _128)
let _155 := mload(0x40)
let _156 := staticcall(gas(), 0x1, _155, sub(add(0x20, _154), _155), sub(_155, 0x20), 0x20)
let _157 := iszero(iszero(_156))
if _157{
let _158 := mload(0x40)
let _159 := mload(sub(_158, 0x20))
_105 := _159
_98 := _159
_97 := _159
_95 := _159
}
if not(_157){
returndatacopy(0x0, 0x0, returndatasize())
revert(0x0, returndatasize())
}
}
}
if not(_132){
_114 := 0x0
_124 := shr(_114, _121)
_105 := _124
_98 := _124
_97 := _124
_95 := _124
let _160 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, _124))
let _161 := _160
if not(_160){
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _124)))
let _162 := add(0x20, 0x0)
mstore(_162, 0x8)
mstore(0x0, _92)
let _163 := add(0x20, 0x0)
mstore(_163, keccak256(0x0, add(0x20, _162)))
let _164 := sload(keccak256(0x0, add(0x20, _163)))
_161 := iszero(eq(_164, 0x0))
}
if _161{
let _165 := iszero(_89)
if not(_165){
_113 := 0xffffffffffffffffffffffffffffffffffffffff
_125 := and(_113, _124)
_111 := caller()
_110 := 0xffffffffffffffffffffffffffffffffffffffff
_112 := and(_110, _111)
_126 := eq(_112, _125)
_94 := iszero(_126)
_99 := _94
}
let _166 := iszero(_99)
if not(_166){
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _124)))
let _167 := add(0x20, 0x0)
mstore(_167, 0x8)
mstore(0x0, _92)
let _168 := add(0x20, 0x0)
mstore(_168, keccak256(0x0, add(0x20, _167)))
sstore(keccak256(0x0, add(0x20, _168)), 0x0)
}
}
if not(_161){
let _169 := mload(0x40)
mstore(_169, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _170 := add(0x4, _169)
let _171 := add(0x20, _170)
mstore(_170, sub(_171, _170))
mstore(_171, 0x1a)
let _172 := add(0x20, _171)
mstore(_172, 0x4861736820686173206e6f74206265656e20617070726f766564000000000000)
let _173 := mload(0x40)
revert(_173, sub(add(0x20, _172), _173))
}
}
}
if not(_131){
_115 := 0x0
_96 := shr(_115, _121)
_105 := _96
_98 := _96
_97 := _96
_95 := _96
let _174 := and(0xffffffff, 0x5938)
let _175 := iszero(lt(shr(0x0, _128), func_0x5938(0x41, _100, 0x4866)))
if _175{
let _176 := mload(_90)
let _177 := and(0xffffffff, 0x59a1)
let _178 := iszero(gt(func_0x59a1(0x20, shr(0x0, _128), 0x48da), _176))
if _178{
let _179 := mload(add(add(_90, _128), 0x20))
let _180 := mload(_90)
let _181 := and(0xffffffff, 0x59a1)
let _182 := and(0xffffffff, 0x59a1)
let _183 := iszero(gt(func_0x59a1(_179, func_0x59a1(0x20, shr(0x0, _128), 0x4959), 0x4967), _180))
if _183{
let _184 := add(add(_90, _128), 0x20)
let _185 := and(0xffffffffffffffffffffffffffffffffffffffff, _96)
let _186 := mload(0x40)
mstore(_186, shl(0xe0, and(0xffffffff, 0x20c13b0b)))
let _187 := add(0x4, _186)
let _188 := add(0x20, _187)
let _189 := add(0x20, _188)
mstore(_187, sub(_189, _187))
let _190 := mload(_91)
mstore(_189, _190)
let _191 := add(0x20, _189)
let _192 := mload(_91)
let _193 := 0x0
let _194 := 0x0
for {
let _195 := lt(_193, _192)
let _196 := 0x20
let _197 := add(_194, _196)
}
not(iszero(_195))
{ }
{
_193 := _197
_195 := lt(_193, _192)
let _198 := not(iszero(_195))
_194 := _197
let _199 := mload(add(add(0x20, _91), _194))
mstore(add(_191, _194), _199)
_196 := 0x20
_197 := add(_194, _196)
_193 := _197
_194 := _197
}
let _200 := add(_192, _191)
let _201 := _200
let _202 := and(0x1f, _192)
let _203 := iszero(_202)
if not(_203){
let _204 := sub(_200, _202)
let _205 := mload(_204)
mstore(_204, and(not(sub(exp(0x100, sub(0x20, _202)), 0x1)), _205))
_201 := add(0x20, _204)
}
mstore(_188, sub(_201, _187))
let _206 := mload(_184)
mstore(_201, _206)
let _207 := add(0x20, _201)
let _208 := mload(_184)
let _209 := 0x0
let _210 := 0x0
for {
let _211 := lt(_209, _208)
let _212 := 0x20
let _213 := add(_210, _212)
}
not(iszero(_211))
{ }
{
_209 := _213
_211 := lt(_209, _208)
let _214 := not(iszero(_211))
_210 := _213
let _215 := mload(add(add(0x20, _184), _210))
mstore(add(_207, _210), _215)
_212 := 0x20
_213 := add(_210, _212)
_209 := _213
_210 := _213
}
let _216 := add(_208, _207)
let _217 := _216
let _218 := and(0x1f, _208)
let _219 := iszero(_218)
if not(_219){
let _220 := sub(_216, _218)
let _221 := mload(_220)
mstore(_220, and(not(sub(exp(0x100, sub(0x20, _218)), 0x1)), _221))
_217 := add(0x20, _220)
}
let _222 := mload(0x40)
let _223 := iszero(iszero(extcodesize(_185)))
require(not(_223))
let _224 := staticcall(gas(), _185, _222, sub(_217, _222), _222, 0x20)
let _225 := iszero(iszero(_224))
if _225{
let _226 := mload(0x40)
let _227 := returndatasize()
let _228 := iszero(lt(_227, 0x20))
require(not(_228))
let _229 := add(_226, _227)
let _230 := mload(_226)
let _231 := add(0x20, _226)
let _232 := eq(and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), _230), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xe0, 0x20c13b0b)))
if not(_232){
let _233 := mload(0x40)
mstore(_233, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _234 := add(0x4, _233)
let _235 := add(0x20, _234)
mstore(_234, sub(_235, _234))
mstore(_235, 0x23)
let _236 := add(0x20, _235)
codecopy(_236, 0x5b59, 0x23)
let _237 := mload(0x40)
revert(_237, sub(add(0x40, _236), _237))
}
}
if not(_225){
returndatacopy(0x0, 0x0, returndatasize())
revert(0x0, returndatasize())
}
}
if not(_183){
let _238 := mload(0x40)
mstore(_238, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _239 := add(0x4, _238)
let _240 := add(0x20, _239)
mstore(_239, sub(_240, _239))
mstore(_240, 0x36)
let _241 := add(0x20, _240)
codecopy(_241, 0x5c44, 0x36)
let _242 := mload(0x40)
revert(_242, sub(add(0x40, _241), _242))
}
}
if not(_178){
let _243 := mload(0x40)
mstore(_243, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _244 := add(0x4, _243)
let _245 := add(0x20, _244)
mstore(_244, sub(_245, _244))
mstore(_245, 0x37)
let _246 := add(0x20, _245)
codecopy(_246, 0x5d31, 0x37)
let _247 := mload(0x40)
revert(_247, sub(add(0x40, _246), _247))
}
}
if not(_175){
let _248 := mload(0x40)
mstore(_248, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _249 := add(0x4, _248)
let _250 := add(0x20, _249)
mstore(_249, sub(_250, _249))
mstore(_250, 0x37)
let _251 := add(0x20, _250)
codecopy(_251, 0x5c9e, 0x37)
let _252 := mload(0x40)
revert(_252, sub(add(0x40, _251), _252))
}
}
let _253 := gt(and(0xffffffffffffffffffffffffffffffffffffffff, _98), and(0xffffffffffffffffffffffffffffffffffffffff, _105))
let _254 := _253
let _255 := _253
let _256 := iszero(_253)
if not(_256){
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _97)))
let _257 := add(0x20, 0x0)
mstore(_257, 0x2)
let _258 := sload(keccak256(0x0, add(0x20, _257)))
let _259 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_258, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
_254 := _259
_255 := _259
}
let _260 := iszero(_255)
if not(_260){
_254 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _95), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
}
if _254{
_108 := _123
_122 := 0x1
_123 := add(_122, _108)
_106 := _123
_107 := _123
_108 := _123
}
if not(_254){
let _261 := mload(0x40)
mstore(_261, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _262 := add(0x4, _261)
let _263 := add(0x20, _262)
mstore(_262, sub(_263, _262))
mstore(_263, 0x16)
let _264 := add(0x20, _263)
mstore(_264, 0x496e76616c6964206f776e65722070726f766964656400000000000000000000)
let _265 := mload(0x40)
revert(_265, sub(add(0x20, _264), _265))
break
}
}
leave
}
if not(_104){
let _266 := mload(0x40)
mstore(_266, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _267 := add(0x4, _266)
let _268 := add(0x20, _267)
mstore(_267, sub(_268, _267))
mstore(_268, 0x19)
let _269 := add(0x20, _268)
mstore(_269, 0x5369676e617475726573206461746120746f6f2073686f727400000000000000)
let _270 := mload(0x40)
revert(_270, sub(add(0x20, _269), _270))
}
}
if not(_101){
let _271 := mload(0x40)
mstore(_271, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _272 := add(0x4, _271)
let _273 := add(0x20, _272)
mstore(_272, sub(_273, _272))
mstore(_273, 0x1e)
let _274 := add(0x20, _273)
mstore(_274, 0x5468726573686f6c64206e6565647320746f20626520646566696e6564210000)
let _275 := mload(0x40)
revert(_275, sub(add(0x20, _274), _275))
}
}
function func_0x50ca(_276, _277, _278, _279, _280, _281) -> ret_val_0 {
let _282 := 0x0
let _283 := 0x0
let _284 := 0x0
let _285 := 0x0
let _286 := 0x0
let _287 := 0x0
let _288 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, _276), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if _288{
let _289 := origin()
_287 := _289
_286 := _289
}
let _290 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _277), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
if _290{
let _291 := and(0xffffffff, 0x59a1)
let _292 := and(0xffffffff, 0x5938)
let _293 := func_0x5938(_278, func_0x59a1(_279, _280, 0x521b), 0x5229)
_285 := _293
let _294 := func_0x59f0(_293, _287, _277, 0x5236)
if not(_294){
let _295 := mload(0x40)
mstore(_295, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _296 := add(0x4, _295)
let _297 := add(0x20, _296)
mstore(_296, sub(_297, _296))
mstore(_297, 0x22)
let _298 := add(0x20, _297)
codecopy(_298, 0x5bfc, 0x22)
let _299 := mload(0x40)
revert(_299, sub(add(0x40, _298), _299))
}
}
if not(_290){
let _300 := lt(_278, gasprice())
if not(_300){
let _301 := gasprice()
_284 := _301
_283 := _301
}
let _302 := and(0xffffffff, 0x59a1)
let _303 := func_0x59a1(_279, _280, 0x5165)
let _304 := and(0xffffffff, 0x5938)
let _305 := iszero(eq(_303, 0x0))
if _305{
let _306 := mul(_303, _284)
_282 := _306
_285 := _306
if _303{
let _307 := eq(div(_306, _303), _283)
require(not(_307))
}
if not(_303){
invalid()
}
}
if not(_305){
_282 := 0x0
_285 := 0x0
}
let _308 := mload(0x40)
let _309 := mload(0x40)
let _310 := call(mul(iszero(_282), 0x8fc), and(0xffffffffffffffffffffffffffffffffffffffff, _286), _282, _309, sub(_308, _309), _309, 0x0)
if not(_310){
let _311 := mload(0x40)
mstore(_311, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _312 := add(0x4, _311)
let _313 := add(0x20, _312)
mstore(_312, sub(_313, _312))
mstore(_313, 0x22)
let _314 := add(0x20, _313)
codecopy(_314, 0x5d68, 0x22)
let _315 := mload(0x40)
revert(_315, sub(add(0x40, _314), _315))
}
}
ret_val_0 := _285
leave
}
function func_0x5938(_316, _317, _318) -> ret_val_0 {
let _319 := 0x0
let _320 := iszero(eq(_317, 0x0))
if _320{
let _321 := mul(_317, _316)
_319 := _321
if _317{
let _322 := eq(div(_321, _317), _316)
require(not(_322))
}
if not(_317){
invalid()
}
}
if not(_320){
_319 := 0x0
}
ret_val_0 := _319
leave
}
function func_0x59a1(_323, _324, _325) -> ret_val_0 {
let _326 := add(_324, _323)
let _327 := iszero(lt(_326, _324))
require(not(_327))
ret_val_0 := _326
leave
}
function func_0x59f0(_328, _329, _330, _331) -> ret_val_0 {
let _332 := mload(0x40)
let _333 := add(0x24, _332)
mstore(_333, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _329)))
let _334 := add(0x20, _333)
mstore(_334, _328)
let _335 := add(0x20, _334)
let _336 := mload(0x40)
mstore(_336, sub(sub(_335, _336), 0x20))
mstore(0x40, _335)
let _337 := add(_336, 0x20)
let _338 := mload(_337)
mstore(_337, or(and(_338, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), 0xa9059cbb00000000000000000000000000000000000000000000000000000000)))
let _339 := mload(_336)
let _340 := call(sub(gas(), 0x2710), _330, 0x0, add(_336, 0x20), _339, 0x0, 0x0)
let _341 := mload(0x40)
mstore(0x40, add(_341, returndatasize()))
returndatacopy(_341, 0x0, returndatasize())
let _342 := returndatasize()
let _343 := eq(_342, 0x0)
switch _342
case 0x0{
ret_val_0 := _340
leave
}
case 0x20{
let _344 := mload(_341)
let _345 := iszero(or(iszero(_340), iszero(_344)))
leave
}
default {
leave
}
}
function func_getMessageHash() {
let _346 := iszero(callvalue())
require(not(_346))
let _347 := sub(calldatasize(), 0x4)
let _348 := iszero(lt(_347, 0x20))
require(not(_348))
let _349 := add(0x4, _347)
let _350 := calldataload(0x4)
let _351 := add(0x20, 0x4)
let _352 := iszero(gt(_350, 0x100000000))
require(not(_352))
let _353 := add(0x4, _350)
let _354 := iszero(gt(add(_353, 0x20), _349))
require(not(_354))
let _355 := calldataload(_353)
let _356 := add(0x20, _353)
let _357 := iszero(or(gt(_355, 0x100000000), gt(add(_356, mul(_355, 0x1)), _349)))
require(not(_357))
let _358 := mload(0x40)
mstore(0x40, add(_358, add(0x20, mul(div(add(0x1f, _355), 0x20), 0x20))))
mstore(_358, _355)
let _359 := add(0x20, _358)
calldatacopy(_359, _356, _355)
mstore(add(_359, _355), 0x0)
let _360 := add(_359, and(add(_355, 0x1f), not(0x1f)))
let _361 := mload(_358)
let _362 := mload(0x40)
let _363 := add(0x20, _362)
mstore(_363, shl(0x0, 0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca))
let _364 := add(0x20, _363)
mstore(_364, keccak256(add(0x20, _358), _361))
let _365 := add(0x20, _364)
let _366 := mload(0x40)
mstore(_366, sub(sub(_365, _366), 0x20))
mstore(0x40, _365)
let _367 := mload(_366)
let _368 := sload(0x6)
let _369 := mload(0x40)
let _370 := add(0x20, _369)
mstore(_370, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x19))))
let _371 := add(0x1, _370)
mstore(_371, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x1))))
let _372 := add(0x1, _371)
mstore(_372, _368)
let _373 := add(0x20, _372)
mstore(_373, keccak256(add(0x20, _366), _367))
let _374 := add(0x20, _373)
let _375 := mload(0x40)
mstore(_375, sub(sub(_374, _375), 0x20))
mstore(0x40, _374)
let _376 := mload(_375)
let _377 := mload(0x40)
mstore(_377, keccak256(add(0x20, _375), _376))
let _378 := mload(0x40)
return(_378, sub(add(0x20, _377), _378))
}
function func_addOwnerWithThreshold() {
let _379 := iszero(callvalue())
require(not(_379))
let _380 := sub(calldatasize(), 0x4)
let _381 := iszero(lt(_380, 0x40))
require(not(_381))
let _382 := add(0x4, _380)
let _383 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _384 := add(0x20, 0x4)
let _385 := calldataload(_384)
let _386 := add(0x20, _384)
let _387 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _387{
let _388 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _383), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
let _389 := _388
let _390 := iszero(_388)
if not(_390){
_389 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _383), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
}
if _389{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _383)))
let _391 := add(0x20, 0x0)
mstore(_391, 0x2)
let _392 := sload(keccak256(0x0, add(0x20, _391)))
let _393 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_392, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if _393{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _394 := add(0x20, 0x0)
mstore(_394, 0x2)
let _395 := sload(keccak256(0x0, add(0x20, _394)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _383)))
let _396 := add(0x20, 0x0)
mstore(_396, 0x2)
let _397 := keccak256(0x0, add(0x20, _396))
let _398 := exp(0x100, 0x0)
let _399 := sload(_397)
sstore(_397, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_395, exp(0x100, 0x0)))), _398), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _398)), _399)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _400 := add(0x20, 0x0)
mstore(_400, 0x2)
let _401 := keccak256(0x0, add(0x20, _400))
let _402 := exp(0x100, 0x0)
let _403 := sload(_401)
sstore(_401, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, _383), _402), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _402)), _403)))
let _404 := sload(0x3)
sstore(0x3, add(0x1, _404))
let _405 := mload(0x40)
mstore(_405, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _383)))
let _406 := mload(0x40)
log1(_406, sub(add(0x20, _405), _406), 0x9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26)
let _407 := sload(0x4)
let _408 := eq(_407, _385)
if not(_408){
func_0x24af(_385, 0x1c07)
}
stop()
}
if not(_393){
let _409 := mload(0x40)
mstore(_409, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _410 := add(0x4, _409)
let _411 := add(0x20, _410)
mstore(_410, sub(_411, _410))
mstore(_411, 0x1b)
let _412 := add(0x20, _411)
mstore(_412, 0x4164647265737320697320616c726561647920616e206f776e65720000000000)
let _413 := mload(0x40)
revert(_413, sub(add(0x20, _412), _413))
}
}
if not(_389){
let _414 := mload(0x40)
mstore(_414, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _415 := add(0x4, _414)
let _416 := add(0x20, _415)
mstore(_415, sub(_416, _415))
mstore(_416, 0x1e)
let _417 := add(0x20, _416)
mstore(_417, 0x496e76616c6964206f776e657220616464726573732070726f76696465640000)
let _418 := mload(0x40)
revert(_418, sub(add(0x20, _417), _418))
}
}
if not(_387){
let _419 := mload(0x40)
mstore(_419, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _420 := add(0x4, _419)
let _421 := add(0x20, _420)
mstore(_420, sub(_421, _420))
mstore(_421, 0x2c)
let _422 := add(0x20, _421)
codecopy(_422, 0x5cd5, 0x2c)
let _423 := mload(0x40)
revert(_423, sub(add(0x40, _422), _423))
}
}
function func_isValidSignature() {
let _424 := iszero(callvalue())
require(not(_424))
let _425 := sub(calldatasize(), 0x4)
let _426 := iszero(lt(_425, 0x40))
require(not(_426))
let _427 := add(0x4, _425)
let _428 := calldataload(0x4)
let _429 := add(0x20, 0x4)
let _430 := iszero(gt(_428, 0x100000000))
require(not(_430))
let _431 := add(0x4, _428)
let _432 := iszero(gt(add(_431, 0x20), _427))
require(not(_432))
let _433 := calldataload(_431)
let _434 := add(0x20, _431)
let _435 := iszero(or(gt(_433, 0x100000000), gt(add(_434, mul(_433, 0x1)), _427)))
require(not(_435))
let _436 := calldataload(_429)
let _437 := add(0x20, _429)
let _438 := iszero(gt(_436, 0x100000000))
require(not(_438))
let _439 := add(0x4, _436)
let _440 := iszero(gt(add(_439, 0x20), _427))
require(not(_440))
let _441 := calldataload(_439)
let _442 := add(0x20, _439)
let _443 := iszero(or(gt(_441, 0x100000000), gt(add(_442, mul(_441, 0x1)), _427)))
require(not(_443))
let _444 := mload(0x40)
mstore(0x40, add(_444, add(0x20, mul(div(add(0x1f, _433), 0x20), 0x20))))
mstore(_444, _433)
let _445 := add(0x20, _444)
calldatacopy(_445, _434, _433)
mstore(add(_445, _433), 0x0)
let _446 := add(_445, and(add(_433, 0x1f), not(0x1f)))
let _447 := mload(_444)
let _448 := mload(0x40)
let _449 := add(0x20, _448)
mstore(_449, shl(0x0, 0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca))
let _450 := add(0x20, _449)
mstore(_450, keccak256(add(0x20, _444), _447))
let _451 := add(0x20, _450)
let _452 := mload(0x40)
mstore(_452, sub(sub(_451, _452), 0x20))
mstore(0x40, _451)
let _453 := mload(_452)
let _454 := sload(0x6)
let _455 := mload(0x40)
let _456 := add(0x20, _455)
mstore(_456, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x19))))
let _457 := add(0x1, _456)
mstore(_457, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x1))))
let _458 := add(0x1, _457)
mstore(_458, _454)
let _459 := add(0x20, _458)
mstore(_459, keccak256(add(0x20, _452), _453))
let _460 := add(0x20, _459)
let _461 := mload(0x40)
mstore(_461, sub(sub(_460, _461), 0x20))
mstore(0x40, _460)
let _462 := mload(_461)
let _463 := keccak256(add(0x20, _461), _462)
let _464 := iszero(eq(_441, 0x0))
if _464{
let _465 := mload(0x40)
mstore(0x40, add(_465, add(0x20, mul(div(add(0x1f, _433), 0x20), 0x20))))
mstore(_465, _433)
let _466 := add(0x20, _465)
calldatacopy(_466, _434, _433)
mstore(add(_466, _433), 0x0)
let _467 := add(_466, and(add(_433, 0x1f), not(0x1f)))
let _468 := mload(0x40)
mstore(0x40, add(_468, add(0x20, mul(div(add(0x1f, _441), 0x20), 0x20))))
mstore(_468, _441)
let _469 := add(0x20, _468)
calldatacopy(_469, _442, _441)
mstore(add(_469, _441), 0x0)
let _470 := add(_469, and(add(_441, 0x1f), not(0x1f)))
func_0x470a(0x0, _468, _465, _463, 0x1d8e)
}
if not(_464){
mstore(0x0, _463)
let _471 := add(0x20, 0x0)
mstore(_471, 0x7)
let _472 := sload(keccak256(0x0, add(0x20, _471)))
let _473 := iszero(eq(_472, 0x0))
if not(_473){
let _474 := mload(0x40)
mstore(_474, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _475 := add(0x4, _474)
let _476 := add(0x20, _475)
mstore(_475, sub(_476, _475))
mstore(_476, 0x11)
let _477 := add(0x20, _476)
mstore(_477, 0x48617368206e6f7420617070726f766564000000000000000000000000000000)
let _478 := mload(0x40)
revert(_478, sub(add(0x20, _477), _478))
}
}
let _479 := mload(0x40)
mstore(_479, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xe0, 0x20c13b0b))))
let _480 := mload(0x40)
return(_480, sub(add(0x20, _479), _480))
}
function func_isOwner() {
let _481 := iszero(callvalue())
require(not(_481))
let _482 := sub(calldatasize(), 0x4)
let _483 := iszero(lt(_482, 0x20))
require(not(_483))
let _484 := add(0x4, _482)
let _485 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _486 := add(0x20, 0x4)
let _487 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _485), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _488 := _487
let _489 := iszero(_487)
if not(_489){
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _485)))
let _490 := add(0x20, 0x0)
mstore(_490, 0x2)
let _491 := sload(keccak256(0x0, add(0x20, _490)))
_488 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_491, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
}
let _492 := mload(0x40)
mstore(_492, iszero(iszero(iszero(iszero(_488)))))
let _493 := mload(0x40)
return(_493, sub(add(0x20, _492), _493))
}
function func_execTransactionFromModule() {
let _494 := 0x0
let _495 := iszero(callvalue())
require(not(_495))
let _496 := sub(calldatasize(), 0x4)
let _497 := iszero(lt(_496, 0x80))
require(not(_497))
let _498 := add(0x4, _496)
let _499 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _500 := add(0x20, 0x4)
let _501 := add(0x20, _500)
let _502 := calldataload(_501)
let _503 := add(0x20, _501)
let _504 := iszero(gt(_502, 0x100000000))
require(not(_504))
let _505 := add(0x4, _502)
let _506 := iszero(gt(add(_505, 0x20), _498))
require(not(_506))
let _507 := calldataload(_505)
let _508 := add(0x20, _505)
let _509 := iszero(or(gt(_507, 0x100000000), gt(add(_508, mul(_507, 0x1)), _498)))
require(not(_509))
let _510 := mload(0x40)
mstore(0x40, add(_510, add(0x20, mul(div(add(0x1f, _507), 0x20), 0x20))))
mstore(_510, _507)
let _511 := add(0x20, _510)
calldatacopy(_511, _508, _507)
mstore(add(_511, _507), 0x0)
let _512 := add(_511, and(add(_507, 0x1f), not(0x1f)))
let _513 := and(0xff, calldataload(_503))
let _514 := add(0x20, _503)
let _515 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _516 := _515
let _517 := iszero(_515)
if not(_517){
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, caller())))
let _518 := add(0x20, 0x0)
mstore(_518, 0x1)
let _519 := sload(keccak256(0x0, add(0x20, _518)))
_516 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_519, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
}
if _516{
let _520 := gas()
let _521 := iszero(gt(0x0, 0x1))
if _521{
let _522 := iszero(gt(_513, 0x1))
if _522{
let _523 := iszero(eq(_513, 0x0))
if _523{
let _524 := iszero(gt(0x1, 0x1))
if _524{
let _525 := iszero(gt(_513, 0x1))
if _525{
let _526 := iszero(eq(_513, 0x1))
if _526{
let _527 := 0x0
}
if not(_526){
let _528 := mload(_510)
let _529 := delegatecall(_520, _499, add(_510, 0x20), _528, 0x0, 0x0)
let _527 := _529
}
}
if not(_525){
invalid()
}
}
if not(_524){
invalid()
}
}
if not(_523){
let _530 := mload(_510)
let _531 := call(_520, _499, calldataload(_500), add(_510, 0x20), _530, 0x0, 0x0)
_494 := _531
}
let _532 := iszero(_494)
if _532{
let _533 := mload(0x40)
let _534 := mload(0x40)
log2(_534, sub(_533, _534), 0xacd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375, and(0xffffffffffffffffffffffffffffffffffffffff, caller()))
}
if not(_532){
let _535 := mload(0x40)
let _536 := mload(0x40)
log2(_536, sub(_535, _536), 0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8, and(0xffffffffffffffffffffffffffffffffffffffff, caller()))
}
let _537 := mload(0x40)
mstore(_537, iszero(iszero(iszero(iszero(_494)))))
let _538 := mload(0x40)
return(_538, sub(add(0x20, _537), _538))
}
if not(_522){
invalid()
}
}
if not(_521){
invalid()
}
}
if not(_516){
let _539 := mload(0x40)
mstore(_539, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _540 := add(0x4, _539)
let _541 := add(0x20, _540)
mstore(_540, sub(_541, _540))
mstore(_541, 0x30)
let _542 := add(0x20, _541)
codecopy(_542, 0x5d01, 0x30)
let _543 := mload(0x40)
revert(_543, sub(add(0x40, _542), _543))
}
}
function func_execTransactionFromModuleReturnData() {
let _544 := 0x0
let _545 := iszero(callvalue())
require(not(_545))
let _546 := sub(calldatasize(), 0x4)
let _547 := iszero(lt(_546, 0x80))
require(not(_547))
let _548 := add(0x4, _546)
let _549 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _550 := add(0x20, 0x4)
let _551 := add(0x20, _550)
let _552 := calldataload(_551)
let _553 := add(0x20, _551)
let _554 := iszero(gt(_552, 0x100000000))
require(not(_554))
let _555 := add(0x4, _552)
let _556 := iszero(gt(add(_555, 0x20), _548))
require(not(_556))
let _557 := calldataload(_555)
let _558 := add(0x20, _555)
let _559 := iszero(or(gt(_557, 0x100000000), gt(add(_558, mul(_557, 0x1)), _548)))
require(not(_559))
let _560 := mload(0x40)
mstore(0x40, add(_560, add(0x20, mul(div(add(0x1f, _557), 0x20), 0x20))))
mstore(_560, _557)
let _561 := add(0x20, _560)
calldatacopy(_561, _558, _557)
mstore(add(_561, _557), 0x0)
let _562 := add(_561, and(add(_557, 0x1f), not(0x1f)))
let _563 := and(0xff, calldataload(_553))
let _564 := add(0x20, _553)
let _565 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _566 := _565
let _567 := iszero(_565)
if not(_567){
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, caller())))
let _568 := add(0x20, 0x0)
mstore(_568, 0x1)
let _569 := sload(keccak256(0x0, add(0x20, _568)))
_566 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_569, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
}
if _566{
let _570 := gas()
let _571 := iszero(gt(0x0, 0x1))
if _571{
let _572 := iszero(gt(_563, 0x1))
if _572{
let _573 := iszero(eq(_563, 0x0))
if _573{
let _574 := iszero(gt(0x1, 0x1))
if _574{
let _575 := iszero(gt(_563, 0x1))
if _575{
let _576 := iszero(eq(_563, 0x1))
if _576{
let _577 := 0x0
}
if not(_576){
let _578 := mload(_560)
let _579 := delegatecall(_570, _549, add(_560, 0x20), _578, 0x0, 0x0)
let _577 := _579
}
}
if not(_575){
invalid()
}
}
if not(_574){
invalid()
}
}
if not(_573){
let _580 := mload(_560)
let _581 := call(_570, _549, calldataload(_550), add(_560, 0x20), _580, 0x0, 0x0)
_544 := _581
}
let _582 := iszero(_544)
if _582{
let _583 := mload(0x40)
let _584 := mload(0x40)
log2(_584, sub(_583, _584), 0xacd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375, and(0xffffffffffffffffffffffffffffffffffffffff, caller()))
}
if not(_582){
let _585 := mload(0x40)
let _586 := mload(0x40)
log2(_586, sub(_585, _586), 0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8, and(0xffffffffffffffffffffffffffffffffffffffff, caller()))
}
let _587 := mload(0x40)
mstore(0x40, add(_587, add(returndatasize(), 0x20)))
mstore(_587, returndatasize())
returndatacopy(add(_587, 0x20), 0x0, returndatasize())
let _588 := mload(0x40)
mstore(_588, iszero(iszero(iszero(iszero(_544)))))
let _589 := add(0x20, _588)
let _590 := add(0x20, _589)
mstore(_589, sub(_590, _588))
let _591 := mload(_587)
mstore(_590, _591)
let _592 := add(0x20, _590)
let _593 := mload(_587)
let _594 := 0x0
let _595 := 0x0
for {
let _596 := lt(_594, _593)
let _597 := 0x20
let _598 := add(_595, _597)
}
not(iszero(_596))
{ }
{
_594 := _598
_596 := lt(_594, _593)
let _599 := not(iszero(_596))
_595 := _598
let _600 := mload(add(add(0x20, _587), _595))
mstore(add(_592, _595), _600)
_597 := 0x20
_598 := add(_595, _597)
_594 := _598
_595 := _598
}
let _601 := add(_593, _592)
let _602 := _601
let _603 := and(0x1f, _593)
let _604 := iszero(_603)
if not(_604){
let _605 := sub(_601, _603)
let _606 := mload(_605)
mstore(_605, and(not(sub(exp(0x100, sub(0x20, _603)), 0x1)), _606))
_602 := add(0x20, _605)
}
let _607 := mload(0x40)
return(_607, sub(_602, _607))
}
if not(_572){
invalid()
}
}
if not(_571){
invalid()
}
}
if not(_566){
let _608 := mload(0x40)
mstore(_608, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _609 := add(0x4, _608)
let _610 := add(0x20, _609)
mstore(_609, sub(_610, _609))
mstore(_610, 0x30)
let _611 := add(0x20, _610)
codecopy(_611, 0x5d01, 0x30)
let _612 := mload(0x40)
revert(_612, sub(add(0x40, _611), _612))
}
}
function func_signedMessages() {
let _613 := iszero(callvalue())
require(not(_613))
let _614 := sub(calldatasize(), 0x4)
let _615 := iszero(lt(_614, 0x20))
require(not(_615))
let _616 := add(0x4, _614)
let _617 := add(0x20, 0x4)
mstore(0x20, 0x7)
mstore(0x0, calldataload(0x4))
let _618 := sload(keccak256(0x0, 0x40))
let _619 := mload(0x40)
mstore(_619, _618)
let _620 := mload(0x40)
return(_620, sub(add(0x20, _619), _620))
}
function func_enableModule() {
let _621 := iszero(callvalue())
require(not(_621))
let _622 := sub(calldatasize(), 0x4)
let _623 := iszero(lt(_622, 0x20))
require(not(_623))
let _624 := add(0x4, _622)
let _625 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _626 := add(0x20, 0x4)
let _627 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _627{
let _628 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _625), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
let _629 := _628
let _630 := iszero(_628)
if not(_630){
_629 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _625), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
}
if _629{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _625)))
let _631 := add(0x20, 0x0)
mstore(_631, 0x1)
let _632 := sload(keccak256(0x0, add(0x20, _631)))
let _633 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_632, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if _633{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _634 := add(0x20, 0x0)
mstore(_634, 0x1)
let _635 := sload(keccak256(0x0, add(0x20, _634)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _625)))
let _636 := add(0x20, 0x0)
mstore(_636, 0x1)
let _637 := keccak256(0x0, add(0x20, _636))
let _638 := exp(0x100, 0x0)
let _639 := sload(_637)
sstore(_637, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_635, exp(0x100, 0x0)))), _638), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _638)), _639)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _640 := add(0x20, 0x0)
mstore(_640, 0x1)
let _641 := keccak256(0x0, add(0x20, _640))
let _642 := exp(0x100, 0x0)
let _643 := sload(_641)
sstore(_641, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, _625), _642), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _642)), _643)))
let _644 := mload(0x40)
mstore(_644, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _625)))
let _645 := mload(0x40)
log1(_645, sub(add(0x20, _644), _645), 0xecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f8440)
stop()
}
if not(_633){
let _646 := mload(0x40)
mstore(_646, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _647 := add(0x4, _646)
let _648 := add(0x20, _647)
mstore(_647, sub(_648, _647))
mstore(_648, 0x1d)
let _649 := add(0x20, _648)
mstore(_649, 0x4d6f64756c652068617320616c7265616479206265656e206164646564000000)
let _650 := mload(0x40)
revert(_650, sub(add(0x20, _649), _650))
}
}
if not(_629){
let _651 := mload(0x40)
mstore(_651, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _652 := add(0x4, _651)
let _653 := add(0x20, _652)
mstore(_652, sub(_653, _652))
mstore(_653, 0x1f)
let _654 := add(0x20, _653)
mstore(_654, 0x496e76616c6964206d6f64756c6520616464726573732070726f766964656400)
let _655 := mload(0x40)
revert(_655, sub(add(0x20, _654), _655))
}
}
if not(_627){
let _656 := mload(0x40)
mstore(_656, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _657 := add(0x4, _656)
let _658 := add(0x20, _657)
mstore(_657, sub(_658, _657))
mstore(_658, 0x2c)
let _659 := add(0x20, _658)
codecopy(_659, 0x5cd5, 0x2c)
let _660 := mload(0x40)
revert(_660, sub(add(0x40, _659), _660))
}
}
function func_changeThreshold() {
let _661 := iszero(callvalue())
require(not(_661))
let _662 := sub(calldatasize(), 0x4)
let _663 := iszero(lt(_662, 0x20))
require(not(_663))
let _664 := add(0x4, _662)
let _665 := add(0x20, 0x4)
func_0x24af(calldataload(0x4), 0x8b7)
stop()
}
function func_execTransaction() {
let _666 := 0x0
let _667 := 0x0
let _668 := iszero(callvalue())
require(not(_668))
let _669 := sub(calldatasize(), 0x4)
let _670 := iszero(lt(_669, 0x140))
require(not(_670))
let _671 := add(0x4, _669)
let _672 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _673 := add(0x20, 0x4)
let _674 := calldataload(_673)
let _675 := add(0x20, _673)
let _676 := calldataload(_675)
let _677 := add(0x20, _675)
let _678 := iszero(gt(_676, 0x100000000))
require(not(_678))
let _679 := add(0x4, _676)
let _680 := iszero(gt(add(_679, 0x20), _671))
require(not(_680))
let _681 := calldataload(_679)
let _682 := add(0x20, _679)
let _683 := iszero(or(gt(_681, 0x100000000), gt(add(_682, mul(_681, 0x1)), _671)))
require(not(_683))
let _684 := and(0xff, calldataload(_677))
let _685 := add(0x20, _677)
let _686 := calldataload(_685)
let _687 := _686
let _688 := _686
let _689 := add(0x20, _685)
let _690 := calldataload(_689)
let _691 := add(0x20, _689)
let _692 := calldataload(_691)
let _693 := add(0x20, _691)
let _694 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_693))
let _695 := add(0x20, _693)
let _696 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_695))
let _697 := add(0x20, _695)
let _698 := calldataload(_697)
let _699 := add(0x20, _697)
let _700 := iszero(gt(_698, 0x100000000))
require(not(_700))
let _701 := add(0x4, _698)
let _702 := iszero(gt(add(_701, 0x20), _671))
require(not(_702))
let _703 := calldataload(_701)
let _704 := add(0x20, _701)
let _705 := iszero(or(gt(_703, 0x100000000), gt(add(_704, mul(_703, 0x1)), _671)))
require(not(_705))
let _706 := mload(0x40)
mstore(0x40, add(_706, add(0x20, mul(div(add(0x1f, _681), 0x20), 0x20))))
mstore(_706, _681)
let _707 := add(0x20, _706)
calldatacopy(_707, _682, _681)
mstore(add(_707, _681), 0x0)
let _708 := add(_707, and(add(_681, 0x1f), not(0x1f)))
let _709 := sload(0x5)
let _710 := mload(_706)
let _711 := mload(0x40)
let _712 := add(0x20, _711)
mstore(_712, shl(0x0, 0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8))
let _713 := add(0x20, _712)
mstore(_713, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _672)))
let _714 := add(0x20, _713)
mstore(_714, _674)
let _715 := add(0x20, _714)
mstore(_715, keccak256(add(0x20, _706), _710))
let _716 := add(0x20, _715)
let _717 := iszero(gt(_684, 0x1))
if _717{
mstore(_716, and(0xff, _684))
let _718 := add(0x20, _716)
mstore(_718, _686)
let _719 := add(0x20, _718)
mstore(_719, _690)
let _720 := add(0x20, _719)
mstore(_720, _692)
let _721 := add(0x20, _720)
mstore(_721, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _694)))
let _722 := add(0x20, _721)
mstore(_722, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _696)))
let _723 := add(0x20, _722)
mstore(_723, _709)
let _724 := add(0x20, _723)
let _725 := mload(0x40)
mstore(_725, sub(sub(_724, _725), 0x20))
mstore(0x40, _724)
let _726 := mload(_725)
let _727 := sload(0x6)
let _728 := mload(0x40)
let _729 := add(0x20, _728)
mstore(_729, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x19))))
let _730 := add(0x1, _729)
mstore(_730, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x1))))
let _731 := add(0x1, _730)
mstore(_731, _727)
let _732 := add(0x20, _731)
mstore(_732, keccak256(add(0x20, _725), _726))
let _733 := add(0x20, _732)
let _734 := mload(0x40)
mstore(_734, sub(sub(_733, _734), 0x20))
mstore(0x40, _733)
let _735 := sload(0x5)
sstore(0x5, add(0x1, _735))
let _736 := mload(_734)
let _737 := keccak256(add(0x20, _734), _736)
let _738 := mload(0x40)
mstore(0x40, add(_738, add(0x20, mul(div(add(0x1f, _703), 0x20), 0x20))))
mstore(_738, _703)
let _739 := add(0x20, _738)
calldatacopy(_739, _704, _703)
mstore(add(_739, _703), 0x0)
let _740 := add(_739, and(add(_703, 0x1f), not(0x1f)))
func_0x470a(0x1, _738, _734, _737, 0x26f7)
let _741 := iszero(lt(gas(), _686))
if _741{
let _742 := gas()
let _743 := mload(0x40)
mstore(0x40, add(_743, add(0x20, mul(div(add(0x1f, _681), 0x20), 0x20))))
mstore(_743, _681)
let _744 := add(0x20, _743)
calldatacopy(_744, _682, _681)
mstore(add(_744, _681), 0x0)
let _745 := add(_744, and(add(_681, 0x1f), not(0x1f)))
let _746 := eq(_686, 0x0)
let _747 := _746
let _748 := iszero(_746)
if not(_748){
_747 := eq(_692, 0x0)
}
if _747{
let _749 := gas()
_687 := _749
_688 := _749
}
let _750 := iszero(gt(0x0, 0x1))
if _750{
let _751 := iszero(gt(_684, 0x1))
if _751{
let _752 := iszero(eq(_684, 0x0))
if _752{
let _753 := iszero(gt(0x1, 0x1))
if _753{
let _754 := iszero(gt(_684, 0x1))
if _754{
let _755 := iszero(eq(_684, 0x1))
if _755{
_667 := 0x0
_666 := 0x0
}
if not(_755){
let _756 := mload(_743)
let _757 := delegatecall(_687, _672, add(_743, 0x20), _756, 0x0, 0x0)
_667 := _757
_666 := _757
}
}
if not(_754){
invalid()
}
}
if not(_753){
invalid()
}
}
if not(_752){
let _758 := mload(_743)
let _759 := call(_688, _672, _674, add(_743, 0x20), _758, 0x0, 0x0)
_667 := _759
_666 := _759
}
let _760 := gas()
let _761 := and(0xffffffff, 0x50aa)
let _762 := iszero(gt(_760, _742))
require(not(_762))
let _763 := 0x0
let _764 := 0x0
let _765 := iszero(gt(_692, 0x0))
if not(_765){
let _766 := func_0x50ca(_696, _694, _692, _690, sub(_742, _760), 0x27f4)
_763 := _766
_764 := _766
}
let _767 := iszero(_667)
if _767{
let _768 := mload(0x40)
mstore(_768, _737)
let _769 := add(0x20, _768)
mstore(_769, _763)
let _770 := mload(0x40)
log1(_770, sub(add(0x20, _769), _770), 0x23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23)
}
if not(_767){
let _771 := mload(0x40)
mstore(_771, _737)
let _772 := add(0x20, _771)
mstore(_772, _764)
let _773 := mload(0x40)
log1(_773, sub(add(0x20, _772), _773), 0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e)
}
let _774 := mload(0x40)
mstore(_774, iszero(iszero(iszero(iszero(_666)))))
let _775 := mload(0x40)
return(_775, sub(add(0x20, _774), _775))
}
if not(_751){
invalid()
}
}
if not(_750){
invalid()
}
}
if not(_741){
let _776 := mload(0x40)
mstore(_776, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _777 := add(0x4, _776)
let _778 := add(0x20, _777)
mstore(_777, sub(_778, _777))
mstore(_778, 0x2a)
let _779 := add(0x20, _778)
codecopy(_779, 0x5d8a, 0x2a)
let _780 := mload(0x40)
revert(_780, sub(add(0x40, _779), _780))
}
}
if not(_717){
invalid()
}
}
function func_approvedHashes() {
let _781 := iszero(callvalue())
require(not(_781))
let _782 := sub(calldatasize(), 0x4)
let _783 := iszero(lt(_782, 0x40))
require(not(_783))
let _784 := add(0x4, _782)
let _785 := add(0x20, 0x4)
let _786 := add(0x20, _785)
mstore(0x20, 0x8)
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4)))
mstore(0x20, keccak256(0x0, 0x40))
mstore(0x0, calldataload(_785))
let _787 := sload(keccak256(0x0, 0x40))
let _788 := mload(0x40)
mstore(_788, _787)
let _789 := mload(0x40)
return(_789, sub(add(0x20, _788), _789))
}
function func_changeMasterCopy() {
let _790 := iszero(callvalue())
require(not(_790))
let _791 := sub(calldatasize(), 0x4)
let _792 := iszero(lt(_791, 0x20))
require(not(_792))
let _793 := add(0x4, _791)
let _794 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _795 := add(0x20, 0x4)
let _796 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _796{
let _797 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _794), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
if _797{
let _798 := exp(0x100, 0x0)
let _799 := sload(0x0)
sstore(0x0, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, _794), _798), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _798)), _799)))
let _800 := mload(0x40)
mstore(_800, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _794)))
let _801 := mload(0x40)
log1(_801, sub(add(0x20, _800), _801), 0x75e41bc35ff1bf14d81d1d2f649c0084a0f974f9289c803ec9898eeec4c8d0b8)
stop()
}
if not(_797){
let _802 := mload(0x40)
mstore(_802, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _803 := add(0x4, _802)
let _804 := add(0x20, _803)
mstore(_803, sub(_804, _803))
mstore(_804, 0x24)
let _805 := add(0x20, _804)
codecopy(_805, 0x5b10, 0x24)
let _806 := mload(0x40)
revert(_806, sub(add(0x40, _805), _806))
}
}
if not(_796){
let _807 := mload(0x40)
mstore(_807, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _808 := add(0x4, _807)
let _809 := add(0x20, _808)
mstore(_808, sub(_809, _808))
mstore(_809, 0x2c)
let _810 := add(0x20, _809)
codecopy(_810, 0x5cd5, 0x2c)
let _811 := mload(0x40)
revert(_811, sub(add(0x40, _810), _811))
}
}
function func_signMessage() {
let _812 := iszero(callvalue())
require(not(_812))
let _813 := sub(calldatasize(), 0x4)
let _814 := iszero(lt(_813, 0x20))
require(not(_814))
let _815 := add(0x4, _813)
let _816 := calldataload(0x4)
let _817 := add(0x20, 0x4)
let _818 := iszero(gt(_816, 0x100000000))
require(not(_818))
let _819 := add(0x4, _816)
let _820 := iszero(gt(add(_819, 0x20), _815))
require(not(_820))
let _821 := calldataload(_819)
let _822 := add(0x20, _819)
let _823 := iszero(or(gt(_821, 0x100000000), gt(add(_822, mul(_821, 0x1)), _815)))
require(not(_823))
let _824 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _824{
let _825 := mload(0x40)
mstore(0x40, add(_825, add(0x20, mul(div(add(0x1f, _821), 0x20), 0x20))))
mstore(_825, _821)
let _826 := add(0x20, _825)
calldatacopy(_826, _822, _821)
mstore(add(_826, _821), 0x0)
let _827 := add(_826, and(add(_821, 0x1f), not(0x1f)))
let _828 := mload(_825)
let _829 := mload(0x40)
let _830 := add(0x20, _829)
mstore(_830, shl(0x0, 0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca))
let _831 := add(0x20, _830)
mstore(_831, keccak256(add(0x20, _825), _828))
let _832 := add(0x20, _831)
let _833 := mload(0x40)
mstore(_833, sub(sub(_832, _833), 0x20))
mstore(0x40, _832)
let _834 := mload(_833)
let _835 := sload(0x6)
let _836 := mload(0x40)
let _837 := add(0x20, _836)
mstore(_837, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x19))))
let _838 := add(0x1, _837)
mstore(_838, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x1))))
let _839 := add(0x1, _838)
mstore(_839, _835)
let _840 := add(0x20, _839)
mstore(_840, keccak256(add(0x20, _833), _834))
let _841 := add(0x20, _840)
let _842 := mload(0x40)
mstore(_842, sub(sub(_841, _842), 0x20))
mstore(0x40, _841)
let _843 := mload(_842)
let _844 := keccak256(add(0x20, _842), _843)
mstore(0x0, _844)
let _845 := add(0x20, 0x0)
mstore(_845, 0x7)
sstore(keccak256(0x0, add(0x20, _845)), 0x1)
let _846 := mload(0x40)
let _847 := mload(0x40)
log2(_847, sub(_846, _847), 0xe7f4675038f4f6034dfcbbb24c4dc08e4ebf10eb9d257d3d02c0f38d122ac6e4, _844)
stop()
}
if not(_824){
let _848 := mload(0x40)
mstore(_848, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _849 := add(0x4, _848)
let _850 := add(0x20, _849)
mstore(_849, sub(_850, _849))
mstore(_850, 0x2c)
let _851 := add(0x20, _850)
codecopy(_851, 0x5cd5, 0x2c)
let _852 := mload(0x40)
revert(_852, sub(add(0x40, _851), _852))
}
}
function func_getOwners() {
let _853 := iszero(callvalue())
require(not(_853))
let _854 := sload(0x3)
let _855 := mload(0x40)
mstore(_855, _854)
mstore(0x40, add(_855, add(0x20, mul(0x20, _854))))
let _856 := iszero(_854)
if not(_856){
let _857 := add(0x20, _855)
let _858 := mul(_854, 0x20)
codecopy(_857, codesize(), _858)
let _859 := add(_857, _858)
}
let _860 := 0x0
let _861 := 0x0
let _862 := 0x0
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _863 := add(0x20, 0x0)
mstore(_863, 0x2)
let _864 := sload(keccak256(0x0, add(0x20, _863)))
let _865 := and(0xffffffffffffffffffffffffffffffffffffffff, div(_864, exp(0x100, 0x0)))
let _866 := _865
let _867 := _865
let _868 := _865
for {
let _871 := 0xffffffffffffffffffffffffffffffffffffffff
let _872 := 0x1
let _870 := and(_871, _872)
let _873 := 0xffffffffffffffffffffffffffffffffffffffff
let _869 := and(_873, _866)
let _874 := 0x1
let _875 := add(_874, _862)
}
not(eq(_869, _870))
{ }
{
_872 := 0x1
_871 := 0xffffffffffffffffffffffffffffffffffffffff
_870 := and(_871, _872)
_873 := 0xffffffffffffffffffffffffffffffffffffffff
_869 := and(_873, _866)
let _876 := not(eq(_869, _870))
_860 := _875
let _877 := mload(_855)
let _878 := lt(_860, _877)
if _878{
_861 := _875
_862 := _875
mstore(add(add(0x20, mul(0x20, _861)), _855), and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _867)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _868)))
let _879 := add(0x20, 0x0)
mstore(_879, 0x2)
let _880 := sload(keccak256(0x0, add(0x20, _879)))
let _881 := and(0xffffffffffffffffffffffffffffffffffffffff, div(_880, exp(0x100, 0x0)))
_866 := _881
_867 := _881
_868 := _881
_874 := 0x1
_875 := add(_874, _862)
_860 := _875
_861 := _875
_862 := _875
}
if not(_878){
invalid()
break
}
}
let _882 := mload(0x40)
let _883 := add(0x20, _882)
mstore(_882, sub(_883, _882))
let _884 := mload(_855)
mstore(_883, _884)
let _885 := add(0x20, _883)
let _886 := mload(_855)
let _887 := mul(0x20, _886)
let _888 := 0x0
let _889 := 0x0
for {
let _890 := lt(_888, _887)
let _891 := 0x20
let _892 := add(_889, _891)
}
not(iszero(_890))
{ }
{
_888 := _892
_890 := lt(_888, _887)
let _893 := not(iszero(_890))
_889 := _892
let _894 := mload(add(add(0x20, _855), _889))
mstore(add(_885, _889), _894)
_891 := 0x20
_892 := add(_889, _891)
_888 := _892
_889 := _892
}
let _895 := mload(0x40)
return(_895, sub(add(_887, _885), _895))
}
function func_NAME() {
let _896 := iszero(callvalue())
require(not(_896))
let _897 := mload(0x40)
mstore(0x40, add(0x40, _897))
mstore(_897, 0xb)
mstore(add(0x20, _897), 0x476e6f7369732053616665000000000000000000000000000000000000000000)
let _898 := mload(0x40)
let _899 := add(0x20, _898)
mstore(_898, sub(_899, _898))
let _900 := mload(_897)
mstore(_899, _900)
let _901 := add(0x20, _899)
let _902 := mload(_897)
let _903 := 0x0
let _904 := 0x0
for {
let _905 := lt(_903, _902)
let _906 := 0x20
let _907 := add(_904, _906)
}
not(iszero(_905))
{ }
{
_903 := _907
_905 := lt(_903, _902)
let _908 := not(iszero(_905))
_904 := _907
let _909 := mload(add(add(0x20, _897), _904))
mstore(add(_901, _904), _909)
_906 := 0x20
_907 := add(_904, _906)
_903 := _907
_904 := _907
}
let _910 := add(_902, _901)
let _911 := _910
let _912 := and(0x1f, _902)
let _913 := iszero(_912)
if not(_913){
let _914 := sub(_910, _912)
let _915 := mload(_914)
mstore(_914, and(not(sub(exp(0x100, sub(0x20, _912)), 0x1)), _915))
_911 := add(0x20, _914)
}
let _916 := mload(0x40)
return(_916, sub(_911, _916))
}
function func_nonce() {
let _917 := iszero(callvalue())
require(not(_917))
let _918 := sload(0x5)
let _919 := mload(0x40)
mstore(_919, _918)
let _920 := mload(0x40)
return(_920, sub(add(0x20, _919), _920))
}
function func_getModules() {
let _921 := iszero(callvalue())
require(not(_921))
let _922, _923 := func_0x311e(0xa, 0x1, 0x2d6c)
let _924 := mload(0x40)
let _925 := add(0x20, _924)
mstore(_924, sub(_925, _924))
let _926 := mload(_923)
mstore(_925, _926)
let _927 := add(0x20, _925)
let _928 := mload(_923)
let _929 := mul(0x20, _928)
let _930 := 0x0
let _931 := 0x0
for {
let _932 := lt(_930, _929)
let _933 := 0x20
let _934 := add(_931, _933)
}
not(iszero(_932))
{ }
{
_930 := _934
_932 := lt(_930, _929)
let _935 := not(iszero(_932))
_931 := _934
let _936 := mload(add(add(0x20, _923), _931))
mstore(add(_927, _931), _936)
_933 := 0x20
_934 := add(_931, _933)
_930 := _934
_931 := _934
}
let _937 := mload(0x40)
return(_937, sub(add(_929, _927), _937))
}
function func_setup() {
let _938 := iszero(callvalue())
require(not(_938))
let _939 := sub(calldatasize(), 0x4)
let _940 := iszero(lt(_939, 0x100))
require(not(_940))
let _941 := add(0x4, _939)
let _942 := calldataload(0x4)
let _943 := add(0x20, 0x4)
let _944 := iszero(gt(_942, 0x100000000))
require(not(_944))
let _945 := add(0x4, _942)
let _946 := iszero(gt(add(_945, 0x20), _941))
require(not(_946))
let _947 := calldataload(_945)
let _948 := add(0x20, _945)
let _949 := iszero(or(gt(_947, 0x100000000), gt(add(_948, mul(_947, 0x20)), _941)))
require(not(_949))
let _950 := calldataload(_943)
let _951 := add(0x20, _943)
let _952 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_951))
let _953 := add(0x20, _951)
let _954 := calldataload(_953)
let _955 := add(0x20, _953)
let _956 := iszero(gt(_954, 0x100000000))
require(not(_956))
let _957 := add(0x4, _954)
let _958 := iszero(gt(add(_957, 0x20), _941))
require(not(_958))
let _959 := calldataload(_957)
let _960 := add(0x20, _957)
let _961 := iszero(or(gt(_959, 0x100000000), gt(add(_960, mul(_959, 0x1)), _941)))
require(not(_961))
let _962 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_955))
let _963 := add(0x20, _955)
let _964 := add(0x20, _963)
let _965 := calldataload(_964)
let _966 := add(0x20, _964)
let _967 := add(0x20, _966)
let _968 := sload(0x6)
let _969 := eq(_968, shl(0x0, 0x0))
if _969{
let _970 := mload(0x40)
let _971 := add(0x20, _970)
mstore(_971, shl(0x0, 0x35aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749))
let _972 := add(0x20, _971)
mstore(_972, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, address())))
let _973 := add(0x20, _972)
let _974 := mload(0x40)
mstore(_974, sub(sub(_973, _974), 0x20))
mstore(0x40, _973)
let _975 := mload(_974)
sstore(0x6, keccak256(add(0x20, _974), _975))
let _976 := mload(0x40)
mstore(0x40, add(_976, add(0x20, mul(0x20, _947))))
mstore(_976, _947)
let _977 := add(0x20, _976)
let _978 := mul(0x20, _947)
calldatacopy(_977, _948, _978)
mstore(add(_977, _978), 0x0)
let _979 := add(_977, and(add(_978, 0x1f), not(0x1f)))
let _980 := sload(0x4)
let _981 := eq(_980, 0x0)
switch _980
case 0x0{
let _982 := mload(_976)
let _983 := iszero(gt(_950, _982))
if _983{
let _984 := iszero(lt(_950, 0x1))
if _984{
let _985 := 0x1
let _986 := 0x1
let _987 := 0x0
let _988 := 0x0
let _989 := 0x0
let _990 := 0x0
for {
let _992 := mload(_976)
let _991 := lt(_987, _992)
let _993 := 0x1
let _994 := add(_993, _990)
}
not(iszero(_991))
{ }
{
_987 := _994
_992 := mload(_976)
_991 := lt(_987, _992)
let _995 := not(iszero(_991))
_988 := _994
let _996 := mload(_976)
let _997 := lt(_988, _996)
if _997{
_989 := _994
let _998 := mload(add(add(0x20, mul(0x20, _989)), _976))
_985 := _998
_986 := _998
let _999 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _998), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
let _1000 := _999
let _1001 := iszero(_999)
if not(_1001){
_1000 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _998), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
}
if _1000{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _998)))
let _1002 := add(0x20, 0x0)
mstore(_1002, 0x2)
let _1003 := sload(keccak256(0x0, add(0x20, _1002)))
let _1004 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1003, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if _1004{
_990 := _994
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _985)))
let _1005 := add(0x20, 0x0)
mstore(_1005, 0x2)
let _1006 := keccak256(0x0, add(0x20, _1005))
let _1007 := exp(0x100, 0x0)
let _1008 := sload(_1006)
sstore(_1006, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, _998), _1007), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1007)), _1008)))
_993 := 0x1
_994 := add(_993, _990)
_987 := _994
_988 := _994
_989 := _994
_990 := _994
}
if not(_1004){
let _1009 := mload(0x40)
mstore(_1009, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1010 := add(0x4, _1009)
let _1011 := add(0x20, _1010)
mstore(_1010, sub(_1011, _1010))
mstore(_1011, 0x20)
let _1012 := add(0x20, _1011)
mstore(_1012, 0x4475706c6963617465206f776e657220616464726573732070726f7669646564)
let _1013 := mload(0x40)
revert(_1013, sub(add(0x20, _1012), _1013))
}
}
if not(_1000){
let _1014 := mload(0x40)
mstore(_1014, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1015 := add(0x4, _1014)
let _1016 := add(0x20, _1015)
mstore(_1015, sub(_1016, _1015))
mstore(_1016, 0x1e)
let _1017 := add(0x20, _1016)
mstore(_1017, 0x496e76616c6964206f776e657220616464726573732070726f76696465640000)
let _1018 := mload(0x40)
revert(_1018, sub(add(0x20, _1017), _1018))
}
}
if not(_997){
invalid()
break
}
}
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _986)))
let _1019 := add(0x20, 0x0)
mstore(_1019, 0x2)
let _1020 := keccak256(0x0, add(0x20, _1019))
let _1021 := exp(0x100, 0x0)
let _1022 := sload(_1020)
sstore(_1020, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, 0x1), _1021), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1021)), _1022)))
let _1023 := mload(_976)
sstore(0x3, _1023)
sstore(0x4, _950)
let _1024 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, _962), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if not(_1024){
sstore(shl(0x0, 0x6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d5), _962)
}
let _1025 := mload(0x40)
mstore(0x40, add(_1025, add(0x20, mul(div(add(0x1f, _959), 0x20), 0x20))))
mstore(_1025, _959)
let _1026 := add(0x20, _1025)
calldatacopy(_1026, _960, _959)
mstore(add(_1026, _959), 0x0)
let _1027 := add(_1026, and(add(_959, 0x1f), not(0x1f)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _1028 := add(0x20, 0x0)
mstore(_1028, 0x1)
let _1029 := sload(keccak256(0x0, add(0x20, _1028)))
let _1030 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1029, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if _1030{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
let _1031 := add(0x20, 0x0)
mstore(_1031, 0x1)
let _1032 := keccak256(0x0, add(0x20, _1031))
let _1033 := exp(0x100, 0x0)
let _1034 := sload(_1032)
sstore(_1032, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, 0x1), _1033), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1033)), _1034)))
let _1035 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, _952), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if not(_1035){
let _1036 := mload(_1025)
let _1037 := delegatecall(gas(), _952, add(_1025, 0x20), _1036, 0x0, 0x0)
if not(_1037){
let _1038 := mload(0x40)
mstore(_1038, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1039 := add(0x4, _1038)
let _1040 := add(0x20, _1039)
mstore(_1039, sub(_1040, _1039))
mstore(_1040, 0x1f)
let _1041 := add(0x20, _1040)
mstore(_1041, 0x436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e00)
let _1042 := mload(0x40)
revert(_1042, sub(add(0x20, _1041), _1042))
}
}
let _1043 := iszero(gt(_965, 0x0))
if not(_1043){
let _1044 := func_0x50ca(and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_966)), and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_963)), 0x1, 0x0, _965, 0x2f63)
}
stop()
}
if not(_1030){
let _1045 := mload(0x40)
mstore(_1045, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1046 := add(0x4, _1045)
let _1047 := add(0x20, _1046)
mstore(_1046, sub(_1047, _1046))
mstore(_1047, 0x25)
let _1048 := add(0x20, _1047)
codecopy(_1048, 0x5b34, 0x25)
let _1049 := mload(0x40)
revert(_1049, sub(add(0x40, _1048), _1049))
}
}
if not(_984){
let _1050 := mload(0x40)
mstore(_1050, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1051 := add(0x4, _1050)
let _1052 := add(0x20, _1051)
mstore(_1051, sub(_1052, _1051))
mstore(_1052, 0x24)
let _1053 := add(0x20, _1052)
codecopy(_1053, 0x5c7a, 0x24)
let _1054 := mload(0x40)
revert(_1054, sub(add(0x40, _1053), _1054))
}
}
if not(_983){
let _1055 := mload(0x40)
mstore(_1055, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1056 := add(0x4, _1055)
let _1057 := add(0x20, _1056)
mstore(_1056, sub(_1057, _1056))
mstore(_1057, 0x23)
let _1058 := add(0x20, _1057)
codecopy(_1058, 0x5ba4, 0x23)
let _1059 := mload(0x40)
revert(_1059, sub(add(0x40, _1058), _1059))
}
}
default {
let _1060 := mload(0x40)
mstore(_1060, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1061 := add(0x4, _1060)
let _1062 := add(0x20, _1061)
mstore(_1061, sub(_1062, _1061))
mstore(_1062, 0x1e)
let _1063 := add(0x20, _1062)
mstore(_1063, 0x4f776e657273206861766520616c7265616479206265656e2073657475700000)
let _1064 := mload(0x40)
revert(_1064, sub(add(0x20, _1063), _1064))
}
}
if not(_969){
let _1065 := mload(0x40)
mstore(_1065, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1066 := add(0x4, _1065)
let _1067 := add(0x20, _1066)
mstore(_1066, sub(_1067, _1066))
mstore(_1067, 0x1d)
let _1068 := add(0x20, _1067)
mstore(_1068, 0x446f6d61696e20536570617261746f7220616c72656164792073657421000000)
let _1069 := mload(0x40)
revert(_1069, sub(add(0x20, _1068), _1069))
}
}
function func_requiredTxGas() {
let _1070 := 0x0
let _1071 := iszero(callvalue())
require(not(_1071))
let _1072 := sub(calldatasize(), 0x4)
let _1073 := iszero(lt(_1072, 0x80))
require(not(_1073))
let _1074 := add(0x4, _1072)
let _1075 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _1076 := add(0x20, 0x4)
let _1077 := add(0x20, _1076)
let _1078 := calldataload(_1077)
let _1079 := add(0x20, _1077)
let _1080 := iszero(gt(_1078, 0x100000000))
require(not(_1080))
let _1081 := add(0x4, _1078)
let _1082 := iszero(gt(add(_1081, 0x20), _1074))
require(not(_1082))
let _1083 := calldataload(_1081)
let _1084 := add(0x20, _1081)
let _1085 := iszero(or(gt(_1083, 0x100000000), gt(add(_1084, mul(_1083, 0x1)), _1074)))
require(not(_1085))
let _1086 := and(0xff, calldataload(_1079))
let _1087 := add(0x20, _1079)
let _1088 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _1088{
let _1089 := mload(0x40)
mstore(0x40, add(_1089, add(0x20, mul(div(add(0x1f, _1083), 0x20), 0x20))))
mstore(_1089, _1083)
let _1090 := add(0x20, _1089)
calldatacopy(_1090, _1084, _1083)
mstore(add(_1090, _1083), 0x0)
let _1091 := add(_1090, and(add(_1083, 0x1f), not(0x1f)))
let _1092 := gas()
let _1093 := iszero(gt(0x0, 0x1))
if _1093{
let _1094 := iszero(gt(_1086, 0x1))
if _1094{
let _1095 := iszero(eq(_1086, 0x0))
if _1095{
let _1096 := iszero(gt(0x1, 0x1))
if _1096{
let _1097 := iszero(gt(_1086, 0x1))
if _1097{
let _1098 := iszero(eq(_1086, 0x1))
if _1098{
let _1099 := 0x0
}
if not(_1098){
let _1100 := mload(_1089)
let _1101 := delegatecall(_1092, _1075, add(_1089, 0x20), _1100, 0x0, 0x0)
let _1099 := _1101
}
}
if not(_1097){
invalid()
}
}
if not(_1096){
invalid()
}
}
if not(_1095){
let _1102 := mload(_1089)
let _1103 := call(_1092, _1075, calldataload(_1076), add(_1089, 0x20), _1102, 0x0, 0x0)
_1070 := _1103
}
require(not(_1070))
let _1104 := mload(0x40)
let _1105 := add(0x20, _1104)
mstore(_1105, sub(gas(), gas()))
let _1106 := add(0x20, _1105)
let _1107 := mload(0x40)
mstore(_1107, sub(sub(_1106, _1107), 0x20))
mstore(0x40, _1106)
let _1108 := mload(0x40)
mstore(_1108, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1109 := add(0x4, _1108)
let _1110 := add(0x20, _1109)
mstore(_1109, sub(_1110, _1109))
let _1111 := mload(_1107)
mstore(_1110, _1111)
let _1112 := add(0x20, _1110)
let _1113 := mload(_1107)
let _1114 := 0x0
let _1115 := 0x0
for {
let _1116 := lt(_1114, _1113)
let _1117 := 0x20
let _1118 := add(_1115, _1117)
}
not(iszero(_1116))
{ }
{
_1114 := _1118
_1116 := lt(_1114, _1113)
let _1119 := not(iszero(_1116))
_1115 := _1118
let _1120 := mload(add(add(0x20, _1107), _1115))
mstore(add(_1112, _1115), _1120)
_1117 := 0x20
_1118 := add(_1115, _1117)
_1114 := _1118
_1115 := _1118
}
let _1121 := add(_1113, _1112)
let _1122 := _1121
let _1123 := and(0x1f, _1113)
let _1124 := iszero(_1123)
if not(_1124){
let _1125 := sub(_1121, _1123)
let _1126 := mload(_1125)
mstore(_1125, and(not(sub(exp(0x100, sub(0x20, _1123)), 0x1)), _1126))
_1122 := add(0x20, _1125)
}
let _1127 := mload(0x40)
revert(_1127, sub(_1122, _1127))
}
if not(_1094){
invalid()
}
}
if not(_1093){
invalid()
}
}
if not(_1088){
let _1128 := mload(0x40)
mstore(_1128, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1129 := add(0x4, _1128)
let _1130 := add(0x20, _1129)
mstore(_1129, sub(_1130, _1129))
mstore(_1130, 0x2c)
let _1131 := add(0x20, _1130)
codecopy(_1131, 0x5cd5, 0x2c)
let _1132 := mload(0x40)
revert(_1132, sub(add(0x40, _1131), _1132))
}
}
function func_getModulesPaginated() {
let _1133 := iszero(callvalue())
require(not(_1133))
let _1134 := sub(calldatasize(), 0x4)
let _1135 := iszero(lt(_1134, 0x40))
require(not(_1135))
let _1136 := add(0x4, _1134)
let _1137 := add(0x20, 0x4)
let _1138 := add(0x20, _1137)
let _1139, _1140 := func_0x311e(calldataload(_1137), and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4)), 0xfb5)
let _1141 := mload(0x40)
let _1142 := add(0x20, _1141)
mstore(_1142, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1139)))
let _1143 := add(0x20, _1142)
mstore(_1141, sub(_1143, _1141))
let _1144 := mload(_1140)
mstore(_1143, _1144)
let _1145 := add(0x20, _1143)
let _1146 := mload(_1140)
let _1147 := mul(0x20, _1146)
let _1148 := 0x0
let _1149 := 0x0
for {
let _1150 := lt(_1148, _1147)
let _1151 := 0x20
let _1152 := add(_1149, _1151)
}
not(iszero(_1150))
{ }
{
_1148 := _1152
_1150 := lt(_1148, _1147)
let _1153 := not(iszero(_1150))
_1149 := _1152
let _1154 := mload(add(add(0x20, _1140), _1149))
mstore(add(_1145, _1149), _1154)
_1151 := 0x20
_1152 := add(_1149, _1151)
_1148 := _1152
_1149 := _1152
}
let _1155 := mload(0x40)
return(_1155, sub(add(_1147, _1145), _1155))
}
function func_approveHash() {
let _1156 := iszero(callvalue())
require(not(_1156))
let _1157 := sub(calldatasize(), 0x4)
let _1158 := iszero(lt(_1157, 0x20))
require(not(_1158))
let _1159 := add(0x4, _1157)
let _1160 := calldataload(0x4)
let _1161 := add(0x20, 0x4)
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, caller())))
let _1162 := add(0x20, 0x0)
mstore(_1162, 0x2)
let _1163 := sload(keccak256(0x0, add(0x20, _1162)))
let _1164 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1163, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
if _1164{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, caller())))
let _1165 := add(0x20, 0x0)
mstore(_1165, 0x8)
mstore(0x0, _1160)
let _1166 := add(0x20, 0x0)
mstore(_1166, keccak256(0x0, add(0x20, _1165)))
sstore(keccak256(0x0, add(0x20, _1166)), 0x1)
let _1167 := mload(0x40)
let _1168 := mload(0x40)
log3(_1168, sub(_1167, _1168), 0xf2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c, _1160, and(0xffffffffffffffffffffffffffffffffffffffff, caller()))
stop()
}
if not(_1164){
let _1169 := mload(0x40)
mstore(_1169, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1170 := add(0x4, _1169)
let _1171 := add(0x20, _1170)
mstore(_1170, sub(_1171, _1170))
mstore(_1171, 0x1e)
let _1172 := add(0x20, _1171)
mstore(_1172, 0x4f6e6c79206f776e6572732063616e20617070726f7665206120686173680000)
let _1173 := mload(0x40)
revert(_1173, sub(add(0x20, _1172), _1173))
}
}
function func_getTransactionHash() {
let _1174 := iszero(callvalue())
require(not(_1174))
let _1175 := sub(calldatasize(), 0x4)
let _1176 := iszero(lt(_1175, 0x140))
require(not(_1176))
let _1177 := add(0x4, _1175)
let _1178 := add(0x20, 0x4)
let _1179 := add(0x20, _1178)
let _1180 := calldataload(_1179)
let _1181 := add(0x20, _1179)
let _1182 := iszero(gt(_1180, 0x100000000))
require(not(_1182))
let _1183 := add(0x4, _1180)
let _1184 := iszero(gt(add(_1183, 0x20), _1177))
require(not(_1184))
let _1185 := calldataload(_1183)
let _1186 := add(0x20, _1183)
let _1187 := iszero(or(gt(_1185, 0x100000000), gt(add(_1186, mul(_1185, 0x1)), _1177)))
require(not(_1187))
let _1188 := mload(0x40)
mstore(0x40, add(_1188, add(0x20, mul(div(add(0x1f, _1185), 0x20), 0x20))))
mstore(_1188, _1185)
let _1189 := add(0x20, _1188)
calldatacopy(_1189, _1186, _1185)
mstore(add(_1189, _1185), 0x0)
let _1190 := add(_1189, and(add(_1185, 0x1f), not(0x1f)))
let _1191 := and(0xff, calldataload(_1181))
let _1192 := add(0x20, _1181)
let _1193 := add(0x20, _1192)
let _1194 := add(0x20, _1193)
let _1195 := add(0x20, _1194)
let _1196 := add(0x20, _1195)
let _1197 := add(0x20, _1196)
let _1198 := add(0x20, _1197)
let _1199 := mload(_1188)
let _1200 := mload(0x40)
let _1201 := add(0x20, _1200)
mstore(_1201, shl(0x0, 0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8))
let _1202 := add(0x20, _1201)
mstore(_1202, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4)))))
let _1203 := add(0x20, _1202)
mstore(_1203, calldataload(_1178))
let _1204 := add(0x20, _1203)
mstore(_1204, keccak256(add(0x20, _1188), _1199))
let _1205 := add(0x20, _1204)
let _1206 := iszero(gt(_1191, 0x1))
if _1206{
mstore(_1205, and(0xff, _1191))
let _1207 := add(0x20, _1205)
mstore(_1207, calldataload(_1192))
let _1208 := add(0x20, _1207)
mstore(_1208, calldataload(_1193))
let _1209 := add(0x20, _1208)
mstore(_1209, calldataload(_1194))
let _1210 := add(0x20, _1209)
mstore(_1210, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_1195)))))
let _1211 := add(0x20, _1210)
mstore(_1211, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_1196)))))
let _1212 := add(0x20, _1211)
mstore(_1212, calldataload(_1197))
let _1213 := add(0x20, _1212)
let _1214 := mload(0x40)
mstore(_1214, sub(sub(_1213, _1214), 0x20))
mstore(0x40, _1213)
let _1215 := mload(_1214)
let _1216 := sload(0x6)
let _1217 := mload(0x40)
let _1218 := add(0x20, _1217)
mstore(_1218, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x19))))
let _1219 := add(0x1, _1218)
mstore(_1219, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x1))))
let _1220 := add(0x1, _1219)
mstore(_1220, _1216)
let _1221 := add(0x20, _1220)
mstore(_1221, keccak256(add(0x20, _1214), _1215))
let _1222 := add(0x20, _1221)
let _1223 := mload(0x40)
mstore(_1223, sub(sub(_1222, _1223), 0x20))
mstore(0x40, _1222)
let _1224 := mload(_1223)
let _1225 := mload(0x40)
mstore(_1225, keccak256(add(0x20, _1223), _1224))
let _1226 := mload(0x40)
return(_1226, sub(add(0x20, _1225), _1226))
}
if not(_1206){
invalid()
}
}
function func_disableModule() {
let _1227 := iszero(callvalue())
require(not(_1227))
let _1228 := sub(calldatasize(), 0x4)
let _1229 := iszero(lt(_1228, 0x40))
require(not(_1229))
let _1230 := add(0x4, _1228)
let _1231 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _1232 := add(0x20, 0x4)
let _1233 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_1232))
let _1234 := add(0x20, _1232)
let _1235 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _1235{
let _1236 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _1233), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
let _1237 := _1236
let _1238 := iszero(_1236)
if not(_1238){
_1237 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _1233), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
}
if _1237{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1231)))
let _1239 := add(0x20, 0x0)
mstore(_1239, 0x1)
let _1240 := sload(keccak256(0x0, add(0x20, _1239)))
let _1241 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1240, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, _1233))
if _1241{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1233)))
let _1242 := add(0x20, 0x0)
mstore(_1242, 0x1)
let _1243 := sload(keccak256(0x0, add(0x20, _1242)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1231)))
let _1244 := add(0x20, 0x0)
mstore(_1244, 0x1)
let _1245 := keccak256(0x0, add(0x20, _1244))
let _1246 := exp(0x100, 0x0)
let _1247 := sload(_1245)
sstore(_1245, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1243, exp(0x100, 0x0)))), _1246), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1246)), _1247)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1233)))
let _1248 := add(0x20, 0x0)
mstore(_1248, 0x1)
let _1249 := keccak256(0x0, add(0x20, _1248))
let _1250 := exp(0x100, 0x0)
let _1251 := sload(_1249)
sstore(_1249, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, 0x0), _1250), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1250)), _1251)))
let _1252 := mload(0x40)
mstore(_1252, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1233)))
let _1253 := mload(0x40)
log1(_1253, sub(add(0x20, _1252), _1253), 0xaab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace4054276)
stop()
}
if not(_1241){
let _1254 := mload(0x40)
mstore(_1254, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1255 := add(0x4, _1254)
let _1256 := add(0x20, _1255)
mstore(_1255, sub(_1256, _1255))
mstore(_1256, 0x28)
let _1257 := add(0x20, _1256)
codecopy(_1257, 0x5b7c, 0x28)
let _1258 := mload(0x40)
revert(_1258, sub(add(0x40, _1257), _1258))
}
}
if not(_1237){
let _1259 := mload(0x40)
mstore(_1259, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1260 := add(0x4, _1259)
let _1261 := add(0x20, _1260)
mstore(_1260, sub(_1261, _1260))
mstore(_1261, 0x1f)
let _1262 := add(0x20, _1261)
mstore(_1262, 0x496e76616c6964206d6f64756c6520616464726573732070726f766964656400)
let _1263 := mload(0x40)
revert(_1263, sub(add(0x20, _1262), _1263))
}
}
if not(_1235){
let _1264 := mload(0x40)
mstore(_1264, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1265 := add(0x4, _1264)
let _1266 := add(0x20, _1265)
mstore(_1265, sub(_1266, _1265))
mstore(_1266, 0x2c)
let _1267 := add(0x20, _1266)
codecopy(_1267, 0x5cd5, 0x2c)
let _1268 := mload(0x40)
revert(_1268, sub(add(0x40, _1267), _1268))
}
}
function func_swapOwner() {
let _1269 := iszero(callvalue())
require(not(_1269))
let _1270 := sub(calldatasize(), 0x4)
let _1271 := iszero(lt(_1270, 0x60))
require(not(_1271))
let _1272 := add(0x4, _1270)
let _1273 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _1274 := add(0x20, 0x4)
let _1275 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_1274))
let _1276 := add(0x20, _1274)
let _1277 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_1276))
let _1278 := add(0x20, _1276)
let _1279 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _1279{
let _1280 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _1277), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
let _1281 := _1280
let _1282 := iszero(_1280)
if not(_1282){
_1281 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _1277), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
}
if _1281{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1277)))
let _1283 := add(0x20, 0x0)
mstore(_1283, 0x2)
let _1284 := sload(keccak256(0x0, add(0x20, _1283)))
let _1285 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1284, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0))
if _1285{
let _1286 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _1275), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
let _1287 := _1286
let _1288 := iszero(_1286)
if not(_1288){
_1287 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _1275), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
}
if _1287{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1273)))
let _1289 := add(0x20, 0x0)
mstore(_1289, 0x2)
let _1290 := sload(keccak256(0x0, add(0x20, _1289)))
let _1291 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1290, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, _1275))
if _1291{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1275)))
let _1292 := add(0x20, 0x0)
mstore(_1292, 0x2)
let _1293 := sload(keccak256(0x0, add(0x20, _1292)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1277)))
let _1294 := add(0x20, 0x0)
mstore(_1294, 0x2)
let _1295 := keccak256(0x0, add(0x20, _1294))
let _1296 := exp(0x100, 0x0)
let _1297 := sload(_1295)
sstore(_1295, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1293, exp(0x100, 0x0)))), _1296), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1296)), _1297)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1273)))
let _1298 := add(0x20, 0x0)
mstore(_1298, 0x2)
let _1299 := keccak256(0x0, add(0x20, _1298))
let _1300 := exp(0x100, 0x0)
let _1301 := sload(_1299)
sstore(_1299, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, _1277), _1300), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1300)), _1301)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1275)))
let _1302 := add(0x20, 0x0)
mstore(_1302, 0x2)
let _1303 := keccak256(0x0, add(0x20, _1302))
let _1304 := exp(0x100, 0x0)
let _1305 := sload(_1303)
sstore(_1303, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, 0x0), _1304), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1304)), _1305)))
let _1306 := mload(0x40)
mstore(_1306, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1275)))
let _1307 := mload(0x40)
log1(_1307, sub(add(0x20, _1306), _1307), 0xf8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf)
let _1308 := mload(0x40)
mstore(_1308, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1277)))
let _1309 := mload(0x40)
log1(_1309, sub(add(0x20, _1308), _1309), 0x9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26)
stop()
}
if not(_1291){
let _1310 := mload(0x40)
mstore(_1310, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1311 := add(0x4, _1310)
let _1312 := add(0x20, _1311)
mstore(_1311, sub(_1312, _1311))
mstore(_1312, 0x26)
let _1313 := add(0x20, _1312)
codecopy(_1313, 0x5c1e, 0x26)
let _1314 := mload(0x40)
revert(_1314, sub(add(0x40, _1313), _1314))
}
}
if not(_1287){
let _1315 := mload(0x40)
mstore(_1315, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1316 := add(0x4, _1315)
let _1317 := add(0x20, _1316)
mstore(_1316, sub(_1317, _1316))
mstore(_1317, 0x1e)
let _1318 := add(0x20, _1317)
mstore(_1318, 0x496e76616c6964206f776e657220616464726573732070726f76696465640000)
let _1319 := mload(0x40)
revert(_1319, sub(add(0x20, _1318), _1319))
}
}
if not(_1285){
let _1320 := mload(0x40)
mstore(_1320, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1321 := add(0x4, _1320)
let _1322 := add(0x20, _1321)
mstore(_1321, sub(_1322, _1321))
mstore(_1322, 0x1b)
let _1323 := add(0x20, _1322)
mstore(_1323, 0x4164647265737320697320616c726561647920616e206f776e65720000000000)
let _1324 := mload(0x40)
revert(_1324, sub(add(0x20, _1323), _1324))
}
}
if not(_1281){
let _1325 := mload(0x40)
mstore(_1325, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1326 := add(0x4, _1325)
let _1327 := add(0x20, _1326)
mstore(_1326, sub(_1327, _1326))
mstore(_1327, 0x1e)
let _1328 := add(0x20, _1327)
mstore(_1328, 0x496e76616c6964206f776e657220616464726573732070726f76696465640000)
let _1329 := mload(0x40)
revert(_1329, sub(add(0x20, _1328), _1329))
}
}
if not(_1279){
let _1330 := mload(0x40)
mstore(_1330, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1331 := add(0x4, _1330)
let _1332 := add(0x20, _1331)
mstore(_1331, sub(_1332, _1331))
mstore(_1332, 0x2c)
let _1333 := add(0x20, _1332)
codecopy(_1333, 0x5cd5, 0x2c)
let _1334 := mload(0x40)
revert(_1334, sub(add(0x40, _1333), _1334))
}
}
function func_getThreshold() {
let _1335 := iszero(callvalue())
require(not(_1335))
let _1336 := sload(0x4)
let _1337 := mload(0x40)
mstore(_1337, _1336)
let _1338 := mload(0x40)
return(_1338, sub(add(0x20, _1337), _1338))
}
function func_encodeTransactionData() {
let _1339 := iszero(callvalue())
require(not(_1339))
let _1340 := sub(calldatasize(), 0x4)
let _1341 := iszero(lt(_1340, 0x140))
require(not(_1341))
let _1342 := add(0x4, _1340)
let _1343 := add(0x20, 0x4)
let _1344 := add(0x20, _1343)
let _1345 := calldataload(_1344)
let _1346 := add(0x20, _1344)
let _1347 := iszero(gt(_1345, 0x100000000))
require(not(_1347))
let _1348 := add(0x4, _1345)
let _1349 := iszero(gt(add(_1348, 0x20), _1342))
require(not(_1349))
let _1350 := calldataload(_1348)
let _1351 := add(0x20, _1348)
let _1352 := iszero(or(gt(_1350, 0x100000000), gt(add(_1351, mul(_1350, 0x1)), _1342)))
require(not(_1352))
let _1353 := mload(0x40)
mstore(0x40, add(_1353, add(0x20, mul(div(add(0x1f, _1350), 0x20), 0x20))))
mstore(_1353, _1350)
let _1354 := add(0x20, _1353)
calldatacopy(_1354, _1351, _1350)
mstore(add(_1354, _1350), 0x0)
let _1355 := add(_1354, and(add(_1350, 0x1f), not(0x1f)))
let _1356 := and(0xff, calldataload(_1346))
let _1357 := add(0x20, _1346)
let _1358 := add(0x20, _1357)
let _1359 := add(0x20, _1358)
let _1360 := add(0x20, _1359)
let _1361 := add(0x20, _1360)
let _1362 := add(0x20, _1361)
let _1363 := add(0x20, _1362)
let _1364 := mload(_1353)
let _1365 := mload(0x40)
let _1366 := add(0x20, _1365)
mstore(_1366, shl(0x0, 0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8))
let _1367 := add(0x20, _1366)
mstore(_1367, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4)))))
let _1368 := add(0x20, _1367)
mstore(_1368, calldataload(_1343))
let _1369 := add(0x20, _1368)
mstore(_1369, keccak256(add(0x20, _1353), _1364))
let _1370 := add(0x20, _1369)
let _1371 := iszero(gt(_1356, 0x1))
if _1371{
mstore(_1370, and(0xff, _1356))
let _1372 := add(0x20, _1370)
mstore(_1372, calldataload(_1357))
let _1373 := add(0x20, _1372)
mstore(_1373, calldataload(_1358))
let _1374 := add(0x20, _1373)
mstore(_1374, calldataload(_1359))
let _1375 := add(0x20, _1374)
mstore(_1375, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_1360)))))
let _1376 := add(0x20, _1375)
mstore(_1376, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_1361)))))
let _1377 := add(0x20, _1376)
mstore(_1377, calldataload(_1362))
let _1378 := add(0x20, _1377)
let _1379 := mload(0x40)
mstore(_1379, sub(sub(_1378, _1379), 0x20))
mstore(0x40, _1378)
let _1380 := mload(_1379)
let _1381 := sload(0x6)
let _1382 := mload(0x40)
let _1383 := add(0x20, _1382)
mstore(_1383, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x19))))
let _1384 := add(0x1, _1383)
mstore(_1384, and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(0xf8, 0x1))))
let _1385 := add(0x1, _1384)
mstore(_1385, _1381)
let _1386 := add(0x20, _1385)
mstore(_1386, keccak256(add(0x20, _1379), _1380))
let _1387 := add(0x20, _1386)
let _1388 := mload(0x40)
mstore(_1388, sub(sub(_1387, _1388), 0x20))
mstore(0x40, _1387)
let _1389 := mload(0x40)
let _1390 := add(0x20, _1389)
mstore(_1389, sub(_1390, _1389))
let _1391 := mload(_1388)
mstore(_1390, _1391)
let _1392 := add(0x20, _1390)
let _1393 := mload(_1388)
let _1394 := 0x0
let _1395 := 0x0
for {
let _1396 := lt(_1394, _1393)
let _1397 := 0x20
let _1398 := add(_1395, _1397)
}
not(iszero(_1396))
{ }
{
_1394 := _1398
_1396 := lt(_1394, _1393)
let _1399 := not(iszero(_1396))
_1395 := _1398
let _1400 := mload(add(add(0x20, _1388), _1395))
mstore(add(_1392, _1395), _1400)
_1397 := 0x20
_1398 := add(_1395, _1397)
_1394 := _1398
_1395 := _1398
}
let _1401 := add(_1393, _1392)
let _1402 := _1401
let _1403 := and(0x1f, _1393)
let _1404 := iszero(_1403)
if not(_1404){
let _1405 := sub(_1401, _1403)
let _1406 := mload(_1405)
mstore(_1405, and(not(sub(exp(0x100, sub(0x20, _1403)), 0x1)), _1406))
_1402 := add(0x20, _1405)
}
let _1407 := mload(0x40)
return(_1407, sub(_1402, _1407))
}
if not(_1371){
invalid()
}
}
function func_setFallbackHandler() {
let _1408 := iszero(callvalue())
require(not(_1408))
let _1409 := sub(calldatasize(), 0x4)
let _1410 := iszero(lt(_1409, 0x20))
require(not(_1410))
let _1411 := add(0x4, _1409)
let _1412 := add(0x20, 0x4)
let _1413 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _1413{
sstore(shl(0x0, 0x6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d5), and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4)))
stop()
}
if not(_1413){
let _1414 := mload(0x40)
mstore(_1414, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1415 := add(0x4, _1414)
let _1416 := add(0x20, _1415)
mstore(_1415, sub(_1416, _1415))
mstore(_1416, 0x2c)
let _1417 := add(0x20, _1416)
codecopy(_1417, 0x5cd5, 0x2c)
let _1418 := mload(0x40)
revert(_1418, sub(add(0x40, _1417), _1418))
}
}
function func_domainSeparator() {
let _1419 := iszero(callvalue())
require(not(_1419))
let _1420 := sload(0x6)
let _1421 := mload(0x40)
mstore(_1421, _1420)
let _1422 := mload(0x40)
return(_1422, sub(add(0x20, _1421), _1422))
}
function func_removeOwner() {
let _1423 := iszero(callvalue())
require(not(_1423))
let _1424 := sub(calldatasize(), 0x4)
let _1425 := iszero(lt(_1424, 0x60))
require(not(_1425))
let _1426 := add(0x4, _1424)
let _1427 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(0x4))
let _1428 := add(0x20, 0x4)
let _1429 := and(0xffffffffffffffffffffffffffffffffffffffff, calldataload(_1428))
let _1430 := add(0x20, _1428)
let _1431 := calldataload(_1430)
let _1432 := add(0x20, _1430)
let _1433 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, caller()), and(0xffffffffffffffffffffffffffffffffffffffff, address()))
if _1433{
let _1434 := sload(0x3)
let _1435 := iszero(lt(sub(_1434, 0x1), _1431))
if _1435{
let _1436 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _1429), and(0xffffffffffffffffffffffffffffffffffffffff, 0x0)))
let _1437 := _1436
let _1438 := iszero(_1436)
if not(_1438){
_1437 := iszero(eq(and(0xffffffffffffffffffffffffffffffffffffffff, _1429), and(0xffffffffffffffffffffffffffffffffffffffff, 0x1)))
}
if _1437{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1427)))
let _1439 := add(0x20, 0x0)
mstore(_1439, 0x2)
let _1440 := sload(keccak256(0x0, add(0x20, _1439)))
let _1441 := eq(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1440, exp(0x100, 0x0)))), and(0xffffffffffffffffffffffffffffffffffffffff, _1429))
if _1441{
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1429)))
let _1442 := add(0x20, 0x0)
mstore(_1442, 0x2)
let _1443 := sload(keccak256(0x0, add(0x20, _1442)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1427)))
let _1444 := add(0x20, 0x0)
mstore(_1444, 0x2)
let _1445 := keccak256(0x0, add(0x20, _1444))
let _1446 := exp(0x100, 0x0)
let _1447 := sload(_1445)
sstore(_1445, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, div(_1443, exp(0x100, 0x0)))), _1446), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1446)), _1447)))
mstore(0x0, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1429)))
let _1448 := add(0x20, 0x0)
mstore(_1448, 0x2)
let _1449 := keccak256(0x0, add(0x20, _1448))
let _1450 := exp(0x100, 0x0)
let _1451 := sload(_1449)
sstore(_1449, or(mul(and(0xffffffffffffffffffffffffffffffffffffffff, 0x0), _1450), and(not(mul(0xffffffffffffffffffffffffffffffffffffffff, _1450)), _1451)))
let _1452 := sload(0x3)
sstore(0x3, sub(_1452, 0x1))
let _1453 := mload(0x40)
mstore(_1453, and(0xffffffffffffffffffffffffffffffffffffffff, and(0xffffffffffffffffffffffffffffffffffffffff, _1429)))
let _1454 := mload(0x40)
log1(_1454, sub(add(0x20, _1453), _1454), 0xf8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf)
let _1455 := sload(0x4)
let _1456 := eq(_1455, _1431)
if not(_1456){
func_0x24af(_1431, 0x46cb)
}
stop()
}
if not(_1441){
let _1457 := mload(0x40)
mstore(_1457, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1458 := add(0x4, _1457)
let _1459 := add(0x20, _1458)
mstore(_1458, sub(_1459, _1458))
mstore(_1459, 0x26)
let _1460 := add(0x20, _1459)
codecopy(_1460, 0x5c1e, 0x26)
let _1461 := mload(0x40)
revert(_1461, sub(add(0x40, _1460), _1461))
}
}
if not(_1437){
let _1462 := mload(0x40)
mstore(_1462, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1463 := add(0x4, _1462)
let _1464 := add(0x20, _1463)
mstore(_1463, sub(_1464, _1463))
mstore(_1464, 0x1e)
let _1465 := add(0x20, _1464)
mstore(_1465, 0x496e76616c6964206f776e657220616464726573732070726f76696465640000)
let _1466 := mload(0x40)
revert(_1466, sub(add(0x20, _1465), _1466))
}
}
if not(_1435){
let _1467 := mload(0x40)
mstore(_1467, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1468 := add(0x4, _1467)
let _1469 := add(0x20, _1468)
mstore(_1468, sub(_1469, _1468))
mstore(_1469, 0x35)
let _1470 := add(0x20, _1469)
codecopy(_1470, 0x5bc7, 0x35)
let _1471 := mload(0x40)
revert(_1471, sub(add(0x40, _1470), _1471))
}
}
if not(_1433){
let _1472 := mload(0x40)
mstore(_1472, 0x8c379a000000000000000000000000000000000000000000000000000000000)
let _1473 := add(0x4, _1472)
let _1474 := add(0x20, _1473)
mstore(_1473, sub(_1474, _1473))
mstore(_1474, 0x2c)
let _1475 := add(0x20, _1474)
codecopy(_1475, 0x5cd5, 0x2c)
let _1476 := mload(0x40)
revert(_1476, sub(add(0x40, _1475), _1476))
}
}
function func_VERSION() {
let _1477 := iszero(callvalue())
require(not(_1477))
let _1478 := mload(0x40)
mstore(0x40, add(0x40, _1478))
mstore(_1478, 0x5)
mstore(add(0x20, _1478), 0x312e312e31000000000000000000000000000000000000000000000000000000)
let _1479 := mload(0x40)
let _1480 := add(0x20, _1479)
mstore(_1479, sub(_1480, _1479))
let _1481 := mload(_1478)
mstore(_1480, _1481)
let _1482 := add(0x20, _1480)
let _1483 := mload(_1478)
let _1484 := 0x0
let _1485 := 0x0
for {
let _1486 := lt(_1484, _1483)
let _1487 := 0x20
let _1488 := add(_1485, _1487)
}
not(iszero(_1486))
{ }
{
_1484 := _1488
_1486 := lt(_1484, _1483)
let _1489 := not(iszero(_1486))
_1485 := _1488
let _1490 := mload(add(add(0x20, _1478), _1485))
mstore(add(_1482, _1485), _1490)
_1487 := 0x20
_1488 := add(_1485, _1487)
_1484 := _1488
_1485 := _1488
}
let _1491 := add(_1483, _1482)
let _1492 := _1491
let _1493 := and(0x1f, _1483)
let _1494 := iszero(_1493)
if not(_1494){
let _1495 := sub(_1491, _1493)
let _1496 := mload(_1495)
mstore(_1495, and(not(sub(exp(0x100, sub(0x20, _1493)), 0x1)), _1496))
_1492 := add(0x20, _1495)
}
let _1497 := mload(0x40)
return(_1497, sub(_1492, _1497))
}
function require(condition) {
if iszero(condition){
revert(0x0, 0x0)
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment