60c060405234801561000f575f80fd5b5060405161369d38038061369d8339818101604052810190610031919061038c565b6040518060400160405280600781526020017f4578616d706c65000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f45584d0000000000000000000000000000000000000000000000000000000000815250601261271084805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610109576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35084600190816101b291906105f1565b5083600290816101c291906105f1565b508260ff1660808160ff1681525050608051600a6101e09190610828565b826101eb9190610872565b60a08181525050505050505060a05160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061024c81600161025260201b60201c565b506108b3565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102d6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61035b82610332565b9050919050565b61036b81610351565b8114610375575f80fd5b50565b5f8151905061038681610362565b92915050565b5f602082840312156103a1576103a061032e565b5b5f6103ae84828501610378565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043257607f821691505b602082108103610445576104446103ee565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261046c565b6104b1868361046c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104f56104f06104eb846104c9565b6104d2565b6104c9565b9050919050565b5f819050919050565b61050e836104db565b61052261051a826104fc565b848454610478565b825550505050565b5f90565b61053661052a565b610541818484610505565b505050565b5b81811015610564576105595f8261052e565b600181019050610547565b5050565b601f8211156105a95761057a8161044b565b6105838461045d565b81016020851015610592578190505b6105a661059e8561045d565b830182610546565b50505b505050565b5f82821c905092915050565b5f6105c95f19846008026105ae565b1980831691505092915050565b5f6105e183836105ba565b9150826002028217905092915050565b6105fa826103b7565b67ffffffffffffffff811115610613576106126103c1565b5b61061d825461041b565b610628828285610568565b5f60209050601f831160018114610659575f8415610647578287015190505b61065185826105d6565b8655506106b8565b601f1984166106678661044b565b5f5b8281101561068e57848901518255600182019150602085019450602081019050610669565b868310156106ab57848901516106a7601f8916826105ba565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156107425780860481111561071e5761071d6106c0565b5b600185161561072d5780820291505b808102905061073b856106ed565b9450610702565b94509492505050565b5f8261075a5760019050610815565b81610767575f9050610815565b816001811461077d5760028114610787576107b6565b6001915050610815565b60ff841115610799576107986106c0565b5b8360020a9150848211156107b0576107af6106c0565b5b50610815565b5060208310610133831016604e8410600b84101617156107eb5782820a9050838111156107e6576107e56106c0565b5b610815565b6107f884848460016106f9565b9250905081840481111561080f5761080e6106c0565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610832826104c9565b915061083d8361081c565b925061086a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461074b565b905092915050565b5f61087c826104c9565b9150610887836104c9565b9250828202610895816104c9565b915082820484148315176108ac576108ab6106c0565b5b5092915050565b60805160a051612da66108f75f395f81816107ff01528181611adb01528181611b4401528181611bee0152611c1a01525f8181611139015261192f0152612da65ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c806370a08231116100b6578063a9059cbb1161007a578063a9059cbb14610362578063b88d4fde14610392578063c87b56dd146103ae578063dd62ed3e146103de578063e985e9c51461040e578063f2fde38b1461043e57610140565b806370a08231146102aa5780638da5cb5b146102da57806395d89b41146102f85780639b19251a14610316578063a22cb4651461034657610140565b80632b968958116101085780632b968958146101fc578063313ce5671461020657806342842e0e146102245780634f02c4201461024057806353d6fd591461025e5780636352211e1461027a57610140565b806306fdde0314610144578063081812fc14610162578063095ea7b31461019257806318160ddd146101c257806323b872dd146101e0575b5f80fd5b61014c61045a565b6040516101599190612475565b60405180910390f35b61017c600480360381019061017791906124d0565b6104e6565b604051610189919061253a565b60405180910390f35b6101ac60048036038101906101a7919061257d565b610516565b6040516101b991906125d5565b60405180910390f35b6101ca6107fd565b6040516101d791906125fd565b60405180910390f35b6101fa60048036038101906101f59190612616565b610821565b005b610204611018565b005b61020e611137565b60405161021b9190612681565b60405180910390f35b61023e60048036038101906102399190612616565b61115b565b005b61024861128a565b60405161025591906125fd565b60405180910390f35b610278600480360381019061027391906126c4565b611290565b005b610294600480360381019061028f91906124d0565b61136c565b6040516102a1919061253a565b60405180910390f35b6102c460048036038101906102bf9190612702565b61140a565b6040516102d191906125fd565b60405180910390f35b6102e261141f565b6040516102ef919061253a565b60405180910390f35b610300611442565b60405161030d9190612475565b60405180910390f35b610330600480360381019061032b9190612702565b6114ce565b60405161033d91906125d5565b60405180910390f35b610360600480360381019061035b91906126c4565b6114eb565b005b61037c6004803603810190610377919061257d565b6115e3565b60405161038991906125d5565b60405180910390f35b6103ac60048036038101906103a7919061278e565b6115f7565b005b6103c860048036038101906103c391906124d0565b61172c565b6040516103d59190612475565b60405180910390f35b6103f860048036038101906103f39190612812565b61175d565b60405161040591906125fd565b60405180910390f35b61042860048036038101906104239190612812565b61177d565b60405161043591906125d5565b60405180910390f35b61045860048036038101906104539190612702565b6117a7565b005b600180546104679061287d565b80601f01602080910402602001604051908101604052809291908181526020018280546104939061287d565b80156104de5780601f106104b5576101008083540402835291602001916104de565b820191905f5260205f20905b8154815290600101906020018083116104c157829003601f168201915b505050505081565b6006602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354821115801561052857505f82115b15610710575f60085f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561061f575060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610656576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360065f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161070291906125fd565b60405180910390a3506107f3565b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107ea91906125fd565b60405180910390a35b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003548111610ed95760085f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146108bf576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610924576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156109e2575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610a4a575060065f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610a81576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a8961192c565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ad491906128da565b92505081905550610ae361192c565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610c3991906128da565b81548110610c4a57610c4961290d565b5b905f5260205f20015490508060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600a5f8581526020019081526020015f205481548110610cb657610cb561290d565b5b905f5260205f20018190555060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480610d0f57610d0e61293a565b5b600190038181905f5260205f20015f90559055600a5f8381526020019081526020015f2054600a5f8381526020019081526020015f208190555060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610df791906128da565b600a5f8481526020019081526020015f2081905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487610ebe61192c565b604051610ecb91906125fd565b60405180910390a350611013565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611005578181610f8891906128da565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61101084848461195f565b50505b505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461109c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b7f000000000000000000000000000000000000000000000000000000000000000081565b611166838383610821565b5f8273ffffffffffffffffffffffffffffffffffffffff163b1415801561124e575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b81526004016111ec9392919061299a565b6020604051808303815f875af1158015611208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122c9190612a37565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611285576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60035481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611314576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611405576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6004602052805f5260405f205f915090505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461144f9061287d565b80601f016020809104026020016040519081016040528092919081815260200182805461147b9061287d565b80156114c65780601f1061149d576101008083540402835291602001916114c6565b820191905f5260205f20905b8154815290600101906020018083116114a957829003601f168201915b505050505081565b600b602052805f5260405f205f915054906101000a900460ff1681565b8060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115d791906125d5565b60405180910390a35050565b5f6115ef33848461195f565b905092915050565b611602858585610821565b5f8473ffffffffffffffffffffffffffffffffffffffff163b141580156116ee575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b815260040161168c959493929190612a9c565b6020604051808303815f875af11580156116a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116cc9190612a37565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611725576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b606061173782611d23565b6040516020016117479190612b48565b6040516020818303038152906040529050919050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b6007602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461182b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611890576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f7f0000000000000000000000000000000000000000000000000000000000000000600a61195a9190612c9c565b905090565b5f8061196961192c565b90505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a3991906128da565b925050819055508460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540192505081905550600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611b9d575f7f000000000000000000000000000000000000000000000000000000000000000060045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b429190612d13565b7f000000000000000000000000000000000000000000000000000000000000000084611b6e9190612d13565b611b7891906128da565b90505f5b81811015611b9a57611b8d89611ded565b8080600101915050611b7c565b50505b600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611cb0575f7f000000000000000000000000000000000000000000000000000000000000000082611c189190612d13565b7f000000000000000000000000000000000000000000000000000000000000000060045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c819190612d13565b611c8b91906128da565b90505f5b81811015611cad57611ca088612032565b8080600101915050611c8f565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148787604051611d0d91906125fd565b60405180910390a3600193505050509392505050565b60605f6001611d31846122b4565b0190505f8167ffffffffffffffff811115611d4f57611d4e612d43565b5b6040519080825280601f01601f191660200182016040528015611d815781602001600182028036833780820191505090505b5090505f82602001820190505b600115611de2578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611dd757611dd6612ce6565b5b0494505f8503611d8e575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e52576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050611edd91906128da565b81548110611eee57611eed61290d565b5b905f5260205f200154905060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480611f4657611f4561293a565b5b600190038181905f5260205f20015f90559055600a5f8281526020019081526020015f205f905560085f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612097576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f81548092919060010191905055505f60035490505f73ffffffffffffffffffffffffffffffffffffffff1660085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612143576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054905061224091906128da565b600a5f8381526020019081526020015f2081905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612310577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161230657612305612ce6565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061234d576d04ee2d6d415b85acef8100000000838161234357612342612ce6565b5b0492506020810190505b662386f26fc10000831061237c57662386f26fc10000838161237257612371612ce6565b5b0492506010810190505b6305f5e10083106123a5576305f5e100838161239b5761239a612ce6565b5b0492506008810190505b61271083106123ca5761271083816123c0576123bf612ce6565b5b0492506004810190505b606483106123ed57606483816123e3576123e2612ce6565b5b0492506002810190505b600a83106123fc576001810190505b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61244782612405565b612451818561240f565b935061246181856020860161241f565b61246a8161242d565b840191505092915050565b5f6020820190508181035f83015261248d818461243d565b905092915050565b5f80fd5b5f80fd5b5f819050919050565b6124af8161249d565b81146124b9575f80fd5b50565b5f813590506124ca816124a6565b92915050565b5f602082840312156124e5576124e4612495565b5b5f6124f2848285016124bc565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612524826124fb565b9050919050565b6125348161251a565b82525050565b5f60208201905061254d5f83018461252b565b92915050565b61255c8161251a565b8114612566575f80fd5b50565b5f8135905061257781612553565b92915050565b5f806040838503121561259357612592612495565b5b5f6125a085828601612569565b92505060206125b1858286016124bc565b9150509250929050565b5f8115159050919050565b6125cf816125bb565b82525050565b5f6020820190506125e85f8301846125c6565b92915050565b6125f78161249d565b82525050565b5f6020820190506126105f8301846125ee565b92915050565b5f805f6060848603121561262d5761262c612495565b5b5f61263a86828701612569565b935050602061264b86828701612569565b925050604061265c868287016124bc565b9150509250925092565b5f60ff82169050919050565b61267b81612666565b82525050565b5f6020820190506126945f830184612672565b92915050565b6126a3816125bb565b81146126ad575f80fd5b50565b5f813590506126be8161269a565b92915050565b5f80604083850312156126da576126d9612495565b5b5f6126e785828601612569565b92505060206126f8858286016126b0565b9150509250929050565b5f6020828403121561271757612716612495565b5b5f61272484828501612569565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261274e5761274d61272d565b5b8235905067ffffffffffffffff81111561276b5761276a612731565b5b60208301915083600182028301111561278757612786612735565b5b9250929050565b5f805f805f608086880312156127a7576127a6612495565b5b5f6127b488828901612569565b95505060206127c588828901612569565b94505060406127d6888289016124bc565b935050606086013567ffffffffffffffff8111156127f7576127f6612499565b5b61280388828901612739565b92509250509295509295909350565b5f806040838503121561282857612827612495565b5b5f61283585828601612569565b925050602061284685828601612569565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061289457607f821691505b6020821081036128a7576128a6612850565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128e48261249d565b91506128ef8361249d565b9250828203905081811115612907576129066128ad565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82825260208201905092915050565b50565b5f6129855f83612967565b915061299082612977565b5f82019050919050565b5f6080820190506129ad5f83018661252b565b6129ba602083018561252b565b6129c760408301846125ee565b81810360608301526129d88161297a565b9050949350505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612a16816129e2565b8114612a20575f80fd5b50565b5f81519050612a3181612a0d565b92915050565b5f60208284031215612a4c57612a4b612495565b5b5f612a5984828501612a23565b91505092915050565b828183375f83830152505050565b5f612a7b8385612967565b9350612a88838584612a62565b612a918361242d565b840190509392505050565b5f608082019050612aaf5f83018861252b565b612abc602083018761252b565b612ac960408301866125ee565b8181036060830152612adc818486612a70565b90509695505050505050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f000000000000815250565b5f81905092915050565b5f612b2282612405565b612b2c8185612b0e565b9350612b3c81856020860161241f565b80840191505092915050565b5f612b5282612ae8565b601a82019150612b628284612b18565b915081905092915050565b5f8160011c9050919050565b5f808291508390505b6001851115612bc257808604811115612b9e57612b9d6128ad565b5b6001851615612bad5780820291505b8081029050612bbb85612b6d565b9450612b82565b94509492505050565b5f82612bda5760019050612c95565b81612be7575f9050612c95565b8160018114612bfd5760028114612c0757612c36565b6001915050612c95565b60ff841115612c1957612c186128ad565b5b8360020a915084821115612c3057612c2f6128ad565b5b50612c95565b5060208310610133831016604e8410600b8410161715612c6b5782820a905083811115612c6657612c656128ad565b5b612c95565b612c788484846001612b79565b92509050818404811115612c8f57612c8e6128ad565b5b81810290505b9392505050565b5f612ca68261249d565b9150612cb183612666565b9250612cde7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612bcb565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d1d8261249d565b9150612d288361249d565b925082612d3857612d37612ce6565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffdfea26469706673582212205db131db799556cc41195187055931dd5405d18b55bec003905844c6c2bfae7064736f6c634300081a0033000000000000000000000000bc7a2925d5c194d1dbedeb99f13c326851dc8230