0x60a06040526040518060400160405280600c81526020017f53616b616d75726120496e750000000000000000000000000000000000000000815250600290805190602001906200005192919062000a49565b506040518060400160405280600481526020017f53414b4100000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000a49565b506009600460006101000a81548160ff021916908360ff16021790555073c7103f974315a9c579d6298c7d6829dcb96c0de5600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c7103f974315a9c579d6298c7d6829dcb96c0de5600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506000600c556005600d556000600e556000600f55600560105560006011556000601255600a601355600060145560056015556005601655600a601755670de0b6b3a76400006018556018546019556103e86011601854620001fd919062000b32565b62000209919062000bc2565b601a556103e8600360185462000220919062000b32565b6200022c919062000bc2565b601b556001601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055503480156200028d57600080fd5b506000620002a062000a1860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039e57600080fd5b505afa158015620003b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d9919062000c64565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043c57600080fd5b505afa15801562000451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000477919062000c64565b6040518363ffffffff1660e01b81526004016200049692919062000ca7565b602060405180830381600087803b158015620004b157600080fd5b505af1158015620004c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ec919062000c64565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200062862000a2060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620006e762000a2060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006200082062000a2060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601854600660006200095a62000a1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620009a862000a1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000a09919062000ce5565b60405180910390a35062000d67565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000a579062000d31565b90600052602060002090601f01602090048101928262000a7b576000855562000ac7565b82601f1062000a9657805160ff191683800117855562000ac7565b8280016001018555821562000ac7579182015b8281111562000ac657825182559160200191906001019062000aa9565b5b50905062000ad6919062000ada565b5090565b5b8082111562000af557600081600090555060010162000adb565b5090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b3f8262000af9565b915062000b4c8362000af9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b885762000b8762000b03565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bcf8262000af9565b915062000bdc8362000af9565b92508262000bef5762000bee62000b93565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c2c8262000bff565b9050919050565b62000c3e8162000c1f565b811462000c4a57600080fd5b50565b60008151905062000c5e8162000c33565b92915050565b60006020828403121562000c7d5762000c7c62000bfa565b5b600062000c8d8482850162000c4d565b91505092915050565b62000ca18162000c1f565b82525050565b600060408201905062000cbe600083018562000c96565b62000ccd602083018462000c96565b9392505050565b62000cdf8162000af9565b82525050565b600060208201905062000cfc600083018462000cd4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d4a57607f821691505b6020821081141562000d615762000d6062000d02565b5b50919050565b60805161378a62000d8a60003960008181610f180152610f44015261378a6000f3fe6080604052600436106102765760003560e01c806370a082311161014f578063c78a789b116100c1578063f0cd1dac1161007a578063f0cd1dac146109a7578063f1d5f517146109d2578063f2fde38b146109fb578063f429389014610a24578063f872858a14610a3b578063fabf706314610a665761027d565b8063c78a789b14610883578063c816841b146108c0578063d76e26a3146108eb578063da00097d14610916578063dd62ed3e14610941578063e207a92b1461097e5761027d565b806395d89b411161011357806395d89b411461075d5780639e3fa32314610788578063a08e671f146107b3578063a457c2d7146107de578063a9059cbb1461081b578063b6c3af34146108585761027d565b806370a08231146106745780637d1db4a5146106b1578063807c2d9c146106dc57806382eefb43146107075780638da5cb5b146107325761027d565b80632f0a5fd4116101e857806355324fa9116101ac57806355324fa914610574578063565cec38146105b1578063646d4700146105dc578063661b6e36146106075780636e4ee81114610632578063705f9d74146106495761027d565b80632f0a5fd414610479578063313ce567146104a457806339509351146104cf5780634a74bb021461050c578063526012e8146105375761027d565b80631d865c301161023a5780631d865c301461036957806323b872dd1461039257806325519cf2146103cf57806327c8f835146103f85780632b112e49146104235780632df671091461044e5761027d565b806306fdde0314610282578063095ea7b3146102ad5780630fe1203c146102ea5780631694505e1461031357806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610aa3565b6040516102a49190612ac4565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612b7f565b610b35565b6040516102e19190612bda565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612bf5565b610b53565b005b34801561031f57600080fd5b50610328610c2c565b6040516103359190612c81565b60405180910390f35b34801561034a57600080fd5b50610353610c52565b6040516103609190612cab565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b9190612cc6565b610c5c565b005b34801561039e57600080fd5b506103b960048036038101906103b49190612d19565b610d4c565b6040516103c69190612bda565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190612cc6565b610e26565b005b34801561040457600080fd5b5061040d610f16565b60405161041a9190612d7b565b60405180910390f35b34801561042f57600080fd5b50610438610f3a565b6040516104459190612cab565b60405180910390f35b34801561045a57600080fd5b50610463610f7e565b6040516104709190612cab565b60405180910390f35b34801561048557600080fd5b5061048e610f84565b60405161049b9190612cab565b60405180910390f35b3480156104b057600080fd5b506104b9610f8a565b6040516104c69190612db2565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f19190612b7f565b610fa1565b6040516105039190612bda565b60405180910390f35b34801561051857600080fd5b50610521611054565b60405161052e9190612bda565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190612bf5565b611067565b60405161056b9190612bda565b60405180910390f35b34801561058057600080fd5b5061059b60048036038101906105969190612bf5565b611087565b6040516105a89190612bda565b60405180910390f35b3480156105bd57600080fd5b506105c66110a7565b6040516105d39190612cab565b60405180910390f35b3480156105e857600080fd5b506105f16110ad565b6040516105fe9190612cab565b60405180910390f35b34801561061357600080fd5b5061061c6110b3565b6040516106299190612cab565b60405180910390f35b34801561063e57600080fd5b506106476110b9565b005b34801561065557600080fd5b5061065e61120c565b60405161066b9190612cab565b60405180910390f35b34801561068057600080fd5b5061069b60048036038101906106969190612bf5565b611212565b6040516106a89190612cab565b60405180910390f35b3480156106bd57600080fd5b506106c661125b565b6040516106d39190612cab565b60405180910390f35b3480156106e857600080fd5b506106f1611261565b6040516106fe9190612cab565b60405180910390f35b34801561071357600080fd5b5061071c611267565b6040516107299190612cab565b60405180910390f35b34801561073e57600080fd5b5061074761126d565b6040516107549190612d7b565b60405180910390f35b34801561076957600080fd5b50610772611296565b60405161077f9190612ac4565b60405180910390f35b34801561079457600080fd5b5061079d611328565b6040516107aa9190612cab565b60405180910390f35b3480156107bf57600080fd5b506107c861132e565b6040516107d59190612cab565b60405180910390f35b3480156107ea57600080fd5b5061080560048036038101906108009190612b7f565b611334565b6040516108129190612bda565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d9190612b7f565b611401565b60405161084f9190612bda565b60405180910390f35b34801561086457600080fd5b5061086d611420565b60405161087a9190612cab565b60405180910390f35b34801561088f57600080fd5b506108aa60048036038101906108a59190612bf5565b611426565b6040516108b79190612bda565b60405180910390f35b3480156108cc57600080fd5b506108d5611446565b6040516108e29190612d7b565b60405180910390f35b3480156108f757600080fd5b5061090061146c565b60405161090d9190612cab565b60405180910390f35b34801561092257600080fd5b5061092b611472565b6040516109389190612bda565b60405180910390f35b34801561094d57600080fd5b5061096860048036038101906109639190612dcd565b611485565b6040516109759190612cab565b60405180910390f35b34801561098a57600080fd5b506109a560048036038101906109a09190612bf5565b61150c565b005b3480156109b357600080fd5b506109bc6115fc565b6040516109c99190612cab565b60405180910390f35b3480156109de57600080fd5b506109f960048036038101906109f49190612e0d565b611602565b005b348015610a0757600080fd5b50610a226004803603810190610a1d9190612bf5565b6116a1565b005b348015610a3057600080fd5b50610a39611863565b005b348015610a4757600080fd5b50610a50611891565b604051610a5d9190612bda565b60405180910390f35b348015610a7257600080fd5b50610a8d6004803603810190610a889190612bf5565b6118a4565b604051610a9a9190612bda565b60405180910390f35b606060028054610ab290612e69565b80601f0160208091040260200160405190810160405280929190818152602001828054610ade90612e69565b8015610b2b5780601f10610b0057610100808354040283529160200191610b2b565b820191906000526020600020905b815481529060010190602001808311610b0e57829003601f168201915b5050505050905090565b6000610b49610b426118c4565b84846118cc565b6001905092915050565b610b5b6118c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90612ee7565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610c646118c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce890612ee7565b60405180910390fd5b82600f819055508160108190555080601181905550610d31601154610d23601054600f54611a9790919063ffffffff16565b611a9790919063ffffffff16565b60168190555060056016541115610d4757600080fd5b505050565b6000610d59848484611af5565b50610e1b84610d666118c4565b610e168560405180606001604052806028815260200161370860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dcc6118c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121019092919063ffffffff16565b6118cc565b600190509392505050565b610e2e6118c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb290612ee7565b60405180910390fd5b82600c8190555081600d8190555080600e81905550610efb600e54610eed600d54600c54611a9790919063ffffffff16565b611a9790919063ffffffff16565b60158190555060056015541115610f1157600080fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f79610f687f0000000000000000000000000000000000000000000000000000000000000000611212565b60185461216590919063ffffffff16565b905090565b600d5481565b600f5481565b6000600460009054906101000a900460ff16905090565b600061104a610fae6118c4565b846110458560076000610fbf6118c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9790919063ffffffff16565b6118cc565b6001905092915050565b601d60159054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60135481565b60115481565b60105481565b6110c16118c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612ee7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546112a590612e69565b80601f01602080910402602001604051908101604052809291908181526020018280546112d190612e69565b801561131e5780601f106112f35761010080835404028352916020019161131e565b820191906000526020600020905b81548152906001019060200180831161130157829003601f168201915b5050505050905090565b60125481565b60175481565b60006113f76113416118c4565b846113f285604051806060016040528060258152602001613730602591396007600061136b6118c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121019092919063ffffffff16565b6118cc565b6001905092915050565b600061141561140e6118c4565b8484611af5565b506001905092915050565b600c5481565b600a6020528060005260406000206000915054906101000a900460ff1681565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115146118c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159890612ee7565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60155481565b61160a6118c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90612ee7565b60405180910390fd5b80601a8190555050565b6116a96118c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d90612ee7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90612f79565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61188f600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16476121af565b565b601d60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561193c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119339061300b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a39061309d565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a8a9190612cab565b60405180910390a3505050565b6000808284611aa691906130ec565b905083811015611aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae29061318e565b60405180910390fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5d90613220565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd906132b2565b60405180910390fd5b601d60149054906101000a900460ff1615611bfd57611bf68484846121fa565b90506120fa565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ca15750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cec57601954821115611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290613344565b60405180910390fd5b5b6000611cf730611212565b90506000601b5482101590506002601b54611d129190613364565b8210611d2a576002601b54611d279190613364565b91505b808015611d445750601d60149054906101000a900460ff16155b8015611d9a5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db25750601d60159054906101000a900460ff165b15611ddc57601d60169054906101000a900460ff1615611dd257601b5491505b611ddb826123cd565b5b611e65846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121019092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f4b5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f5f57611f5a878787612451565b611f61565b845b9050601d60179054906101000a900460ff168015611fc95750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ff857601a54611fec82611fde89611212565b611a9790919063ffffffff16565b1115611ff757600080fd5b5b61204a81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9790919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120ea9190612cab565b60405180910390a3600193505050505b9392505050565b6000838311158290612149576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121409190612ac4565b60405180910390fd5b506000838561215891906133be565b9050809150509392505050565b60006121a783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612101565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121f5573d6000803e3d6000fd5b505050565b6000612285826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121019092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061231a82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ba9190612cab565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff0219169083151502179055506123f181612678565b600047905066b1a2bc2ec5000081111561243257612431600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826121af565b5b506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124d9576124d260646124c46015548661290390919063ffffffff16565b61297e90919063ffffffff16565b9050612557565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125565761255360646125456016548661290390919063ffffffff16565b61297e90919063ffffffff16565b90505b5b600081111561265b576125b281600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126529190612cab565b60405180910390a35b61266e818461216590919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115612695576126946133f2565b5b6040519080825280602002602001820160405280156126c35781602001602082028036833780820191505090505b50905030816000815181106126db576126da613421565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561277d57600080fd5b505afa158015612791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b59190613465565b816001815181106127c9576127c8613421565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061283030601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118cc565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161289495949392919061358b565b600060405180830381600087803b1580156128ae57600080fd5b505af11580156128c2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516128f79291906135e5565b60405180910390a15050565b6000808314156129165760009050612978565b600082846129249190613364565b90508284826129339190613644565b14612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296a906136e7565b60405180910390fd5b809150505b92915050565b60006129c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129c8565b905092915050565b60008083118290612a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a069190612ac4565b60405180910390fd5b5060008385612a1e9190613644565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a65578082015181840152602081019050612a4a565b83811115612a74576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9682612a2b565b612aa08185612a36565b9350612ab0818560208601612a47565b612ab981612a7a565b840191505092915050565b60006020820190508181036000830152612ade8184612a8b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1682612aeb565b9050919050565b612b2681612b0b565b8114612b3157600080fd5b50565b600081359050612b4381612b1d565b92915050565b6000819050919050565b612b5c81612b49565b8114612b6757600080fd5b50565b600081359050612b7981612b53565b92915050565b60008060408385031215612b9657612b95612ae6565b5b6000612ba485828601612b34565b9250506020612bb585828601612b6a565b9150509250929050565b60008115159050919050565b612bd481612bbf565b82525050565b6000602082019050612bef6000830184612bcb565b92915050565b600060208284031215612c0b57612c0a612ae6565b5b6000612c1984828501612b34565b91505092915050565b6000819050919050565b6000612c47612c42612c3d84612aeb565b612c22565b612aeb565b9050919050565b6000612c5982612c2c565b9050919050565b6000612c6b82612c4e565b9050919050565b612c7b81612c60565b82525050565b6000602082019050612c966000830184612c72565b92915050565b612ca581612b49565b82525050565b6000602082019050612cc06000830184612c9c565b92915050565b600080600060608486031215612cdf57612cde612ae6565b5b6000612ced86828701612b6a565b9350506020612cfe86828701612b6a565b9250506040612d0f86828701612b6a565b9150509250925092565b600080600060608486031215612d3257612d31612ae6565b5b6000612d4086828701612b34565b9350506020612d5186828701612b34565b9250506040612d6286828701612b6a565b9150509250925092565b612d7581612b0b565b82525050565b6000602082019050612d906000830184612d6c565b92915050565b600060ff82169050919050565b612dac81612d96565b82525050565b6000602082019050612dc76000830184612da3565b92915050565b60008060408385031215612de457612de3612ae6565b5b6000612df285828601612b34565b9250506020612e0385828601612b34565b9150509250929050565b600060208284031215612e2357612e22612ae6565b5b6000612e3184828501612b6a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e8157607f821691505b60208210811415612e9557612e94612e3a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ed1602083612a36565b9150612edc82612e9b565b602082019050919050565b60006020820190508181036000830152612f0081612ec4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f63602683612a36565b9150612f6e82612f07565b604082019050919050565b60006020820190508181036000830152612f9281612f56565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ff5602483612a36565b915061300082612f99565b604082019050919050565b6000602082019050818103600083015261302481612fe8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613087602283612a36565b91506130928261302b565b604082019050919050565b600060208201905081810360008301526130b68161307a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130f782612b49565b915061310283612b49565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613137576131366130bd565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613178601b83612a36565b915061318382613142565b602082019050919050565b600060208201905081810360008301526131a78161316b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061320a602583612a36565b9150613215826131ae565b604082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061329c602383612a36565b91506132a782613240565b604082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061332e602883612a36565b9150613339826132d2565b604082019050919050565b6000602082019050818103600083015261335d81613321565b9050919050565b600061336f82612b49565b915061337a83612b49565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133b3576133b26130bd565b5b828202905092915050565b60006133c982612b49565b91506133d483612b49565b9250828210156133e7576133e66130bd565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061345f81612b1d565b92915050565b60006020828403121561347b5761347a612ae6565b5b600061348984828501613450565b91505092915050565b6000819050919050565b60006134b76134b26134ad84613492565b612c22565b612b49565b9050919050565b6134c78161349c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61350281612b0b565b82525050565b600061351483836134f9565b60208301905092915050565b6000602082019050919050565b6000613538826134cd565b61354281856134d8565b935061354d836134e9565b8060005b8381101561357e5781516135658882613508565b975061357083613520565b925050600181019050613551565b5085935050505092915050565b600060a0820190506135a06000830188612c9c565b6135ad60208301876134be565b81810360408301526135bf818661352d565b90506135ce6060830185612d6c565b6135db6080830184612c9c565b9695505050505050565b60006040820190506135fa6000830185612c9c565b818103602083015261360c818461352d565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364f82612b49565b915061365a83612b49565b92508261366a57613669613615565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136d1602183612a36565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122021a23b347841cab6fae8c1c777b64c00625407663b0c9e693dc7f24dd2dc2dfe64736f6c63430008090033