6080604052662386f26fc100006000196200001b919062000725565b6000196200002a91906200078c565b600655600060085560196009556000600a556019600b55600a54600c55600b54600d55600c54600e55600d54600f5573cc0c371c9e5891dbe5937d5f94bccf83171f9184601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cc0c371c9e5891dbe5937d5f94bccf83171f9184601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555065b5e620f4800060165565b5e620f48000601755655af3107a40006018553480156200017e57600080fd5b50600062000191620006bb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000246620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000350919062000831565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003de919062000831565b6040518363ffffffff1660e01b8152600401620003fd92919062000874565b6020604051808303816000875af11580156200041d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000443919062000831565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000499620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000646620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620006ac9190620008b2565b60405180910390a350620008cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073282620006ec565b91506200073f83620006ec565b925082620007525762000751620006f6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079982620006ec565b9150620007a683620006ec565b9250828203905081811115620007c157620007c06200075d565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f982620007cc565b9050919050565b6200080b81620007ec565b81146200081757600080fd5b50565b6000815190506200082b8162000800565b92915050565b6000602082840312156200084a5762000849620007c7565b5b60006200085a848285016200081a565b91505092915050565b6200086e81620007ec565b82525050565b60006040820190506200088b600083018562000863565b6200089a602083018462000863565b9392505050565b620008ac81620006ec565b82525050565b6000602082019050620008c96000830184620008a1565b92915050565b613dec80620008df6000396000f3fe6080604052600436106101d15760003560e01c80638da5cb5b116100f7578063a46c5cd511610095578063c492f04611610064578063c492f0461461065d578063dd62ed3e14610686578063ea1644d5146106c3578063f2fde38b146106ec576101d8565b8063a46c5cd5146105a3578063a9059cbb146105cc578063bfd7928414610609578063c3c8cd8014610646576101d8565b806395d89b41116100d157806395d89b41146104fd57806398a5c31514610528578063a218ef4014610551578063a2a957bb1461057a576101d8565b80638da5cb5b1461047e5780638f70ccf7146104a95780638f9a55c0146104d2576101d8565b806349bd5a5e1161016f578063715018a61161013e578063715018a6146103d657806374010ece146103ed5780637d1db4a5146104165780637f2feddc14610441576101d8565b806349bd5a5e1461032e5780636d8aa8f8146103595780636fc3eaec1461038257806370a0823114610399576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610715565b6040516101ff9190612bf6565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612cc0565b610735565b60405161023c9190612d1b565b60405180910390f35b34801561025157600080fd5b5061025a610753565b6040516102679190612d95565b60405180910390f35b34801561027c57600080fd5b50610285610779565b6040516102929190612dbf565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612dda565b610788565b6040516102cf9190612d1b565b60405180910390f35b3480156102e457600080fd5b506102ed610861565b6040516102fa9190612dbf565b60405180910390f35b34801561030f57600080fd5b50610318610867565b6040516103259190612e49565b60405180910390f35b34801561033a57600080fd5b50610343610870565b6040516103509190612e73565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190612eba565b610896565b005b34801561038e57600080fd5b50610397610948565b005b3480156103a557600080fd5b506103c060048036038101906103bb9190612ee7565b610a19565b6040516103cd9190612dbf565b60405180910390f35b3480156103e257600080fd5b506103eb610a6a565b005b3480156103f957600080fd5b50610414600480360381019061040f9190612f14565b610bbd565b005b34801561042257600080fd5b5061042b610c5c565b6040516104389190612dbf565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190612ee7565b610c62565b6040516104759190612dbf565b60405180910390f35b34801561048a57600080fd5b50610493610c7a565b6040516104a09190612e73565b60405180910390f35b3480156104b557600080fd5b506104d060048036038101906104cb9190612eba565b610ca3565b005b3480156104de57600080fd5b506104e7610d55565b6040516104f49190612dbf565b60405180910390f35b34801561050957600080fd5b50610512610d5b565b60405161051f9190612bf6565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190612f14565b610d98565b005b34801561055d57600080fd5b5061057860048036038101906105739190612ee7565b610e37565b005b34801561058657600080fd5b506105a1600480360381019061059c9190612f41565b610f27565b005b3480156105af57600080fd5b506105ca60048036038101906105c591906130f0565b610fde565b005b3480156105d857600080fd5b506105f360048036038101906105ee9190612cc0565b611108565b6040516106009190612d1b565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b9190612ee7565b611126565b60405161063d9190612d1b565b60405180910390f35b34801561065257600080fd5b5061065b611146565b005b34801561066957600080fd5b50610684600480360381019061067f9190613194565b61121f565b005b34801561069257600080fd5b506106ad60048036038101906106a891906131f4565b611359565b6040516106ba9190612dbf565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612f14565b6113e0565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612ee7565b61147f565b005b60606040518060c00160405280608b8152602001613d04608b9139905090565b6000610749610742611640565b8484611648565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b6000610795848484611811565b610856846107a1611640565b61085185604051806060016040528060288152602001613d8f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610807611640565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120949092919063ffffffff16565b611648565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61089e611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092290613280565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610989611640565b73ffffffffffffffffffffffffffffffffffffffff1614806109ff5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e7611640565b73ffffffffffffffffffffffffffffffffffffffff16145b610a0857600080fd5b6000479050610a16816120f8565b50565b6000610a63600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612164565b9050919050565b610a72611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690613280565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bc5611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990613280565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cab611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90613280565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600d81526020017f4655434b53484942415249554d00000000000000000000000000000000000000815250905090565b610da0611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490613280565b60405180910390fd5b8060188190555050565b610e3f611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec390613280565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f2f611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb390613280565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b610fe6611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90613280565b60405180910390fd5b60005b815181101561110457600160106000848481518110611098576110976132a0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110fc906132fe565b915050611076565b5050565b600061111c611115611640565b8484611811565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611187611640565b73ffffffffffffffffffffffffffffffffffffffff1614806111fd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111e5611640565b73ffffffffffffffffffffffffffffffffffffffff16145b61120657600080fd5b600061121130610a19565b905061121c816121d2565b50565b611227611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab90613280565b60405180910390fd5b60005b838390508110156113535781600560008686858181106112da576112d96132a0565b5b90506020020160208101906112ef9190612ee7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061134b906132fe565b9150506112b7565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113e8611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90613280565b60405180910390fd5b8060178190555050565b611487611640565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90613280565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157a906133b8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ae9061344a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d906134dc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118049190612dbf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118779061356e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e690613600565b60405180910390fd5b60008111611932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192990613692565b60405180910390fd5b61193a610c7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119a85750611978610c7a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d9357601560149054906101000a900460ff16611a37576119c9610c7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2d90613724565b60405180910390fd5b5b601654811115611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7390613790565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b205750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5690613822565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c0c5760175481611bc184610a19565b611bcb9190613842565b10611c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c02906138e8565b60405180910390fd5b5b6000611c1730610a19565b9050600060185482101590506016548210611c325760165491505b808015611c4a575060158054906101000a900460ff16155b8015611ca45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cbc5750601560169054906101000a900460ff165b8015611d125750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d685750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d9057611d76826121d2565b60004790506000811115611d8e57611d8d476120f8565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e3a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611eed5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611eec5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611efb5760009050612082565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fa65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fbe57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120695750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208157600a54600c81905550600b54600d819055505b5b61208e84848484612449565b50505050565b60008383111582906120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d39190612bf6565b60405180910390fd5b50600083856120eb9190613908565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612160573d6000803e3d6000fd5b5050565b60006006548211156121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a2906139ae565b60405180910390fd5b60006121b5612476565b90506121ca81846124a190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561220957612208612fad565b5b6040519080825280602002602001820160405280156122375781602001602082028036833780820191505090505b509050308160008151811061224f5761224e6132a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231a91906139e3565b8160018151811061232e5761232d6132a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061239530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611648565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123f9959493929190613b09565b600060405180830381600087803b15801561241357600080fd5b505af1158015612427573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612457576124566124eb565b5b612462848484612528565b806124705761246f6126f3565b5b50505050565b6000806000612483612707565b9150915061249a81836124a190919063ffffffff16565b9250505090565b60006124e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612763565b905092915050565b6000600c541480156124ff57506000600d54145b61252657600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061253a876127c6565b95509550955095509550955061259886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262d85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612679816128d6565b6126838483612993565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126e09190612dbf565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc100009050612739662386f26fc100006006546124a190919063ffffffff16565b82101561275657600654662386f26fc1000093509350505061275f565b81819350935050505b9091565b600080831182906127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a19190612bf6565b60405180910390fd5b50600083856127b99190613b92565b9050809150509392505050565b60008060008060008060008060006127e38a600c54600d546129cd565b92509250925060006127f3612476565b905060008060006128068e878787612a63565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061287083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612094565b905092915050565b60008082846128879190613842565b9050838110156128cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c390613c0f565b60405180910390fd5b8091505092915050565b60006128e0612476565b905060006128f78284612aec90919063ffffffff16565b905061294b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129a88260065461282e90919063ffffffff16565b6006819055506129c38160075461287890919063ffffffff16565b6007819055505050565b6000806000806129f960646129eb888a612aec90919063ffffffff16565b6124a190919063ffffffff16565b90506000612a236064612a15888b612aec90919063ffffffff16565b6124a190919063ffffffff16565b90506000612a4c82612a3e858c61282e90919063ffffffff16565b61282e90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a7c8589612aec90919063ffffffff16565b90506000612a938689612aec90919063ffffffff16565b90506000612aaa8789612aec90919063ffffffff16565b90506000612ad382612ac5858761282e90919063ffffffff16565b61282e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612afe5760009050612b60565b60008284612b0c9190613c2f565b9050828482612b1b9190613b92565b14612b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5290613ce3565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ba0578082015181840152602081019050612b85565b60008484015250505050565b6000601f19601f8301169050919050565b6000612bc882612b66565b612bd28185612b71565b9350612be2818560208601612b82565b612beb81612bac565b840191505092915050565b60006020820190508181036000830152612c108184612bbd565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c5782612c2c565b9050919050565b612c6781612c4c565b8114612c7257600080fd5b50565b600081359050612c8481612c5e565b92915050565b6000819050919050565b612c9d81612c8a565b8114612ca857600080fd5b50565b600081359050612cba81612c94565b92915050565b60008060408385031215612cd757612cd6612c22565b5b6000612ce585828601612c75565b9250506020612cf685828601612cab565b9150509250929050565b60008115159050919050565b612d1581612d00565b82525050565b6000602082019050612d306000830184612d0c565b92915050565b6000819050919050565b6000612d5b612d56612d5184612c2c565b612d36565b612c2c565b9050919050565b6000612d6d82612d40565b9050919050565b6000612d7f82612d62565b9050919050565b612d8f81612d74565b82525050565b6000602082019050612daa6000830184612d86565b92915050565b612db981612c8a565b82525050565b6000602082019050612dd46000830184612db0565b92915050565b600080600060608486031215612df357612df2612c22565b5b6000612e0186828701612c75565b9350506020612e1286828701612c75565b9250506040612e2386828701612cab565b9150509250925092565b600060ff82169050919050565b612e4381612e2d565b82525050565b6000602082019050612e5e6000830184612e3a565b92915050565b612e6d81612c4c565b82525050565b6000602082019050612e886000830184612e64565b92915050565b612e9781612d00565b8114612ea257600080fd5b50565b600081359050612eb481612e8e565b92915050565b600060208284031215612ed057612ecf612c22565b5b6000612ede84828501612ea5565b91505092915050565b600060208284031215612efd57612efc612c22565b5b6000612f0b84828501612c75565b91505092915050565b600060208284031215612f2a57612f29612c22565b5b6000612f3884828501612cab565b91505092915050565b60008060008060808587031215612f5b57612f5a612c22565b5b6000612f6987828801612cab565b9450506020612f7a87828801612cab565b9350506040612f8b87828801612cab565b9250506060612f9c87828801612cab565b91505092959194509250565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fe582612bac565b810181811067ffffffffffffffff8211171561300457613003612fad565b5b80604052505050565b6000613017612c18565b90506130238282612fdc565b919050565b600067ffffffffffffffff82111561304357613042612fad565b5b602082029050602081019050919050565b600080fd5b600061306c61306784613028565b61300d565b9050808382526020820190506020840283018581111561308f5761308e613054565b5b835b818110156130b857806130a48882612c75565b845260208401935050602081019050613091565b5050509392505050565b600082601f8301126130d7576130d6612fa8565b5b81356130e7848260208601613059565b91505092915050565b60006020828403121561310657613105612c22565b5b600082013567ffffffffffffffff81111561312457613123612c27565b5b613130848285016130c2565b91505092915050565b600080fd5b60008083601f84011261315457613153612fa8565b5b8235905067ffffffffffffffff81111561317157613170613139565b5b60208301915083602082028301111561318d5761318c613054565b5b9250929050565b6000806000604084860312156131ad576131ac612c22565b5b600084013567ffffffffffffffff8111156131cb576131ca612c27565b5b6131d78682870161313e565b935093505060206131ea86828701612ea5565b9150509250925092565b6000806040838503121561320b5761320a612c22565b5b600061321985828601612c75565b925050602061322a85828601612c75565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061326a602083612b71565b915061327582613234565b602082019050919050565b600060208201905081810360008301526132998161325d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061330982612c8a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361333b5761333a6132cf565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133a2602683612b71565b91506133ad82613346565b604082019050919050565b600060208201905081810360008301526133d181613395565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613434602483612b71565b915061343f826133d8565b604082019050919050565b6000602082019050818103600083015261346381613427565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134c6602283612b71565b91506134d18261346a565b604082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613558602583612b71565b9150613563826134fc565b604082019050919050565b600060208201905081810360008301526135878161354b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006135ea602383612b71565b91506135f58261358e565b604082019050919050565b60006020820190508181036000830152613619816135dd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061367c602983612b71565b915061368782613620565b604082019050919050565b600060208201905081810360008301526136ab8161366f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061370e603f83612b71565b9150613719826136b2565b604082019050919050565b6000602082019050818103600083015261373d81613701565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061377a601c83612b71565b915061378582613744565b602082019050919050565b600060208201905081810360008301526137a98161376d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061380c602383612b71565b9150613817826137b0565b604082019050919050565b6000602082019050818103600083015261383b816137ff565b9050919050565b600061384d82612c8a565b915061385883612c8a565b92508282019050808211156138705761386f6132cf565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006138d2602383612b71565b91506138dd82613876565b604082019050919050565b60006020820190508181036000830152613901816138c5565b9050919050565b600061391382612c8a565b915061391e83612c8a565b9250828203905081811115613936576139356132cf565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613998602a83612b71565b91506139a38261393c565b604082019050919050565b600060208201905081810360008301526139c78161398b565b9050919050565b6000815190506139dd81612c5e565b92915050565b6000602082840312156139f9576139f8612c22565b5b6000613a07848285016139ce565b91505092915050565b6000819050919050565b6000613a35613a30613a2b84613a10565b612d36565b612c8a565b9050919050565b613a4581613a1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a8081612c4c565b82525050565b6000613a928383613a77565b60208301905092915050565b6000602082019050919050565b6000613ab682613a4b565b613ac08185613a56565b9350613acb83613a67565b8060005b83811015613afc578151613ae38882613a86565b9750613aee83613a9e565b925050600181019050613acf565b5085935050505092915050565b600060a082019050613b1e6000830188612db0565b613b2b6020830187613a3c565b8181036040830152613b3d8186613aab565b9050613b4c6060830185612e64565b613b596080830184612db0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b9d82612c8a565b9150613ba883612c8a565b925082613bb857613bb7613b63565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613bf9601b83612b71565b9150613c0482613bc3565b602082019050919050565b60006020820190508181036000830152613c2881613bec565b9050919050565b6000613c3a82612c8a565b9150613c4583612c8a565b9250828202613c5381612c8a565b91508282048414831517613c6a57613c696132cf565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ccd602183612b71565b9150613cd882613c71565b604082019050919050565b60006020820190508181036000830152613cfc81613cc0565b905091905056fe4675636b2053686962617269756d20416e64204675636b20536879746f7368692c2049206f6e6c792077616e7420746f205072696e74206d616e203a282c206e6f772049277665206c6f7374206d79206c69666520736176696e677320616e64206920646f6e2774206b6e6f77207768617420746f20646f20416e64206920616d20736f206c6f7374202045524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e0ac018d37ea30f2d36f8adf9082faadd34e19ec755d5e94598e65446359315a64736f6c63430008110033