LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIAogKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCiAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCiAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqIAogKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKiAKICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgogKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICogdW5kZXIgdGhlIExpY2Vuc2UuCiAqIAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgoKLy8gTUFSS0VSKHVwZGF0ZV9wcmVjb21wLnB5KTogYXV0b2dlbiBpbmNsdWRlIHN0YXRlbWVudCwgZG8gbm90IHJlbW92ZQojaW5jbHVkZSAicHJlY29tcGlsZWRfYmFzaWMuaHh4IgoKI2luY2x1ZGUgInJ1bnRpbWUuaHh4IgojaW5jbHVkZSAic3Rkb2JqLmh4eCIKI2luY2x1ZGUgPGJhc2ljL3Nic3Rkb2JqLmh4eD4KI2luY2x1ZGUgInJ0bHByb3RvLmh4eCIKI2luY2x1ZGUgInNiaW50ZXJuLmh4eCIKCi8vIERhcyBuQXJncy1GZWxkIGVpbmVzIFRhYmVsbGVuZWludHJhZ3MgaXN0IHdpZSBmb2xndCB2ZXJzY2hsdWVzc2VsdDoKLy8gWnVyIFplaXQgd2lyZCBkYXZvbiBhdXNnZWdhbmdlbiwgZGFzcyBQcm9wZXJ0aWVzIGtlaW5lIFBhcmFtZXRlcgovLyBiZW5vZXRpZ2VuIQoKI2RlZmluZSBfQVJHU01BU0sgICAweDAwN0YgIC8vIEJpcyB6dSAxMjcgQXJndW1lbnRlCiNkZWZpbmUgX0NPTVBUTUFTSyAgMHgwMDgwICAvLyBPbmx5IHZhbGlkIGluIGNvbXBhdGliaWxpdHkgbW9kZQojZGVmaW5lIF9SV01BU0sgICAgIDB4MEYwMCAgLy8gTWFza2UgZnVlciBSL1ctQml0cwojZGVmaW5lIF9UWVBFTUFTSyAgIDB4RjAwMCAgLy8gTWFza2UgZnVlciBkZW4gVHlwIGRlcyBFaW50cmFncwoKI2RlZmluZSBfUkVBRCAgICAgICAweDAxMDAgIC8vIGthbm4gZ2VsZXNlbiB3ZXJkZW4KI2RlZmluZSBfQldSSVRFICAgICAweDAyMDAgIC8vIGthbm4gYXMgTHZhbHVlIHZlcndlbmRldCB3ZXJkZW4KI2RlZmluZSBfTFZBTFVFICAgICBfQldSSVRFIC8vIGthbm4gYXMgTHZhbHVlIHZlcndlbmRldCB3ZXJkZW4KI2RlZmluZSBfUkVBRFdSSVRFICAweDAzMDAgIC8vIGJlaWRlcwojZGVmaW5lIF9PUFQgICAgICAgIDB4MDQwMCAgLy8gUGFyYW1ldGVyIGlzdCBvcHRpb25hbAojZGVmaW5lCV9DT05TVAkJMHgwODAwCS8vIFByb3BlcnR5IGlzdCBjb25zdAojZGVmaW5lIF9NRVRIT0QgICAgIDB4MzAwMCAgLy8gTWFza2VuLUJpdHMgZnVlciBlaW5lIE1ldGhvZGUKI2RlZmluZSBfUFJPUEVSVFkgICAweDQwMDAgIC8vIE1hc2tlbi1CaXQgZnVlciBlaW5lIFByb3BlcnR5CiNkZWZpbmUgX09CSkVDVCAgICAgMHg4MDAwICAvLyBNYXNrZW4tQml0IGZ1ZXIgZWluIE9iamVrdAoJCQkJCQkJLy8gS29tYmluYXRpb24gdm9uIG9iZXJlbiBCaXRzOgojZGVmaW5lIF9GVU5DVElPTiAgIDB4MTEwMCAgLy8gTWFza2UgZnVlciBGdW5jdGlvbgojZGVmaW5lIF9MRlVOQ1RJT04gIDB4MTMwMCAgLy8gTWFza2UgZnVlciBGdW5jdGlvbiwgZGllIGF1Y2ggYWxzIEx2YWx1ZSBnZWh0CiNkZWZpbmUgX1NVQiAgICAgICAgMHgyMTAwICAvLyBNYXNrZSBmdWVyIFN1YgojZGVmaW5lIF9ST1BST1AgICAgIDB4NDEwMCAgLy8gTWFza2UgUmVhZCBPbmx5LVByb3BlcnR5CiNkZWZpbmUgX1dPUFJPUCAgICAgMHg0MjAwICAvLyBNYXNrZSBXcml0ZSBPbmx5LVByb3BlcnR5CiNkZWZpbmUgX1JXUFJPUCAgICAgMHg0MzAwICAvLyBNYXNrZSBSZWFkL1dyaXRlLVByb3BlcnR5CiNkZWZpbmUJX0NQUk9QCQkweDQ5MDAJLy8gTWFza2UgZnVlciBLb25zdGFudGUKCnN0cnVjdCBNZXRob2RzIHsKCWNvbnN0IGNoYXIqIHBOYW1lOyAgICAgIC8vIE5hbWUgZGVzIEVpbnRyYWdzCglTYnhEYXRhVHlwZSBlVHlwZTsgICAgICAvLyBEYXRlbnR5cAoJc2hvcnQgICAgICAgbkFyZ3M7ICAgICAgLy8gQXJndW1lbnRlIHVuZCBGbGFncwoJUnRsQ2FsbCAgICAgcEZ1bmM7ICAgICAgLy8gRnVuY3Rpb24gUG9pbnRlcgoJc2FsX3VJbnQxNgkJbkhhc2g7CQkvLyBIYXNoY29kZQp9OwoKc3RhdGljIE1ldGhvZHMgYU1ldGhvZHNbXSA9IHsKCnsgIkFib3V0U3RhckJhc2ljIiwgU2J4TlVMTCwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEFib3V0U3RhckJhc2ljKSwwICB9LAogIHsgIk5hbWUiLAkJCVNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiQWJzIiwgICAgICAgICAgICBTYnhET1VCTEUsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQWJzKSwwICAgICAgICAgICAgIH0sCiAgeyAibnVtYmVyIiwgICAgICAgU2J4RE9VQkxFLCAwLE5VTEwsMCB9LAp7ICJBcnJheSIsCQkJU2J4T0JKRUNULCAgICAgICAgX0ZVTkNUSU9OLCBSVExOQU1FKEFycmF5KSwwCSAJICAgIH0sCnsgIkFzYyIsICAgICAgICAgICAgU2J4TE9ORywgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEFzYyksMCAgICAgICAgICAgICB9LAogIHsgInN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiQXNjVyIsICAgICAgICAgICBTYnhMT05HLCAgICAgIDEgfCBfRlVOQ1RJT04gfCBfQ09NUFRNQVNLLCBSVExOQU1FKEFzYyksMH0sCiAgeyAic3RyaW5nIiwgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJBdG4iLCAgICAgICAgICAgIFNieERPVUJMRSwgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShBdG4pLDAgICAgICAgICAgICAgfSwKICB7ICJudW1iZXIiLCAgICAgICBTYnhET1VCTEUsIDAsTlVMTCwwIH0sCnsgIkFUVFJfQVJDSElWRSIsICAgU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKEFUVFJfQVJDSElWRSksMCAgICB9LAp7ICJBVFRSX0RJUkVDVE9SWSIsIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShBVFRSX0RJUkVDVE9SWSksMCAgfSwKeyAiQVRUUl9ISURERU4iLCAgICBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoQVRUUl9ISURERU4pLDAgICAgIH0sCnsgIkFUVFJfTk9STUFMIiwgICAgU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKEFUVFJfTk9STUFMKSwwICAgICB9LAp7ICJBVFRSX1JFQURPTkxZIiwgIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShBVFRSX1JFQURPTkxZKSwwICAgfSwKeyAiQVRUUl9TWVNURU0iLCAgICBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoQVRUUl9TWVNURU0pLDAgICAgIH0sCnsgIkFUVFJfVk9MVU1FIiwgICAgU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKEFUVFJfVk9MVU1FKSwwICAgICB9LAoKeyAiQmVlcCIsICAgICAgICAgICBTYnhOVUxMLCAgICAgICAgICBfRlVOQ1RJT04sIFJUTE5BTUUoQmVlcCksMCAgICAgICAgICAgIH0sCnsgIkJsdWUiLCAgICAgICAgU2J4SU5URUdFUiwgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEJsdWUpLDAgICAgICAgICAgICAgICB9LAogIHsgIlJHQi1WYWx1ZSIsICAgICBTYnhMT05HLCAwLE5VTEwsMCB9LAoKeyAiQ2FsbEJ5TmFtZSIsICAgICBTYnhWQVJJQU5ULAkgIDMgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ2FsbEJ5TmFtZSksMCB9LAogIHsgIk9iamVjdCIsCQlTYnhPQkpFQ1QsICAwLE5VTEwsMCB9LAogIHsgIlByb2NlZHVyZU5hbWUiLFNieFNUUklORywgIDAsTlVMTCwwIH0sCiAgeyAiQ2FsbFR5cGUiLCAgICAgU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKeyAiQ0Jvb2wiLCAgICAgICAgICBTYnhCT09MLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ0Jvb2wpLDAgICAgICAgICAgIH0sCiAgeyAiZXhwcmVzc2lvbiIsICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKeyAiQ0J5dGUiLCAgICAgICAgICBTYnhCWVRFLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ0J5dGUpLDAgICAgICAgICAgIH0sCiAgeyAiZXhwcmVzc2lvbiIsICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKeyAiQ0N1ciIsICAgICAgICAgICBTYnhDVVJSRU5DWSwgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ0N1ciksMCAgICAgICAgICAgIH0sCiAgeyAiZXhwcmVzc2lvbiIsICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKeyAiQ0RhdGUiLCAgICAgICAgICBTYnhEQVRFLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ0RhdGUpLDAgICAgICAgICAgIH0sCiAgeyAiZXhwcmVzc2lvbiIsICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKeyAiQ0RhdGVGcm9tSXNvIiwgICBTYnhEQVRFLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ0RhdGVGcm9tSXNvKSwwICAgIH0sCiAgeyAiSXNvRGF0ZSIsICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJDRGF0ZVRvSXNvIiwgICAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShDRGF0ZVRvSXNvKSwwICAgICAgfSwKICB7ICJEYXRlIiwgICAgICAgICBTYnhEQVRFLCAwLE5VTEwsMCB9LAp7ICJDRGVjIiwgICAgICAgICAgIFNieERFQ0lNQUwsICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShDRGVjKSwwICAgICAgICAgICAgfSwKICB7ICJleHByZXNzaW9uIiwgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJDRGJsIiwgICAgICAgICAgIFNieERPVUJMRSwgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShDRGJsKSwwICAgICAgICAgICAgfSwKICB7ICJleHByZXNzaW9uIiwgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJDRl9CSVRNQVAiLCAgICAgIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShDRl9CSVRNQVApLDAgICAgICAgfSwKeyAiQ0ZfTUVUQUZJTEVQSUNUIixTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoQ0ZfTUVUQUZJTEVQSUNUKSwwIH0sCnsgIkNGX1RFWFQiLAkJU2J4SU5URUdFUiwJCSAgX0NQUk9QLCAgICBSVExOQU1FKENGX1RFWFQpLDAgICAgICAgICB9LAp7ICJDaERpciIsICAgICAgICAgIFNieE5VTEwsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShDaERpciksMCAgICAgICAgICAgfSwKICB7ICJzdHJpbmciLCAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkNoRHJpdmUiLCAgICAgICAgU2J4TlVMTCwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKENoRHJpdmUpLDAgICAgICAgICB9LAogIHsgInN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKCnsgIkNob29zZSIsCQkJU2J4VkFSSUFOVCwgICAyIHwgX0ZVTkNUSU9OLCBSVExOQU1FKENob29zZSksMAkJCX0sCiAgeyAiSW5kZXgiLCAgIAkJU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKICB7ICJFeHByZXNzaW9uIiwgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAoKeyAiQ2hyIiwgICAgICAgICAgICBTYnhTVFJJTkcsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ2hyKSwwICAgICAgICAgICAgIH0sCiAgeyAic3RyaW5nIiwgICAgICAgU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKeyAiQ2hyVyIsICAgICAgICAgICBTYnhTVFJJTkcsICAgIDEgfCBfRlVOQ1RJT04gfCBfQ09NUFRNQVNLLCBSVExOQU1FKENoclcpLDB9LAogIHsgInN0cmluZyIsICAgICAgIFNieElOVEVHRVIsIDAsTlVMTCwwIH0sCgp7ICJDSW50IiwgICAgICAgICAgIFNieElOVEVHRVIsICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShDSW50KSwwICAgICAgICAgICAgfSwKICB7ICJleHByZXNzaW9uIiwgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJDTEVBUl9BTExUQUJTIiwgIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShDTEVBUl9BTExUQUJTKSwwICAgfSwKeyAiQ0xFQVJfVEFCIiwgICAgICBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoQ0xFQVJfVEFCKSwwICAgICAgCX0sCnsgIkNMbmciLCAgICAgICAgICAgU2J4TE9ORywgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKENMbmcpLDAgICAgICAgICAgICB9LAogIHsgImV4cHJlc3Npb24iLCAgIFNieFZBUklBTlQsIDAsTlVMTCwwIH0sCnsgIkNvbXBhdGliaWxpdHlNb2RlIiwJU2J4Qk9PTCwgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ29tcGF0aWJpbGl0eU1vZGUpLDB9LAogIHsgImJFbmFibGUiLAkJU2J4Qk9PTCwgMCxOVUxMLDAgfSwKeyAiQ29udmVydEZyb21VcmwiLCBTYnhTVFJJTkcsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ29udmVydEZyb21VcmwpLDAgIH0sCiAgeyAiVXJsIiwgICAgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJDb252ZXJ0VG9VcmwiLCAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShDb252ZXJ0VG9VcmwpLDAgICAgfSwKICB7ICJTeXN0ZW1QYXRoIiwgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkNvcyIsICAgICAgICAgICAgU2J4RE9VQkxFLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKENvcyksMCAgICAgICAgICAgICB9LAogIHsgIm51bWJlciIsICAgICAgIFNieERPVUJMRSwgMCxOVUxMLDAgfSwKeyAiQ3JlYXRlT2JqZWN0IiwgICBTYnhPQkpFQ1QsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoIENyZWF0ZU9iamVjdCApLDAgIH0sCiAgeyAiY2xhc3MiLCAgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJDYXB0dXJlQXNzZXJ0aW9ucyIsICBTYnhOVUxMLCAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKENhcHR1cmVBc3NlcnRpb25zKSwgMCB9LAogIHsgIm1ldGhvZE5hbWUiLCAgIFNieFNUUklORywgMCwgTlVMTCwgMCB9LAp7ICJDcmVhdGVVbm9MaXN0ZW5lciIsU2J4T0JKRUNULCAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoIENyZWF0ZVVub0xpc3RlbmVyICksMCB9LAogIHsgInByZWZpeCIsICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAidHlwZW5hbWUiLCAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJDcmVhdGVVbm9EaWFsb2ciLFNieE9CSkVDVCwgICAgMiB8IF9GVU5DVElPTiwgUlRMTkFNRSggQ3JlYXRlVW5vRGlhbG9nICksMCB9LAogIHsgImRpYWxvZ2xpYnJhcnkiLFNieE9CSkVDVCwgMCxOVUxMLDAgfSwKICB7ICJkaWFsb2duYW1lIiwgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkNyZWF0ZVVub1NlcnZpY2UiLFNieE9CSkVDVCwgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKCBDcmVhdGVVbm9TZXJ2aWNlICksMCB9LAogIHsgInNlcnZpY2VuYW1lIiwgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiQ3JlYXRlVW5vU2VydmljZVdpdGhBcmd1bWVudHMiLFNieE9CSkVDVCwgICAyIHwgX0ZVTkNUSU9OLCBSVExOQU1FKCBDcmVhdGVVbm9TZXJ2aWNlV2l0aEFyZ3VtZW50cyApLDAgfSwKICB7ICJzZXJ2aWNlbmFtZSIsICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiYXJndW1lbnRzIiwgIFNieEFSUkFZLCAwLE5VTEwsMCB9LAp7ICJDcmVhdGVVbm9TdHJ1Y3QiLFNieE9CSkVDVCwgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRSggQ3JlYXRlVW5vU3RydWN0ICksMCB9LAogIHsgImNsYXNzbmFtZSIsICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiQ3JlYXRlVW5vVmFsdWUiLCBTYnhPQkpFQ1QsICAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoIENyZWF0ZVVub1ZhbHVlICksMCB9LAogIHsgInR5cGUiLCAgICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJ2YWx1ZSIsICAgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJDcmVhdGVQcm9wZXJ0eVNldCIsU2J4T0JKRUNULCAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKCBDcmVhdGVQcm9wZXJ0eVNldCApLDAgfSwKICB7ICJ2YWx1ZXMiLCAgU2J4QVJSQVksIDAsTlVMTCwwIH0sCnsgIkNTbmciLCAgICAgICAgICAgU2J4U0lOR0xFLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKENTbmcpLDAgICAgICAgICAgICB9LAogIHsgImV4cHJlc3Npb24iLCAgIFNieFZBUklBTlQsIDAsTlVMTCwwIH0sCnsgIkNTdHIiLCAgICAgICAgICAgU2J4U1RSSU5HLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKENTdHIpLDAgICAgICAgICAgICB9LAogIHsgImV4cHJlc3Npb24iLCAgIFNieFZBUklBTlQsIDAsTlVMTCwwIH0sCnsgIkN1ckRpciIsICAgICAgICAgU2J4U1RSSU5HLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEN1ckRpciksMCAgICAgICAgICB9LAogIHsgInN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiQ1ZhciIsICAgICAgICAgICBTYnhWQVJJQU5ULCAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ1ZhciksMCAgICAgICAgICAgIH0sCiAgeyAiZXhwcmVzc2lvbiIsICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKeyAiQ1ZFcnIiLCAgICAgICAgICBTYnhWQVJJQU5ULCAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoQ1ZFcnIpLDAgICAgICAgICAgIH0sCiAgeyAiZXhwcmVzc2lvbiIsICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKCnsgIkRhdGUiLCAgICAgICAgICAgU2J4REFURSwgICAgICAgICAgX0xGVU5DVElPTixSVExOQU1FKERhdGUpLDAgICAgICAgICAgICB9LAp7ICJEYXRlQWRkIiwgICAgICAgIFNieERBVEUsCSAgMyB8IF9GVU5DVElPTiwgUlRMTkFNRShEYXRlQWRkKSwwICAgICAgICAgfSwKICB7ICJJbnRlcnZhbCIsICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiTnVtYmVyIiwgICAgIAlTYnhMT05HLCAwLE5VTEwsMCB9LAogIHsgIkRhdGUiLAkJCVNieERBVEUsIDAsTlVMTCwwIH0sCnsgIkRhdGVEaWZmIiwgICAgICAgU2J4RE9VQkxFLCAgICA1IHwgX0ZVTkNUSU9OLCBSVExOQU1FKERhdGVEaWZmKSwwICAgICAgICB9LAogIHsgIkludGVydmFsIiwgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJEYXRlMSIsICAgICAJU2J4REFURSwgMCxOVUxMLDAgfSwKICB7ICJEYXRlMiIsCQlTYnhEQVRFLCAwLE5VTEwsMCB9LAogIHsgIkZpcnN0ZGF5b2Z3ZWVrIiAsIFNieElOVEVHRVIsIF9PUFQsTlVMTCwwIH0sCiAgeyAiRmlyc3R3ZWVrb2Z5ZWFyIiwgU2J4SU5URUdFUiwgX09QVCxOVUxMLDAgfSwKeyAiRGF0ZVBhcnQiLCAgICAgICBTYnhMT05HLCAgICAgIDQgfCBfRlVOQ1RJT04sIFJUTE5BTUUoRGF0ZVBhcnQpLDAgICAgICAgIH0sCiAgeyAiSW50ZXJ2YWwiLCAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAogIHsgIkRhdGUiLCAgICAgCVNieERBVEUsIDAsTlVMTCwwIH0sCiAgeyAiRmlyc3RkYXlvZndlZWsiICwgU2J4SU5URUdFUiwgX09QVCwgTlVMTCwwIH0sCiAgeyAiRmlyc3R3ZWVrb2Z5ZWFyIiwgU2J4SU5URUdFUiwgX09QVCwgTlVMTCwwIH0sCnsgIkRhdGVTZXJpYWwiLCAgICAgU2J4REFURSwgICAgICAzIHwgX0ZVTkNUSU9OLCBSVExOQU1FKERhdGVTZXJpYWwpLDAgICAgICB9LAogIHsgIlllYXIiLCAgICAgICAgIFNieElOVEVHRVIsIDAsTlVMTCwwIH0sCiAgeyAiTW9udGgiLCAgICAgICAgU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKICB7ICJEYXkiLCAgICAgICAgICBTYnhJTlRFR0VSLCAwLE5VTEwsMCB9LAp7ICJEYXRlVmFsdWUiLCAgICAgIFNieERBVEUsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShEYXRlVmFsdWUpLDAgICAgICAgfSwKICB7ICJTdHJpbmciLCAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkRheSIsICAgICAgICAgICAgU2J4SU5URUdFUiwgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKERheSksMCAgICAgICAgICAgICB9LAogIHsgIkRhdGUiLCAgICAgICAgIFNieERBVEUsIDAsTlVMTCwwIH0sCnsgIkRkZWV4ZWN1dGUiLCAgICAgU2J4TlVMTCwgICAyIHwgX0ZVTkNUSU9OLCBSVExOQU1FKERERUV4ZWN1dGUpLDAgICAgICAgICB9LAogIHsgIkNoYW5uZWwiLCAgICAgICAgIFNieExPTkcsIDAsTlVMTCwwIH0sCiAgeyAiQ29tbWFuZCIsICAgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJEZGVpbml0aWF0ZSIsICAgIFNieElOVEVHRVIsICAgMiB8IF9GVU5DVElPTiwgUlRMTkFNRShEREVJbml0aWF0ZSksMCAgICAgfSwKICB7ICJBcHBsaWNhdGlvbiIsICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiVG9waWMiLCAgICAgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJEZGVwb2tlIiwgICAgCVNieE5VTEwsICAgMyB8IF9GVU5DVElPTiwgUlRMTkFNRShEREVQb2tlKSwwICAgICAgICAgICAgfSwKICB7ICJDaGFubmVsIiwgICAgICAgICBTYnhMT05HLCAwLE5VTEwsMCB9LAogIHsgIkl0ZW0iLCAgICAgCSAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJEYXRhIiwgICAgICAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkRkZXJlcXVlc3QiLCAgICAgU2J4U1RSSU5HLCAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoRERFUmVxdWVzdCksMCAgICAgICB9LAogIHsgIkNoYW5uZWwiLCAgICAgICAgIFNieExPTkcsIDAsTlVMTCwwIH0sCiAgeyAiSXRlbSIsICAgICAgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJEZGV0ZXJtaW5hdGUiLCAgIFNieE5VTEwsICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShEREVUZXJtaW5hdGUpLDAgICAgICAgfSwKICB7ICJDaGFubmVsIiwgICAgICAgICBTYnhMT05HLCAwLE5VTEwsMCB9LAp7ICJEZGV0ZXJtaW5hdGVhbGwiLCAgIFNieE5VTEwsICAgX0ZVTkNUSU9OLCBSVExOQU1FKERERVRlcm1pbmF0ZUFsbCksMCAgICAgfSwKeyAiRGltQXJyYXkiLAkJU2J4T0JKRUNULCAgICBfRlVOQ1RJT04sIFJUTE5BTUUoRGltQXJyYXkpLDAJCQl9LAp7ICJEaXIiLCAgICAgICAgICAgIFNieFNUUklORywgICAgMiB8IF9GVU5DVElPTiwgUlRMTkFNRShEaXIpLDAgICAgICAgICAgICAgfSwKICB7ICJGaWxlU3BlYyIsICAgICBTYnhTVFJJTkcsICAgICAgICBfT1BULCBOVUxMLDAgfSwKICB7ICJhdHRybWFzayIsICAgICBTYnhJTlRFR0VSLCAgICAgICBfT1BULCBOVUxMLDAgfSwKeyAiRG9FdmVudHMiLAkJU2J4RU1QVFksICAgICBfRlVOQ1RJT04sIFJUTE5BTUUoRG9FdmVudHMpLDAJCQl9LAp7ICJEdW1wQWxsT2JqZWN0cyIsIFNieEVNUFRZLCAgICAgMiB8IF9TVUIsIFJUTE5BTUUoRHVtcEFsbE9iamVjdHMpLDAgICAgICAgfSwKICB7ICJGaWxlU3BlYyIsICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiRHVtcEFsbCIsICAgICAgU2J4SU5URUdFUiwJCSAgX09QVCwgTlVMTCwwIH0sCgp7ICJFbXB0eSIsICAgICAgICBTYnhWQVJJQU5ULCAgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKEVtcHR5KSwwICAgICAgICAgfSwKeyAiRXF1YWxVbm9PYmplY3RzIixTYnhCT09MLCAgICAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoRXF1YWxVbm9PYmplY3RzKSwwIH0sCiAgeyAiVmFyaWFudCIsICAgICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJFbmFibGVSZXNjaGVkdWxlIiwJU2J4TlVMTCwgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoRW5hYmxlUmVzY2hlZHVsZSksMH0sCiAgeyAiYkVuYWJsZSIsCQlTYnhCT09MLCAwLE5VTEwsMCB9LAp7ICJFbnZpcm9uIiwgICAgICAgICAgICBTYnhTVFJJTkcsICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShFbnZpcm9uKSwwICAgICAgfSwKICB7ICJFbnZpcm9ubWVudHN0cmluZyIsU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJFT0YiLCAgICAgICAgICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShFT0YpLDAgICAgICAgICAgICAgfSwKICB7ICJDaGFubmVsIiwgICAgICBTYnhJTlRFR0VSLCAwLE5VTEwsMCB9LAp7ICJFcmwiLCAgICAgICAgICAgIFNieExPTkcsICAgICAgICAgIF9ST1BST1AsICAgUlRMTkFNRSggRXJsICksMCAgICAgICAgICAgfSwKeyAiRXJyIiwgICAgICAgICAgICBTYnhWQVJJQU5ULCAgICAgICBfUldQUk9QLCAgIFJUTE5BTUUoIEVyciApLDAgICAgICAgICAgIH0sCnsgIkVycm9yIiwgICAgICAgICAgU2J4U1RSSU5HLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKCBFcnJvciApLDAgICAgICAgICB9LAogIHsgImNvZGUiLCAgICAgICAgIFNieExPTkcsIDAsTlVMTCwwIH0sCnsgIkV4cCIsICAgICAgICAgICAgU2J4RE9VQkxFLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEV4cCksMCAgICAgICAgICAgICB9LAogIHsgIm51bWJlciIsICAgICAgIFNieERPVUJMRSwgMCxOVUxMLDAgfSwKCnsgIkZhbHNlIiwgICAgICAgICAgU2J4Qk9PTCwgICAgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKEZhbHNlKSwwICAgICAgICAgICB9LAp7ICJGaWxlQXR0ciIsICAgICAgIFNieElOVEVHRVIsICAgMiB8IF9GVU5DVElPTiwgUlRMTkFNRShGaWxlQXR0ciksMCAgICAgICAgfSwKICB7ICJDaGFubmVsIiwgICAgICBTYnhJTlRFR0VSLCAwLE5VTEwsMCB9LAogIHsgIkF0dHJpYnV0ZXMiLCAgIFNieElOVEVHRVIsIDAsTlVMTCwwIH0sCnsgIkZpbGVDb3B5IiwgICAgICAgU2J4TlVMTCwgICAgICAyIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEZpbGVDb3B5KSwwICAgICAgICB9LAogIHsgIlNvdXJjZSIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJEZXN0aW5hdGlvbiIsICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkZpbGVEYXRlVGltZSIsICAgU2J4U1RSSU5HLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEZpbGVEYXRlVGltZSksMCAgICB9LAogIHsgImZpbGVuYW1lIiwgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiRmlsZUV4aXN0cyIsICAgICBTYnhCT09MLCAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoRmlsZUV4aXN0cyksMCAgICAgICAgIH0sCiAgeyAiZmlsZW5hbWUiLCAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJGaWxlTGVuIiwgICAgICAgIFNieExPTkcsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShGaWxlTGVuKSwwICAgICAgICAgfSwKICB7ICJmaWxlbmFtZSIsICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkZpbmRPYmplY3QiLAkJU2J4T0JKRUNULAkgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoRmluZE9iamVjdCksMCAgICAgIH0sCiAgeyAiTmFtZSIsICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkZpbmRQcm9wZXJ0eU9iamVjdCIsICAgU2J4T0JKRUNULAkgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoRmluZFByb3BlcnR5T2JqZWN0KSwwIH0sCiAgeyAiT2JqZWN0IiwJCVNieE9CSkVDVCwgMCxOVUxMLDAgfSwKICB7ICJOYW1lIiwgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiRml4IiwgICAgICAgICAgICBTYnhET1VCTEUsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoRml4KSwwICAgICAgICAgICAgIH0sCiAgeyAibnVtYmVyIiwgICAgICAgU2J4RE9VQkxFLCAwLE5VTEwsMCB9LAp7ICJGb3JtYXQiLCAgICAgICAgIFNieFNUUklORywgICAgMiB8IF9GVU5DVElPTiwgUlRMTkFNRShGb3JtYXQpLDAgICAgICAgICAgfSwKICB7ICJleHByZXNzaW9uIiwgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAogIHsgImZvcm1hdCIsICAgICAgIFNieFNUUklORywgICAgICAgIF9PUFQsIE5VTEwsMCB9LAp7ICJGb3JtYXREYXRlVGltZSIsIFNieFNUUklORywgICAgMiB8IF9GVU5DVElPTiB8IF9DT01QVE1BU0ssIFJUTE5BTUUoRm9ybWF0RGF0ZVRpbWUpLDAgfSwKICB7ICJEYXRlIiwgICAgICAgICBTYnhEQVRFLCAwLE5VTEwsMCB9LAogIHsgIk5hbWVkRm9ybWF0IiwgIFNieElOVEVHRVIsICAgICAgICBfT1BULCBOVUxMLDAgfSwKeyAiRlJBTUVBTkNIT1JDSEFSIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShGUkFNRUFOQ0hPUkNIQVIpLDAgfSwKeyAiRlJBTUVBTkNIT1JQQUdFIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShGUkFNRUFOQ0hPUlBBR0UpLDAgfSwKeyAiRlJBTUVBTkNIT1JQQVJBIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShGUkFNRUFOQ0hPUlBBUkEpLDAgfSwKeyAiRnJlZUZpbGUiLCAgICAgICBTYnhJTlRFR0VSLCAgICBfRlVOQ1RJT04sIFJUTE5BTUUoRnJlZUZpbGUpLDAgICAgICAgICAgIH0sCnsgIkZyZWVMaWJyYXJ5IiwgICAgU2J4TlVMTCwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEZyZWVMaWJyYXJ5KSwwICAgICB9LAogIHsgIk1vZHVsZW5hbWUiLCAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKCnsgIkdldCIsICAgICAgICAgICAgU2J4TlVMTCwgICAzIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEdldCksMCAgICAgICAgICAgICAgICB9LAogIHsgImZpbGVudW1iZXIiLCAgIFNieElOVEVHRVIsIDAsTlVMTCwwIH0sCiAgeyAicmVjb3JkbnVtYmVyIiwgU2J4TE9ORywgMCxOVUxMLDAgfSwKICB7ICJ2YXJpYWJsZW5hbWUiLAlTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJHZXRBdHRyIiwgICAgICAgIFNieElOVEVHRVIsICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShHZXRBdHRyKSwwICAgICAgICAgfSwKICB7ICJmaWxlbmFtZSIsICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkdldERlZmF1bHRDb250ZXh0IiwgU2J4T0JKRUNULCAwIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEdldERlZmF1bHRDb250ZXh0KSwwIH0sCnsgIkdldERpYWxvZ1pvb21GYWN0b3JYIiwgIFNieERPVUJMRSwgICAgIF9GVU5DVElPTixSVExOQU1FKEdldERpYWxvZ1pvb21GYWN0b3JYKSwwIH0sCnsgIkdldERpYWxvZ1pvb21GYWN0b3JZIiwgIFNieERPVUJMRSwgICAgIF9GVU5DVElPTixSVExOQU1FKEdldERpYWxvZ1pvb21GYWN0b3JZKSwwIH0sCnsgIkdldEdVSVR5cGUiLCAgU2J4SU5URUdFUiwgICAgIF9GVU5DVElPTixSVExOQU1FKEdldEdVSVR5cGUpLDAgICAgICAgICAgICB9LAp7ICJHZXRHVUlWZXJzaW9uIiwgIFNieExPTkcsICAgICBfRlVOQ1RJT04sUlRMTkFNRShHZXRHVUlWZXJzaW9uKSwwICAgICAgICAgfSwKeyAiR2V0UGF0aFNlcGFyYXRvciIsICBTYnhTVFJJTkcsICAgICBfRlVOQ1RJT04sUlRMTkFNRShHZXRQYXRoU2VwYXJhdG9yKSwwIH0sCnsgIkdldFByb2Nlc3NTZXJ2aWNlTWFuYWdlciIsIFNieE9CSkVDVCwgMCB8IF9GVU5DVElPTiwgUlRMTkFNRShHZXRQcm9jZXNzU2VydmljZU1hbmFnZXIpLDAgfSwKeyAiR2V0U29sYXJWZXJzaW9uIiwgIFNieExPTkcsICAgICBfRlVOQ1RJT04sUlRMTkFNRShHZXRTb2xhclZlcnNpb24pLDAgICAgIH0sCnsgIkdldFN5c3RlbVRpY2tzIiwgIFNieExPTkcsICAgICAgX0ZVTkNUSU9OLFJUTE5BTUUoR2V0U3lzdGVtVGlja3MpLDAgICAgICB9LAp7ICJHZXRTeXN0ZW1UeXBlIiwgIFNieElOVEVHRVIsICAgIF9GVU5DVElPTixSVExOQU1FKEdldFN5c3RlbVR5cGUpLDAgICAgICAgfSwKeyAiR2xvYmFsU2NvcGUiLCAgICBTYnhPQkpFQ1QsICAgICBfRlVOQ1RJT04sUlRMTkFNRShHbG9iYWxTY29wZSksMCAgICAgICAgIH0sCnsgIkdyZWVuIiwgICAgICAgICAgU2J4SU5URUdFUiwgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEdyZWVuKSwwICAgICAgICAgICB9LAogIHsgIlJHQi1WYWx1ZSIsICAgICBTYnhMT05HLCAwLE5VTEwsMCB9LAoKeyAiSGFzVW5vSW50ZXJmYWNlcyIsCVNieEJPT0wsICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEhhc1Vub0ludGVyZmFjZXMpLDB9LAogIHsgIkludGVyZmFjZU5hbWUiLFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiSGV4IiwgICAgICAgICAgICBTYnhTVFJJTkcsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoSGV4KSwwICAgICAgICAgICAgIH0sCiAgeyAibnVtYmVyIiwgICAgICAgU2J4TE9ORywgMCxOVUxMLDAgfSwKeyAiSG91ciIsICAgICAgICAgICBTYnhJTlRFR0VSLCAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoSG91ciksMCAgICAgICAgICAgIH0sCiAgeyAiRGF0ZSIsICAgICAgICAgU2J4REFURSwgMCxOVUxMLDAgfSwKCnsgIklEQUJPUlQiLCAgIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKElEQUJPUlQpLDAgICAgICAJfSwKeyAiSURDQU5DRUwiLCAgIAlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoSURDQU5DRUwpLDAgICAgICAJfSwKeyAiSUROTyIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoSUROTyksMCAgICAgIAkJfSwKeyAiSURPSyIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoSURPSyksMCAgICAgIAkJfSwKeyAiSURSRVRSWSIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoSURSRVRSWSksMCAgICAgIAl9LAp7ICJJRFlFUyIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoSURZRVMpLDAgICAgICAJCX0sCgp7ICJJaWYiLCAgICAgICAgICAgIFNieFZBUklBTlQsICAgMyB8IF9GVU5DVElPTiwgUlRMTkFNRShJaWYpLDAgICAgICAgICAgICAgfSwKICB7ICJCb29sIiwgICAgICAJU2J4Qk9PTCwgMCxOVUxMLDAgfSwKICB7ICJWYXJpYW50MSIsICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAogIHsgIlZhcmlhbnQyIiwgICAgIFNieFZBUklBTlQsIDAsTlVMTCwwIH0sCgp7ICJJbnB1dCIsCQkJU2J4U1RSSU5HLCAgICAyIHwgX0ZVTkNUSU9OIHwgX0NPTVBUTUFTSywgUlRMTkFNRShJbnB1dCksMH0sCiAgeyAiTnVtYmVyIiwgICAgICAgU2J4TE9ORywgMCxOVUxMLDAgfSwKICB7ICJGaWxlTnVtYmVyIiwgICBTYnhMT05HLCAwLE5VTEwsMCB9LAp7ICJJbnB1dEJveCIsICAgICAgIFNieFNUUklORywgICAgNSB8IF9GVU5DVElPTiwgUlRMTkFNRShJbnB1dEJveCksMCAgICAgICAgfSwKICB7ICJQcm9tcHQiLCAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiVGl0bGUiLCAgICAgICAgU2J4U1RSSU5HLCAgICAgICAgX09QVCwgTlVMTCwwIH0sCiAgeyAiRGVmYXVsdCIsICAgICAgU2J4U1RSSU5HLCAgICAgICAgX09QVCwgTlVMTCwwIH0sCiAgeyAiWFBvc1R3aXBzIiwgICAgU2J4TE9ORywgICAgICAgICAgX09QVCwgTlVMTCwwIH0sCiAgeyAiWVBvc1R3aXBzIiwgICAgU2J4TE9ORywgICAgICAgICAgX09QVCwgTlVMTCwwIH0sCnsgIkluU3RyIiwgICAgICAgICAgU2J4TE9ORywgICAgICA0IHwgX0ZVTkNUSU9OLCBSVExOQU1FKEluU3RyKSwwICAgICAgICAgICB9LAogIHsgIlN0YXJ0IiwgICAgICAgIFNieFNUUklORywgICAgICAgIF9PUFQsIE5VTEwsMCB9LAogIHsgIlN0cmluZzEiLCAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJTdHJpbmcyIiwgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiQ29tcGFyZSIsICAgICAgU2J4SU5URUdFUiwgICAgICAgX09QVCwgTlVMTCwwIH0sCnsgIkluU3RyUmV2IiwgICAgICAgU2J4TE9ORywgICAgICA0IHwgX0ZVTkNUSU9OIHwgX0NPTVBUTUFTSywgUlRMTkFNRShJblN0clJldiksMH0sCiAgeyAiU3RyaW5nMSIsICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAogIHsgIlN0cmluZzIiLCAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJTdGFydCIsICAgICAgICBTYnhTVFJJTkcsICAgICAgICBfT1BULCBOVUxMLDAgfSwKICB7ICJDb21wYXJlIiwgICAgICBTYnhJTlRFR0VSLCAgICAgICBfT1BULCBOVUxMLDAgfSwKeyAiSW50IiwgICAgICAgICAgICBTYnhET1VCTEUsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoSW50KSwwICAgICAgICAgICAgIH0sCiAgeyAibnVtYmVyIiwgICAgICAgU2J4RE9VQkxFLCAwLE5VTEwsMCB9LAp7ICJJc0FycmF5IiwgICAgICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShJc0FycmF5KSwwICAgICAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJJc0RhdGUiLCAgICAgICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShJc0RhdGUpLDAgICAgICAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJJc0VtcHR5IiwgICAgICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShJc0VtcHR5KSwwICAgICAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJJc0Vycm9yIiwgICAgICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShJc0Vycm9yKSwwICAgICAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJJc01pc3NpbmciLCAgICAgICAgU2J4Qk9PTCwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKElzTWlzc2luZyksMCAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJJc051bGwiLCAgICAgICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShJc051bGwpLDAgICAgICAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJJc051bWVyaWMiLCAgICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShJc051bWVyaWMpLDAgICAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJJc09iamVjdCIsICAgICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShJc09iamVjdCksMCAgICAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJJc1Vub1N0cnVjdCIsICAgIFNieEJPT0wsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShJc1Vub1N0cnVjdCksMCAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJKb2luIiwgICAgICAgICAJU2J4U1RSSU5HLCAgICAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoSm9pbiksMCAgICAgICAgICB9LAogIHsgImxpc3QiLAkJCVNieE9CSkVDVCwgMCxOVUxMLDAgfSwKICB7ICJkZWxpbWl0ZXIiLCAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIktpbGwiLCAgICAgICAgICAgU2J4TlVMTCwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKEtpbGwpLDAgICAgICAgICAgICB9LAogIHsgImZpbGVzcGVjIiwgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiTEJvdW5kIiwgICAgICAgCVNieExPTkcsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShMQm91bmQpLDAgICAgICAgICAgfSwKICB7ICJWYXJpYW50IiwgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJMQ2FzZSIsICAgICAgICAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShMQ2FzZSksMCAgICAgICAgICAgfSwKICB7ICJzdHJpbmciLCAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIkxlZnQiLCAgICAgICAgICAgU2J4U1RSSU5HLCAgICAyIHwgX0ZVTkNUSU9OLCBSVExOQU1FKExlZnQpLDAgICAgICAgICAgICB9LAogIHsgIlN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJDb3VudCIsICAgICAgICBTYnhMT05HLCAwLE5VTEwsMCB9LAp7ICJMZW4iLCAgICAgICAgICAgIFNieExPTkcsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShMZW4pLDAgICAgICAgICAgICAgfSwKICB7ICJTdHJpbmdPclZhcmlhbnQiLCBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJMZW5CIiwgICAgICAgICAgIFNieExPTkcsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShMZW4pLDAgICAgICAgICAgICAgfSwKICB7ICJTdHJpbmdPclZhcmlhbnQiLCBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJMb2FkIiwgICAgICAgICAgIFNieE5VTEwsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShMb2FkKSwwICAgICAgICAgICAgfSwKICB7ICJvYmplY3QiLCAgICAgICBTYnhPQkpFQ1QsIDAsTlVMTCwwIH0sCnsgIkxvYWRQaWN0dXJlIiwgICAgU2J4T0JKRUNULCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKExvYWRQaWN0dXJlKSwwICAgICB9LAogIHsgInN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiTG9jIiwgICAgICAgICAgICBTYnhMT05HLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoTG9jKSwwICAgICAgICAgICAgIH0sCiAgeyAiQ2hhbm5lbCIsICAgICAgU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKeyAiTG9mIiwgICAgICAgICAgICBTYnhMT05HLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoTG9mKSwwICAgICAgICAgICAgIH0sCiAgeyAiQ2hhbm5lbCIsICAgICAgU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKeyAiTG9nIiwgICAgICAgICAgICBTYnhET1VCTEUsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoTG9nKSwwICAgICAgICAgICAgIH0sCiAgeyAibnVtYmVyIiwgICAgICAgU2J4RE9VQkxFLCAwLE5VTEwsMCB9LAp7ICJMVHJpbSIsICAgICAgICAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShMVHJpbSksMCAgICAgICAgICAgfSwKICB7ICJzdHJpbmciLCAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCgp7ICJNQl9BQk9SVFJFVFJZSUdOT1JFIiwgU2J4SU5URUdFUiwgIF9DUFJPUCwgICAgUlRMTkFNRShNQl9BQk9SVFJFVFJZSUdOT1JFKSwwfSwKeyAiTUJfQVBQTE1PREFMIiwgICBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoTUJfQVBQTE1PREFMKSwwICAgIH0sCnsgIk1CX0RFRkJVVFRPTjEiLCAgU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKE1CX0RFRkJVVFRPTjEpLDAgICB9LAp7ICJNQl9ERUZCVVRUT04yIiwgIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShNQl9ERUZCVVRUT04yKSwwICAgfSwKeyAiTUJfREVGQlVUVE9OMyIsICBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoTUJfREVGQlVUVE9OMyksMCAgIH0sCnsgIk1CX0lDT05FWENMQU1BVElPTiIsIFNieElOVEVHRVIsICAgX0NQUk9QLCAgICBSVExOQU1FKE1CX0lDT05FWENMQU1BVElPTiksMH0sCnsgIk1CX0lDT05JTkZPUk1BVElPTiIsIFNieElOVEVHRVIsICAgX0NQUk9QLCAgICBSVExOQU1FKE1CX0lDT05JTkZPUk1BVElPTiksMH0sCnsgIk1CX0lDT05RVUVTVElPTiIsU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKE1CX0lDT05RVUVTVElPTiksMCB9LAp7ICJNQl9JQ09OU1RPUCIsICAgCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShNQl9JQ09OU1RPUCksMCAgICAgfSwKeyAiTUJfT0siLCAgIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKE1CX09LKSwwICAgICAgCQl9LAp7ICJNQl9PS0NBTkNFTCIsICAgCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShNQl9PS0NBTkNFTCksMCAgICAgfSwKeyAiTUJfUkVUUllDQU5DRUwiLCBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoTUJfUkVUUllDQU5DRUwpLDAgIH0sCnsgIk1CX1NZU1RFTU1PREFMIiwgU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKE1CX1NZU1RFTU1PREFMKSwwICB9LAp7ICJNQl9ZRVNOTyIsICAgCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShNQl9ZRVNOTyksMCAgICAgIAl9LAp7ICJNQl9ZRVNOT0NBTkNFTCIsIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShNQl9ZRVNOT0NBTkNFTCksMCAgfSwKCnsgIk1lIiwJCSAgICAgICAgU2J4T0JKRUNULCAgICAwIHwgX0ZVTkNUSU9OIHwgX0NPTVBUTUFTSywgUlRMTkFNRShNZSksMCB9LAp7ICJNaWQiLCAgICAgICAgICAgIFNieFNUUklORywgICAgMyB8IF9MRlVOQ1RJT04sUlRMTkFNRShNaWQpLDAgICAgICAgICAgICAgfSwKICB7ICJTdHJpbmciLCAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiU3RhcnRQb3MiLCAgICAgU2J4TE9ORywgMCxOVUxMLDAgfSwKICB7ICJMZW5ndGgiLCAgICAgICBTYnhMT05HLCAgICAgICAgICBfT1BULCBOVUxMLDAgfSwKeyAiTWludXRlIiwgICAgICAgICBTYnhJTlRFR0VSLCAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoTWludXRlKSwwICAgICAgICAgIH0sCiAgeyAiRGF0ZSIsICAgICAgICAgU2J4REFURSwgMCxOVUxMLDAgfSwKeyAiTWtEaXIiLCAgICAgICAgICBTYnhOVUxMLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoTWtEaXIpLDAgICAgICAgICAgIH0sCiAgeyAicGF0aG5hbWUiLCAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJNb250aCIsICAgICAgICAgIFNieElOVEVHRVIsICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShNb250aCksMCAgICAgICAgICAgfSwKICB7ICJEYXRlIiwgICAgICAgICBTYnhEQVRFLCAwLE5VTEwsMCB9LAp7ICJNb250aE5hbWUiLCAgICAgIFNieFNUUklORywgICAgMiB8IF9GVU5DVElPTiB8IF9DT01QVE1BU0ssIFJUTE5BTUUoTW9udGhOYW1lKSwwIH0sCiAgeyAiTW9udGgiLCAgICAgICAgU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKICB7ICJBYmJyZXZpYXRlIiwgICBTYnhCT09MLCAgICAgICAgICBfT1BULCBOVUxMLDAgfSwKeyAiTXNnQm94IiwgICAgICAgICBTYnhJTlRFR0VSLCAgICA1IHwgX0ZVTkNUSU9OLCBSVExOQU1FKE1zZ0JveCksMCAgICAgICAgIH0sCiAgeyAiUHJvbXB0IiwgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAogIHsgIkJ1dHRvbnMiLCAgICAgIFNieElOVEVHRVIsICAgICAgIF9PUFQsIE5VTEwsMCB9LAogIHsgIlRpdGxlIiwgICAgICAgIFNieFNUUklORywgICAgICAgIF9PUFQsIE5VTEwsMCB9LAogIHsgIkhlbHBmaWxlIiwgICAgIFNieFNUUklORywgICAgICAgIF9PUFQsIE5VTEwsMCB9LAogIHsgIkNvbnRleHQiLCAgICAgIFNieElOVEVHRVIsICAgICAgIF9PUFQsIE5VTEwsMCB9LAoKeyAiTm90aGluZyIsICAgICAgICBTYnhPQkpFQ1QsICAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoTm90aGluZyksMCAgICAgICAgIH0sCnsgIk5vdyIsICAgICAgICAgICAgU2J4REFURSwgICAgICAgICAgX0ZVTkNUSU9OLCBSVExOQU1FKE5vdyksMCAgICAgICAgICAgICB9LAp7ICJOdWxsIiwJCQlTYnhOVUxMLCAgICAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoTnVsbCksMAkJCX0sCgp7ICJPY3QiLCAgICAgICAgICAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShPY3QpLDAgICAgICAgICAgICAgfSwKICB7ICJudW1iZXIiLCAgICAgICBTYnhMT05HLCAwLE5VTEwsMCB9LAoKeyAiUGFydGl0aW9uIiwgICAgICBTYnhTVFJJTkcsICAgIDQgfCBfRlVOQ1RJT04sIFJUTE5BTUUoUGFydGl0aW9uKSwwICAgICAgIH0sCiAgeyAibnVtYmVyIiwgICAJU2J4TE9ORywgCTAsTlVMTCwwIH0sCiAgeyAic3RhcnQiLCAgICAgCVNieExPTkcsIAkwLE5VTEwsMCB9LAogIHsgInN0b3AiLCAgCSAgICBTYnhMT05HLCAJMCxOVUxMLDAgfSwKICB7ICJpbnRlcnZhbCIsICAgICBTYnhMT05HLCAJMCxOVUxMLDAgfSwKeyAiUGkiLAkJCQlTYnhET1VCTEUsCQkgIF9DUFJPUCwgICAgUlRMTkFNRShQSSksMAkJICAgICAgCX0sCnsgIlB1dCIsICAgICAgICAgICAgU2J4TlVMTCwgICAzIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFB1dCksMCAgICAgICAgICAgICAgICB9LAogIHsgImZpbGVudW1iZXIiLCAgIFNieElOVEVHRVIsIDAsTlVMTCwwIH0sCiAgeyAicmVjb3JkbnVtYmVyIiwgU2J4TE9ORywgMCxOVUxMLDAgfSwKICB7ICJ2YXJpYWJsZW5hbWUiLAlTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAoKeyAiUUJDb2xvciIsCQlTYnhMT05HLAkgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoUUJDb2xvciksMAkJCX0sCiAgeyAibnVtYmVyIiwJCVNieElOVEVHRVIsIDAsTlVMTCwwIH0sCgp7ICJSYW5kb21pemUiLCAgICAgIFNieE5VTEwsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShSYW5kb21pemUpLDAgICAgICAgfSwKICB7ICJOdW1iZXIiLCAgICAgICBTYnhET1VCTEUsICAgICAgICBfT1BULCBOVUxMLDAgfSwKeyAiUmVkIiwgICAgICAgIFNieElOVEVHRVIsICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShSZWQpLDAgICAgICAgICAgICAgICAgIH0sCiAgeyAiUkdCLVZhbHVlIiwgICAgIFNieExPTkcsIDAsTlVMTCwwIH0sCnsgIlJlc2V0IiwgICAgICAgICAgU2J4TlVMTCwgICAgICAwIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFJlc2V0KSwwICAgICAgICAgICB9LAp7ICJSZXNvbHZlUGF0aCIsICAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShSZXNvbHZlUGF0aCksMCAgICAgfSwKICB7ICJQYXRoIiwgICAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIlJHQiIsICAgICAgICAgICAgU2J4TE9ORywgICAgICAzIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFJHQiksMCAgICAgICAgICAgICB9LAogIHsgIlJlZCIsICAgICAgIAlTYnhJTlRFR0VSLCAwLE5VTEwsMCB9LAogIHsgIkdyZWVuIiwgICAgICAgCVNieElOVEVHRVIsIDAsTlVMTCwwIH0sCiAgeyAiQmx1ZSIsICAgICAgIAlTYnhJTlRFR0VSLCAwLE5VTEwsMCB9LAp7ICJSZXBsYWNlIiwgICAgICAgIFNieFNUUklORywgICAgNiB8IF9GVU5DVElPTiwgUlRMTkFNRShSZXBsYWNlKSwwICAgICAgICAgfSwKICB7ICJFeHByZXNzaW9uIiwgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiRmluZCIsICAgICAJU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAogIHsgIlJlcGxhY2UiLCAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJTdGFydCIsICAgICAgICBTYnhJTlRFR0VSLCAJX09QVCwgTlVMTCwwIH0sCiAgeyAiQ291bnQiLCAgICAgICAgU2J4SU5URUdFUiwJCV9PUFQsIE5VTEwsMCB9LAogIHsgIkNvbXBhcmUiLCAgICAgIFNieElOVEVHRVIsCQlfT1BULCBOVUxMLDAgfSwKeyAiUmlnaHQiLCAgICAgICAgICBTYnhTVFJJTkcsICAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoUmlnaHQpLDAgICAgICAgICAgIH0sCiAgeyAiU3RyaW5nIiwgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAogIHsgIkNvdW50IiwgICAgICAgIFNieExPTkcsIDAsTlVMTCwwIH0sCnsgIlJtRGlyIiwgICAgICAgICAgU2J4TlVMTCwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFJtRGlyKSwwICAgICAgICAgICB9LAogIHsgInBhdGhuYW1lIiwgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiUm91bmQiLCAgICAgICAgICBTYnhET1VCTEUsICAgIDIgfCBfRlVOQ1RJT04gfCBfQ09NUFRNQVNLLCBSVExOQU1FKFJvdW5kKSwwfSwKICB7ICJFeHByZXNzaW9uIiwgICBTYnhET1VCTEUsIDAsTlVMTCwwIH0sCiAgeyAiTnVtZGVjaW1hbHBsYWNlcyIsIFNieElOVEVHRVIsICAgX09QVCwgTlVMTCwwIH0sCnsgIlJuZCIsICAgICAgICAgICAgU2J4RE9VQkxFLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFJuZCksMCAgICAgICAgICAgICB9LAogIHsgIk51bWJlciIsICAgICAgIFNieERPVUJMRSwgICAgICAgIF9PUFQsIE5VTEwsMCB9LAp7ICJSVEwiLAkJCVNieE9CSkVDVCwgICAgMCB8IF9GVU5DVElPTiB8IF9DT01QVE1BU0ssIFJUTE5BTUUoUlRMKSwwfSwKeyAiUlRyaW0iLCAgICAgICAgICBTYnhTVFJJTkcsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoUlRyaW0pLDAgICAgICAgICAgIH0sCiAgeyAic3RyaW5nIiwgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAoKeyAiU2F2ZVBpY3R1cmUiLCAgICBTYnhOVUxMLCAgICAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU2F2ZVBpY3R1cmUpLDAgICAgIH0sCiAgeyAib2JqZWN0IiwgICAgICAgU2J4T0JKRUNULCAwLE5VTEwsMCB9LAogIHsgInN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiU2Vjb25kIiwgICAgICAgICBTYnhJTlRFR0VSLCAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU2Vjb25kKSwwICAgICAgICAgIH0sCiAgeyAiRGF0ZSIsICAgICAgICAgU2J4REFURSwgMCxOVUxMLDAgfSwKeyAiU2VlayIsICAgICAgICAgICBTYnhMT05HLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU2VlayksMCAgICAgICAgICAgIH0sCiAgeyAiQ2hhbm5lbCIsICAgICAgU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKeyAiU2VuZEtleXMiLCAgICAgICBTYnhOVUxMLCAgICAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU2VuZEtleXMpLDAgICAgICAgIH0sCiAgeyAiU3RyaW5nIiwgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAogIHsgIldhaXQiLCAgICAgICAgIFNieEJPT0wsICAgICAgICAgIF9PUFQsIE5VTEwsMCB9LAp7ICJTZXRBdHRyIiwgICAgICAgIFNieE5VTEwsICAgICAgMiB8IF9GVU5DVElPTiwgUlRMTkFNRShTZXRBdHRyKSwwICAgICAgICAgfSwKICB7ICJGaWxlIiAgLCAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiQXR0cmlidXRlcyIsICAgU2J4SU5URUdFUiwgMCxOVUxMLDAgfSwKeyAiU0VUX09GRiIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoU0VUX09GRiksMCAgICAgIAl9LAp7ICJTRVRfT04iLCAgIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFNFVF9PTiksMCAgICAgIAl9LAp7ICJTRVRfVEFCIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShTRVRfVEFCKSwwICAgICAgCX0sCnsgIlNnbiIsICAgICAgICAgICAgU2J4SU5URUdFUiwgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFNnbiksMCAgICAgICAgICAgICB9LAogIHsgIm51bWJlciIsICAgICAgIFNieERPVUJMRSwgMCxOVUxMLDAgfSwKeyAiU2hlbGwiLCAgICAgICAgICBTYnhMT05HLCAgICAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU2hlbGwpLDAgICAgICAgICAgIH0sCiAgeyAiQ29tbWFuZHN0cmluZyIsU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAogIHsgIldpbmRvd1N0eWxlIiwgIFNieElOVEVHRVIsICAgICAgIF9PUFQsIE5VTEwsMCB9LAp7ICJTaW4iLCAgICAgICAgICAgIFNieERPVUJMRSwgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShTaW4pLDAgICAgICAgICAgICAgfSwKICB7ICJudW1iZXIiLCAgICAgICBTYnhET1VCTEUsIDAsTlVMTCwwIH0sCnsgIlNwYWNlIiwgICAgICAgICAgU2J4U1RSSU5HLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU3BhY2UpLDAgICAgICAgICB9LAogIHsgInN0cmluZyIsICAgICAgIFNieExPTkcsIDAsTlVMTCwwIH0sCnsgIlNwYyIsICAgICAgICAgIAlTYnhTVFJJTkcsICAgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShTcGMpLDAgICAgICAgICAgIH0sCiAgeyAiQ291bnQiLCAgICAgICAgU2J4TE9ORywgMCxOVUxMLDAgfSwKeyAiU3BsaXQiLCAgICAgICAgIAlTYnhPQkpFQ1QsICAgICAgMyB8IF9GVU5DVElPTiwgUlRMTkFNRShTcGxpdCksMCAgICAgICAgIH0sCiAgeyAiZXhwcmVzc2lvbiIsCVNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJkZWxpbWl0ZXIiLCAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiY291bnQiLAkgICAgU2J4TE9ORywgMCxOVUxMLDAgfSwKeyAiU3FyIiwgICAgICAgICAgICBTYnhET1VCTEUsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU3FyKSwwICAgICAgICAgICAgIH0sCiAgeyAibnVtYmVyIiwgICAgICAgU2J4RE9VQkxFLCAwLE5VTEwsMCB9LAp7ICJTdHIiLCAgICAgICAgICAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShTdHIpLDAgICAgICAgICAgICAgfSwKICB7ICJudW1iZXIiLCAgICAgICBTYnhET1VCTEUsIDAsTlVMTCwwIH0sCnsgIlN0ckNvbXAiLCAgICAgICAgU2J4SU5URUdFUiwgICAzIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFN0ckNvbXApLDAgICAgICAgICB9LAogIHsgIlN0cmluZzEiLCAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJTdHJpbmcyIiwgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiQ29tcGFyZSIsICAgICAgU2J4SU5URUdFUiwgICAgICAgX09QVCwgTlVMTCwwIH0sCnsgIlN0ckNvbnYiLCAgICAgICAgU2J4T0JKRUNULCAgIDMgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU3RyQ29udiksMCAgICAgICAgICB9LAogIHsgIlN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKICB7ICJDb252ZXJzaW9uIiwgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCiAgeyAiTENJRCIsCQkJU2J4SU5URUdFUiwgX09QVCxOVUxMLDAgfSwKeyAiU3RyaW5nIiwgICAgICAgICBTYnhTVFJJTkcsICAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU3RyaW5nKSwwICAgICAgICAgIH0sCiAgeyAiQ291bnQiLCAgICAgICAgU2J4TE9ORywgMCxOVUxMLDAgfSwKICB7ICJGaWxsZXIiLCAgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJTdHJSZXZlcnNlIiwgICAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiB8IF9DT01QVE1BU0ssIFJUTE5BTUUoU3RyUmV2ZXJzZSksMCB9LAogIHsgIlN0cmluZzEiLCAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiU3dpdGNoIiwJCQlTYnhWQVJJQU5ULCAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoU3dpdGNoKSwwCQkJfSwKICB7ICJFeHByZXNzaW9uIiwgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAogIHsgIlZhbHVlIiwgICAgICAgIFNieFZBUklBTlQsIDAsTlVMTCwwIH0sCgp7ICJUYW4iLCAgICAgICAgICAgIFNieERPVUJMRSwgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShUYW4pLDAgICAgICAgICAgICAgfSwKICB7ICJudW1iZXIiLCAgICAgICBTYnhET1VCTEUsIDAsTlVMTCwwIH0sCnsgIlRpbWUiLCAgICAgICAgICAgU2J4VkFSSUFOVCwgICAgICAgX0xGVU5DVElPTixSVExOQU1FKFRpbWUpLDAgICAgICAgICAgICB9LAp7ICJUaW1lciIsICAgICAgICAgIFNieERBVEUsICAgICAgICAgIF9GVU5DVElPTiwgUlRMTkFNRShUaW1lciksMCAgICAgICAgICAgfSwKeyAiVGltZVNlcmlhbCIsICAgICBTYnhEQVRFLCAgICAgIDMgfCBfRlVOQ1RJT04sIFJUTE5BTUUoVGltZVNlcmlhbCksMCAgICAgIH0sCiAgeyAiSG91ciIsICAgICAgICAgU2J4TE9ORywgMCxOVUxMLDAgfSwKICB7ICJNaW51dGUiLCAgICAgICBTYnhMT05HLCAwLE5VTEwsMCB9LAogIHsgIlNlY29uZCIsICAgICAgIFNieExPTkcsIDAsTlVMTCwwIH0sCnsgIlRpbWVWYWx1ZSIsICAgICAgU2J4REFURSwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFRpbWVWYWx1ZSksMCAgICAgICB9LAogIHsgIlN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiVE9HR0xFIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUT0dHTEUpLDAgICAgICAJfSwKI2lmZGVmIERCR19UUkFDRV9CQVNJQwp7ICJUcmFjZUNvbW1hbmQiLCAgIFNieE5VTEwsCSAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShUcmFjZUNvbW1hbmQpLDAgfSwKICB7ICJDb21tYW5kIiwJCVNieFNUUklORywgIDAsTlVMTCwwIH0sCiNlbmRpZgp7ICJUcmltIiwgICAgICAgICAgIFNieFNUUklORywgICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShUcmltKSwwICAgICAgICAgICAgfSwKICB7ICJTdHJpbmciLCAgICAgICBTYnhTVFJJTkcsIDAsTlVMTCwwIH0sCnsgIlRydWUiLCAgICAgICAgICAgU2J4Qk9PTCwgICAgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFRydWUpLDAgICAgICAgICAgICB9LAp7ICJUd2lwc1BlclBpeGVsWCIsIFNieExPTkcsICAgICAgICAgIF9GVU5DVElPTiwgUlRMTkFNRShUd2lwc1BlclBpeGVsWCksMCAgfSwKeyAiVHdpcHNQZXJQaXhlbFkiLCBTYnhMT05HLCAgICAgICAgICBfRlVOQ1RJT04sIFJUTE5BTUUoVHdpcHNQZXJQaXhlbFkpLDAgIH0sCgp7ICJUWVBfQVVUSE9SRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfQVVUSE9SRkxEKSwwICAgICAgCX0sCnsgIlRZUF9DSEFQVEVSRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfQ0hBUFRFUkZMRCksMCAgICAgIH0sCnsgIlRZUF9DT05EVFhURkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfQ09ORFRYVEZMRCksMCAgICAgIH0sCnsgIlRZUF9EQVRFRkxEIiwgICAJCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX0RBVEVGTEQpLDAgICAgICAJfSwKeyAiVFlQX0RCRkxEIiwgICAJCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX0RCRkxEKSwwICAgICAgCQl9LAp7ICJUWVBfREJOQU1FRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfREJOQU1FRkxEKSwwICAgICAgCX0sCnsgIlRZUF9EQk5FWFRTRVRGTEQiLAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFRZUF9EQk5FWFRTRVRGTEQpLDAJfSwKeyAiVFlQX0RCTlVNU0VURkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfREJOVU1TRVRGTEQpLDAgICAgIH0sCnsgIlRZUF9EQlNFVE5VTUJFUkZMRCIsICAgCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfREJTRVROVU1CRVJGTEQpLDAgIH0sCnsgIlRZUF9EREVGTEQiLCAgIAkJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfRERFRkxEKSwwICAgICAgCX0sCnsgIlRZUF9ET0NJTkZPRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfRE9DSU5GT0ZMRCksMCAgICAgIH0sCnsgIlRZUF9ET0NTVEFURkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfRE9DU1RBVEZMRCksMCAgICAgIH0sCnsgIlRZUF9FWFRVU0VSRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfRVhUVVNFUkZMRCksMCAgICAgIH0sCnsgIlRZUF9GSUxFTkFNRUZMRCIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX0ZJTEVOQU1FRkxEKSwwICAgICB9LAp7ICJUWVBfRklYREFURUZMRCIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX0ZJWERBVEVGTEQpLDAgICAgICB9LAp7ICJUWVBfRklYVElNRUZMRCIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX0ZJWFRJTUVGTEQpLDAgICAgICB9LAp7ICJUWVBfRk9STUVMRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfRk9STUVMRkxEKSwwICAgICAgCX0sCnsgIlRZUF9HRVRGTEQiLCAgIAkJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfR0VURkxEKSwwICAgICAgCX0sCnsgIlRZUF9HRVRSRUZGTEQiLCAgIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFRZUF9HRVRSRUZGTEQpLDAgICAgICAJfSwKeyAiVFlQX0dFVFJFRlBBR0VGTEQiLCAgIAlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX0dFVFJFRlBBR0VGTEQpLDAgICB9LAp7ICJUWVBfSElEREVOUEFSQUZMRCIsICAgCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfSElEREVOUEFSQUZMRCksMCAgIH0sCnsgIlRZUF9ISURERU5UWFRGTEQiLCAgIAlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX0hJRERFTlRYVEZMRCksMCAgICB9LAp7ICJUWVBfSU5QVVRGTEQiLCAgIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFRZUF9JTlBVVEZMRCksMCAgICAgIAl9LAp7ICJUWVBfSU5URVJORVRGTEQiLCAgIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFRZUF9JTlRFUk5FVEZMRCksMCAgICAgfSwKeyAiVFlQX0pVTVBFRElURkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfSlVNUEVESVRGTEQpLDAgICAgIH0sCnsgIlRZUF9NQUNST0ZMRCIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX01BQ1JPRkxEKSwwICAgICAgCX0sCnsgIlRZUF9ORVhUUEFHRUZMRCIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX05FWFRQQUdFRkxEKSwwICAgICB9LAp7ICJUWVBfUEFHRU5VTUJFUkZMRCIsICAgCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfUEFHRU5VTUJFUkZMRCksMCAgIH0sCnsgIlRZUF9QT1NUSVRGTEQiLCAgIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFRZUF9QT1NUSVRGTEQpLDAgICAgICAJfSwKeyAiVFlQX1BSRVZQQUdFRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfUFJFVlBBR0VGTEQpLDAgICAgIH0sCnsgIlRZUF9TRVFGTEQiLCAgIAkJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfU0VRRkxEKSwwICAgICAgCX0sCnsgIlRZUF9TRVRGTEQiLCAgIAkJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfU0VURkxEKSwwICAgICAgCX0sCnsgIlRZUF9TRVRJTlBGTEQiLCAgIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFRZUF9TRVRJTlBGTEQpLDAgICAgICAJfSwKeyAiVFlQX1NFVFJFRkZMRCIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX1NFVFJFRkZMRCksMCAgICAgIAl9LAp7ICJUWVBfU0VUUkVGUEFHRUZMRCIsIAkJU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFRZUF9TRVRSRUZQQUdFRkxEKSwwICAgfSwKeyAiVFlQX1RFTVBMTkFNRUZMRCIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX1RFTVBMTkFNRUZMRCksMH0sCnsgIlRZUF9USU1FRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfVElNRUZMRCksMCAgICAJCSAgCX0sCnsgIlRZUF9VU0VSRkxEIiwgICAJCVNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShUWVBfVVNFUkZMRCksMCAgICAgIAkJfSwKeyAiVFlQX1VTUklOUEZMRCIsICAgCQlTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVFlQX1VTUklOUEZMRCksMCAgICAgIAl9LAoKeyAiVHlwZUxlbiIsICAgICAgIAlTYnhJTlRFR0VSLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFR5cGVMZW4pLDAgICAgICAgIH0sCiAgeyAiVmFyIiwgICAgICAgICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKeyAiVHlwZU5hbWUiLCAgICAgICBTYnhTVFJJTkcsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoVHlwZU5hbWUpLDAgICAgICAgIH0sCiAgeyAiVmFyIiwgICAgICAgICAgU2J4VkFSSUFOVCwgMCxOVUxMLDAgfSwKCnsgIlVCb3VuZCIsICAgICAgICAgU2J4TE9ORywgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFVCb3VuZCksMCAgICAgICAgICB9LAogIHsgIlZhciIsICAgICAgICAgIFNieFZBUklBTlQsIDAsTlVMTCwwIH0sCnsgIlVDYXNlIiwgICAgICAgICAgU2J4U1RSSU5HLCAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFVDYXNlKSwwICAgICAgICAgICB9LAogIHsgIlN0cmluZyIsICAgICAgIFNieFNUUklORywgMCxOVUxMLDAgfSwKeyAiVW5sb2FkIiwgICAgICAgICBTYnhOVUxMLCAgICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoVW5sb2FkKSwwICAgICAgICAgIH0sCiAgeyAiRGlhbG9nIiwgICAgICAgU2J4T0JKRUNULCAwLE5VTEwsMCB9LAoKeyAiVmFsIiwgICAgICAgICAgICBTYnhET1VCTEUsICAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoVmFsKSwwICAgICAgICAgICAgIH0sCiAgeyAiU3RyaW5nIiwgICAgICAgU2J4U1RSSU5HLCAwLE5VTEwsMCB9LAp7ICJWYXJUeXBlIiwgICAgICAgIFNieElOVEVHRVIsICAgMSB8IF9GVU5DVElPTiwgUlRMTkFNRShWYXJUeXBlKSwwICAgICAgICAgfSwKICB7ICJWYXIiLCAgICAgICAgICBTYnhWQVJJQU5ULCAwLE5VTEwsMCB9LAp7ICJWX0VNUFRZIiwgICAgICAgIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShWX0VNUFRZKSwwICAgICAgICAgfSwKeyAiVl9OVUxMIiwgICAgICAgICBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVl9OVUxMKSwwICAgICAgICAgIH0sCnsgIlZfSU5URUdFUiIsICAgICAgU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFZfSU5URUdFUiksMCAgICAgICB9LAp7ICJWX0xPTkciLCAgICAgICAgIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShWX0xPTkcpLDAgICAgICAgICAgfSwKeyAiVl9TSU5HTEUiLCAgICAgICBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVl9TSU5HTEUpLDAgICAgICAgIH0sCnsgIlZfRE9VQkxFIiwgICAgICAgU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFZfRE9VQkxFKSwwICAgICAgICB9LAp7ICJWX0NVUlJFTkNZIiwgICAgIFNieElOVEVHRVIsICAgICAgIF9DUFJPUCwgICAgUlRMTkFNRShWX0NVUlJFTkNZKSwwICAgICAgfSwKeyAiVl9EQVRFIiwgICAgICAgICBTYnhJTlRFR0VSLCAgICAgICBfQ1BST1AsICAgIFJUTE5BTUUoVl9EQVRFKSwwICAgICAgICAgIH0sCnsgIlZfU1RSSU5HIiwgICAgICAgU2J4SU5URUdFUiwgICAgICAgX0NQUk9QLCAgICBSVExOQU1FKFZfU1RSSU5HKSwwICAgICAgICB9LAoKeyAiV2FpdCIsICAgICAgICAJU2J4TlVMTCwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFdhaXQpLDAgICAgICAgICAgICB9LAogIHsgIk1pbGxpc2Vjb25kcyIsIFNieExPTkcsIDAsTlVMTCwwIH0sCi8vI2k2NDg4MiMKeyAiV2FpdFVudGlsIiwgICAgICAgICAgU2J4TlVMTCwgICAgICAxIHwgX0ZVTkNUSU9OLCBSVExOQU1FKFdhaXRVbnRpbCksMCAgICAgIH0sCiAgeyAiRGF0ZSIsIFNieERPVUJMRSwgMCxOVUxMLDAgfSwKeyAiV2Vla2RheSIsICAgICAgICBTYnhJTlRFR0VSLCAgIDIgfCBfRlVOQ1RJT04sIFJUTE5BTUUoV2Vla2RheSksMCAgICAgICAgIH0sCiAgeyAiRGF0ZSIsICAgICAgICAgU2J4REFURSwgMCxOVUxMLDAgfSwKICB7ICJGaXJzdGRheW9md2VlayIsIFNieElOVEVHRVIsIF9PUFQsIE5VTEwsMCB9LAp7ICJXZWVrZGF5TmFtZSIsICAgIFNieFNUUklORywgICAgMyB8IF9GVU5DVElPTiB8IF9DT01QVE1BU0ssIFJUTE5BTUUoV2Vla2RheU5hbWUpLDAgfSwKICB7ICJXZWVrZGF5IiwgICAgICBTYnhJTlRFR0VSLCAwLE5VTEwsMCB9LAogIHsgIkFiYnJldmlhdGUiLCAgIFNieEJPT0wsICAgICAgX09QVCwgTlVMTCwwIH0sCiAgeyAiRmlyc3RkYXlvZndlZWsiLCBTYnhJTlRFR0VSLCBfT1BULCBOVUxMLDAgfSwKeyAiWWVhciIsICAgICAgICAgICBTYnhJTlRFR0VSLCAgIDEgfCBfRlVOQ1RJT04sIFJUTE5BTUUoWWVhciksMCAgICAgICAgICAgIH0sCiAgeyAiRGF0ZSIsICAgICAgICAgU2J4REFURSwgMCxOVUxMLDAgfSwKCnsgTlVMTCwgICAgICAgICAgICAgU2J4TlVMTCwgICAgIC0xLE5VTEwsMCB9fTsgIC8vIFRhYmVsbGVuZW5kZQoKU2JpU3RkT2JqZWN0OjpTYmlTdGRPYmplY3QoIGNvbnN0IFN0cmluZyYgciwgU3RhckJBU0lDKiBwYiApIDogU2J4T2JqZWN0KCByICkKewoJLy8gTXVlc3NlbiB3aXIgZGllIEhhc2hjb2RlcyBpbml0aWFsaXNpZXJlbj8KCU1ldGhvZHMqIHAgPSBhTWV0aG9kczsKCWlmKCAhcC0+bkhhc2ggKQoJICB3aGlsZSggcC0+bkFyZ3MgIT0gLTEgKQoJewoJCVN0cmluZyBhTmFtZV8gPSBTdHJpbmc6OkNyZWF0ZUZyb21Bc2NpaSggcC0+cE5hbWUgKTsKCQlwLT5uSGFzaCA9IFNieFZhcmlhYmxlOjpNYWtlSGFzaENvZGUoIGFOYW1lXyApOwoJCXAgKz0gKCBwLT5uQXJncyAmIF9BUkdTTUFTSyApICsgMTsKCX0KCgkvLyAjaTkyNjQyOiBSZW1vdmUgZGVmYXVsdCBwcm9wZXJ0aWVzCglSZW1vdmUoIFh1YlN0cmluZyggUlRMX0NPTlNUQVNDSUlfVVNUUklOR1BBUkFNKCJOYW1lIikgKSwgU2J4Q0xBU1NfRE9OVENBUkUgKTsKCVJlbW92ZSggWHViU3RyaW5nKCBSVExfQ09OU1RBU0NJSV9VU1RSSU5HUEFSQU0oIlBhcmVudCIpICksIFNieENMQVNTX0RPTlRDQVJFICk7CgoJU2V0UGFyZW50KCBwYiApOwoKCXBTdGRGYWN0b3J5ID0gbmV3IFNiU3RkRmFjdG9yeTsKCVNieEJhc2U6OkFkZEZhY3RvcnkoIHBTdGRGYWN0b3J5ICk7CgoJSW5zZXJ0KCBuZXcgU2JTdGRDbGlwYm9hcmQgKTsKfQoKU2JpU3RkT2JqZWN0Ojp+U2JpU3RkT2JqZWN0KCkKewoJU2J4QmFzZTo6UmVtb3ZlRmFjdG9yeSggcFN0ZEZhY3RvcnkgKTsKCWRlbGV0ZSBwU3RkRmFjdG9yeTsKfQoKLy8gU3VjaGUgbmFjaCBlaW5lbSBFbGVtZW50OgovLyBIaWVyIHdpcmQgbGluZWFyIGR1cmNoIGRpZSBNZXRob2RlbnRhYmVsbGUgZ2VnYW5nZW4sIGJpcyBlaW5lCi8vIHBhc3NlbmRlIE1ldGhvZGUgZ2VmdW5kZW4gd3VyZGUuIEF1ZiBHcnVuZCBkZXIgQml0cyBpbSBuQXJncy1GZWxkCi8vIHdpcmQgZGFubiBkaWUgcGFzc2VuZGUgSW5zdGFueiBlaW5lcyBTYnhPYmpFbGVtZW50IGdlbmVyaWVydC4KLy8gV2VubiBkaWUgTWV0aG9kZS9Qcm9wZXJ0eSBuaWNodCBnZWZ1bmRlbiB3dXJkZSwgbnVyIE5VTEwgb2huZQovLyBGZWhsZXJjb2RlIHp1cnVlY2tsaWVmZXJuLCBkYSBzbyBhdWNoIGVpbmUgZ2FuemUgQ2hhaW4gdm9uCi8vIE9iamVrdGVuIG5hY2ggZGVyIE1ldGhvZGUvUHJvcGVydHkgYmVmcmFndCB3ZXJkZW4ga2Fubi4KClNieFZhcmlhYmxlKiBTYmlTdGRPYmplY3Q6OkZpbmQoIGNvbnN0IFN0cmluZyYgck5hbWUsIFNieENsYXNzVHlwZSB0ICkKewoJLy8gQmVyZWl0cyBlaW5nZXRyYWdlbj8KCVNieFZhcmlhYmxlKiBwVmFyID0gU2J4T2JqZWN0OjpGaW5kKCByTmFtZSwgdCApOwoJaWYoICFwVmFyICkKCXsKCQkvLyBzb25zdCBzdWNoZW4KCQlzYWxfdUludDE2IG5IYXNoXyA9IFNieFZhcmlhYmxlOjpNYWtlSGFzaENvZGUoIHJOYW1lICk7CgkJTWV0aG9kcyogcCA9IGFNZXRob2RzOwoJCXNhbF9Cb29sIGJGb3VuZCA9IHNhbF9GYWxzZTsKCQlzaG9ydCBuSW5kZXggPSAwOwoJCXNhbF91SW50MTYgblNyY2hNYXNrID0gX1RZUEVNQVNLOwoJCXN3aXRjaCggdCApCgkJewoJCQljYXNlIFNieENMQVNTX01FVEhPRDoJblNyY2hNYXNrID0gX01FVEhPRDsgYnJlYWs7CgkJCWNhc2UgU2J4Q0xBU1NfUFJPUEVSVFk6CW5TcmNoTWFzayA9IF9QUk9QRVJUWTsgYnJlYWs7CgkJCWNhc2UgU2J4Q0xBU1NfT0JKRUNUOgluU3JjaE1hc2sgPSBfT0JKRUNUOyBicmVhazsKCQkJZGVmYXVsdDogYnJlYWs7CgkJfQoJCXdoaWxlKCBwLT5uQXJncyAhPSAtMSApCgkJewoJCQlpZiggKCBwLT5uQXJncyAmIG5TcmNoTWFzayApCgkJCSAmJiAoIHAtPm5IYXNoID09IG5IYXNoXyApCgkJCSAmJiAoIHJOYW1lLkVxdWFsc0lnbm9yZUNhc2VBc2NpaSggcC0+cE5hbWUgKSApICkKCQkJewoJCQkJYkZvdW5kID0gc2FsX1RydWU7CgkJCQlpZiggcC0+bkFyZ3MgJiBfQ09NUFRNQVNLICkKCQkJCXsKCQkJCQlTYmlJbnN0YW5jZSogcEluc3QgPSBwSU5TVDsKCQkJCQlpZiggIXBJbnN0IHx8ICFwSW5zdC0+SXNDb21wYXRpYmlsaXR5KCkgKQoJCQkJCQliRm91bmQgPSBzYWxfRmFsc2U7CgkJCQl9CgkJCQlicmVhazsKCQkJfQoJCQluSW5kZXggKz0gKCBwLT5uQXJncyAmIF9BUkdTTUFTSyApICsgMTsKCQkJcCA9IGFNZXRob2RzICsgbkluZGV4OwoJCX0KCgkJaWYoIGJGb3VuZCApCgkJewoJCQkvLyBBcmdzLUZlbGRlciBpc29saWVyZW46CgkJCXNob3J0IG5BY2Nlc3MgPSAoIHAtPm5BcmdzICYgX1JXTUFTSyApID4+IDg7CgkJCXNob3J0IG5UeXBlICAgPSAoIHAtPm5BcmdzICYgX1RZUEVNQVNLICk7CgkJCWlmKCBwLT5uQXJncyAmIF9DT05TVCApCgkJCQluQWNjZXNzIHw9IFNCWF9DT05TVDsKCQkJU3RyaW5nIGFOYW1lXyA9IFN0cmluZzo6Q3JlYXRlRnJvbUFzY2lpKCBwLT5wTmFtZSApOwoJCQlTYnhDbGFzc1R5cGUgZUNUID0gU2J4Q0xBU1NfT0JKRUNUOwoJCQlpZiggblR5cGUgJiBfUFJPUEVSVFkgKQoJCQkJZUNUID0gU2J4Q0xBU1NfUFJPUEVSVFk7CgkJCWVsc2UgaWYoIG5UeXBlICYgX01FVEhPRCApCgkJCQllQ1QgPSBTYnhDTEFTU19NRVRIT0Q7CgkJCXBWYXIgPSBNYWtlKCBhTmFtZV8sIGVDVCwgcC0+ZVR5cGUgKTsKCQkJcFZhci0+U2V0VXNlckRhdGEoIG5JbmRleCArIDEgKTsKCQkJcFZhci0+U2V0RmxhZ3MoIG5BY2Nlc3MgKTsKCQl9Cgl9CglyZXR1cm4gcFZhcjsKfQoKLy8gU2V0TW9kaWZpZWQgbXXfIGJlaSBkZXIgUlRMIGFiZ2tsZW1tdCB3ZXJkZW4Kdm9pZCBTYmlTdGRPYmplY3Q6OlNldE1vZGlmaWVkKCBzYWxfQm9vbCApCnsKfQoKLy8gQXVmcnVmIGVpbmVyIFByb3BlcnR5IG9kZXIgTWV0aG9kZS4KCnZvaWQgU2JpU3RkT2JqZWN0OjpTRlhfTk9USUZZKCBTZnhCcm9hZGNhc3RlciYgckJDLCBjb25zdCBUeXBlSWQmIHJCQ1R5cGUsCgkJCQkJCQkgY29uc3QgU2Z4SGludCYgckhpbnQsIGNvbnN0IFR5cGVJZCYgckhpbnRUeXBlICkKCnsKCWNvbnN0IFNieEhpbnQqIHBIaW50ID0gUFRSX0NBU1QoU2J4SGludCwmckhpbnQpOwoJaWYoIHBIaW50ICkKCXsKCQlTYnhWYXJpYWJsZSogcFZhciA9IHBIaW50LT5HZXRWYXIoKTsKCQlTYnhBcnJheSogcFBhcl8gPSBwVmFyLT5HZXRQYXJhbWV0ZXJzKCk7CgkJc2FsX3VJbnRQdHIgdCA9IHBIaW50LT5HZXRJZCgpOwoJCXNhbF91SW50MTYgbkNhbGxJZCA9IChzYWxfdUludDE2KSBwVmFyLT5HZXRVc2VyRGF0YSgpOwoJCWlmKCBuQ2FsbElkICkKCQl7CgkJCWlmKCB0ID09IFNCWF9ISU5UX0lORk9XQU5URUQgKQoJCQkJcFZhci0+U2V0SW5mbyggR2V0SW5mbyggKHNob3J0KSBwVmFyLT5HZXRVc2VyRGF0YSgpICkgKTsKCQkJZWxzZQoJCQl7CgkJCQlzYWxfQm9vbCBiV3JpdGUgPSBzYWxfRmFsc2U7CgkJCQlpZiggdCA9PSBTQlhfSElOVF9EQVRBQ0hBTkdFRCApCgkJCQkJYldyaXRlID0gc2FsX1RydWU7CgkJCQlpZiggdCA9PSBTQlhfSElOVF9EQVRBV0FOVEVEIHx8IGJXcml0ZSApCgkJCQl7CgkJCQkJUnRsQ2FsbCBwID0gKFJ0bENhbGwpIGFNZXRob2RzWyBuQ2FsbElkLTEgXS5wRnVuYzsKCQkJCQlTYnhBcnJheVJlZiByUGFyKCBwUGFyXyApOwoJCQkJCWlmKCAhcFBhcl8gKQoJCQkJCXsKCQkJCQkJclBhciA9IHBQYXJfID0gbmV3IFNieEFycmF5OwoJCQkJCQlwUGFyXy0+UHV0KCBwVmFyLCAwICk7CgkJCQkJfQoJCQkJCXAoIChTdGFyQkFTSUMqKSBHZXRQYXJlbnQoKSwgKnBQYXJfLCBiV3JpdGUgKTsKCQkJCQlyZXR1cm47CgkJCQl9CgkJCX0KCQl9CgkJU2J4T2JqZWN0OjpTRlhfTk9USUZZKCByQkMsIHJCQ1R5cGUsIHJIaW50LCBySGludFR5cGUgKTsKCX0KfQoKLy8gWnVzYW1tZW5iYXUgZGVyIEluZm9zdHJ1a3R1ciBmdWVyIGVpbnplbG5lIEVsZW1lbnRlCi8vIEZhbGxzIG5JZHggPSAwLCBuaXggZXJ6ZXVnZW4gKHNpbmQgU3RkLVByb3BzISkKClNieEluZm8qIFNiaVN0ZE9iamVjdDo6R2V0SW5mbyggc2hvcnQgbklkeCApCnsKCWlmKCAhbklkeCApCgkJcmV0dXJuIE5VTEw7CglNZXRob2RzKiBwID0gJmFNZXRob2RzWyAtLW5JZHggXTsKCS8vIFdlbm4gbWFsIGVpbmUgSGlsZmVkYXRlaSB6dXIgVmVyZnVlZ3VuZyBzdGVodDoKCS8vIFNieEluZm8qIHBJbmZvXyA9IG5ldyBTYnhJbmZvKCBIaWxmZWRhdGVpbmFtZSwgcC0+bkhlbHBJZCApOwoJU2J4SW5mbyogcEluZm9fID0gbmV3IFNieEluZm87CglzaG9ydCBuUGFyID0gcC0+bkFyZ3MgJiBfQVJHU01BU0s7Cglmb3IoIHNob3J0IGkgPSAwOyBpIDwgblBhcjsgaSsrICkKCXsKCQlwKys7CgkJU3RyaW5nIGFOYW1lXyA9IFN0cmluZzo6Q3JlYXRlRnJvbUFzY2lpKCBwLT5wTmFtZSApOwoJCXNhbF91SW50MTYgbkZsYWdzXyA9ICggcC0+bkFyZ3MgPj4gOCApICYgMHgwMzsKCQlpZiggcC0+bkFyZ3MgJiBfT1BUICkKCQkJbkZsYWdzXyB8PSBTQlhfT1BUSU9OQUw7CgkJcEluZm9fLT5BZGRQYXJhbSggYU5hbWVfLCBwLT5lVHlwZSwgbkZsYWdzXyApOwoJfQoJcmV0dXJuIHBJbmZvXzsKfQoK