Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async getAddresses () {
return [{ address: removeAddress0x(this.wallet.getAddressString()) }]
}
}
*/
const bytecodeDefault = '608060405260006003553480156200001657600080fd5b50604051620042fb380380620042fb83398101806040526101408110156200003d57600080fd5b8101908080516401000000008111156200005657600080fd5b828101905060208101848111156200006d57600080fd5b81518560208202830111640100000000821117156200008b57600080fd5b5050929190602001805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050896000908051906020019062000108929190620001d3565b50886001819055508760048190555086600581905550856006819055508460078190555083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a8190555081600b8190555080600c81905550505050505050505050506200024d565b82805482825590600052602060002090810192821562000212579160200282015b8281111562000211578251825591602001919060010190620001f4565b5b50905062000221919062000225565b5090565b6200024a91905b80821115620002465760008160009055506001016200022c565b5090565b90565b61409e806200025d6000396000f3fe60806040523480156200001157600080fd5b506004361062000135576000357c0100000000000000000000000000000000000000000000000000000000900480637c3a00fd11620000c2578063dcaf9c44116200008c578063dcaf9c441462000425578063e778b1001462000445578063eadb0cd31462000503578063fc0c546a14620005485762000135565b80637c3a00fd1462000379578063a4be77ee1462000399578063ac6bd7e414620003b9578063bcead63e14620003d95762000135565b8063527a438f1162000104578063527a438f14620002f95780635fb3b1b5146200031957806361bc221a146200033957806372f9436514620003595762000135565b80632e1a7d4d146200013a5780634522a06e146200016b578063453d24a6146200018b578063497303921462000288575b600080fd5b62000169600480360360208110156200015257600080fd5b810190808035906020019092919050505062000594565b005b620001756200071a565b6040518082815260200191505060405180910390f35b62000246600480360360c0811015620001a357600080fd5b810190808035906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f82011690508083019250505050505091929192908035906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050919291929050505062000720565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b620002b760048036036020811015620002a057600080fd5b810190808035906020019092919050505062000d27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200030362000d66565b6040518082815260200191505060405180910390f35b6200032362000d6c565b6040518082815260200191505060405180910390f35b6200034362000d72565b6040518082815260200191505060405180910390f35b6200036362000d78565b6040518082815260200191505060405180910390f35b6200038362000d7e565b6040518082815260200191505060405180910390f35b620003a362000d84565b6040518082815260200191505060405180910390f35b620003c362000d8a565b6040518082815260200191505060405180910390f35b620003e362000d90565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200042f62000db6565b6040518082815260200191505060405180910390f35b62000501600480360360208110156200045d57600080fd5b81019080803590602001906401000000008111156200047b57600080fd5b8201836020820111156200048e57600080fd5b80359060200191846020830284011164010000000083111715620004b157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505062000dbc565b005b62000532600480360360208110156200051b57600080fd5b810190808035906020019092919050505062000e7f565b6040518082815260200191505060405180910390f35b6200055262000ea3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620005f157600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015620006d957600080fd5b505af1158015620006ee573d6000803e3d6000fd5b505050506040513d60208110156200070557600080fd5b81019080805190602001909291905050505050565b60045481565b600060015485111515156200073457600080fd5b60055483111515156200074657600080fd5b60045483101515156200075857600080fd5b6000620007b464e8d4a51000620007a56006546200079662000786610e108a62000ec990919063ffffffff16565b8b62000ef590919063ffffffff16565b62000ef590919063ffffffff16565b62000ec990919063ffffffff16565b905060006200081264e8d4a5100062000803600654620007f4620007e4610e108b62000ec990919063ffffffff16565b8c62000ef590919063ffffffff16565b62000ef590919063ffffffff16565b62000ec990919063ffffffff16565b9050600086604080519081016040528060006002600354028154811015156200083757fe5b9060005260206000200154815260200160006001600260035402018154811015156200085f57fe5b90600052602060002001548152506080604051908101604052806154604201815260200189420181526020016203f4808a420101815260200160028a02420181525033600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c888861a53c80600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f620008fa62000f59565b808d600260200280838360005b838110156200092457808201518184015260208101905062000907565b505050509050018c600260200280838360005b838110156200095457808201518184015260208101905062000937565b505050509050018b600460200280838360005b838110156200098457808201518184015260208101905062000967565b505050509050018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600260200280838360005b8381101562000a6857808201518184015260208101905062000a4b565b505050509050019c50505050505050505050505050604051809103906000f08015801562000a9a573d6000803e3d6000fd5b50905060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38262000b6b8562000b5c888e62000f3790919063ffffffff16565b62000f3790919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801562000bf157600080fd5b505af115801562000c06573d6000803e3d6000fd5b505050506040513d602081101562000c1d57600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff1663b60d42886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801562000c9457600080fd5b505af115801562000ca9573d6000803e3d6000fd5b5050505062000cc5600160035462000f3790919063ffffffff16565b6003819055508073ffffffffffffffffffffffffffffffffffffffff167f5ebd8479e74814ff8450f297e99f574c225c8ece5a085abea691890289367c6a896040518082815260200191505060405180910390a2809350505050949350505050565b60028181548110151562000d3757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60075481565b60035481565b60015481565b60065481565b60055481565b600a5481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000e1957600080fd5b60008090505b815181101562000e7b576000828281518110151562000e3a57fe5b906020019060200201519080600181540180825580915050906001820390600052602060002001600090919290919091505550808060010191505062000e1f565b5050565b60008181548110151562000e8f57fe5b906000526020600020016000915090505481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808211151562000eda57600080fd5b6000828481151562000ee857fe5b0490508091505092915050565b60008083141562000f0a576000905062000f31565b6000828402905082848281151562000f1e57fe5b0414151562000f2c57600080fd5b809150505b92915050565b600080828401905083811015151562000f4f57600080fd5b8091505092915050565b6040516131088062000f6b8339019056fe60806040526000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055506000601460026101000a81548160ff0219169083151502179055506000601460036101000a81548160ff0219169083151502179055506000601460046101000a81548160ff02191690831515021790555060006015556000601e60006101000a81548160ff021916908315150217905550348015620000b857600080fd5b5060405161024080620031088339810180604052610240811015620000dc57600080fd5b810190809190826040019190826040019190826080018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190919050508b60006002811015156200015657fe5b60200201516003819055508b60016002811015156200017157fe5b60200201516004819055508a60006002811015156200018c57fe5b60200201516005819055508a6001600281101515620001a757fe5b6020020151600681905550896000600481101515620001c257fe5b6020020151600b81905550896001600481101515620001dd57fe5b6020020151600c81905550896002600481101515620001f857fe5b6020020151600d819055508960036004811015156200021357fe5b6020020151600e81905550886000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086601181905550856012819055508460138190555083600f819055508260108190555081602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060006002811015156200031357fe5b60200201516020819055508060016002811015156200032e57fe5b6020020151602181905550505050505050505050505050612db380620003556000396000f3fe608060405234801561001057600080fd5b506004361061024f576000357c010000000000000000000000000000000000000000000000000000000090048063a00156131161014d578063c392f766116100d5578063dc1b294c11610099578063dc1b294c146106a9578063f3a504f2146106c7578063f5003d37146106e9578063fbb27dce1461072b578063fc0c546a1461074d5761024f565b8063c392f766146105e7578063c80ec52214610605578063d003403014610627578063d5f2eef914610645578063db774c79146106875761024f565b8063af0e74581161011c578063af0e745814610541578063b60d428814610583578063ba5d30781461058d578063bc98859a146105ab578063bd2f2882146105c95761024f565b8063a0015613146104c9578063a36a3630146104e7578063a4e1066814610505578063ac6bd7e4146105235761024f565b80634549987a116101db5780637d7b39e41161019f5780637d7b39e414610427578063854bec87146104315780638e19899e1461043b57806392b0c7ab146104695780639f2fe458146104ab5761024f565b80634549987a1461038157806351db70dc1461039f578063527a438f146103cd57806354894465146103eb5780635e87bcd9146104095761024f565b80631e09d48b116102225780631e09d48b1461030357806321c156f9146103315780633aea10a61461033b5780633d4130a2146103455780633dcd4125146103635761024f565b80630c57e90214610254578063110bba8d146102b957806312424e3f146102d757806319d40b08146102e1575b600080fd5b6102b76004803603606081101561026a57600080fd5b8101908080606001906003806020026040519081016040528092919082600360200280828437600081840152601f19601f8201169050808301925050505050509192919290505050610797565b005b6102c161095b565b6040518082815260200191505060405180910390f35b6102df610961565b005b6102e9610a0d565b604051808215151515815260200191505060405180910390f35b61032f6004803603602081101561031957600080fd5b8101908080359060200190929190505050610a20565b005b610339610d74565b005b610343611052565b005b61034d61143e565b6040518082815260200191505060405180910390f35b61036b611444565b6040518082815260200191505060405180910390f35b61038961144a565b6040518082815260200191505060405180910390f35b6103cb600480360360208110156103b557600080fd5b8101908080359060200190929190505050611450565b005b6103d56117f9565b6040518082815260200191505060405180910390f35b6103f36117ff565b6040518082815260200191505060405180910390f35b610411611805565b6040518082815260200191505060405180910390f35b61042f61180b565b005b610439611967565b005b6104676004803603602081101561045157600080fd5b8101908080359060200190929190505050611b7e565b005b6104a96004803603606081101561047f57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611ec5565b005b6104b36122dd565b6040518082815260200191505060405180910390f35b6104d16122e3565b6040518082815260200191505060405180910390f35b6104ef6122e9565b6040518082815260200191505060405180910390f35b61050d6122ef565b6040518082815260200191505060405180910390f35b61052b6122f5565b6040518082815260200191505060405180910390f35b61056d6004803603602081101561055757600080fd5b81019080803590602001909291905050506122fb565b6040518082815260200191505060405180910390f35b61058b612315565b005b61059561248b565b6040518082815260200191505060405180910390f35b6105b3612491565b6040518082815260200191505060405180910390f35b6105d1612497565b6040518082815260200191505060405180910390f35b6105ef61249d565b6040518082815260200191505060405180910390f35b61060d6124a3565b604051808215151515815260200191505060405180910390f35b61062f6124b6565b6040518082815260200191505060405180910390f35b6106716004803603602081101561065b57600080fd5b81019080803590602001909291905050506124bc565b6040518082815260200191505060405180910390f35b61068f6124d6565b604051808215151515815260200191505060405180910390f35b6106b16124e9565b6040518082815260200191505060405180910390f35b6106cf6124ef565b604051808215151515815260200191505060405180910390f35b610729600480360360608110156106ff57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050612502565b005b610733612d2d565b604051808215151515815260200191505060405180910390f35b610755612d40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600c54421115156107a757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561087c5780600060038110151561080b57fe5b60200201516018600060038110151561082057fe5b018190555080600160038110151561083457fe5b60200201516018600160038110151561084957fe5b018190555080600260038110151561085d57fe5b60200201516018600260038110151561087257fe5b0181905550610958565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610952578060006003811015156108e157fe5b6020020151601b60006003811015156108f657fe5b018190555080600160038110151561090a57fe5b6020020151601b600160038110151561091f57fe5b018190555080600260038110151561093357fe5b6020020151601b600260038110151561094857fe5b0181905550610957565b600080fd5b5b50565b600b5481565b60011515601460009054906101000a900460ff16151514151561098357600080fd5b600b54421115151561099457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f057600080fd5b6001601460016101000a81548160ff021916908315150217905550565b601460019054906101000a900460ff1681565b600554600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515610a7a5780518252602082019150602081019050602083039250610a55565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610abc573d6000803e3d6000fd5b5050506040513d6020811015610ad157600080fd5b8101908080519060200190929190505050141515610aee57600080fd5b600d544211151515610aff57600080fd5b60001515601460039054906101000a900460ff161515141515610b2157600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c3d57600080fd5b505afa158015610c51573d6000803e3d6000fd5b505050506040513d6020811015610c6757600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610cfd57600080fd5b505af1158015610d11573d6000803e3d6000fd5b505050506040513d6020811015610d2757600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600d5442111515610d8457600080fd5b60011515601460049054906101000a900460ff161515141515610da657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0157600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f1c57600080fd5b505afa158015610f30573d6000803e3d6000fd5b505050506040513d6020811015610f4657600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fdc57600080fd5b505af1158015610ff0573d6000803e3d6000fd5b505050506040513d602081101561100657600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6017544211151561106257600080fd5b6007546002600a54604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156110be5780518252602082019150602081019050602083039250611099565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611100573d6000803e3d6000fd5b5050506040513d602081101561111557600080fd5b81019080805190602001909291905050501415806111f557506004546002600854604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561118a5780518252602082019150602081019050602083039250611165565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156111cc573d6000803e3d6000fd5b5050506040513d60208110156111e157600080fd5b810190808051906020019092919050505014155b806112c257506006546002600954604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156112575780518252602082019150602081019050602083039250611232565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611299573d6000803e3d6000fd5b5050506040513d60208110156112ae57600080fd5b810190808051906020019092919050505014155b15156112cd57600080fd5b60006015541115156112de57600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166015546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113c757600080fd5b505af11580156113db573d6000803e3d6000fd5b505050506040513d60208110156113f157600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b601f5481565b600a5481565b60085481565b600c544211151561146057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561158f57600454600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561150f57805182526020820191506020810190506020830392506114ea565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611551573d6000803e3d6000fd5b5050506040513d602081101561156657600080fd5b810190808051906020019092919050505014151561158357600080fd5b806008819055506117f6565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156116bf57600654600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561163f578051825260208201915060208101905060208303925061161a565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611681573d6000803e3d6000fd5b5050506040513d602081101561169657600080fd5b81019080805190602001909291905050501415156116b357600080fd5b806009819055506117f5565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156117ef57600754600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561176f578051825260208201915060208101905060208303925061174a565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156117b1573d6000803e3d6000fd5b5050506040513d60208110156117c657600080fd5b81019080805190602001909291905050501415156117e357600080fd5b80600a819055506117f4565b600080fd5b5b5b50565b60215481565b60075481565b60045481565b60001515601460049054906101000a900460ff16151514151561182d57600080fd5b60011515601460029054906101000a900460ff16151514151561184f57600080fd5b600c544211151561185f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561191257600080fd5b611927600f5442612d6690919063ffffffff16565b601681905550611944601054601654612d6690919063ffffffff16565b6017819055506001601460036101000a81548160ff021916908315150217905550565b60011515601460029054906101000a900460ff16151514151561198957600080fd5b600c54421115151561199a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f557600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630611a6d601254601154612d6690919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b2557600080fd5b505af1158015611b39573d6000803e3d6000fd5b505050506040513d6020811015611b4f57600080fd5b8101908080519060200190929190505050506001601460046101000a81548160ff021916908315150217905550565b60011515601460009054906101000a900460ff161515141515611ba057600080fd5b60011515601460019054906101000a900460ff161515141515611bc257600080fd5b600354600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611c1c5780518252602082019150602081019050602083039250611bf7565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611c5e573d6000803e3d6000fd5b5050506040513d6020811015611c7357600080fd5b8101908080519060200190929190505050141515611c9057600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611dab57600080fd5b505afa158015611dbf573d6000803e3d6000fd5b505050506040513d6020811015611dd557600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611e6b57600080fd5b505af1158015611e7f573d6000803e3d6000fd5b505050506040513d6020811015611e9557600080fd5b8101908080519060200190929190505050506001601460026101000a81548160ff02191690831515021790555050565b60011515601460039054906101000a900460ff161515141515611ee757600080fd5b600c5442111515611ef757600080fd5b6016544211151515611f0857600080fd5b60155482111515611f1857600080fd5b81602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fd457600080fd5b505afa158015611fe8573d6000803e3d6000fd5b505050506040513d6020811015611ffe57600080fd5b81019080805190602001909291905050501015151561201c57600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561211557600080fd5b505af1158015612129573d6000803e3d6000fd5b505050506040513d602081101561213f57600080fd5b8101908080519060200190929190505050506000601554111561228257602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166015546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561224557600080fd5b505af1158015612259573d6000803e3d6000fd5b505050506040513d602081101561226f57600080fd5b8101908080519060200190929190505050505b33600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816015819055508260078190555080601f81905550505050565b600e5481565b60035481565b60135481565b60065481565b60205481565b601b8160038110151561230a57fe5b016000915090505481565b60001515601460009054906101000a900460ff16151514151561233757600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306011546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561243257600080fd5b505af1158015612446573d6000803e3d6000fd5b505050506040513d602081101561245c57600080fd5b8101908080519060200190929190505050506001601460006101000a81548160ff021916908315150217905550565b60115481565b60095481565b600c5481565b60125481565b601460029054906101000a900460ff1681565b60055481565b6018816003811015156124cb57fe5b016000915090505481565b601460039054906101000a900460ff1681565b600d5481565b601460009054906101000a900460ff1681565b6016544211151561251257600080fd5b600454600284604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561256c5780518252602082019150602081019050602083039250612547565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156125ae573d6000803e3d6000fd5b5050506040513d60208110156125c357600080fd5b81019080805190602001909291905050501415156125e057600080fd5b600654600283604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561263a5780518252602082019150602081019050602083039250612615565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561267c573d6000803e3d6000fd5b5050506040513d602081101561269157600080fd5b81019080805190602001909291905050501415156126ae57600080fd5b600754600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561270857805182526020820191506020810190506020830392506126e3565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561274a573d6000803e3d6000fd5b5050506040513d602081101561275f57600080fd5b810190808051906020019092919050505014151561277c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128245750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561282f57600080fd5b61285a60135461284c601254601154612d6690919063ffffffff16565b612d6690919063ffffffff16565b6015541115612bcc57602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166128ef6013546128e1601254601154612d6690919063ffffffff16565b612d6690919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561297457600080fd5b505af1158015612988573d6000803e3d6000fd5b505050506040513d602081101561299e57600080fd5b810190808051906020019092919050505050602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612acb57600080fd5b505afa158015612adf573d6000803e3d6000fd5b505050506040513d6020811015612af557600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b8b57600080fd5b505af1158015612b9f573d6000803e3d6000fd5b505050506040513d6020811015612bb557600080fd5b810190808051906020019092919050505050612cf2565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166015546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612cb557600080fd5b505af1158015612cc9573d6000803e3d6000fd5b505050506040513d6020811015612cdf57600080fd5b8101908080519060200190929190505050505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b601460049054906101000a900460ff1681565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808284019050838110151515612d7d57600080fd5b809150509291505056fea165627a7a72305820e59b50f4d3648ca141f1635c4971f08bb6a3562fb55f4692f030103f67d927c90029a165627a7a72305820fb00fb46594e523bc0555d2c601f1da4f7d095cc8fea920170baeb31ce166eb40029'
const bytecodeAuto = '608060405260006004553480156200001657600080fd5b506040516200496a3803806200496a83398101806040526101808110156200003d57600080fd5b8101908080516401000000008111156200005657600080fd5b828101905060208101848111156200006d57600080fd5b81518560208202830111640100000000821117156200008b57600080fd5b50509291906020018051640100000000811115620000a857600080fd5b82810190506020810184811115620000bf57600080fd5b8151856020820283011164010000000082111715620000dd57600080fd5b5050929190602001805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508b60009080519060200190620001649291906200028b565b508a600190805190602001906200017d9291906200028b565b50896002819055508860058190555087600681905550866007819055508560088190555084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c8190555081600d8190555080600e8190555050505050505050505050505062000305565b828054828255906000526020600020908101928215620002ca579160200282015b82811115620002c9578251825591602001919060010190620002ac565b5b509050620002d99190620002dd565b5090565b6200030291905b80821115620002fe576000816000905550600101620002e4565b5090565b90565b61465580620003156000396000f3fe60806040523480156200001157600080fd5b506004361062000135576000357c0100000000000000000000000000000000000000000000000000000000900480637c3a00fd11620000c2578063bcead63e116200008c578063bcead63e14620003dd578063dcaf9c441462000429578063eadb0cd31462000449578063fc0c546a146200048e5762000135565b80637c3a00fd1462000338578063a4be77ee1462000358578063a4dbd0581462000378578063ac6bd7e414620003bd5762000135565b8063566d28c91162000104578063566d28c9146200021c5780635fb3b1b514620002d857806361bc221a14620002f857806372f9436514620003185762000135565b80632e1a7d4d146200013a5780634522a06e146200016b57806349730392146200018b578063527a438f14620001fc575b600080fd5b62000169600480360360208110156200015257600080fd5b8101908080359060200190929190505050620004da565b005b6200017562000660565b6040518082815260200191505060405180910390f35b620001ba60048036036020811015620001a357600080fd5b810190808035906020019092919050505062000666565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000206620006a5565b6040518082815260200191505060405180910390f35b62000296600480360360808110156200023457600080fd5b810190808035906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050919291929080359060200190929190505050620006ab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b620002e262000d0d565b6040518082815260200191505060405180910390f35b6200030262000d13565b6040518082815260200191505060405180910390f35b6200032262000d19565b6040518082815260200191505060405180910390f35b6200034262000d1f565b6040518082815260200191505060405180910390f35b6200036262000d25565b6040518082815260200191505060405180910390f35b620003a7600480360360208110156200039057600080fd5b810190808035906020019092919050505062000d2b565b6040518082815260200191505060405180910390f35b620003c762000d4f565b6040518082815260200191505060405180910390f35b620003e762000d55565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200043362000d7b565b6040518082815260200191505060405180910390f35b62000478600480360360208110156200046157600080fd5b810190808035906020019092919050505062000d81565b6040518082815260200191505060405180910390f35b6200049862000da5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200053757600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156200061f57600080fd5b505af115801562000634573d6000803e3d6000fd5b505050506040513d60208110156200064b57600080fd5b81019080805190602001909291905050505050565b60055481565b6003818154811015156200067657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60006002548411151515620006bf57600080fd5b6006548211151515620006d157600080fd5b6005548210151515620006e357600080fd5b60006200073f64e8d4a51000620007306007546200072162000711610e108962000dcb90919063ffffffff16565b8a62000df790919063ffffffff16565b62000df790919063ffffffff16565b62000dcb90919063ffffffff16565b905060006200079d64e8d4a510006200078e6007546200077f6200076f610e108a62000dcb90919063ffffffff16565b8b62000df790919063ffffffff16565b62000df790919063ffffffff16565b62000dcb90919063ffffffff16565b905060008560408051908101604052806000600260045402815481101515620007c257fe5b906000526020600020015481526020016000600160026004540201815481101515620007ea57fe5b9060005260206000200154815250604080519081016040528060016002600454028154811015156200081857fe5b90600052602060002001548152602001600180600260045402018154811015156200083f57fe5b90600052602060002001548152506080604051908101604052806154604201815260200189420181526020016203f4808a420101815260200160028a02420181525033600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168d8a8a61a53c80600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620008fc62000e5b565b808e600260200280838360005b838110156200092657808201518184015260208101905062000909565b505050509050018d600260200280838360005b838110156200095657808201518184015260208101905062000939565b505050509050018c600260200280838360005b838110156200098657808201518184015260208101905062000969565b505050509050018b600460200280838360005b83811015620009b657808201518184015260208101905062000999565b505050509050018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019d5050505050505050505050505050604051809103906000f08015801562000acf573d6000803e3d6000fd5b50905060038190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38262000ba08562000b91888d62000e3990919063ffffffff16565b62000e3990919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801562000c2657600080fd5b505af115801562000c3b573d6000803e3d6000fd5b505050506040513d602081101562000c5257600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff1663b60d42886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801562000cc957600080fd5b505af115801562000cde573d6000803e3d6000fd5b5050505062000cfa600160045462000e3990919063ffffffff16565b6004819055508093505050509392505050565b60085481565b60045481565b60025481565b60075481565b60065481565b60018181548110151562000d3b57fe5b906000526020600020016000915090505481565b600c5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60008181548110151562000d9157fe5b906000526020600020016000915090505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808211151562000ddc57600080fd5b6000828481151562000dea57fe5b0490508091505092915050565b60008083141562000e0c576000905062000e33565b6000828402905082848281151562000e2057fe5b0414151562000e2e57600080fd5b809150505b92915050565b600080828401905083811015151562000e5157600080fd5b8091505092915050565b6040516137bd8062000e6d8339019056fe60806040526000601a60006101000a81548160ff0219169083151502179055506000601a60016101000a81548160ff0219169083151502179055506000601a60026101000a81548160ff0219169083151502179055506000601a60036101000a81548160ff0219169083151502179055506000601a60046101000a81548160ff0219169083151502179055506000601b556000602760006101000a81548160ff021916908315150217905550348015620000b857600080fd5b5060405161026080620037bd8339810180604052610260811015620000dc57600080fd5b810190809190826040019190826040019190826040019190826080018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508c60006002811015156200016557fe5b60200201516004819055508c60016002811015156200018057fe5b60200201516005819055508b60006002811015156200019b57fe5b60200201516006819055508b6001600281101515620001b657fe5b60200201516007819055508a6000600281101515620001d157fe5b60200201516008819055508a6001600281101515620001ec57fe5b60200201516009819055508960006004811015156200020757fe5b60200201516011819055508960016004811015156200022257fe5b60200201516012819055508960026004811015156200023d57fe5b60200201516013819055508960036004811015156200025857fe5b6020020151601481905550886000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550856017819055508460188190555083601981905550826015819055508160168190555080602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505061341780620003a66000396000f3fe608060405234801561001057600080fd5b506004361061027b576000357c0100000000000000000000000000000000000000000000000000000000900480639f2fe45811610163578063c392f766116100e0578063dc1b294c116100a4578063dc1b294c14610753578063e46cac5014610771578063f3a504f21461078f578063f5003d37146107b1578063fbb27dce146107f3578063fc0c546a146108155761027b565b8063c392f76614610691578063c80ec522146106af578063d0034030146106d1578063d5f2eef9146106ef578063db774c79146107315761027b565b8063af0e745811610127578063af0e7458146105eb578063b60d42881461062d578063ba5d307814610637578063bc98859a14610655578063bd2f2882146106735761027b565b80639f2fe45814610555578063a001561314610573578063a36a363014610591578063a4e10668146105af578063a90c7bf3146105cd5761027b565b806351db70dc116101fc57806383e385bd116101c057806383e385bd1461045d578063854bec871461047b5780638e19899e146104855780639147aede146104b357806392b0c7ab146104d15780639e264051146105135761027b565b806351db70dc146103cb57806354894465146103f95780635e87bcd91461041757806368ee9f22146104355780637d7b39e4146104535761027b565b806321c156f91161024357806321c156f91461035d5780633aea10a6146103675780633d4130a2146103715780633dcd41251461038f5780634549987a146103ad5761027b565b80630c57e90214610280578063110bba8d146102e557806312424e3f1461030357806319d40b081461030d5780631e09d48b1461032f575b600080fd5b6102e36004803603606081101561029657600080fd5b8101908080606001906003806020026040519081016040528092919082600360200280828437600081840152601f19601f820116905080830192505050505050919291929050505061085f565b005b6102ed610afa565b6040518082815260200191505060405180910390f35b61030b610b00565b005b610315610c04565b604051808215151515815260200191505060405180910390f35b61035b6004803603602081101561034557600080fd5b8101908080359060200190929190505050610c17565b005b610365611035565b005b61036f611313565b005b6103796117cb565b6040518082815260200191505060405180910390f35b6103976117d1565b6040518082815260200191505060405180910390f35b6103b56117d7565b6040518082815260200191505060405180910390f35b6103f7600480360360208110156103e157600080fd5b81019080803590602001909291905050506117dd565b005b610401611cb7565b6040518082815260200191505060405180910390f35b61041f611cbd565b6040518082815260200191505060405180910390f35b61043d611cc3565b6040518082815260200191505060405180910390f35b61045b611cc9565b005b610465611e7d565b6040518082815260200191505060405180910390f35b610483611e83565b005b6104b16004803603602081101561049b57600080fd5b810190808035906020019092919050505061209a565b005b6104bb6123e1565b6040518082815260200191505060405180910390f35b610511600480360360608110156104e757600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506123e7565b005b61053f6004803603602081101561052957600080fd5b81019080803590602001909291905050506127ff565b6040518082815260200191505060405180910390f35b61055d612819565b6040518082815260200191505060405180910390f35b61057b61281f565b6040518082815260200191505060405180910390f35b610599612825565b6040518082815260200191505060405180910390f35b6105b761282b565b6040518082815260200191505060405180910390f35b6105d5612831565b6040518082815260200191505060405180910390f35b6106176004803603602081101561060157600080fd5b8101908080359060200190929190505050612837565b6040518082815260200191505060405180910390f35b610635612851565b005b61063f6129c7565b6040518082815260200191505060405180910390f35b61065d6129cd565b6040518082815260200191505060405180910390f35b61067b6129d3565b6040518082815260200191505060405180910390f35b6106996129d9565b6040518082815260200191505060405180910390f35b6106b76129df565b604051808215151515815260200191505060405180910390f35b6106d96129f2565b6040518082815260200191505060405180910390f35b61071b6004803603602081101561070557600080fd5b81019080803590602001909291905050506129f8565b6040518082815260200191505060405180910390f35b610739612a12565b604051808215151515815260200191505060405180910390f35b61075b612a25565b6040518082815260200191505060405180910390f35b610779612a2b565b6040518082815260200191505060405180910390f35b610797612a31565b604051808215151515815260200191505060405180910390f35b6107f1600480360360608110156107c757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050612a44565b005b6107fb613391565b604051808215151515815260200191505060405180910390f35b61081d6133a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6012544211151561086f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610944578060006003811015156108d357fe5b6020020151601e60006003811015156108e857fe5b01819055508060016003811015156108fc57fe5b6020020151601e600160038110151561091157fe5b018190555080600260038110151561092557fe5b6020020151601e600260038110151561093a57fe5b0181905550610af7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610a1a578060006003811015156109a957fe5b6020020151602160006003811015156109be57fe5b01819055508060016003811015156109d257fe5b6020020151602160016003811015156109e757fe5b01819055508060026003811015156109fb57fe5b602002015160216002600381101515610a1057fe5b0181905550610af6565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610af057806000600381101515610a7f57fe5b602002015160246000600381101515610a9457fe5b0181905550806001600381101515610aa857fe5b602002015160246001600381101515610abd57fe5b0181905550806002600381101515610ad157fe5b602002015160246002600381101515610ae657fe5b0181905550610af5565b600080fd5b5b5b50565b60115481565b60011515601a60009054906101000a900460ff161515141515610b2257600080fd5b6011544211151515610b3357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bdc5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610be757600080fd5b6001601a60016101000a81548160ff021916908315150217905550565b601a60019054906101000a900460ff1681565b600654600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515610c715780518252602082019150602081019050602083039250610c4c565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610cb3573d6000803e3d6000fd5b5050506040513d6020811015610cc857600080fd5b81019080805190602001909291905050501480610da45750600854600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515610d3a5780518252602082019150602081019050602083039250610d15565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610d7c573d6000803e3d6000fd5b5050506040513d6020811015610d9157600080fd5b8101908080519060200190929190505050145b1515610daf57600080fd5b6013544211151515610dc057600080fd5b60001515601a60039054906101000a900460ff161515141515610de257600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610efe57600080fd5b505afa158015610f12573d6000803e3d6000fd5b505050506040513d6020811015610f2857600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b505050506040513d6020811015610fe857600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6013544211151561104557600080fd5b60011515601a60049054906101000a900460ff16151514151561106757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c257600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156111dd57600080fd5b505afa1580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561129d57600080fd5b505af11580156112b1573d6000803e3d6000fd5b505050506040513d60208110156112c757600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b601d544211151561132357600080fd5b600a546002601054604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561137f578051825260208201915060208101905060208303925061135a565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156113c1573d6000803e3d6000fd5b5050506040513d60208110156113d657600080fd5b81019080805190602001909291905050501480156114b557506005546002600c54604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561144b5780518252602082019150602081019050602083039250611426565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561148d573d6000803e3d6000fd5b5050506040513d60208110156114a257600080fd5b8101908080519060200190929190505050145b801561164e57506007546002600e54604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561151857805182526020820191506020810190506020830392506114f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561155a573d6000803e3d6000fd5b5050506040513d602081101561156f57600080fd5b8101908080519060200190929190505050148061164d57506009546002600f54604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156115e357805182526020820191506020810190506020830392506115be565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611625573d6000803e3d6000fd5b5050506040513d602081101561163a57600080fd5b8101908080519060200190929190505050145b5b15151561165a57600080fd5b6000601b5411151561166b57600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561175457600080fd5b505af1158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60285481565b60105481565b600c5481565b601254421115156117ed57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561191c57600554600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561189c5780518252602082019150602081019050602083039250611877565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156118de573d6000803e3d6000fd5b5050506040513d60208110156118f357600080fd5b810190808051906020019092919050505014151561191057600080fd5b80600c81905550611cb4565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611a4c57600754600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156119cc57805182526020820191506020810190506020830392506119a7565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611a0e573d6000803e3d6000fd5b5050506040513d6020811015611a2357600080fd5b8101908080519060200190929190505050141515611a4057600080fd5b80600e81905550611cb3565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611b7c57600954600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611afc5780518252602082019150602081019050602083039250611ad7565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611b3e573d6000803e3d6000fd5b5050506040513d6020811015611b5357600080fd5b8101908080519060200190929190505050141515611b7057600080fd5b80600f81905550611cb2565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611cac57600a54600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611c2c5780518252602082019150602081019050602083039250611c07565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611c6e573d6000803e3d6000fd5b5050506040513d6020811015611c8357600080fd5b8101908080519060200190929190505050141515611ca057600080fd5b80601081905550611cb1565b600080fd5b5b5b5b50565b600a5481565b60055481565b600b5481565b60001515601a60049054906101000a900460ff161515141515611ceb57600080fd5b60011515601a60029054906101000a900460ff161515141515611d0d57600080fd5b60125442111515611d1d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611dc55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611e1d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611e2857600080fd5b611e3d601554426133ca90919063ffffffff16565b601c81905550611e5a601654601c546133ca90919063ffffffff16565b601d819055506001601a60036101000a81548160ff021916908315150217905550565b600d5481565b60011515601a60029054906101000a900460ff161515141515611ea557600080fd5b6012544211151515611eb657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f1157600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630611f896018546017546133ca90919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561204157600080fd5b505af1158015612055573d6000803e3d6000fd5b505050506040513d602081101561206b57600080fd5b8101908080519060200190929190505050506001601a60046101000a81548160ff021916908315150217905550565b60011515601a60009054906101000a900460ff1615151415156120bc57600080fd5b60011515601a60019054906101000a900460ff1615151415156120de57600080fd5b600454600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156121385780518252602082019150602081019050602083039250612113565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561217a573d6000803e3d6000fd5b5050506040513d602081101561218f57600080fd5b81019080805190602001909291905050501415156121ac57600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d60208110156122f157600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561238757600080fd5b505af115801561239b573d6000803e3d6000fd5b505050506040513d60208110156123b157600080fd5b8101908080519060200190929190505050506001601a60026101000a81548160ff02191690831515021790555050565b60095481565b60011515601a60039054906101000a900460ff16151514151561240957600080fd5b6012544211151561241957600080fd5b601c54421115151561242a57600080fd5b601b548211151561243a57600080fd5b81602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156124f657600080fd5b505afa15801561250a573d6000803e3d6000fd5b505050506040513d602081101561252057600080fd5b81019080805190602001909291905050501015151561253e57600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050506040513d602081101561266157600080fd5b8101908080519060200190929190505050506000601b5411156127a457602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561276757600080fd5b505af115801561277b573d6000803e3d6000fd5b505050506040513d602081101561279157600080fd5b8101908080519060200190929190505050505b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b8190555082600a8190555080602881905550505050565b60248160038110151561280e57fe5b016000915090505481565b60145481565b60045481565b60195481565b60075481565b600f5481565b60218160038110151561284657fe5b016000915090505481565b60001515601a60009054906101000a900460ff16151514151561287357600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306017546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561296e57600080fd5b505af1158015612982573d6000803e3d6000fd5b505050506040513d602081101561299857600080fd5b8101908080519060200190929190505050506001601a60006101000a81548160ff021916908315150217905550565b60175481565b600e5481565b60125481565b60185481565b601a60029054906101000a900460ff1681565b60065481565b601e81600381101515612a0757fe5b016000915090505481565b601a60039054906101000a900460ff1681565b60135481565b60085481565b601a60009054906101000a900460ff1681565b601c5442111515612a5457600080fd5b600554600284604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612aae5780518252602082019150602081019050602083039250612a89565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015612af0573d6000803e3d6000fd5b5050506040513d6020811015612b0557600080fd5b8101908080519060200190929190505050141515612b2257600080fd5b600754600283604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612b7c5780518252602082019150602081019050602083039250612b57565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015612bbe573d6000803e3d6000fd5b5050506040513d6020811015612bd357600080fd5b81019080805190602001909291905050501480612caf5750600954600283604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612c455780518252602082019150602081019050602083039250612c20565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015612c87573d6000803e3d6000fd5b5050506040513d6020811015612c9c57600080fd5b8101908080519060200190929190505050145b1515612cba57600080fd5b600a54600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612d145780518252602082019150602081019050602083039250612cef565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015612d56573d6000803e3d6000fd5b5050506040513d6020811015612d6b57600080fd5b8101908080519060200190929190505050141515612d8857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612e305750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612e885750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612e9357600080fd5b612ebe601954612eb06018546017546133ca90919063ffffffff16565b6133ca90919063ffffffff16565b601b54111561323057602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612f53601954612f456018546017546133ca90919063ffffffff16565b6133ca90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612fd857600080fd5b505af1158015612fec573d6000803e3d6000fd5b505050506040513d602081101561300257600080fd5b810190808051906020019092919050505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561312f57600080fd5b505afa158015613143573d6000803e3d6000fd5b505050506040513d602081101561315957600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156131ef57600080fd5b505af1158015613203573d6000803e3d6000fd5b505050506040513d602081101561321957600080fd5b810190808051906020019092919050505050613356565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561331957600080fd5b505af115801561332d573d6000803e3d6000fd5b505050506040513d602081101561334357600080fd5b8101908080519060200190929190505050505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b601a60049054906101000a900460ff1681565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008082840190508381101515156133e157600080fd5b809150509291505056fea165627a7a72305820336e1119f40ef792c5a2f7f2b0b26a74a46900bc66d934d795a17d387c24b7030029a165627a7a7230582008ae500671bcddf201cf52114cd92dac807e85ed3be56196442196f2ff2b8fb30029'
const bytecode = automated ? bytecodeAuto : bytecodeDefault
const encodedSecretHashNum = padHexStart(secretHashes.length.toString(16), 64)
const encodedAutoSecretHashNum = automated ? padHexStart(autoSecretHashes.length.toString(16), 64) : ''
const secretHashJumpDest = padHexStart((automated ? 384 : 320).toString(16), 64)
const autoSecretHashJumpDest = automated ? padHexStart((384 + 32 + (32 * encodedSecretHashNum)).toString(16), 64) : ''
const encodedMaxLoanAmount = padHexStart(new BigNumber(maxLoanAmount).toString(16), 64)
const encodedMinLoanDuration = padHexStart(minLoanDuration.toString(16), 64)
const encodedMaxLoanDuration = padHexStart(maxLoanDuration.toString(16), 64)
const encodedInterestRate = padHexStart(interestRate.toString(16), 64)
const encodedLiquidationFeeRate = padHexStart(liquidationFeeRate.toString(16), 64)
const tokenAddress = padHexStart(removeAddress0x(this.getMethod('getContractAddress')()), 64)
const encodedLenderAuto = automated ? padHexStart(removeAddress0x(lenderAuto), 64) : ''
const aCoinPubKeyPrefix = padHexStart(aCoinPubKey.slice(0, 2), 64)
const aCoinPubKeySuffix = padHexStart(aCoinPubKey.slice(2), 64)
const encodedMinCollateralizationRatio = padHexStart((minCollateralizationRatio * (10**6)).toString(16), 64)
const encodedSecretHashes = secretHashes.join('')
const encodedAutoSecretHashes = automated ? autoSecretHashes.join('') : ''
const bytecodeWithArgs = bytecode + secretHashJumpDest + autoSecretHashJumpDest + encodedMaxLoanAmount + encodedMinLoanDuration + encodedMaxLoanDuration + encodedInterestRate + encodedLiquidationFeeRate + tokenAddress + encodedLenderAuto + aCoinPubKeyPrefix + aCoinPubKeySuffix + encodedMinCollateralizationRatio + encodedSecretHashNum + encodedSecretHashes + encodedAutoSecretHashNum + encodedAutoSecretHashes
return bytecodeWithArgs
}
}
}
*/
const bytecodeDefault = '608060405260006003553480156200001657600080fd5b50604051620042fb380380620042fb83398101806040526101408110156200003d57600080fd5b8101908080516401000000008111156200005657600080fd5b828101905060208101848111156200006d57600080fd5b81518560208202830111640100000000821117156200008b57600080fd5b5050929190602001805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050896000908051906020019062000108929190620001d3565b50886001819055508760048190555086600581905550856006819055508460078190555083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a8190555081600b8190555080600c81905550505050505050505050506200024d565b82805482825590600052602060002090810192821562000212579160200282015b8281111562000211578251825591602001919060010190620001f4565b5b50905062000221919062000225565b5090565b6200024a91905b80821115620002465760008160009055506001016200022c565b5090565b90565b61409e806200025d6000396000f3fe60806040523480156200001157600080fd5b506004361062000135576000357c0100000000000000000000000000000000000000000000000000000000900480637c3a00fd11620000c2578063dcaf9c44116200008c578063dcaf9c441462000425578063e778b1001462000445578063eadb0cd31462000503578063fc0c546a14620005485762000135565b80637c3a00fd1462000379578063a4be77ee1462000399578063ac6bd7e414620003b9578063bcead63e14620003d95762000135565b8063527a438f1162000104578063527a438f14620002f95780635fb3b1b5146200031957806361bc221a146200033957806372f9436514620003595762000135565b80632e1a7d4d146200013a5780634522a06e146200016b578063453d24a6146200018b578063497303921462000288575b600080fd5b62000169600480360360208110156200015257600080fd5b810190808035906020019092919050505062000594565b005b620001756200071a565b6040518082815260200191505060405180910390f35b62000246600480360360c0811015620001a357600080fd5b810190808035906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f82011690508083019250505050505091929192908035906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050919291929050505062000720565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b620002b760048036036020811015620002a057600080fd5b810190808035906020019092919050505062000d27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200030362000d66565b6040518082815260200191505060405180910390f35b6200032362000d6c565b6040518082815260200191505060405180910390f35b6200034362000d72565b6040518082815260200191505060405180910390f35b6200036362000d78565b6040518082815260200191505060405180910390f35b6200038362000d7e565b6040518082815260200191505060405180910390f35b620003a362000d84565b6040518082815260200191505060405180910390f35b620003c362000d8a565b6040518082815260200191505060405180910390f35b620003e362000d90565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200042f62000db6565b6040518082815260200191505060405180910390f35b62000501600480360360208110156200045d57600080fd5b81019080803590602001906401000000008111156200047b57600080fd5b8201836020820111156200048e57600080fd5b80359060200191846020830284011164010000000083111715620004b157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505062000dbc565b005b62000532600480360360208110156200051b57600080fd5b810190808035906020019092919050505062000e7f565b6040518082815260200191505060405180910390f35b6200055262000ea3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620005f157600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015620006d957600080fd5b505af1158015620006ee573d6000803e3d6000fd5b505050506040513d60208110156200070557600080fd5b81019080805190602001909291905050505050565b60045481565b600060015485111515156200073457600080fd5b60055483111515156200074657600080fd5b60045483101515156200075857600080fd5b6000620007b464e8d4a51000620007a56006546200079662000786610e108a62000ec990919063ffffffff16565b8b62000ef590919063ffffffff16565b62000ef590919063ffffffff16565b62000ec990919063ffffffff16565b905060006200081264e8d4a5100062000803600654620007f4620007e4610e108b62000ec990919063ffffffff16565b8c62000ef590919063ffffffff16565b62000ef590919063ffffffff16565b62000ec990919063ffffffff16565b9050600086604080519081016040528060006002600354028154811015156200083757fe5b9060005260206000200154815260200160006001600260035402018154811015156200085f57fe5b90600052602060002001548152506080604051908101604052806154604201815260200189420181526020016203f4808a420101815260200160028a02420181525033600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c888861a53c80600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f620008fa62000f59565b808d600260200280838360005b838110156200092457808201518184015260208101905062000907565b505050509050018c600260200280838360005b838110156200095457808201518184015260208101905062000937565b505050509050018b600460200280838360005b838110156200098457808201518184015260208101905062000967565b505050509050018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600260200280838360005b8381101562000a6857808201518184015260208101905062000a4b565b505050509050019c50505050505050505050505050604051809103906000f08015801562000a9a573d6000803e3d6000fd5b50905060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38262000b6b8562000b5c888e62000f3790919063ffffffff16565b62000f3790919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801562000bf157600080fd5b505af115801562000c06573d6000803e3d6000fd5b505050506040513d602081101562000c1d57600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff1663b60d42886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801562000c9457600080fd5b505af115801562000ca9573d6000803e3d6000fd5b5050505062000cc5600160035462000f3790919063ffffffff16565b6003819055508073ffffffffffffffffffffffffffffffffffffffff167f5ebd8479e74814ff8450f297e99f574c225c8ece5a085abea691890289367c6a896040518082815260200191505060405180910390a2809350505050949350505050565b60028181548110151562000d3757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60075481565b60035481565b60015481565b60065481565b60055481565b600a5481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000e1957600080fd5b60008090505b815181101562000e7b576000828281518110151562000e3a57fe5b906020019060200201519080600181540180825580915050906001820390600052602060002001600090919290919091505550808060010191505062000e1f565b5050565b60008181548110151562000e8f57fe5b906000526020600020016000915090505481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808211151562000eda57600080fd5b6000828481151562000ee857fe5b0490508091505092915050565b60008083141562000f0a576000905062000f31565b6000828402905082848281151562000f1e57fe5b0414151562000f2c57600080fd5b809150505b92915050565b600080828401905083811015151562000f4f57600080fd5b8091505092915050565b6040516131088062000f6b8339019056fe60806040526000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055506000601460026101000a81548160ff0219169083151502179055506000601460036101000a81548160ff0219169083151502179055506000601460046101000a81548160ff02191690831515021790555060006015556000601e60006101000a81548160ff021916908315150217905550348015620000b857600080fd5b5060405161024080620031088339810180604052610240811015620000dc57600080fd5b810190809190826040019190826040019190826080018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190919050508b60006002811015156200015657fe5b60200201516003819055508b60016002811015156200017157fe5b60200201516004819055508a60006002811015156200018c57fe5b60200201516005819055508a6001600281101515620001a757fe5b6020020151600681905550896000600481101515620001c257fe5b6020020151600b81905550896001600481101515620001dd57fe5b6020020151600c81905550896002600481101515620001f857fe5b6020020151600d819055508960036004811015156200021357fe5b6020020151600e81905550886000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086601181905550856012819055508460138190555083600f819055508260108190555081602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060006002811015156200031357fe5b60200201516020819055508060016002811015156200032e57fe5b6020020151602181905550505050505050505050505050612db380620003556000396000f3fe608060405234801561001057600080fd5b506004361061024f576000357c010000000000000000000000000000000000000000000000000000000090048063a00156131161014d578063c392f766116100d5578063dc1b294c11610099578063dc1b294c146106a9578063f3a504f2146106c7578063f5003d37146106e9578063fbb27dce1461072b578063fc0c546a1461074d5761024f565b8063c392f766146105e7578063c80ec52214610605578063d003403014610627578063d5f2eef914610645578063db774c79146106875761024f565b8063af0e74581161011c578063af0e745814610541578063b60d428814610583578063ba5d30781461058d578063bc98859a146105ab578063bd2f2882146105c95761024f565b8063a0015613146104c9578063a36a3630146104e7578063a4e1066814610505578063ac6bd7e4146105235761024f565b80634549987a116101db5780637d7b39e41161019f5780637d7b39e414610427578063854bec87146104315780638e19899e1461043b57806392b0c7ab146104695780639f2fe458146104ab5761024f565b80634549987a1461038157806351db70dc1461039f578063527a438f146103cd57806354894465146103eb5780635e87bcd9146104095761024f565b80631e09d48b116102225780631e09d48b1461030357806321c156f9146103315780633aea10a61461033b5780633d4130a2146103455780633dcd4125146103635761024f565b80630c57e90214610254578063110bba8d146102b957806312424e3f146102d757806319d40b08146102e1575b600080fd5b6102b76004803603606081101561026a57600080fd5b8101908080606001906003806020026040519081016040528092919082600360200280828437600081840152601f19601f8201169050808301925050505050509192919290505050610797565b005b6102c161095b565b6040518082815260200191505060405180910390f35b6102df610961565b005b6102e9610a0d565b604051808215151515815260200191505060405180910390f35b61032f6004803603602081101561031957600080fd5b8101908080359060200190929190505050610a20565b005b610339610d74565b005b610343611052565b005b61034d61143e565b6040518082815260200191505060405180910390f35b61036b611444565b6040518082815260200191505060405180910390f35b61038961144a565b6040518082815260200191505060405180910390f35b6103cb600480360360208110156103b557600080fd5b8101908080359060200190929190505050611450565b005b6103d56117f9565b6040518082815260200191505060405180910390f35b6103f36117ff565b6040518082815260200191505060405180910390f35b610411611805565b6040518082815260200191505060405180910390f35b61042f61180b565b005b610439611967565b005b6104676004803603602081101561045157600080fd5b8101908080359060200190929190505050611b7e565b005b6104a96004803603606081101561047f57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611ec5565b005b6104b36122dd565b6040518082815260200191505060405180910390f35b6104d16122e3565b6040518082815260200191505060405180910390f35b6104ef6122e9565b6040518082815260200191505060405180910390f35b61050d6122ef565b6040518082815260200191505060405180910390f35b61052b6122f5565b6040518082815260200191505060405180910390f35b61056d6004803603602081101561055757600080fd5b81019080803590602001909291905050506122fb565b6040518082815260200191505060405180910390f35b61058b612315565b005b61059561248b565b6040518082815260200191505060405180910390f35b6105b3612491565b6040518082815260200191505060405180910390f35b6105d1612497565b6040518082815260200191505060405180910390f35b6105ef61249d565b6040518082815260200191505060405180910390f35b61060d6124a3565b604051808215151515815260200191505060405180910390f35b61062f6124b6565b6040518082815260200191505060405180910390f35b6106716004803603602081101561065b57600080fd5b81019080803590602001909291905050506124bc565b6040518082815260200191505060405180910390f35b61068f6124d6565b604051808215151515815260200191505060405180910390f35b6106b16124e9565b6040518082815260200191505060405180910390f35b6106cf6124ef565b604051808215151515815260200191505060405180910390f35b610729600480360360608110156106ff57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050612502565b005b610733612d2d565b604051808215151515815260200191505060405180910390f35b610755612d40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600c54421115156107a757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561087c5780600060038110151561080b57fe5b60200201516018600060038110151561082057fe5b018190555080600160038110151561083457fe5b60200201516018600160038110151561084957fe5b018190555080600260038110151561085d57fe5b60200201516018600260038110151561087257fe5b0181905550610958565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610952578060006003811015156108e157fe5b6020020151601b60006003811015156108f657fe5b018190555080600160038110151561090a57fe5b6020020151601b600160038110151561091f57fe5b018190555080600260038110151561093357fe5b6020020151601b600260038110151561094857fe5b0181905550610957565b600080fd5b5b50565b600b5481565b60011515601460009054906101000a900460ff16151514151561098357600080fd5b600b54421115151561099457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f057600080fd5b6001601460016101000a81548160ff021916908315150217905550565b601460019054906101000a900460ff1681565b600554600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515610a7a5780518252602082019150602081019050602083039250610a55565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610abc573d6000803e3d6000fd5b5050506040513d6020811015610ad157600080fd5b8101908080519060200190929190505050141515610aee57600080fd5b600d544211151515610aff57600080fd5b60001515601460039054906101000a900460ff161515141515610b2157600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c3d57600080fd5b505afa158015610c51573d6000803e3d6000fd5b505050506040513d6020811015610c6757600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610cfd57600080fd5b505af1158015610d11573d6000803e3d6000fd5b505050506040513d6020811015610d2757600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600d5442111515610d8457600080fd5b60011515601460049054906101000a900460ff161515141515610da657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0157600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f1c57600080fd5b505afa158015610f30573d6000803e3d6000fd5b505050506040513d6020811015610f4657600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fdc57600080fd5b505af1158015610ff0573d6000803e3d6000fd5b505050506040513d602081101561100657600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6017544211151561106257600080fd5b6007546002600a54604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156110be5780518252602082019150602081019050602083039250611099565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611100573d6000803e3d6000fd5b5050506040513d602081101561111557600080fd5b81019080805190602001909291905050501415806111f557506004546002600854604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561118a5780518252602082019150602081019050602083039250611165565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156111cc573d6000803e3d6000fd5b5050506040513d60208110156111e157600080fd5b810190808051906020019092919050505014155b806112c257506006546002600954604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156112575780518252602082019150602081019050602083039250611232565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611299573d6000803e3d6000fd5b5050506040513d60208110156112ae57600080fd5b810190808051906020019092919050505014155b15156112cd57600080fd5b60006015541115156112de57600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166015546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113c757600080fd5b505af11580156113db573d6000803e3d6000fd5b505050506040513d60208110156113f157600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b601f5481565b600a5481565b60085481565b600c544211151561146057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561158f57600454600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561150f57805182526020820191506020810190506020830392506114ea565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611551573d6000803e3d6000fd5b5050506040513d602081101561156657600080fd5b810190808051906020019092919050505014151561158357600080fd5b806008819055506117f6565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156116bf57600654600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561163f578051825260208201915060208101905060208303925061161a565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611681573d6000803e3d6000fd5b5050506040513d602081101561169657600080fd5b81019080805190602001909291905050501415156116b357600080fd5b806009819055506117f5565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156117ef57600754600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561176f578051825260208201915060208101905060208303925061174a565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156117b1573d6000803e3d6000fd5b5050506040513d60208110156117c657600080fd5b81019080805190602001909291905050501415156117e357600080fd5b80600a819055506117f4565b600080fd5b5b5b50565b60215481565b60075481565b60045481565b60001515601460049054906101000a900460ff16151514151561182d57600080fd5b60011515601460029054906101000a900460ff16151514151561184f57600080fd5b600c544211151561185f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561191257600080fd5b611927600f5442612d6690919063ffffffff16565b601681905550611944601054601654612d6690919063ffffffff16565b6017819055506001601460036101000a81548160ff021916908315150217905550565b60011515601460029054906101000a900460ff16151514151561198957600080fd5b600c54421115151561199a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f557600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630611a6d601254601154612d6690919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b2557600080fd5b505af1158015611b39573d6000803e3d6000fd5b505050506040513d6020811015611b4f57600080fd5b8101908080519060200190929190505050506001601460046101000a81548160ff021916908315150217905550565b60011515601460009054906101000a900460ff161515141515611ba057600080fd5b60011515601460019054906101000a900460ff161515141515611bc257600080fd5b600354600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611c1c5780518252602082019150602081019050602083039250611bf7565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611c5e573d6000803e3d6000fd5b5050506040513d6020811015611c7357600080fd5b8101908080519060200190929190505050141515611c9057600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611dab57600080fd5b505afa158015611dbf573d6000803e3d6000fd5b505050506040513d6020811015611dd557600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611e6b57600080fd5b505af1158015611e7f573d6000803e3d6000fd5b505050506040513d6020811015611e9557600080fd5b8101908080519060200190929190505050506001601460026101000a81548160ff02191690831515021790555050565b60011515601460039054906101000a900460ff161515141515611ee757600080fd5b600c5442111515611ef757600080fd5b6016544211151515611f0857600080fd5b60155482111515611f1857600080fd5b81602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fd457600080fd5b505afa158015611fe8573d6000803e3d6000fd5b505050506040513d6020811015611ffe57600080fd5b81019080805190602001909291905050501015151561201c57600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561211557600080fd5b505af1158015612129573d6000803e3d6000fd5b505050506040513d602081101561213f57600080fd5b8101908080519060200190929190505050506000601554111561228257602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166015546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561224557600080fd5b505af1158015612259573d6000803e3d6000fd5b505050506040513d602081101561226f57600080fd5b8101908080519060200190929190505050505b33600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816015819055508260078190555080601f81905550505050565b600e5481565b60035481565b60135481565b60065481565b60205481565b601b8160038110151561230a57fe5b016000915090505481565b60001515601460009054906101000a900460ff16151514151561233757600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306011546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561243257600080fd5b505af1158015612446573d6000803e3d6000fd5b505050506040513d602081101561245c57600080fd5b8101908080519060200190929190505050506001601460006101000a81548160ff021916908315150217905550565b60115481565b60095481565b600c5481565b60125481565b601460029054906101000a900460ff1681565b60055481565b6018816003811015156124cb57fe5b016000915090505481565b601460039054906101000a900460ff1681565b600d5481565b601460009054906101000a900460ff1681565b6016544211151561251257600080fd5b600454600284604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561256c5780518252602082019150602081019050602083039250612547565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156125ae573d6000803e3d6000fd5b5050506040513d60208110156125c357600080fd5b81019080805190602001909291905050501415156125e057600080fd5b600654600283604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561263a5780518252602082019150602081019050602083039250612615565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561267c573d6000803e3d6000fd5b5050506040513d602081101561269157600080fd5b81019080805190602001909291905050501415156126ae57600080fd5b600754600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561270857805182526020820191506020810190506020830392506126e3565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561274a573d6000803e3d6000fd5b5050506040513d602081101561275f57600080fd5b810190808051906020019092919050505014151561277c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128245750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561282f57600080fd5b61285a60135461284c601254601154612d6690919063ffffffff16565b612d6690919063ffffffff16565b6015541115612bcc57602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166128ef6013546128e1601254601154612d6690919063ffffffff16565b612d6690919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561297457600080fd5b505af1158015612988573d6000803e3d6000fd5b505050506040513d602081101561299e57600080fd5b810190808051906020019092919050505050602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612acb57600080fd5b505afa158015612adf573d6000803e3d6000fd5b505050506040513d6020811015612af557600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b8b57600080fd5b505af1158015612b9f573d6000803e3d6000fd5b505050506040513d6020811015612bb557600080fd5b810190808051906020019092919050505050612cf2565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166015546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612cb557600080fd5b505af1158015612cc9573d6000803e3d6000fd5b505050506040513d6020811015612cdf57600080fd5b8101908080519060200190929190505050505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b601460049054906101000a900460ff1681565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808284019050838110151515612d7d57600080fd5b809150509291505056fea165627a7a72305820e59b50f4d3648ca141f1635c4971f08bb6a3562fb55f4692f030103f67d927c90029a165627a7a72305820fb00fb46594e523bc0555d2c601f1da4f7d095cc8fea920170baeb31ce166eb40029'
const bytecodeAuto = '608060405260006004553480156200001657600080fd5b506040516200496a3803806200496a83398101806040526101808110156200003d57600080fd5b8101908080516401000000008111156200005657600080fd5b828101905060208101848111156200006d57600080fd5b81518560208202830111640100000000821117156200008b57600080fd5b50509291906020018051640100000000811115620000a857600080fd5b82810190506020810184811115620000bf57600080fd5b8151856020820283011164010000000082111715620000dd57600080fd5b5050929190602001805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508b60009080519060200190620001649291906200028b565b508a600190805190602001906200017d9291906200028b565b50896002819055508860058190555087600681905550866007819055508560088190555084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c8190555081600d8190555080600e8190555050505050505050505050505062000305565b828054828255906000526020600020908101928215620002ca579160200282015b82811115620002c9578251825591602001919060010190620002ac565b5b509050620002d99190620002dd565b5090565b6200030291905b80821115620002fe576000816000905550600101620002e4565b5090565b90565b61465580620003156000396000f3fe60806040523480156200001157600080fd5b506004361062000135576000357c0100000000000000000000000000000000000000000000000000000000900480637c3a00fd11620000c2578063bcead63e116200008c578063bcead63e14620003dd578063dcaf9c441462000429578063eadb0cd31462000449578063fc0c546a146200048e5762000135565b80637c3a00fd1462000338578063a4be77ee1462000358578063a4dbd0581462000378578063ac6bd7e414620003bd5762000135565b8063566d28c91162000104578063566d28c9146200021c5780635fb3b1b514620002d857806361bc221a14620002f857806372f9436514620003185762000135565b80632e1a7d4d146200013a5780634522a06e146200016b57806349730392146200018b578063527a438f14620001fc575b600080fd5b62000169600480360360208110156200015257600080fd5b8101908080359060200190929190505050620004da565b005b6200017562000660565b6040518082815260200191505060405180910390f35b620001ba60048036036020811015620001a357600080fd5b810190808035906020019092919050505062000666565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000206620006a5565b6040518082815260200191505060405180910390f35b62000296600480360360808110156200023457600080fd5b810190808035906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050919291929080359060200190929190505050620006ab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b620002e262000d0d565b6040518082815260200191505060405180910390f35b6200030262000d13565b6040518082815260200191505060405180910390f35b6200032262000d19565b6040518082815260200191505060405180910390f35b6200034262000d1f565b6040518082815260200191505060405180910390f35b6200036262000d25565b6040518082815260200191505060405180910390f35b620003a7600480360360208110156200039057600080fd5b810190808035906020019092919050505062000d2b565b6040518082815260200191505060405180910390f35b620003c762000d4f565b6040518082815260200191505060405180910390f35b620003e762000d55565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200043362000d7b565b6040518082815260200191505060405180910390f35b62000478600480360360208110156200046157600080fd5b810190808035906020019092919050505062000d81565b6040518082815260200191505060405180910390f35b6200049862000da5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200053757600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156200061f57600080fd5b505af115801562000634573d6000803e3d6000fd5b505050506040513d60208110156200064b57600080fd5b81019080805190602001909291905050505050565b60055481565b6003818154811015156200067657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60006002548411151515620006bf57600080fd5b6006548211151515620006d157600080fd5b6005548210151515620006e357600080fd5b60006200073f64e8d4a51000620007306007546200072162000711610e108962000dcb90919063ffffffff16565b8a62000df790919063ffffffff16565b62000df790919063ffffffff16565b62000dcb90919063ffffffff16565b905060006200079d64e8d4a510006200078e6007546200077f6200076f610e108a62000dcb90919063ffffffff16565b8b62000df790919063ffffffff16565b62000df790919063ffffffff16565b62000dcb90919063ffffffff16565b905060008560408051908101604052806000600260045402815481101515620007c257fe5b906000526020600020015481526020016000600160026004540201815481101515620007ea57fe5b9060005260206000200154815250604080519081016040528060016002600454028154811015156200081857fe5b90600052602060002001548152602001600180600260045402018154811015156200083f57fe5b90600052602060002001548152506080604051908101604052806154604201815260200189420181526020016203f4808a420101815260200160028a02420181525033600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168d8a8a61a53c80600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620008fc62000e5b565b808e600260200280838360005b838110156200092657808201518184015260208101905062000909565b505050509050018d600260200280838360005b838110156200095657808201518184015260208101905062000939565b505050509050018c600260200280838360005b838110156200098657808201518184015260208101905062000969565b505050509050018b600460200280838360005b83811015620009b657808201518184015260208101905062000999565b505050509050018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019d5050505050505050505050505050604051809103906000f08015801562000acf573d6000803e3d6000fd5b50905060038190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38262000ba08562000b91888d62000e3990919063ffffffff16565b62000e3990919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801562000c2657600080fd5b505af115801562000c3b573d6000803e3d6000fd5b505050506040513d602081101562000c5257600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff1663b60d42886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801562000cc957600080fd5b505af115801562000cde573d6000803e3d6000fd5b5050505062000cfa600160045462000e3990919063ffffffff16565b6004819055508093505050509392505050565b60085481565b60045481565b60025481565b60075481565b60065481565b60018181548110151562000d3b57fe5b906000526020600020016000915090505481565b600c5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60008181548110151562000d9157fe5b906000526020600020016000915090505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808211151562000ddc57600080fd5b6000828481151562000dea57fe5b0490508091505092915050565b60008083141562000e0c576000905062000e33565b6000828402905082848281151562000e2057fe5b0414151562000e2e57600080fd5b809150505b92915050565b600080828401905083811015151562000e5157600080fd5b8091505092915050565b6040516137bd8062000e6d8339019056fe60806040526000601a60006101000a81548160ff0219169083151502179055506000601a60016101000a81548160ff0219169083151502179055506000601a60026101000a81548160ff0219169083151502179055506000601a60036101000a81548160ff0219169083151502179055506000601a60046101000a81548160ff0219169083151502179055506000601b556000602760006101000a81548160ff021916908315150217905550348015620000b857600080fd5b5060405161026080620037bd8339810180604052610260811015620000dc57600080fd5b810190809190826040019190826040019190826040019190826080018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508c60006002811015156200016557fe5b60200201516004819055508c60016002811015156200018057fe5b60200201516005819055508b60006002811015156200019b57fe5b60200201516006819055508b6001600281101515620001b657fe5b60200201516007819055508a6000600281101515620001d157fe5b60200201516008819055508a6001600281101515620001ec57fe5b60200201516009819055508960006004811015156200020757fe5b60200201516011819055508960016004811015156200022257fe5b60200201516012819055508960026004811015156200023d57fe5b60200201516013819055508960036004811015156200025857fe5b6020020151601481905550886000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550856017819055508460188190555083601981905550826015819055508160168190555080602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505061341780620003a66000396000f3fe608060405234801561001057600080fd5b506004361061027b576000357c0100000000000000000000000000000000000000000000000000000000900480639f2fe45811610163578063c392f766116100e0578063dc1b294c116100a4578063dc1b294c14610753578063e46cac5014610771578063f3a504f21461078f578063f5003d37146107b1578063fbb27dce146107f3578063fc0c546a146108155761027b565b8063c392f76614610691578063c80ec522146106af578063d0034030146106d1578063d5f2eef9146106ef578063db774c79146107315761027b565b8063af0e745811610127578063af0e7458146105eb578063b60d42881461062d578063ba5d307814610637578063bc98859a14610655578063bd2f2882146106735761027b565b80639f2fe45814610555578063a001561314610573578063a36a363014610591578063a4e10668146105af578063a90c7bf3146105cd5761027b565b806351db70dc116101fc57806383e385bd116101c057806383e385bd1461045d578063854bec871461047b5780638e19899e146104855780639147aede146104b357806392b0c7ab146104d15780639e264051146105135761027b565b806351db70dc146103cb57806354894465146103f95780635e87bcd91461041757806368ee9f22146104355780637d7b39e4146104535761027b565b806321c156f91161024357806321c156f91461035d5780633aea10a6146103675780633d4130a2146103715780633dcd41251461038f5780634549987a146103ad5761027b565b80630c57e90214610280578063110bba8d146102e557806312424e3f1461030357806319d40b081461030d5780631e09d48b1461032f575b600080fd5b6102e36004803603606081101561029657600080fd5b8101908080606001906003806020026040519081016040528092919082600360200280828437600081840152601f19601f820116905080830192505050505050919291929050505061085f565b005b6102ed610afa565b6040518082815260200191505060405180910390f35b61030b610b00565b005b610315610c04565b604051808215151515815260200191505060405180910390f35b61035b6004803603602081101561034557600080fd5b8101908080359060200190929190505050610c17565b005b610365611035565b005b61036f611313565b005b6103796117cb565b6040518082815260200191505060405180910390f35b6103976117d1565b6040518082815260200191505060405180910390f35b6103b56117d7565b6040518082815260200191505060405180910390f35b6103f7600480360360208110156103e157600080fd5b81019080803590602001909291905050506117dd565b005b610401611cb7565b6040518082815260200191505060405180910390f35b61041f611cbd565b6040518082815260200191505060405180910390f35b61043d611cc3565b6040518082815260200191505060405180910390f35b61045b611cc9565b005b610465611e7d565b6040518082815260200191505060405180910390f35b610483611e83565b005b6104b16004803603602081101561049b57600080fd5b810190808035906020019092919050505061209a565b005b6104bb6123e1565b6040518082815260200191505060405180910390f35b610511600480360360608110156104e757600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506123e7565b005b61053f6004803603602081101561052957600080fd5b81019080803590602001909291905050506127ff565b6040518082815260200191505060405180910390f35b61055d612819565b6040518082815260200191505060405180910390f35b61057b61281f565b6040518082815260200191505060405180910390f35b610599612825565b6040518082815260200191505060405180910390f35b6105b761282b565b6040518082815260200191505060405180910390f35b6105d5612831565b6040518082815260200191505060405180910390f35b6106176004803603602081101561060157600080fd5b8101908080359060200190929190505050612837565b6040518082815260200191505060405180910390f35b610635612851565b005b61063f6129c7565b6040518082815260200191505060405180910390f35b61065d6129cd565b6040518082815260200191505060405180910390f35b61067b6129d3565b6040518082815260200191505060405180910390f35b6106996129d9565b6040518082815260200191505060405180910390f35b6106b76129df565b604051808215151515815260200191505060405180910390f35b6106d96129f2565b6040518082815260200191505060405180910390f35b61071b6004803603602081101561070557600080fd5b81019080803590602001909291905050506129f8565b6040518082815260200191505060405180910390f35b610739612a12565b604051808215151515815260200191505060405180910390f35b61075b612a25565b6040518082815260200191505060405180910390f35b610779612a2b565b6040518082815260200191505060405180910390f35b610797612a31565b604051808215151515815260200191505060405180910390f35b6107f1600480360360608110156107c757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050612a44565b005b6107fb613391565b604051808215151515815260200191505060405180910390f35b61081d6133a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6012544211151561086f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610944578060006003811015156108d357fe5b6020020151601e60006003811015156108e857fe5b01819055508060016003811015156108fc57fe5b6020020151601e600160038110151561091157fe5b018190555080600260038110151561092557fe5b6020020151601e600260038110151561093a57fe5b0181905550610af7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610a1a578060006003811015156109a957fe5b6020020151602160006003811015156109be57fe5b01819055508060016003811015156109d257fe5b6020020151602160016003811015156109e757fe5b01819055508060026003811015156109fb57fe5b602002015160216002600381101515610a1057fe5b0181905550610af6565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610af057806000600381101515610a7f57fe5b602002015160246000600381101515610a9457fe5b0181905550806001600381101515610aa857fe5b602002015160246001600381101515610abd57fe5b0181905550806002600381101515610ad157fe5b602002015160246002600381101515610ae657fe5b0181905550610af5565b600080fd5b5b5b50565b60115481565b60011515601a60009054906101000a900460ff161515141515610b2257600080fd5b6011544211151515610b3357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bdc5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610be757600080fd5b6001601a60016101000a81548160ff021916908315150217905550565b601a60019054906101000a900460ff1681565b600654600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515610c715780518252602082019150602081019050602083039250610c4c565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610cb3573d6000803e3d6000fd5b5050506040513d6020811015610cc857600080fd5b81019080805190602001909291905050501480610da45750600854600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515610d3a5780518252602082019150602081019050602083039250610d15565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610d7c573d6000803e3d6000fd5b5050506040513d6020811015610d9157600080fd5b8101908080519060200190929190505050145b1515610daf57600080fd5b6013544211151515610dc057600080fd5b60001515601a60039054906101000a900460ff161515141515610de257600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610efe57600080fd5b505afa158015610f12573d6000803e3d6000fd5b505050506040513d6020811015610f2857600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b505050506040513d6020811015610fe857600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6013544211151561104557600080fd5b60011515601a60049054906101000a900460ff16151514151561106757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c257600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156111dd57600080fd5b505afa1580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561129d57600080fd5b505af11580156112b1573d6000803e3d6000fd5b505050506040513d60208110156112c757600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b601d544211151561132357600080fd5b600a546002601054604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561137f578051825260208201915060208101905060208303925061135a565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156113c1573d6000803e3d6000fd5b5050506040513d60208110156113d657600080fd5b81019080805190602001909291905050501480156114b557506005546002600c54604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561144b5780518252602082019150602081019050602083039250611426565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561148d573d6000803e3d6000fd5b5050506040513d60208110156114a257600080fd5b8101908080519060200190929190505050145b801561164e57506007546002600e54604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561151857805182526020820191506020810190506020830392506114f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561155a573d6000803e3d6000fd5b5050506040513d602081101561156f57600080fd5b8101908080519060200190929190505050148061164d57506009546002600f54604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156115e357805182526020820191506020810190506020830392506115be565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611625573d6000803e3d6000fd5b5050506040513d602081101561163a57600080fd5b8101908080519060200190929190505050145b5b15151561165a57600080fd5b6000601b5411151561166b57600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561175457600080fd5b505af1158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60285481565b60105481565b600c5481565b601254421115156117ed57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561191c57600554600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561189c5780518252602082019150602081019050602083039250611877565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156118de573d6000803e3d6000fd5b5050506040513d60208110156118f357600080fd5b810190808051906020019092919050505014151561191057600080fd5b80600c81905550611cb4565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611a4c57600754600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156119cc57805182526020820191506020810190506020830392506119a7565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611a0e573d6000803e3d6000fd5b5050506040513d6020811015611a2357600080fd5b8101908080519060200190929190505050141515611a4057600080fd5b80600e81905550611cb3565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611b7c57600954600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611afc5780518252602082019150602081019050602083039250611ad7565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611b3e573d6000803e3d6000fd5b5050506040513d6020811015611b5357600080fd5b8101908080519060200190929190505050141515611b7057600080fd5b80600f81905550611cb2565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611cac57600a54600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611c2c5780518252602082019150602081019050602083039250611c07565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611c6e573d6000803e3d6000fd5b5050506040513d6020811015611c8357600080fd5b8101908080519060200190929190505050141515611ca057600080fd5b80601081905550611cb1565b600080fd5b5b5b5b50565b600a5481565b60055481565b600b5481565b60001515601a60049054906101000a900460ff161515141515611ceb57600080fd5b60011515601a60029054906101000a900460ff161515141515611d0d57600080fd5b60125442111515611d1d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611dc55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611e1d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611e2857600080fd5b611e3d601554426133ca90919063ffffffff16565b601c81905550611e5a601654601c546133ca90919063ffffffff16565b601d819055506001601a60036101000a81548160ff021916908315150217905550565b600d5481565b60011515601a60029054906101000a900460ff161515141515611ea557600080fd5b6012544211151515611eb657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f1157600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630611f896018546017546133ca90919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561204157600080fd5b505af1158015612055573d6000803e3d6000fd5b505050506040513d602081101561206b57600080fd5b8101908080519060200190929190505050506001601a60046101000a81548160ff021916908315150217905550565b60011515601a60009054906101000a900460ff1615151415156120bc57600080fd5b60011515601a60019054906101000a900460ff1615151415156120de57600080fd5b600454600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156121385780518252602082019150602081019050602083039250612113565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa15801561217a573d6000803e3d6000fd5b5050506040513d602081101561218f57600080fd5b81019080805190602001909291905050501415156121ac57600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d60208110156122f157600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561238757600080fd5b505af115801561239b573d6000803e3d6000fd5b505050506040513d60208110156123b157600080fd5b8101908080519060200190929190505050506001601a60026101000a81548160ff02191690831515021790555050565b60095481565b60011515601a60039054906101000a900460ff16151514151561240957600080fd5b6012544211151561241957600080fd5b601c54421115151561242a57600080fd5b601b548211151561243a57600080fd5b81602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156124f657600080fd5b505afa15801561250a573d6000803e3d6000fd5b505050506040513d602081101561252057600080fd5b81019080805190602001909291905050501015151561253e57600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050506040513d602081101561266157600080fd5b8101908080519060200190929190505050506000601b5411156127a457602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561276757600080fd5b505af115801561277b573d6000803e3d6000fd5b505050506040513d602081101561279157600080fd5b8101908080519060200190929190505050505b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b8190555082600a8190555080602881905550505050565b60248160038110151561280e57fe5b016000915090505481565b60145481565b60045481565b60195481565b60075481565b600f5481565b60218160038110151561284657fe5b016000915090505481565b60001515601a60009054906101000a900460ff16151514151561287357600080fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306017546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561296e57600080fd5b505af1158015612982573d6000803e3d6000fd5b505050506040513d602081101561299857600080fd5b8101908080519060200190929190505050506001601a60006101000a81548160ff021916908315150217905550565b60175481565b600e5481565b60125481565b60185481565b601a60029054906101000a900460ff1681565b60065481565b601e81600381101515612a0757fe5b016000915090505481565b601a60039054906101000a900460ff1681565b60135481565b60085481565b601a60009054906101000a900460ff1681565b601c5442111515612a5457600080fd5b600554600284604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612aae5780518252602082019150602081019050602083039250612a89565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015612af0573d6000803e3d6000fd5b5050506040513d6020811015612b0557600080fd5b8101908080519060200190929190505050141515612b2257600080fd5b600754600283604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612b7c5780518252602082019150602081019050602083039250612b57565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015612bbe573d6000803e3d6000fd5b5050506040513d6020811015612bd357600080fd5b81019080805190602001909291905050501480612caf5750600954600283604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612c455780518252602082019150602081019050602083039250612c20565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015612c87573d6000803e3d6000fd5b5050506040513d6020811015612c9c57600080fd5b8101908080519060200190929190505050145b1515612cba57600080fd5b600a54600282604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612d145780518252602082019150602081019050602083039250612cef565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015612d56573d6000803e3d6000fd5b5050506040513d6020811015612d6b57600080fd5b8101908080519060200190929190505050141515612d8857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612e305750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612e885750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612e9357600080fd5b612ebe601954612eb06018546017546133ca90919063ffffffff16565b6133ca90919063ffffffff16565b601b54111561323057602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612f53601954612f456018546017546133ca90919063ffffffff16565b6133ca90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612fd857600080fd5b505af1158015612fec573d6000803e3d6000fd5b505050506040513d602081101561300257600080fd5b810190808051906020019092919050505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561312f57600080fd5b505afa158015613143573d6000803e3d6000fd5b505050506040513d602081101561315957600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156131ef57600080fd5b505af1158015613203573d6000803e3d6000fd5b505050506040513d602081101561321957600080fd5b810190808051906020019092919050505050613356565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561331957600080fd5b505af115801561332d573d6000803e3d6000fd5b505050506040513d602081101561334357600080fd5b8101908080519060200190929190505050505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b601a60049054906101000a900460ff1681565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008082840190508381101515156133e157600080fd5b809150509291505056fea165627a7a72305820336e1119f40ef792c5a2f7f2b0b26a74a46900bc66d934d795a17d387c24b7030029a165627a7a7230582008ae500671bcddf201cf52114cd92dac807e85ed3be56196442196f2ff2b8fb30029'
const bytecode = automated ? bytecodeAuto : bytecodeDefault
const encodedSecretHashNum = padHexStart(secretHashes.length.toString(16), 64)
const encodedAutoSecretHashNum = automated ? padHexStart(autoSecretHashes.length.toString(16), 64) : ''
const secretHashJumpDest = padHexStart((automated ? 384 : 320).toString(16), 64)
const autoSecretHashJumpDest = automated ? padHexStart((384 + 32 + (32 * encodedSecretHashNum)).toString(16), 64) : ''
const encodedMaxLoanAmount = padHexStart(new BigNumber(maxLoanAmount).toString(16), 64)
const encodedMinLoanDuration = padHexStart(minLoanDuration.toString(16), 64)
const encodedMaxLoanDuration = padHexStart(maxLoanDuration.toString(16), 64)
const encodedInterestRate = padHexStart(interestRate.toString(16), 64)
const encodedLiquidationFeeRate = padHexStart(liquidationFeeRate.toString(16), 64)
const tokenAddress = padHexStart(removeAddress0x(this.getMethod('getContractAddress')()), 64)
const encodedLenderAuto = automated ? padHexStart(removeAddress0x(lenderAuto), 64) : ''
const aCoinPubKeyPrefix = padHexStart(aCoinPubKey.slice(0, 2), 64)
const aCoinPubKeySuffix = padHexStart(aCoinPubKey.slice(2), 64)
const encodedMinCollateralizationRatio = padHexStart((minCollateralizationRatio * (10**6)).toString(16), 64)
const encodedSecretHashes = secretHashes.join('')
const encodedAutoSecretHashes = automated ? autoSecretHashes.join('') : ''
const bytecodeWithArgs = bytecode + secretHashJumpDest + autoSecretHashJumpDest + encodedMaxLoanAmount + encodedMinLoanDuration + encodedMaxLoanDuration + encodedInterestRate + encodedLiquidationFeeRate + tokenAddress + encodedLenderAuto + aCoinPubKeyPrefix + aCoinPubKeySuffix + encodedMinCollateralizationRatio + encodedSecretHashNum + encodedSecretHashes + encodedAutoSecretHashNum + encodedAutoSecretHashes
return bytecodeWithArgs
}