IiBNZW51IFRyYW5zbGF0aW9uczoJU2xvdmFrCiIgVHJhbnNsYXRlZCBCeToJTWFydGluIExhY2tvIDxsYWNrb0Bob3N0LnNrPgoiIExhc3QgQ2hhbmdlOgkJMjAwMyBNYXIgMzAKCiIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCmlmIGV4aXN0cygiZGlkX21lbnVfdHJhbnMiKQogIGZpbmlzaAplbmRpZgpsZXQgZGlkX21lbnVfdHJhbnMgPSAxCgpzY3JpcHRlbmNvZGluZyBpc28tODg1OS0yCgoiIEhlbHAgbWVudQptZW51dHJhbnMgJkhlbHAJCQkmUG9tb2Nu7WsKbWVudXRyYW5zICZPdmVydmlldzxUYWI+PEYxPgkmUHJlaLVhZDxUYWI+PEYxPgptZW51dHJhbnMgJlVzZXJcIE1hbnVhbAkJUG8mdb7tdmF0ZbVza/1cIG1hbnXhbAptZW51dHJhbnMgJkhvdy10b1wgbGlua3MJJlRpcHkKbWVudXRyYW5zICZGaW5kXC5cLlwuCQkmTuFqc7tcLlwuXC4KbWVudXRyYW5zICZDcmVkaXRzCQlQb+8mYWtvdmFuaWUKbWVudXRyYW5zIE8mcnBoYW5zCQlTaSZyb3R5Cm1lbnV0cmFucyBDbyZweWluZwkJJkxpY2VuY2lhCm1lbnV0cmFucyAmVmVyc2lvbgkJJlZlcnppYQptZW51dHJhbnMgJkFib3V0CQkmT1wgcHJvZ3JhbWUKCiIgRmlsZSBtZW51Cm1lbnV0cmFucyAmRmlsZQkJCQkmU/pib3IKbWVudXRyYW5zICZPcGVuXC5cLlwuPFRhYj46ZQkJJk90dm9yabtcLlwuXC48VGFiPjplCm1lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwCU90JnZvcmm7XCB2XCBub3ZvbVwgb2tuZVwuXC5cLjxUYWI+OnNwCm1lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkJJk5vdv08VGFiPjplbmV3Cm1lbnV0cmFucyAmQ2xvc2U8VGFiPjpjbG9zZQkJJlphdHZvcmm7PFRhYj46Y2xvc2UKbWVudXRyYW5zICZTYXZlPFRhYj46dwkJCSZVbG++abs8VGFiPjp3Cm1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJVWxvvmm7XCAmYWtvXC5cLlwuPFRhYj46c2F2Cm1lbnV0cmFucyBTcGxpdFwgJkRpZmZcIHdpdGhcLlwuXC4JT3R2b3ImabtcIHBvcm92bmFuaWVcIHZcIG5vdm9tXCBva25lXCBzXC5cLlwuCm1lbnV0cmFucyBTcGxpdFwgUGF0Y2hlZFwgJkJ5XC5cLlwuCU90dm8mcmm7XCBha3R1YWxpem92YW7pXCBzXC5cLlwuCm1lbnV0cmFucyAmUHJpbnQJCQkmVGxh6AptZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkJVSZsb75puy1Lb25pZWM8VGFiPjp3cWEKbWVudXRyYW5zIEUmeGl0PFRhYj46cWEJCQkmS29uaWVjPFRhYj46cWEKCiIgRWRpdCBtZW51Cm1lbnV0cmFucyAmRWRpdAkJCQkm2nByYXZ5Cm1lbnV0cmFucyAmVW5kbzxUYWI+dQkJCSZTcOS7PFRhYj51Cm1lbnV0cmFucyAmUmVkbzxUYWI+XlIJCQlaJnJ1uWm7XCBzcOS7PFRhYj5eUgptZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JCSZPcGFrb3ZhuzxUYWI+XC4KbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJCSZWeXN0cmlobvq7PFRhYj4iK3gKbWVudXRyYW5zICZDb3B5PFRhYj4iK3kJCQkmS29w7XJvdmG7PFRhYj4iK3kKbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkJViZsb75puzxUYWI+IitnUAptZW51dHJhbnMgUHV0XCAmQmVmb3JlPFRhYj5bcAkJVmxvvmm7XCAmcHJlZDxUYWI+W3AKbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAkJVmxvvmm7XCB6YTxUYWI+XXAKbWVudXRyYW5zICZTZWxlY3RcIGFsbDxUYWI+Z2dWRwkJVnkmYnJhu1wgdrlldGtvPFRhYj5nZ1ZHCm1lbnV0cmFucyAmRGVsZXRlPFRhYj54CQkJVnkmbWF6Ybs8VGFiPngKbWVudXRyYW5zICZGaW5kXC5cLlwuCQkJJk7hanO7XC5cLlwuCm1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuCU4mYWhyYWRpu1wuXC5cLgptZW51dHJhbnMgU2V0dGluZ3NcICZXaW5kb3cJCU1vJr5ub3N0aQptZW51dHJhbnMgJkdsb2JhbFwgU2V0dGluZ3MJCSZHbG9i4WxuZSBtb75ub3N0aQptZW51dHJhbnMgVG9nZ2xlXCBQYXR0ZXJuXCAmSGlnaGxpZ2h0PFRhYj46c2V0XCBobHMhCVByZXBu+rtcIHBhbGV0dVwgenb9cmF68m92YW5pYTxUYWI+OnNldFwgaGxzIQptZW51dHJhbnMgVG9nZ2xlXCAmSWdub3JlLWNhc2U8VGFiPjpzZXRcIGljIQlQcmVwbvq7XCAmaWdub3JvdmFuaWUgdmW1a29zdGk8VGFiPjpzZXRcIGljIQptZW51dHJhbnMgVG9nZ2xlXCAmU2hvd21hdGNoPFRhYj46c2V0XCBzbSEJUHJlcG76u1wgJnVr4Xphu1wgemhvZHU8VGFiPjpzZXRcIHNtIQptZW51dHJhbnMgJkNvbnRleHRcIGxpbmVzCQkmS29udGV4dG926VwgcmlhZGt5Cm1lbnV0cmFucyAmVmlydHVhbFwgRWRpdAkJJlZpcnR14WxuZSD6cHJhdnkKbWVudXRyYW5zIE5ldmVyCQkJCU5pa2R5Cm1lbnV0cmFucyBCbG9ja1wgU2VsZWN0aW9uCQlCbG9rb3b9XCB2/WJlcgptZW51dHJhbnMgSW5zZXJ0XCBtb2RlCQkJUmW+aW1cIHZrbGFkYW5pYQptZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0CQlCbG9rXCBhXCB2a2xhZGFuaWUKbWVudXRyYW5zIEFsd2F5cwkJCVa+ZHkKbWVudXRyYW5zIFRvZ2dsZVwgSW5zZXJ0XCAmTW9kZTxUYWI+OnNldFwgaW0hCVByZXBu+rtcIHJlvmkmbVwgdmtsYWRhbmlhPFRhYj46c2V0XCBpbSEKbWVudXRyYW5zIFRvZ2dsZVwgVmlcIEMmb21wYXRpYmxlPFRhYj46c2V0XCBjcCEJUHJlcG76u1wgdmlcIGtvbXBhdGliaWxpdHU8VGFiPjpzZXRcIGNwIQptZW51dHJhbnMgU2VhcmNoXCAmUGF0aFwuXC5cLgkJQ2VzdGFcICZotWFkYW5pYVwuXC5cLgptZW51dHJhbnMgVGEmZ1wgRmlsZXNcLlwuXC4JCVRhJmdvdukgc/pib3J5XC5cLlwuCm1lbnV0cmFucyBUb2dnbGVcICZUb29sYmFyCQlQcmVwbvq7XCAmcGFuZWwKbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCVByZXBu+rtcIHNwb2Ru/VwgcG9zdXZu7WsKbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhcglQcmVwbvq7XCC1YXb9XCBwb3N1dm7tawptZW51dHJhbnMgVG9nZ2xlXCAmUmlnaHRcIFNjcm9sbGJhcglQcmVwbvq7XCBwcmF2/VwgcG9zdXZu7WsKbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkJTmFzdGF2ZW5pYVwgc/pib3J1Cm1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZOdW1iZXJpbmc8VGFiPjpzZXRcIG51IQlQcmVwbvq7XCDo7XNsb3ZhJm5pZVwgcmlhZGtvdjxUYWI+OnNldFwgbnUhCm1lbnV0cmFucyBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkJUHJlcG76u1wgcmW+aW1cICZ6b3puYW11PFRhYj46c2V0XCBsaXN0IQptZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmV3JhcDxUYWI+OnNldFwgd3JhcCEJCVByZXBu+rtcIHomYWxhbW92YW5pZVwgcmlhZGtvdjxUYWI+OnNldFwgd3JhcCEKbWVudXRyYW5zIFRvZ2dsZVwgVyZyYXBcIGF0XCB3b3JkPFRhYj46c2V0XCBsYnIhCVByZXBu+rtcIHphJmxhbW92YW5pZVwgc2xvdjxUYWI+OnNldFwgbGJyIQptZW51dHJhbnMgVG9nZ2xlXCAmZXhwYW5kLXRhYjxUYWI+OnNldFwgZXQhCQlQcmVwbvq7XCByb3q57XImZW7pXCB0YWJ1bOF0b3J5PFRhYj46c2V0XCBldCEKbWVudXRyYW5zIFRvZ2dsZVwgJmF1dG8taW5kZW50PFRhYj46c2V0XCBhaSEJCVByZXBu+rtcIGF1dG9tYXRpY2vpXCAmb2RzYWR6b3ZhbmllPFRhYj46c2V0XCBhaSEKbWVudXRyYW5zIFRvZ2dsZVwgJkMtaW5kZW50aW5nPFRhYj46c2V0XCBjaW4hCQlQcmVwbvq7XCAmQy1vZHNhZHpvdmFuaWU8VGFiPjpzZXRcIGNpbiEKbWVudXRyYW5zICZTaGlmdHdpZHRoCQkJJqntcmthXCC5aWZ0dQptZW51dHJhbnMgU29mdFwgJlRhYnN0b3AJCSZTb2Z0dulyb3b9XCB0YWJ1bOF0b3IKbWVudXRyYW5zIFRlJnh0XCBXaWR0aFwuXC5cLgkJqe1ya2FcIHRlJnh0dVwuXC5cLgptZW51dHJhbnMgJkZpbGVcIEZvcm1hdFwuXC5cLgkJJkZvcm3hdFwgc/pib3J1XC5cLlwuCm1lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkJRmFyJmVibuFcIHNjaOltYQoKIiBQcm9ncmFtbWluZyBtZW51Cm1lbnV0cmFucyAmVG9vbHMJCQkmTuFzdHJvamUKbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0JJlNrb+hpu1wgbmFcIHpuYehrdTxUYWI+Z15dCm1lbnV0cmFucyBKdW1wXCAmYmFjazxUYWI+XlQJCVNrJm/oabtcIHNw5Ls8VGFiPl5UCm1lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJCSZWeXR2b3Jpu1wgc/pib3JcIHpuYehpZWsKbWVudXRyYW5zICZGb2xkaW5nCQkJJlZu4XJhbmllCm1lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aQlaYXBu+rsvVnlwbvq7XCB2buFyYW5pJmU8VGFiPnppCm1lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dglab2JyYXppu1wga3Vyem9ybyZ2/VwgcmlhZG9rPFRhYj56dgptZW51dHJhbnMgVmllJndcIEN1cnNvclwgTGluZVwgb25seTxUYWI+ek16eAlab2JyYXppu1wgaWJhXCBrdXJ6b3Jvdv1cIHJpYWRvazxUYWI+ek16eAptZW51dHJhbnMgQyZsb3NlXCBtb3JlXCBmb2xkczxUYWI+em0JWmF0dm9yabtcIHZpYWMgXHZub3Jlbu08VGFiPnptCm1lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNCVphdHZvciZpu1wgdrlldGt5XCB2bm9yZW5pYTxUYWI+ek0KbWVudXRyYW5zIE8mcGVuXCBtb3JlXCBmb2xkczxUYWI+enIJTyZ0dm9yabtcIHZpYWNcIHZub3Jlbu08VGFiPnpyCm1lbnV0cmFucyAmT3BlblwgYWxsXCBmb2xkczxUYWI+elIJJk90dm9yabtcIHa5ZXRreVwgdm5vcmVuaWE8VGFiPnpSCm1lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkJTWV08yZkYVwgdm7hcmFuaWEKbWVudXRyYW5zIE0mYW51YWwJCQlNJmFudeFsbmUKbWVudXRyYW5zIEkmbmRlbnQJCQlPZHNhZGUmbmllCm1lbnV0cmFucyBFJnhwcmVzc2lvbgkJCSZW/XJhegptZW51dHJhbnMgUyZ5bnRheAkJCVMmeW50YXgKbWVudXRyYW5zICZEaWZmCQkJCVJveiZkaWVsCm1lbnV0cmFucyBNYSZya2VyCQkJWm5hJuhrb3Zh6AptZW51dHJhbnMgQ3JlYXRlXCAmRm9sZDxUYWI+emYJCVZ5dCZ2b3Jpu1wgdm5vcmVuaWU8VGFiPnpmCm1lbnV0cmFucyAmRGVsZXRlXCBGb2xkPFRhYj56ZAkJViZ5bWF6YbtcIHZub3JlbmllPFRhYj56ZAptZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJVnltYXphu1wgdrlldGt5XCB2bm9yZW5pYTxUYWI+ekQKbWVudXRyYW5zIEZvbGRcIGNvbHVtblwgJndpZHRoCQmp7XJrYVwgJnZrbGFkYW7paG9cIHN05XBjYQptZW51dHJhbnMgJkRpZmYJCQkJJlJvemRpZWx5Cm1lbnV0cmFucyAmVXBkYXRlCQkJQWt0JnVhbGl6b3ZhuwptZW51dHJhbnMgJkdldFwgQmxvY2sJCQlab2ImcmG7XCBibG9rCm1lbnV0cmFucyAmUHV0XCBCbG9jawkJCSZWbG++abtcIGJsb2sKbWVudXRyYW5zIEVycm9yXCAmV2luZG93CQlDaHlib3bpXCAmb2tubwptZW51dHJhbnMgJlVwZGF0ZTxUYWI+OmN3aW4JCUFrdCZ1YWxpem92Ybs8VGFiPjpjd2luCm1lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuCQkmT3R2b3JpuzxUYWI+OmNvcGVuCm1lbnV0cmFucyAmQ2xvc2U8VGFiPjpjY2xvc2UJCSZaYXR2b3JpuzxUYWI+OmNjbG9zZQptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAkmS29udmVydG92YbtcIGRvXCBIRVg8VGFiPjolIXh4ZAptZW51dHJhbnMgQ29udmUmcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIJS29udmUmcnRvdmG7XCBzcOS7PFRhYj46JSF4eGRcIC1yCm1lbnV0cmFucyAmTWFrZTxUYWI+Om1ha2UJCSZNYWtlPFRhYj46bWFrZQptZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsCQlW/XBpc1wgJmNo/WI8VGFiPjpjbAptZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whCVb9cCZpc1wgc3By4XY8VGFiPjpjbCEKbWVudXRyYW5zICZOZXh0XCBFcnJvcjxUYWI+OmNuCQnPYSZsuWlhXCBjaHliYTxUYWI+OmNuCm1lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AJJlByZWRjaOFkemFq+mNhXCBjaHliYTxUYWI+OmNwCm1lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkCVN0YSZyue1cIHpvem5hbTxUYWI+OmNvbGQKbWVudXRyYW5zIE4mZXdlclwgTGlzdDxUYWI+OmNuZXcJTm92ue1cICZ6b3puYW08VGFiPjpjbmV3Cm1lbnV0cmFucyBFcnJvclwgJldpbmRvdzxUYWI+OmN3aW4JQ2h5Ym926VwgbyZrbm88VGFiPjpjd2luCm1lbnV0cmFucyAmU2V0XCBDb21waWxlcgkJVnliZXJ0ZVwgayZvbXBpbOF0b3IKbWVudXRyYW5zIENvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAlQcnZpZXO7XCBkb1wguWVzJnRu4XN0a2926WhvXCBmb3Jt4XR1PFRhYj46JSF4eGQKbWVudXRyYW5zIENvbnZlcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIJUHImZXZpZXO7XCBzcOS7PFRhYj46JSF4eGRcIC1yCgoiIE5hbWVzIGZvciBidWZmZXIgbWVudS4KbWVudXRyYW5zICZCdWZmZXJzCQkmVnlyb3Zu4XZhY2lhXCBwYW3kuwptZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUJT2Jub3ZpuwptZW51dHJhbnMgJkRlbGV0ZQkJVnltYXphuwptZW51dHJhbnMgJkFsdGVybmF0ZQkJWm1lbmm7Cm1lbnV0cmFucyAmTmV4dAkJCc8mYWy5aWEKbWVudXRyYW5zICZQcmV2aW91cwkJJlByZWRjaOFkemFq+mNhCm1lbnV0cmFucyBbTm8gRmlsZV0JCVuuaWFkbnlcIHP6Ym9yXQoKIiBXaW5kb3cgbWVudQptZW51dHJhbnMgJldpbmRvdwkJCSZPa27hCm1lbnV0cmFucyAmTmV3PFRhYj5eV24JCQkmTm926TxUYWI+XlduCm1lbnV0cmFucyBTJnBsaXQ8VGFiPl5XcwkJJlJvemRlbGm7PFRhYj5eV3MKbWVudXRyYW5zIFNwJmxpdFwgVG9cICM8VGFiPl5XXl4JUm8memRlbGm7XCBuYVwgIzxUYWI+XldeXgptZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YJUm96ZGVsabtcICZ2ZXJ0aWvhbG5lPFRhYj5eV3YKbWVudXRyYW5zIFNwbGl0XCBGaWxlXCBFJnhwbG9yZXIJT3R2b3Jpu1wgcHJpJmVza3Vtbu1rYQptZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJCVphdHZvciZpuzxUYWI+XldjCm1lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JWmF0dm9yabtcIGkmbuk8VGFiPl5XbwptZW51dHJhbnMgTW92ZVwgJlRvCQkJUHJlc3Vu+ia7Cm1lbnV0cmFucyAmVG9wPFRhYj5eV0sJCQlOYSZob3I8VGFiPl5XSwptZW51dHJhbnMgJkJvdHRvbTxUYWI+XldKCQlOYWRvJmw8VGFiPl5XSgptZW51dHJhbnMgJkxlZnRcIHNpZGU8VGFiPl5XSAkJVia1YXZvPFRhYj5eV0oKbWVudXRyYW5zICZSaWdodFwgc2lkZTxUYWI+XldMCQlWcHJhdiZvPFRhYj5eV0wKbWVudXRyYW5zIE5lJnh0PFRhYj5eV3cJCQnPJmFsuWllPFRhYj5eV3cKbWVudXRyYW5zIFAmcmV2aW91czxUYWI+XldXCQkmUHJlZGNo4WR6YWr6Y2U8VGFiPl5XVwptZW51dHJhbnMgJkVxdWFsXCBTaXplPFRhYj5eVz0JCVJvdm5ha+FcIHb9uSZrYTxUYWI+Xlc9Cm1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkJJk1heGlt4WxuYVwgdv25a2E8VGFiPl5XXwptZW51dHJhbnMgTSZpblwgSGVpZ2h0PFRhYj5eVzFfCQlNaW5pbeFsbmFcIHb9JrlrYTxUYWI+XlcxXwptZW51dHJhbnMgTWF4XCAmV2lkdGg8VGFiPl5XXHwJCU1heGlt4WxuYVwgue1ya2E8VGFiPl5XXHwKbWVudXRyYW5zIE1pblwgV2lkdCZoPFRhYj5eVzFcfAkJTWluaW3hbG5hILlpcmthPFRhYj5eVzFcfAptZW51dHJhbnMgUm90YXRlXCAmVXA8VGFiPl5XUgkJUm90b3ZhJrtcIG5haG9yPFRhYj5eV1IKbWVudXRyYW5zIFJvdGF0ZVwgJkRvd248VGFiPl5XcgkJUm90b3Zhu1wgbmEmZG9sPFRhYj5eV3IKbWVudXRyYW5zIFNlbGVjdFwgRm8mbnRcLlwuXC4JCVZ5JmJyYbtcIHDtc21vXC5cLlwuCgoiIFRoZSBwb3B1cCBtZW51Cm1lbnV0cmFucyAmVW5kbwkJCSZTcOS7Cm1lbnV0cmFucyBDdSZ0CQkJJlZ5c3RyaWhu+rsKbWVudXRyYW5zICZDb3B5CQkJJktvcO1yb3ZhuwptZW51dHJhbnMgJlBhc3RlCQlWJmxvvmm7Cm1lbnV0cmFucyAmRGVsZXRlCQlWJnltYXphuwptZW51dHJhbnMgU2VsZWN0XCBCbG9ja3dpc2UJVnlicmG7XCBibG9rb3ZvCm1lbnV0cmFucyBTZWxlY3RcICZXb3JkCQlWeWJyYbtcIHNsJm92bwptZW51dHJhbnMgU2VsZWN0XCAmTGluZQkJVnlicmG7XCAmcmlhZG9rCm1lbnV0cmFucyBTZWxlY3RcICZCbG9jawlWeWJyYbtcICZibG9rCm1lbnV0cmFucyBTZWxlY3RcICZBbGwJCVZ5YnJhu1wgdrkmZXRrbwoKIiBUaGUgR1VJIHRvb2xiYXIKaWYgaGFzKCJ0b29sYmFyIikKICBpZiBleGlzdHMoIipEb190b29sYmFyX3RtZW51IikKICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51CiAgZW5kaWYKICBmdW4gRG9fdG9vbGJhcl90bWVudSgpCiAgICB0bWVudSBUb29sQmFyLk9wZW4JCU90dm9yabsgc/pib3IKICAgIHRtZW51IFRvb2xCYXIuU2F2ZQkJVWxvvmm7IHP6Ym9yCiAgICB0bWVudSBUb29sQmFyLlNhdmVBbGwJVWxvvmm7IHa5ZXRreQogICAgdG1lbnUgVG9vbEJhci5QcmludAkJVGxh6AogICAgdG1lbnUgVG9vbEJhci5VbmRvCQlTcOS7CiAgICB0bWVudSBUb29sQmFyLlJlZG8JCU9wYWtvdmG7CiAgICB0bWVudSBUb29sQmFyLkN1dAkJVnlzdHJpaG76uwogICAgdG1lbnUgVG9vbEJhci5Db3B5CQlLb3Dtcm92YbsKICAgIHRtZW51IFRvb2xCYXIuUGFzdGUJCVZsb75puwogICAgdG1lbnUgVG9vbEJhci5GaW5kCQlO4Wpzuy4uLgogICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dAlO4WpzuyDvYWy5aWUKICAgIHRtZW51IFRvb2xCYXIuRmluZFByZXYJTuFqc7sgcHJlZGNo4WR6YWr6Y2UKICAgIHRtZW51IFRvb2xCYXIuUmVwbGFjZQlOYWhyYWRpuy4uLgogICAgaWYgMAkiIGRpc2FibGVkOyBUaGVzZSBhcmUgaW4gdGhlIFdpbmRvd3MgbWVudQogICAgICB0bWVudSBUb29sQmFyLk5ldwkJTm926SBva25vCiAgICAgIHRtZW51IFRvb2xCYXIuV2luU3BsaXQJUm96ZGVsabsgb2tubwogICAgICB0bWVudSBUb29sQmFyLldpbk1heAlNYXhpbWFsaXpvdmG7IG9rbm8KICAgICAgdG1lbnUgVG9vbEJhci5XaW5NaW4JTWluaW1hbGl6b3ZhuyBva25vCiAgICAgIHRtZW51IFRvb2xCYXIuV2luVlNwbGl0CVJvemRlbGm7IG9rbm8gdmVydGlr4WxuZQogICAgICB0bWVudSBUb29sQmFyLldpbk1heFdpZHRoCU1heGltYWxpem92Ybsgue1ya3Ugb2tuYQogICAgICB0bWVudSBUb29sQmFyLldpbk1pbldpZHRoCU1pbmltYWxpem92Ybsgue1ya3Ugb2tuYQogICAgICB0bWVudSBUb29sQmFyLldpbkNsb3NlCVphdHZvcmm7IG9rbm8KICAgIGVuZGlmCiAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuCU5h6O10Ybsgc2VkZW5pZQogICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbglVbG++absgc2VkZW5pZQogICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQJU3B1c3RpuyBza3JpcHQKICAgIHRtZW51IFRvb2xCYXIuTWFrZQkJU3B1c3RpuyBtYWtlCiAgICB0bWVudSBUb29sQmFyLlNoZWxsCQlTcHVzdGm7ILllbAogICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwlTcHVzdGm7IGN0YWdzCiAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAJU2tv6Gm7IG5hIHRhZyBwb2Qga3Vyem9yb20KICAgIHRtZW51IFRvb2xCYXIuSGVscAkJUG9tb2Nu7WsKICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAJTuFqc7sgcG9tb2Nu7WthIGsuLi4KICBlbmRmdW4KZW5kaWYKCiIgU3ludGF4IG1lbnUKbWVudXRyYW5zICZTeW50YXgJCSZTeW50YXgKbWVudXRyYW5zIFNldFwgJyZzeW50YXgnXCBvbmx5CU5hc3Rhdmm7XCBpYmFcICdzeW50YXgnCm1lbnV0cmFucyBTZXRcICcmZmlsZXR5cGUnXCB0b28JTmFzdGF2abtcIGFqXCAnZmlsZXR5cGUnCm1lbnV0cmFucyAmT2ZmCQkJJlZ5cG76uwptZW51dHJhbnMgJk1hbnVhbAkJJlJ16G5lCm1lbnV0cmFucyBBJnV0b21hdGljCQlBJnV0b21hdGlja3kKIiBtZW51dHJhbnMgbyZuXCAodGhpc1wgZmlsZSkJJlphcG76u1wgKHByZVwgdGVudG9cIHP6Ym9yKQoiIG1lbnV0cmFucyBvJmZmXCAodGhpc1wgZmlsZSkJVnlwJm76u1wgKHByZVwgdGVudG9cIHP6Ym9yICkKbWVudXRyYW5zIG9uL29mZlwgZm9yXCAmVGhpc1wgZmlsZQlaYXBu+rsvdnlwbvq7XCBwcmVcICZ0ZW50b1wgc/pib3IKbWVudXRyYW5zIENvJmxvclwgdGVzdAkJVGVzdFwgJmZhcmllYgptZW51dHJhbnMgJkhpZ2hsaWdodFwgdGVzdAkmVGVzdFwgenb9cmF68m92YW5pYQptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIVE1MCSZQcmV2aWVzu1wgZG9cIEhUTUwK