0x608060405234801561001057600080fd5b506108be806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806347e7ef2414610051578063969e37561461006d578063c23f001f14610089578063f3fef3a3146100b9575b600080fd5b61006b6004803603810190610066919061052f565b6100d5565b005b6100876004803603810190610082919061056f565b610181565b005b6100a3600480360381019061009e91906105c2565b6102fe565b6040516100b09190610611565b60405180910390f35b6100d360048036038101906100ce919061052f565b610323565b005b60008111610118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010f906106af565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f62836040516101759190610611565b60405180910390a35050565b600081116101c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bb90610741565b60405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610282576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610279906107ad565b60405180910390fd5b600061028f84848461048d565b90508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f405426d39d8e779e767431271111e0c0410a44f0775f32656a11194427cfbeeb84846040516102f09291906107cd565b60405180910390a350505050565b6000602052816000526040600020602052806000526040600020600091509150505481565b60008111610366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035d90610868565b60405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041b906107ad565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040516104819190610611565b60405180910390a35050565b60009392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104c68261049b565b9050919050565b6104d6816104bb565b81146104e157600080fd5b50565b6000813590506104f3816104cd565b92915050565b6000819050919050565b61050c816104f9565b811461051757600080fd5b50565b60008135905061052981610503565b92915050565b6000806040838503121561054657610545610496565b5b6000610554858286016104e4565b92505060206105658582860161051a565b9150509250929050565b60008060006060848603121561058857610587610496565b5b6000610596868287016104e4565b93505060206105a7868287016104e4565b92505060406105b88682870161051a565b9150509250925092565b600080604083850312156105d9576105d8610496565b5b60006105e7858286016104e4565b92505060206105f8858286016104e4565b9150509250929050565b61060b816104f9565b82525050565b60006020820190506106266000830184610602565b92915050565b600082825260208201905092915050565b7f4465706f73697420616d6f756e74206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b600061069960288361062c565b91506106a48261063d565b604082019050919050565b600060208201905081810360008301526106c88161068c565b9050919050565b7f45786368616e676520616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061072b60298361062c565b9150610736826106cf565b604082019050919050565b6000602082019050818103600083015261075a8161071e565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061079760148361062c565b91506107a282610761565b602082019050919050565b600060208201905081810360008301526107c68161078a565b9050919050565b60006040820190506107e26000830185610602565b6107ef6020830184610602565b9392505050565b7f5769746864726177616c20616d6f756e74206d7573742062652067726561746560008201527f72207468616e207a65726f000000000000000000000000000000000000000000602082015250565b6000610852602b8361062c565b915061085d826107f6565b604082019050919050565b6000602082019050818103600083015261088181610845565b905091905056fea2646970667358221220c48cec1fe07c5d6d6990f97312833616856c543eea9b5e714d4ed075d34cda1064736f6c63430008120033