0x608060405234801561001057600080fd5b50600436106100415760003560e01c806357fbbef014610046578063a129568d1461005b578063e621e2b414610084575b600080fd5b610059610054366004610641565b610097565b005b61006e61006936600461066b565b610150565b60405161007b9190610718565b60405180910390f35b6100596100923660046107e5565b6104e7565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa1580156100dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101019190610830565b101561014c5760405162461bcd60e51b815260206004820152601560248201527443533a20616d6f756e744f757420746f6f206c6f7760581b60448201526064015b60405180910390fd5b5050565b6101826040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000808061019285870187610a88565b93509350935050600082519050808251146101e55760405162461bcd60e51b815260206004820152601360248201527208a82744098cadccee8d040dad2e6dac2e8c6d606b1b6044820152606401610143565b60005b818110156102b25760008085838151811061020557610205610bf6565b60200260200101516001600160a01b031685848151811061022857610228610bf6565b602002602001015160405161023d9190610c30565b6000604051808303816000865af19150503d806000811461027a576040519150601f19603f3d011682016040523d82523d6000602084013e61027f565b606091505b50915091508181906102a45760405162461bcd60e51b81526004016101439190610c4c565b5082600101925050506101e8565b5060005b8451518110156104db57846060015181815181106102d6576102d6610bf6565b60200260200101516000036103945784518051829081106102f9576102f9610bf6565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036d9190610830565b8560400151828151811061038357610383610bf6565b6020026020010181815250506104d3565b846060015181815181106103aa576103aa610bf6565b60200260200101516001036103d15760018560400151828151811061038357610383610bf6565b846060015181815181106103e7576103e7610bf6565b60200260200101516002036104d357845180518290811061040a5761040a610bf6565b60200260200101516001600160a01b031662fdd58e308760200151848151811061043657610436610bf6565b60200260200101516040518363ffffffff1660e01b815260040161046f9291906001600160a01b03929092168252602082015260400190565b602060405180830381865afa15801561048c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b09190610830565b856040015182815181106104c6576104c6610bf6565b6020026020010181815250505b6001016102b6565b50929695505050505050565b600181101561055b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190610830565b90505b604051602481018290526001600160a01b038381166044830152600091829187169060640160408051601f198184030181529181526020820180516001600160e01b031663acb7081560e01b179052516105b59190610c30565b6000604051808303816000865af19150503d80600081146105f2576040519150601f19603f3d011682016040523d82523d6000602084013e6105f7565b606091505b509150915081819061061c5760405162461bcd60e51b81526004016101439190610c4c565b50505050505050565b80356001600160a01b038116811461063c57600080fd5b919050565b6000806040838503121561065457600080fd5b61065d83610625565b946020939093013593505050565b6000806020838503121561067e57600080fd5b823567ffffffffffffffff8082111561069657600080fd5b818501915085601f8301126106aa57600080fd5b8135818111156106b957600080fd5b8660208285010111156106cb57600080fd5b60209290920196919550909350505050565b600081518084526020808501945080840160005b8381101561070d578151875295820195908201906001016106f1565b509495945050505050565b6020808252825160a083830152805160c0840181905260009291820190839060e08601905b808310156107665783516001600160a01b0316825292840192600192909201919084019061073d565b50838701519350601f1992508286820301604087015261078681856106dd565b935050506040850151818584030160608601526107a383826106dd565b9250506060850151818584030160808601526107bf83826106dd565b9250506080850151818584030160a08601526107db83826106dd565b9695505050505050565b600080600080608085870312156107fb57600080fd5b61080485610625565b935061081260208601610625565b925061082060408601610625565b9396929550929360600135925050565b60006020828403121561084257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561088257610882610849565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156108b1576108b1610849565b604052919050565b600067ffffffffffffffff8211156108d3576108d3610849565b5060051b60200190565b600082601f8301126108ee57600080fd5b813560206109036108fe836108b9565b610888565b82815260059290921b8401810191818101908684111561092257600080fd5b8286015b848110156109445761093781610625565b8352918301918301610926565b509695505050505050565b600082601f83011261096057600080fd5b813560206109706108fe836108b9565b82815260059290921b8401810191818101908684111561098f57600080fd5b8286015b848110156109445780358352918301918301610993565b600060a082840312156109bc57600080fd5b6109c461085f565b9050813567ffffffffffffffff808211156109de57600080fd5b6109ea858386016108dd565b83526020840135915080821115610a0057600080fd5b610a0c8583860161094f565b60208401526040840135915080821115610a2557600080fd5b610a318583860161094f565b60408401526060840135915080821115610a4a57600080fd5b610a568583860161094f565b60608401526080840135915080821115610a6f57600080fd5b50610a7c8482850161094f565b60808301525092915050565b60008060008060808587031215610a9e57600080fd5b843567ffffffffffffffff80821115610ab657600080fd5b610ac2888389016109aa565b9550602091508187013581811115610ad957600080fd5b610ae589828a016109aa565b955050604087013581811115610afa57600080fd5b610b0689828a016108dd565b945050606087013581811115610b1b57600080fd5b8701601f81018913610b2c57600080fd5b8035610b3a6108fe826108b9565b81815260059190911b8201840190848101908b831115610b5957600080fd5b8584015b83811015610be557803586811115610b755760008081fd5b8501603f81018e13610b875760008081fd5b8781013587811115610b9b57610b9b610849565b610bad601f8201601f19168a01610888565b8181528f6040838501011115610bc35760008081fd5b81604084018b83013760009181018a0191909152845250918601918601610b5d565b50989b979a50959850505050505050565b634e487b7160e01b600052603260045260246000fd5b60005b83811015610c27578181015183820152602001610c0f565b50506000910152565b60008251610c42818460208701610c0c565b9190910192915050565b6020815260008251806020840152610c6b816040850160208701610c0c565b601f01601f1916919091016040019291505056fea2646970667358221220c0897114ba491baee44e2c0f45351cbff90b9d3320d9f86401fd1936017741ea64736f6c63430008110033
0x608060405234801561001057600080fd5b50610cb5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806357fbbef014610046578063a129568d1461005b578063e621e2b414610084575b600080fd5b610059610054366004610641565b610097565b005b61006e61006936600461066b565b610150565b60405161007b9190610718565b60405180910390f35b6100596100923660046107e5565b6104e7565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa1580156100dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101019190610830565b101561014c5760405162461bcd60e51b815260206004820152601560248201527443533a20616d6f756e744f757420746f6f206c6f7760581b60448201526064015b60405180910390fd5b5050565b6101826040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000808061019285870187610a88565b93509350935050600082519050808251146101e55760405162461bcd60e51b815260206004820152601360248201527208a82744098cadccee8d040dad2e6dac2e8c6d606b1b6044820152606401610143565b60005b818110156102b25760008085838151811061020557610205610bf6565b60200260200101516001600160a01b031685848151811061022857610228610bf6565b602002602001015160405161023d9190610c30565b6000604051808303816000865af19150503d806000811461027a576040519150601f19603f3d011682016040523d82523d6000602084013e61027f565b606091505b50915091508181906102a45760405162461bcd60e51b81526004016101439190610c4c565b5082600101925050506101e8565b5060005b8451518110156104db57846060015181815181106102d6576102d6610bf6565b60200260200101516000036103945784518051829081106102f9576102f9610bf6565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036d9190610830565b8560400151828151811061038357610383610bf6565b6020026020010181815250506104d3565b846060015181815181106103aa576103aa610bf6565b60200260200101516001036103d15760018560400151828151811061038357610383610bf6565b846060015181815181106103e7576103e7610bf6565b60200260200101516002036104d357845180518290811061040a5761040a610bf6565b60200260200101516001600160a01b031662fdd58e308760200151848151811061043657610436610bf6565b60200260200101516040518363ffffffff1660e01b815260040161046f9291906001600160a01b03929092168252602082015260400190565b602060405180830381865afa15801561048c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b09190610830565b856040015182815181106104c6576104c6610bf6565b6020026020010181815250505b6001016102b6565b50929695505050505050565b600181101561055b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190610830565b90505b604051602481018290526001600160a01b038381166044830152600091829187169060640160408051601f198184030181529181526020820180516001600160e01b031663acb7081560e01b179052516105b59190610c30565b6000604051808303816000865af19150503d80600081146105f2576040519150601f19603f3d011682016040523d82523d6000602084013e6105f7565b606091505b509150915081819061061c5760405162461bcd60e51b81526004016101439190610c4c565b50505050505050565b80356001600160a01b038116811461063c57600080fd5b919050565b6000806040838503121561065457600080fd5b61065d83610625565b946020939093013593505050565b6000806020838503121561067e57600080fd5b823567ffffffffffffffff8082111561069657600080fd5b818501915085601f8301126106aa57600080fd5b8135818111156106b957600080fd5b8660208285010111156106cb57600080fd5b60209290920196919550909350505050565b600081518084526020808501945080840160005b8381101561070d578151875295820195908201906001016106f1565b509495945050505050565b6020808252825160a083830152805160c0840181905260009291820190839060e08601905b808310156107665783516001600160a01b0316825292840192600192909201919084019061073d565b50838701519350601f1992508286820301604087015261078681856106dd565b935050506040850151818584030160608601526107a383826106dd565b9250506060850151818584030160808601526107bf83826106dd565b9250506080850151818584030160a08601526107db83826106dd565b9695505050505050565b600080600080608085870312156107fb57600080fd5b61080485610625565b935061081260208601610625565b925061082060408601610625565b9396929550929360600135925050565b60006020828403121561084257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561088257610882610849565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156108b1576108b1610849565b604052919050565b600067ffffffffffffffff8211156108d3576108d3610849565b5060051b60200190565b600082601f8301126108ee57600080fd5b813560206109036108fe836108b9565b610888565b82815260059290921b8401810191818101908684111561092257600080fd5b8286015b848110156109445761093781610625565b8352918301918301610926565b509695505050505050565b600082601f83011261096057600080fd5b813560206109706108fe836108b9565b82815260059290921b8401810191818101908684111561098f57600080fd5b8286015b848110156109445780358352918301918301610993565b600060a082840312156109bc57600080fd5b6109c461085f565b9050813567ffffffffffffffff808211156109de57600080fd5b6109ea858386016108dd565b83526020840135915080821115610a0057600080fd5b610a0c8583860161094f565b60208401526040840135915080821115610a2557600080fd5b610a318583860161094f565b60408401526060840135915080821115610a4a57600080fd5b610a568583860161094f565b60608401526080840135915080821115610a6f57600080fd5b50610a7c8482850161094f565b60808301525092915050565b60008060008060808587031215610a9e57600080fd5b843567ffffffffffffffff80821115610ab657600080fd5b610ac2888389016109aa565b9550602091508187013581811115610ad957600080fd5b610ae589828a016109aa565b955050604087013581811115610afa57600080fd5b610b0689828a016108dd565b945050606087013581811115610b1b57600080fd5b8701601f81018913610b2c57600080fd5b8035610b3a6108fe826108b9565b81815260059190911b8201840190848101908b831115610b5957600080fd5b8584015b83811015610be557803586811115610b755760008081fd5b8501603f81018e13610b875760008081fd5b8781013587811115610b9b57610b9b610849565b610bad601f8201601f19168a01610888565b8181528f6040838501011115610bc35760008081fd5b81604084018b83013760009181018a0191909152845250918601918601610b5d565b50989b979a50959850505050505050565b634e487b7160e01b600052603260045260246000fd5b60005b83811015610c27578181015183820152602001610c0f565b50506000910152565b60008251610c42818460208701610c0c565b9190910192915050565b6020815260008251806020840152610c6b816040850160208701610c0c565b601f01601f1916919091016040019291505056fea2646970667358221220c0897114ba491baee44e2c0f45351cbff90b9d3320d9f86401fd1936017741ea64736f6c63430008110033