LyoKICogU2hlbGwzMgogKiBGcmVuY2ggbGFuZ3VhZ2Ugc3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMTk5OCBKdWVyZ2VuIFNjaG1pZWQKICogQ29weXJpZ2h0IDIwMDYgSm9uYXRoYW4gRXJuc3QKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKTUVOVV8wMDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJTUVOVUlURU0gIiZHcmFuZGVzIGlj9G5lcyIsCUZDSURNX1NIVklFV19CSUdJQ09OCglNRU5VSVRFTSAiJlBldGl0ZXMgaWP0bmVzIiwJRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgoJTUVOVUlURU0gIiZMaXN0ZSIsCQlGQ0lETV9TSFZJRVdfTElTVFZJRVcKCU1FTlVJVEVNICImROl0YWlscyIsCQlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwpFTkQKCi8qCiBzaGVsbHZpZXcgYmFja2dyb3VuZCBtZW51CiovCk1FTlVfMDAyIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBQT1BVUCAiJkFmZmljaGFnZSIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJkdyYW5kZXMgaWP0bmVzIiwJRkNJRE1fU0hWSUVXX0JJR0lDT04KCSAgICBNRU5VSVRFTSAiJlBldGl0ZXMgaWP0bmVzIiwJRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgoJICAgIE1FTlVJVEVNICImTGlzdGUiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCgkgICAgTUVOVUlURU0gIiZE6XRhaWxzIiwJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKCSAgRU5ECgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiVHJpZXIgbGVzICZpY/RuZXMiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIlBhciAmbm9tIiwJMHgzMAkvKiBjb2x1bW4gMCAqLwoJICAgIE1FTlVJVEVNICJQYXIgJnR5cGUiLAkweDMyCS8qIGNvbHVtbiAyICovCgkgICAgTUVOVUlURU0gIlBhciB0JmFpbGxlIiwJMHgzMQkvKiAuLi4gKi8KCSAgICBNRU5VSVRFTSAiUGFyICZkYXRlIiwJMHgzMwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICAgIE1FTlVJVEVNICJUJnJpIGF1dG9tYXRpcXVlIiwJRkNJRE1fU0hWSUVXX0FVVE9BUlJBTkdFCgkgIEVORAoJICBNRU5VSVRFTSAiQWxpZ25lciBsZXMgaWP0bmVzIiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJBY3R1YWxpc2VyIiwJCUZDSURNX1NIVklFV19SRUZSRVNICgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiQ29sbGVyIiwJCQlGQ0lETV9TSFZJRVdfSU5TRVJUCgkgIE1FTlVJVEVNICJDb2xsZXIgY29tbWUgbGllbiIsCUZDSURNX1NIVklFV19JTlNFUlRMSU5LCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiTm91dmVhdSIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiTm91dmVhdSBkJm9zc2llciIsCUZDSURNX1NIVklFV19ORVdGT0xERVIKCSAgICBNRU5VSVRFTSAiTm91dmVhdSAmbGllbiIsCQlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJQcm9wcmnpdOlzIiwJCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiRSZ4cGxvcmVyIiwJCUZDSURNX1NIVklFV19FWFBMT1JFCgkgIE1FTlVJVEVNICImT3V2cmlyIiwJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiQyZvdXBlciIsCQlGQ0lETV9TSFZJRVdfQ1VUCgkgIE1FTlVJVEVNICImQ29waWVyIiwJCUZDSURNX1NIVklFV19DT1BZCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiQ3LpZXIgdW4gJmxpZW4iLAlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiJlN1cHByaW1lciIsCUZDSURNX1NIVklFV19ERUxFVEUKCSAgTUVOVUlURU0gIiZSZW5vbW1lciIsCQlGQ0lETV9TSFZJRVdfUkVOQU1FCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiJlByb3Byael06XMiLAlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwoJRU5ECkVORAoKU0hCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMTg4LCAxOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgRFNfTU9EQUxGUkFNRSB8IERTX1NFVEZPTlQgfCBEU18zRExPT0sKQ0FQVElPTiAiUGFyY291cmlyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgMSwgODAsIDE3NiwgNTAsIDEyLCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBbm51bGVyIiwgMiwgMTM0LCAxNzYsIDUwLCAxMiwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAiIiwgSUREX1RJVExFLCA0LCA0LCAxODAsIDEyCiBMVEVYVCAiIiwgSUREX1NUQVRVUywgNCwgMjUsIDE4MCwgMTIKIENPTlRST0wgIiIsIElERF9UUkVFVklFVywgIlN5c1RyZWVWaWV3MzIiLAogCVRWU19IQVNCVVRUT05TIHwgVFZTX0hBU0xJTkVTIHwgVFZTX0xJTkVTQVRST09UIHwKCVdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCgk0LCA0MCwgMTgwLCAxMjAKfQoKU0hFTExfQUJPVVRfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjEwLCAxNTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsAgcHJvcG9zIGRlICVzIgpGT05UIDEwLCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE1MywgMTMzLCA1MCwgMTIsIFdTX1RBQlNUT1AKIExJU1RCT1ggOTksIDgsIDY1LCAxMzcsIDgyLCBMQlNfTk9USUZZIHwgV1NfVlNDUk9MTCB8IFdTX0JPUkRFUgogSUNPTiAiIiwgMTA4OCwgMTAsIDEwLCAxNCwgMTYKIExURVhUICIiLCAxMDAsIDMwLCAxMCwgMTM3LCAxMAogTFRFWFQgIiIsIDEwMSwgMzAsIDIyLCAxMzcsIDEwCiBMVEVYVCAiV2luZSBlc3QgdW5lIHLpYWxpc2F0aW9uIGRlIDoiLCA5OCwgOCwgNTUsIDEzNywgMTAKfQoKU0hFTExfUlVOX0RMRyBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyMjcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogSUNPTiAiIiwgMTIyOTcsIDcsIDExLCAxOCwgMjAsIFdTX1ZJU0lCTEUKIExURVhUICJFbnRyZXogbGUgbm9tIGQndW4gcHJvZ3JhbW1lLCBkJ3VuIGRvc3NpZXIsIGQndW4gZG9jdW1lbnQgb3UgZCd1bmUgcmVzc291cmNlIEludGVybmV0LCBldCBXaW5lIGwnb3V2cmlyYSBwb3VyIHZvdXMuIiwgMTIyODksIDM2LCAxMSwgMTgyLCAxOAogTFRFWFQgIiZPdXZyaXIgOiIsIDEyMzA1LCA3LCAzOSwgMjQsIDEwCiBDT05UUk9MICIiLCAxMjI5OCwgIkNPTUJPQk9YIiwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgV1NfVlNDUk9MTCB8IFdTX1ZJU0lCTEUgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX0RST1BET1dOLCAzNiwgMzcsIDE4MywgMTAwCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDYyLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBbm51bGVyIiwgSURDQU5DRUwsIDExNiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJlBhcmNvdXJpci4uLiIsIDEyMjg4LCAxNzAsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewogICAgICAgIC8qIGNvbHVtbnMgaW4gdGhlIHNoZWxsdmlldyAqLwoJSURTX1NIVl9DT0xVTU4xCQkiRmljaGllciIKCUlEU19TSFZfQ09MVU1OMgkJIlRhaWxsZSIKCUlEU19TSFZfQ09MVU1OMwkJIlR5cGUiCglJRFNfU0hWX0NPTFVNTjQJCSJNb2RpZmnpIgoJSURTX1NIVl9DT0xVTU41CQkiQXR0cmlidXRzIgoJSURTX1NIVl9DT0xVTU42CQkiQ2FwYWNpdOkiCglJRFNfU0hWX0NPTFVNTjcJCSJFc3BhY2UgZGlzcG9uaWJsZSIKCUlEU19TSFZfQ09MVU1OOAkJIk5vbSIKCUlEU19TSFZfQ09MVU1OOQkJIkNvbW1lbnRhaXJlcyIKCUlEU19TSFZfQ09MVU1OMTAJIlByb3Byael0YWlyZSIKCUlEU19TSFZfQ09MVU1OMTEJIkdyb3VwZSIKCUlEU19TSFZfQ09MVU1OX0RFTEZST00JIkVtcGxhY2VtZW50IGQnb3JpZ2luZSIKCUlEU19TSFZfQ09MVU1OX0RFTERBVEUJIkRhdGUgZGUgc3VwcHJlc3Npb24iCgogICAgICAgIC8qIHNwZWNpYWwgZm9sZGVycyAqLwoJSURTX0RFU0tUT1AJCSJCdXJlYXUiCglJRFNfTVlDT01QVVRFUgkJIlBvc3RlIGRlIHRyYXZhaWwiCglJRFNfUkVDWUNMRUJJTl9GT0xERVJfTkFNRSAgICAgICJDb3JiZWlsbGUiCgogICAgICAgIC8qIGNvbnRleHQgbWVudXMgKi8KCUlEU19WSUVXX0xBUkdFCQkiJkdyYW5kZXMgaWP0bmVzIgoJSURTX1ZJRVdfU01BTEwJCSImUGV0aXRlcyBpY/RuZXMiCglJRFNfVklFV19MSVNUCQkiJkxpc3RlIgoJSURTX1ZJRVdfREVUQUlMUwkiJkTpdGFpbHMiCglJRFNfU0VMRUNUCQkiU+lsZWN0aW9ubmVyIgoJSURTX09QRU4JCSJPdXZyaXIiCgoJSURTX0NSRUFURUZPTERFUl9ERU5JRUQgIkltcG9zc2libGUgZGUgY3LpZXIgbGUgbm91dmVhdSBkb3NzaWVyIDogcGVybWlzc2lvbiByZWZ1c+llLiIKCUlEU19DUkVBVEVGT0xERVJfQ0FQVElPTiAiRXJyZXVyIGxvcnMgZGUgbGEgY3LpYXRpb24gZHUgbm91dmVhdSBkb3NzaWVyIgoJSURTX0RFTEVURUlURU1fQ0FQVElPTiAiQ29uZmlybWVyIGxhIHN1cHByZXNzaW9uIGR1IGZpY2hpZXIiCglJRFNfREVMRVRFRk9MREVSX0NBUFRJT04gIkNvbmZpcm1lciBsYSBzdXBwcmVzc2lvbiBkdSBkb3NzaWVyIgoJSURTX0RFTEVURUlURU1fVEVYVCAiynRlcy12b3VzIHP7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciAnJTEnPyIKCUlEU19ERUxFVEVNVUxUSVBMRV9URVhUICLKdGVzLXZvdXMgc/tyIGRlIHZvdWxvaXIgc3VwcHJpbWVyIGNlcyAlMSDpbOltZW50cyA/IgoJSURTX0RFTEVURVNFTEVDVEVEX1RFWFQgIsp0ZXMtdm91cyBz+3IgZGUgdm91bG9pciBzdXBwcmltZXIgbGUobGVzKSDpbOltZW50KHMpIHPpbOllY3Rpb25u6ShzKaA/IgoJSURTX1RSQVNISVRFTV9URVhUICLKdGVzLXZvdXMgc/tyIGRlIHZvdWxvaXIgbWV0dHJlIKugJTGguyBkYW5zIGxhIGNvcmJlaWxsZaA/IgoJSURTX1RSQVNIRk9MREVSX1RFWFQgIsp0ZXMtdm91cyBz+3IgZGUgdm91bG9pciBtZXR0cmUgq6AlMaC7IGV0IHRvdXQgY2UgcXUnaWwgY29udGllbnQgZGFucyBsYSBjb3JiZWlsbGWgPyIKCUlEU19UUkFTSE1VTFRJUExFX1RFWFQgIsp0ZXMtdm91cyBz+3IgZGUgdm91bG9pciBtZXR0cmUgY2VzICUxIOls6W1lbnRzIGRhbnMgbGEgY29yYmVpbGxloD8iCglJRFNfQ0FOVFRSQVNIX1RFWFQgIkwn6WzpbWVudCCroCUxoLsgbmUgcGV1dCBwYXMg6nRyZSBtaXMgZGFucyBsYSBjb3JiZWlsbGUuIFNvdWhhaXRlei12b3VzIGxlIHN1cHByaW1lciDgIGxhIHBsYWNloD8iCglJRFNfT1ZFUldSSVRFRklMRV9URVhUICLJY3Jhc2VyIGxlIGZpY2hpZXIgJTGgPyIKCUlEU19PVkVSV1JJVEVGSUxFX0NBUFRJT04gIkNvbmZpcm1lciBsJ+ljcmFzZW1lbnQgZHUgZmljaGllciIKCiAgICAgICAgLyogbWVzc2FnZSBib3ggc3RyaW5ncyAqLwogICAgICAgSURTX1JFU1RBUlRfVElUTEUgICAgICAgIlJlZOltYXJyZXIiCiAgICAgICBJRFNfUkVTVEFSVF9QUk9NUFQgICAgICAiVm91bGV6LXZvdXMgc2ltdWxlciBsZSByZWTpbWFycmFnZSBkZSBXaW5kb3dzoD8iCiAgICAgICBJRFNfU0hVVERPV05fVElUTEUgICAgICAiQXJy6nRlciIKICAgICAgIElEU19TSFVURE9XTl9QUk9NUFQgICAgICJWb3VsZXotdm91cyBmZXJtZXIgbGEgc2Vzc2lvbiBXaW5loD8iCgovKiBzaGVsbCBmb2xkZXIgcGF0aCBkZWZhdWx0IHZhbHVlcyAqLwogSURTX1BST0dSQU1TICAgICAgICAgICAgICAgICJNZW51IETpbWFycmVyXFxQcm9ncmFtbWVzIgogSURTX1BFUlNPTkFMICAgICAgICAgICAgICAgICJNZXMgZG9jdW1lbnRzIgogSURTX0ZBVk9SSVRFUyAgICAgICAgICAgICAgICJGYXZvcmlzIgogSURTX1NUQVJUVVAgICAgICAgICAgICAgICAgICJNZW51IETpbWFycmVyXFxQcm9ncmFtbWVzXFxE6W1hcnJhZ2UiCiBJRFNfUkVDRU5UICAgICAgICAgICAgICAgICAgIlJlY2VudCIKIElEU19TRU5EVE8gICAgICAgICAgICAgICAgICAiU2VuZFRvIgogSURTX1NUQVJUTUVOVSAgICAgICAgICAgICAgICJNZW51IETpbWFycmVyIgogSURTX01ZTVVTSUMgICAgICAgICAgICAgICAgICJNYSBtdXNpcXVlIgogSURTX01ZVklERU8gICAgICAgICAgICAgICAgICJNZXMgdmlk6W9zIgogSURTX0RFU0tUT1BESVJFQ1RPUlkgICAgICAgICJCdXJlYXUiCiBJRFNfTkVUSE9PRCAgICAgICAgICAgICAgICAgIlZvaXNpbmFnZSBS6XNlYXUiCiBJRFNfVEVNUExBVEVTICAgICAgICAgICAgICAgIk1vZOhsZXMiCiBJRFNfQVBQREFUQSAgICAgICAgICAgICAgICAgIkFwcGxpY2F0aW9uIERhdGEiCiBJRFNfUFJJTlRIT09EICAgICAgICAgICAgICAgIlZvaXNpbmFnZSBkJ2ltcHJlc3Npb24iCiBJRFNfTE9DQUxfQVBQREFUQSAgICAgICAgICAgIkxvY2FsIFNldHRpbmdzXFxBcHBsaWNhdGlvbiBEYXRhIgogSURTX0lOVEVSTkVUX0NBQ0hFICAgICAgICAgICJMb2NhbCBTZXR0aW5nc1xcVGVtcG9yYXJ5IEludGVybmV0IEZpbGVzIgogSURTX0NPT0tJRVMgICAgICAgICAgICAgICAgICJDb29raWVzIgogSURTX0hJU1RPUlkgICAgICAgICAgICAgICAgICJMb2NhbCBTZXR0aW5nc1xcSGlzdG9yaXF1ZSIKIElEU19QUk9HUkFNX0ZJTEVTICAgICAgICAgICAiUHJvZ3JhbSBGaWxlcyIKIElEU19NWVBJQ1RVUkVTICAgICAgICAgICAgICAiTWVzIGltYWdlcyIKIElEU19QUk9HUkFNX0ZJTEVTX0NPTU1PTiAgICAiUHJvZ3JhbSBGaWxlc1xcRmljaGllcnMgY29tbXVucyIKIElEU19DT01NT05fRE9DVU1FTlRTICAgICAgICAiRG9jdW1lbnRzIgogSURTX0FETUlOVE9PTFMgICAgICAgICAgICAgICJNZW51IETpbWFycmVyXFxQcm9ncmFtbWVzXFxPdXRpbHMgZCdhZG1pbmlzdHJhdGlvbiIKIElEU19DT01NT05fTVVTSUMgICAgICAgICAgICAiRG9jdW1lbnRzXFxNYSBtdXNpcXVlIgogSURTX0NPTU1PTl9QSUNUVVJFUyAgICAgICAgICJEb2N1bWVudHNcXE1lcyBpbWFnZXMiCiBJRFNfQ09NTU9OX1ZJREVPICAgICAgICAgICAgIkRvY3VtZW50c1xcTWVzIHZpZOlvcyIKIElEU19DREJVUk5fQVJFQSAgICAgICAgICAgICAiTG9jYWwgU2V0dGluZ3NcXEFwcGxpY2F0aW9uIERhdGFcXE1pY3Jvc29mdFxcQ0QgQnVybmluZyIKfQo=