0x6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063daad0c5f11610064578063daad0c5f14610545578063dd62ed3e1461056e578063ea1644d5146105ab578063f2fde38b146105d45761018c565b8063a9059cbb146104c8578063c3c8cd8014610505578063c492f0461461051c5761018c565b806370a08231146103cc578063715018a61461040957806374010ece146104205780638da5cb5b146104495780638f70ccf71461047457806395d89b411461049d5761018c565b806323b872dd1161013e57806346089a371161011857806346089a371461033657806349bd5a5e1461036157806352f7c9881461038c5780636fc3eaec146103b55761018c565b806323b872dd146102a5578063313ce567146102e25780633ac992d61461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd146102245780631b1d8af21461024f5780631de125161461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105fd565b6040516101b391906125dc565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061269c565b61063a565b6040516101f091906126f7565b60405180910390f35b34801561020557600080fd5b5061020e610658565b60405161021b9190612771565b60405180910390f35b34801561023057600080fd5b5061023961067e565b604051610246919061279b565b60405180910390f35b34801561025b57600080fd5b5061026461068e565b604051610271919061279b565b60405180910390f35b34801561028657600080fd5b5061028f610694565b60405161029c919061279b565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906127b6565b61069a565b6040516102d991906126f7565b60405180910390f35b3480156102ee57600080fd5b506102f7610773565b6040516103049190612825565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612840565b61077c565b005b34801561034257600080fd5b5061034b61081b565b604051610358919061279b565b60405180910390f35b34801561036d57600080fd5b50610376610821565b604051610383919061287c565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612897565b610847565b005b3480156103c157600080fd5b506103ca610924565b005b3480156103d857600080fd5b506103f360048036038101906103ee91906128d7565b610996565b604051610400919061279b565b60405180910390f35b34801561041557600080fd5b5061041e6109e7565b005b34801561042c57600080fd5b5061044760048036038101906104429190612840565b610b3a565b005b34801561045557600080fd5b5061045e610bd9565b60405161046b919061287c565b60405180910390f35b34801561048057600080fd5b5061049b60048036038101906104969190612930565b610c02565b005b3480156104a957600080fd5b506104b2610cb4565b6040516104bf91906125dc565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea919061269c565b610cf1565b6040516104fc91906126f7565b60405180910390f35b34801561051157600080fd5b5061051a610d0f565b005b34801561052857600080fd5b50610543600480360381019061053e91906129c2565b610d89565b005b34801561055157600080fd5b5061056c60048036038101906105679190612930565b610ec3565b005b34801561057a57600080fd5b5061059560048036038101906105909190612a22565b610f75565b6040516105a2919061279b565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190612840565b610ffc565b005b3480156105e057600080fd5b506105fb60048036038101906105f691906128d7565b61109b565b005b60606040518060400160405280600a81526020017f4e6f766143617368414900000000000000000000000000000000000000000000815250905090565b600061064e61064761125c565b8484611264565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600f5481565b600d5481565b60006106a784848461142d565b610768846106b361125c565b610763856040518060600160405280602581526020016133eb60259139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061071961125c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbd9092919063ffffffff16565b611264565b600190509392505050565b60006009905090565b61078461125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890612aae565b60405180910390fd5b80600f8190555050565b600e5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61084f61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d390612aae565b60405180910390fd5b600082101580156108ee5750602d8211155b6108f757600080fd5b600081101580156109095750602d8111155b61091257600080fd5b81600881905550806009819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096561125c565b73ffffffffffffffffffffffffffffffffffffffff161461098557600080fd5b600047905061099381611c21565b50565b60006109e0600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8d565b9050919050565b6109ef61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7390612aae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b4261125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690612aae565b60405180910390fd5b80600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c0a61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90612aae565b60405180910390fd5b80600c60146101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4e43414900000000000000000000000000000000000000000000000000000000815250905090565b6000610d05610cfe61125c565b848461142d565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d5061125c565b73ffffffffffffffffffffffffffffffffffffffff1614610d7057600080fd5b6000610d7b30610996565b9050610d8681611cfb565b50565b610d9161125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590612aae565b60405180910390fd5b60005b83839050811015610ebd578160036000868685818110610e4457610e43612ace565b5b9050602002016020810190610e5991906128d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610eb590612b2c565b915050610e21565b50505050565b610ecb61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612aae565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100461125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108890612aae565b60405180910390fd5b80600e8190555050565b6110a361125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790612aae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612be6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612c52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990612cbe565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611420919061279b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390612d2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612d96565b60405180910390fd5b6000811161154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590612e02565b60405180910390fd5b611556610bd9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115c45750611594610bd9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118ce57600c60149054906101000a900460ff16611653576115e5610bd9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164990612e94565b60405180910390fd5b5b600d54811115611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f90612f00565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174557600e54816116fa84610996565b6117049190612f20565b10611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b90612fa0565b60405180910390fd5b5b600061175030610996565b90506000600f548210159050600d54821061176b57600d5491505b8080156117855750600c60169054906101000a900460ff16155b80156117df5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117f75750600c60159054906101000a900460ff165b801561184d5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a35750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118cb576118b182611cfb565b600047905060008111156118c9576118c847611c21565b5b505b50505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119755750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a285750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a275750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a365760009050611bab565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ae15750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611af0576008546007819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611baa576009546007819055505b5b611bb784848484611f74565b50505050565b6000838311158290611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc91906125dc565b60405180910390fd5b5060008385611c149190612fc0565b9050809150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b5050565b6000600554821115611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90613066565b60405180910390fd5b6000611cde611fa1565b9050611cf38184611fcc90919063ffffffff16565b915050919050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3357611d32613086565b5b604051908082528060200260200182016040528015611d615781602001602082028036833780820191505090505b5090503081600081518110611d7957611d78612ace565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4491906130ca565b81600181518110611e5857611e57612ace565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebf30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611264565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f239594939291906131f0565b600060405180830381600087803b158015611f3d57600080fd5b505af1158015611f51573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b80611f8257611f81612016565b5b611f8d848484612035565b80611f9b57611f9a6121ed565b5b50505050565b6000806000611fae6121f8565b91509150611fc58183611fcc90919063ffffffff16565b9250505090565b600061200e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061220f565b905092915050565b600060075403156120335760075460068190555060006007819055505b565b60008060008061204485612272565b935093509350935061209e84600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213383600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230b90919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217f81612369565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121dc919061279b565b60405180910390a350505050505050565b600654600781905550565b60008060055467016345785d8a0000915091509091565b60008083118290612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d91906125dc565b60405180910390fd5b50600083856122659190613279565b9050809150509392505050565b60008060008060008061228787600754612426565b915091506000612295611fa1565b90506000806122a58a8585612479565b9150915081818686985098509850985050505050509193509193565b600061230383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbd565b905092915050565b600080828461231a9190612f20565b90508381101561235f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612356906132f6565b60405180910390fd5b8091505092915050565b6000612373611fa1565b9050600061238a82846124d290919063ffffffff16565b90506123de81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230b90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000806000612451606461244386886124d290919063ffffffff16565b611fcc90919063ffffffff16565b9050600061246882876122c190919063ffffffff16565b905080829350935050509250929050565b600080600061249184876124d290919063ffffffff16565b905060006124a885876124d290919063ffffffff16565b905060006124bf82846122c190919063ffffffff16565b9050828194509450505050935093915050565b60008083036124e45760009050612546565b600082846124f29190613316565b90508284826125019190613279565b14612541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612538906133ca565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561258657808201518184015260208101905061256b565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ae8261254c565b6125b88185612557565b93506125c8818560208601612568565b6125d181612592565b840191505092915050565b600060208201905081810360008301526125f681846125a3565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263382612608565b9050919050565b61264381612628565b811461264e57600080fd5b50565b6000813590506126608161263a565b92915050565b6000819050919050565b61267981612666565b811461268457600080fd5b50565b60008135905061269681612670565b92915050565b600080604083850312156126b3576126b26125fe565b5b60006126c185828601612651565b92505060206126d285828601612687565b9150509250929050565b60008115159050919050565b6126f1816126dc565b82525050565b600060208201905061270c60008301846126e8565b92915050565b6000819050919050565b600061273761273261272d84612608565b612712565b612608565b9050919050565b60006127498261271c565b9050919050565b600061275b8261273e565b9050919050565b61276b81612750565b82525050565b60006020820190506127866000830184612762565b92915050565b61279581612666565b82525050565b60006020820190506127b0600083018461278c565b92915050565b6000806000606084860312156127cf576127ce6125fe565b5b60006127dd86828701612651565b93505060206127ee86828701612651565b92505060406127ff86828701612687565b9150509250925092565b600060ff82169050919050565b61281f81612809565b82525050565b600060208201905061283a6000830184612816565b92915050565b600060208284031215612856576128556125fe565b5b600061286484828501612687565b91505092915050565b61287681612628565b82525050565b6000602082019050612891600083018461286d565b92915050565b600080604083850312156128ae576128ad6125fe565b5b60006128bc85828601612687565b92505060206128cd85828601612687565b9150509250929050565b6000602082840312156128ed576128ec6125fe565b5b60006128fb84828501612651565b91505092915050565b61290d816126dc565b811461291857600080fd5b50565b60008135905061292a81612904565b92915050565b600060208284031215612946576129456125fe565b5b60006129548482850161291b565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129825761298161295d565b5b8235905067ffffffffffffffff81111561299f5761299e612962565b5b6020830191508360208202830111156129bb576129ba612967565b5b9250929050565b6000806000604084860312156129db576129da6125fe565b5b600084013567ffffffffffffffff8111156129f9576129f8612603565b5b612a058682870161296c565b93509350506020612a188682870161291b565b9150509250925092565b60008060408385031215612a3957612a386125fe565b5b6000612a4785828601612651565b9250506020612a5885828601612651565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a98602083612557565b9150612aa382612a62565b602082019050919050565b60006020820190508181036000830152612ac781612a8b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3782612666565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6957612b68612afd565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bd0602683612557565b9150612bdb82612b74565b604082019050919050565b60006020820190508181036000830152612bff81612bc3565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000612c3c601f83612557565b9150612c4782612c06565b602082019050919050565b60006020820190508181036000830152612c6b81612c2f565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612ca8601d83612557565b9150612cb382612c72565b602082019050919050565b60006020820190508181036000830152612cd781612c9b565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000612d14601f83612557565b9150612d1f82612cde565b602082019050919050565b60006020820190508181036000830152612d4381612d07565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612d80601d83612557565b9150612d8b82612d4a565b602082019050919050565b60006020820190508181036000830152612daf81612d73565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612dec601b83612557565b9150612df782612db6565b602082019050919050565b60006020820190508181036000830152612e1b81612ddf565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000612e7e602e83612557565b9150612e8982612e22565b604082019050919050565b60006020820190508181036000830152612ead81612e71565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b6000612eea601e83612557565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b6000612f2b82612666565b9150612f3683612666565b9250828201905080821115612f4e57612f4d612afd565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b6000612f8a601a83612557565b9150612f9582612f54565b602082019050919050565b60006020820190508181036000830152612fb981612f7d565b9050919050565b6000612fcb82612666565b9150612fd683612666565b9250828203905081811115612fee57612fed612afd565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000613050602c83612557565b915061305b82612ff4565b604082019050919050565b6000602082019050818103600083015261307f81613043565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506130c48161263a565b92915050565b6000602082840312156130e0576130df6125fe565b5b60006130ee848285016130b5565b91505092915050565b6000819050919050565b600061311c613117613112846130f7565b612712565b612666565b9050919050565b61312c81613101565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61316781612628565b82525050565b6000613179838361315e565b60208301905092915050565b6000602082019050919050565b600061319d82613132565b6131a7818561313d565b93506131b28361314e565b8060005b838110156131e35781516131ca888261316d565b97506131d583613185565b9250506001810190506131b6565b5085935050505092915050565b600060a082019050613205600083018861278c565b6132126020830187613123565b81810360408301526132248186613192565b9050613233606083018561286d565b613240608083018461278c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328482612666565b915061328f83612666565b92508261329f5761329e61324a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132e0601b83612557565b91506132eb826132aa565b602082019050919050565b6000602082019050818103600083015261330f816132d3565b9050919050565b600061332182612666565b915061332c83612666565b925082820261333a81612666565b9150828204841483151761335157613350612afd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133b4602183612557565b91506133bf82613358565b604082019050919050565b600060208201905081810360008301526133e3816133a7565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207c7e1738ef891a046c170839db4829358aec56d77cf0a8f4f82f54775f6f48ea64736f6c63430008120033
0x608060405267016345785d8a00006000196200001c919062000629565b6000196200002b919062000690565b60055560075460065560095460075560056008556005600955732f4892488db6a60f0faad001269f9228db0e2afa600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff02191690831515021790555066038d7ea4c68000600d5566071afd498d0000600e5564e8d4a51000600f55348015620000fb57600080fd5b5060006200010e620005bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460046000620001c3620005bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cd919062000735565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035b919062000735565b6040518363ffffffff1660e01b81526004016200037a92919062000778565b6020604051808303816000875af11580156200039a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c0919062000735565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360006200046e620005c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000549620005bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620005b09190620007b6565b60405180910390a350620007d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200063682620005f0565b91506200064383620005f0565b925082620006565762000655620005fa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200069d82620005f0565b9150620006aa83620005f0565b9250828203905081811115620006c557620006c462000661565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006fd82620006d0565b9050919050565b6200070f81620006f0565b81146200071b57600080fd5b50565b6000815190506200072f8162000704565b92915050565b6000602082840312156200074e576200074d620006cb565b5b60006200075e848285016200071e565b91505092915050565b6200077281620006f0565b82525050565b60006040820190506200078f600083018562000767565b6200079e602083018462000767565b9392505050565b620007b081620005f0565b82525050565b6000602082019050620007cd6000830184620007a5565b92915050565b61344580620007e36000396000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063daad0c5f11610064578063daad0c5f14610545578063dd62ed3e1461056e578063ea1644d5146105ab578063f2fde38b146105d45761018c565b8063a9059cbb146104c8578063c3c8cd8014610505578063c492f0461461051c5761018c565b806370a08231146103cc578063715018a61461040957806374010ece146104205780638da5cb5b146104495780638f70ccf71461047457806395d89b411461049d5761018c565b806323b872dd1161013e57806346089a371161011857806346089a371461033657806349bd5a5e1461036157806352f7c9881461038c5780636fc3eaec146103b55761018c565b806323b872dd146102a5578063313ce567146102e25780633ac992d61461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd146102245780631b1d8af21461024f5780631de125161461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105fd565b6040516101b391906125dc565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061269c565b61063a565b6040516101f091906126f7565b60405180910390f35b34801561020557600080fd5b5061020e610658565b60405161021b9190612771565b60405180910390f35b34801561023057600080fd5b5061023961067e565b604051610246919061279b565b60405180910390f35b34801561025b57600080fd5b5061026461068e565b604051610271919061279b565b60405180910390f35b34801561028657600080fd5b5061028f610694565b60405161029c919061279b565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906127b6565b61069a565b6040516102d991906126f7565b60405180910390f35b3480156102ee57600080fd5b506102f7610773565b6040516103049190612825565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612840565b61077c565b005b34801561034257600080fd5b5061034b61081b565b604051610358919061279b565b60405180910390f35b34801561036d57600080fd5b50610376610821565b604051610383919061287c565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612897565b610847565b005b3480156103c157600080fd5b506103ca610924565b005b3480156103d857600080fd5b506103f360048036038101906103ee91906128d7565b610996565b604051610400919061279b565b60405180910390f35b34801561041557600080fd5b5061041e6109e7565b005b34801561042c57600080fd5b5061044760048036038101906104429190612840565b610b3a565b005b34801561045557600080fd5b5061045e610bd9565b60405161046b919061287c565b60405180910390f35b34801561048057600080fd5b5061049b60048036038101906104969190612930565b610c02565b005b3480156104a957600080fd5b506104b2610cb4565b6040516104bf91906125dc565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea919061269c565b610cf1565b6040516104fc91906126f7565b60405180910390f35b34801561051157600080fd5b5061051a610d0f565b005b34801561052857600080fd5b50610543600480360381019061053e91906129c2565b610d89565b005b34801561055157600080fd5b5061056c60048036038101906105679190612930565b610ec3565b005b34801561057a57600080fd5b5061059560048036038101906105909190612a22565b610f75565b6040516105a2919061279b565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190612840565b610ffc565b005b3480156105e057600080fd5b506105fb60048036038101906105f691906128d7565b61109b565b005b60606040518060400160405280600a81526020017f4e6f766143617368414900000000000000000000000000000000000000000000815250905090565b600061064e61064761125c565b8484611264565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600f5481565b600d5481565b60006106a784848461142d565b610768846106b361125c565b610763856040518060600160405280602581526020016133eb60259139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061071961125c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbd9092919063ffffffff16565b611264565b600190509392505050565b60006009905090565b61078461125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890612aae565b60405180910390fd5b80600f8190555050565b600e5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61084f61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d390612aae565b60405180910390fd5b600082101580156108ee5750602d8211155b6108f757600080fd5b600081101580156109095750602d8111155b61091257600080fd5b81600881905550806009819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096561125c565b73ffffffffffffffffffffffffffffffffffffffff161461098557600080fd5b600047905061099381611c21565b50565b60006109e0600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8d565b9050919050565b6109ef61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7390612aae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b4261125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690612aae565b60405180910390fd5b80600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c0a61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90612aae565b60405180910390fd5b80600c60146101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4e43414900000000000000000000000000000000000000000000000000000000815250905090565b6000610d05610cfe61125c565b848461142d565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d5061125c565b73ffffffffffffffffffffffffffffffffffffffff1614610d7057600080fd5b6000610d7b30610996565b9050610d8681611cfb565b50565b610d9161125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590612aae565b60405180910390fd5b60005b83839050811015610ebd578160036000868685818110610e4457610e43612ace565b5b9050602002016020810190610e5991906128d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610eb590612b2c565b915050610e21565b50505050565b610ecb61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612aae565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100461125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108890612aae565b60405180910390fd5b80600e8190555050565b6110a361125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790612aae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612be6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612c52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990612cbe565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611420919061279b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390612d2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612d96565b60405180910390fd5b6000811161154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590612e02565b60405180910390fd5b611556610bd9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115c45750611594610bd9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118ce57600c60149054906101000a900460ff16611653576115e5610bd9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164990612e94565b60405180910390fd5b5b600d54811115611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f90612f00565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174557600e54816116fa84610996565b6117049190612f20565b10611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b90612fa0565b60405180910390fd5b5b600061175030610996565b90506000600f548210159050600d54821061176b57600d5491505b8080156117855750600c60169054906101000a900460ff16155b80156117df5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117f75750600c60159054906101000a900460ff165b801561184d5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a35750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118cb576118b182611cfb565b600047905060008111156118c9576118c847611c21565b5b505b50505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119755750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a285750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a275750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a365760009050611bab565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ae15750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611af0576008546007819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611baa576009546007819055505b5b611bb784848484611f74565b50505050565b6000838311158290611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc91906125dc565b60405180910390fd5b5060008385611c149190612fc0565b9050809150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b5050565b6000600554821115611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90613066565b60405180910390fd5b6000611cde611fa1565b9050611cf38184611fcc90919063ffffffff16565b915050919050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3357611d32613086565b5b604051908082528060200260200182016040528015611d615781602001602082028036833780820191505090505b5090503081600081518110611d7957611d78612ace565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4491906130ca565b81600181518110611e5857611e57612ace565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebf30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611264565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f239594939291906131f0565b600060405180830381600087803b158015611f3d57600080fd5b505af1158015611f51573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b80611f8257611f81612016565b5b611f8d848484612035565b80611f9b57611f9a6121ed565b5b50505050565b6000806000611fae6121f8565b91509150611fc58183611fcc90919063ffffffff16565b9250505090565b600061200e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061220f565b905092915050565b600060075403156120335760075460068190555060006007819055505b565b60008060008061204485612272565b935093509350935061209e84600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213383600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230b90919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217f81612369565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121dc919061279b565b60405180910390a350505050505050565b600654600781905550565b60008060055467016345785d8a0000915091509091565b60008083118290612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d91906125dc565b60405180910390fd5b50600083856122659190613279565b9050809150509392505050565b60008060008060008061228787600754612426565b915091506000612295611fa1565b90506000806122a58a8585612479565b9150915081818686985098509850985050505050509193509193565b600061230383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbd565b905092915050565b600080828461231a9190612f20565b90508381101561235f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612356906132f6565b60405180910390fd5b8091505092915050565b6000612373611fa1565b9050600061238a82846124d290919063ffffffff16565b90506123de81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230b90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000806000612451606461244386886124d290919063ffffffff16565b611fcc90919063ffffffff16565b9050600061246882876122c190919063ffffffff16565b905080829350935050509250929050565b600080600061249184876124d290919063ffffffff16565b905060006124a885876124d290919063ffffffff16565b905060006124bf82846122c190919063ffffffff16565b9050828194509450505050935093915050565b60008083036124e45760009050612546565b600082846124f29190613316565b90508284826125019190613279565b14612541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612538906133ca565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561258657808201518184015260208101905061256b565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ae8261254c565b6125b88185612557565b93506125c8818560208601612568565b6125d181612592565b840191505092915050565b600060208201905081810360008301526125f681846125a3565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263382612608565b9050919050565b61264381612628565b811461264e57600080fd5b50565b6000813590506126608161263a565b92915050565b6000819050919050565b61267981612666565b811461268457600080fd5b50565b60008135905061269681612670565b92915050565b600080604083850312156126b3576126b26125fe565b5b60006126c185828601612651565b92505060206126d285828601612687565b9150509250929050565b60008115159050919050565b6126f1816126dc565b82525050565b600060208201905061270c60008301846126e8565b92915050565b6000819050919050565b600061273761273261272d84612608565b612712565b612608565b9050919050565b60006127498261271c565b9050919050565b600061275b8261273e565b9050919050565b61276b81612750565b82525050565b60006020820190506127866000830184612762565b92915050565b61279581612666565b82525050565b60006020820190506127b0600083018461278c565b92915050565b6000806000606084860312156127cf576127ce6125fe565b5b60006127dd86828701612651565b93505060206127ee86828701612651565b92505060406127ff86828701612687565b9150509250925092565b600060ff82169050919050565b61281f81612809565b82525050565b600060208201905061283a6000830184612816565b92915050565b600060208284031215612856576128556125fe565b5b600061286484828501612687565b91505092915050565b61287681612628565b82525050565b6000602082019050612891600083018461286d565b92915050565b600080604083850312156128ae576128ad6125fe565b5b60006128bc85828601612687565b92505060206128cd85828601612687565b9150509250929050565b6000602082840312156128ed576128ec6125fe565b5b60006128fb84828501612651565b91505092915050565b61290d816126dc565b811461291857600080fd5b50565b60008135905061292a81612904565b92915050565b600060208284031215612946576129456125fe565b5b60006129548482850161291b565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129825761298161295d565b5b8235905067ffffffffffffffff81111561299f5761299e612962565b5b6020830191508360208202830111156129bb576129ba612967565b5b9250929050565b6000806000604084860312156129db576129da6125fe565b5b600084013567ffffffffffffffff8111156129f9576129f8612603565b5b612a058682870161296c565b93509350506020612a188682870161291b565b9150509250925092565b60008060408385031215612a3957612a386125fe565b5b6000612a4785828601612651565b9250506020612a5885828601612651565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a98602083612557565b9150612aa382612a62565b602082019050919050565b60006020820190508181036000830152612ac781612a8b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3782612666565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6957612b68612afd565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bd0602683612557565b9150612bdb82612b74565b604082019050919050565b60006020820190508181036000830152612bff81612bc3565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000612c3c601f83612557565b9150612c4782612c06565b602082019050919050565b60006020820190508181036000830152612c6b81612c2f565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612ca8601d83612557565b9150612cb382612c72565b602082019050919050565b60006020820190508181036000830152612cd781612c9b565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000612d14601f83612557565b9150612d1f82612cde565b602082019050919050565b60006020820190508181036000830152612d4381612d07565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612d80601d83612557565b9150612d8b82612d4a565b602082019050919050565b60006020820190508181036000830152612daf81612d73565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612dec601b83612557565b9150612df782612db6565b602082019050919050565b60006020820190508181036000830152612e1b81612ddf565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000612e7e602e83612557565b9150612e8982612e22565b604082019050919050565b60006020820190508181036000830152612ead81612e71565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b6000612eea601e83612557565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b6000612f2b82612666565b9150612f3683612666565b9250828201905080821115612f4e57612f4d612afd565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b6000612f8a601a83612557565b9150612f9582612f54565b602082019050919050565b60006020820190508181036000830152612fb981612f7d565b9050919050565b6000612fcb82612666565b9150612fd683612666565b9250828203905081811115612fee57612fed612afd565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000613050602c83612557565b915061305b82612ff4565b604082019050919050565b6000602082019050818103600083015261307f81613043565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506130c48161263a565b92915050565b6000602082840312156130e0576130df6125fe565b5b60006130ee848285016130b5565b91505092915050565b6000819050919050565b600061311c613117613112846130f7565b612712565b612666565b9050919050565b61312c81613101565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61316781612628565b82525050565b6000613179838361315e565b60208301905092915050565b6000602082019050919050565b600061319d82613132565b6131a7818561313d565b93506131b28361314e565b8060005b838110156131e35781516131ca888261316d565b97506131d583613185565b9250506001810190506131b6565b5085935050505092915050565b600060a082019050613205600083018861278c565b6132126020830187613123565b81810360408301526132248186613192565b9050613233606083018561286d565b613240608083018461278c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328482612666565b915061328f83612666565b92508261329f5761329e61324a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132e0601b83612557565b91506132eb826132aa565b602082019050919050565b6000602082019050818103600083015261330f816132d3565b9050919050565b600061332182612666565b915061332c83612666565b925082820261333a81612666565b9150828204841483151761335157613350612afd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133b4602183612557565b91506133bf82613358565b604082019050919050565b600060208201905081810360008301526133e3816133a7565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207c7e1738ef891a046c170839db4829358aec56d77cf0a8f4f82f54775f6f48ea64736f6c63430008120033