lotus/itests/contracts/TestApp.hex
snissn 9060c474da
test: fevm: add in tests for deploying, destroying contracts, recursive calls, sending value (#10082)
adds the following tests to itests/fevm_test.go:
 - recursive tests
 - delegate call tests
 - delegate call recursive tests
 - revert tests
 - destruct tests
 - contract deploy address tests
 - send value to contracts
 - gas limit on value transfer tests
 - sending value to destroyed contracts
adds the test to itests/fevm_address_test.go:
 - deploy contract and confirm address is different second deploy
2023-01-31 19:13:13 -10:00

1 line
23 KiB
Plaintext

608060405234801561001057600080fd5b50612e80806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620000a05760003560e01c8063883a8410116200006f578063883a84101462000181578063c483289114620001bb578063d65c239c14620001dd578063dc33b0041462000213578063eae185c4146200024b57620000a0565b806308eaae9614620000a5578063120f83c414620000db5780632db0de8514620001115780637f823290146200014b575b600080fd5b620000c36004803603810190620000bd919062001a74565b62000281565b604051620000d2919062001b1f565b60405180910390f35b620000f96004803603810190620000f3919062001b6d565b620005b4565b60405162000108919062001bb0565b60405180910390f35b6200012f600480360381019062000129919062001bcd565b62000600565b6040516200014295949392919062001c88565b60405180910390f35b62000169600480360381019062000163919062001cec565b620006d3565b60405162000178919062001f0c565b60405180910390f35b6200019f600480360381019062000199919062001f30565b62000d53565b604051620001b295949392919062001c88565b60405180910390f35b620001c562000e68565b604051620001d4919062001bb0565b60405180910390f35b620001fb6004803603810190620001f5919062001f77565b62000e72565b6040516200020a919062001f0c565b60405180910390f35b6200023160048036038101906200022b919062001b6d565b6200127e565b604051620002429392919062001fdb565b60405180910390f35b62000269600480360381019062000263919062001f77565b620012d5565b60405162000278919062001f0c565b60405180910390f35b600080838360405162000294906200176c565b620002a192919062002018565b604051809103906000f080158015620002be573d6000803e3d6000fd5b509050600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16620003f4576200032181620016ba565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff0219169083151502179055506040820151816001019080519060200190620003e59291906200177a565b50606082015181600201559050505b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254620004ec91906200207b565b925050819055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008282546200056a91906200207b565b925050819055507f1e91349225b89f401c5f81de959b2a1cbc472147eeefbf4e367a6b7d2dfcd3bc32604051620005a2919062001b1f565b60405180910390a18091505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000806000606060008086815481106200061f576200061e620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663909747956040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000695573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620006c0919062002191565b9450945094509450945091939590929450565b606060008367ffffffffffffffff811115620006f457620006f3620018f2565b5b6040519080825280602002602001820160405280156200073157816020015b6200071d62001809565b815260200190600190039081620007135790505b50905060008390505b8481101562000d4757600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010184826200079391906200207b565b81548110620007a757620007a6620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828583620007e1919062002238565b81518110620007f557620007f4620020b6565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010184826200088391906200207b565b81548110620008975762000896620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632212dbc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200090d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000933919062002273565b82858362000942919062002238565b81518110620009565762000955620020b6565b5b60200260200101516020018181525050600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018482620009b691906200207b565b81548110620009ca57620009c9620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8d509ff6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a40573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a669190620022a5565b82858362000a75919062002238565b8151811062000a895762000a88620020b6565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101848262000b1791906200207b565b8154811062000b2b5762000b2a620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630cb1851a6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000ba1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062000bcc9190620022d7565b82858362000bdb919062002238565b8151811062000bef5762000bee620020b6565b5b602002602001015160600181905250600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101848262000c4e91906200207b565b8154811062000c625762000c61620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeb4e3676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000cd8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cfe919062002273565b82858362000d0d919062002238565b8151811062000d215762000d20620020b6565b5b60200260200101516080018181525050808062000d3e9062002328565b9150506200073a565b50809150509392505050565b600080600060606000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101868154811062000db35762000db2620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663909747956040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000e29573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062000e54919062002191565b945094509450945094509295509295909350565b6000600154905090565b606060008367ffffffffffffffff81111562000e935762000e92620018f2565b5b60405190808252806020026020018201604052801562000ed057816020015b62000ebc62001809565b81526020019060019003908162000eb25790505b50905060008390505b848110156200127357600080858362000ef391906200207b565b8154811062000f075762000f06620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508083868462000f44919062002238565b8151811062000f585762000f57620020b6565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff16632212dbc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000fe2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001008919062002273565b83868462001017919062002238565b815181106200102b576200102a620020b6565b5b602002602001015160200181815250508073ffffffffffffffffffffffffffffffffffffffff1663a8d509ff6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001087573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010ad9190620022a5565b838684620010bc919062002238565b81518110620010d057620010cf620020b6565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff16630cb1851a6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200115a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620011859190620022d7565b83868462001194919062002238565b81518110620011a857620011a7620020b6565b5b6020026020010151606001819052508073ffffffffffffffffffffffffffffffffffffffff1663eeb4e3676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001203573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001229919062002273565b83868462001238919062002238565b815181106200124c576200124b620020b6565b5b602002602001015160800181815250505080806200126a9062002328565b91505062000ed9565b508091505092915050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16908060020154905083565b606060008367ffffffffffffffff811115620012f657620012f5620018f2565b5b6040519080825280602002602001820160405280156200133357816020015b6200131f62001809565b815260200190600190039081620013155790505b50905060005b84811015620016af576000806001868460015462001358919062002238565b62001364919062002238565b62001370919062002238565b81548110620013845762001383620020b6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080838381518110620013c857620013c7620020b6565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff16632212dbc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001452573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001478919062002273565b8383815181106200148e576200148d620020b6565b5b602002602001015160200181815250508073ffffffffffffffffffffffffffffffffffffffff1663a8d509ff6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620014ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015109190620022a5565b838381518110620015265762001525620020b6565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff16630cb1851a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015620015b0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620015db9190620022d7565b838381518110620015f157620015f0620020b6565b5b6020026020010151606001819052508073ffffffffffffffffffffffffffffffffffffffff1663eeb4e3676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200164c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001672919062002273565b838381518110620016885762001687620020b6565b5b60200260200101516080018181525050508080620016a69062002328565b91505062001339565b508091505092915050565b620016c462001864565b60606003839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020016001151581526020018281526020016000815250915050919050565b610ad5806200237683390190565b828054828255906000526020600020908101928215620017f6579160200282015b82811115620017f55782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200179b565b5b509050620018059190620018a4565b5090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600081525090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160608152602001600081525090565b5b80821115620018bf576000816000905550600101620018a5565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200192c82620018e1565b810181811067ffffffffffffffff821117156200194e576200194d620018f2565b5b80604052505050565b600062001963620018c3565b905062001971828262001921565b919050565b600067ffffffffffffffff821115620019945762001993620018f2565b5b6200199f82620018e1565b9050602081019050919050565b82818337600083830152505050565b6000620019d2620019cc8462001976565b62001957565b905082815260208101848484011115620019f157620019f0620018dc565b5b620019fe848285620019ac565b509392505050565b600082601f83011262001a1e5762001a1d620018d7565b5b813562001a30848260208601620019bb565b91505092915050565b6000819050919050565b62001a4e8162001a39565b811462001a5a57600080fd5b50565b60008135905062001a6e8162001a43565b92915050565b6000806040838503121562001a8e5762001a8d620018cd565b5b600083013567ffffffffffffffff81111562001aaf5762001aae620018d2565b5b62001abd8582860162001a06565b925050602062001ad08582860162001a5d565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001b078262001ada565b9050919050565b62001b198162001afa565b82525050565b600060208201905062001b36600083018462001b0e565b92915050565b62001b478162001afa565b811462001b5357600080fd5b50565b60008135905062001b678162001b3c565b92915050565b60006020828403121562001b865762001b85620018cd565b5b600062001b968482850162001b56565b91505092915050565b62001baa8162001a39565b82525050565b600060208201905062001bc7600083018462001b9f565b92915050565b60006020828403121562001be65762001be5620018cd565b5b600062001bf68482850162001a5d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562001c3b57808201518184015260208101905062001c1e565b60008484015250505050565b600062001c548262001bff565b62001c60818562001c0a565b935062001c7281856020860162001c1b565b62001c7d81620018e1565b840191505092915050565b600060a08201905062001c9f600083018862001b0e565b62001cae602083018762001b9f565b62001cbd604083018662001b0e565b818103606083015262001cd1818562001c47565b905062001ce2608083018462001b9f565b9695505050505050565b60008060006060848603121562001d085762001d07620018cd565b5b600062001d188682870162001b56565b935050602062001d2b8682870162001a5d565b925050604062001d3e8682870162001a5d565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b62001d7f8162001afa565b82525050565b62001d908162001a39565b82525050565b600082825260208201905092915050565b600062001db48262001bff565b62001dc0818562001d96565b935062001dd281856020860162001c1b565b62001ddd81620018e1565b840191505092915050565b600060a08301600083015162001e02600086018262001d74565b50602083015162001e17602086018262001d85565b50604083015162001e2c604086018262001d74565b506060830151848203606086015262001e46828262001da7565b915050608083015162001e5d608086018262001d85565b508091505092915050565b600062001e76838362001de8565b905092915050565b6000602082019050919050565b600062001e988262001d48565b62001ea4818562001d53565b93508360208202850162001eb88562001d64565b8060005b8581101562001efa578484038952815162001ed8858262001e68565b945062001ee58362001e7e565b925060208a0199505060018101905062001ebc565b50829750879550505050505092915050565b6000602082019050818103600083015262001f28818462001e8b565b905092915050565b6000806040838503121562001f4a5762001f49620018cd565b5b600062001f5a8582860162001b56565b925050602062001f6d8582860162001a5d565b9150509250929050565b6000806040838503121562001f915762001f90620018cd565b5b600062001fa18582860162001a5d565b925050602062001fb48582860162001a5d565b9150509250929050565b60008115159050919050565b62001fd58162001fbe565b82525050565b600060608201905062001ff2600083018662001b0e565b62002001602083018562001fca565b62002010604083018462001b9f565b949350505050565b6000604082019050818103600083015262002034818562001c47565b905062002045602083018462001b9f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620020888262001a39565b9150620020958362001a39565b9250828201905080821115620020b057620020af6200204c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050620020f68162001b3c565b92915050565b6000815190506200210d8162001a43565b92915050565b60006200212a620021248462001976565b62001957565b905082815260208101848484011115620021495762002148620018dc565b5b6200215684828562001c1b565b509392505050565b600082601f830112620021765762002175620018d7565b5b81516200218884826020860162002113565b91505092915050565b600080600080600060a08688031215620021b057620021af620018cd565b5b6000620021c088828901620020e5565b9550506020620021d388828901620020fc565b9450506040620021e688828901620020e5565b935050606086015167ffffffffffffffff8111156200220a5762002209620018d2565b5b62002218888289016200215e565b92505060806200222b88828901620020fc565b9150509295509295909350565b6000620022458262001a39565b9150620022528362001a39565b92508282039050818111156200226d576200226c6200204c565b5b92915050565b6000602082840312156200228c576200228b620018cd565b5b60006200229c84828501620020fc565b91505092915050565b600060208284031215620022be57620022bd620018cd565b5b6000620022ce84828501620020e5565b91505092915050565b600060208284031215620022f057620022ef620018cd565b5b600082015167ffffffffffffffff811115620023115762002310620018d2565b5b6200231f848285016200215e565b91505092915050565b6000620023358262001a39565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036200236a57620023696200204c565b5b60018201905091905056fe60806040523480156200001157600080fd5b5060405162000ad538038062000ad583398181016040528101906200003791906200026e565b32600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600081905550816002908162000090919062000515565b50806003819055505050620005fc565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200010982620000be565b810181811067ffffffffffffffff821117156200012b576200012a620000cf565b5b80604052505050565b600062000140620000a0565b90506200014e8282620000fe565b919050565b600067ffffffffffffffff821115620001715762000170620000cf565b5b6200017c82620000be565b9050602081019050919050565b60005b83811015620001a95780820151818401526020810190506200018c565b60008484015250505050565b6000620001cc620001c68462000153565b62000134565b905082815260208101848484011115620001eb57620001ea620000b9565b5b620001f884828562000189565b509392505050565b600082601f830112620002185762000217620000b4565b5b81516200022a848260208601620001b5565b91505092915050565b6000819050919050565b620002488162000233565b81146200025457600080fd5b50565b60008151905062000268816200023d565b92915050565b60008060408385031215620002885762000287620000aa565b5b600083015167ffffffffffffffff811115620002a957620002a8620000af565b5b620002b78582860162000200565b9250506020620002ca8582860162000257565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200032757607f821691505b6020821081036200033d576200033c620002df565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000368565b620003b3868362000368565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620003f6620003f0620003ea8462000233565b620003cb565b62000233565b9050919050565b6000819050919050565b6200041283620003d5565b6200042a6200042182620003fd565b84845462000375565b825550505050565b600090565b6200044162000432565b6200044e81848462000407565b505050565b5b8181101562000476576200046a60008262000437565b60018101905062000454565b5050565b601f821115620004c5576200048f8162000343565b6200049a8462000358565b81016020851015620004aa578190505b620004c2620004b98562000358565b83018262000453565b50505b505050565b600082821c905092915050565b6000620004ea60001984600802620004ca565b1980831691505092915050565b6000620005058383620004d7565b9150826002028217905092915050565b6200052082620002d4565b67ffffffffffffffff8111156200053c576200053b620000cf565b5b6200054882546200030e565b620005558282856200047a565b600060209050601f8311600181146200058d576000841562000578578287015190505b620005848582620004f7565b865550620005f4565b601f1984166200059d8662000343565b60005b82811015620005c757848901518255600182019150602085019450602081019050620005a0565b86831015620005e75784890151620005e3601f891682620004d7565b8355505b6001600288020188555050505b505050505050565b6104c9806200060c6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630cb1851a1461005c5780632212dbc31461007a5780639097479514610098578063a8d509ff146100ba578063eeb4e367146100d8575b600080fd5b6100646100f6565b6040516100719190610327565b60405180910390f35b610082610188565b60405161008f9190610362565b60405180910390f35b6100a0610191565b6040516100b19594939291906103be565b60405180910390f35b6100c2610263565b6040516100cf9190610418565b60405180910390f35b6100e061028d565b6040516100ed9190610362565b60405180910390f35b60606002805461010590610462565b80601f016020809104026020016040519081016040528092919081815260200182805461013190610462565b801561017e5780601f106101535761010080835404028352916020019161017e565b820191906000526020600020905b81548152906001019060200180831161016157829003601f168201915b5050505050905090565b60008054905090565b60008060006060600030600054600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660026003548180546101d290610462565b80601f01602080910402602001604051908101604052809291908181526020018280546101fe90610462565b801561024b5780601f106102205761010080835404028352916020019161024b565b820191906000526020600020905b81548152906001019060200180831161022e57829003601f168201915b50505050509150945094509450945094509091929394565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600354905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156102d15780820151818401526020810190506102b6565b60008484015250505050565b6000601f19601f8301169050919050565b60006102f982610297565b61030381856102a2565b93506103138185602086016102b3565b61031c816102dd565b840191505092915050565b6000602082019050818103600083015261034181846102ee565b905092915050565b6000819050919050565b61035c81610349565b82525050565b60006020820190506103776000830184610353565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103a88261037d565b9050919050565b6103b88161039d565b82525050565b600060a0820190506103d360008301886103af565b6103e06020830187610353565b6103ed60408301866103af565b81810360608301526103ff81856102ee565b905061040e6080830184610353565b9695505050505050565b600060208201905061042d60008301846103af565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061047a57607f821691505b60208210810361048d5761048c610433565b5b5091905056fea264697066735822122096ba86e2c854094a9f7774cf59534923c219cc0ab6e812963e86557d6743467c64736f6c63430008110033a2646970667358221220b58cd7b4415159e845caf380c6ffa231afa779fa9b6af3b83d7b80ca521527a464736f6c63430008110033