LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBQb3J0dWd1ZXNlIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChDKSAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ERUZBVUxUCgpTVFJJTkdUQUJMRQp7CiAgV0NNRF9BVFRSSUIsICJBanVkYSBkbyBjb21hbmRvIEFUVFJJQlxuIgogIFdDTURfQ0FMTCwKIkNBTEwgPGFycXVpdm9fZGVfbG90ZT4g6SB1c2FkbyBkZW50cm8gZGUgdW0gYXJxdWl2byBkZSBsb3RlIHBhcmEgZXhlY3V0YXJcblwKY29tYW5kbyBkZSBvdXRybyBhcnF1aXZvIGRlIGxvdGUuIFF1YW5kbyBvIGFycXVpdm8gZXhpc3RlLCBvIGNvbnRyb2xlIHJldG9ybmFcblwKYW8gYXJxdWl2byBxdWUgbyBjaGFtb3UuIE8gY29tYW5kbyBDQUxMIHBvZGUgcGFzc2FyIHBhcuJtZXRyb3MgYW8gcHJvY2VkaW1lbnRvXG5cCmNoYW1hZG8uXG5cClxuXApNdWRhbm7nYXMgbm8gZGlyZXTzcmlvIHBhZHLjbywgdmFyaeF2ZWlzIGRlIGFtYmllbnRlLCBldGMsIGZlaXRhcyBkZW50cm9cblwKZG8gcHJvY2VkaW1lbnRlIGNoYW1hZG8gc+NvIGhlcmRhZG9zIHBlbG8gY2hhbWFkb3IuXG4iCgogIFdDTURfQ0QsICAgICAiQWp1ZGEgZG8gY29tYW5kbyBDRFxuIgogIFdDTURfQ0hESVIsICAiQWp1ZGEgZG8gY29tYW5kbyBDSERJUlxuIgoKICBXQ01EX0NMUywgICAgIkNMUyBsaW1wYSBhIHRlbGEgZG8gY29uc29sZVxuIgoKICBXQ01EX0NPUFksICAgIkFqdWRhIGRvIGNvbWFuZG8gQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiQWp1ZGEgZG8gY29tYW5kbyBDVFRZXG4iCiAgV0NNRF9EQVRFLCAgICJBanVkYSBkbyBjb21hbmRvIERBVEVcbiIKICBXQ01EX0RFTCwgICAgIkFqdWRhIGRvIGNvbWFuZG8gREVMXG4iCiAgV0NNRF9ESVIsICAgICJBanVkYSBkbyBjb21hbmRvIERJUlxuIgoKICBXQ01EX0VDSE8sCiJFQ0hPIDxzdHJpbmc+IG1vc3RyYSBhIDxzdHJpbmc+IG5vIGRpc3Bvc2l0aXZvIHRlcm1pbmFsIGF0dWFsLlxuXApcblwKRUNITyBPTiBhdGl2YSBhIGV4aWJp5+NvIGRlIHRvZG9zIG9zIGNvbWFuZG9zIHN1YnNlcXVlbnRlcyBlbSB1bVxuXAphcnF1aXZvIGRlIGxvdGUgbm8gdGVybWluYWwgYW50ZXMgZGVsZXMgc2VyZW0gZXhlY3V0YWRvcy5cblwKXG5cCkVDSE8gT0ZGIGRlc2F0aXZhIG8gZWZlaXRvIGRlIHVtIGNvbWFuZG8gRUNITyBPTiAoRUNITyDpIE9GRiBwb3IgcGFkcuNvKS5cblwKTyBjb21hbmRvIEVDSE8gT0ZGIHBvZGUgc2VyIGltcGVkaWRvIGRlIHNlciBtb3N0cmFkbyBjb2xvY2FuZG8tc2UgdW1cblwKc+1tYm9sbyBAIHByZWNlZGVuZG8gbyBtZXNtby5cbiIKCiAgV0NNRF9FUkFTRSwgICJBanVkYSBkbyBjb21hbmRvIEVSQVNFXG4iCgogIFdDTURfRk9SLAoiTyBjb21hbmRvIEZPUiDpIHVzYWRvIHBhcmEgZXhlY3V0YXIgdW0gY29tYW5kbyBhIGNhZGEgdmV6IGVtXG5cdW0gY29uanVudG8gZGUgYXJxdWl2b3MuXG5cClxuXApTaW50YXhlOiBGT1IgJXZhcmnhdmVsIElOIChjb25qdW50bykgRE8gY29tYW5kb1xuXApcblwKTm8gd2NtZCwgbuNvIGV4aXN0ZSBhIG5lY2Vzc2lkYWRlIGRlIHVzYXIgZG9pcyBzaW5haXMgXCUgbm8gXG5cCmNvbWFuZG8gRk9SIG5vcyBhcnF1aXZvcyBkZSBsb3RlLlxuIgoKICBXQ01EX0dPVE8sCiJPIGNvbWFuZG8gR09UTyB0cmFuc2ZlcmUgYSBleGVjdefjbyBwYXJhIG91dHJhIGRlY2xhcmHn428gZGVudHJvXG5cCmRvIGFycXVpdm8gZGUgbG90ZS5cblwKXG5cCk8gcvN0dWxvIHF1ZSBzZXLhIG8gZGVzdGlubyBkbyBjb21hbmRvIEdPVE8gcG9kZSB0ZXIgYXTpIDI1NSBjYXJhY3RlcmVzXG5cCm1hcyBu428gcG9kZSBpbmNsdWlyIGVzcGHnb3MgKGRpZmVyZW50ZW1lbnRlIGRlIG91dHJvcyBzaXN0ZW1hcyBvcGVyYWNpb25haXMpLlxuXApTZSBkb2lzIG91IG1haXMgcvN0dWxvcyBmb3JlbSBpZGVudGljb3Mgbm8gYXJxdWl2byBkZSBsb3RlLCBvIHByaW1laXJvIGRlbGVzXG5cCnNlcuEgc2VtcHJlIGV4ZWN1dGFkby4gQSB0ZW50YXRpdmEgZGUgdXNhciBvIEdPVE8gcGFyYSB1bSBy83R1bG8gaW5leGlzdGVudGVcblwKdGVybWluYSBhIGV4ZWN15+NvIGRvIGFycXVpdm8gZGUgbG90ZS5cblwKXG5cCkdPVE8gbuNvIHRlbSBlZmVpdG8gcXVhbmRvIHVzYW5kbyBpbnRlcmF0aXZhbWVudGUuXG4iCgogIFdDTURfSEVMUCwgICAiQWp1ZGEgZG8gY29tYW5kbyBIRUxQXG4iCgogIFdDTURfSUYsCiJJRiDpIHVzYWRvIHBhcmEgZXhlY3V0YXIgdW0gY29tYW5kbyBjb25kaWNpb25hbG1lbnRlLlxuXApcblwKU2ludGF4ZToJSUYgW05PVF0gRVhJU1QgYXJxdWl2byBjb21hbmRvXG5cCglJRiBbTk9UXSB0ZXh0bzE9PXRleHRvMiBjb21hbmRvXG5cCglJRiBbTk9UXSBFUlJPUkxFVkVMIG76bWVybyBjb21hbmRvXG5cClxuXApOYSBzZWd1bmRhIGZvcm1hIGRvIGNvbWFuZG8sIHRleHRvMSBlIHRleHRvMiBkZXZlbSBlc3RhciB1c2FuZG8gYXNwYXMuXG5cCkEgY29tcGFyYefjbyBu428gZGlmZXJlbmNpYSBtYWn6c2N1bGFzIGRlIG1pbnVzY3VsYXMuXG4iCgogIFdDTURfTEFCRUwsICAiTEFCRUwg6SB1c2FkbyBwYXJhIHJvdHVsYXIgdW0gdm9sdW1lIGRvIGRpc2NvLiAgXG5cClxuXApTaW50YXhlOiBMQUJFTCBbZHJpdmU6XVxuXApPIGNvbWFuZG8gTEFCRUwgaXLhIGFndWFyZGFyIHF1ZSB2YyBpbmZvcm1lIG8gbm92byBy83R1bG8gcGFyYSBvIGRyaXZlXG5cCmVzcGVjaWZpY2Fkby4gVm9j6iBwb2RlIG1vc3RyYXIgbyBy83R1bG8gZG8gZGlzY28gY29tIG8gY29tYW5kbyBWT0wuXG4iCgogIFdDTURfTUQsICAgICAiQWp1ZGEgZG8gY29tYW5kbyBNRFxuIgogIFdDTURfTUtESVIsICAiQWp1ZGEgZG8gY29tYW5kbyBNS0RJUlxuIgogIFdDTURfTU9WRSwKIk1PVkUgcmVhbG9jYSB1bSBhcnF1aXZvIG91IGRpcmV083JpbyBlbSB1bSBub3ZvIHBvbnRvIG5vIHNpc3RlbWEgZGUgYXJxdWl2b3MuXG5cClxuXApTZSBvIGl0ZW0gc2VuZG8gbW92aWRvIOkgdW0gZGlyZXTzcmlvIGVudONvIHRvZG9zIG9zIGFycXVpdm9zIGUgc3ViZGlyZXTzcmlvc1xuXAphYmFpeG8gZG8gaXRlbSBz428gbW92aWRvcyBjb20gbyBtZXNtby5cblwKXG5cCk1PVkUgZmFsaGFy4SBzZSBvIGxvY2FsIGFudGlnbyBlIG8gbm92byBsb2NhbCBlc3TjbyBlbSBkaWZlcmVudGVzIHVuaWRhZGVzLlxuIgoKICBXQ01EX1BBVEgsCiJQQVRIIG1vc3RyYSBvdSBwZXJtaXRlIG11ZGFyIG8gY2FtaW5obyBkZSBwcm9jdXJhIGRlIHByb2dyYW1hcyBkbyB3Y21kLlxuXApcblwKRGlnaXRhbmRvIFBBVEggbW9zdHJhcuEgYSBhdHVhbCBjb25maWd1cmHn428gZG8gY29tYW5kbyBQQVRIIChpbmljaWFsbWVudGUgZXN0ZVxuXAp2YWxvciDpIGVzcGVjaWZpY2FkbyBubyBhcnF1aXZvIHdpbmUuY29uZikuIFBhcmEgbXVkYXIgYXMgY29uZmlndXJh5/VlcywgZGlnaXRlXG5cCm5vdm9zIHZhbG9yZXMgbm8gY29tYW5kbyBQQVRILlxuXApcblwKVGFtYultIOkgcG9zc+12ZWwgbW9kaWZpY2FyIG8gY29tYW5kbyBQQVRIIHVzYW5kbyBhIHZhcmnhdmVsIGRlIGFtYmllbnRlIFBBVEgsXG5cCnBvciBleGVtcGxvOlxuXAoJCVBBVEggJVBBVEglO2M6XFx0ZW1wXG4iCgogIFdDTURfUEFVU0UsCiJQQVVTRSBtb3N0cmEgYSBzZWd1aW50ZSBtZW5zYWdlbSBuYSB0ZWxhICdQcmVzc2lvbmUgRW50ZXIgcGFyYSBjb250aW51YXInXG5cCmUgYWd1YXJkYSBxdWUgbyB1c3XhcmlvIHByZXNzaW9uZSBhIHRlY2xhIEVudGVyLiBJc3RvIOkg+nRpbCBwcmluY2lwYWxtZW50ZVxuXAplbSBhcnF1aXZvcyBkZSBsb3RlIHBhcmEgcGVybWl0aXIgYW8gdXN14XJpbyBsZXIgYSBzYe1kYSBkZSB1bSBjb21hbmRvIGFudGVyaW9yXG5cCmFudGVzIHF1ZSBhIHRlbGEgc29mcmEgdW0gcm9sYW1lbnRvLlxuIgoKICBXQ01EX1BST01QVCwKIlBST01QVCBjb25maWd1cmEgbyAncHJvbXB0JyBkYSBsaW5oYSBkZSBjb21hbmRvLlxuXApcblwKTyB0ZXh0byBzZWd1aW5kbyBvIGNvbWFuZG8gUFJPTVBUIChlIG9zIGVzcGHnb3MgaW1lZGlhdGFtZW50ZSBkZXBvaXMpXG5cCmFwYXJlY2VtIG5vIGNvbWXnbyBkYSBsaW5oYSBlbnF1YW50byBvIHdjbWQgZXN04SBhZ3VhcmRhbmRvIHBvciBjb21hbmRvcy5cblwKXG5cCk9zIHNlZ3VpbnRlcyBjYXJhY3RlcmVzIHRlbSB1bSBzaWduaWZpY2FkbyBlc3BlY2lhbCwgY29uZm9ybWUgbW9zdHJhZG86XG5cClxuXAokJCAgICBDaWZy428gKCQpICAgICAgICAgICRfICAgIEF2YW7nbyBkZSBsaW5oYSAgICAgJGIgICAgU+1tYm9sbyBwaXBlICh8KVxuXAokZCAgICBEYXRhIGF0dWFsICAgICAgICAgICRlICAgIEPzZGlnbyBkZSBlc2NhcGUgICAgJGcgICAgU2luYWwgZGUgbWFpb3IgKD4pXG5cCiRsICAgIFNpbmFsIGRlIG1lbm9yICg8KSAgJG4gICAgVW5pZGFkZSBhdHVhbCAgICAgICAkcCAgICBDYW1pbmhvIGF0dWFsXG5cCiRxICAgIFNpbmFsIGRlIGlndWFsICg9KSAgJHQgICAgSG9yYSBhdHVhbCAgICAgICAgICAkdiAgICBWZXJz428gZG8gd2NtZFxuXApcblwKTm90ZSBxdWUgZGlnaXRhbmRvIG8gY29tYW5kbyBQUk9NUFQgc2VtIHBhcuJtZXRyb3MgcmVjb25maWd1cmEgbyBwYWRy428sXG5cCnF1ZSDpIGEgbGV0cmEgZGEgdW5pZGFkZSBhdHVhbCBzZWd1aWRhIHBlbG8gZGlyZXTzcmlvIGUgdW0gc2luYWwgZGUgbWFpb3JcblwKKGVxdWl2YWxlbnRlIGEgdW0gY29tYW5kbyBQUk9NUFQgJHAkZykuXG5cClxuXApPICdwcm9tcHQnIHRhbWLpbSBwb2RlIHNlciBtdWRhZG8gYWx0ZXJhbmRvIGEgdmFyaeF2ZWwgUFJPTVBULCBhc3NpbSxcblwKbyBjb21hbmRvICdTRVQgUFJPTVBUPXRleHRvJyB0ZW0gbyBtZXNtbyBlZmVpdG8gcXVlICdQUk9NUFQgdGV4dG8nXG4iCgogIFdDTURfUkVNLAoiVW1hIGxpbmhhIGRlIGNvbWFuZG8gaW5pY2lhbmRvIGNvbSBSRU0gKHNlZ3VpbmRvIGRlIHVtIGVzcGHnbykgbuNvIGZhelxuXAph5+NvIGFsZ3VtYSwgZSBvcyBjYXJhdGVyZXMgdXNhbmRvIHPjbyBjb25zaWRlcmFkb3MgY29tZW504XJpb3MgZW0gdW1cblwKYXJxdWl2byBkZSBsb3RlXG4iCgogIFdDTURfUkVOLCAgICAiQWp1ZGEgZG8gY29tYW5kbyBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIkFqdWRhIGRvIGNvbWFuZG8gUkVOQU1FXG4iCiAgV0NNRF9SRCwgICAgICJBanVkYSBkbyBjb21hbmRvIFJEXG4iCiAgV0NNRF9STURJUiwgICJBanVkYSBkbyBjb21hbmRvIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIG1vc3RyYSBvdSBtdWRhIGFzIHZhcuF2ZWwgZGUgYW1iaWVudGUgZGUgd2NtZC5cblwKXG5cClNFVCBzZW0gcGFy6m10cm9zIG1vc3RyYSB0b2RhcyBhcyB2YXLhdmVsIGRlIGFtYmllbnRlIGF0dWFpc1xuXApcblwKUGFyYSBjcmlhciBvdSBtb2RpZmljYXIgdmFyaeF2ZWwgZGUgYW1iaWVudGUsIGEgc2ludGF4ZSDpOlxuXApcblwKICAgICAgU0VUIDx2YXJp4XZlbD49PHZhbG9yPlxuXApcblwKc2VuZG8gcXVlIDx2YXJp4XZlbD4gZSA8dmFsb3I+IHPjbyB0ZXh0b3MuIE7jbyBkZXZlbSBleGlzdGlyIGVzcGHnb3NcblwKYW50ZXMgZG8gc2luYWwgZGUgaWd1YWxkYWRlLCBuZW0gYSB2YXLhdmVsIHBvZGUgY29udGVyIGVzcGHnb3MuXG5cClxuXApObyBXaW5lLCBvIGFtYmllbnRlIGRvIHNpc3RlbWEgb3BlcmFjaW9uYWwg6SBpbmNsdWlkbyBubyBhbWJpZW50ZSBXaW4zMixcblwKb25kZSBzZW1wcmUgaGF2ZXLhIG1haXMgdmFsb3JlcyBxdWUgZW0gdW0gc2lzdGVtYSBXaW4zMiBuYXRpdm8uIE5vdGUgcXVlXG5cCm7jbyDpIHBvc3PtdmVsIGFmZXRhciBvIGFtYmllbnRlIGRvIHNpc3RlbWEgb3BlcmFjaW9uYWwgYSBwYXJ0aXIgZG8gd2NtZC5cbiIKCiAgV0NNRF9TSElGVCwKIlNISUZUIOkgdXNhZG8gZW0gYXJxdWl2b3MgZGUgbG90ZSBwYXJhIHJlbW92ZXIgdW0gcGFy4m1ldHJvIHF1ZSBpbmljaWEgYVxuXApsaXN0YSwgYXNzaW0gZW50428gbyBwYXLibWVudHJvMiBzb2JyZXD0ZSBvIHBhcmFtZXRybzEgZSBhc3NpbSBwb3IgZGlhbnRlLlxuXApJc3RvIG7jbyB0ZW0gZWZlaXRvIHNlIGNoYW1hZG8gYSBwYXJ0aXIgZGEgbGluaGEgZGUgY29tYW5kby5cbiIKCiAgV0NNRF9USU1FLCAgICJBanVkYSBkbyBjb21hbmRvIFRJTUVcbiIKCiAgV0NNRF9USVRMRSwgICJDb25maWd1cmEgbyB07XR1bG8gZGEgamFuZWxhIGRvIHdjbWQsIGUgYSBzaW50YXhlIOkgVElUTEUgW3RleHRvXVxuIgoKICBXQ01EX1RZUEUsCiJUWVBFIDxhcnF1aXZvPiBjb3BpYSA8YXJxdXZvPiBwYXJhIG8gZGlzcG9zaXRpdm8gY29uc29sZSAob3Ugb3V0cm8sIHNlXG5cCnJlZGlyZWNpb25hZG8pLiBOZWh1bWEgdmVyaWZpY2Hn428g6SBmZWl0YSBzZSBvIGFycXVpdm8gcG9kZSBzZXIgbGlkby5cbiIKCiAgV0NNRF9WRVJJRlksCiJWRVJJRlkg6SB1c2FkbyBwYXJhIGNvbmZpZ3VyYXIsIGxpbXBhciBlIHRlc3RhciBvICdmbGFnJyBkZSB2ZXJpZmljYefjby4gQXNcblwKZm9ybWFzIHbhbGlkYXMgc+NvPlxuXApcblwKVkVSSUZZIE9OCUNvbmZpZ3VyYSBvIGZsYWdcblwKVkVSSUZZIE9GRglMaW1wYSBvIGZsYWdcblwKVkVSSUZZCQlNb3N0cmEgT04gb3UgT0ZGIHFkbyBhcHJvcHJpYWRvLlxuXApcblwKTyBmbGFnIGRlIHZlcmlmaWNh5+NvIG7jbyB0ZW0gZnVu5+NvIG5vIFdpbmUuXG4iCgogIFdDTURfVkVSLAoiVkVSIG1vc3RyYSBhIHZlcnPjbyBlbSBleGVjdefjbyBkbyB3Y21kLlxuIgoKICBXQ01EX1ZPTCwgICAgIkFqdWRhIGRvIGNvbWFuZG8gVk9MXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgdGVybWluYSBhIHNlc3PjbyBkZSBjb21hbmRvIGF0dWFsIGUgcmV0b3JuYSBhbyBzaXN0ZW1hIG9wZXJhY2lvbmFsXG5cCm91IHNoZWxsIHF1ZSB0ZW5oYSBpbnZvY2FkbyBvIHdjbWQuXG4iCgogIDEwMDAsICJXQ01EIC0gb3MgY29tYW5kbyBpbnRlcm5vcyBz4286XG5cCkFUVFJJQlx0XHRNb3N0cmEgb3UgdHJvY2EgYXRyaWJ1dG9zIGRlIGFycXVpdm8gRE9TXG5cCkNBTExcdFx0SW52b2NhIHVtIGFycXVpdm8gZGUgbG90ZSBkZW50cm8gZGUgb3V0cm9cblwKQ0QgKENIRElSKVx0TXVkYSBvIGRpcmV083JpbyBwYWRy428gYXR1YWxcblwKQ0xTXHRcdExpbXBhIGEgdGVsYSBkbyBjb25zb2xlXG5cCkNPUFlcdFx0Q29waWEgYXJxdWl2b3NcblwKQ1RUWVx0XHRNdWRhIG8gZGlzcG9zaXRpdm8gZGUgZW50cmFkYS9zYe1kYVxuXApEQVRFXHRcdE1vc3RyYSBvdSBtdWRhIGEgZGF0YSBkbyBzaXN0ZW1hXG5cCkRFTCAoRVJBU0UpXHRBcGFnYSB1bSBhcnF1aXZvIG91IGNvbmp1bnRvIGRlIGFycXVpdm9zXG5cCkRJUlx0XHRNb3N0cmEgbyBjb250ZfpkbyBkZSB1bSBkaXJldPNyaW9zXG5cCkVDSE9cdFx0Q29waWEgdGV4dG8gZGlyZXRhbWVudGUgbmEgc2HtZGEgZG8gY29uc29sZVxuXApIRUxQXHRcdE1vc3RyYSBicmV2ZXMgZGV0YWxoZXMgZGUgdW0gdPNwaWNvXG5cCk1EIChNS0RJUilcdENyaWEgdW0gc3ViZGlyZXTzcmlvXG5cCk1PVkVcdFx0TW92ZSB1bSBhcnF1aXZvLCBjb25qdW50byBkZSBhcnF1aXZvcyBvdSB1bWEg4XJ2b3JlIGRlIGRpcmV083Jpb3NcblwKUEFUSFx0XHRDb25maWdpcmEgbyBjYW1pbmhvIGRlIHByb2N1cmFcblwKUFJPTVBUXHRcdE11ZGEgbyAncHJvbXB0JyBkZSBjb21hbmRvXG5cClJFTiAoUkVOQU1FKVx0UmVub21laWEgdW0gYXJxdWl2b1xuXApSRCAoUk1ESVIpXHRBcGFnYSB1bSBzdWJkaXJldPNyaW9cblwKU0VUXHRcdENvbmZpZ3VyYSBvdSBtb3N0cmEgdmFyaeF2ZWlzIGRlIGFtYmllbnRlXG5cClRJTUVcdFx0Q29uZmlndXJhIG91IG1vc3RyYSBhIGhvcmEgYXR1YWwgZG8gc2lzdGVtYVxuXApUSVRMRVx0XHRDb25maWd1cmEgbyB07XR1bG8gZGEgamFuZWxhIGRlIGNvbWFuZG8gV0NNRFxuXApUWVBFXHRcdE1vc3RyYSBvIGNvbnRl+mRvIGRlIHVtIGFycXVpdm8gdGV4dG9cblwKVkVSXHRcdE1vc3RyYSBhIHZlcnPjbyBhdHVhbCBkbyBXQ01EXG5cClZPTFx0XHRNb3N0cmEgbyBy83R1bG8gZG8gdm9sdW1lIGRlIHVtYSB1bmlkYWRlIGRlIGRpc2NvXG5cCkVYSVRcdFx0RmVjaGEgbyBXQ01EXG5cblwKRW50cmUgSEVMUCA8Y29tYW5kbz4gcGFyYSBtYWlvcmVzIGluZm9ybWHn9WVzIHNvYnJlIGFsZ3VucyBkb3MgY29tYW5kb3MgYWNpbWFcbiIKfQo=