60806040526012600a62000014919062001726565b66038d7ea4c6800062000028919062001863565b60001962000037919062001998565b600019620000469190620018c4565b6004557375d9ea6fafdbedb2ce00b76622aa0df1b68caaf6600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507335ef633803ae3918f37571af741bc39ad11e3eaa600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fdaf289c815701d2b1b7b34340af584a9fabd2d8600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073641e8274ce7513e2df215fcad97515165019c497600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200024157600080fd5b5060016000620002566200068a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000620003066200068a60201b60201c565b905080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8560405160405180910390a350620003b56200069260201b60201c565b600454600c6000620003cc620007bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600062000420620007bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004e9620004dd620007bc60201b60201c565b620007e560201b60201c565b620004fa30620007e560201b60201c565b6200050a620007bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000569919062001726565b66038d7ea4c680006200057d919062001863565b6040516200058c919062001608565b60405180910390a3620005d78160286012600a620005ab919062001726565b66038d7ea4c68000620005bf919062001863565b620005cb919062001693565b6200098060201b60201c565b6200060a601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620007e560201b60201c565b6200063d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620007e560201b60201c565b506200068462000652620007bc60201b60201c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660001962000a0f60201b60201c565b62001b42565b600033905090565b620006a7600260143062000be260201b60201c565b620006de600160a0600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000be260201b60201c565b620007156003600a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000be260201b60201c565b6200074c6003600a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000be260201b60201c565b620007836003600a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000be260201b60201c565b620007ba6003600a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000be260201b60201c565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115620008c2576200087e600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000d5260201b60201c565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506011819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b81601360006101000a81548160ff02191690836002811115620009cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555062000a04601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000dd260201b60201c565b806016819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000a82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7990620015a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aec90620015e6565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000bd5919062001608565b60405180910390a3505050565b600a604051806080016040528085600481111562000c29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020016000815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548160ff0219169083600481111562000cd0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030155505081600b600082825462000d46919062001636565b92505081905550505050565b600060045482111562000d9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d9390620015c4565b60405180910390fd5b600062000dae6200103460201b60201c565b905062000dca81846200106e60201b62001fcd1790919060201c565b915050919050565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562000e1e57600080fd5b505afa15801562000e33573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e599190620014b2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ebc57600080fd5b505afa15801562000ed1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ef79190620014b2565b6040518363ffffffff1660e01b815260040162000f1692919062001575565b602060405180830381600087803b15801562000f3157600080fd5b505af115801562000f46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f6c9190620014b2565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167fc6b438e6a8a59579ce6a4406cbd203b740e0d47b458aae6596339bcd40c40d1560405160405180910390a25050565b6000806000620010496200108660201b60201c565b915091506200106781836200106e60201b62001fcd1790919060201c565b9250505090565b600081836200107e919062001693565b905092915050565b6000806000600454905060006012600a620010a2919062001726565b66038d7ea4c68000620010b6919062001863565b905060005b601180549050811015620013ef5782600c60006011848154811062001109577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806200121f575081600d600060118481548110620011b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1562001259576004546012600a62001238919062001726565b66038d7ea4c680006200124c919062001863565b945094505050506200147f565b62001317600c6000601184815481106200129c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846200148360201b62001fe31790919060201c565b9250620013d7600d6000601184815481106200135c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836200148360201b62001fe31790919060201c565b91508080620013e6906200194a565b915050620010bb565b5060008114806200143d57506200143a6012600a6200140f919062001726565b66038d7ea4c6800062001423919062001863565b6004546200106e60201b62001fcd1790919060201c565b82105b1562001476576004546012600a62001456919062001726565b66038d7ea4c680006200146a919062001863565b9350935050506200147f565b81819350935050505b9091565b60008183620014939190620018c4565b905092915050565b600081519050620014ac8162001b28565b92915050565b600060208284031215620014c557600080fd5b6000620014d5848285016200149b565b91505092915050565b620014e981620018ff565b82525050565b6000620014fe602b8362001625565b91506200150b8262001a3b565b604082019050919050565b600062001525602a8362001625565b9150620015328262001a8a565b604082019050919050565b60006200154c60298362001625565b9150620015598262001ad9565b604082019050919050565b6200156f8162001933565b82525050565b60006040820190506200158c6000830185620014de565b6200159b6020830184620014de565b9392505050565b60006020820190508181036000830152620015bd81620014ef565b9050919050565b60006020820190508181036000830152620015df8162001516565b9050919050565b6000602082019050818103600083015262001601816200153d565b9050919050565b60006020820190506200161f600083018462001564565b92915050565b600082825260208201905092915050565b6000620016438262001933565b9150620016508362001933565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620016885762001687620019d0565b5b828201905092915050565b6000620016a08262001933565b9150620016ad8362001933565b925082620016c057620016bf620019ff565b5b828204905092915050565b6000808291508390505b60018511156200171d57808604811115620016f557620016f4620019d0565b5b6001851615620017055780820291505b8081029050620017158562001a2e565b9450620016d5565b94509492505050565b6000620017338262001933565b915062001740836200193d565b92506200176f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001777565b905092915050565b6000826200178957600190506200185c565b816200179957600090506200185c565b8160018114620017b25760028114620017bd57620017f3565b60019150506200185c565b60ff841115620017d257620017d1620019d0565b5b8360020a915084821115620017ec57620017eb620019d0565b5b506200185c565b5060208310610133831016604e8410600b84101617156200182d5782820a905083811115620018275762001826620019d0565b5b6200185c565b6200183c8484846001620016cb565b92509050818404811115620018565762001855620019d0565b5b81810290505b9392505050565b6000620018708262001933565b91506200187d8362001933565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620018b957620018b8620019d0565b5b828202905092915050565b6000620018d18262001933565b9150620018de8362001933565b925082821015620018f457620018f3620019d0565b5b828203905092915050565b60006200190c8262001913565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000620019578262001933565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200198d576200198c620019d0565b5b600182019050919050565b6000620019a58262001933565b9150620019b28362001933565b925082620019c557620019c4620019ff565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b7f42617365526669546f6b656e3a20617070726f76652066726f6d20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f42617365526669546f6b656e3a20617070726f766520746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b62001b3381620018ff565b811462001b3f57600080fd5b50565b6151048062001b526000396000f3fe6080604052600436106101bb5760003560e01c80636612e66f116100ec578063a457c2d71161008a578063dd46706411610064578063dd4670641461063d578063dd62ed3e14610666578063e4edf852146106a3578063f2fde38b146106cc576101c2565b8063a457c2d7146105ac578063a69df4b5146105e9578063a9059cbb14610600576101c2565b806374778cdc116100c657806374778cdc146104f057806388f82020146105195780638da5cb5b1461055657806395d89b4114610581576101c2565b80636612e66f1461047357806370a082311461049c578063715018a6146104d9576101c2565b806341cb87fc11610159578063481c6a7511610133578063481c6a75146103b757806352390c02146103e25780635342acb41461040b578063602bc62b14610448576101c2565b806341cb87fc1461032857806342966c68146103515780634549b0391461037a576101c2565b806323b872dd1161019557806323b872dd1461025a578063313ce567146102975780633685d419146102c257806339509351146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106f5565b6040516101e99190614398565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190613f1b565b610732565b604051610226919061437d565b60405180910390f35b34801561023b57600080fd5b50610244610750565b604051610251919061465a565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c9190613e90565b610777565b60405161028e919061437d565b60405180910390f35b3480156102a357600080fd5b506102ac610850565b6040516102b99190614675565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190613e02565b610859565b005b3480156102f757600080fd5b50610312600480360381019061030d9190613f1b565b610c40565b60405161031f919061437d565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190613e02565b610cf3565b005b34801561035d57600080fd5b5061037860048036038101906103739190613f80565b610d96565b005b34801561038657600080fd5b506103a1600480360381019061039c9190613fa9565b61109f565b6040516103ae919061465a565b60405180910390f35b3480156103c357600080fd5b506103cc611151565b6040516103d99190614339565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190613e02565b61117b565b005b34801561041757600080fd5b50610432600480360381019061042d9190613e02565b6112a9565b60405161043f919061437d565b60405180910390f35b34801561045457600080fd5b5061045d6112ff565b60405161046a919061465a565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190613edf565b611309565b005b3480156104a857600080fd5b506104c360048036038101906104be9190613e02565b6113f9565b6040516104d0919061465a565b60405180910390f35b3480156104e557600080fd5b506104ee6114e4565b005b3480156104fc57600080fd5b5061051760048036038101906105129190613f57565b611637565b005b34801561052557600080fd5b50610540600480360381019061053b9190613e02565b6116eb565b60405161054d919061437d565b60405180910390f35b34801561056257600080fd5b5061056b611741565b6040516105789190614339565b60405180910390f35b34801561058d57600080fd5b5061059661176a565b6040516105a39190614398565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190613f1b565b6117a7565b6040516105e0919061437d565b60405180910390f35b3480156105f557600080fd5b506105fe611874565b005b34801561060c57600080fd5b5061062760048036038101906106229190613f1b565b611a48565b604051610634919061437d565b60405180910390f35b34801561064957600080fd5b50610664600480360381019061065f9190613f80565b611a66565b005b34801561067257600080fd5b5061068d60048036038101906106889190613e54565b611c2d565b60405161069a919061465a565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c59190613e02565b611cb4565b005b3480156106d857600080fd5b506106f360048036038101906106ee9190613e02565b611e0b565b005b60606040518060400160405280600e81526020017f43525950544f2050484f454e4958000000000000000000000000000000000000815250905090565b600061074661073f611ff9565b8484612001565b6001905092915050565b60006012600a6107609190614786565b66038d7ea4c6800061077291906148a4565b905090565b60006107848484846121cc565b61084584610790611ff9565b6108408560405180606001604052806028815260200161508260289139600e60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f6611ff9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e69092919063ffffffff16565b612001565b600190509392505050565b60006012905090565b610861611ff9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e59061457a565b60405180910390fd5b601060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661097a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109719061449a565b60405180910390fd5b60005b601180549050811015610c3c578173ffffffffffffffffffffffffffffffffffffffff16601182815481106109db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610c295760116001601180549050610a3691906148fe565b81548110610a6d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660118281548110610ad2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506011805480610bef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610c3c565b8080610c34906149ba565b91505061097d565b5050565b6000610ce9610c4d611ff9565b84610ce485600e6000610c5e611ff9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263b90919063ffffffff16565b612001565b6001905092915050565b610cfb611ff9565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d81906145da565b60405180910390fd5b610d9381612651565b50565b6000610da0611ff9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e099061463a565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a9061447a565b60405180910390fd5b6000610eae826113f9565b905082811015610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea9061453a565b60405180910390fd5b6000610f0f610f006128a5565b856128d090919063ffffffff16565b9050610f6381600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe390919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561108e5761104a84600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe390919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110998385836128e6565b50505050565b60006012600a6110af9190614786565b66038d7ea4c680006110c191906148a4565b831115611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa906144fa565b60405180910390fd5b81611124576000611115846000612b99565b5050505090508091505061114b565b60006111408461113b611135611ff9565b87612c56565b612b99565b505050915050809150505b92915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611183611ff9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112079061457a565b60405180910390fd5b601060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561129d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112949061445a565b60405180910390fd5b6112a681612c72565b50565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600254905090565b611311611ff9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113959061457a565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561149457600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506114df565b6114dc600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e04565b90505b919050565b6114ec611ff9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611579576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115709061457a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61163f611ff9565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c5906145da565b60405180910390fd5b80600360146101000a81548160ff02191690831515021790555050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f2443504858000000000000000000000000000000000000000000000000000000815250905090565b600061186a6117b4611ff9565b84611865856040518060600160405280602581526020016150aa60259139600e60006117de611ff9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e69092919063ffffffff16565b612001565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb906143fa565b60405180910390fd5b6002544211611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193f906143ba565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611a5c611a55611ff9565b84846121cc565b6001905092915050565b611a6e611ff9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af29061457a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042611ba991906146ac565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cbc611ff9565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d42906145da565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8560405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e13611ff9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e979061457a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f079061443a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008183611fdb9190614702565b905092915050565b60008183611ff191906148fe565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612071576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612068906143da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d89061461a565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121bf919061465a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561223c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612233906144ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a39061455a565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561233d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612334906144da565b60405180910390fd5b60008111612380576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123779061459a565b60405180910390fd5b600060019050600360149054906101000a900460ff16156123a45760009050612529565b60286012600a6123b49190614786565b66038d7ea4c680006123c691906148a4565b6123d09190614702565b821180156123e457506123e284612e72565b155b80156123f657506123f483612eb1565b155b15612436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242d9061451a565b60405180910390fd5b600060146012600a6124489190614786565b66038d7ea4c6800061245a91906148a4565b6124649190614702565b118015612477575061247584612e72565b155b8015612489575061248783612eb1565b155b801561249b575061249983612f48565b155b156125285760006124ab846113f9565b905060146012600a6124bd9190614786565b66038d7ea4c680006124cf91906148a4565b6124d99190614702565b83826124e591906146ac565b1115612526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251d906145ba565b60405180910390fd5b505b5b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125ca5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125d457600090505b6125e084848484612fa2565b50505050565b600083831115829061262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126259190614398565b60405180910390fd5b5082840390509392505050565b6000818361264991906146ac565b905092915050565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561269c57600080fd5b505afa1580156126b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d49190613e2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561273657600080fd5b505afa15801561274a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276e9190613e2b565b6040518363ffffffff1660e01b815260040161278b929190614354565b602060405180830381600087803b1580156127a557600080fd5b505af11580156127b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127dd9190613e2b565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167fc6b438e6a8a59579ce6a4406cbd203b740e0d47b458aae6596339bcd40c40d1560405160405180910390a25050565b60008060006128b261334c565b915091506128c98183611fcd90919063ffffffff16565b9250505090565b600081836128de91906148a4565b905092915050565b61295a81600c6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263b90919063ffffffff16565b600c6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060106000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b0d57612aa782600d6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263b90919063ffffffff16565b600d6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b8c919061465a565b60405180910390a3505050565b600080600080600080612bcd6103e861ffff16612bbf898b6128d090919063ffffffff16565b611fcd90919063ffffffff16565b90506000612be4828a611fe390919063ffffffff16565b90506000612bf06128a5565b90506000612c07828c6128d090919063ffffffff16565b90506000612c1e83866128d090919063ffffffff16565b90506000612c358284611fe390919063ffffffff16565b905082818e87879a509a509a509a509a505050505050509295509295909350565b6000612c6a612c64846113f9565b83613716565b905092915050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612d4657612d02600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e04565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506011819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600454821115612e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e429061441a565b60405180910390fd5b6000612e556128a5565b9050612e6a8184611fcd90919063ffffffff16565b915050919050565b6000612e7c611741565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000612ebb611741565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612f415750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000612fae8584612c56565b905081612fba57600090505b6000806000806000612fcc8887612b99565b9450945094509450945061302885600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe390919063ffffffff16565b600c60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130bd84600c60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263b90919063ffffffff16565b600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156131e8576131a483600d60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe390919063ffffffff16565b600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156132d05761328c82600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263b90919063ffffffff16565b600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6132db888288613723565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613338919061465a565b60405180910390a350505050505050505050565b6000806000600454905060006012600a6133669190614786565b66038d7ea4c6800061337891906148a4565b905060005b6011805490508110156136945782600c6000601184815481106133c9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806134dd575081600d600060118481548110613475577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613511576004546012600a6134f39190614786565b66038d7ea4c6800061350591906148a4565b94509450505050613712565b6135c7600c600060118481548110613552577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611fe390919063ffffffff16565b925061367f600d60006011848154811061360a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611fe390919063ffffffff16565b9150808061368c906149ba565b91505061337d565b5060008114806136d657506136d36012600a6136b09190614786565b66038d7ea4c680006136c291906148a4565b600454611fcd90919063ffffffff16565b82105b15613709576004546012600a6136ec9190614786565b66038d7ea4c680006136fe91906148a4565b935093505050613712565b81819350935050505b9091565b6000600b54905092915050565b6000811180156137405750600360149054906101000a900460ff16155b156137505761374f8383613755565b5b505050565b600360149054906101000a900460ff161561376f576138e9565b60006137796138ed565b905060005b818110156138e6576000806000613794846138fa565b5092509250925060008214156137ac575050506138d3565b600260048111156137e6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b83600481111561381f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156138365761383187878487613a2d565b6138cf565b60016004811115613870577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8360048111156138a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156138c0576138bb87878487613aa0565b6138ce565b6138cd8787848488613b03565b5b5b5050505b80806138de906149ba565b91505061377e565b50505b5050565b6000600a80549050905090565b600080600080600061390b86613cd9565b6040518060800160405290816000820160009054906101000a900460ff166004811115613961577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811115613999577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481525050905080600001518160200151826040015183606001519450945094509450509193509193565b6000613a5a6103e861ffff16613a4c85886128d090919063ffffffff16565b611fcd90919063ffffffff16565b90506000613a7185836128d090919063ffffffff16565b9050613a8881600454611fe390919063ffffffff16565b600481905550613a988383613d7d565b505050505050565b6000613acd6103e861ffff16613abf85886128d090919063ffffffff16565b611fcd90919063ffffffff16565b90506000613ae485836128d090919063ffffffff16565b9050613af13083836128e6565b613afb8383613d7d565b505050505050565b6000613b306103e861ffff16613b2286896128d090919063ffffffff16565b611fcd90919063ffffffff16565b90506000613b4786836128d090919063ffffffff16565b9050613b9b81600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263b90919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613cc657613c8282600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263b90919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613cd08383613d7d565b50505050505050565b6000808210158015613cef5750600a8054905082105b613d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d25906145fa565b60405180910390fd5b600a8281548110613d68577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600402019050919050565b6000613d8883613cd9565b9050613da182826003015461263b90919063ffffffff16565b8160030181905550505050565b600081359050613dbd8161503c565b92915050565b600081519050613dd28161503c565b92915050565b600081359050613de781615053565b92915050565b600081359050613dfc8161506a565b92915050565b600060208284031215613e1457600080fd5b6000613e2284828501613dae565b91505092915050565b600060208284031215613e3d57600080fd5b6000613e4b84828501613dc3565b91505092915050565b60008060408385031215613e6757600080fd5b6000613e7585828601613dae565b9250506020613e8685828601613dae565b9150509250929050565b600080600060608486031215613ea557600080fd5b6000613eb386828701613dae565b9350506020613ec486828701613dae565b9250506040613ed586828701613ded565b9150509250925092565b60008060408385031215613ef257600080fd5b6000613f0085828601613dae565b9250506020613f1185828601613dd8565b9150509250929050565b60008060408385031215613f2e57600080fd5b6000613f3c85828601613dae565b9250506020613f4d85828601613ded565b9150509250929050565b600060208284031215613f6957600080fd5b6000613f7784828501613dd8565b91505092915050565b600060208284031215613f9257600080fd5b6000613fa084828501613ded565b91505092915050565b60008060408385031215613fbc57600080fd5b6000613fca85828601613ded565b9250506020613fdb85828601613dd8565b9150509250929050565b613fee81614932565b82525050565b613ffd81614944565b82525050565b600061400e82614690565b614018818561469b565b9350614028818560208601614987565b61403181614a61565b840191505092915050565b6000614049601c8361469b565b915061405482614a7f565b602082019050919050565b600061406c602b8361469b565b915061407782614aa8565b604082019050919050565b600061408f602c8361469b565b915061409a82614af7565b604082019050919050565b60006140b2602a8361469b565b91506140bd82614b46565b604082019050919050565b60006140d560268361469b565b91506140e082614b95565b604082019050919050565b60006140f860178361469b565b915061410382614be4565b602082019050919050565b600061411b60288361469b565b915061412682614c0d565b604082019050919050565b600061413e60178361469b565b915061414982614c5c565b602082019050919050565b6000614161602c8361469b565b915061416c82614c85565b604082019050919050565b6000614184602c8361469b565b915061418f82614cd4565b604082019050919050565b60006141a7601f8361469b565b91506141b282614d23565b602082019050919050565b60006141ca60288361469b565b91506141d582614d4c565b604082019050919050565b60006141ed60298361469b565b91506141f882614d9b565b604082019050919050565b6000614210602a8361469b565b915061421b82614dea565b604082019050919050565b600061423360208361469b565b915061423e82614e39565b602082019050919050565b600061425660298361469b565b915061426182614e62565b604082019050919050565b6000614279602d8361469b565b915061428482614eb1565b604082019050919050565b600061429c60258361469b565b91506142a782614f00565b604082019050919050565b60006142bf60338361469b565b91506142ca82614f4f565b604082019050919050565b60006142e260298361469b565b91506142ed82614f9e565b604082019050919050565b600061430560288361469b565b915061431082614fed565b604082019050919050565b61432481614970565b82525050565b6143338161497a565b82525050565b600060208201905061434e6000830184613fe5565b92915050565b60006040820190506143696000830185613fe5565b6143766020830184613fe5565b9392505050565b60006020820190506143926000830184613ff4565b92915050565b600060208201905081810360008301526143b28184614003565b905092915050565b600060208201905081810360008301526143d38161403c565b9050919050565b600060208201905081810360008301526143f38161405f565b9050919050565b6000602082019050818103600083015261441381614082565b9050919050565b60006020820190508181036000830152614433816140a5565b9050919050565b60006020820190508181036000830152614453816140c8565b9050919050565b60006020820190508181036000830152614473816140eb565b9050919050565b600060208201905081810360008301526144938161410e565b9050919050565b600060208201905081810360008301526144b381614131565b9050919050565b600060208201905081810360008301526144d381614154565b9050919050565b600060208201905081810360008301526144f381614177565b9050919050565b600060208201905081810360008301526145138161419a565b9050919050565b60006020820190508181036000830152614533816141bd565b9050919050565b60006020820190508181036000830152614553816141e0565b9050919050565b6000602082019050818103600083015261457381614203565b9050919050565b6000602082019050818103600083015261459381614226565b9050919050565b600060208201905081810360008301526145b381614249565b9050919050565b600060208201905081810360008301526145d38161426c565b9050919050565b600060208201905081810360008301526145f38161428f565b9050919050565b60006020820190508181036000830152614613816142b2565b9050919050565b60006020820190508181036000830152614633816142d5565b9050919050565b60006020820190508181036000830152614653816142f8565b9050919050565b600060208201905061466f600083018461431b565b92915050565b600060208201905061468a600083018461432a565b92915050565b600081519050919050565b600082825260208201905092915050565b60006146b782614970565b91506146c283614970565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146f7576146f6614a03565b5b828201905092915050565b600061470d82614970565b915061471883614970565b92508261472857614727614a32565b5b828204905092915050565b6000808291508390505b600185111561477d5780860481111561475957614758614a03565b5b60018516156147685780820291505b808102905061477685614a72565b945061473d565b94509492505050565b600061479182614970565b915061479c8361497a565b92506147c97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846147d1565b905092915050565b6000826147e1576001905061489d565b816147ef576000905061489d565b8160018114614805576002811461480f5761483e565b600191505061489d565b60ff84111561482157614820614a03565b5b8360020a91508482111561483857614837614a03565b5b5061489d565b5060208310610133831016604e8410600b84101617156148735782820a90508381111561486e5761486d614a03565b5b61489d565b6148808484846001614733565b9250905081840481111561489757614896614a03565b5b81810290505b9392505050565b60006148af82614970565b91506148ba83614970565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148f3576148f2614a03565b5b828202905092915050565b600061490982614970565b915061491483614970565b92508282101561492757614926614a03565b5b828203905092915050565b600061493d82614950565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156149a557808201518184015260208101905061498a565b838111156149b4576000848401525b50505050565b60006149c582614970565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156149f8576149f7614a03565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f54686520636f6e7472616374206973207374696c6c206c6f636b656400000000600082015250565b7f42617365526669546f6b656e3a20617070726f76652066726f6d20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f6e6c79207468652070726576696f7573206f776e65722063616e20756e6c6f60008201527f636b206f6e776572736869700000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4163636f756e74206973206e6f7420696e636c75646564000000000000000000600082015250565b7f42617365526669546f6b656e3a206275726e2066726f6d20746865206275726e60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b7f4163636f756e74206973206e6f74206578636c75646564000000000000000000600082015250565b7f42617365526669546f6b656e3a207472616e736665722066726f6d207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b7f42617365526669546f6b656e3a207472616e736665722066726f6d207468652060008201527f6275726e20616464726573730000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f42617365526669546f6b656e3a206275726e20616d6f756e742065786365656460008201527f732062616c616e63650000000000000000000000000000000000000000000000602082015250565b7f42617365526669546f6b656e3a207472616e7366657220746f20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4e65772062616c616e636520776f756c642065786365656420746865206d617860008201527f57616c6c657442616c616e636500000000000000000000000000000000000000602082015250565b7f4d616e61676561626c653a2063616c6c6572206973206e6f7420746865206d6160008201527f6e61676572000000000000000000000000000000000000000000000000000000602082015250565b7f4665657353657474696e67732e5f6765744665655374727563743a204665652060008201527f696e646578206f7574206f6620626f756e647300000000000000000000000000602082015250565b7f42617365526669546f6b656e3a20617070726f766520746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b7f42617365526669546f6b656e3a206275726e2066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b61504581614932565b811461505057600080fd5b50565b61505c81614944565b811461506757600080fd5b50565b61507381614970565b811461507e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220529b713f1721b8d3a0a45a787a27d4a56ae4b5d5189660a93fdbc1d97471e52964736f6c63430008040033