PD9waHAKLyoKIFBsdWdpbiBOYW1lOiBVbmRlciBDb25zdHJ1Y3Rpb24KIFBsdWdpbiBVUkk6IGh0dHA6Ly93d3cubWFzc2VsdGVjaC5jb20vCiBEZXNjcmlwdGlvbjogTWFrZXMgaXQgc28geW91ciBzaXRlIGNhbiBvbmx5IGJlIGFjY2Vzc2VkIGJ5IHVzZXJzIHdobyBsb2cgaW4uIFVzZWZ1bCBmb3IgZGV2ZWxvcGluZyBhIHNpdGUgb24gYSBsaXZlIHNlcnZlciwgd2l0aG91dCB0aGUgd29ybGQgYmVpbmcgYWJsZSB0byBzZWUgaXQKIFZlcnNpb246IDEuMTIKIEF1dGhvcjogSmVyZW15IE1hc3NlbAogQXV0aG9yIFVSSTogaHR0cDovL3d3dy5tYXNzZWx0ZWNoLmNvbS8KICovCgovKgogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdW5kZXJDb25zdHJ1Y3Rpb24uCiB1bmRlckNvbnN0cnVjdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiB1bmRlckNvbnN0cnVjdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogYWxvbmcgd2l0aCB1bmRlckNvbnN0cnVjdGlvbi4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCgo/Pgo8P3BocApjbGFzcyB1bmRlckNvbnN0cnVjdGlvbgp7Cgl2YXIgJGluc3RhbGxlZEZvbGRlciA9ICIiOwoJdmFyICRtYWluT3B0aW9uc1BhZ2UgPSAidW5kZXJDb25zdHJ1Y3Rpb25NYWluT3B0aW9ucyI7CgoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQoJewoJCSR0aGlzLT5pbnN0YWxsZWRGb2xkZXIgPSBiYXNlbmFtZShkaXJuYW1lKF9fRklMRV9fKSk7Cgl9CgoJZnVuY3Rpb24gdW5kZXJDb25zdHJ1Y3Rpb24oKQoJewoJCSR0aGlzLT5fX2NvbnN0cnVjdCgpOwoJfQoKCWZ1bmN0aW9uIGdldE1haW5PcHRpb25zUGFnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5tYWluT3B0aW9uc1BhZ2U7Cgl9CgoJZnVuY3Rpb24gdW5kZXJDb25zdHJ1Y3Rpb25BZG1pbkluaXQoKQoJewoJCS8qIFJlZ2lzdGVyIG91ciBzY3JpcHQuICovCgkJd3BfcmVnaXN0ZXJfc2NyaXB0KCd1bmRlckNvbnN0cnVjdGlvbkpTJywgV1BfUExVR0lOX1VSTC4nLycuJHRoaXMtPmluc3RhbGxlZEZvbGRlci4nL3VuZGVyY29uc3RydWN0aW9uLm1pbi5qcycpOwoJfQoKCWZ1bmN0aW9uIHVjX2NoYW5nZU1lc3NhZ2UoKQoJewoJCXJlcXVpcmVfb25jZSAoJ3VjT3B0aW9ucy5waHAnKTsKCX0KCglmdW5jdGlvbiB1Y19hZG1pbk1lbnUoKQoJewoJCS8qIFJlZ2lzdGVyIG91ciBwbHVnaW4gcGFnZSAqLwoJCSRwYWdlID0gYWRkX29wdGlvbnNfcGFnZSgnVW5kZXIgQ29uc3RydWN0aW9uIFNldHRpbmdzJywgJ1VuZGVyIENvbnN0cnVjdGlvbicsICdhY3RpdmF0ZV9wbHVnaW5zJywgJHRoaXMtPm1haW5PcHRpb25zUGFnZSwgYXJyYXkoJHRoaXMsICd1Y19jaGFuZ2VNZXNzYWdlJykpOwoKCQkvKiBVc2luZyByZWdpc3RlcmVkICRwYWdlIGhhbmRsZSB0byBob29rIHNjcmlwdCBsb2FkICovCgkJYWRkX2FjdGlvbignYWRtaW5fcHJpbnRfc2NyaXB0cy0nLiRwYWdlLCBhcnJheSgkdGhpcywgJ3VuZGVyQ29uc3RydWN0aW9uRW5xdWV1ZVNjcmlwdHMnKSk7CgoJfQoKCWZ1bmN0aW9uIHVuZGVyQ29uc3RydWN0aW9uRW5xdWV1ZVNjcmlwdHMoKQoJewoJCS8qCgkJICogSXQgd2lsbCBiZSBjYWxsZWQgb25seSBvbiB5b3VyIHBsdWdpbiBhZG1pbiBwYWdlLCBlbnF1ZXVlIG91ciBzY3JpcHQgaGVyZQoJCSAqLwoJCXdwX2VucXVldWVfc2NyaXB0KCdzY3JpcHRhY3Vsb3VzJyk7CgkJd3BfZW5xdWV1ZV9zY3JpcHQoJ3VuZGVyQ29uc3RydWN0aW9uSlMnKTsKCX0KCglmdW5jdGlvbiB1Y19vdmVycmlkZVdQKCkKCXsKCQlpZiAoJHRoaXMtPnBsdWdpbklzQWN0aXZlKCkpCgkJewoJCQlpZiAoIWlzX3VzZXJfbG9nZ2VkX2luKCkpCgkJCXsKCQkJCSRhcnJheSA9IGdldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uSVBXaGl0ZWxpc3QnKTsKCQkJCQoJCQkJaWYoIWlzX2FycmF5KCRhcnJheSkpewoJCQkJCSRhcnJheSA9IGFycmF5KCk7CgkJCQl9CgkJCQkKCQkJCWlmKCFpbl9hcnJheSgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwgJGFycmF5KSl7CgoJCQkJCS8vc2VuZCBhIDUwMyBpZiB0aGUgc2V0dGluZyByZXF1aXJlcyBpdAoJCQkJCWlmIChnZXRfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkhUVFBTdGF0dXMnKSA9PSA1MDMpCgkJCQkJewoJCQkJCQloZWFkZXIoJ0hUVFAvMS4xIDUwMyBTZXJ2aWNlIFVuYXZhaWxhYmxlJyk7CgkJCQkJfQoKCQkJCQkvL3NlbmQgYSA1MDMgaWYgdGhlIHNldHRpbmcgcmVxdWlyZXMgaXQKCQkJCQlpZiAoZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVFRQU3RhdHVzJykgPT0gMzAxKQoJCQkJCXsKCQkJCQkJaGVhZGVyKCAiSFRUUC8xLjEgMzAxIE1vdmVkIFBlcm1hbmVudGx5IiApOwoJCQkJCQloZWFkZXIoICJMb2NhdGlvbjogIiAuIGdldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uUmVkaXJlY3RVUkwnKSApOwoJCQkJCX0KCgkJCQkJaWYgKCR0aGlzLT5kaXNwbGF5U3RhdHVzQ29kZUlzKDApKSAvL3RoZXkgd2FudCB0aGUgZGVmYXVsdCEKCQkJCQl7CgkJCQkJCXJlcXVpcmVfb25jZSAoJ2RlZmF1bHRNZXNzYWdlLnBocCcpOwoJCQkJCQlkaXNwbGF5RGVmYXVsdENvbWluZ1Nvb25QYWdlKCk7CgkJCQkJCWRpZSgpOwoJCQkJCX0KCgkJCQkJaWYgKCR0aGlzLT5kaXNwbGF5U3RhdHVzQ29kZUlzKDEpKSAvL3RoZXkgd2FudCB0aGUgZGVmYXVsdCB3aXRoIGN1c3RvbSB0ZXh0IQoJCQkJCXsKCQkJCQkJcmVxdWlyZV9vbmNlICgnZGVmYXVsdE1lc3NhZ2UucGhwJyk7CgkJCQkJCWRpc3BsYXlDb21pbmdTb29uUGFnZSgkdGhpcy0+Z2V0Q3VzdG9tUGFnZVRpdGxlKCksICR0aGlzLT5nZXRDdXN0b21IZWFkZXJUZXh0KCksICR0aGlzLT5nZXRDdXN0b21Cb2R5VGV4dCgpKTsKCQkJCQkJZGllKCk7CgkJCQkJfQoKCQkJCQlpZiAoJHRoaXMtPmRpc3BsYXlTdGF0dXNDb2RlSXMoMikpIC8vdGhleSB3YW50IGN1c3RvbSBIVE1MIQoJCQkJCXsKCQkJCQkJZWNobyBodG1sX2VudGl0eV9kZWNvZGUoJHRoaXMtPmdldEN1c3RvbUhUTUwoKSwgRU5UX1FVT1RFUyk7CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCQkKCQkJCQlpZigkdGhpcy0+ZGlzcGxheVN0YXR1c0NvZGVJcygzKSl7CgkJCQkJCXJlcXVpcmVfb25jZShnZXRfdGVtcGxhdGVfZGlyZWN0b3J5KCkgLiAnL3VuZGVyLWNvbnN0cnVjdGlvbi5waHAnKTsKCQkJCQkJZGllKCk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfQoKCWZ1bmN0aW9uIHVjX2FkbWluX292ZXJyaWRlX1dQKCl7CgoJCWlmKCEkdGhpcy0+cGx1Z2luSXNBY3RpdmUoKSl7CgkJCXJldHVybjsKCQl9CgoJCWlmKGdldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uUmVxdWlyZWRSb2xlJykgJiYgaXNfdXNlcl9sb2dnZWRfaW4oKSl7CgkJCQoJCQlnbG9iYWwgJHdwX3JvbGVzOwoJCQkkYWxsX3JvbGVzID0gJHdwX3JvbGVzLT5yb2xlczsKCQkJCQkKCQkJJGVkaXRhYmxlX3JvbGVzID0gYXBwbHlfZmlsdGVycygnZWRpdGFibGVfcm9sZXMnLCAkYWxsX3JvbGVzKTsKCgkJCSRyZXF1aXJlZF9yb2xlID0gJGVkaXRhYmxlX3JvbGVzW2dldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uUmVxdWlyZWRSb2xlJyldOwoKCQkJJG5ld19wcml2cyA9IGFycmF5KCk7CgoKCQkJZm9yZWFjaCgkcmVxdWlyZWRfcm9sZVsnY2FwYWJpbGl0aWVzJ10gYXMgJGtleSA9PiAkdmFsdWUpewoJCQkJaWYoJHZhbHVlID09IHRydWUpewoJCQkJCSRuZXdfcHJpdnNbXSA9ICRrZXk7CgkJCQl9CgkJCX0KCgkJCWlmKCFjdXJyZW50X3VzZXJfY2FuKCRuZXdfcHJpdnNbMF0pKXsKCQkJCXdwX2xvZ291dCgpOwoJCQkJd3BfcmVkaXJlY3QoZ2V0X2Jsb2dpbmZvKCd1cmwnKSk7CgkJCX0KCQl9Cgl9CgoJZnVuY3Rpb24gZ2V0Q3VzdG9tSFRNTCgpCgl7CgkJcmV0dXJuIHN0cmlwc2xhc2hlcyhnZXRfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkhUTUwnKSk7Cgl9CgoKCWZ1bmN0aW9uIHVjX2FjdGl2YXRlKCkKCXsKCQlpZiAoZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25BcmNoaXZlJykpCgkJewoJCQkvL2dldCBhbGwgdGhlIG9wdGlvbnMgYmFjayBmcm9tIHRoZSBhcmNoaXZlCgkJCSRvcHRpb25zID0gZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25BcmNoaXZlJyk7CgoJCQkvL3B1dCB0aGVtIGJhY2sgd2hlcmUgdGhleSBiZWxvbmcKCQkJdXBkYXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVE1MJywgJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uSFRNTCddKTsKCQkJdXBkYXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25BY3RpdmF0aW9uU3RhdHVzJywgJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uQWN0aXZhdGlvblN0YXR1cyddKTsKCQkJdXBkYXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25DdXN0b21UZXh0JywgJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uQ3VzdG9tVGV4dCddKTsKCQkJdXBkYXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25EaXNwbGF5T3B0aW9uJywgJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uRGlzcGxheU9wdGlvbiddKTsKCQkJdXBkYXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVFRQU3RhdHVzJywgJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uSFRUUFN0YXR1cyddKTsKCgkJCWRlbGV0ZV9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uQXJjaGl2ZScpOwoJCX0KCX0KCglmdW5jdGlvbiB1Y19kZWFjdGl2YXRlKCkKCXsKCQkvL2dldCBhbGwgdGhlIG9wdGlvbnMuIHN0b3JlIHRoZW0gaW4gYW4gYXJyYXkKCQkkb3B0aW9ucyA9IGFycmF5KCk7CgkJJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uSFRNTCddID0gZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVE1MJyk7CgkJJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uQWN0aXZhdGlvblN0YXR1cyddID0gZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25BY3RpdmF0aW9uU3RhdHVzJyk7CgkJJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uQ3VzdG9tVGV4dCddID0gZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25DdXN0b21UZXh0Jyk7CgkJJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uRGlzcGxheU9wdGlvbiddID0gZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25EaXNwbGF5T3B0aW9uJyk7CgkJJG9wdGlvbnNbJ3VuZGVyQ29uc3RydWN0aW9uSFRUUFN0YXR1cyddID0gZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVFRQU3RhdHVzJyk7CgoJCS8vc3RvcmUgdGhlIG9wdGlvbnMgYWxsIGluIG9uZSByZWNvcmQsIGluIGNhc2Ugd2UgZXZlciByZWFjdGl2YXRlIHRoZSBwbHVnaW4KCQl1cGRhdGVfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkFyY2hpdmUnLCAkb3B0aW9ucyk7CgoJCS8vZGVsZXRlIHRoZSBzZXBhcmF0ZSBvbmVzCgkJZGVsZXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVE1MJyk7CgkJZGVsZXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25BY3RpdmF0aW9uU3RhdHVzJyk7CgkJZGVsZXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25DdXN0b21UZXh0Jyk7CgkJZGVsZXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25EaXNwbGF5T3B0aW9uJyk7CgkJZGVsZXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVFRQU3RhdHVzJyk7Cgl9CgoJZnVuY3Rpb24gcGx1Z2luSXNBY3RpdmUoKQoJewoKCQlpZiAoIWdldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uQWN0aXZhdGlvblN0YXR1cycpKSAvL2lmIGl0J3Mgbm90IHNldCB5ZXQKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCWlmIChnZXRfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkFjdGl2YXRpb25TdGF0dXMnKSA9PSAxKQoJCXsKCQkJcmV0dXJuIHRydWU7CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CgoJZnVuY3Rpb24gaHR0cFN0YXR1c0NvZGVJcygkc3RhdHVzKQoJewoJCWlmICghZ2V0X29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVFRQU3RhdHVzJykpIC8vaWYgaXQncyBub3Qgc2V0IHlldAoJCXsKCQkJdXBkYXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25IVFRQU3RhdHVzJywgMjAwKTsgLy9zZXQgaXQKCQl9CgoJCWlmIChnZXRfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkhUVFBTdGF0dXMnKSA9PSAkc3RhdHVzKQoJCXsKCQkJcmV0dXJuIHRydWU7CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJfQoKCWZ1bmN0aW9uIGRpc3BsYXlTdGF0dXNDb2RlSXMoJHN0YXR1cykKCXsKCQlpZiAoIWdldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uRGlzcGxheU9wdGlvbicpKSAvL2lmIGl0J3Mgbm90IHNldCB5ZXQKCQl7CgkJCXVwZGF0ZV9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uRGlzcGxheU9wdGlvbicsIDApOyAvL3NldCBpdAoJCX0KCgkJaWYgKGdldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uRGlzcGxheU9wdGlvbicpID09ICRzdGF0dXMpCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCglmdW5jdGlvbiBnZXRDdXN0b21QYWdlVGl0bGUoKQoJewoJCWlmIChnZXRfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkN1c3RvbVRleHQnKSAhPSBmYWxzZSkKCQl7CgkJCSRmaWVsZHMgPSBnZXRfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkN1c3RvbVRleHQnKTsKCQkJcmV0dXJuIHN0cmlwc2xhc2hlcygkZmllbGRzWydwYWdlVGl0bGUnXSk7CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiAnJzsKCQl9Cgl9CgoJZnVuY3Rpb24gZ2V0Q3VzdG9tSGVhZGVyVGV4dCgpCgl7CgkJaWYgKGdldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uQ3VzdG9tVGV4dCcpICE9IGZhbHNlKQoJCXsKCQkJJGZpZWxkcyA9IGdldF9vcHRpb24oJ3VuZGVyQ29uc3RydWN0aW9uQ3VzdG9tVGV4dCcpOwoJCQlyZXR1cm4gc3RyaXBzbGFzaGVzKCRmaWVsZHNbJ2hlYWRlclRleHQnXSk7CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiAnJzsKCQl9Cgl9CgoJZnVuY3Rpb24gZ2V0Q3VzdG9tQm9keVRleHQoKQoJewoJCWlmIChnZXRfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkN1c3RvbVRleHQnKSAhPSBmYWxzZSkKCQl7CgkJCSRmaWVsZHMgPSBnZXRfb3B0aW9uKCd1bmRlckNvbnN0cnVjdGlvbkN1c3RvbVRleHQnKTsKCQkJcmV0dXJuIHN0cmlwc2xhc2hlcygkZmllbGRzWydib2R5VGV4dCddKTsKCQl9CgkJZWxzZQoJCXsKCQkJcmV0dXJuICcnOwoJCX0KCX0KCgp9CgokdW5kZXJDb25zdHJ1Y3Rpb25QbHVnaW4gPSBuZXcgdW5kZXJDb25zdHJ1Y3Rpb24oKTsKCmFkZF9hY3Rpb24oJ3RlbXBsYXRlX3JlZGlyZWN0JywgYXJyYXkoJHVuZGVyQ29uc3RydWN0aW9uUGx1Z2luLCAndWNfb3ZlcnJpZGVXUCcpKTsKYWRkX2FjdGlvbignYWRtaW5faW5pdCcsIGFycmF5KCR1bmRlckNvbnN0cnVjdGlvblBsdWdpbiwgJ3VjX2FkbWluX292ZXJyaWRlX1dQJykpOwphZGRfYWN0aW9uKCd3cF9sb2dpbicsIGFycmF5KCR1bmRlckNvbnN0cnVjdGlvblBsdWdpbiwgJ3VjX2FkbWluX292ZXJyaWRlX1dQJykpOwoKCmFkZF9hY3Rpb24oJ3BsdWdpbnNfbG9hZGVkJywgJ3VuZGVyQ29uc3RydWN0aW9uSW5pdFRyYW5zbGF0aW9uJyk7CgphZGRfYWN0aW9uKCdhZG1pbl9pbml0JywgYXJyYXkoJHVuZGVyQ29uc3RydWN0aW9uUGx1Z2luLCAndW5kZXJDb25zdHJ1Y3Rpb25BZG1pbkluaXQnKSk7CmFkZF9hY3Rpb24oJ2FkbWluX21lbnUnLCBhcnJheSgkdW5kZXJDb25zdHJ1Y3Rpb25QbHVnaW4sICd1Y19hZG1pbk1lbnUnKSk7CgpyZWdpc3Rlcl9hY3RpdmF0aW9uX2hvb2soX19GSUxFX18sIGFycmF5KCR1bmRlckNvbnN0cnVjdGlvblBsdWdpbiwgJ3VjX2FjdGl2YXRlJykpOwpyZWdpc3Rlcl9kZWFjdGl2YXRpb25faG9vayhfX0ZJTEVfXywgYXJyYXkoJHVuZGVyQ29uc3RydWN0aW9uUGx1Z2luLCAndWNfZGVhY3RpdmF0ZScpKTsKcmVnaXN0ZXJfdW5pbnN0YWxsX2hvb2soX19GSUxFX18sICd1bmRlckNvbnN0cnVjdGlvblBsdWdpbl9kZWxldGUnKTsKCgoKZnVuY3Rpb24gdW5kZXJDb25zdHJ1Y3Rpb25QbHVnaW5fZGVsZXRlKCkKewoJZGVsZXRlX29wdGlvbigndW5kZXJDb25zdHJ1Y3Rpb25BcmNoaXZlJyk7Cn0KCmZ1bmN0aW9uIHVjX2dldF9pcF9hZGRyZXNzKCl7CgllY2hvICRfU0VSVkVSWydSRU1PVEVfQUREUiddOwoJZGllKCk7Cn0KCgpmdW5jdGlvbiB1bmRlckNvbnN0cnVjdGlvblBsdWdpbkxpbmtzKCRsaW5rcywgJGZpbGUpCnsKCWdsb2JhbCAkdW5kZXJDb25zdHJ1Y3Rpb25QbHVnaW47CglpZiAoJGZpbGUgPT0gYmFzZW5hbWUoZGlybmFtZShfX0ZJTEVfXykpLicvJy5iYXNlbmFtZShfX0ZJTEVfXykgJiYgZnVuY3Rpb25fZXhpc3RzKCJhZG1pbl91cmwiKSkKCXsKCQkvL2FkZCBzZXR0aW5ncyBwYWdlCgkJJG1hbmFnZV9saW5rID0gJzxhIGhyZWY9IicuYWRtaW5fdXJsKCdvcHRpb25zLWdlbmVyYWwucGhwP3BhZ2U9Jy4kdW5kZXJDb25zdHJ1Y3Rpb25QbHVnaW4tPmdldE1haW5PcHRpb25zUGFnZSgpKS4nIj4nLl9fKCdTZXR0aW5ncycpLic8L2E+JzsKCQlhcnJheV91bnNoaWZ0KCRsaW5rcywgJG1hbmFnZV9saW5rKTsKCgoJfQoJcmV0dXJuICRsaW5rczsKfQoKZnVuY3Rpb24gdW5kZXJDb25zdHJ1Y3Rpb25Jbml0VHJhbnNsYXRpb24oKSB7CiAgbG9hZF9wbHVnaW5fdGV4dGRvbWFpbiggJ3VuZGVyY29uc3RydWN0aW9uJywgZmFsc2UsIGRpcm5hbWUoIHBsdWdpbl9iYXNlbmFtZSggX19GSUxFX18gKSApIC4gJy9sYW5ndWFnZXMvJyApOwp9CgoKYWRkX2ZpbHRlcigncGx1Z2luX2FjdGlvbl9saW5rcycsICd1bmRlckNvbnN0cnVjdGlvblBsdWdpbkxpbmtzJywgMTAsIDIpOwoKCi8vYWpheAoKYWRkX2FjdGlvbignd3BfYWpheF91Y19nZXRfaXBfYWRkcmVzcycsICd1Y19nZXRfaXBfYWRkcmVzcycpOwoKPz4gNzc3Nzc3Nzc3Nwo=
Warning: Cannot modify header information - headers already sent by (output started at D:\inetpub\webs\txutxemovidanet\wp-content\plugins\underconstruction\underConstruction.php:1) in D:\inetpub\webs\txutxemovidanet\wp-content\themes\mystique\core\AtomObjectPost.php on line 383

TAO

    Mi buen amigo enrique Tadeo ha colgado en su Facebook esta reliquia de cartel donde se muestra la lista de precios del recordado Tao, pub-hamburguesería situado en primera línea de la playa del Rinconcillo,

Lista de precios

justo donde se cogía el autobús.

Aprovechando la ocasión, voy a hablar un poco sobre este original establecimiento al mismo tiempo que, con su permiso, le tomo prestada la foto para compartirla con todos vosotros.

     Curiósamente este local por el día, y como comenté antes, al estar integrado en la misma playa, en la temporada de baño ejercía como servicios de duchas y guardarropa, donde, previo pago, podías dejar tu ropa a resguardo o darte una ducha después del baño en el mar. Pero por la noche sufría una transformación, convirtiéndose como por arte de magia en un pub con muchísima aceptación, sobre todo por sus espectaculares “hamburguesas pareja”, llamadas así por ser de considerables dimensiones y que se solían compartir con

Tao

otra persona, y sus afamados crepes variados.

     Este local funcionaba también en invierno, dado que estaba dotado de una chimenea que daba calor a las frías noches y donde se solía escuchar, sobre todo en su última épòca música en vivo.

     Hace ya bastantes años fue pasto de las llamas, perdiéndose con él un sitio singular que sigue siendo recordado con cariño por distintas generaciones que pasaron por allí.

Por cierto, gracias Enrique por esa gran foto.

Etiquetas: