0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200005a60201b60201c565b5062000054620000486200006f60201b60201c565b6200007760201b60201c565b6200049e565b80600290816200006b9190620003b7565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001bf57607f821691505b602082108103620001d557620001d462000177565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200023f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000200565b6200024b868362000200565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000298620002926200028c8462000263565b6200026d565b62000263565b9050919050565b6000819050919050565b620002b48362000277565b620002cc620002c3826200029f565b8484546200020d565b825550505050565b600090565b620002e3620002d4565b620002f0818484620002a9565b505050565b5b8181101562000318576200030c600082620002d9565b600181019050620002f6565b5050565b601f82111562000367576200033181620001db565b6200033c84620001f0565b810160208510156200034c578190505b620003646200035b85620001f0565b830182620002f5565b50505b505050565b600082821c905092915050565b60006200038c600019846008026200036c565b1980831691505092915050565b6000620003a7838362000379565b9150826002028217905092915050565b620003c2826200013d565b67ffffffffffffffff811115620003de57620003dd62000148565b5b620003ea8254620001a6565b620003f78282856200031c565b600060209050601f8311600181146200042f57600084156200041a578287015190505b62000426858262000399565b86555062000496565b601f1984166200043f86620001db565b60005b82811015620004695784890151825560018201915060208501945060208101905062000442565b8683101562000489578489015162000485601f89168262000379565b8355505b6001600288020188555050505b505050505050565b61379380620004ae6000396000f3fe608060405234801561001057600080fd5b50600436106100f45760003560e01c8063715018a611610097578063e985e9c511610066578063e985e9c51461026d578063f242432a1461029d578063f2fde38b146102b9578063f5298aca146102d5576100f4565b8063715018a61461020d578063731133e9146102175780638da5cb5b14610233578063a22cb46514610251576100f4565b80631f7fdffa116100d35780631f7fdffa146101895780632eb2c2d6146101a55780634e1273f4146101c15780636b20c454146101f1576100f4565b8062fdd58e146100f957806301ffc9a7146101295780630e89341c14610159575b600080fd5b610113600480360381019061010e9190612134565b6102f1565b6040516101209190612183565b60405180910390f35b610143600480360381019061013e91906121f6565b6103b9565b604051610150919061223e565b60405180910390f35b610173600480360381019061016e9190612259565b61049b565b6040516101809190612316565b60405180910390f35b6101a3600480360381019061019e9190612535565b61052f565b005b6101bf60048036038101906101ba91906125f0565b610549565b005b6101db60048036038101906101d69190612782565b6105ea565b6040516101e891906128b8565b60405180910390f35b61020b600480360381019061020691906128da565b610703565b005b6102156107a0565b005b610231600480360381019061022c9190612965565b6107b4565b005b61023b6107ce565b60405161024891906129f7565b60405180910390f35b61026b60048036038101906102669190612a3e565b6107f8565b005b61028760048036038101906102829190612a7e565b61080e565b604051610294919061223e565b60405180910390f35b6102b760048036038101906102b29190612abe565b6108a2565b005b6102d360048036038101906102ce9190612b55565b610943565b005b6102ef60048036038101906102ea9190612b82565b6109c6565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035890612c47565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061048457507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610494575061049382610a63565b5b9050919050565b6060600280546104aa90612c96565b80601f01602080910402602001604051908101604052809291908181526020018280546104d690612c96565b80156105235780601f106104f857610100808354040283529160200191610523565b820191906000526020600020905b81548152906001019060200180831161050657829003601f168201915b50505050509050919050565b610537610acd565b61054384848484610b4b565b50505050565b610551610d77565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610597575061059685610591610d77565b61080e565b5b6105d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd90612d39565b60405180910390fd5b6105e38585858585610d7f565b5050505050565b60608151835114610630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062790612dcb565b60405180910390fd5b6000835167ffffffffffffffff81111561064d5761064c61233d565b5b60405190808252806020026020018201604052801561067b5781602001602082028036833780820191505090505b50905060005b84518110156106f8576106c88582815181106106a05761069f612deb565b5b60200260200101518583815181106106bb576106ba612deb565b5b60200260200101516102f1565b8282815181106106db576106da612deb565b5b602002602001018181525050806106f190612e49565b9050610681565b508091505092915050565b61070b610d77565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061075157506107508361074b610d77565b61080e565b5b610790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078790612d39565b60405180910390fd5b61079b8383836110a0565b505050565b6107a8610acd565b6107b2600061136e565b565b6107bc610acd565b6107c884848484611434565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61080a610803610d77565b83836115e4565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6108aa610d77565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806108f057506108ef856108ea610d77565b61080e565b5b61092f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092690612d39565b60405180910390fd5b61093c8585858585611750565b5050505050565b61094b610acd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b190612f03565b60405180910390fd5b6109c38161136e565b50565b6109ce610d77565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610a145750610a1383610a0e610d77565b61080e565b5b610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90612d39565b60405180910390fd5b610a5e8383836119eb565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610ad5610d77565b73ffffffffffffffffffffffffffffffffffffffff16610af36107ce565b73ffffffffffffffffffffffffffffffffffffffff1614610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090612f6f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb190613001565b60405180910390fd5b8151835114610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590613093565b60405180910390fd5b6000610c08610d77565b9050610c1981600087878787611c31565b60005b8451811015610cd257838181518110610c3857610c37612deb565b5b6020026020010151600080878481518110610c5657610c55612deb565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610cb891906130b3565b925050819055508080610cca90612e49565b915050610c1c565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610d4a9291906130e7565b60405180910390a4610d6181600087878787611c39565b610d7081600087878787611c41565b5050505050565b600033905090565b8151835114610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba90613093565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990613190565b60405180910390fd5b6000610e3c610d77565b9050610e4c818787878787611c31565b60005b8451811015610ffd576000858281518110610e6d57610e6c612deb565b5b602002602001015190506000858381518110610e8c57610e8b612deb565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2490613222565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fe291906130b3565b9250508190555050505080610ff690612e49565b9050610e4f565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516110749291906130e7565b60405180910390a461108a818787878787611c39565b611098818787878787611c41565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361110f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611106906132b4565b60405180910390fd5b8051825114611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a90613093565b60405180910390fd5b600061115d610d77565b905061117d81856000868660405180602001604052806000815250611c31565b60005b83518110156112ca57600084828151811061119e5761119d612deb565b5b6020026020010151905060008483815181106111bd576111bc612deb565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561125e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125590613346565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505080806112c290612e49565b915050611180565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113429291906130e7565b60405180910390a461136881856000868660405180602001604052806000815250611c39565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a90613001565b60405180910390fd5b60006114ad610d77565b905060006114ba85611e18565b905060006114c785611e18565b90506114d883600089858589611c31565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461153791906130b3565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6289896040516115b5929190613366565b60405180910390a46115cc83600089858589611c39565b6115db83600089898989611e92565b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164990613401565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611743919061223e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b690613190565b60405180910390fd5b60006117c9610d77565b905060006117d685611e18565b905060006117e385611e18565b90506117f3838989858589611c31565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508581101561188a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188190613222565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461193f91906130b3565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a6040516119bc929190613366565b60405180910390a46119d2848a8a86868a611c39565b6119e0848a8a8a8a8a611e92565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a51906132b4565b60405180910390fd5b6000611a64610d77565b90506000611a7184611e18565b90506000611a7e84611e18565b9050611a9e83876000858560405180602001604052806000815250611c31565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c90613346565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611c02929190613366565b60405180910390a4611c2884886000868660405180602001604052806000815250611c39565b50505050505050565b505050505050565b505050505050565b611c608473ffffffffffffffffffffffffffffffffffffffff16612069565b15611e10578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611ca6959493929190613476565b6020604051808303816000875af1925050508015611ce257506040513d601f19601f82011682018060405250810190611cdf91906134f3565b60015b611d8757611cee61352d565b806308c379a003611d4a5750611d0261354f565b80611d0d5750611d4c565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d419190612316565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7e90613651565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e05906136e3565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115611e3757611e3661233d565b5b604051908082528060200260200182016040528015611e655781602001602082028036833780820191505090505b5090508281600081518110611e7d57611e7c612deb565b5b60200260200101818152505080915050919050565b611eb18473ffffffffffffffffffffffffffffffffffffffff16612069565b15612061578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611ef7959493929190613703565b6020604051808303816000875af1925050508015611f3357506040513d601f19601f82011682018060405250810190611f3091906134f3565b60015b611fd857611f3f61352d565b806308c379a003611f9b5750611f5361354f565b80611f5e5750611f9d565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f929190612316565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf90613651565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461205f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612056906136e3565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120cb826120a0565b9050919050565b6120db816120c0565b81146120e657600080fd5b50565b6000813590506120f8816120d2565b92915050565b6000819050919050565b612111816120fe565b811461211c57600080fd5b50565b60008135905061212e81612108565b92915050565b6000806040838503121561214b5761214a612096565b5b6000612159858286016120e9565b925050602061216a8582860161211f565b9150509250929050565b61217d816120fe565b82525050565b60006020820190506121986000830184612174565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6121d38161219e565b81146121de57600080fd5b50565b6000813590506121f0816121ca565b92915050565b60006020828403121561220c5761220b612096565b5b600061221a848285016121e1565b91505092915050565b60008115159050919050565b61223881612223565b82525050565b6000602082019050612253600083018461222f565b92915050565b60006020828403121561226f5761226e612096565b5b600061227d8482850161211f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122c05780820151818401526020810190506122a5565b60008484015250505050565b6000601f19601f8301169050919050565b60006122e882612286565b6122f28185612291565b93506123028185602086016122a2565b61230b816122cc565b840191505092915050565b6000602082019050818103600083015261233081846122dd565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612375826122cc565b810181811067ffffffffffffffff821117156123945761239361233d565b5b80604052505050565b60006123a761208c565b90506123b3828261236c565b919050565b600067ffffffffffffffff8211156123d3576123d261233d565b5b602082029050602081019050919050565b600080fd5b60006123fc6123f7846123b8565b61239d565b9050808382526020820190506020840283018581111561241f5761241e6123e4565b5b835b818110156124485780612434888261211f565b845260208401935050602081019050612421565b5050509392505050565b600082601f83011261246757612466612338565b5b81356124778482602086016123e9565b91505092915050565b600080fd5b600067ffffffffffffffff8211156124a05761249f61233d565b5b6124a9826122cc565b9050602081019050919050565b82818337600083830152505050565b60006124d86124d384612485565b61239d565b9050828152602081018484840111156124f4576124f3612480565b5b6124ff8482856124b6565b509392505050565b600082601f83011261251c5761251b612338565b5b813561252c8482602086016124c5565b91505092915050565b6000806000806080858703121561254f5761254e612096565b5b600061255d878288016120e9565b945050602085013567ffffffffffffffff81111561257e5761257d61209b565b5b61258a87828801612452565b935050604085013567ffffffffffffffff8111156125ab576125aa61209b565b5b6125b787828801612452565b925050606085013567ffffffffffffffff8111156125d8576125d761209b565b5b6125e487828801612507565b91505092959194509250565b600080600080600060a0868803121561260c5761260b612096565b5b600061261a888289016120e9565b955050602061262b888289016120e9565b945050604086013567ffffffffffffffff81111561264c5761264b61209b565b5b61265888828901612452565b935050606086013567ffffffffffffffff8111156126795761267861209b565b5b61268588828901612452565b925050608086013567ffffffffffffffff8111156126a6576126a561209b565b5b6126b288828901612507565b9150509295509295909350565b600067ffffffffffffffff8211156126da576126d961233d565b5b602082029050602081019050919050565b60006126fe6126f9846126bf565b61239d565b90508083825260208201905060208402830185811115612721576127206123e4565b5b835b8181101561274a578061273688826120e9565b845260208401935050602081019050612723565b5050509392505050565b600082601f83011261276957612768612338565b5b81356127798482602086016126eb565b91505092915050565b6000806040838503121561279957612798612096565b5b600083013567ffffffffffffffff8111156127b7576127b661209b565b5b6127c385828601612754565b925050602083013567ffffffffffffffff8111156127e4576127e361209b565b5b6127f085828601612452565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61282f816120fe565b82525050565b60006128418383612826565b60208301905092915050565b6000602082019050919050565b6000612865826127fa565b61286f8185612805565b935061287a83612816565b8060005b838110156128ab5781516128928882612835565b975061289d8361284d565b92505060018101905061287e565b5085935050505092915050565b600060208201905081810360008301526128d2818461285a565b905092915050565b6000806000606084860312156128f3576128f2612096565b5b6000612901868287016120e9565b935050602084013567ffffffffffffffff8111156129225761292161209b565b5b61292e86828701612452565b925050604084013567ffffffffffffffff81111561294f5761294e61209b565b5b61295b86828701612452565b9150509250925092565b6000806000806080858703121561297f5761297e612096565b5b600061298d878288016120e9565b945050602061299e8782880161211f565b93505060406129af8782880161211f565b925050606085013567ffffffffffffffff8111156129d0576129cf61209b565b5b6129dc87828801612507565b91505092959194509250565b6129f1816120c0565b82525050565b6000602082019050612a0c60008301846129e8565b92915050565b612a1b81612223565b8114612a2657600080fd5b50565b600081359050612a3881612a12565b92915050565b60008060408385031215612a5557612a54612096565b5b6000612a63858286016120e9565b9250506020612a7485828601612a29565b9150509250929050565b60008060408385031215612a9557612a94612096565b5b6000612aa3858286016120e9565b9250506020612ab4858286016120e9565b9150509250929050565b600080600080600060a08688031215612ada57612ad9612096565b5b6000612ae8888289016120e9565b9550506020612af9888289016120e9565b9450506040612b0a8882890161211f565b9350506060612b1b8882890161211f565b925050608086013567ffffffffffffffff811115612b3c57612b3b61209b565b5b612b4888828901612507565b9150509295509295909350565b600060208284031215612b6b57612b6a612096565b5b6000612b79848285016120e9565b91505092915050565b600080600060608486031215612b9b57612b9a612096565b5b6000612ba9868287016120e9565b9350506020612bba8682870161211f565b9250506040612bcb8682870161211f565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000612c31602a83612291565b9150612c3c82612bd5565b604082019050919050565b60006020820190508181036000830152612c6081612c24565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612cae57607f821691505b602082108103612cc157612cc0612c67565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612d23602e83612291565b9150612d2e82612cc7565b604082019050919050565b60006020820190508181036000830152612d5281612d16565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000612db5602983612291565b9150612dc082612d59565b604082019050919050565b60006020820190508181036000830152612de481612da8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e54826120fe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8657612e85612e1a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612eed602683612291565b9150612ef882612e91565b604082019050919050565b60006020820190508181036000830152612f1c81612ee0565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f59602083612291565b9150612f6482612f23565b602082019050919050565b60006020820190508181036000830152612f8881612f4c565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612feb602183612291565b9150612ff682612f8f565b604082019050919050565b6000602082019050818103600083015261301a81612fde565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b600061307d602883612291565b915061308882613021565b604082019050919050565b600060208201905081810360008301526130ac81613070565b9050919050565b60006130be826120fe565b91506130c9836120fe565b92508282019050808211156130e1576130e0612e1a565b5b92915050565b60006040820190508181036000830152613101818561285a565b90508181036020830152613115818461285a565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061317a602583612291565b91506131858261311e565b604082019050919050565b600060208201905081810360008301526131a98161316d565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b600061320c602a83612291565b9150613217826131b0565b604082019050919050565b6000602082019050818103600083015261323b816131ff565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061329e602383612291565b91506132a982613242565b604082019050919050565b600060208201905081810360008301526132cd81613291565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613330602483612291565b915061333b826132d4565b604082019050919050565b6000602082019050818103600083015261335f81613323565b9050919050565b600060408201905061337b6000830185612174565b6133886020830184612174565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006133eb602983612291565b91506133f68261338f565b604082019050919050565b6000602082019050818103600083015261341a816133de565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061344882613421565b613452818561342c565b93506134628185602086016122a2565b61346b816122cc565b840191505092915050565b600060a08201905061348b60008301886129e8565b61349860208301876129e8565b81810360408301526134aa818661285a565b905081810360608301526134be818561285a565b905081810360808301526134d2818461343d565b90509695505050505050565b6000815190506134ed816121ca565b92915050565b60006020828403121561350957613508612096565b5b6000613517848285016134de565b91505092915050565b60008160e01c9050919050565b600060033d111561354c5760046000803e613549600051613520565b90505b90565b600060443d106135dc5761356161208c565b60043d036004823e80513d602482011167ffffffffffffffff821117156135895750506135dc565b808201805167ffffffffffffffff8111156135a757505050506135dc565b80602083010160043d0385018111156135c45750505050506135dc565b6135d38260200185018661236c565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b600061363b603483612291565b9150613646826135df565b604082019050919050565b6000602082019050818103600083015261366a8161362e565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006136cd602883612291565b91506136d882613671565b604082019050919050565b600060208201905081810360008301526136fc816136c0565b9050919050565b600060a08201905061371860008301886129e8565b61372560208301876129e8565b6137326040830186612174565b61373f6060830185612174565b8181036080830152613751818461343d565b9050969550505050505056fea26469706673582212200d60e00771d6d1547cea1ee7dc5f8ca0d7869e7c55d5c427040b6985367f7dc064736f6c63430008120033