0x60806040526040518060400160405280600881526020017f4e616b6564436174000000000000000000000000000000000000000000000000815250600090816200004a91906200039a565b506040518060400160405280600881526020017f4e616b6564436174000000000000000000000000000000000000000000000000815250600190816200009191906200039a565b506012600260006101000a81548160ff021916908360ff1602179055506a084595161401484a000000600455348015620000ca57600080fd5b50600454600381905550600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000481565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001a257607f821691505b602082108103620001b857620001b76200015a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001e3565b6200022e8683620001e3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200027b620002756200026f8462000246565b62000250565b62000246565b9050919050565b6000819050919050565b62000297836200025a565b620002af620002a68262000282565b848454620001f0565b825550505050565b600090565b620002c6620002b7565b620002d38184846200028c565b505050565b5b81811015620002fb57620002ef600082620002bc565b600181019050620002d9565b5050565b601f8211156200034a576200031481620001be565b6200031f84620001d3565b810160208510156200032f578190505b620003476200033e85620001d3565b830182620002d8565b50505b505050565b600082821c905092915050565b60006200036f600019846008026200034f565b1980831691505092915050565b60006200038a83836200035c565b9150826002028217905092915050565b620003a58262000120565b67ffffffffffffffff811115620003c157620003c06200012b565b5b620003cd825462000189565b620003da828285620002ff565b600060209050601f831160018114620004125760008415620003fd578287015190505b6200040985826200037c565b86555062000479565b601f1984166200042286620001be565b60005b828110156200044c5784890151825560018201915060208501945060208101905062000425565b868310156200046c578489015162000468601f8916826200035c565b8355505b6001600288020188555050505b505050505050565b61145a80620004916000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806342966c681161007157806342966c681461016857806370a082311461019857806395d89b41146101c8578063a9059cbb146101e6578063d5abeb0114610216578063dd62ed3e14610234576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610264565b6040516100c39190610dba565b60405180910390f35b6100e660048036038101906100e19190610e75565b6102f2565b6040516100f39190610ed0565b60405180910390f35b610104610452565b6040516101119190610efa565b60405180910390f35b610134600480360381019061012f9190610f15565b610458565b6040516101419190610ed0565b60405180910390f35b61015261086a565b60405161015f9190610f84565b60405180910390f35b610182600480360381019061017d9190610f9f565b61087d565b60405161018f9190610ed0565b60405180910390f35b6101b260048036038101906101ad9190610fcc565b610a09565b6040516101bf9190610efa565b60405180910390f35b6101d0610a21565b6040516101dd9190610dba565b60405180910390f35b61020060048036038101906101fb9190610e75565b610aaf565b60405161020d9190610ed0565b60405180910390f35b61021e610cff565b60405161022b9190610efa565b60405180910390f35b61024e60048036038101906102499190610ff9565b610d05565b60405161025b9190610efa565b60405180910390f35b6000805461027190611068565b80601f016020809104026020016040519081016040528092919081815260200182805461029d90611068565b80156102ea5780601f106102bf576101008083540402835291602001916102ea565b820191906000526020600020905b8154815290600101906020018083116102cd57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610362576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610359906110e5565b60405180910390fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104409190610efa565b60405180910390a36001905092915050565b60035481565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bf90611151565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052e906111bd565b60405180910390fd5b6000821161057a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057190611229565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156105fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f390611295565b60405180910390fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290611301565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461070a9190611350565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107609190611384565b9250508190555081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107f39190611350565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108579190610efa565b60405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b60008082116108c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b890611404565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093a90611295565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109929190611350565b9250508190555081600360008282546109ab9190611350565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040516109f89190610efa565b60405180910390a260019050919050565b60056020528060005260406000206000915090505481565b60018054610a2e90611068565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5a90611068565b8015610aa75780601f10610a7c57610100808354040283529160200191610aa7565b820191906000526020600020905b815481529060010190602001808311610a8a57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b16906111bd565b60405180910390fd5b60008211610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5990611229565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb90611295565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c339190611350565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c899190611384565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ced9190610efa565b60405180910390a36001905092915050565b60045481565b6006602052816000526040600020602052806000526040600020600091509150505481565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d64578082015181840152602081019050610d49565b60008484015250505050565b6000601f19601f8301169050919050565b6000610d8c82610d2a565b610d968185610d35565b9350610da6818560208601610d46565b610daf81610d70565b840191505092915050565b60006020820190508181036000830152610dd48184610d81565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e0c82610de1565b9050919050565b610e1c81610e01565b8114610e2757600080fd5b50565b600081359050610e3981610e13565b92915050565b6000819050919050565b610e5281610e3f565b8114610e5d57600080fd5b50565b600081359050610e6f81610e49565b92915050565b60008060408385031215610e8c57610e8b610ddc565b5b6000610e9a85828601610e2a565b9250506020610eab85828601610e60565b9150509250929050565b60008115159050919050565b610eca81610eb5565b82525050565b6000602082019050610ee56000830184610ec1565b92915050565b610ef481610e3f565b82525050565b6000602082019050610f0f6000830184610eeb565b92915050565b600080600060608486031215610f2e57610f2d610ddc565b5b6000610f3c86828701610e2a565b9350506020610f4d86828701610e2a565b9250506040610f5e86828701610e60565b9150509250925092565b600060ff82169050919050565b610f7e81610f68565b82525050565b6000602082019050610f996000830184610f75565b92915050565b600060208284031215610fb557610fb4610ddc565b5b6000610fc384828501610e60565b91505092915050565b600060208284031215610fe257610fe1610ddc565b5b6000610ff084828501610e2a565b91505092915050565b600080604083850312156110105761100f610ddc565b5b600061101e85828601610e2a565b925050602061102f85828601610e2a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061108057607f821691505b60208210810361109357611092611039565b5b50919050565b7f496e76616c6964207370656e6465722061646472657373000000000000000000600082015250565b60006110cf601783610d35565b91506110da82611099565b602082019050919050565b600060208201905081810360008301526110fe816110c2565b9050919050565b7f496e76616c69642073656e646572206164647265737300000000000000000000600082015250565b600061113b601683610d35565b915061114682611105565b602082019050919050565b6000602082019050818103600083015261116a8161112e565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b60006111a7601983610d35565b91506111b282611171565b602082019050919050565b600060208201905081810360008301526111d68161119a565b9050919050565b7f496e76616c6964207472616e7366657220616d6f756e74000000000000000000600082015250565b6000611213601783610d35565b915061121e826111dd565b602082019050919050565b6000602082019050818103600083015261124281611206565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061127f601483610d35565b915061128a82611249565b602082019050919050565b600060208201905081810360008301526112ae81611272565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b60006112eb601683610d35565b91506112f6826112b5565b602082019050919050565b6000602082019050818103600083015261131a816112de565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061135b82610e3f565b915061136683610e3f565b925082820390508181111561137e5761137d611321565b5b92915050565b600061138f82610e3f565b915061139a83610e3f565b92508282019050808211156113b2576113b1611321565b5b92915050565b7f496e76616c6964206275726e20616d6f756e7400000000000000000000000000600082015250565b60006113ee601383610d35565b91506113f9826113b8565b602082019050919050565b6000602082019050818103600083015261141d816113e1565b905091905056fea264697066735822122009d20f768249032a5dff71fb38503564fec2bf31400db8eda0fe2fca35cabaa064736f6c63430008120033