Testnet
Contract 0.0.4674407
Overview
Contract ID
0.0.4674407
Associated Account
Auto Renew Account
None
Proxy Account
None
Created at
Aug 12, 2024, 10:41:24 AM UTC
Expired at
Nov 10, 2024, 10:41:24 AM UTC
File ID
0.0.3992092
Obtainer ID
None
Memo
0.0.4674406
Admin Key
None
EVM Address
0000 0000 0000 0000 0000 0000 0000 0000 0047 5367
(0x0000000000000000000000000000000000475367)
Byte Code
Payload
{
"admin_key":
NULL
"auto_renew_account":
NULL
"auto_renew_period":
int7776000
"contract_id":
string"0.0.4674407"
"created_timestamp":
string"1723459284.379380003"
"deleted":
boolfalse
"evm_address":
string"0x0000000000000000000000000000000000475367"
"expiration_timestamp":
string"1731235284.379380003"
"file_id":
string"0.0.3992092"
"max_automatic_token_associations":
int0
"memo":
string"0.0.4674406"
"nonce":
int3
"obtainer_id":
NULL
"permanent_removal":
NULL
"proxy_account_id":
NULL
"timestamp":{
...
}"bytecode":
string"0x60806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b6200025460201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c33360405162000075919062000321565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b6200025460201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e0919062000321565b60405180910390a16200011a337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426200025460201b60201c565b6200014c307fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426200025460201b60201c565b6040516200015a90620002c0565b604051809103906000f08015801562000177573d6000803e3d6000fd5b5060016000600160ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620001db90620002ce565b604051809103906000f080158015620001f8573d6000803e3d6000fd5b5060016000600260ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200033e565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6184ad806200408983390190565b619c64806200c53683390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200030982620002dc565b9050919050565b6200031b81620002fc565b82525050565b600060208201905062000338600083018462000310565b92915050565b613d3b806200034e6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370480275116100c3578063c48d8e021161007c578063c48d8e0214610382578063c873032b146103b2578063d8fd814f146103ce578063ddedfcf3146103fe578063ec0071051461041a578063f0fbda2d1461044b5761014d565b806370480275146102c257806397b2544f146102de578063a50b33e01461030e578063a8068d181461032a578063ab8c71c014610346578063b6db75a0146103645761014d565b806324758dcb1161011557806324758dcb146101f25780632e2244021461020e57806332ac91a51461023e57806345583b7a1461025a5780635786e9321461027657806366f03d9a146102925761014d565b80630842bf821461015257806311480d591461016e578063118fee951461018a5780631785f53c146101a65780631820b3bf146101c2575b600080fd5b61016c600480360381019061016791906125d8565b61047b565b005b6101886004803603810190610183919061266d565b6106c6565b005b6101a4600480360381019061019f919061266d565b610862565b005b6101c060048036038101906101bb919061269a565b6109fe565b005b6101dc60048036038101906101d7919061278a565b610b20565b6040516101e991906127e2565b60405180910390f35b61020c60048036038101906102079190612858565b610bee565b005b610228600480360381019061022391906128fb565b610f6d565b6040516102359190612b3a565b60405180910390f35b610258600480360381019061025391906128fb565b611037565b005b610274600480360381019061026f9190612b5c565b611260565b005b610290600480360381019061028b919061278a565b61137a565b005b6102ac60048036038101906102a79190612858565b611517565b6040516102b991906127e2565b60405180910390f35b6102dc60048036038101906102d7919061269a565b6115db565b005b6102f860048036038101906102f3919061269a565b6116fd565b60405161030591906127e2565b60405180910390f35b61032860048036038101906103239190612b9c565b61177d565b005b610344600480360381019061033f9190612be9565b6117f0565b005b61034e611992565b60405161035b9190612c54565b60405180910390f35b61036c6119ea565b60405161037991906127e2565b60405180910390f35b61039c6004803603810190610397919061266d565b611a1b565b6040516103a99190612cf7565b60405180910390f35b6103cc60048036038101906103c79190612b9c565b611adc565b005b6103e860048036038101906103e3919061266d565b611bc6565b6040516103f591906127e2565b60405180910390f35b61041860048036038101906104139190612d19565b611c38565b005b610434600480360381019061042f919061278a565b611de1565b604051610442929190612e57565b60405180910390f35b6104656004803603810190610460919061266d565b611ea7565b6040516104729190612cf7565b60405180910390f35b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052f90612ee4565b60405180910390fd5b60005b83518110156105e05761056b84828151811061055a57610559612f04565b5b602002602001015160000151611f68565b73ffffffffffffffffffffffffffffffffffffffff16632459ca666040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105b257600080fd5b505af19250505080156105c3575060015b6105cc576105cd565b5b80806105d890612f6c565b91505061053b565b5060016000845160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630842bf8284846040518363ffffffff1660e01b8152600401610656929190612e57565b600060405180830381600087803b15801561067057600080fd5b505af1158015610684573d6000803e3d6000fd5b505050507f14810161b0c93c5c7dfa3bf8a1a5d02c721f4a32b0c9ea33b511e5c0789ac2b283836040516106b9929190612e57565b60405180910390a1505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a90612ee4565b60405180910390fd5b600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311480d59836040518263ffffffff1660e01b81526004016107f59190612c54565b600060405180830381600087803b15801561080f57600080fd5b505af1158015610823573d6000803e3d6000fd5b505050507fa5010e135493057a9f5399a895ad226a54cf65d6918d7ddc9c406cdac5a75ae8826040516108569190612c54565b60405180910390a15050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690612ee4565b60405180910390fd5b600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663118fee95836040518263ffffffff1660e01b81526004016109919190612c54565b600060405180830381600087803b1580156109ab57600080fd5b505af11580156109bf573d6000803e3d6000fd5b505050507f196ca0e3fd19725314e00d7778ebab832867aa26efc88e069cfd5f80185523df826040516109f29190612c54565b60405180910390a15050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612ee4565b60405180910390fd5b610ae5827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612008565b7fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f82604051610b149190612fc4565b60405180910390a15050565b600080600090505b8251811015610be357610b54838281518110610b4757610b46612f04565b5b6020026020010151611f68565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc29190612ff4565b610bd0576000915050610be9565b8080610bdb90612f6c565b915050610b28565b50600190505b919050565b60005b82829050811015610e3f57610c3b838383818110610c1257610c11612f04565b5b9050602002810190610c249190613030565b6000016020810190610c36919061269a565b6116fd565b610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c71906130a4565b60405180910390fd5b60005b838383818110610c9057610c8f612f04565b5b9050602002810190610ca29190613030565b8060400190610cb191906130c4565b9050811015610e2b576000600182610cc99190613127565b90505b848484818110610cdf57610cde612f04565b5b9050602002810190610cf19190613030565b8060400190610d0091906130c4565b9050811015610e1757848484818110610d1c57610d1b612f04565b5b9050602002810190610d2e9190613030565b8060400190610d3d91906130c4565b82818110610d4e57610d4d612f04565b5b9050602002016020810190610d63919061317d565b60070b858585818110610d7957610d78612f04565b5b9050602002810190610d8b9190613030565b8060400190610d9a91906130c4565b84818110610dab57610daa612f04565b5b9050602002016020810190610dc0919061317d565b60070b1415610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb906131f6565b60405180910390fd5b8080610e0f90612f6c565b915050610ccc565b508080610e2390612f6c565b915050610c7d565b508080610e3790612f6c565b915050610bf1565b506000600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324758dcb60e01b8484604051602401610eb092919061345b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610f1a91906134bb565b600060405180830381855af49150503d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b5050905080610f6857600080fd5b505050565b6060600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e2244028585856040518463ffffffff1660e01b8152600401610fe89392919061356f565b600060405180830381865afa158015611005573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061102e91906137ef565b90509392505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90612ee4565b60405180910390fd5b6000600160008585905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ac91a560e01b8686866040516024016111669392919061356f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111d091906134bb565b600060405180830381855af49150503d806000811461120b576040519150601f19603f3d011682016040523d82523d6000602084013e611210565b606091505b505090508061121e57600080fd5b7fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb88585856040516112519392919061356f565b60405180910390a15050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612ee4565b60405180910390fd5b81600160008560ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612ee4565b60405180910390fd5b60016000835160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635786e932836040518263ffffffff1660e01b81526004016114aa91906138be565b600060405180830381600087803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050507f5cfc35115fc8e9e720735c4e73900d28a033c3dac8efb748752f64b98bbf8d568260405161150b91906138be565b60405180910390a15050565b6000600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166366f03d9a84846040518363ffffffff1660e01b815260040161159092919061345b565b6020604051808303816000875af11580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d39190612ff4565b905092915050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f90612ee4565b60405180910390fd5b6116c2827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426120ad565b7f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339826040516116f19190612fc4565b60405180910390a15050565b600061170882611f68565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190612ff4565b9050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b81526004016117ba9392919061356f565b600060405180830381600087803b1580156117d457600080fd5b505af11580156117e8573d6000803e3d6000fd5b505050505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490612ee4565b60405180910390fd5b60016000835160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d1884846040518363ffffffff1660e01b81526004016119229291906138e0565b600060405180830381600087803b15801561193c57600080fd5b505af1158015611950573d6000803e3d6000fd5b505050507fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb883836040516119859291906138e0565b60405180910390a1505050565b600080600090506119c3337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b612119565b156119cf576001811790505b6119d76119ea565b156119e3576002811790505b8091505090565b6000611a16337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612119565b905090565b6060600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c48d8e02836040518263ffffffff1660e01b8152600401611a8f9190612c54565b600060405180830381865afa158015611aac573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611ad591906139b6565b9050919050565b600160008383905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b8152600401611b559392919061356f565b600060405180830381600087803b158015611b6f57600080fd5b505af1158015611b83573d6000803e3d6000fd5b505050507fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb8338383604051611bba9392919061356f565b60405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cec90612ee4565b60405180910390fd5b600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddedfcf38585856040518463ffffffff1660e01b8152600401611d6e939291906139ff565b600060405180830381600087803b158015611d8857600080fd5b505af1158015611d9c573d6000803e3d6000fd5b505050507f811dad75e5e67db969d68b96a86f7b9f7ac4cf22738745f1a5dd0d4d97d7fd26848484604051611dd3939291906139ff565b60405180910390a150505050565b6060600060016000845160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec007105846040518263ffffffff1660e01b8152600401611e5891906138be565b600060405180830381865afa158015611e75573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611e9e9190613b18565b91509150915091565b6060600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0fbda2d836040518263ffffffff1660e01b8152600401611f1b9190612c54565b600060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611f6191906139b6565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fa75760009050612003565b6000611fb4836008612180565b9050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611ff9578060800151611fff565b80602001515b9150505b919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561204157600080fd5b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6121886122e5565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633c4dd32e60e01b87876040516024016121c1929190613b83565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161222b91906134bb565b6000604051808303816000865af19150503d8060008114612268576040519150601f19603f3d011682016040523d82523d6000602084013e61226d565b606091505b50915091508161227f57601584612294565b808060200190518101906122939190613ca9565b5b8095508194505050601660030b8360030b146122dc576040517f664cb42300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123a48261235b565b810181811067ffffffffffffffff821117156123c3576123c261236c565b5b80604052505050565b60006123d6612342565b90506123e2828261239b565b919050565b600067ffffffffffffffff8211156124025761240161236c565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244d82612422565b9050919050565b61245d81612442565b811461246857600080fd5b50565b60008135905061247a81612454565b92915050565b60008160070b9050919050565b61249681612480565b81146124a157600080fd5b50565b6000813590506124b38161248d565b92915050565b6000604082840312156124cf576124ce612418565b5b6124d960406123cc565b905060006124e98482850161246b565b60008301525060206124fd848285016124a4565b60208301525092915050565b600061251c612517846123e7565b6123cc565b9050808382526020820190506040840283018581111561253f5761253e612413565b5b835b81811015612568578061255488826124b9565b845260208401935050604081019050612541565b5050509392505050565b600082601f83011261258757612586612356565b5b8135612597848260208601612509565b91505092915050565b60008115159050919050565b6125b5816125a0565b81146125c057600080fd5b50565b6000813590506125d2816125ac565b92915050565b600080604083850312156125ef576125ee61234c565b5b600083013567ffffffffffffffff81111561260d5761260c612351565b5b61261985828601612572565b925050602061262a858286016125c3565b9150509250929050565b600060ff82169050919050565b61264a81612634565b811461265557600080fd5b50565b60008135905061266781612641565b92915050565b6000602082840312156126835761268261234c565b5b600061269184828501612658565b91505092915050565b6000602082840312156126b0576126af61234c565b5b60006126be8482850161246b565b91505092915050565b600067ffffffffffffffff8211156126e2576126e161236c565b5b602082029050602081019050919050565b6000612706612701846126c7565b6123cc565b9050808382526020820190506020840283018581111561272957612728612413565b5b835b81811015612752578061273e888261246b565b84526020840193505060208101905061272b565b5050509392505050565b600082601f83011261277157612770612356565b5b81356127818482602086016126f3565b91505092915050565b6000602082840312156127a05761279f61234c565b5b600082013567ffffffffffffffff8111156127be576127bd612351565b5b6127ca8482850161275c565b91505092915050565b6127dc816125a0565b82525050565b60006020820190506127f760008301846127d3565b92915050565b600080fd5b60008083601f84011261281857612817612356565b5b8235905067ffffffffffffffff811115612835576128346127fd565b5b60208301915083602082028301111561285157612850612413565b5b9250929050565b6000806020838503121561286f5761286e61234c565b5b600083013567ffffffffffffffff81111561288d5761288c612351565b5b61289985828601612802565b92509250509250929050565b60008083601f8401126128bb576128ba612356565b5b8235905067ffffffffffffffff8111156128d8576128d76127fd565b5b6020830191508360208202830111156128f4576128f3612413565b5b9250929050565b6000806000604084860312156129145761291361234c565b5b60006129228682870161246b565b935050602084013567ffffffffffffffff81111561294357612942612351565b5b61294f868287016128a5565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61299081612442565b82525050565b61299f81612480565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006129dd8383612996565b60208301905092915050565b6000602082019050919050565b6000612a01826129a5565b612a0b81856129b0565b9350612a16836129c1565b8060005b83811015612a47578151612a2e88826129d1565b9750612a39836129e9565b925050600181019050612a1a565b5085935050505092915050565b6000606083016000830151612a6c6000860182612987565b506020830151612a7f6020860182612996565b5060408301518482036040860152612a9782826129f6565b9150508091505092915050565b6000612ab08383612a54565b905092915050565b6000602082019050919050565b6000612ad08261295b565b612ada8185612966565b935083602082028501612aec85612977565b8060005b85811015612b285784840389528151612b098582612aa4565b9450612b1483612ab8565b925060208a01995050600181019050612af0565b50829750879550505050505092915050565b60006020820190508181036000830152612b548184612ac5565b905092915050565b60008060408385031215612b7357612b7261234c565b5b6000612b8185828601612658565b9250506020612b928582860161246b565b9150509250929050565b60008060208385031215612bb357612bb261234c565b5b600083013567ffffffffffffffff811115612bd157612bd0612351565b5b612bdd858286016128a5565b92509250509250929050565b60008060408385031215612c0057612bff61234c565b5b6000612c0e8582860161246b565b925050602083013567ffffffffffffffff811115612c2f57612c2e612351565b5b612c3b8582860161275c565b9150509250929050565b612c4e81612634565b82525050565b6000602082019050612c696000830184612c45565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ca9578082015181840152602081019050612c8e565b83811115612cb8576000848401525b50505050565b6000612cc982612c6f565b612cd38185612c7a565b9350612ce3818560208601612c8b565b612cec8161235b565b840191505092915050565b60006020820190508181036000830152612d118184612cbe565b905092915050565b600080600060408486031215612d3257612d3161234c565b5b6000612d408682870161246b565b935050602084013567ffffffffffffffff811115612d6157612d60612351565b5b612d6d86828701612802565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151612dbb6000850182612987565b506020820151612dce6020850182612996565b50505050565b6000612de08383612da5565b60408301905092915050565b6000602082019050919050565b6000612e0482612d79565b612e0e8185612d84565b9350612e1983612d95565b8060005b83811015612e4a578151612e318882612dd4565b9750612e3c83612dec565b925050600181019050612e1d565b5085935050505092915050565b60006040820190508181036000830152612e718185612df9565b9050612e8060208301846127d3565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000612ece600e83612e87565b9150612ed982612e98565b602082019050919050565b60006020820190508181036000830152612efd81612ec1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f7782612f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612faa57612fa9612f33565b5b600182019050919050565b612fbe81612442565b82525050565b6000602082019050612fd96000830184612fb5565b92915050565b600081519050612fee816125ac565b92915050565b60006020828403121561300a5761300961234c565b5b600061301884828501612fdf565b91505092915050565b600080fd5b600080fd5b600080fd5b60008235600160600383360303811261304c5761304b613021565b5b80830191505092915050565b7f504149525f4e4f545f415641494c41424c450000000000000000000000000000600082015250565b600061308e601283612e87565b915061309982613058565b602082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b600080833560016020038436030381126130e1576130e0613021565b5b80840192508235915067ffffffffffffffff82111561310357613102613026565b5b60208301925060208202360383131561311f5761311e61302b565b5b509250929050565b600061313282612f62565b915061313d83612f62565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561317257613171612f33565b5b828201905092915050565b6000602082840312156131935761319261234c565b5b60006131a1848285016124a4565b91505092915050565b7f4e4f545f554e495155455f53455249414c530000000000000000000000000000600082015250565b60006131e0601283612e87565b91506131eb826131aa565b602082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b6000819050919050565b600061322f602084018461246b565b905092915050565b600061324660208401846124a4565b905092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261327a57613279613258565b5b83810192508235915060208301925067ffffffffffffffff8211156132a2576132a161324e565b5b6020820236038413156132b8576132b7613253565b5b509250929050565b6000819050919050565b6000602082019050919050565b60006132e383856129b0565b93506132ee826132c0565b8060005b85811015613327576133048284613237565b61330e88826129d1565b9750613319836132ca565b9250506001810190506132f2565b5085925050509392505050565b6000606083016133476000840184613220565b6133546000860182612987565b506133626020840184613237565b61336f6020860182612996565b5061337d604084018461325d565b85830360408701526133908382846132d7565b925050508091505092915050565b60006133aa8383613334565b905092915050565b6000823560016060038336030381126133ce576133cd613258565b5b82810191505092915050565b6000602082019050919050565b60006133f38385612966565b93508360208402850161340584613216565b8060005b8781101561344957848403895261342082846133b2565b61342a858261339e565b9450613435836133da565b925060208a01995050600181019050613409565b50829750879450505050509392505050565b600060208201905081810360008301526134768184866133e7565b90509392505050565b600081905092915050565b600061349582612c6f565b61349f818561347f565b93506134af818560208601612c8b565b80840191505092915050565b60006134c7828461348a565b915081905092915050565b600082825260208201905092915050565b6000819050919050565b60006134f98383612987565b60208301905092915050565b6000602082019050919050565b600061351e83856134d2565b9350613529826134e3565b8060005b858110156135625761353f8284613220565b61354988826134ed565b975061355483613505565b92505060018101905061352d565b5085925050509392505050565b60006040820190506135846000830186612fb5565b8181036020830152613597818486613512565b9050949350505050565b600067ffffffffffffffff8211156135bc576135bb61236c565b5b602082029050602081019050919050565b6000815190506135dc81612454565b92915050565b6000815190506135f18161248d565b92915050565b600067ffffffffffffffff8211156136125761361161236c565b5b602082029050602081019050919050565b6000613636613631846135f7565b6123cc565b9050808382526020820190506020840283018581111561365957613658612413565b5b835b81811015613682578061366e88826135e2565b84526020840193505060208101905061365b565b5050509392505050565b600082601f8301126136a1576136a0612356565b5b81516136b1848260208601613623565b91505092915050565b6000606082840312156136d0576136cf612418565b5b6136da60606123cc565b905060006136ea848285016135cd565b60008301525060206136fe848285016135e2565b602083015250604082015167ffffffffffffffff8111156137225761372161241d565b5b61372e8482850161368c565b60408301525092915050565b600061374d613748846135a1565b6123cc565b905080838252602082019050602084028301858111156137705761376f612413565b5b835b818110156137b757805167ffffffffffffffff81111561379557613794612356565b5b8086016137a289826136ba565b85526020850194505050602081019050613772565b5050509392505050565b600082601f8301126137d6576137d5612356565b5b81516137e684826020860161373a565b91505092915050565b6000602082840312156138055761380461234c565b5b600082015167ffffffffffffffff81111561382357613822612351565b5b61382f848285016137c1565b91505092915050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061386b82613838565b61387581856134d2565b935061388083613843565b8060005b838110156138b157815161389888826134ed565b97506138a383613853565b925050600181019050613884565b5085935050505092915050565b600060208201905081810360008301526138d88184613860565b905092915050565b60006040820190506138f56000830185612fb5565b81810360208301526139078184613860565b90509392505050565b600080fd5b600067ffffffffffffffff8211156139305761392f61236c565b5b6139398261235b565b9050602081019050919050565b600061395961395484613915565b6123cc565b90508281526020810184848401111561397557613974613910565b5b613980848285612c8b565b509392505050565b600082601f83011261399d5761399c612356565b5b81516139ad848260208601613946565b91505092915050565b6000602082840312156139cc576139cb61234c565b5b600082015167ffffffffffffffff8111156139ea576139e9612351565b5b6139f684828501613988565b91505092915050565b6000604082019050613a146000830186612fb5565b8181036020830152613a278184866133e7565b9050949350505050565b600060408284031215613a4757613a46612418565b5b613a5160406123cc565b90506000613a61848285016135cd565b6000830152506020613a75848285016135e2565b60208301525092915050565b6000613a94613a8f846123e7565b6123cc565b90508083825260208201905060408402830185811115613ab757613ab6612413565b5b835b81811015613ae05780613acc8882613a31565b845260208401935050604081019050613ab9565b5050509392505050565b600082601f830112613aff57613afe612356565b5b8151613b0f848260208601613a81565b91505092915050565b60008060408385031215613b2f57613b2e61234c565b5b600083015167ffffffffffffffff811115613b4d57613b4c612351565b5b613b5985828601613aea565b9250506020613b6a85828601612fdf565b9150509250929050565b613b7d81612f62565b82525050565b6000604082019050613b986000830185612fb5565b613ba56020830184613b74565b9392505050565b60008160030b9050919050565b613bc281613bac565b8114613bcd57600080fd5b50565b600081519050613bdf81613bb9565b92915050565b600060a08284031215613bfb57613bfa612418565b5b613c0560a06123cc565b90506000613c1584828501612fdf565b6000830152506020613c29848285016135cd565b602083015250604082015167ffffffffffffffff811115613c4d57613c4c61241d565b5b613c5984828501613988565b604083015250606082015167ffffffffffffffff811115613c7d57613c7c61241d565b5b613c8984828501613988565b6060830152506080613c9d848285016135cd565b60808301525092915050565b60008060408385031215613cc057613cbf61234c565b5b6000613cce85828601613bd0565b925050602083015167ffffffffffffffff811115613cef57613cee612351565b5b613cfb85828601613be5565b915050925092905056fea26469706673582212204b2d6d34c02d75f2528e10d127ce62c612ec9b1425bb062b652df3386e1c50a864736f6c634300080b003360806040523480156200001157600080fd5b50604051620000209062000437565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b5062000070337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620001e060201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c333604051620000a191906200048a565b60405180910390a1620000db307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620001e060201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3306040516200010c91906200048a565b60405180910390a162000146337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620001e060201b60201c565b62000178307fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620001e060201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c96200024c60201b60201c565b620001d9620002bb60201b60201c565b5062000636565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620002646389db5a0560e01b6200032a60201b60201c565b806020019051810190620002799190620004f1565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b620002d3632b057dae60e01b6200032a60201b60201c565b806020019051810190620002e8919062000568565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051620003db91906200061d565b600060405180830381855af49150503d806000811462000418576040519150601f19603f3d011682016040523d82523d6000602084013e6200041d565b606091505b5091509150816200042d57600080fd5b8092505050919050565b613d48806200476583390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004728262000445565b9050919050565b620004848162000465565b82525050565b6000602082019050620004a1600083018462000479565b92915050565b600080fd5b6000620004b98262000465565b9050919050565b620004cb81620004ac565b8114620004d757600080fd5b50565b600081519050620004eb81620004c0565b92915050565b6000602082840312156200050a5762000509620004a7565b5b60006200051a84828501620004da565b91505092915050565b6000620005308262000465565b9050919050565b620005428162000523565b81146200054e57600080fd5b50565b600081519050620005628162000537565b92915050565b600060208284031215620005815762000580620004a7565b5b6000620005918482850162000551565b91505092915050565b600081519050919050565b600081905092915050565b60005b83811015620005d0578082015181840152602081019050620005b3565b83811115620005e0576000848401525b50505050565b6000620005f3826200059a565b620005ff8185620005a5565b935062000611818560208601620005b0565b80840191505092915050565b60006200062b8284620005e6565b915081905092915050565b61411f80620006466000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806366f03d9a116100ad578063b6db75a011610071578063b6db75a0146102ec578063c48d8e021461030a578063ddedfcf31461033a578063ec00710514610356578063f0fbda2d1461038757610121565b806366f03d9a1461024a578063704802751461027a578063a50b33e014610296578063a8068d18146102b2578063ab8c71c0146102ce57610121565b80631820b3bf116100f45780631820b3bf1461019657806324758dcb146101c65780632e224402146101e257806332ac91a5146102125780635786e9321461022e57610121565b80630842bf821461012657806311480d5914610142578063118fee951461015e5780631785f53c1461017a575b600080fd5b610140600480360381019061013b919061259a565b6103b7565b005b61015c6004803603810190610157919061262f565b61051b565b005b6101786004803603810190610173919061262f565b6105e4565b005b610194600480360381019061018f919061265c565b6106ad565b005b6101b060048036038101906101ab919061274c565b6107cf565b6040516101bd91906127a4565b60405180910390f35b6101e060048036038101906101db919061281a565b61089d565b005b6101fc60048036038101906101f791906128bd565b610bc9565b6040516102099190612afc565b60405180910390f35b61022c600480360381019061022791906128bd565b610c79565b005b6102486004803603810190610243919061274c565b610e52565b005b610264600480360381019061025f919061281a565b610fb3565b60405161027191906127a4565b60405180910390f35b610294600480360381019061028f919061265c565b61117a565b005b6102b060048036038101906102ab9190612b1e565b61129c565b005b6102cc60048036038101906102c79190612b6b565b61130f565b005b6102d6611473565b6040516102e39190612bd6565b60405180910390f35b6102f46114cb565b60405161030191906127a4565b60405180910390f35b610324600480360381019061031f919061262f565b6114fc565b6040516103319190612c79565b60405180910390f35b610354600480360381019061034f9190612c9b565b6115a6565b005b610370600480360381019061036b919061274c565b61170f565b60405161037e929190612dd9565b60405180910390f35b6103a1600480360381019061039c919061262f565b6117d0565b6040516103ae9190612c79565b60405180910390f35b815160018160ff16146103c957600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90612e66565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630842bf8285856040518363ffffffff1660e01b81526004016104e3929190612dd9565b600060405180830381600087803b1580156104fd57600080fd5b505af1158015610511573d6000803e3d6000fd5b5050505050505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90612e66565b60405180910390fd5b6105e061187a565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890612e66565b60405180910390fd5b6106a96118df565b5050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190612e66565b60405180910390fd5b610794827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611944565b7fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f826040516107c39190612e95565b60405180910390a15050565b600080600090505b8251811015610892576108038382815181106107f6576107f5612eb0565b5b60200260200101516119e9565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190612ef4565b61087f576000915050610898565b808061088a90612f5a565b9150506107d7565b50600190505b919050565b8181905060018160ff16146108b157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff166366f03d9a84846040518363ffffffff1660e01b81526004016108ec9291906131e8565b6020604051808303816000875af115801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092f9190612ef4565b61096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590613258565b60405180910390fd5b60008383905067ffffffffffffffff81111561098d5761098c61232e565b5b6040519080825280602002602001820160405280156109bb5781602001602082028036833780820191505090505b50905060005b84849050811015610aac57677fffffffffffffff8585838181106109e8576109e7612eb0565b5b90506020028101906109fa9190613287565b8060400190610a0991906132af565b905010610a1557600080fd5b848482818110610a2857610a27612eb0565b5b9050602002810190610a3a9190613287565b6000016020810190610a4c919061265c565b828281518110610a5f57610a5e612eb0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080610aa490612f5a565b9150506109c1565b5060003073ffffffffffffffffffffffffffffffffffffffff1663ec007105836040518263ffffffff1660e01b8152600401610ae891906133c1565b600060405180830381865afa158015610b05573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b2e91906134f4565b9150508015610b5257610b4d33868690610b489190613746565b611a89565b610bc2565b3073ffffffffffffffffffffffffffffffffffffffff1663ddedfcf33387876040518463ffffffff1660e01b8152600401610b8f9392919061375b565b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b505050505b5050505050565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e2244028585856040518463ffffffff1660e01b8152600401610c2a93929190613801565b600060405180830381865afa158015610c47573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610c7091906139ff565b90509392505050565b8181905060018160ff1614610c8d57600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190612e66565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff16632e2244028787876040518463ffffffff1660e01b8152600401610d8993929190613801565b600060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610dcf91906139ff565b9050610ddb8682611a89565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d188787876040518463ffffffff1660e01b8152600401610e1893929190613801565b600060405180830381600087803b158015610e3257600080fd5b505af1158015610e46573d6000803e3d6000fd5b50505050505050505050565b805160018160ff1614610e6457600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1890612e66565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635786e932846040518263ffffffff1660e01b8152600401610f7c91906133c1565b600060405180830381600087803b158015610f9657600080fd5b505af1158015610faa573d6000803e3d6000fd5b50505050505050565b60008282905060018160ff1614610fc957600080fd5b6000600167ffffffffffffffff811115610fe657610fe561232e565b5b6040519080825280602002602001820160405280156110145781602001602082028036833780820191505090505b5090508484600081811061102b5761102a612eb0565b5b905060200281019061103d9190613287565b600001602081019061104f919061265c565b8160008151811061106357611062612eb0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006110a88261170f565b5090506000816000815181106110c1576110c0612eb0565b5b60200260200101516020015160070b136110da57600080fd5b600061110a878760008181106110f3576110f2612eb0565b5b90506020028101906111059190613287565b611d12565b9050816000815181106111205761111f612eb0565b5b60200260200101516020015160070b8160070b1215801561116e575060008260008151811061115257611151612eb0565b5b602002602001015160200151826111699190613a77565b60070b145b94505050505092915050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e90612e66565b60405180910390fd5b611261827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611e0b565b7f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339826040516112909190612e95565b60405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b81526004016112d993929190613801565b600060405180830381600087803b1580156112f357600080fd5b505af1158015611307573d6000803e3d6000fd5b505050505050565b805160018160ff161461132157600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590612e66565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d1885856040518363ffffffff1660e01b815260040161143b929190613aa8565b600060405180830381600087803b15801561145557600080fd5b505af1158015611469573d6000803e3d6000fd5b5050505050505050565b600080600090506114a4337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b611e77565b156114b0576001811790505b6114b86114cb565b156114c4576002811790505b8091505090565b60006114f7337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611e77565b905090565b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c48d8e02836040518263ffffffff1660e01b81526004016115599190612bd6565b600060405180830381865afa158015611576573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061159f9190613b7e565b9050919050565b8181905060018160ff16146115ba57600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90612e66565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddedfcf38686866040518463ffffffff1660e01b81526004016116d69392919061375b565b600060405180830381600087803b1580156116f057600080fd5b505af1158015611704573d6000803e3d6000fd5b505050505050505050565b60606000825160018160ff161461172557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec007105856040518263ffffffff1660e01b815260040161178091906133c1565b600060405180830381865afa15801561179d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906117c691906134f4565b9250925050915091565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0fbda2d836040518263ffffffff1660e01b815260040161182d9190612bd6565b600060405180830381865afa15801561184a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906118739190613b7e565b9050919050565b61188a632b057dae60e01b611ede565b80602001905181019061189d9190613c05565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6118ef6389db5a0560e01b611ede565b8060200190518101906119029190613c70565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561197d57600080fd5b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a285760009050611a84565b6000611a35836008611fe6565b9050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611a7a578060800151611a80565b80602001515b9150505b919050565b60005b8151811015611cd4576000611abe838381518110611aad57611aac612eb0565b5b60200260200101516000015161214b565b905060008160030b1415611ba257611af3838381518110611ae257611ae1612eb0565b5b6020026020010151600001516119e9565b73ffffffffffffffffffffffffffffffffffffffff1663575a61c8848481518110611b2157611b20612eb0565b5b60200260200101516000015186868681518110611b4157611b40612eb0565b5b6020026020010151602001516040518463ffffffff1660e01b8152600401611b6b93929190613cac565b600060405180830381600087803b158015611b8557600080fd5b505af1158015611b99573d6000803e3d6000fd5b50505050611cc0565b60018160030b1415611c8457611bd5838381518110611bc457611bc3612eb0565b5b6020026020010151600001516119e9565b73ffffffffffffffffffffffffffffffffffffffff166389b9c45c848481518110611c0357611c02612eb0565b5b60200260200101516000015186868681518110611c2357611c22612eb0565b5b6020026020010151604001516040518463ffffffff1660e01b8152600401611c4d93929190613d52565b600060405180830381600087803b158015611c6757600080fd5b505af1158015611c7b573d6000803e3d6000fd5b50505050611cbf565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb690613ddc565b60405180910390fd5b5b508080611ccc90612f5a565b915050611a8c565b507f760b5d447de9a6afab4457b996807616ccd3b048f15f77e82cc55fdb70962f4e8282604051611d06929190613dfc565b60405180910390a15050565b600080611d30836000016020810190611d2b919061265c565b61214b565b90506000808260030b1415611d5957836020016020810190611d529190613e2c565b9050611e01565b60018260030b1415611dc557838060400190611d7591906132af565b90509050600a8160070b1315611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db790613ea5565b60405180910390fd5b611e00565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df790613ddc565b60405180910390fd5b5b8092505050919050565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611f8d9190613f01565b600060405180830381855af49150503d8060008114611fc8576040519150601f19603f3d011682016040523d82523d6000602084013e611fcd565b606091505b509150915081611fdc57600080fd5b8092505050919050565b611fee6122a7565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633c4dd32e60e01b8787604051602401612027929190613f27565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516120919190613f01565b6000604051808303816000865af19150503d80600081146120ce576040519150601f19603f3d011682016040523d82523d6000602084013e6120d3565b606091505b5091509150816120e5576015846120fa565b808060200190518101906120f9919061404d565b5b8095508194505050601660030b8360030b14612142576040517f664cb42300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff166393272baf60e01b866040516024016121839190612e95565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516121ed9190613f01565b6000604051808303816000865af19150503d806000811461222a576040519150601f19603f3d011682016040523d82523d6000602084013e61222f565b606091505b5091509150816122425760156000612257565b8080602001905181019061225691906140a9565b5b8095508194505050601660030b8360030b1461229f576040517fba96339e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050919050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123668261231d565b810181811067ffffffffffffffff821117156123855761238461232e565b5b80604052505050565b6000612398612304565b90506123a4828261235d565b919050565b600067ffffffffffffffff8211156123c4576123c361232e565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061240f826123e4565b9050919050565b61241f81612404565b811461242a57600080fd5b50565b60008135905061243c81612416565b92915050565b60008160070b9050919050565b61245881612442565b811461246357600080fd5b50565b6000813590506124758161244f565b92915050565b600060408284031215612491576124906123da565b5b61249b604061238e565b905060006124ab8482850161242d565b60008301525060206124bf84828501612466565b60208301525092915050565b60006124de6124d9846123a9565b61238e565b90508083825260208201905060408402830185811115612501576125006123d5565b5b835b8181101561252a5780612516888261247b565b845260208401935050604081019050612503565b5050509392505050565b600082601f83011261254957612548612318565b5b81356125598482602086016124cb565b91505092915050565b60008115159050919050565b61257781612562565b811461258257600080fd5b50565b6000813590506125948161256e565b92915050565b600080604083850312156125b1576125b061230e565b5b600083013567ffffffffffffffff8111156125cf576125ce612313565b5b6125db85828601612534565b92505060206125ec85828601612585565b9150509250929050565b600060ff82169050919050565b61260c816125f6565b811461261757600080fd5b50565b60008135905061262981612603565b92915050565b6000602082840312156126455761264461230e565b5b60006126538482850161261a565b91505092915050565b6000602082840312156126725761267161230e565b5b60006126808482850161242d565b91505092915050565b600067ffffffffffffffff8211156126a4576126a361232e565b5b602082029050602081019050919050565b60006126c86126c384612689565b61238e565b905080838252602082019050602084028301858111156126eb576126ea6123d5565b5b835b818110156127145780612700888261242d565b8452602084019350506020810190506126ed565b5050509392505050565b600082601f83011261273357612732612318565b5b81356127438482602086016126b5565b91505092915050565b6000602082840312156127625761276161230e565b5b600082013567ffffffffffffffff8111156127805761277f612313565b5b61278c8482850161271e565b91505092915050565b61279e81612562565b82525050565b60006020820190506127b96000830184612795565b92915050565b600080fd5b60008083601f8401126127da576127d9612318565b5b8235905067ffffffffffffffff8111156127f7576127f66127bf565b5b602083019150836020820283011115612813576128126123d5565b5b9250929050565b600080602083850312156128315761283061230e565b5b600083013567ffffffffffffffff81111561284f5761284e612313565b5b61285b858286016127c4565b92509250509250929050565b60008083601f84011261287d5761287c612318565b5b8235905067ffffffffffffffff81111561289a576128996127bf565b5b6020830191508360208202830111156128b6576128b56123d5565b5b9250929050565b6000806000604084860312156128d6576128d561230e565b5b60006128e48682870161242d565b935050602084013567ffffffffffffffff81111561290557612904612313565b5b61291186828701612867565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61295281612404565b82525050565b61296181612442565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061299f8383612958565b60208301905092915050565b6000602082019050919050565b60006129c382612967565b6129cd8185612972565b93506129d883612983565b8060005b83811015612a095781516129f08882612993565b97506129fb836129ab565b9250506001810190506129dc565b5085935050505092915050565b6000606083016000830151612a2e6000860182612949565b506020830151612a416020860182612958565b5060408301518482036040860152612a5982826129b8565b9150508091505092915050565b6000612a728383612a16565b905092915050565b6000602082019050919050565b6000612a928261291d565b612a9c8185612928565b935083602082028501612aae85612939565b8060005b85811015612aea5784840389528151612acb8582612a66565b9450612ad683612a7a565b925060208a01995050600181019050612ab2565b50829750879550505050505092915050565b60006020820190508181036000830152612b168184612a87565b905092915050565b60008060208385031215612b3557612b3461230e565b5b600083013567ffffffffffffffff811115612b5357612b52612313565b5b612b5f85828601612867565b92509250509250929050565b60008060408385031215612b8257612b8161230e565b5b6000612b908582860161242d565b925050602083013567ffffffffffffffff811115612bb157612bb0612313565b5b612bbd8582860161271e565b9150509250929050565b612bd0816125f6565b82525050565b6000602082019050612beb6000830184612bc7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c2b578082015181840152602081019050612c10565b83811115612c3a576000848401525b50505050565b6000612c4b82612bf1565b612c558185612bfc565b9350612c65818560208601612c0d565b612c6e8161231d565b840191505092915050565b60006020820190508181036000830152612c938184612c40565b905092915050565b600080600060408486031215612cb457612cb361230e565b5b6000612cc28682870161242d565b935050602084013567ffffffffffffffff811115612ce357612ce2612313565b5b612cef868287016127c4565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151612d3d6000850182612949565b506020820151612d506020850182612958565b50505050565b6000612d628383612d27565b60408301905092915050565b6000602082019050919050565b6000612d8682612cfb565b612d908185612d06565b9350612d9b83612d17565b8060005b83811015612dcc578151612db38882612d56565b9750612dbe83612d6e565b925050600181019050612d9f565b5085935050505092915050565b60006040820190508181036000830152612df38185612d7b565b9050612e026020830184612795565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000612e50600e83612e09565b9150612e5b82612e1a565b602082019050919050565b60006020820190508181036000830152612e7f81612e43565b9050919050565b612e8f81612404565b82525050565b6000602082019050612eaa6000830184612e86565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612eee8161256e565b92915050565b600060208284031215612f0a57612f0961230e565b5b6000612f1884828501612edf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f6582612f50565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f9857612f97612f21565b5b600182019050919050565b6000819050919050565b6000612fbc602084018461242d565b905092915050565b6000612fd36020840184612466565b905092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261300757613006612fe5565b5b83810192508235915060208301925067ffffffffffffffff82111561302f5761302e612fdb565b5b60208202360384131561304557613044612fe0565b5b509250929050565b6000819050919050565b6000602082019050919050565b60006130708385612972565b935061307b8261304d565b8060005b858110156130b4576130918284612fc4565b61309b8882612993565b97506130a683613057565b92505060018101905061307f565b5085925050509392505050565b6000606083016130d46000840184612fad565b6130e16000860182612949565b506130ef6020840184612fc4565b6130fc6020860182612958565b5061310a6040840184612fea565b858303604087015261311d838284613064565b925050508091505092915050565b600061313783836130c1565b905092915050565b60008235600160600383360303811261315b5761315a612fe5565b5b82810191505092915050565b6000602082019050919050565b60006131808385612928565b93508360208402850161319284612fa3565b8060005b878110156131d65784840389526131ad828461313f565b6131b7858261312b565b94506131c283613167565b925060208a01995050600181019050613196565b50829750879450505050509392505050565b60006020820190508181036000830152613203818486613174565b90509392505050565b7f5245544952455f434845434b0000000000000000000000000000000000000000600082015250565b6000613242600c83612e09565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016060038336030381126132a3576132a2613278565b5b80830191505092915050565b600080833560016020038436030381126132cc576132cb613278565b5b80840192508235915067ffffffffffffffff8211156132ee576132ed61327d565b5b60208301925060208202360383131561330a57613309613282565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061334a8383612949565b60208301905092915050565b6000602082019050919050565b600061336e82613312565b613378818561331d565b93506133838361332e565b8060005b838110156133b457815161339b888261333e565b97506133a683613356565b925050600181019050613387565b5085935050505092915050565b600060208201905081810360008301526133db8184613363565b905092915050565b6000815190506133f281612416565b92915050565b6000815190506134078161244f565b92915050565b600060408284031215613423576134226123da565b5b61342d604061238e565b9050600061343d848285016133e3565b6000830152506020613451848285016133f8565b60208301525092915050565b600061347061346b846123a9565b61238e565b90508083825260208201905060408402830185811115613493576134926123d5565b5b835b818110156134bc57806134a8888261340d565b845260208401935050604081019050613495565b5050509392505050565b600082601f8301126134db576134da612318565b5b81516134eb84826020860161345d565b91505092915050565b6000806040838503121561350b5761350a61230e565b5b600083015167ffffffffffffffff81111561352957613528612313565b5b613535858286016134c6565b925050602061354685828601612edf565b9150509250929050565b600067ffffffffffffffff82111561356b5761356a61232e565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156135975761359661232e565b5b602082029050602081019050919050565b60006135bb6135b68461357c565b61238e565b905080838252602082019050602084028301858111156135de576135dd6123d5565b5b835b8181101561360757806135f38882612466565b8452602084019350506020810190506135e0565b5050509392505050565b600082601f83011261362657613625612318565b5b81356136368482602086016135a8565b91505092915050565b600060608284031215613655576136546123da565b5b61365f606061238e565b9050600061366f8482850161242d565b600083015250602061368384828501612466565b602083015250604082013567ffffffffffffffff8111156136a7576136a66123df565b5b6136b384828501613611565b60408301525092915050565b60006136d26136cd84613550565b61238e565b905080838252602082019050602084028301858111156136f5576136f46123d5565b5b835b8181101561373c57803567ffffffffffffffff81111561371a57613719612318565b5b808601613727898261363f565b855260208501945050506020810190506136f7565b5050509392505050565b60006137533684846136bf565b905092915050565b60006040820190506137706000830186612e86565b8181036020830152613783818486613174565b9050949350505050565b6000819050919050565b6000602082019050919050565b60006137b0838561331d565b93506137bb8261378d565b8060005b858110156137f4576137d18284612fad565b6137db888261333e565b97506137e683613797565b9250506001810190506137bf565b5085925050509392505050565b60006040820190506138166000830186612e86565b81810360208301526138298184866137a4565b9050949350505050565b60006138466138418461357c565b61238e565b90508083825260208201905060208402830185811115613869576138686123d5565b5b835b81811015613892578061387e88826133f8565b84526020840193505060208101905061386b565b5050509392505050565b600082601f8301126138b1576138b0612318565b5b81516138c1848260208601613833565b91505092915050565b6000606082840312156138e0576138df6123da565b5b6138ea606061238e565b905060006138fa848285016133e3565b600083015250602061390e848285016133f8565b602083015250604082015167ffffffffffffffff811115613932576139316123df565b5b61393e8482850161389c565b60408301525092915050565b600061395d61395884613550565b61238e565b905080838252602082019050602084028301858111156139805761397f6123d5565b5b835b818110156139c757805167ffffffffffffffff8111156139a5576139a4612318565b5b8086016139b289826138ca565b85526020850194505050602081019050613982565b5050509392505050565b600082601f8301126139e6576139e5612318565b5b81516139f684826020860161394a565b91505092915050565b600060208284031215613a1557613a1461230e565b5b600082015167ffffffffffffffff811115613a3357613a32612313565b5b613a3f848285016139d1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a8282612442565b9150613a8d83612442565b925082613a9d57613a9c613a48565b5b828207905092915050565b6000604082019050613abd6000830185612e86565b8181036020830152613acf8184613363565b90509392505050565b600080fd5b600067ffffffffffffffff821115613af857613af761232e565b5b613b018261231d565b9050602081019050919050565b6000613b21613b1c84613add565b61238e565b905082815260208101848484011115613b3d57613b3c613ad8565b5b613b48848285612c0d565b509392505050565b600082601f830112613b6557613b64612318565b5b8151613b75848260208601613b0e565b91505092915050565b600060208284031215613b9457613b9361230e565b5b600082015167ffffffffffffffff811115613bb257613bb1612313565b5b613bbe84828501613b50565b91505092915050565b6000613bd282612404565b9050919050565b613be281613bc7565b8114613bed57600080fd5b50565b600081519050613bff81613bd9565b92915050565b600060208284031215613c1b57613c1a61230e565b5b6000613c2984828501613bf0565b91505092915050565b6000613c3d82612404565b9050919050565b613c4d81613c32565b8114613c5857600080fd5b50565b600081519050613c6a81613c44565b92915050565b600060208284031215613c8657613c8561230e565b5b6000613c9484828501613c5b565b91505092915050565b613ca681612442565b82525050565b6000606082019050613cc16000830186612e86565b613cce6020830185612e86565b613cdb6040830184613c9d565b949350505050565b600082825260208201905092915050565b6000613cff82612967565b613d098185613ce3565b9350613d1483612983565b8060005b83811015613d45578151613d2c8882612993565b9750613d37836129ab565b925050600181019050613d18565b5085935050505092915050565b6000606082019050613d676000830186612e86565b613d746020830185612e86565b8181036040830152613d868184613cf4565b9050949350505050565b7f554e535550504f525445445f544f4b454e5f5459504500000000000000000000600082015250565b6000613dc6601683612e09565b9150613dd182613d90565b602082019050919050565b60006020820190508181036000830152613df581613db9565b9050919050565b6000604082019050613e116000830185612e86565b8181036020830152613e238184612a87565b90509392505050565b600060208284031215613e4257613e4161230e565b5b6000613e5084828501612466565b91505092915050565b7f4e4654535f4c494d495400000000000000000000000000000000000000000000600082015250565b6000613e8f600a83612e09565b9150613e9a82613e59565b602082019050919050565b60006020820190508181036000830152613ebe81613e82565b9050919050565b600081905092915050565b6000613edb82612bf1565b613ee58185613ec5565b9350613ef5818560208601612c0d565b80840191505092915050565b6000613f0d8284613ed0565b915081905092915050565b613f2181612f50565b82525050565b6000604082019050613f3c6000830185612e86565b613f496020830184613f18565b9392505050565b60008160030b9050919050565b613f6681613f50565b8114613f7157600080fd5b50565b600081519050613f8381613f5d565b92915050565b600060a08284031215613f9f57613f9e6123da565b5b613fa960a061238e565b90506000613fb984828501612edf565b6000830152506020613fcd848285016133e3565b602083015250604082015167ffffffffffffffff811115613ff157613ff06123df565b5b613ffd84828501613b50565b604083015250606082015167ffffffffffffffff811115614021576140206123df565b5b61402d84828501613b50565b6060830152506080614041848285016133e3565b60808301525092915050565b600080604083850312156140645761406361230e565b5b600061407285828601613f74565b925050602083015167ffffffffffffffff81111561409357614092612313565b5b61409f85828601613f89565b9150509250929050565b600080604083850312156140c0576140bf61230e565b5b60006140ce85828601613f74565b92505060206140df85828601613f74565b915050925092905056fea2646970667358221220d7151059102393bdc9d5be6dcfe7b1d7f9ac00382d332fd5a06f7ea4edca660564736f6c634300080b0033608060405234801561001057600080fd5b50613d28806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632b057dae1461003b57806389db5a0514610059575b600080fd5b610043610077565b6040516100509190610170565b60405180910390f35b6100616100a7565b60405161006e91906101ac565b60405180910390f35b6000604051610085906100d7565b604051809103906000f0801580156100a1573d6000803e3d6000fd5b50905090565b60006040516100b5906100e4565b604051809103906000f0801580156100d1573d6000803e3d6000fd5b50905090565b611f8a806101c883390190565b611ba18061215283390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061013661013161012c846100f1565b610111565b6100f1565b9050919050565b60006101488261011b565b9050919050565b600061015a8261013d565b9050919050565b61016a8161014f565b82525050565b60006020820190506101856000830184610161565b92915050565b60006101968261013d565b9050919050565b6101a68161018b565b82525050565b60006020820190506101c1600083018461019d565b9291505056fe60806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3336040516200007591906200019f565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e091906200019f565b60405180910390a1620001bc565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000187826200015a565b9050919050565b62000199816200017a565b82525050565b6000602082019050620001b660008301846200018e565b92915050565b611dbe80620001cc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e22440214610051578063a8068d1814610081578063ddedfcf31461009d578063f0fbda2d146100b9575b600080fd5b61006b600480360381019061006691906110e3565b6100e9565b604051610078919061132f565b60405180910390f35b61009b600480360381019061009691906114a0565b610331565b005b6100b760048036038101906100b29190611552565b610979565b005b6100d360048036038101906100ce91906115eb565b610e44565b6040516100e091906116a0565b60405180910390f35b60606000849050600084846000818110610106576101056116c2565b5b905060200201602081019061011b91906116f1565b90506000600180600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546101a99190611757565b815481106101ba576101b96116c2565b5b906000526020600020906003020190506000600167ffffffffffffffff8111156101e7576101e6611362565b5b60405190808252806020026020018201604052801561022057816020015b61020d610e6e565b8152602001906001900390816102055790505b50905060405180606001604052808360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360010160149054906101000a900460070b60070b8152602001836002018054806020026020016040519081016040528092919081815260200182805480156102fc57602002820191906000526020600020906000905b82829054906101000a900460070b60070b815260200190600801906020826007010492830192600103820291508084116102c55790505b505050505081525081600081518110610318576103176116c2565b5b6020026020010181905250809450505050509392505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166103ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e5906117e8565b60405180910390fd5b6000839050600083600081518110610409576104086116c2565b5b602002602001015190506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116104d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c990611854565b60405180910390fd5b600060018080805490506104e69190611757565b815481106104f7576104f66116c2565b5b90600052602060002090600302019050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180808054905061065e9190611757565b8154811061066f5761066e6116c2565b5b9060005260206000209060030201600180600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107079190611757565b81548110610718576107176116c2565b5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160149054906101000a900460070b8160010160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506002820181600201908054610849929190610ea8565b50905050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905560018054806108df576108de611874565b5b6001900381819060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549067ffffffffffffffff021916905560028201600061096d9190610f08565b50509055505050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d906117e8565b60405180910390fd5b6000849050600084846000818110610a5157610a506116c2565b5b9050602002810190610a6391906118b2565b6000016020810190610a7591906116f1565b9050600085856000818110610a8d57610a8c6116c2565b5b9050602002810190610a9f91906118b2565b6020016020810190610ab19190611906565b9050600086866000818110610ac957610ac86116c2565b5b9050602002810190610adb91906118b2565b8060400190610aea9190611933565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505090506000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610c5a576000600167ffffffffffffffff811115610bce57610bcd611362565b5b604051908082528060200260200182016040528015610bfc5781602001602082028036833780820191505090505b5090508381600081518110610c1457610c136116c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610c588582610331565b505b600160405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018460070b815260200183815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506060820151816002019080519060200190610db1929190610f30565b505050600180549050600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050505050565b60606001604051602001610e589190611d66565b6040516020818303038152906040529050919050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b8152602001606081525090565b82805482825590600052602060002090600301600490048101928215610ef7576000526020600020916003016004900482015b82811115610ef6578254825591600101919060010190610edb565b5b509050610f049190610fef565b5090565b508054600082556003016004900490600052602060002090810190610f2d9190610fef565b50565b82805482825590600052602060002090600301600490048101928215610fde5791602002820160005b83821115610fa857835183826101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055509260200192600801602081600701049283019260010302610f59565b8015610fdc5782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302610fa8565b505b509050610feb9190610fef565b5090565b5b80821115611008576000816000905550600101610ff0565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061104b82611020565b9050919050565b61105b81611040565b811461106657600080fd5b50565b60008135905061107881611052565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126110a3576110a261107e565b5b8235905067ffffffffffffffff8111156110c0576110bf611083565b5b6020830191508360208202830111156110dc576110db611088565b5b9250929050565b6000806000604084860312156110fc576110fb611016565b5b600061110a86828701611069565b935050602084013567ffffffffffffffff81111561112b5761112a61101b565b5b6111378682870161108d565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61117881611040565b82525050565b60008160070b9050919050565b6111948161117e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006111d2838361118b565b60208301905092915050565b6000602082019050919050565b60006111f68261119a565b61120081856111a5565b935061120b836111b6565b8060005b8381101561123c57815161122388826111c6565b975061122e836111de565b92505060018101905061120f565b5085935050505092915050565b6000606083016000830151611261600086018261116f565b506020830151611274602086018261118b565b506040830151848203604086015261128c82826111eb565b9150508091505092915050565b60006112a58383611249565b905092915050565b6000602082019050919050565b60006112c582611143565b6112cf818561114e565b9350836020820285016112e18561115f565b8060005b8581101561131d57848403895281516112fe8582611299565b9450611309836112ad565b925060208a019950506001810190506112e5565b50829750879550505050505092915050565b6000602082019050818103600083015261134981846112ba565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61139a82611351565b810181811067ffffffffffffffff821117156113b9576113b8611362565b5b80604052505050565b60006113cc61100c565b90506113d88282611391565b919050565b600067ffffffffffffffff8211156113f8576113f7611362565b5b602082029050602081019050919050565b600061141c611417846113dd565b6113c2565b9050808382526020820190506020840283018581111561143f5761143e611088565b5b835b8181101561146857806114548882611069565b845260208401935050602081019050611441565b5050509392505050565b600082601f8301126114875761148661107e565b5b8135611497848260208601611409565b91505092915050565b600080604083850312156114b7576114b6611016565b5b60006114c585828601611069565b925050602083013567ffffffffffffffff8111156114e6576114e561101b565b5b6114f285828601611472565b9150509250929050565b60008083601f8401126115125761151161107e565b5b8235905067ffffffffffffffff81111561152f5761152e611083565b5b60208301915083602082028301111561154b5761154a611088565b5b9250929050565b60008060006040848603121561156b5761156a611016565b5b600061157986828701611069565b935050602084013567ffffffffffffffff81111561159a5761159961101b565b5b6115a6868287016114fc565b92509250509250925092565b600060ff82169050919050565b6115c8816115b2565b81146115d357600080fd5b50565b6000813590506115e5816115bf565b92915050565b60006020828403121561160157611600611016565b5b600061160f848285016115d6565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611652578082015181840152602081019050611637565b83811115611661576000848401525b50505050565b600061167282611618565b61167c8185611623565b935061168c818560208601611634565b61169581611351565b840191505092915050565b600060208201905081810360008301526116ba8184611667565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561170757611706611016565b5b600061171584828501611069565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117628261171e565b915061176d8361171e565b9250828210156117805761177f611728565b5b828203905092915050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b60006117d2600e8361178b565b91506117dd8261179c565b602082019050919050565b60006020820190508181036000830152611801816117c5565b9050919050565b7f4e4f5f5245515545535400000000000000000000000000000000000000000000600082015250565b600061183e600a8361178b565b915061184982611808565b602082019050919050565b6000602082019050818103600083015261186d81611831565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016060038336030381126118ce576118cd6118a3565b5b80830191505092915050565b6118e38161117e565b81146118ee57600080fd5b50565b600081359050611900816118da565b92915050565b60006020828403121561191c5761191b611016565b5b600061192a848285016118f1565b91505092915050565b600080833560016020038436030381126119505761194f6118a3565b5b80840192508235915067ffffffffffffffff821115611972576119716118a8565b5b60208301925060208202360383131561198e5761198d6118ad565b5b509250929050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a07611a02836119c7565b6119d4565b9050919050565b60008160a01c9050919050565b60008160070b9050919050565b6000611a3b611a3683611a0e565b611a1b565b9050919050565b600081549050919050565b60008190508160005260206000209050919050565b6000611a75611a70836119c7565b611a1b565b9050919050565b60008160401c9050919050565b6000611a9c611a9783611a7c565b611a1b565b9050919050565b60008160801c9050919050565b6000611ac3611abe83611aa3565b611a1b565b9050919050565b60008160c01c9050919050565b6000611aea611ae583611aca565b611a1b565b9050919050565b6000611afc82611a42565b611b0681856111a5565b935083611b1284611a4d565b6000600115611b9f575b83600160040382011015611b9e578154611b3e88611b3983611a62565b61118b565b602088019750611b5688611b5183611a89565b61118b565b602088019750611b6e88611b6983611ab0565b61118b565b602088019750611b8688611b8183611ad7565b61118b565b60208801975060018301925050600481019050611b1c565b5b600115611c4657815484821015611bcf57611bc288611bbd83611a62565b61118b565b6020880197506001820191505b84821015611bf657611be988611be483611a89565b61118b565b6020880197506001820191505b84821015611c1d57611c1088611c0b83611ab0565b61118b565b6020880197506001820191505b84821015611c4457611c3788611c3283611ad7565b61118b565b6020880197506001820191505b505b8694505050505092915050565b6000608083016000808401549050611c6a816119f4565b611c77600087018261116f565b5060018401549050611c88816119f4565b611c95602087018261116f565b50611c9f81611a28565b611cac604087018261118b565b50600284018583036060870152611cc38382611af1565b925050819250505092915050565b6000611cdd8383611c53565b905092915050565b6000600382019050919050565b6000611cfd82611996565b611d0781856119a1565b935083602082028501611d19856119b2565b8060005b85811015611d5457848403895281611d358582611cd1565b9450611d4083611ce5565b925060208a01995050600181019050611d1d565b50829750879550505050505092915050565b60006020820190508181036000830152611d808184611cf2565b90509291505056fea2646970667358221220905f6defba5171e9c932e2b8f48ea81b6e7b88e733a5bfb62401142fb5d5876c64736f6c634300080b003360806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3336040516200007591906200019f565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e091906200019f565b60405180910390a1620001bc565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000187826200015a565b9050919050565b62000199816200017a565b82525050565b6000602082019050620001b660008301846200018e565b92915050565b6119d580620001cc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630842bf82146100515780635786e9321461006d578063c48d8e0214610089578063ec007105146100b9575b600080fd5b61006b60048036038101906100669190611037565b6100ea565b005b61008760048036038101906100829190611156565b610431565b005b6100a3600480360381019061009e91906111d8565b610899565b6040516100b0919061128d565b60405180910390f35b6100d360048036038101906100ce9190611156565b6108c3565b6040516100e19291906113ba565b60405180910390f35b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166101a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019e90611447565b60405180910390fd5b6101b18383610a4c565b6000836000815181106101c7576101c6611467565b5b60200260200101516000015190506000846000815181106101eb576101ea611467565b5b60200260200101516020015190506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156102e9576000600167ffffffffffffffff81111561025e5761025d610dd0565b5b60405190808252806020026020018201604052801561028c5781602001602082028036833780820191505090505b50905082816000815181106102a4576102a3611467565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506102e781610431565b505b600160405180606001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018360070b81526020018615158152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550604082015181600001601c6101000a81548160ff0219169083151502179055505050600180549050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e590611447565b60405180910390fd5b60008260008151811061050457610503611467565b5b602002602001015190506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610590576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610587906114e2565b60405180910390fd5b600060018080805490506105a4919061153b565b815481106105b5576105b4611467565b5b906000526020600020019050600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180808054905061067a919061153b565b8154811061068b5761068a611467565b5b90600052602060002001600180600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106e2919061153b565b815481106106f3576106f2611467565b5b906000526020600020016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000820160149054906101000a900460070b8160000160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060008201601c9054906101000a900460ff1681600001601c6101000a81548160ff021916908315150217905550905050600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905560018054806108285761082761156f565b5b60019003818190600052602060002001600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549067ffffffffffffffff021916905560008201601c6101000a81549060ff02191690555050905550505050565b606060016040516020016108ad9190611766565b6040516020818303038152906040529050919050565b6060600080836000815181106108dc576108db611467565b5b602002602001015190506000600180600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610935919061153b565b8154811061094657610945611467565b5b9060005260206000200190506000600167ffffffffffffffff81111561096f5761096e610dd0565b5b6040519080825280602002602001820160405280156109a857816020015b610995610d73565b81526020019060019003908161098d5790505b50905060405180604001604052808360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360000160149054906101000a900460070b60070b81525081600081518110610a2257610a21611467565b5b60200260200101819052508082600001601c9054906101000a900460ff1694509450505050915091565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0090611447565b60405180910390fd5b60005b8351811015610c11576000610b3e858381518110610b2d57610b2c611467565b5b602002602001015160000151610c17565b905060018160030b1415610bb657600a858381518110610b6157610b60611467565b5b60200260200101516020015160070b1315610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba8906117d4565b60405180910390fd5b610bfd565b60008160030b14610bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf390611840565b60405180910390fd5b5b508080610c0990611860565b915050610b0c565b50505050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff166393272baf60e01b86604051602401610c4f91906118b8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610cb9919061190f565b6000604051808303816000865af19150503d8060008114610cf6576040519150601f19603f3d011682016040523d82523d6000602084013e610cfb565b606091505b509150915081610d0e5760156000610d23565b80806020019051810190610d22919061195f565b5b8095508194505050601660030b8360030b14610d6b576040517fba96339e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b81525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610e0882610dbf565b810181811067ffffffffffffffff82111715610e2757610e26610dd0565b5b80604052505050565b6000610e3a610da6565b9050610e468282610dff565b919050565b600067ffffffffffffffff821115610e6657610e65610dd0565b5b602082029050602081019050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610eac82610e81565b9050919050565b610ebc81610ea1565b8114610ec757600080fd5b50565b600081359050610ed981610eb3565b92915050565b60008160070b9050919050565b610ef581610edf565b8114610f0057600080fd5b50565b600081359050610f1281610eec565b92915050565b600060408284031215610f2e57610f2d610e7c565b5b610f386040610e30565b90506000610f4884828501610eca565b6000830152506020610f5c84828501610f03565b60208301525092915050565b6000610f7b610f7684610e4b565b610e30565b90508083825260208201905060408402830185811115610f9e57610f9d610e77565b5b835b81811015610fc75780610fb38882610f18565b845260208401935050604081019050610fa0565b5050509392505050565b600082601f830112610fe657610fe5610dba565b5b8135610ff6848260208601610f68565b91505092915050565b60008115159050919050565b61101481610fff565b811461101f57600080fd5b50565b6000813590506110318161100b565b92915050565b6000806040838503121561104e5761104d610db0565b5b600083013567ffffffffffffffff81111561106c5761106b610db5565b5b61107885828601610fd1565b925050602061108985828601611022565b9150509250929050565b600067ffffffffffffffff8211156110ae576110ad610dd0565b5b602082029050602081019050919050565b60006110d26110cd84611093565b610e30565b905080838252602082019050602084028301858111156110f5576110f4610e77565b5b835b8181101561111e578061110a8882610eca565b8452602084019350506020810190506110f7565b5050509392505050565b600082601f83011261113d5761113c610dba565b5b813561114d8482602086016110bf565b91505092915050565b60006020828403121561116c5761116b610db0565b5b600082013567ffffffffffffffff81111561118a57611189610db5565b5b61119684828501611128565b91505092915050565b600060ff82169050919050565b6111b58161119f565b81146111c057600080fd5b50565b6000813590506111d2816111ac565b92915050565b6000602082840312156111ee576111ed610db0565b5b60006111fc848285016111c3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561123f578082015181840152602081019050611224565b8381111561124e576000848401525b50505050565b600061125f82611205565b6112698185611210565b9350611279818560208601611221565b61128281610dbf565b840191505092915050565b600060208201905081810360008301526112a78184611254565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6112e481610ea1565b82525050565b6112f381610edf565b82525050565b60408201600082015161130f60008501826112db565b50602082015161132260208501826112ea565b50505050565b600061133483836112f9565b60408301905092915050565b6000602082019050919050565b6000611358826112af565b61136281856112ba565b935061136d836112cb565b8060005b8381101561139e5781516113858882611328565b975061139083611340565b925050600181019050611371565b5085935050505092915050565b6113b481610fff565b82525050565b600060408201905081810360008301526113d4818561134d565b90506113e360208301846113ab565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000611431600e836113ea565b915061143c826113fb565b602082019050919050565b6000602082019050818103600083015261146081611424565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e4f5f504f4f4c00000000000000000000000000000000000000000000000000600082015250565b60006114cc6007836113ea565b91506114d782611496565b602082019050919050565b600060208201905081810360008301526114fb816114bf565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061154682611502565b915061155183611502565b9250828210156115645761156361150c565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061160f61160a836115cf565b6115dc565b9050919050565b60008160a01c9050919050565b60008160070b9050919050565b600061164361163e83611616565b611623565b9050919050565b60008160e01c9050919050565b600060ff82169050919050565b60006116776116728361164a565b611657565b9050919050565b61168781610fff565b82525050565b6060820160008083015490506116a2816115fc565b6116af60008601826112db565b506116b981611630565b6116c660208601826112ea565b506116d081611664565b6116dd604086018261167e565b5050505050565b60006116f0838361168d565b60608301905092915050565b6000600182019050919050565b60006117148261159e565b61171e81856115a9565b9350611729836115ba565b8060005b83811015611759578161174088826116e4565b975061174b836116fc565b92505060018101905061172d565b5085935050505092915050565b600060208201905081810360008301526117808184611709565b905092915050565b7f4e4654535f4c494d495400000000000000000000000000000000000000000000600082015250565b60006117be600a836113ea565b91506117c982611788565b602082019050919050565b600060208201905081810360008301526117ed816117b1565b9050919050565b7f554e535550504f525445445f544f4b454e5f5459504500000000000000000000600082015250565b600061182a6016836113ea565b9150611835826117f4565b602082019050919050565b600060208201905081810360008301526118598161181d565b9050919050565b600061186b82611502565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561189e5761189d61150c565b5b600182019050919050565b6118b281610ea1565b82525050565b60006020820190506118cd60008301846118a9565b92915050565b600081905092915050565b60006118e982611205565b6118f381856118d3565b9350611903818560208601611221565b80840191505092915050565b600061191b82846118de565b915081905092915050565b60008160030b9050919050565b61193c81611926565b811461194757600080fd5b50565b60008151905061195981611933565b92915050565b6000806040838503121561197657611975610db0565b5b60006119848582860161194a565b92505060206119958582860161194a565b915050925092905056fea264697066735822122013c006abd33cc33d633dc2bebb968f83d2205c891cd6dcaaa8fc8181e18022e464736f6c634300080b0033a2646970667358221220326cfa522ba0c89caacb0600f08bc3da581cbe2853601be8d255d4676a0284a064736f6c634300080b003360806040523480156200001157600080fd5b50604051620000209062000437565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b5062000070337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620001e060201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c333604051620000a191906200048a565b60405180910390a1620000db307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620001e060201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3306040516200010c91906200048a565b60405180910390a162000146337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620001e060201b60201c565b62000178307fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620001e060201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c96200024c60201b60201c565b620001d9620002bb60201b60201c565b5062000636565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620002646389db5a0560e01b6200032a60201b60201c565b806020019051810190620002799190620004f1565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b620002d3632b057dae60e01b6200032a60201b60201c565b806020019051810190620002e8919062000568565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051620003db91906200061d565b600060405180830381855af49150503d806000811462000418576040519150601f19603f3d011682016040523d82523d6000602084013e6200041d565b606091505b5091509150816200042d57600080fd5b8092505050919050565b6152f4806200497083390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004728262000445565b9050919050565b620004848162000465565b82525050565b6000602082019050620004a1600083018462000479565b92915050565b600080fd5b6000620004b98262000465565b9050919050565b620004cb81620004ac565b8114620004d757600080fd5b50565b600081519050620004eb81620004c0565b92915050565b6000602082840312156200050a5762000509620004a7565b5b60006200051a84828501620004da565b91505092915050565b6000620005308262000465565b9050919050565b620005428162000523565b81146200054e57600080fd5b50565b600081519050620005628162000537565b92915050565b600060208284031215620005815762000580620004a7565b5b6000620005918482850162000551565b91505092915050565b600081519050919050565b600081905092915050565b60005b83811015620005d0578082015181840152602081019050620005b3565b83811115620005e0576000848401525b50505050565b6000620005f3826200059a565b620005ff8185620005a5565b935062000611818560208601620005b0565b80840191505092915050565b60006200062b8284620005e6565b915081905092915050565b61432a80620006466000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806366f03d9a116100ad578063b6db75a011610071578063b6db75a0146102ec578063c48d8e021461030a578063ddedfcf31461033a578063ec00710514610356578063f0fbda2d1461038757610121565b806366f03d9a1461024a578063704802751461027a578063a50b33e014610296578063a8068d18146102b2578063ab8c71c0146102ce57610121565b80631820b3bf116100f45780631820b3bf1461019657806324758dcb146101c65780632e224402146101e257806332ac91a5146102125780635786e9321461022e57610121565b80630842bf821461012657806311480d5914610142578063118fee951461015e5780631785f53c1461017a575b600080fd5b610140600480360381019061013b91906126e4565b6103b7565b005b61015c60048036038101906101579190612779565b61051b565b005b61017860048036038101906101739190612779565b6105e4565b005b610194600480360381019061018f91906127a6565b6106ad565b005b6101b060048036038101906101ab9190612896565b6107cf565b6040516101bd91906128ee565b60405180910390f35b6101e060048036038101906101db9190612964565b61089d565b005b6101fc60048036038101906101f79190612a07565b610bc9565b6040516102099190612c46565b60405180910390f35b61022c60048036038101906102279190612a07565b610c79565b005b61024860048036038101906102439190612896565b610e52565b005b610264600480360381019061025f9190612964565b610fb3565b60405161027191906128ee565b60405180910390f35b610294600480360381019061028f91906127a6565b6112c4565b005b6102b060048036038101906102ab9190612c68565b6113e6565b005b6102cc60048036038101906102c79190612cb5565b611459565b005b6102d66115bd565b6040516102e39190612d20565b60405180910390f35b6102f4611615565b60405161030191906128ee565b60405180910390f35b610324600480360381019061031f9190612779565b611646565b6040516103319190612dc3565b60405180910390f35b610354600480360381019061034f9190612de5565b6116f0565b005b610370600480360381019061036b9190612896565b611859565b60405161037e929190612f23565b60405180910390f35b6103a1600480360381019061039c9190612779565b61191a565b6040516103ae9190612dc3565b60405180910390f35b815160028160ff16146103c957600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90612fb0565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630842bf8285856040518363ffffffff1660e01b81526004016104e3929190612f23565b600060405180830381600087803b1580156104fd57600080fd5b505af1158015610511573d6000803e3d6000fd5b5050505050505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90612fb0565b60405180910390fd5b6105e06119c4565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890612fb0565b60405180910390fd5b6106a9611a29565b5050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190612fb0565b60405180910390fd5b610794827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611a8e565b7fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f826040516107c39190612fdf565b60405180910390a15050565b600080600090505b8251811015610892576108038382815181106107f6576107f5612ffa565b5b6020026020010151611b33565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610871919061303e565b61087f576000915050610898565b808061088a906130a4565b9150506107d7565b50600190505b919050565b8181905060028160ff16146108b157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff166366f03d9a84846040518363ffffffff1660e01b81526004016108ec929190613332565b6020604051808303816000875af115801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092f919061303e565b61096e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610965906133a2565b60405180910390fd5b60008383905067ffffffffffffffff81111561098d5761098c612478565b5b6040519080825280602002602001820160405280156109bb5781602001602082028036833780820191505090505b50905060005b84849050811015610aac57677fffffffffffffff8585838181106109e8576109e7612ffa565b5b90506020028101906109fa91906133d1565b8060400190610a0991906133f9565b905010610a1557600080fd5b848482818110610a2857610a27612ffa565b5b9050602002810190610a3a91906133d1565b6000016020810190610a4c91906127a6565b828281518110610a5f57610a5e612ffa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080610aa4906130a4565b9150506109c1565b5060003073ffffffffffffffffffffffffffffffffffffffff1663ec007105836040518263ffffffff1660e01b8152600401610ae8919061350b565b600060405180830381865afa158015610b05573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b2e919061363e565b9150508015610b5257610b4d33868690610b489190613890565b611bd3565b610bc2565b3073ffffffffffffffffffffffffffffffffffffffff1663ddedfcf33387876040518463ffffffff1660e01b8152600401610b8f939291906138a5565b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b505050505b5050505050565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e2244028585856040518463ffffffff1660e01b8152600401610c2a9392919061394b565b600060405180830381865afa158015610c47573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610c709190613b49565b90509392505050565b8181905060028160ff1614610c8d57600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190612fb0565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff16632e2244028787876040518463ffffffff1660e01b8152600401610d899392919061394b565b600060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610dcf9190613b49565b9050610ddb8682611bd3565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d188787876040518463ffffffff1660e01b8152600401610e189392919061394b565b600060405180830381600087803b158015610e3257600080fd5b505af1158015610e46573d6000803e3d6000fd5b50505050505050505050565b805160028160ff1614610e6457600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1890612fb0565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635786e932846040518263ffffffff1660e01b8152600401610f7c919061350b565b600060405180830381600087803b158015610f9657600080fd5b505af1158015610faa573d6000803e3d6000fd5b50505050505050565b60008282905060028160ff1614610fc957600080fd5b6000600267ffffffffffffffff811115610fe657610fe5612478565b5b6040519080825280602002602001820160405280156110145781602001602082028036833780820191505090505b5090508484600081811061102b5761102a612ffa565b5b905060200281019061103d91906133d1565b600001602081019061104f91906127a6565b8160008151811061106357611062612ffa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050848460018181106110b1576110b0612ffa565b5b90506020028101906110c391906133d1565b60000160208101906110d591906127a6565b816001815181106110e9576110e8612ffa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600061112e82611859565b50905060008160008151811061114757611146612ffa565b5b60200260200101516020015160070b138015611185575060008160018151811061117457611173612ffa565b5b60200260200101516020015160070b135b61118e57600080fd5b60006111be878760008181106111a7576111a6612ffa565b5b90506020028101906111b991906133d1565b611e5c565b905060006111f0888860018181106111d9576111d8612ffa565b5b90506020028101906111eb91906133d1565b611e5c565b90508260008151811061120657611205612ffa565b5b60200260200101516020015160070b8260070b1215801561124c57508260018151811061123657611235612ffa565b5b60200260200101516020015160070b8160070b12155b80156112b757508260008151811061126757611266612ffa565b5b60200260200101516020015160070b8160070b6112849190613b9c565b8360018151811061129857611297612ffa565b5b60200260200101516020015160070b8360070b6112b59190613b9c565b145b9550505050505092915050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890612fb0565b60405180910390fd5b6113ab827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611f55565b7f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339826040516113da9190612fdf565b60405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b81526004016114239392919061394b565b600060405180830381600087803b15801561143d57600080fd5b505af1158015611451573d6000803e3d6000fd5b505050505050565b805160028160ff161461146b57600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90612fb0565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d1885856040518363ffffffff1660e01b8152600401611585929190613cb3565b600060405180830381600087803b15801561159f57600080fd5b505af11580156115b3573d6000803e3d6000fd5b5050505050505050565b600080600090506115ee337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b611fc1565b156115fa576001811790505b611602611615565b1561160e576002811790505b8091505090565b6000611641337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611fc1565b905090565b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c48d8e02836040518263ffffffff1660e01b81526004016116a39190612d20565b600060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906116e99190613d89565b9050919050565b8181905060028160ff161461170457600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612fb0565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddedfcf38686866040518463ffffffff1660e01b8152600401611820939291906138a5565b600060405180830381600087803b15801561183a57600080fd5b505af115801561184e573d6000803e3d6000fd5b505050505050505050565b60606000825160028160ff161461186f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec007105856040518263ffffffff1660e01b81526004016118ca919061350b565b600060405180830381865afa1580156118e7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611910919061363e565b9250925050915091565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0fbda2d836040518263ffffffff1660e01b81526004016119779190612d20565b600060405180830381865afa158015611994573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906119bd9190613d89565b9050919050565b6119d4632b057dae60e01b612028565b8060200190518101906119e79190613e10565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611a396389db5a0560e01b612028565b806020019051810190611a4c9190613e7b565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ac757600080fd5b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b725760009050611bce565b6000611b7f836008612130565b9050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611bc4578060800151611bca565b80602001515b9150505b919050565b60005b8151811015611e1e576000611c08838381518110611bf757611bf6612ffa565b5b602002602001015160000151612295565b905060008160030b1415611cec57611c3d838381518110611c2c57611c2b612ffa565b5b602002602001015160000151611b33565b73ffffffffffffffffffffffffffffffffffffffff1663575a61c8848481518110611c6b57611c6a612ffa565b5b60200260200101516000015186868681518110611c8b57611c8a612ffa565b5b6020026020010151602001516040518463ffffffff1660e01b8152600401611cb593929190613eb7565b600060405180830381600087803b158015611ccf57600080fd5b505af1158015611ce3573d6000803e3d6000fd5b50505050611e0a565b60018160030b1415611dce57611d1f838381518110611d0e57611d0d612ffa565b5b602002602001015160000151611b33565b73ffffffffffffffffffffffffffffffffffffffff166389b9c45c848481518110611d4d57611d4c612ffa565b5b60200260200101516000015186868681518110611d6d57611d6c612ffa565b5b6020026020010151604001516040518463ffffffff1660e01b8152600401611d9793929190613f5d565b600060405180830381600087803b158015611db157600080fd5b505af1158015611dc5573d6000803e3d6000fd5b50505050611e09565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0090613fe7565b60405180910390fd5b5b508080611e16906130a4565b915050611bd6565b507f760b5d447de9a6afab4457b996807616ccd3b048f15f77e82cc55fdb70962f4e8282604051611e50929190614007565b60405180910390a15050565b600080611e7a836000016020810190611e7591906127a6565b612295565b90506000808260030b1415611ea357836020016020810190611e9c9190614037565b9050611f4b565b60018260030b1415611f0f57838060400190611ebf91906133f9565b90509050600a8160070b1315611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906140b0565b60405180910390fd5b611f4a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613fe7565b60405180910390fd5b5b8092505050919050565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516120d7919061410c565b600060405180830381855af49150503d8060008114612112576040519150601f19603f3d011682016040523d82523d6000602084013e612117565b606091505b50915091508161212657600080fd5b8092505050919050565b6121386123f1565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633c4dd32e60e01b8787604051602401612171929190614132565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516121db919061410c565b6000604051808303816000865af19150503d8060008114612218576040519150601f19603f3d011682016040523d82523d6000602084013e61221d565b606091505b50915091508161222f57601584612244565b808060200190518101906122439190614258565b5b8095508194505050601660030b8360030b1461228c576040517f664cb42300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff166393272baf60e01b866040516024016122cd9190612fdf565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612337919061410c565b6000604051808303816000865af19150503d8060008114612374576040519150601f19603f3d011682016040523d82523d6000602084013e612379565b606091505b50915091508161238c57601560006123a1565b808060200190518101906123a091906142b4565b5b8095508194505050601660030b8360030b146123e9576040517fba96339e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050919050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124b082612467565b810181811067ffffffffffffffff821117156124cf576124ce612478565b5b80604052505050565b60006124e261244e565b90506124ee82826124a7565b919050565b600067ffffffffffffffff82111561250e5761250d612478565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125598261252e565b9050919050565b6125698161254e565b811461257457600080fd5b50565b60008135905061258681612560565b92915050565b60008160070b9050919050565b6125a28161258c565b81146125ad57600080fd5b50565b6000813590506125bf81612599565b92915050565b6000604082840312156125db576125da612524565b5b6125e560406124d8565b905060006125f584828501612577565b6000830152506020612609848285016125b0565b60208301525092915050565b6000612628612623846124f3565b6124d8565b9050808382526020820190506040840283018581111561264b5761264a61251f565b5b835b81811015612674578061266088826125c5565b84526020840193505060408101905061264d565b5050509392505050565b600082601f83011261269357612692612462565b5b81356126a3848260208601612615565b91505092915050565b60008115159050919050565b6126c1816126ac565b81146126cc57600080fd5b50565b6000813590506126de816126b8565b92915050565b600080604083850312156126fb576126fa612458565b5b600083013567ffffffffffffffff8111156127195761271861245d565b5b6127258582860161267e565b9250506020612736858286016126cf565b9150509250929050565b600060ff82169050919050565b61275681612740565b811461276157600080fd5b50565b6000813590506127738161274d565b92915050565b60006020828403121561278f5761278e612458565b5b600061279d84828501612764565b91505092915050565b6000602082840312156127bc576127bb612458565b5b60006127ca84828501612577565b91505092915050565b600067ffffffffffffffff8211156127ee576127ed612478565b5b602082029050602081019050919050565b600061281261280d846127d3565b6124d8565b905080838252602082019050602084028301858111156128355761283461251f565b5b835b8181101561285e578061284a8882612577565b845260208401935050602081019050612837565b5050509392505050565b600082601f83011261287d5761287c612462565b5b813561288d8482602086016127ff565b91505092915050565b6000602082840312156128ac576128ab612458565b5b600082013567ffffffffffffffff8111156128ca576128c961245d565b5b6128d684828501612868565b91505092915050565b6128e8816126ac565b82525050565b600060208201905061290360008301846128df565b92915050565b600080fd5b60008083601f84011261292457612923612462565b5b8235905067ffffffffffffffff81111561294157612940612909565b5b60208301915083602082028301111561295d5761295c61251f565b5b9250929050565b6000806020838503121561297b5761297a612458565b5b600083013567ffffffffffffffff8111156129995761299861245d565b5b6129a58582860161290e565b92509250509250929050565b60008083601f8401126129c7576129c6612462565b5b8235905067ffffffffffffffff8111156129e4576129e3612909565b5b602083019150836020820283011115612a00576129ff61251f565b5b9250929050565b600080600060408486031215612a2057612a1f612458565b5b6000612a2e86828701612577565b935050602084013567ffffffffffffffff811115612a4f57612a4e61245d565b5b612a5b868287016129b1565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a9c8161254e565b82525050565b612aab8161258c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000612ae98383612aa2565b60208301905092915050565b6000602082019050919050565b6000612b0d82612ab1565b612b178185612abc565b9350612b2283612acd565b8060005b83811015612b53578151612b3a8882612add565b9750612b4583612af5565b925050600181019050612b26565b5085935050505092915050565b6000606083016000830151612b786000860182612a93565b506020830151612b8b6020860182612aa2565b5060408301518482036040860152612ba38282612b02565b9150508091505092915050565b6000612bbc8383612b60565b905092915050565b6000602082019050919050565b6000612bdc82612a67565b612be68185612a72565b935083602082028501612bf885612a83565b8060005b85811015612c345784840389528151612c158582612bb0565b9450612c2083612bc4565b925060208a01995050600181019050612bfc565b50829750879550505050505092915050565b60006020820190508181036000830152612c608184612bd1565b905092915050565b60008060208385031215612c7f57612c7e612458565b5b600083013567ffffffffffffffff811115612c9d57612c9c61245d565b5b612ca9858286016129b1565b92509250509250929050565b60008060408385031215612ccc57612ccb612458565b5b6000612cda85828601612577565b925050602083013567ffffffffffffffff811115612cfb57612cfa61245d565b5b612d0785828601612868565b9150509250929050565b612d1a81612740565b82525050565b6000602082019050612d356000830184612d11565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d75578082015181840152602081019050612d5a565b83811115612d84576000848401525b50505050565b6000612d9582612d3b565b612d9f8185612d46565b9350612daf818560208601612d57565b612db881612467565b840191505092915050565b60006020820190508181036000830152612ddd8184612d8a565b905092915050565b600080600060408486031215612dfe57612dfd612458565b5b6000612e0c86828701612577565b935050602084013567ffffffffffffffff811115612e2d57612e2c61245d565b5b612e398682870161290e565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151612e876000850182612a93565b506020820151612e9a6020850182612aa2565b50505050565b6000612eac8383612e71565b60408301905092915050565b6000602082019050919050565b6000612ed082612e45565b612eda8185612e50565b9350612ee583612e61565b8060005b83811015612f16578151612efd8882612ea0565b9750612f0883612eb8565b925050600181019050612ee9565b5085935050505092915050565b60006040820190508181036000830152612f3d8185612ec5565b9050612f4c60208301846128df565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000612f9a600e83612f53565b9150612fa582612f64565b602082019050919050565b60006020820190508181036000830152612fc981612f8d565b9050919050565b612fd98161254e565b82525050565b6000602082019050612ff46000830184612fd0565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613038816126b8565b92915050565b60006020828403121561305457613053612458565b5b600061306284828501613029565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b60006130af8261309a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130e2576130e161306b565b5b600182019050919050565b6000819050919050565b60006131066020840184612577565b905092915050565b600061311d60208401846125b0565b905092915050565b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126131515761315061312f565b5b83810192508235915060208301925067ffffffffffffffff82111561317957613178613125565b5b60208202360384131561318f5761318e61312a565b5b509250929050565b6000819050919050565b6000602082019050919050565b60006131ba8385612abc565b93506131c582613197565b8060005b858110156131fe576131db828461310e565b6131e58882612add565b97506131f0836131a1565b9250506001810190506131c9565b5085925050509392505050565b60006060830161321e60008401846130f7565b61322b6000860182612a93565b50613239602084018461310e565b6132466020860182612aa2565b506132546040840184613134565b85830360408701526132678382846131ae565b925050508091505092915050565b6000613281838361320b565b905092915050565b6000823560016060038336030381126132a5576132a461312f565b5b82810191505092915050565b6000602082019050919050565b60006132ca8385612a72565b9350836020840285016132dc846130ed565b8060005b878110156133205784840389526132f78284613289565b6133018582613275565b945061330c836132b1565b925060208a019950506001810190506132e0565b50829750879450505050509392505050565b6000602082019050818103600083015261334d8184866132be565b90509392505050565b7f5245544952455f434845434b0000000000000000000000000000000000000000600082015250565b600061338c600c83612f53565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016060038336030381126133ed576133ec6133c2565b5b80830191505092915050565b60008083356001602003843603038112613416576134156133c2565b5b80840192508235915067ffffffffffffffff821115613438576134376133c7565b5b602083019250602082023603831315613454576134536133cc565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006134948383612a93565b60208301905092915050565b6000602082019050919050565b60006134b88261345c565b6134c28185613467565b93506134cd83613478565b8060005b838110156134fe5781516134e58882613488565b97506134f0836134a0565b9250506001810190506134d1565b5085935050505092915050565b6000602082019050818103600083015261352581846134ad565b905092915050565b60008151905061353c81612560565b92915050565b60008151905061355181612599565b92915050565b60006040828403121561356d5761356c612524565b5b61357760406124d8565b905060006135878482850161352d565b600083015250602061359b84828501613542565b60208301525092915050565b60006135ba6135b5846124f3565b6124d8565b905080838252602082019050604084028301858111156135dd576135dc61251f565b5b835b8181101561360657806135f28882613557565b8452602084019350506040810190506135df565b5050509392505050565b600082601f83011261362557613624612462565b5b81516136358482602086016135a7565b91505092915050565b6000806040838503121561365557613654612458565b5b600083015167ffffffffffffffff8111156136735761367261245d565b5b61367f85828601613610565b925050602061369085828601613029565b9150509250929050565b600067ffffffffffffffff8211156136b5576136b4612478565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156136e1576136e0612478565b5b602082029050602081019050919050565b6000613705613700846136c6565b6124d8565b905080838252602082019050602084028301858111156137285761372761251f565b5b835b81811015613751578061373d88826125b0565b84526020840193505060208101905061372a565b5050509392505050565b600082601f8301126137705761376f612462565b5b81356137808482602086016136f2565b91505092915050565b60006060828403121561379f5761379e612524565b5b6137a960606124d8565b905060006137b984828501612577565b60008301525060206137cd848285016125b0565b602083015250604082013567ffffffffffffffff8111156137f1576137f0612529565b5b6137fd8482850161375b565b60408301525092915050565b600061381c6138178461369a565b6124d8565b9050808382526020820190506020840283018581111561383f5761383e61251f565b5b835b8181101561388657803567ffffffffffffffff81111561386457613863612462565b5b8086016138718982613789565b85526020850194505050602081019050613841565b5050509392505050565b600061389d368484613809565b905092915050565b60006040820190506138ba6000830186612fd0565b81810360208301526138cd8184866132be565b9050949350505050565b6000819050919050565b6000602082019050919050565b60006138fa8385613467565b9350613905826138d7565b8060005b8581101561393e5761391b82846130f7565b6139258882613488565b9750613930836138e1565b925050600181019050613909565b5085925050509392505050565b60006040820190506139606000830186612fd0565b81810360208301526139738184866138ee565b9050949350505050565b600061399061398b846136c6565b6124d8565b905080838252602082019050602084028301858111156139b3576139b261251f565b5b835b818110156139dc57806139c88882613542565b8452602084019350506020810190506139b5565b5050509392505050565b600082601f8301126139fb576139fa612462565b5b8151613a0b84826020860161397d565b91505092915050565b600060608284031215613a2a57613a29612524565b5b613a3460606124d8565b90506000613a448482850161352d565b6000830152506020613a5884828501613542565b602083015250604082015167ffffffffffffffff811115613a7c57613a7b612529565b5b613a88848285016139e6565b60408301525092915050565b6000613aa7613aa28461369a565b6124d8565b90508083825260208201905060208402830185811115613aca57613ac961251f565b5b835b81811015613b1157805167ffffffffffffffff811115613aef57613aee612462565b5b808601613afc8982613a14565b85526020850194505050602081019050613acc565b5050509392505050565b600082601f830112613b3057613b2f612462565b5b8151613b40848260208601613a94565b91505092915050565b600060208284031215613b5f57613b5e612458565b5b600082015167ffffffffffffffff811115613b7d57613b7c61245d565b5b613b8984828501613b1b565b91505092915050565b6000819050919050565b6000613ba782613b92565b9150613bb283613b92565b9250827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482116000841360008413161615613bf157613bf061306b565b5b817f80000000000000000000000000000000000000000000000000000000000000000583126000841260008413161615613c2e57613c2d61306b565b5b827f80000000000000000000000000000000000000000000000000000000000000000582126000841360008412161615613c6b57613c6a61306b565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0582126000841260008412161615613ca857613ca761306b565b5b828202905092915050565b6000604082019050613cc86000830185612fd0565b8181036020830152613cda81846134ad565b90509392505050565b600080fd5b600067ffffffffffffffff821115613d0357613d02612478565b5b613d0c82612467565b9050602081019050919050565b6000613d2c613d2784613ce8565b6124d8565b905082815260208101848484011115613d4857613d47613ce3565b5b613d53848285612d57565b509392505050565b600082601f830112613d7057613d6f612462565b5b8151613d80848260208601613d19565b91505092915050565b600060208284031215613d9f57613d9e612458565b5b600082015167ffffffffffffffff811115613dbd57613dbc61245d565b5b613dc984828501613d5b565b91505092915050565b6000613ddd8261254e565b9050919050565b613ded81613dd2565b8114613df857600080fd5b50565b600081519050613e0a81613de4565b92915050565b600060208284031215613e2657613e25612458565b5b6000613e3484828501613dfb565b91505092915050565b6000613e488261254e565b9050919050565b613e5881613e3d565b8114613e6357600080fd5b50565b600081519050613e7581613e4f565b92915050565b600060208284031215613e9157613e90612458565b5b6000613e9f84828501613e66565b91505092915050565b613eb18161258c565b82525050565b6000606082019050613ecc6000830186612fd0565b613ed96020830185612fd0565b613ee66040830184613ea8565b949350505050565b600082825260208201905092915050565b6000613f0a82612ab1565b613f148185613eee565b9350613f1f83612acd565b8060005b83811015613f50578151613f378882612add565b9750613f4283612af5565b925050600181019050613f23565b5085935050505092915050565b6000606082019050613f726000830186612fd0565b613f7f6020830185612fd0565b8181036040830152613f918184613eff565b9050949350505050565b7f554e535550504f525445445f544f4b454e5f5459504500000000000000000000600082015250565b6000613fd1601683612f53565b9150613fdc82613f9b565b602082019050919050565b6000602082019050818103600083015261400081613fc4565b9050919050565b600060408201905061401c6000830185612fd0565b818103602083015261402e8184612bd1565b90509392505050565b60006020828403121561404d5761404c612458565b5b600061405b848285016125b0565b91505092915050565b7f4e4654535f4c494d495400000000000000000000000000000000000000000000600082015250565b600061409a600a83612f53565b91506140a582614064565b602082019050919050565b600060208201905081810360008301526140c98161408d565b9050919050565b600081905092915050565b60006140e682612d3b565b6140f081856140d0565b9350614100818560208601612d57565b80840191505092915050565b600061411882846140db565b915081905092915050565b61412c8161309a565b82525050565b60006040820190506141476000830185612fd0565b6141546020830184614123565b9392505050565b60008160030b9050919050565b6141718161415b565b811461417c57600080fd5b50565b60008151905061418e81614168565b92915050565b600060a082840312156141aa576141a9612524565b5b6141b460a06124d8565b905060006141c484828501613029565b60008301525060206141d88482850161352d565b602083015250604082015167ffffffffffffffff8111156141fc576141fb612529565b5b61420884828501613d5b565b604083015250606082015167ffffffffffffffff81111561422c5761422b612529565b5b61423884828501613d5b565b606083015250608061424c8482850161352d565b60808301525092915050565b6000806040838503121561426f5761426e612458565b5b600061427d8582860161417f565b925050602083015167ffffffffffffffff81111561429e5761429d61245d565b5b6142aa85828601614194565b9150509250929050565b600080604083850312156142cb576142ca612458565b5b60006142d98582860161417f565b92505060206142ea8582860161417f565b915050925092905056fea2646970667358221220cefead487dabf92e1e87893d79444d5d6e3348c839d05a7a3c34f55bcaa3cff764736f6c634300080b0033608060405234801561001057600080fd5b506152d4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632b057dae1461003b57806389db5a0514610059575b600080fd5b610043610077565b6040516100509190610170565b60405180910390f35b6100616100a7565b60405161006e91906101ac565b60405180910390f35b6000604051610085906100d7565b604051809103906000f0801580156100a1573d6000803e3d6000fd5b50905090565b60006040516100b5906100e4565b604051809103906000f0801580156100d1573d6000803e3d6000fd5b50905090565b612be0806101c883390190565b6124f780612da883390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061013661013161012c846100f1565b610111565b6100f1565b9050919050565b60006101488261011b565b9050919050565b600061015a8261013d565b9050919050565b61016a8161014f565b82525050565b60006020820190506101856000830184610161565b92915050565b60006101968261013d565b9050919050565b6101a68161018b565b82525050565b60006020820190506101c1600083018461019d565b9291505056fe60806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3336040516200007591906200019f565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e091906200019f565b60405180910390a1620001bc565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000187826200015a565b9050919050565b62000199816200017a565b82525050565b6000602082019050620001b660008301846200018e565b92915050565b612a1480620001cc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e22440214610051578063a8068d1814610081578063ddedfcf31461009d578063f0fbda2d146100b9575b600080fd5b61006b60048036038101906100669190611ce4565b6100e9565b6040516100789190611f30565b60405180910390f35b61009b600480360381019061009691906120a1565b6106cc565b005b6100b760048036038101906100b29190612153565b611239565b005b6100d360048036038101906100ce91906121ec565b611a45565b6040516100e091906122a1565b60405180910390f35b60606000849050600084846000818110610106576101056122c3565b5b905060200201602081019061011b91906122f2565b9050600085856001818110610133576101326122c3565b5b905060200201602081019061014891906122f2565b90506000600180600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102139190612358565b81548110610224576102236122c3565b5b9060005260206000209060060201905060008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490506000600267ffffffffffffffff8111156102a8576102a7611f63565b5b6040519080825280602002602001820160405280156102e157816020015b6102ce611a6f565b8152602001906001900390816102c65790505b509050816103cf5760405180606001604052808460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460020160149054906101000a900460070b60070b8152602001846004018054806020026020016040519081016040528092919081815260200182805480156103c257602002820191906000526020600020906000905b82829054906101000a900460070b60070b8152602001906008019060208260070104928301926001038202915080841161038b5790505b50505050508152506104b1565b60405180606001604052808460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460030160009054906101000a900460070b60070b8152602001846005018054806020026020016040519081016040528092919081815260200182805480156104a857602002820191906000526020600020906000905b82829054906101000a900460070b60070b815260200190600801906020826007010492830192600103820291508084116104715790505b50505050508152505b816000815181106104c5576104c46122c3565b5b6020026020010181905250816105bb5760405180606001604052808460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460030160009054906101000a900460070b60070b8152602001846005018054806020026020016040519081016040528092919081815260200182805480156105ae57602002820191906000526020600020906000905b82829054906101000a900460070b60070b815260200190600801906020826007010492830192600103820291508084116105775790505b505050505081525061069d565b60405180606001604052808460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460020160149054906101000a900460070b60070b81526020018460040180548060200260200160405190810160405280929190818152602001828054801561069457602002820191906000526020600020906000905b82829054906101000a900460070b60070b8152602001906008019060208260070104928301926001038202915080841161065d5790505b50505050508152505b816001815181106106b1576106b06122c3565b5b60200260200101819052508096505050505050509392505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610780906123e9565b60405180910390fd5b60008390506000836000815181106107a4576107a36122c3565b5b602002602001015190506000846001815181106107c4576107c36122c3565b5b602002602001015190506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c190612455565b60405180910390fd5b600060018080805490506108de9190612358565b815481106108ef576108ee6122c3565b5b90600052602060002090600602019050600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001808080549050610cd79190612358565b81548110610ce857610ce76122c3565b5b9060005260206000209060060201600180600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dbd9190612358565b81548110610dce57610dcd6122c3565b5b90600052602060002090600602016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002820160149054906101000a900460070b8160020160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506003820160009054906101000a900460070b8160030160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506004820181600401908054610fa5929190611aa9565b506005820181600501908054610fbc929190611aa9565b50905050600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600180548061114c5761114b612475565b5b6001900381819060005260206000209060060201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160146101000a81549067ffffffffffffffff02191690556003820160006101000a81549067ffffffffffffffff021916905560048201600061121c9190611b09565b60058201600061122c9190611b09565b5050905550505050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed906123e9565b60405180910390fd5b6000849050600084846000818110611311576113106122c3565b5b905060200281019061132391906124b3565b600001602081019061133591906122f2565b905060008585600181811061134d5761134c6122c3565b5b905060200281019061135f91906124b3565b600001602081019061137191906122f2565b9050600086866000818110611389576113886122c3565b5b905060200281019061139b91906124b3565b60200160208101906113ad9190612507565b90506000878760018181106113c5576113c46122c3565b5b90506020028101906113d791906124b3565b60200160208101906113e99190612507565b9050600088886000818110611401576114006122c3565b5b905060200281019061141391906124b3565b80604001906114229190612534565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050905060008989600181811061147a576114796122c3565b5b905060200281019061148c91906124b3565b806040019061149b9190612534565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505090506000600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611697576000600267ffffffffffffffff8111156115bc576115bb611f63565b5b6040519080825280602002602001820160405280156115ea5781602001602082028036833780820191505090505b5090508681600081518110611602576116016122c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508581600181518110611651576116506122c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061169588826106cc565b505b60016040518060e001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018660070b81526020018560070b815260200184815260200183815250908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060808201518160030160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060a0820151816004019080519060200190611892929190611b31565b5060c08201518160050190805190602001906118af929190611b31565b505050600180549050600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180549050600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050505050505050565b60606001604051602001611a5991906129bc565b6040516020818303038152906040529050919050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b8152602001606081525090565b82805482825590600052602060002090600301600490048101928215611af8576000526020600020916003016004900482015b82811115611af7578254825591600101919060010190611adc565b5b509050611b059190611bf0565b5090565b508054600082556003016004900490600052602060002090810190611b2e9190611bf0565b50565b82805482825590600052602060002090600301600490048101928215611bdf5791602002820160005b83821115611ba957835183826101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055509260200192600801602081600701049283019260010302611b5a565b8015611bdd5782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302611ba9565b505b509050611bec9190611bf0565b5090565b5b80821115611c09576000816000905550600101611bf1565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4c82611c21565b9050919050565b611c5c81611c41565b8114611c6757600080fd5b50565b600081359050611c7981611c53565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ca457611ca3611c7f565b5b8235905067ffffffffffffffff811115611cc157611cc0611c84565b5b602083019150836020820283011115611cdd57611cdc611c89565b5b9250929050565b600080600060408486031215611cfd57611cfc611c17565b5b6000611d0b86828701611c6a565b935050602084013567ffffffffffffffff811115611d2c57611d2b611c1c565b5b611d3886828701611c8e565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d7981611c41565b82525050565b60008160070b9050919050565b611d9581611d7f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000611dd38383611d8c565b60208301905092915050565b6000602082019050919050565b6000611df782611d9b565b611e018185611da6565b9350611e0c83611db7565b8060005b83811015611e3d578151611e248882611dc7565b9750611e2f83611ddf565b925050600181019050611e10565b5085935050505092915050565b6000606083016000830151611e626000860182611d70565b506020830151611e756020860182611d8c565b5060408301518482036040860152611e8d8282611dec565b9150508091505092915050565b6000611ea68383611e4a565b905092915050565b6000602082019050919050565b6000611ec682611d44565b611ed08185611d4f565b935083602082028501611ee285611d60565b8060005b85811015611f1e5784840389528151611eff8582611e9a565b9450611f0a83611eae565b925060208a01995050600181019050611ee6565b50829750879550505050505092915050565b60006020820190508181036000830152611f4a8184611ebb565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f9b82611f52565b810181811067ffffffffffffffff82111715611fba57611fb9611f63565b5b80604052505050565b6000611fcd611c0d565b9050611fd98282611f92565b919050565b600067ffffffffffffffff821115611ff957611ff8611f63565b5b602082029050602081019050919050565b600061201d61201884611fde565b611fc3565b905080838252602082019050602084028301858111156120405761203f611c89565b5b835b8181101561206957806120558882611c6a565b845260208401935050602081019050612042565b5050509392505050565b600082601f83011261208857612087611c7f565b5b813561209884826020860161200a565b91505092915050565b600080604083850312156120b8576120b7611c17565b5b60006120c685828601611c6a565b925050602083013567ffffffffffffffff8111156120e7576120e6611c1c565b5b6120f385828601612073565b9150509250929050565b60008083601f84011261211357612112611c7f565b5b8235905067ffffffffffffffff8111156121305761212f611c84565b5b60208301915083602082028301111561214c5761214b611c89565b5b9250929050565b60008060006040848603121561216c5761216b611c17565b5b600061217a86828701611c6a565b935050602084013567ffffffffffffffff81111561219b5761219a611c1c565b5b6121a7868287016120fd565b92509250509250925092565b600060ff82169050919050565b6121c9816121b3565b81146121d457600080fd5b50565b6000813590506121e6816121c0565b92915050565b60006020828403121561220257612201611c17565b5b6000612210848285016121d7565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612253578082015181840152602081019050612238565b83811115612262576000848401525b50505050565b600061227382612219565b61227d8185612224565b935061228d818560208601612235565b61229681611f52565b840191505092915050565b600060208201905081810360008301526122bb8184612268565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561230857612307611c17565b5b600061231684828501611c6a565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123638261231f565b915061236e8361231f565b92508282101561238157612380612329565b5b828203905092915050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b60006123d3600e8361238c565b91506123de8261239d565b602082019050919050565b60006020820190508181036000830152612402816123c6565b9050919050565b7f4e4f5f5245515545535400000000000000000000000000000000000000000000600082015250565b600061243f600a8361238c565b915061244a82612409565b602082019050919050565b6000602082019050818103600083015261246e81612432565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016060038336030381126124cf576124ce6124a4565b5b80830191505092915050565b6124e481611d7f565b81146124ef57600080fd5b50565b600081359050612501816124db565b92915050565b60006020828403121561251d5761251c611c17565b5b600061252b848285016124f2565b91505092915050565b60008083356001602003843603038112612551576125506124a4565b5b80840192508235915067ffffffffffffffff821115612573576125726124a9565b5b60208301925060208202360383131561258f5761258e6124ae565b5b509250929050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612608612603836125c8565b6125d5565b9050919050565b60008160a01c9050919050565b60008160070b9050919050565b600061263c6126378361260f565b61261c565b9050919050565b6000612656612651836125c8565b61261c565b9050919050565b600081549050919050565b60008190508160005260206000209050919050565b60008160401c9050919050565b600061269d6126988361267d565b61261c565b9050919050565b60008160801c9050919050565b60006126c46126bf836126a4565b61261c565b9050919050565b60008160c01c9050919050565b60006126eb6126e6836126cb565b61261c565b9050919050565b60006126fd8261265d565b6127078185611da6565b93508361271384612668565b60006001156127a0575b8360016004038201101561279f57815461273f8861273a83612643565b611d8c565b602088019750612757886127528361268a565b611d8c565b60208801975061276f8861276a836126b1565b611d8c565b60208801975061278788612782836126d8565b611d8c565b6020880197506001830192505060048101905061271d565b5b600115612847578154848210156127d0576127c3886127be83612643565b611d8c565b6020880197506001820191505b848210156127f7576127ea886127e58361268a565b611d8c565b6020880197506001820191505b8482101561281e576128118861280c836126b1565b611d8c565b6020880197506001820191505b848210156128455761283888612833836126d8565b611d8c565b6020880197506001820191505b505b8694505050505092915050565b600060e08301600080840154905061286b816125f5565b6128786000870182611d70565b5060018401549050612889816125f5565b6128966020870182611d70565b50600284015490506128a7816125f5565b6128b46040870182611d70565b506128be81612629565b6128cb6060870182611d8c565b50600384015490506128dc81612643565b6128e96080870182611d8c565b506004840185830360a087015261290083826126f2565b9250506005840185830360c087015261291983826126f2565b925050819250505092915050565b60006129338383612854565b905092915050565b6000600682019050919050565b600061295382612597565b61295d81856125a2565b93508360208202850161296f856125b3565b8060005b858110156129aa5784840389528161298b8582612927565b94506129968361293b565b925060208a01995050600181019050612973565b50829750879550505050505092915050565b600060208201905081810360008301526129d68184612948565b90509291505056fea2646970667358221220b9138709c160564e69098e82eb0a6b7c96c5418629fc772d519033352ed7f31064736f6c634300080b003360806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3336040516200007591906200019f565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e091906200019f565b60405180910390a1620001bc565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000187826200015a565b9050919050565b62000199816200017a565b82525050565b6000602082019050620001b660008301846200018e565b92915050565b61232b80620001cc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630842bf82146100515780635786e9321461006d578063c48d8e0214610089578063ec007105146100b9575b600080fd5b61006b60048036038101906100669190611937565b6100ea565b005b61008760048036038101906100829190611a56565b6106e6565b005b6100a3600480360381019061009e9190611ad8565b610f81565b6040516100b09190611b8d565b60405180910390f35b6100d360048036038101906100ce9190611a56565b610fab565b6040516100e1929190611cba565b60405180910390f35b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166101a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019e90611d47565b60405180910390fd5b6101b1838361134c565b6000836000815181106101c7576101c6611d67565b5b60200260200101516000015190506000846001815181106101eb576101ea611d67565b5b602002602001015160000151905060008560008151811061020f5761020e611d67565b5b602002602001015160200151905060008660018151811061023357610232611d67565b5b60200260200101516020015190506000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103bd576000600267ffffffffffffffff8111156102e3576102e26116d0565b5b6040519080825280602002602001820160405280156103115781602001602082028036833780820191505090505b509050848160008151811061032957610328611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160018151811061037857610377611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506103bb816106e6565b505b60016040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141561043e576000610440565b845b60070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610484576000610486565b835b60070b8152602001881515815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060608201518160020160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060808201518160020160086101000a81548160ff0219169083151502179055505050600180549050600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180549050600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079a90611d47565b60405180910390fd5b6000826000815181106107b9576107b8611d67565b5b602002602001015190506000836001815181106107d9576107d8611d67565b5b602002602001015190506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089990611de2565b60405180910390fd5b600060018080805490506108b69190611e3b565b815481106108c7576108c6611d67565b5b90600052602060002090600302019050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001808080549050610b739190611e3b565b81548110610b8457610b83611d67565b5b9060005260206000209060030201600180600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c1c9190611e3b565b81548110610c2d57610c2c611d67565b5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160149054906101000a900460070b8160010160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506002820160009054906101000a900460070b8160020160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506002820160089054906101000a900460ff168160020160086101000a81548160ff021916908315150217905550905050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090556001805480610ec957610ec8611e6f565b5b6001900381819060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549067ffffffffffffffff02191690556002820160006101000a81549067ffffffffffffffff02191690556002820160086101000a81549060ff0219169055505090555050505050565b60606001604051602001610f9591906120bc565b6040516020818303038152906040529050919050565b606060008083600081518110610fc457610fc3611d67565b5b60200260200101519050600084600181518110610fe457610fe3611d67565b5b602002602001015190506000600180600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461107a9190611e3b565b8154811061108b5761108a611d67565b5b906000526020600020906003020190506000600267ffffffffffffffff8111156110b8576110b76116d0565b5b6040519080825280602002602001820160405280156110f157816020015b6110de611673565b8152602001906001900390816110d65790505b50905060008260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16149050806111b85760405180604001604052808460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460010160149054906101000a900460070b60070b81525061121c565b60405180604001604052808460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460020160009054906101000a900460070b60070b8152505b826000815181106112305761122f611d67565b5b6020026020010181905250806112a85760405180604001604052808460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460020160009054906101000a900460070b60070b81525061130c565b60405180604001604052808460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460010160149054906101000a900460070b60070b8152505b826001815181106113205761131f611d67565b5b6020026020010181905250818360020160089054906101000a900460ff16965096505050505050915091565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090611d47565b60405180910390fd5b60005b835181101561151157600061143e85838151811061142d5761142c611d67565b5b602002602001015160000151611517565b905060018160030b14156114b657600a85838151811061146157611460611d67565b5b60200260200101516020015160070b13156114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a89061212a565b60405180910390fd5b6114fd565b60008160030b146114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f390612196565b60405180910390fd5b5b508080611509906121b6565b91505061140c565b50505050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff166393272baf60e01b8660405160240161154f919061220e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115b99190612265565b6000604051808303816000865af19150503d80600081146115f6576040519150601f19603f3d011682016040523d82523d6000602084013e6115fb565b606091505b50915091508161160e5760156000611623565b8080602001905181019061162291906122b5565b5b8095508194505050601660030b8360030b1461166b576040517fba96339e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b81525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611708826116bf565b810181811067ffffffffffffffff82111715611727576117266116d0565b5b80604052505050565b600061173a6116a6565b905061174682826116ff565b919050565b600067ffffffffffffffff821115611766576117656116d0565b5b602082029050602081019050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117ac82611781565b9050919050565b6117bc816117a1565b81146117c757600080fd5b50565b6000813590506117d9816117b3565b92915050565b60008160070b9050919050565b6117f5816117df565b811461180057600080fd5b50565b600081359050611812816117ec565b92915050565b60006040828403121561182e5761182d61177c565b5b6118386040611730565b90506000611848848285016117ca565b600083015250602061185c84828501611803565b60208301525092915050565b600061187b6118768461174b565b611730565b9050808382526020820190506040840283018581111561189e5761189d611777565b5b835b818110156118c757806118b38882611818565b8452602084019350506040810190506118a0565b5050509392505050565b600082601f8301126118e6576118e56116ba565b5b81356118f6848260208601611868565b91505092915050565b60008115159050919050565b611914816118ff565b811461191f57600080fd5b50565b6000813590506119318161190b565b92915050565b6000806040838503121561194e5761194d6116b0565b5b600083013567ffffffffffffffff81111561196c5761196b6116b5565b5b611978858286016118d1565b925050602061198985828601611922565b9150509250929050565b600067ffffffffffffffff8211156119ae576119ad6116d0565b5b602082029050602081019050919050565b60006119d26119cd84611993565b611730565b905080838252602082019050602084028301858111156119f5576119f4611777565b5b835b81811015611a1e5780611a0a88826117ca565b8452602084019350506020810190506119f7565b5050509392505050565b600082601f830112611a3d57611a3c6116ba565b5b8135611a4d8482602086016119bf565b91505092915050565b600060208284031215611a6c57611a6b6116b0565b5b600082013567ffffffffffffffff811115611a8a57611a896116b5565b5b611a9684828501611a28565b91505092915050565b600060ff82169050919050565b611ab581611a9f565b8114611ac057600080fd5b50565b600081359050611ad281611aac565b92915050565b600060208284031215611aee57611aed6116b0565b5b6000611afc84828501611ac3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b3f578082015181840152602081019050611b24565b83811115611b4e576000848401525b50505050565b6000611b5f82611b05565b611b698185611b10565b9350611b79818560208601611b21565b611b82816116bf565b840191505092915050565b60006020820190508181036000830152611ba78184611b54565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611be4816117a1565b82525050565b611bf3816117df565b82525050565b604082016000820151611c0f6000850182611bdb565b506020820151611c226020850182611bea565b50505050565b6000611c348383611bf9565b60408301905092915050565b6000602082019050919050565b6000611c5882611baf565b611c628185611bba565b9350611c6d83611bcb565b8060005b83811015611c9e578151611c858882611c28565b9750611c9083611c40565b925050600181019050611c71565b5085935050505092915050565b611cb4816118ff565b82525050565b60006040820190508181036000830152611cd48185611c4d565b9050611ce36020830184611cab565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000611d31600e83611cea565b9150611d3c82611cfb565b602082019050919050565b60006020820190508181036000830152611d6081611d24565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e4f5f504f4f4c00000000000000000000000000000000000000000000000000600082015250565b6000611dcc600783611cea565b9150611dd782611d96565b602082019050919050565b60006020820190508181036000830152611dfb81611dbf565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611e4682611e02565b9150611e5183611e02565b925082821015611e6457611e63611e0c565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f0f611f0a83611ecf565b611edc565b9050919050565b60008160a01c9050919050565b60008160070b9050919050565b6000611f43611f3e83611f16565b611f23565b9050919050565b6000611f5d611f5883611ecf565b611f23565b9050919050565b60008160401c9050919050565b600060ff82169050919050565b6000611f91611f8c83611f64565b611f71565b9050919050565b611fa1816118ff565b82525050565b60a082016000808301549050611fbc81611efc565b611fc96000860182611bdb565b5060018301549050611fda81611efc565b611fe76020860182611bdb565b50611ff181611f30565b611ffe6040860182611bea565b506002830154905061200f81611f4a565b61201c6060860182611bea565b5061202681611f7e565b6120336080860182611f98565b5050505050565b60006120468383611fa7565b60a08301905092915050565b6000600382019050919050565b600061206a82611e9e565b6120748185611ea9565b935061207f83611eba565b8060005b838110156120af5781612096888261203a565b97506120a183612052565b925050600181019050612083565b5085935050505092915050565b600060208201905081810360008301526120d6818461205f565b905092915050565b7f4e4654535f4c494d495400000000000000000000000000000000000000000000600082015250565b6000612114600a83611cea565b915061211f826120de565b602082019050919050565b6000602082019050818103600083015261214381612107565b9050919050565b7f554e535550504f525445445f544f4b454e5f5459504500000000000000000000600082015250565b6000612180601683611cea565b915061218b8261214a565b602082019050919050565b600060208201905081810360008301526121af81612173565b9050919050565b60006121c182611e02565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156121f4576121f3611e0c565b5b600182019050919050565b612208816117a1565b82525050565b600060208201905061222360008301846121ff565b92915050565b600081905092915050565b600061223f82611b05565b6122498185612229565b9350612259818560208601611b21565b80840191505092915050565b60006122718284612234565b915081905092915050565b60008160030b9050919050565b6122928161227c565b811461229d57600080fd5b50565b6000815190506122af81612289565b92915050565b600080604083850312156122cc576122cb6116b0565b5b60006122da858286016122a0565b92505060206122eb858286016122a0565b915050925092905056fea2646970667358221220e967a8443c1b4b419dcf86cb65c1af9174963ab4705a940f93ca45c46658d43464736f6c634300080b0033a2646970667358221220a3acc4cca9c81f69014433af9e4915c44a6e05a91e63b7925611eb8b4aec619364736f6c634300080b0033"
"runtime_bytecode":
string"0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370480275116100c3578063c48d8e021161007c578063c48d8e0214610382578063c873032b146103b2578063d8fd814f146103ce578063ddedfcf3146103fe578063ec0071051461041a578063f0fbda2d1461044b5761014d565b806370480275146102c257806397b2544f146102de578063a50b33e01461030e578063a8068d181461032a578063ab8c71c014610346578063b6db75a0146103645761014d565b806324758dcb1161011557806324758dcb146101f25780632e2244021461020e57806332ac91a51461023e57806345583b7a1461025a5780635786e9321461027657806366f03d9a146102925761014d565b80630842bf821461015257806311480d591461016e578063118fee951461018a5780631785f53c146101a65780631820b3bf146101c2575b600080fd5b61016c600480360381019061016791906125d8565b61047b565b005b6101886004803603810190610183919061266d565b6106c6565b005b6101a4600480360381019061019f919061266d565b610862565b005b6101c060048036038101906101bb919061269a565b6109fe565b005b6101dc60048036038101906101d7919061278a565b610b20565b6040516101e991906127e2565b60405180910390f35b61020c60048036038101906102079190612858565b610bee565b005b610228600480360381019061022391906128fb565b610f6d565b6040516102359190612b3a565b60405180910390f35b610258600480360381019061025391906128fb565b611037565b005b610274600480360381019061026f9190612b5c565b611260565b005b610290600480360381019061028b919061278a565b61137a565b005b6102ac60048036038101906102a79190612858565b611517565b6040516102b991906127e2565b60405180910390f35b6102dc60048036038101906102d7919061269a565b6115db565b005b6102f860048036038101906102f3919061269a565b6116fd565b60405161030591906127e2565b60405180910390f35b61032860048036038101906103239190612b9c565b61177d565b005b610344600480360381019061033f9190612be9565b6117f0565b005b61034e611992565b60405161035b9190612c54565b60405180910390f35b61036c6119ea565b60405161037991906127e2565b60405180910390f35b61039c6004803603810190610397919061266d565b611a1b565b6040516103a99190612cf7565b60405180910390f35b6103cc60048036038101906103c79190612b9c565b611adc565b005b6103e860048036038101906103e3919061266d565b611bc6565b6040516103f591906127e2565b60405180910390f35b61041860048036038101906104139190612d19565b611c38565b005b610434600480360381019061042f919061278a565b611de1565b604051610442929190612e57565b60405180910390f35b6104656004803603810190610460919061266d565b611ea7565b6040516104729190612cf7565b60405180910390f35b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052f90612ee4565b60405180910390fd5b60005b83518110156105e05761056b84828151811061055a57610559612f04565b5b602002602001015160000151611f68565b73ffffffffffffffffffffffffffffffffffffffff16632459ca666040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105b257600080fd5b505af19250505080156105c3575060015b6105cc576105cd565b5b80806105d890612f6c565b91505061053b565b5060016000845160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630842bf8284846040518363ffffffff1660e01b8152600401610656929190612e57565b600060405180830381600087803b15801561067057600080fd5b505af1158015610684573d6000803e3d6000fd5b505050507f14810161b0c93c5c7dfa3bf8a1a5d02c721f4a32b0c9ea33b511e5c0789ac2b283836040516106b9929190612e57565b60405180910390a1505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a90612ee4565b60405180910390fd5b600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311480d59836040518263ffffffff1660e01b81526004016107f59190612c54565b600060405180830381600087803b15801561080f57600080fd5b505af1158015610823573d6000803e3d6000fd5b505050507fa5010e135493057a9f5399a895ad226a54cf65d6918d7ddc9c406cdac5a75ae8826040516108569190612c54565b60405180910390a15050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690612ee4565b60405180910390fd5b600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663118fee95836040518263ffffffff1660e01b81526004016109919190612c54565b600060405180830381600087803b1580156109ab57600080fd5b505af11580156109bf573d6000803e3d6000fd5b505050507f196ca0e3fd19725314e00d7778ebab832867aa26efc88e069cfd5f80185523df826040516109f29190612c54565b60405180910390a15050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612ee4565b60405180910390fd5b610ae5827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612008565b7fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f82604051610b149190612fc4565b60405180910390a15050565b600080600090505b8251811015610be357610b54838281518110610b4757610b46612f04565b5b6020026020010151611f68565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc29190612ff4565b610bd0576000915050610be9565b8080610bdb90612f6c565b915050610b28565b50600190505b919050565b60005b82829050811015610e3f57610c3b838383818110610c1257610c11612f04565b5b9050602002810190610c249190613030565b6000016020810190610c36919061269a565b6116fd565b610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c71906130a4565b60405180910390fd5b60005b838383818110610c9057610c8f612f04565b5b9050602002810190610ca29190613030565b8060400190610cb191906130c4565b9050811015610e2b576000600182610cc99190613127565b90505b848484818110610cdf57610cde612f04565b5b9050602002810190610cf19190613030565b8060400190610d0091906130c4565b9050811015610e1757848484818110610d1c57610d1b612f04565b5b9050602002810190610d2e9190613030565b8060400190610d3d91906130c4565b82818110610d4e57610d4d612f04565b5b9050602002016020810190610d63919061317d565b60070b858585818110610d7957610d78612f04565b5b9050602002810190610d8b9190613030565b8060400190610d9a91906130c4565b84818110610dab57610daa612f04565b5b9050602002016020810190610dc0919061317d565b60070b1415610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb906131f6565b60405180910390fd5b8080610e0f90612f6c565b915050610ccc565b508080610e2390612f6c565b915050610c7d565b508080610e3790612f6c565b915050610bf1565b506000600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324758dcb60e01b8484604051602401610eb092919061345b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610f1a91906134bb565b600060405180830381855af49150503d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b5050905080610f6857600080fd5b505050565b6060600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e2244028585856040518463ffffffff1660e01b8152600401610fe89392919061356f565b600060405180830381865afa158015611005573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061102e91906137ef565b90509392505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90612ee4565b60405180910390fd5b6000600160008585905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ac91a560e01b8686866040516024016111669392919061356f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111d091906134bb565b600060405180830381855af49150503d806000811461120b576040519150601f19603f3d011682016040523d82523d6000602084013e611210565b606091505b505090508061121e57600080fd5b7fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb88585856040516112519392919061356f565b60405180910390a15050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612ee4565b60405180910390fd5b81600160008560ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612ee4565b60405180910390fd5b60016000835160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635786e932836040518263ffffffff1660e01b81526004016114aa91906138be565b600060405180830381600087803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050507f5cfc35115fc8e9e720735c4e73900d28a033c3dac8efb748752f64b98bbf8d568260405161150b91906138be565b60405180910390a15050565b6000600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166366f03d9a84846040518363ffffffff1660e01b815260040161159092919061345b565b6020604051808303816000875af11580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d39190612ff4565b905092915050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f90612ee4565b60405180910390fd5b6116c2827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426120ad565b7f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339826040516116f19190612fc4565b60405180910390a15050565b600061170882611f68565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190612ff4565b9050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b81526004016117ba9392919061356f565b600060405180830381600087803b1580156117d457600080fd5b505af11580156117e8573d6000803e3d6000fd5b505050505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490612ee4565b60405180910390fd5b60016000835160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d1884846040518363ffffffff1660e01b81526004016119229291906138e0565b600060405180830381600087803b15801561193c57600080fd5b505af1158015611950573d6000803e3d6000fd5b505050507fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb883836040516119859291906138e0565b60405180910390a1505050565b600080600090506119c3337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b612119565b156119cf576001811790505b6119d76119ea565b156119e3576002811790505b8091505090565b6000611a16337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612119565b905090565b6060600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c48d8e02836040518263ffffffff1660e01b8152600401611a8f9190612c54565b600060405180830381865afa158015611aac573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611ad591906139b6565b9050919050565b600160008383905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b8152600401611b559392919061356f565b600060405180830381600087803b158015611b6f57600080fd5b505af1158015611b83573d6000803e3d6000fd5b505050507fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb8338383604051611bba9392919061356f565b60405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cec90612ee4565b60405180910390fd5b600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddedfcf38585856040518463ffffffff1660e01b8152600401611d6e939291906139ff565b600060405180830381600087803b158015611d8857600080fd5b505af1158015611d9c573d6000803e3d6000fd5b505050507f811dad75e5e67db969d68b96a86f7b9f7ac4cf22738745f1a5dd0d4d97d7fd26848484604051611dd3939291906139ff565b60405180910390a150505050565b6060600060016000845160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec007105846040518263ffffffff1660e01b8152600401611e5891906138be565b600060405180830381865afa158015611e75573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611e9e9190613b18565b91509150915091565b6060600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0fbda2d836040518263ffffffff1660e01b8152600401611f1b9190612c54565b600060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611f6191906139b6565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fa75760009050612003565b6000611fb4836008612180565b9050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611ff9578060800151611fff565b80602001515b9150505b919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561204157600080fd5b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6121886122e5565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633c4dd32e60e01b87876040516024016121c1929190613b83565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161222b91906134bb565b6000604051808303816000865af19150503d8060008114612268576040519150601f19603f3d011682016040523d82523d6000602084013e61226d565b606091505b50915091508161227f57601584612294565b808060200190518101906122939190613ca9565b5b8095508194505050601660030b8360030b146122dc576040517f664cb42300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123a48261235b565b810181811067ffffffffffffffff821117156123c3576123c261236c565b5b80604052505050565b60006123d6612342565b90506123e2828261239b565b919050565b600067ffffffffffffffff8211156124025761240161236c565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244d82612422565b9050919050565b61245d81612442565b811461246857600080fd5b50565b60008135905061247a81612454565b92915050565b60008160070b9050919050565b61249681612480565b81146124a157600080fd5b50565b6000813590506124b38161248d565b92915050565b6000604082840312156124cf576124ce612418565b5b6124d960406123cc565b905060006124e98482850161246b565b60008301525060206124fd848285016124a4565b60208301525092915050565b600061251c612517846123e7565b6123cc565b9050808382526020820190506040840283018581111561253f5761253e612413565b5b835b81811015612568578061255488826124b9565b845260208401935050604081019050612541565b5050509392505050565b600082601f83011261258757612586612356565b5b8135612597848260208601612509565b91505092915050565b60008115159050919050565b6125b5816125a0565b81146125c057600080fd5b50565b6000813590506125d2816125ac565b92915050565b600080604083850312156125ef576125ee61234c565b5b600083013567ffffffffffffffff81111561260d5761260c612351565b5b61261985828601612572565b925050602061262a858286016125c3565b9150509250929050565b600060ff82169050919050565b61264a81612634565b811461265557600080fd5b50565b60008135905061266781612641565b92915050565b6000602082840312156126835761268261234c565b5b600061269184828501612658565b91505092915050565b6000602082840312156126b0576126af61234c565b5b60006126be8482850161246b565b91505092915050565b600067ffffffffffffffff8211156126e2576126e161236c565b5b602082029050602081019050919050565b6000612706612701846126c7565b6123cc565b9050808382526020820190506020840283018581111561272957612728612413565b5b835b81811015612752578061273e888261246b565b84526020840193505060208101905061272b565b5050509392505050565b600082601f83011261277157612770612356565b5b81356127818482602086016126f3565b91505092915050565b6000602082840312156127a05761279f61234c565b5b600082013567ffffffffffffffff8111156127be576127bd612351565b5b6127ca8482850161275c565b91505092915050565b6127dc816125a0565b82525050565b60006020820190506127f760008301846127d3565b92915050565b600080fd5b60008083601f84011261281857612817612356565b5b8235905067ffffffffffffffff811115612835576128346127fd565b5b60208301915083602082028301111561285157612850612413565b5b9250929050565b6000806020838503121561286f5761286e61234c565b5b600083013567ffffffffffffffff81111561288d5761288c612351565b5b61289985828601612802565b92509250509250929050565b60008083601f8401126128bb576128ba612356565b5b8235905067ffffffffffffffff8111156128d8576128d76127fd565b5b6020830191508360208202830111156128f4576128f3612413565b5b9250929050565b6000806000604084860312156129145761291361234c565b5b60006129228682870161246b565b935050602084013567ffffffffffffffff81111561294357612942612351565b5b61294f868287016128a5565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61299081612442565b82525050565b61299f81612480565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006129dd8383612996565b60208301905092915050565b6000602082019050919050565b6000612a01826129a5565b612a0b81856129b0565b9350612a16836129c1565b8060005b83811015612a47578151612a2e88826129d1565b9750612a39836129e9565b925050600181019050612a1a565b5085935050505092915050565b6000606083016000830151612a6c6000860182612987565b506020830151612a7f6020860182612996565b5060408301518482036040860152612a9782826129f6565b9150508091505092915050565b6000612ab08383612a54565b905092915050565b6000602082019050919050565b6000612ad08261295b565b612ada8185612966565b935083602082028501612aec85612977565b8060005b85811015612b285784840389528151612b098582612aa4565b9450612b1483612ab8565b925060208a01995050600181019050612af0565b50829750879550505050505092915050565b60006020820190508181036000830152612b548184612ac5565b905092915050565b60008060408385031215612b7357612b7261234c565b5b6000612b8185828601612658565b9250506020612b928582860161246b565b9150509250929050565b60008060208385031215612bb357612bb261234c565b5b600083013567ffffffffffffffff811115612bd157612bd0612351565b5b612bdd858286016128a5565b92509250509250929050565b60008060408385031215612c0057612bff61234c565b5b6000612c0e8582860161246b565b925050602083013567ffffffffffffffff811115612c2f57612c2e612351565b5b612c3b8582860161275c565b9150509250929050565b612c4e81612634565b82525050565b6000602082019050612c696000830184612c45565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ca9578082015181840152602081019050612c8e565b83811115612cb8576000848401525b50505050565b6000612cc982612c6f565b612cd38185612c7a565b9350612ce3818560208601612c8b565b612cec8161235b565b840191505092915050565b60006020820190508181036000830152612d118184612cbe565b905092915050565b600080600060408486031215612d3257612d3161234c565b5b6000612d408682870161246b565b935050602084013567ffffffffffffffff811115612d6157612d60612351565b5b612d6d86828701612802565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151612dbb6000850182612987565b506020820151612dce6020850182612996565b50505050565b6000612de08383612da5565b60408301905092915050565b6000602082019050919050565b6000612e0482612d79565b612e0e8185612d84565b9350612e1983612d95565b8060005b83811015612e4a578151612e318882612dd4565b9750612e3c83612dec565b925050600181019050612e1d565b5085935050505092915050565b60006040820190508181036000830152612e718185612df9565b9050612e8060208301846127d3565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000612ece600e83612e87565b9150612ed982612e98565b602082019050919050565b60006020820190508181036000830152612efd81612ec1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f7782612f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612faa57612fa9612f33565b5b600182019050919050565b612fbe81612442565b82525050565b6000602082019050612fd96000830184612fb5565b92915050565b600081519050612fee816125ac565b92915050565b60006020828403121561300a5761300961234c565b5b600061301884828501612fdf565b91505092915050565b600080fd5b600080fd5b600080fd5b60008235600160600383360303811261304c5761304b613021565b5b80830191505092915050565b7f504149525f4e4f545f415641494c41424c450000000000000000000000000000600082015250565b600061308e601283612e87565b915061309982613058565b602082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b600080833560016020038436030381126130e1576130e0613021565b5b80840192508235915067ffffffffffffffff82111561310357613102613026565b5b60208301925060208202360383131561311f5761311e61302b565b5b509250929050565b600061313282612f62565b915061313d83612f62565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561317257613171612f33565b5b828201905092915050565b6000602082840312156131935761319261234c565b5b60006131a1848285016124a4565b91505092915050565b7f4e4f545f554e495155455f53455249414c530000000000000000000000000000600082015250565b60006131e0601283612e87565b91506131eb826131aa565b602082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b6000819050919050565b600061322f602084018461246b565b905092915050565b600061324660208401846124a4565b905092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261327a57613279613258565b5b83810192508235915060208301925067ffffffffffffffff8211156132a2576132a161324e565b5b6020820236038413156132b8576132b7613253565b5b509250929050565b6000819050919050565b6000602082019050919050565b60006132e383856129b0565b93506132ee826132c0565b8060005b85811015613327576133048284613237565b61330e88826129d1565b9750613319836132ca565b9250506001810190506132f2565b5085925050509392505050565b6000606083016133476000840184613220565b6133546000860182612987565b506133626020840184613237565b61336f6020860182612996565b5061337d604084018461325d565b85830360408701526133908382846132d7565b925050508091505092915050565b60006133aa8383613334565b905092915050565b6000823560016060038336030381126133ce576133cd613258565b5b82810191505092915050565b6000602082019050919050565b60006133f38385612966565b93508360208402850161340584613216565b8060005b8781101561344957848403895261342082846133b2565b61342a858261339e565b9450613435836133da565b925060208a01995050600181019050613409565b50829750879450505050509392505050565b600060208201905081810360008301526134768184866133e7565b90509392505050565b600081905092915050565b600061349582612c6f565b61349f818561347f565b93506134af818560208601612c8b565b80840191505092915050565b60006134c7828461348a565b915081905092915050565b600082825260208201905092915050565b6000819050919050565b60006134f98383612987565b60208301905092915050565b6000602082019050919050565b600061351e83856134d2565b9350613529826134e3565b8060005b858110156135625761353f8284613220565b61354988826134ed565b975061355483613505565b92505060018101905061352d565b5085925050509392505050565b60006040820190506135846000830186612fb5565b8181036020830152613597818486613512565b9050949350505050565b600067ffffffffffffffff8211156135bc576135bb61236c565b5b602082029050602081019050919050565b6000815190506135dc81612454565b92915050565b6000815190506135f18161248d565b92915050565b600067ffffffffffffffff8211156136125761361161236c565b5b602082029050602081019050919050565b6000613636613631846135f7565b6123cc565b9050808382526020820190506020840283018581111561365957613658612413565b5b835b81811015613682578061366e88826135e2565b84526020840193505060208101905061365b565b5050509392505050565b600082601f8301126136a1576136a0612356565b5b81516136b1848260208601613623565b91505092915050565b6000606082840312156136d0576136cf612418565b5b6136da60606123cc565b905060006136ea848285016135cd565b60008301525060206136fe848285016135e2565b602083015250604082015167ffffffffffffffff8111156137225761372161241d565b5b61372e8482850161368c565b60408301525092915050565b600061374d613748846135a1565b6123cc565b905080838252602082019050602084028301858111156137705761376f612413565b5b835b818110156137b757805167ffffffffffffffff81111561379557613794612356565b5b8086016137a289826136ba565b85526020850194505050602081019050613772565b5050509392505050565b600082601f8301126137d6576137d5612356565b5b81516137e684826020860161373a565b91505092915050565b6000602082840312156138055761380461234c565b5b600082015167ffffffffffffffff81111561382357613822612351565b5b61382f848285016137c1565b91505092915050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061386b82613838565b61387581856134d2565b935061388083613843565b8060005b838110156138b157815161389888826134ed565b97506138a383613853565b925050600181019050613884565b5085935050505092915050565b600060208201905081810360008301526138d88184613860565b905092915050565b60006040820190506138f56000830185612fb5565b81810360208301526139078184613860565b90509392505050565b600080fd5b600067ffffffffffffffff8211156139305761392f61236c565b5b6139398261235b565b9050602081019050919050565b600061395961395484613915565b6123cc565b90508281526020810184848401111561397557613974613910565b5b613980848285612c8b565b509392505050565b600082601f83011261399d5761399c612356565b5b81516139ad848260208601613946565b91505092915050565b6000602082840312156139cc576139cb61234c565b5b600082015167ffffffffffffffff8111156139ea576139e9612351565b5b6139f684828501613988565b91505092915050565b6000604082019050613a146000830186612fb5565b8181036020830152613a278184866133e7565b9050949350505050565b600060408284031215613a4757613a46612418565b5b613a5160406123cc565b90506000613a61848285016135cd565b6000830152506020613a75848285016135e2565b60208301525092915050565b6000613a94613a8f846123e7565b6123cc565b90508083825260208201905060408402830185811115613ab757613ab6612413565b5b835b81811015613ae05780613acc8882613a31565b845260208401935050604081019050613ab9565b5050509392505050565b600082601f830112613aff57613afe612356565b5b8151613b0f848260208601613a81565b91505092915050565b60008060408385031215613b2f57613b2e61234c565b5b600083015167ffffffffffffffff811115613b4d57613b4c612351565b5b613b5985828601613aea565b9250506020613b6a85828601612fdf565b9150509250929050565b613b7d81612f62565b82525050565b6000604082019050613b986000830185612fb5565b613ba56020830184613b74565b9392505050565b60008160030b9050919050565b613bc281613bac565b8114613bcd57600080fd5b50565b600081519050613bdf81613bb9565b92915050565b600060a08284031215613bfb57613bfa612418565b5b613c0560a06123cc565b90506000613c1584828501612fdf565b6000830152506020613c29848285016135cd565b602083015250604082015167ffffffffffffffff811115613c4d57613c4c61241d565b5b613c5984828501613988565b604083015250606082015167ffffffffffffffff811115613c7d57613c7c61241d565b5b613c8984828501613988565b6060830152506080613c9d848285016135cd565b60808301525092915050565b60008060408385031215613cc057613cbf61234c565b5b6000613cce85828601613bd0565b925050602083015167ffffffffffffffff811115613cef57613cee612351565b5b613cfb85828601613be5565b915050925092905056fea26469706673582212204b2d6d34c02d75f2528e10d127ce62c612ec9b1425bb062b652df3386e1c50a864736f6c634300080b0033"