0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200005a60201b60201c565b5062000054620000486200006f60201b60201c565b6200007760201b60201c565b6200049e565b80600290816200006b9190620003b7565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001bf57607f821691505b602082108103620001d557620001d462000177565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200023f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000200565b6200024b868362000200565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000298620002926200028c8462000263565b6200026d565b62000263565b9050919050565b6000819050919050565b620002b48362000277565b620002cc620002c3826200029f565b8484546200020d565b825550505050565b600090565b620002e3620002d4565b620002f0818484620002a9565b505050565b5b8181101562000318576200030c600082620002d9565b600181019050620002f6565b5050565b601f82111562000367576200033181620001db565b6200033c84620001f0565b810160208510156200034c578190505b620003646200035b85620001f0565b830182620002f5565b50505b505050565b600082821c905092915050565b60006200038c600019846008026200036c565b1980831691505092915050565b6000620003a7838362000379565b9150826002028217905092915050565b620003c2826200013d565b67ffffffffffffffff811115620003de57620003dd62000148565b5b620003ea8254620001a6565b620003f78282856200031c565b600060209050601f8311600181146200042f57600084156200041a578287015190505b62000426858262000399565b86555062000496565b601f1984166200043f86620001db565b60005b82811015620004695784890151825560018201915060208501945060208101905062000442565b8683101562000489578489015162000485601f89168262000379565b8355505b6001600288020188555050505b505050505050565b61383a80620004ae6000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c8063715018a611610097578063e985e9c511610066578063e985e9c5146102bc578063f242432a146102ec578063f2fde38b14610308578063f5298aca14610324576100ff565b8063715018a6146102485780638da5cb5b14610252578063a22cb46514610270578063bd85b0391461028c576100ff565b80632eb2c2d6116100d35780632eb2c2d6146101b05780634e1273f4146101cc5780634f558e79146101fc5780636b20c4541461022c576100ff565b8062fdd58e1461010457806301ffc9a71461013457806302fe5305146101645780630e89341c14610180575b600080fd5b61011e60048036038101906101199190611fb1565b610340565b60405161012b9190612000565b60405180910390f35b61014e60048036038101906101499190612073565b610408565b60405161015b91906120bb565b60405180910390f35b61017e6004803603810190610179919061221c565b6104ea565b005b61019a60048036038101906101959190612265565b6104fe565b6040516101a79190612311565b60405180910390f35b6101ca60048036038101906101c5919061249c565b610592565b005b6101e660048036038101906101e1919061262e565b610633565b6040516101f39190612764565b60405180910390f35b61021660048036038101906102119190612265565b61074c565b60405161022391906120bb565b60405180910390f35b61024660048036038101906102419190612786565b610760565b005b6102506107fd565b005b61025a610811565b6040516102679190612820565b60405180910390f35b61028a60048036038101906102859190612867565b61083b565b005b6102a660048036038101906102a19190612265565b610851565b6040516102b39190612000565b60405180910390f35b6102d660048036038101906102d191906128a7565b61086e565b6040516102e391906120bb565b60405180910390f35b610306600480360381019061030191906128e7565b610902565b005b610322600480360381019061031d919061297e565b6109a3565b005b61033e600480360381019061033991906129ab565b610a26565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036103b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a790612a70565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104d357507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104e357506104e282610ac3565b5b9050919050565b6104f2610b2d565b6104fb81610bab565b50565b60606002805461050d90612abf565b80601f016020809104026020016040519081016040528092919081815260200182805461053990612abf565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b50505050509050919050565b61059a610bbe565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105e057506105df856105da610bbe565b61086e565b5b61061f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061690612b62565b60405180910390fd5b61062c8585858585610bc6565b5050505050565b60608151835114610679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067090612bf4565b60405180910390fd5b6000835167ffffffffffffffff811115610696576106956120f1565b5b6040519080825280602002602001820160405280156106c45781602001602082028036833780820191505090505b50905060005b8451811015610741576107118582815181106106e9576106e8612c14565b5b602002602001015185838151811061070457610703612c14565b5b6020026020010151610340565b82828151811061072457610723612c14565b5b6020026020010181815250508061073a90612c72565b90506106ca565b508091505092915050565b60008061075883610851565b119050919050565b610768610bbe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806107ae57506107ad836107a8610bbe565b61086e565b5b6107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490612b62565b60405180910390fd5b6107f8838383610ee7565b505050565b610805610b2d565b61080f60006111b5565b565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61084d610846610bbe565b838361127b565b5050565b600060046000838152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61090a610bbe565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610950575061094f8561094a610bbe565b61086e565b5b61098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098690612b62565b60405180910390fd5b61099c85858585856113e7565b5050505050565b6109ab610b2d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190612d2c565b60405180910390fd5b610a23816111b5565b50565b610a2e610bbe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610a745750610a7383610a6e610bbe565b61086e565b5b610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90612b62565b60405180910390fd5b610abe838383611682565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b35610bbe565b73ffffffffffffffffffffffffffffffffffffffff16610b53610811565b73ffffffffffffffffffffffffffffffffffffffff1614610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba090612d98565b60405180910390fd5b565b8060029081610bba9190612f64565b5050565b600033905090565b8151835114610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906130a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c709061313a565b60405180910390fd5b6000610c83610bbe565b9050610c938187878787876118c8565b60005b8451811015610e44576000858281518110610cb457610cb3612c14565b5b602002602001015190506000858381518110610cd357610cd2612c14565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b906131cc565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e2991906131ec565b9250508190555050505080610e3d90612c72565b9050610c96565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610ebb929190613220565b60405180910390a4610ed18187878787876118de565b610edf8187878787876118e6565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4d906132c9565b60405180910390fd5b8051825114610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f91906130a8565b60405180910390fd5b6000610fa4610bbe565b9050610fc4818560008686604051806020016040528060008152506118c8565b60005b8351811015611111576000848281518110610fe557610fe4612c14565b5b60200260200101519050600084838151811061100457611003612c14565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c9061335b565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050808061110990612c72565b915050610fc7565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611189929190613220565b60405180910390a46111af818560008686604051806020016040528060008152506118de565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e0906133ed565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113da91906120bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d9061313a565b60405180910390fd5b6000611460610bbe565b9050600061146d85611abd565b9050600061147a85611abd565b905061148a8389898585896118c8565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611521576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611518906131cc565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115d691906131ec565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a60405161165392919061340d565b60405180910390a4611669848a8a86868a6118de565b611677848a8a8a8a8a611b37565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e8906132c9565b60405180910390fd5b60006116fb610bbe565b9050600061170884611abd565b9050600061171584611abd565b9050611735838760008585604051806020016040528060008152506118c8565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050848110156117cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c39061335b565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405161189992919061340d565b60405180910390a46118bf848860008686604051806020016040528060008152506118de565b50505050505050565b6118d6868686868686611d0e565b505050505050565b505050505050565b6119058473ffffffffffffffffffffffffffffffffffffffff16611ede565b15611ab5578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161194b95949392919061348b565b6020604051808303816000875af192505050801561198757506040513d601f19601f820116820180604052508101906119849190613508565b60015b611a2c57611993613542565b806308c379a0036119ef57506119a7613564565b806119b257506119f1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e69190612311565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2390613666565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa906136f8565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115611adc57611adb6120f1565b5b604051908082528060200260200182016040528015611b0a5781602001602082028036833780820191505090505b5090508281600081518110611b2257611b21612c14565b5b60200260200101818152505080915050919050565b611b568473ffffffffffffffffffffffffffffffffffffffff16611ede565b15611d06578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b9c959493929190613718565b6020604051808303816000875af1925050508015611bd857506040513d601f19601f82011682018060405250810190611bd59190613508565b60015b611c7d57611be4613542565b806308c379a003611c405750611bf8613564565b80611c035750611c42565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c379190612311565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7490613666565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb906136f8565b60405180910390fd5b505b505050505050565b611d1c868686868686611f01565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611dcd5760005b8351811015611dcb57828181518110611d6f57611d6e612c14565b5b602002602001015160046000868481518110611d8e57611d8d612c14565b5b602002602001015181526020019081526020016000206000828254611db391906131ec565b9250508190555080611dc490612c72565b9050611d53565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ed65760005b8351811015611ed4576000848281518110611e2257611e21612c14565b5b602002602001015190506000848381518110611e4157611e40612c14565b5b6020026020010151905060006004600084815260200190815260200160002054905081811015611ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9d906137e4565b60405180910390fd5b818103600460008581526020019081526020016000208190555050505080611ecd90612c72565b9050611e04565b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f4882611f1d565b9050919050565b611f5881611f3d565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b6000819050919050565b611f8e81611f7b565b8114611f9957600080fd5b50565b600081359050611fab81611f85565b92915050565b60008060408385031215611fc857611fc7611f13565b5b6000611fd685828601611f66565b9250506020611fe785828601611f9c565b9150509250929050565b611ffa81611f7b565b82525050565b60006020820190506120156000830184611ff1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6120508161201b565b811461205b57600080fd5b50565b60008135905061206d81612047565b92915050565b60006020828403121561208957612088611f13565b5b60006120978482850161205e565b91505092915050565b60008115159050919050565b6120b5816120a0565b82525050565b60006020820190506120d060008301846120ac565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612129826120e0565b810181811067ffffffffffffffff82111715612148576121476120f1565b5b80604052505050565b600061215b611f09565b90506121678282612120565b919050565b600067ffffffffffffffff821115612187576121866120f1565b5b612190826120e0565b9050602081019050919050565b82818337600083830152505050565b60006121bf6121ba8461216c565b612151565b9050828152602081018484840111156121db576121da6120db565b5b6121e684828561219d565b509392505050565b600082601f830112612203576122026120d6565b5b81356122138482602086016121ac565b91505092915050565b60006020828403121561223257612231611f13565b5b600082013567ffffffffffffffff8111156122505761224f611f18565b5b61225c848285016121ee565b91505092915050565b60006020828403121561227b5761227a611f13565b5b600061228984828501611f9c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122cc5780820151818401526020810190506122b1565b60008484015250505050565b60006122e382612292565b6122ed818561229d565b93506122fd8185602086016122ae565b612306816120e0565b840191505092915050565b6000602082019050818103600083015261232b81846122d8565b905092915050565b600067ffffffffffffffff82111561234e5761234d6120f1565b5b602082029050602081019050919050565b600080fd5b600061237761237284612333565b612151565b9050808382526020820190506020840283018581111561239a5761239961235f565b5b835b818110156123c357806123af8882611f9c565b84526020840193505060208101905061239c565b5050509392505050565b600082601f8301126123e2576123e16120d6565b5b81356123f2848260208601612364565b91505092915050565b600067ffffffffffffffff821115612416576124156120f1565b5b61241f826120e0565b9050602081019050919050565b600061243f61243a846123fb565b612151565b90508281526020810184848401111561245b5761245a6120db565b5b61246684828561219d565b509392505050565b600082601f830112612483576124826120d6565b5b813561249384826020860161242c565b91505092915050565b600080600080600060a086880312156124b8576124b7611f13565b5b60006124c688828901611f66565b95505060206124d788828901611f66565b945050604086013567ffffffffffffffff8111156124f8576124f7611f18565b5b612504888289016123cd565b935050606086013567ffffffffffffffff81111561252557612524611f18565b5b612531888289016123cd565b925050608086013567ffffffffffffffff81111561255257612551611f18565b5b61255e8882890161246e565b9150509295509295909350565b600067ffffffffffffffff821115612586576125856120f1565b5b602082029050602081019050919050565b60006125aa6125a58461256b565b612151565b905080838252602082019050602084028301858111156125cd576125cc61235f565b5b835b818110156125f657806125e28882611f66565b8452602084019350506020810190506125cf565b5050509392505050565b600082601f830112612615576126146120d6565b5b8135612625848260208601612597565b91505092915050565b6000806040838503121561264557612644611f13565b5b600083013567ffffffffffffffff81111561266357612662611f18565b5b61266f85828601612600565b925050602083013567ffffffffffffffff8111156126905761268f611f18565b5b61269c858286016123cd565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6126db81611f7b565b82525050565b60006126ed83836126d2565b60208301905092915050565b6000602082019050919050565b6000612711826126a6565b61271b81856126b1565b9350612726836126c2565b8060005b8381101561275757815161273e88826126e1565b9750612749836126f9565b92505060018101905061272a565b5085935050505092915050565b6000602082019050818103600083015261277e8184612706565b905092915050565b60008060006060848603121561279f5761279e611f13565b5b60006127ad86828701611f66565b935050602084013567ffffffffffffffff8111156127ce576127cd611f18565b5b6127da868287016123cd565b925050604084013567ffffffffffffffff8111156127fb576127fa611f18565b5b612807868287016123cd565b9150509250925092565b61281a81611f3d565b82525050565b60006020820190506128356000830184612811565b92915050565b612844816120a0565b811461284f57600080fd5b50565b6000813590506128618161283b565b92915050565b6000806040838503121561287e5761287d611f13565b5b600061288c85828601611f66565b925050602061289d85828601612852565b9150509250929050565b600080604083850312156128be576128bd611f13565b5b60006128cc85828601611f66565b92505060206128dd85828601611f66565b9150509250929050565b600080600080600060a0868803121561290357612902611f13565b5b600061291188828901611f66565b955050602061292288828901611f66565b945050604061293388828901611f9c565b935050606061294488828901611f9c565b925050608086013567ffffffffffffffff81111561296557612964611f18565b5b6129718882890161246e565b9150509295509295909350565b60006020828403121561299457612993611f13565b5b60006129a284828501611f66565b91505092915050565b6000806000606084860312156129c4576129c3611f13565b5b60006129d286828701611f66565b93505060206129e386828701611f9c565b92505060406129f486828701611f9c565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000612a5a602a8361229d565b9150612a65826129fe565b604082019050919050565b60006020820190508181036000830152612a8981612a4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ad757607f821691505b602082108103612aea57612ae9612a90565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612b4c602e8361229d565b9150612b5782612af0565b604082019050919050565b60006020820190508181036000830152612b7b81612b3f565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000612bde60298361229d565b9150612be982612b82565b604082019050919050565b60006020820190508181036000830152612c0d81612bd1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c7d82611f7b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612caf57612cae612c43565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d1660268361229d565b9150612d2182612cba565b604082019050919050565b60006020820190508181036000830152612d4581612d09565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d8260208361229d565b9150612d8d82612d4c565b602082019050919050565b60006020820190508181036000830152612db181612d75565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612e1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ddd565b612e248683612ddd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612e61612e5c612e5784611f7b565b612e3c565b611f7b565b9050919050565b6000819050919050565b612e7b83612e46565b612e8f612e8782612e68565b848454612dea565b825550505050565b600090565b612ea4612e97565b612eaf818484612e72565b505050565b5b81811015612ed357612ec8600082612e9c565b600181019050612eb5565b5050565b601f821115612f1857612ee981612db8565b612ef284612dcd565b81016020851015612f01578190505b612f15612f0d85612dcd565b830182612eb4565b50505b505050565b600082821c905092915050565b6000612f3b60001984600802612f1d565b1980831691505092915050565b6000612f548383612f2a565b9150826002028217905092915050565b612f6d82612292565b67ffffffffffffffff811115612f8657612f856120f1565b5b612f908254612abf565b612f9b828285612ed7565b600060209050601f831160018114612fce5760008415612fbc578287015190505b612fc68582612f48565b86555061302e565b601f198416612fdc86612db8565b60005b8281101561300457848901518255600182019150602085019450602081019050612fdf565b86831015613021578489015161301d601f891682612f2a565b8355505b6001600288020188555050505b505050505050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b600061309260288361229d565b915061309d82613036565b604082019050919050565b600060208201905081810360008301526130c181613085565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061312460258361229d565b915061312f826130c8565b604082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b60006131b6602a8361229d565b91506131c18261315a565b604082019050919050565b600060208201905081810360008301526131e5816131a9565b9050919050565b60006131f782611f7b565b915061320283611f7b565b925082820190508082111561321a57613219612c43565b5b92915050565b6000604082019050818103600083015261323a8185612706565b9050818103602083015261324e8184612706565b90509392505050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132b360238361229d565b91506132be82613257565b604082019050919050565b600060208201905081810360008301526132e2816132a6565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b600061334560248361229d565b9150613350826132e9565b604082019050919050565b6000602082019050818103600083015261337481613338565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006133d760298361229d565b91506133e28261337b565b604082019050919050565b60006020820190508181036000830152613406816133ca565b9050919050565b60006040820190506134226000830185611ff1565b61342f6020830184611ff1565b9392505050565b600081519050919050565b600082825260208201905092915050565b600061345d82613436565b6134678185613441565b93506134778185602086016122ae565b613480816120e0565b840191505092915050565b600060a0820190506134a06000830188612811565b6134ad6020830187612811565b81810360408301526134bf8186612706565b905081810360608301526134d38185612706565b905081810360808301526134e78184613452565b90509695505050505050565b60008151905061350281612047565b92915050565b60006020828403121561351e5761351d611f13565b5b600061352c848285016134f3565b91505092915050565b60008160e01c9050919050565b600060033d11156135615760046000803e61355e600051613535565b90505b90565b600060443d106135f157613576611f09565b60043d036004823e80513d602482011167ffffffffffffffff8211171561359e5750506135f1565b808201805167ffffffffffffffff8111156135bc57505050506135f1565b80602083010160043d0385018111156135d95750505050506135f1565b6135e882602001850186612120565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b600061365060348361229d565b915061365b826135f4565b604082019050919050565b6000602082019050818103600083015261367f81613643565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006136e260288361229d565b91506136ed82613686565b604082019050919050565b60006020820190508181036000830152613711816136d5565b9050919050565b600060a08201905061372d6000830188612811565b61373a6020830187612811565b6137476040830186611ff1565b6137546060830185611ff1565b81810360808301526137668184613452565b90509695505050505050565b7f455243313135353a206275726e20616d6f756e74206578636565647320746f7460008201527f616c537570706c79000000000000000000000000000000000000000000000000602082015250565b60006137ce60288361229d565b91506137d982613772565b604082019050919050565b600060208201905081810360008301526137fd816137c1565b905091905056fea2646970667358221220440498b3b3854ef855d80ee19355549670cc4b4bbd13693b6b1071c932935ffe64736f6c63430008120033