0x60806040523480156200001157600080fd5b5060405162001bdd38038062001bdd8339818101604052810190620000379190620004ba565b808281600390805190602001906200005192919062000232565b5080600490805190602001906200006a92919062000232565b505050620000a93362000082620000b260201b60201c565b600a620000909190620006e4565b856200009d919062000735565b620000bb60201b60201c565b50505062000908565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200012d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012490620007f7565b60405180910390fd5b62000141600083836200022860201b60201c565b806002600082825462000155919062000819565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000208919062000887565b60405180910390a362000224600083836200022d60201b60201c565b5050565b505050565b505050565b8280546200024090620008d3565b90600052602060002090601f016020900481019282620002645760008555620002b0565b82601f106200027f57805160ff1916838001178555620002b0565b82800160010185558215620002b0579182015b82811115620002af57825182559160200191906001019062000292565b5b509050620002bf9190620002c3565b5090565b5b80821115620002de576000816000905550600101620002c4565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6200030b81620002f6565b81146200031757600080fd5b50565b6000815190506200032b8162000300565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000386826200033b565b810181811067ffffffffffffffff82111715620003a857620003a76200034c565b5b80604052505050565b6000620003bd620002e2565b9050620003cb82826200037b565b919050565b600067ffffffffffffffff821115620003ee57620003ed6200034c565b5b620003f9826200033b565b9050602081019050919050565b60005b838110156200042657808201518184015260208101905062000409565b8381111562000436576000848401525b50505050565b6000620004536200044d84620003d0565b620003b1565b90508281526020810184848401111562000472576200047162000336565b5b6200047f84828562000406565b509392505050565b600082601f8301126200049f576200049e62000331565b5b8151620004b18482602086016200043c565b91505092915050565b600080600060608486031215620004d657620004d5620002ec565b5b6000620004e6868287016200031a565b935050602084015167ffffffffffffffff8111156200050a5762000509620002f1565b5b620005188682870162000487565b925050604084015167ffffffffffffffff8111156200053c576200053b620002f1565b5b6200054a8682870162000487565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005e257808604811115620005ba57620005b962000554565b5b6001851615620005ca5780820291505b8081029050620005da8562000583565b94506200059a565b94509492505050565b600082620005fd5760019050620006d0565b816200060d5760009050620006d0565b8160018114620006265760028114620006315762000667565b6001915050620006d0565b60ff84111562000646576200064562000554565b5b8360020a91508482111562000660576200065f62000554565b5b50620006d0565b5060208310610133831016604e8410600b8410161715620006a15782820a9050838111156200069b576200069a62000554565b5b620006d0565b620006b0848484600162000590565b92509050818404811115620006ca57620006c962000554565b5b81810290505b9392505050565b600060ff82169050919050565b6000620006f182620002f6565b9150620006fe83620006d7565b92506200072d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005eb565b905092915050565b60006200074282620002f6565b91506200074f83620002f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200078b576200078a62000554565b5b828202905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620007df601f8362000796565b9150620007ec82620007a7565b602082019050919050565b600060208201905081810360008301526200081281620007d0565b9050919050565b60006200082682620002f6565b91506200083383620002f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200086b576200086a62000554565b5b828201905092915050565b6200088181620002f6565b82525050565b60006020820190506200089e600083018462000876565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008ec57607f821691505b602082108103620009025762000901620008a4565b5b50919050565b6112c580620009186000396000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c80633950935111610071578063395093511461019057806370a08231146101c057806395d89b41146101f0578063a457c2d71461020e578063a9059cbb1461023e578063dd62ed3e1461026e576100b3565b8062108644146100b857806306fdde03146100d6578063095ea7b3146100f457806318160ddd1461012457806323b872dd14610142578063313ce56714610172575b600080fd5b6100c061029e565b6040516100cd9190610b80565b60405180910390f35b6100de6102e1565b6040516100eb9190610b80565b60405180910390f35b61010e60048036038101906101099190610c3b565b610373565b60405161011b9190610c96565b60405180910390f35b61012c610396565b6040516101399190610cc0565b60405180910390f35b61015c60048036038101906101579190610cdb565b6103a0565b6040516101699190610c96565b60405180910390f35b61017a6103cf565b6040516101879190610d4a565b60405180910390f35b6101aa60048036038101906101a59190610c3b565b6103d8565b6040516101b79190610c96565b60405180910390f35b6101da60048036038101906101d59190610d65565b61040f565b6040516101e79190610cc0565b60405180910390f35b6101f8610457565b6040516102059190610b80565b60405180910390f35b61022860048036038101906102239190610c3b565b6104e9565b6040516102359190610c96565b60405180910390f35b61025860048036038101906102539190610c3b565b610560565b6040516102659190610c96565b60405180910390f35b61028860048036038101906102839190610d92565b610583565b6040516102959190610cc0565b60405180910390f35b606060006040518060400160405280600581526020017f313932393200000000000000000000000000000000000000000000000000000081525090508091505090565b6060600380546102f090610e01565b80601f016020809104026020016040519081016040528092919081815260200182805461031c90610e01565b80156103695780601f1061033e57610100808354040283529160200191610369565b820191906000526020600020905b81548152906001019060200180831161034c57829003601f168201915b5050505050905090565b60008061037e61060a565b905061038b818585610612565b600191505092915050565b6000600254905090565b6000806103ab61060a565b90506103b88582856107db565b6103c3858585610867565b60019150509392505050565b60006012905090565b6000806103e361060a565b90506104048185856103f58589610583565b6103ff9190610e61565b610612565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461046690610e01565b80601f016020809104026020016040519081016040528092919081815260200182805461049290610e01565b80156104df5780601f106104b4576101008083540402835291602001916104df565b820191906000526020600020905b8154815290600101906020018083116104c257829003601f168201915b5050505050905090565b6000806104f461060a565b905060006105028286610583565b905083811015610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053e90610f29565b60405180910390fd5b6105548286868403610612565b60019250505092915050565b60008061056b61060a565b9050610578818585610867565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067890610fbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e79061104d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107ce9190610cc0565b60405180910390a3505050565b60006107e78484610583565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108615781811015610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a906110b9565b60405180910390fd5b6108608484848403610612565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd9061114b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093c906111dd565b60405180910390fd5b610950838383610add565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd9061126f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ac49190610cc0565b60405180910390a3610ad7848484610ae2565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b21578082015181840152602081019050610b06565b83811115610b30576000848401525b50505050565b6000601f19601f8301169050919050565b6000610b5282610ae7565b610b5c8185610af2565b9350610b6c818560208601610b03565b610b7581610b36565b840191505092915050565b60006020820190508181036000830152610b9a8184610b47565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bd282610ba7565b9050919050565b610be281610bc7565b8114610bed57600080fd5b50565b600081359050610bff81610bd9565b92915050565b6000819050919050565b610c1881610c05565b8114610c2357600080fd5b50565b600081359050610c3581610c0f565b92915050565b60008060408385031215610c5257610c51610ba2565b5b6000610c6085828601610bf0565b9250506020610c7185828601610c26565b9150509250929050565b60008115159050919050565b610c9081610c7b565b82525050565b6000602082019050610cab6000830184610c87565b92915050565b610cba81610c05565b82525050565b6000602082019050610cd56000830184610cb1565b92915050565b600080600060608486031215610cf457610cf3610ba2565b5b6000610d0286828701610bf0565b9350506020610d1386828701610bf0565b9250506040610d2486828701610c26565b9150509250925092565b600060ff82169050919050565b610d4481610d2e565b82525050565b6000602082019050610d5f6000830184610d3b565b92915050565b600060208284031215610d7b57610d7a610ba2565b5b6000610d8984828501610bf0565b91505092915050565b60008060408385031215610da957610da8610ba2565b5b6000610db785828601610bf0565b9250506020610dc885828601610bf0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e1957607f821691505b602082108103610e2c57610e2b610dd2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e6c82610c05565b9150610e7783610c05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eac57610eab610e32565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610f13602583610af2565b9150610f1e82610eb7565b604082019050919050565b60006020820190508181036000830152610f4281610f06565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610fa5602483610af2565b9150610fb082610f49565b604082019050919050565b60006020820190508181036000830152610fd481610f98565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611037602283610af2565b915061104282610fdb565b604082019050919050565b600060208201905081810360008301526110668161102a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006110a3601d83610af2565b91506110ae8261106d565b602082019050919050565b600060208201905081810360008301526110d281611096565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611135602583610af2565b9150611140826110d9565b604082019050919050565b6000602082019050818103600083015261116481611128565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006111c7602383610af2565b91506111d28261116b565b604082019050919050565b600060208201905081810360008301526111f6816111ba565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611259602683610af2565b9150611264826111fd565b604082019050919050565b600060208201905081810360008301526112888161124c565b905091905056fea264697066735822122050e2caf8ee56244a3b928aaba501f9840289cdc3110a47cef57d27f5e178b20e64736f6c634300080e003300000000000000000000000000000000000000000000000000000000050ebde4000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004784b576d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064b61565174440000000000000000000000000000000000000000000000000000