LyogSGV5LCBFbWFjcywgb3BlbiB0aGlzIGZpbGUgd2l0aCAtKi0gY29kaW5nOiBjcDEyNTAgLSotCiAqCiAqIFJlZ2VkaXQgQ3plY2ggcmVzb3VyY2VzCiAqCiAqIENvcHlyaWdodCAyMDAyIFJvYmVydCBEaWNrZW5zb24KICogQ29weXJpZ2h0IDIwMDQgRGF2aWQgS3JlZGJhCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfQ1pFQ0gsIFNVQkxBTkdfREVGQVVMVAoKLyogQ3plY2ggc3RyaW5ncyBpbiBDUDEyNTAgKi8KCi8qCiAqIE1lbnUKICovCgpJRENfUkVHRURJVCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJlNvdWJvciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZLb25lYyIsICAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImTuFwb3bsZGEiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTyBhcGxpa2FjaSAuLi4iLCAgICAgICAgICAgICAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9SRUdFRElUX01FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZSZWdpc3RyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkltcG9ydG92YXQgc291Ym9yIHJlZ2lzdHJ1Li4uIiwgICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFCiAgICAgICAgTUVOVUlURU0gIiZFeHBvcnRvdmF0IHNvdWJvciByZWdpc3RydS4uLiIsICAgIElEX1JFR0lTVFJZX0VYUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUPhpcG9qaXQgcmVnaXN0ciB2IHPtdGkuLi4iLCBJRF9SRUdJU1RSWV9DT05ORUNUTkVUV09SS1JFR0lTVFJZLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiTyZkcG9qaXQgc+2db3b9IHJlZ2lzdHIuLi4iLCBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlRpc2tcdEN0cmwrUCIsICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9QUklOVCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZLb25lYyIsICAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICIm2nByYXZ5IgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiWiZt7G5pdCIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBQT1BVUCAiJk5vdv0iCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZLbO3oIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICLYJmV07Hpjb3bhIHBvbG+ea2EiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImQmlu4XJu7SBwb2xvnmthIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JEIHBvbG+ea2EiLCAgICAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTbWF6YXRcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIlD4ZSZqbWVub3ZhdFx0RjIiLCAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJktvcO1yb3ZhdCBu4XpldiBrbO3oZSIsICAgICAgICAgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZOYWrtdFx0Q3RybCtGIiwgICAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJOYWrtdCAmZGFsmu1cdEYzIiwgICAgICAgICAgICAgIElEX0VESVRfRklORE5FWFQsIEdSQVlFRAogICAgRU5ECiAgICBQT1BVUCAiJlpvYnJheml0IgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiUCZhbmVsIFN0YXR1cyIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJSb3pk7CZsaXQiLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlD4ZWsmcmVzbGl0XHRGNSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfUkVGUkVTSAogICAgRU5ECiAgICBQT1BVUCAiJk9ibO1iZW7pIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiUPhpZCZhdCBrIG9ibO1iZW79bSIsICAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICJPZGViJnJhdCBvYmztYmVu6SIsICAgICAgICAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgIEVORAogICAgUE9QVVAgIiZO4XBvduxkYSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIk9ic2EmaFx0RjEiLCAgICAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTyBhcGxpa2FjaSBSZWdpc3RyeSBFZGl0b3IiLCAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9QT1BVUF9NRU5VUyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgUE9QVVAgIiIKICBCRUdJTgoJTUVOVUlURU0gIiZVcHJhdml0IiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQoJTUVOVUlURU0gIlVwcmF2aXQgYmlu4XJu7SBkYXRhIiwgICAgICAgICAgSURfRURJVF9NT0RJRllfQklOCglNRU5VSVRFTSBTRVBBUkFUT1IKCU1FTlVJVEVNICImU21hemF0XHREZWwiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQoJTUVOVUlURU0gIiZQ+GVqbWVub3ZhdCIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICBFTkQKICBQT1BVUCAiIgogIEJFR0lOCiAgICAgICAgUE9QVVAgIiZOb3b9IgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImS2zt6CIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAi2CZldOx6Y2924SBwb2xvnmthIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkJpbmFybu0gcG9sb55rYSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZEV09SRCBwb2xvnmthIiwgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU21hemF0XHREZWwiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICJQ+GUmam1lbm92YXRcdEYyIiwgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZLb3Dtcm92YXQgbuF6ZXYga2zt6GUiLCAgICAgICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTmFq7XRcdEN0cmwrRiIsICAgICAgICAgICAgICAgSURfRURJVF9GSU5ELCBHUkFZRUQKICBFTkQKRU5ECgoKLyoKICogRGlhbG9nCiAqLwoKSUREX0VESVRfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDc1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLacHJhdmEg+GV07HpjZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJO4XpldjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJPYnNhaDoiLElEQ19TVEFUSUMsNSwzMCwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDYwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIlN0b3JubyIsSURDQU5DRUwsMTc1LDYwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLacHJhdmEgRFdPUkQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiTuF6ZXY6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiT2JzYWg6IixJRENfU1RBVElDLDUsMzAsOTAsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsOTAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiWuFrbGFkIiwgSURDX0RXT1JEX0JBU0UsIDEyMCwgMzAsIDg1LCAzNywgQlNfR1JPVVBCT1gKICAgIEFVVE9SQURJT0JVVFRPTiAimmVzdG7hY3Rrb3b9IiwgSURDX0RXT1JEX0hFWCwgMTMwLCA0MCwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBBVVRPUkFESU9CVVRUT04gIkRlc2l0a292/SIsIElEQ19EV09SRF9ERUMsIDEzMCwgNTIsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxNDAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAiU3Rvcm5vIixJRENBTkNFTCwxNzUsODAsMzAsMTEsV1NfR1JPVVAKRU5ECgovKgogKiBTdHJpbmcgVGFibGUKICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0xJU1RfQ09MVU1OX05BTUUgICAgIk7hemV2IgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIlR5cCIKICAgIElEU19MSVNUX0NPTFVNTl9EQVRBICAgICJPYnNhaCIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIkVkaXRvciByZWdpc3RydSIKICAgIElEQ19SRUdFRElUICAgICAgICAgICAgICJSRUdFRElUIgogICAgSURDX1JFR0VESVRfRlJBTUUgICAgICAgIlJFR0VESVRfRlJBTUUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX01FTlUgICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyBwcuFjaSBzZSBzeXJvdv1tIHJlZ2lzdHJlbSIKICAgIElEX0VESVRfTUVOVSAgICAgICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyBlZGl0YWNpIGts7ej5IGEgcG9sb55layIKICAgIElEX1ZJRVdfTUVOVSAgICAgICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyD6cHJhdnUgdnpobGVkdSBva25hIHJlZ2VkaXR1IgogICAgSURfRkFWT1JJVEVTX01FTlUgICAgICAgIk9ic2FodWplIHD47WthenkgcHJvIHD47XN0dXAgayDoYXN0byB1nu12YW79bSBrbO3o+W0iCiAgICBJRF9IRUxQX01FTlUgICAgICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8gem9icmF6ZW7tIG7hcG927GR5IGEgaW5mb3JtYWPtbyBlZGl0b3J1IHJlZ2lzdHJ1IgogICAgSURfRURJVF9ORVdfTUVOVSAgICAgICAgIk9ic2FodWplIHD47WthenkgcHJvIHZ5dHbh+GVu7SBub3b9Y2gga2zt6PkgYSBwb2xvnmVrIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9FRElUX01PRElGWSAgICAgICAgICAiWm3sbu0gZGF0YSIKICAgIElEX0VESVRfTkVXX0tFWSAgICAgICAgICJQ+Glk4SBub3b9IGts7egiCiAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRSAiUPhpZOEgbm92b3Ug+GV07Hpjb3ZvdSBwb2xvnmt1IgogICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUgIlD4aWThIG5vdm91IGJpbuFybu0gcG9sb55rdSIKICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUgICJQ+Glk4SBub3ZvdSBEV09SRCBwb2xvnmt1IgogICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFICJJbXBvcnR1amUgdGV4dG92/SBzb3Vib3IgcmVnaXN0cnUiCiAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBvcnR1amUgY2Vs/SByZWdpc3RyIG5lYm8gamVobyDo4XN0IGRvIHRleHRvdulobyBzb3Vib3J1IgogICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlD4aXBvau0gc2UgayByZWdpc3RydSBuYSBqaW7pbSBwb+jtdGHoaSIKICAgIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPZHBvau0gc2Ugb2Qgdnpk4WxlbuwgcPhpcG9qZW7paG8gcmVnaXN0cnUiCiAgICBJRF9SRUdJU1RSWV9QUklOVCAgICAgICAiVnl0aXNrbmUg6OFzdCBuZWJvIGNlbP0gcmVnaXN0ciIKLyogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIHJlZ2lzdHJ5IGVkaXRvciBoZWxwIiAqLwogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIlpvYnJheu0gaW5mb3JtYWNlIG8gcHJvZ3JhbXUsIGplaG8gdmVyemkgYSBjb3B5cmlnaHQiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX0VYSVQgICAgICAgICJVa29u6O0gcmVnZWRpdCIKICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUyAiUPhpZOEga2zt6CBrIG9ibO1iZW79bSIKICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURSAiT2RlYmVyZSBrbO3oIHogb2Js7WJlbv1jaCIKICAgIElEX1ZJRVdfU1RBVFVTQkFSICAgICAgICJVa+GeZSBuZWJvIHNrcnlqZSBzdGF0dXMgYmFyIgogICAgSURfVklFV19TUExJVCAgICAgICAgICAgIkNoYW5nZSBwb3NpdGlvbiBvZiBzcGxpdCBiZXR3ZWVuIHR3byBwYW5lcyIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICJQ+GVrcmVzbO0gb2tubyIKICAgIElEX0VESVRfREVMRVRFICAgICAgICAgICJTbWGeZSB2eWJyYW7pIgogICAgSURfRURJVF9SRU5BTUUgICAgICAgICAgIlD4ZWptZW51amUgdnlicmFu6SIKICAgIElEX0VESVRfQ09QWUtFWU5BTUUgICAgICJWbG+e7SBu4XpldiB2eWJyYW7paG8ga2zt6GUgZG8gc2NocuFua3kiCiAgICBJRF9FRElUX0ZJTkQgICAgICAgICAgICAiTmFqZGUgdGV4dG92/SD4ZXTsemVjIHYga2zt6GksIHBvbG+eY2UgbmVibyBkYXRlY2giCiAgICBJRF9FRElUX0ZJTkRORVhUICAgICAgICAiTmFqZGUgZGFsmu0gdv1za3l0IHRleHR1IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRVJST1IJCSAgICAiQ2h5YmEiCiAgICBJRFNfQkFEX0tFWQkJICAgICJOZWx6ZSBuYWrtdCBrbO3oICclcyciCiAgICBJRFNfQkFEX1ZBTFVFICAgICAgICAgICAiTmVsemUgbmFq7XQgcG9sb55rdSAnJXMnIgogICAgSURTX1VOU1VQUE9SVEVEX1RZUEUgICAgIk5lbW9odSB1cHJhdml0IGts7ehlIHRvaG90byB0eXB1ICglbGQpIgogICAgSURTX1RPT19CSUdfVkFMVUUgICAgICAgIkhvZG5vdGEgamUgcPjtbGmaIHZlbGvhICglbGQpIgogICAgSURTX0RFTEVURV9CT1hfVElUTEUgICAgIlBvdHZy73RlIHNtYXrhbu0gcG9sb55reSIKICAgIElEU19ERUxFVEVfQk9YX1RFWFQgICAgICJPcHJhdmR1IGNoY2V0ZSBzbWF6YXQgcG9sb55rdSAnJXMnPyIKICAgIElEU19ORVdLRVkgICAgICAgICAgICAgICJOb3b9IGts7eggIyVkIgogICAgSURTX05FV1ZBTFVFICAgICAgICAgICAgIk5vduEgcG9sb55rYSAjJWQiCkVORAoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyoKICogVEVYVElOQ0xVREUKICovCgoxIFRFWFRJTkNMVURFIERJU0NBUkRBQkxFCkJFR0lOCiAgICAicmVzb3VyY2UuaFwwIgpFTkQKCgoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKLyoKICpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQogKkJFR0lOCiAqICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyBSZWdpc3RyeSBFZGl0b3IgSGVscC4iCiAqICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJEaXNwbGF5cyBwcm9ncmFtIGluZm9ybWF0aW9uLCB2ZXJzaW9uIG51bWJlciwgYW5kIGNvcHlyaWdodC4iCiAqRU5ECiAqLwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo=