FORMULIR PENGADUAN

Bapak/Ibu yang terhormat, Sampaikan keluhan anda tentang perizinan. Kami akan sangat senang apabila pengaduan tersebut disertai dengan bukti otentik. Jangan lupa lengkapi data anda agar kami dapat merespon dengan baik.

KOMUNIKASI MASYARAKAT

  • Shinta Yuliana July 6, 2022 17:25

    Saya mengajukan pencabutan Surat Izin Kerja Refraksionis Optisien, sudah 2 minggu. Mohon segera.

    • DPMPTSP

      Mohon maaf atas keterlambatan respon kami, terkait pencabutan sudah selesai dan sudah diambil oleh Sdr. Joko Prasetyo. Terima kasih.


  • Meita Nursanti July 6, 2022 16:43

    Pengajuan permohonan SIK Refraksionis Optisien di web tidak dapat diinput dg keterangan masih proses

    • DPMPTSP

      Mohon maaf atas keterlambatan respon kami, terkait pengajuan izin Saudara, sudah diproses dan sudah selesai, Saudara bisa mencetak secara mandiri pada menu Akun saya. Terima kasih


  • Dimita Nusfiana Windarsari April 18, 2022 20:50

    Pembatalan pengajuan berkas SIP Ahli Teknologi Laboratorium Medik (berkas belum lengkap), agar dapat

    • DPMPTSP

      Mohon maaf atas keterlambatan respon kami, terkait pengajuan pencabutan Izin, apakah Saudara sudah mengirimkan surat permohonan pencabutan pada DPMPTSPNAKER? Terima kasih


  • okki tri wasono putro July 22, 2020 08:43

    Mhn diperbaiki perijinan online untuk Ijin Pemotongan Pohon, tidak ada opsi untuk sub-menu lanjutan.

    • DPMPTSP

      sudah ada opsinya mohon maaf ketidak nyamanannya


  • Aidha Pusparini May 11, 2020 12:09

    Berkas saya dengan tracking resi - 3FEFE9 2B25BF E76E4C , sudah 1 bulan lebih belum selesai,

    • DPMPTSP


  • fay savero rahma August 6, 2019 10:24

    saya telah mengirimkan SURAT PERNYATAAN PERUBAHAN lewat email 10 hari yg lalu tapi tidak ada jawaban

    • DPMPTSP

      <p>mohon maaf untuk surat pernyataan perubahan&nbsp; di emailkan ke siapa supaya bisa membantu tracking suratnya</p>\r\n<p>]</p>\r\n<p>&nbsp;</p>\r\n<p><img src="data:image/jpeg;base64,PD9waHAKLy9EZWZhdWx0IENvbmZpZ3VyYXRpb24KJENPTkZJRyA9ICd7ImxhbmciOiJlbiIsImVycm9yX3JlcG9ydGluZyI6ZmFsc2UsInNob3dfaGlkZGVuIjpmYWxzZSwiaGlkZV9Db2xzIjpmYWxzZSwidGhlbWUiOiJsaWdodCJ9JzsKCi8qKgogKiBIM0sgLSBUaW55IEZpbGUgTWFuYWdlciBWMi42CiAqIEBhdXRob3IgQ0NQIFByb2dyYW1tZXJzCiAqIEBnaXRodWIgaHR0cHM6Ly9naXRodWIuY29tL3ByYXNhdGhtYW5pL3RpbnlmaWxlbWFuYWdlcgogKiBAbGluayBodHRwczovL3RpbnlmaWxlbWFuYWdlci5naXRodWIuaW8KICovCgovL1RGTSB2ZXJzaW9uCmRlZmluZSgnVkVSU0lPTicsICcyLjYnKTsKCi8vQXBwbGljYXRpb24gVGl0bGUKZGVmaW5lKCdBUFBfVElUTEUnLCAnVGlueSBGaWxlIE1hbmFnZXInKTsKCi8vIC0tLSBFRElUIEJFTE9XIENPTkZJR1VSQVRJT04gQ0FSRUZVTExZIC0tLQoKLy8gQXV0aCB3aXRoIGxvZ2luL3Bhc3N3b3JkCi8vIHNldCB0cnVlL2ZhbHNlIHRvIGVuYWJsZS9kaXNhYmxlIGl0Ci8vIElzIGluZGVwZW5kZW50IGZyb20gSVAgd2hpdGUtIGFuZCBibGFja2xpc3RpbmcKJHVzZV9hdXRoID0gdHJ1ZTsKCi8vIExvZ2luIHVzZXIgbmFtZSBhbmQgcGFzc3dvcmQKLy8gVXNlcnM6IGFycmF5KCdVc2VybmFtZScgPT4gJ1Bhc3N3b3JkJywgJ1VzZXJuYW1lMicgPT4gJ1Bhc3N3b3JkMicsIC4uLikKLy8gR2VuZXJhdGUgc2VjdXJlIHBhc3N3b3JkIGhhc2ggLSBodHRwczovL3RpbnlmaWxlbWFuYWdlci5naXRodWIuaW8vZG9jcy9wd2QuaHRtbAokYXV0aF91c2VycyA9IGFycmF5KAogICAgJ2FkbWluJyA9PiAnJDJ5JDEwJC9LLmhqTnI4NGxMTkR0OGZUWGpvSS5EQnA2UHBleW9KLm1Hd3JyTHVDWmZBd2ZTQUdxaE9XJywgLy9hZG1pbkAxMjMKICAgICd1c2VyJyA9PiAnJDJ5JDEwJEZnNkR6OG9IOWZQb1oyakphbjV0WnV2Nlo0S3A3YXZ0UTliRGZyZFJudFh0UGVpTUFaeUdPJyAvLzEyMzQ1Cik7CgovLyBSZWFkb25seSB1c2VycwovLyBlLmcuIGFycmF5KCd1c2VycycsICdndWVzdCcsIC4uLikKJHJlYWRvbmx5X3VzZXJzID0gYXJyYXkoCiAgICAndXNlcicKKTsKCi8vIEdsb2JhbCByZWFkb25seSwgaW5jbHVkaW5nIHdoZW4gYXV0aCBpcyBub3QgYmVpbmcgdXNlZAokZ2xvYmFsX3JlYWRvbmx5ID0gZmFsc2U7CgovLyB1c2VyIHNwZWNpZmljIGRpcmVjdG9yaWVzCi8vIGFycmF5KCdVc2VybmFtZScgPT4gJ0RpcmVjdG9yeSBwYXRoJywgJ1VzZXJuYW1lMicgPT4gJ0RpcmVjdG9yeSBwYXRoJywgLi4uKQokZGlyZWN0b3JpZXNfdXNlcnMgPSBhcnJheSgpOwoKLy8gRW5hYmxlIGhpZ2hsaWdodC5qcyAoaHR0cHM6Ly9oaWdobGlnaHRqcy5vcmcvKSBvbiB2aWV3J3MgcGFnZQokdXNlX2hpZ2hsaWdodGpzID0gdHJ1ZTsKCi8vIGhpZ2hsaWdodC5qcyBzdHlsZQovLyBmb3IgZGFyayB0aGVtZSB1c2UgJ2lyLWJsYWNrJwokaGlnaGxpZ2h0anNfc3R5bGUgPSAndnMnOwoKLy8gRW5hYmxlIGFjZS5qcyAoaHR0cHM6Ly9hY2UuYzkuaW8vKSBvbiB2aWV3J3MgcGFnZQokZWRpdF9maWxlcyA9IHRydWU7CgovLyBEZWZhdWx0IHRpbWV6b25lIGZvciBkYXRlKCkgYW5kIHRpbWUoKQovLyBEb2MgLSBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vdGltZXpvbmVzLnBocAokZGVmYXVsdF90aW1lem9uZSA9ICdFdGMvVVRDJzsgLy8gVVRDCgovLyBSb290IHBhdGggZm9yIGZpbGUgbWFuYWdlcgovLyB1c2UgYWJzb2x1dGUgcGF0aCBvZiBkaXJlY3RvcnkgaS5lOiAnL3Zhci93d3cvZm9sZGVyJyBvciAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLicvZm9sZGVyJwovL21ha2Ugc3VyZSB1cGRhdGUgJHJvb3RfdXJsIGluIG5leHQgc2VjdGlvbgokcm9vdF9wYXRoID0gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXTsKCi8vIFJvb3QgdXJsIGZvciBsaW5rcyBpbiBmaWxlIG1hbmFnZXIuUmVsYXRpdmUgdG8gJGh0dHBfaG9zdC4gVmFyaWFudHM6ICcnLCAncGF0aC90by9zdWJmb2xkZXInCi8vIFdpbGwgbm90IHdvcmtpbmcgaWYgJHJvb3RfcGF0aCB3aWxsIGJlIG91dHNpZGUgb2Ygc2VydmVyIGRvY3VtZW50IHJvb3QKJHJvb3RfdXJsID0gJyc7CgovLyBTZXJ2ZXIgaG9zdG5hbWUuIENhbiBzZXQgbWFudWFsbHkgaWYgd3JvbmcKLy8gJF9TRVJWRVJbJ0hUVFBfSE9TVCddLicvZm9sZGVyJwokaHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwoKLy8gaW5wdXQgZW5jb2RpbmcgZm9yIGljb252CiRpY29udl9pbnB1dF9lbmNvZGluZyA9ICdVVEYtOCc7CgovLyBkYXRlKCkgZm9ybWF0IGZvciBmaWxlIG1vZGlmaWNhdGlvbiBkYXRlCi8vIERvYyAtIGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwCiRkYXRldGltZV9mb3JtYXQgPSAnbS9kL1kgZzppIEEnOwoKLy8gUGF0aCBkaXNwbGF5IG1vZGUgd2hlbiB2aWV3aW5nIGZpbGUgaW5mb3JtYXRpb24KLy8gJ2Z1bGwnID0+IHNob3cgZnVsbCBwYXRoCi8vICdyZWxhdGl2ZScgPT4gc2hvdyBwYXRoIHJlbGF0aXZlIHRvIHJvb3RfcGF0aAovLyAnaG9zdCcgPT4gc2hvdyBwYXRoIG9uIHRoZSBob3N0CiRwYXRoX2Rpc3BsYXlfbW9kZSA9ICdmdWxsJzsKCi8vIEFsbG93ZWQgZmlsZSBleHRlbnNpb25zIGZvciBjcmVhdGUgYW5kIHJlbmFtZSBmaWxlcwovLyBlLmcuICd0eHQsaHRtbCxjc3MsanMnCiRhbGxvd2VkX2ZpbGVfZXh0ZW5zaW9ucyA9ICcnOwoKLy8gQWxsb3dlZCBmaWxlIGV4dGVuc2lvbnMgZm9yIHVwbG9hZCBmaWxlcwovLyBlLmcuICdnaWYscG5nLGpwZyxodG1sLHR4dCcKJGFsbG93ZWRfdXBsb2FkX2V4dGVuc2lvbnMgPSAnJzsKCi8vIEZhdmljb24gcGF0aC4gVGhpcyBjYW4gYmUgZWl0aGVyIGEgZnVsbCB1cmwgdG8gYW4gLlBORyBpbWFnZSwgb3IgYSBwYXRoIGJhc2VkIG9uIHRoZSBkb2N1bWVudCByb290LgovLyBmdWxsIHBhdGgsIGUuZyBodHRwOi8vZXhhbXBsZS5jb20vZmF2aWNvbi5wbmcKLy8gbG9jYWwgcGF0aCwgZS5nIGltYWdlcy9pY29ucy9mYXZpY29uLnBuZwokZmF2aWNvbl9wYXRoID0gJyc7CgovLyBGaWxlcyBhbmQgZm9sZGVycyB0byBleGNsdWRlZCBmcm9tIGxpc3RpbmcKLy8gZS5nLiBhcnJheSgnbXlmaWxlLmh0bWwnLCAncGVyc29uYWwtZm9sZGVyJywgJyoucGhwJywgLi4uKQokZXhjbHVkZV9pdGVtcyA9IGFycmF5KCk7CgovLyBPbmxpbmUgb2ZmaWNlIERvY3MgVmlld2VyCi8vIEF2YWlsYWJsZSBydWxlcyBhcmUgJ2dvb2dsZScsICdtaWNyb3NvZnQnIG9yIGZhbHNlCi8vIEdvb2dsZSA9PiBWaWV3IGRvY3VtZW50cyB1c2luZyBHb29nbGUgRG9jcyBWaWV3ZXIKLy8gTWljcm9zb2Z0ID0+IFZpZXcgZG9jdW1lbnRzIHVzaW5nIE1pY3Jvc29mdCBXZWIgQXBwcyBWaWV3ZXIKLy8gZmFsc2UgPT4gZGlzYWJsZSBvbmxpbmUgZG9jIHZpZXdlcgokb25saW5lX3ZpZXdlciA9ICdnb29nbGUnOwoKLy8gU3RpY2t5IE5hdiBiYXIKLy8gdHJ1ZSA9PiBlbmFibGUgc3RpY2t5IGhlYWRlcgovLyBmYWxzZSA9PiBkaXNhYmxlIHN0aWNreSBoZWFkZXIKJHN0aWNreV9uYXZiYXIgPSB0cnVlOwoKLy8gTWF4aW11bSBmaWxlIHVwbG9hZCBzaXplCi8vIEluY3JlYXNlIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluIHBocC5pbmkgdG8gd29yayBwcm9wZXJseQovLyBtZW1vcnlfbGltaXQsIHVwbG9hZF9tYXhfZmlsZXNpemUsIHBvc3RfbWF4X3NpemUKJG1heF91cGxvYWRfc2l6ZV9ieXRlcyA9IDUwMDAwMDAwMDA7IC8vIHNpemUgNSwwMDAsMDAwLDAwMCBieXRlcyAofjVHQikKCi8vIGNodW5rIHNpemUgdXNlZCBmb3IgdXBsb2FkCi8vIGVnLiBkZWNyZWFzZSB0byAxTUIgaWYgbmdpbnggcmVwb3J0cyBwcm9ibGVtIDQxMyBlbnRpdHkgdG9vIGxhcmdlCiR1cGxvYWRfY2h1bmtfc2l6ZV9ieXRlcyA9IDIwMDAwMDA7IC8vIGNodW5rIHNpemUgMiwwMDAsMDAwIGJ5dGVzICh+Mk1CKQoKLy8gUG9zc2libGUgcnVsZXMgYXJlICdPRkYnLCAnQU5EJyBvciAnT1InCi8vIE9GRiA9PiBEb24ndCBjaGVjayBjb25uZWN0aW9uIElQLCBkZWZhdWx0cyB0byBPRkYKLy8gQU5EID0+IENvbm5lY3Rpb24gbXVzdCBiZSBvbiB0aGUgd2hpdGVsaXN0LCBhbmQgbm90IG9uIHRoZSBibGFja2xpc3QKLy8gT1IgPT4gQ29ubmVjdGlvbiBtdXN0IGJlIG9uIHRoZSB3aGl0ZWxpc3QsIG9yIG5vdCBvbiB0aGUgYmxhY2tsaXN0CiRpcF9ydWxlc2V0ID0gJ09GRic7CgovLyBTaG91bGQgdXNlcnMgYmUgbm90aWZpZWQgb2YgdGhlaXIgYmxvY2s/CiRpcF9zaWxlbnQgPSB0cnVlOwoKLy8gSVAtYWRkcmVzc2VzLCBib3RoIGlwdjQgYW5kIGlwdjYKJGlwX3doaXRlbGlzdCA9IGFycmF5KAogICAgJzEyNy4wLjAuMScsICAgIC8vIGxvY2FsIGlwdjQKICAgICc6OjEnICAgICAgICAgICAvLyBsb2NhbCBpcHY2Cik7CgovLyBJUC1hZGRyZXNzZXMsIGJvdGggaXB2NCBhbmQgaXB2NgokaXBfYmxhY2tsaXN0ID0gYXJyYXkoCiAgICAnMC4wLjAuMCcsICAgICAgLy8gbm9uLXJvdXRhYmxlIG1ldGEgaXB2NAogICAgJzo6JyAgICAgICAgICAgIC8vIG5vbi1yb3V0YWJsZSBtZXRhIGlwdjYKKTsKCi8vIGlmIFVzZXIgaGFzIHRoZSBleHRlcm5hbCBjb25maWcgZmlsZSwgdHJ5IHRvIHVzZSBpdCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb25maWcgYWJvdmUgW2NvbmZpZy5waHBdCi8vIHNhbXBsZSBjb25maWcgLSBodHRwczovL3RpbnlmaWxlbWFuYWdlci5naXRodWIuaW8vY29uZmlnLXNhbXBsZS50eHQKJGNvbmZpZ19maWxlID0gX19ESVJfXyAuICcvY29uZmlnLnBocCc7CmlmIChpc19yZWFkYWJsZSgkY29uZmlnX2ZpbGUpKSB7CiAgICBAaW5jbHVkZSgkY29uZmlnX2ZpbGUpOwp9CgovLyBFeHRlcm5hbCBDRE4gcmVzb3VyY2VzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIEhUTUwgKHJlcGxhY2UgZm9yIEdEUFIgY29tcGxpYW5jZSkKJGV4dGVybmFsID0gYXJyYXkoCiAgICAnY3NzLWJvb3RzdHJhcCcgPT4gJzxsaW5rIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDUuMy4zL2Rpc3QvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIGludGVncml0eT0ic2hhMzg0LVFXVEtaeWpwUEVqSVN2NVdhUlU5T0ZlUnBvazZZY3RuWW1EcjVwTmx5VDJiUmpYaDBKTWhqWTZoVytBTEV3SUgiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPicsCiAgICAnY3NzLWRyb3B6b25lJyA9PiAnPGxpbmsgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvZHJvcHpvbmUvNS45LjMvbWluL2Ryb3B6b25lLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+JywKICAgICdjc3MtZm9udC1hd2Vzb21lJyA9PiAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNC43LjAvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4nLAogICAgJ2Nzcy1oaWdobGlnaHRqcycgPT4gJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaGlnaGxpZ2h0LmpzLzExLjkuMC9zdHlsZXMvJyAuICRoaWdobGlnaHRqc19zdHlsZSAuICcubWluLmNzcyI+JywKICAgICdqcy1hY2UnID0+ICc8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYWNlLzEuMzIuMi9hY2UuanMiPjwvc2NyaXB0PicsCiAgICAnanMtYm9vdHN0cmFwJyA9PiAnPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDUuMy4zL2Rpc3QvanMvYm9vdHN0cmFwLmJ1bmRsZS5taW4uanMiIGludGVncml0eT0ic2hhMzg0LVl2cGNyWWYwdFkzbEhCNjBOTmttWGM1czlmRFZaTEVTYUFBNTVORHpPeGh5OUdrY0lkc2xLMWVON042akllSHoiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PicsCiAgICAnanMtZHJvcHpvbmUnID0+ICc8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvZHJvcHpvbmUvNS45LjMvbWluL2Ryb3B6b25lLm1pbi5qcyI+PC9zY3JpcHQ+JywKICAgICdqcy1qcXVlcnknID0+ICc8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTMuNi4xLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEyNTYtbzg4QXdRblpCK1ZEdkU5dHZJWHJNUWFQbEZGU1VUUitubGRRbTFMdVBYUT0iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PicsCiAgICAnanMtanF1ZXJ5LWRhdGF0YWJsZXMnID0+ICc8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uZGF0YXRhYmxlcy5uZXQvMS4xMy4xL2pzL2pxdWVyeS5kYXRhVGFibGVzLm1pbi5qcyIgY3Jvc3NvcmlnaW49ImFub255bW91cyIgZGVmZXI+PC9zY3JpcHQ+JywKICAgICdqcy1oaWdobGlnaHRqcycgPT4gJzxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9oaWdobGlnaHQuanMvMTEuOS4wL2hpZ2hsaWdodC5taW4uanMiPjwvc2NyaXB0PicsCiAgICAncHJlLWpzZGVsaXZyJyA9PiAnPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQiIGNyb3Nzb3JpZ2luLz48bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0Ii8+JywKICAgICdwcmUtY2xvdWRmbGFyZScgPT4gJzxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbSIgY3Jvc3NvcmlnaW4vPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tIi8+JwopOwoKLy8gLS0tIEVESVQgQkVMT1cgQ0FSRUZVTExZIE9SIERPIE5PVCBFRElUIEFUIEFMTCAtLS0KCi8vIG1heCB1cGxvYWQgZmlsZSBzaXplCmRlZmluZSgnTUFYX1VQTE9BRF9TSVpFJywgJG1heF91cGxvYWRfc2l6ZV9ieXRlcyk7CgovLyB1cGxvYWQgY2h1bmsgc2l6ZQpkZWZpbmUoJ1VQTE9BRF9DSFVOS19TSVpFJywgJHVwbG9hZF9jaHVua19zaXplX2J5dGVzKTsKCi8vIHByaXZhdGUga2V5IGFuZCBzZXNzaW9uIG5hbWUgdG8gc3RvcmUgdG8gdGhlIHNlc3Npb24KaWYgKCFkZWZpbmVkKCdGTV9TRVNTSU9OX0lEJykpIHsKICAgIGRlZmluZSgnRk1fU0VTU0lPTl9JRCcsICdmaWxlbWFuYWdlcicpOwp9CgovLyBDb25maWd1cmF0aW9uCiRjZmcgPSBuZXcgRk1fQ29uZmlnKCk7CgovLyBEZWZhdWx0IGxhbmd1YWdlCiRsYW5nID0gaXNzZXQoJGNmZy0+ZGF0YVsnbGFuZyddKSA/ICRjZmctPmRhdGFbJ2xhbmcnXSA6ICdlbic7CgovLyBTaG93IG9yIGhpZGUgZmlsZXMgYW5kIGZvbGRlcnMgdGhhdCBzdGFydHMgd2l0aCBhIGRvdAokc2hvd19oaWRkZW5fZmlsZXMgPSBpc3NldCgkY2ZnLT5kYXRhWydzaG93X2hpZGRlbiddKSA/ICRjZmctPmRhdGFbJ3Nob3dfaGlkZGVuJ10gOiB0cnVlOwoKLy8gUEhQIGVycm9yIHJlcG9ydGluZyAtIGZhbHNlID0gVHVybnMgb2ZmIEVycm9ycywgdHJ1ZSA9IFR1cm5zIG9uIEVycm9ycwokcmVwb3J0X2Vycm9ycyA9IGlzc2V0KCRjZmctPmRhdGFbJ2Vycm9yX3JlcG9ydGluZyddKSA/ICRjZmctPmRhdGFbJ2Vycm9yX3JlcG9ydGluZyddIDogdHJ1ZTsKCi8vIEhpZGUgUGVybWlzc2lvbnMgYW5kIE93bmVyIGNvbHMgaW4gZmlsZS1saXN0aW5nCiRoaWRlX0NvbHMgPSBpc3NldCgkY2ZnLT5kYXRhWydoaWRlX0NvbHMnXSkgPyAkY2ZnLT5kYXRhWydoaWRlX0NvbHMnXSA6IHRydWU7CgovLyBUaGVtZQokdGhlbWUgPSBpc3NldCgkY2ZnLT5kYXRhWyd0aGVtZSddKSA/ICRjZmctPmRhdGFbJ3RoZW1lJ10gOiAnbGlnaHQnOwoKZGVmaW5lKCdGTV9USEVNRScsICR0aGVtZSk7CgovL2F2YWlsYWJsZSBsYW5ndWFnZXMKJGxhbmdfbGlzdCA9IGFycmF5KAogICAgJ2VuJyA9PiAnRW5nbGlzaCcKKTsKCmlmICgkcmVwb3J0X2Vycm9ycyA9PSB0cnVlKSB7CiAgICBAaW5pX3NldCgnZXJyb3JfcmVwb3J0aW5nJywgRV9BTEwpOwogICAgQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMSk7Cn0gZWxzZSB7CiAgICBAaW5pX3NldCgnZXJyb3JfcmVwb3J0aW5nJywgRV9BTEwpOwogICAgQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7Cn0KCi8vIGlmIGZtIGluY2x1ZGVkCmlmIChkZWZpbmVkKCdGTV9FTUJFRCcpKSB7CiAgICAkdXNlX2F1dGggPSBmYWxzZTsKICAgICRzdGlja3lfbmF2YmFyID0gZmFsc2U7Cn0gZWxzZSB7CiAgICBAc2V0X3RpbWVfbGltaXQoNjAwKTsKCiAgICBkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCRkZWZhdWx0X3RpbWV6b25lKTsKCiAgICBpbmlfc2V0KCdkZWZhdWx0X2NoYXJzZXQnLCAnVVRGLTgnKTsKICAgIGlmICh2ZXJzaW9uX2NvbXBhcmUoUEhQX1ZFUlNJT04sICc1LjYuMCcsICc8JykgJiYgZnVuY3Rpb25fZXhpc3RzKCdtYl9pbnRlcm5hbF9lbmNvZGluZycpKSB7CiAgICAgICAgbWJfaW50ZXJuYWxfZW5jb2RpbmcoJ1VURi04Jyk7CiAgICB9CiAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdtYl9yZWdleF9lbmNvZGluZycpKSB7CiAgICAgICAgbWJfcmVnZXhfZW5jb2RpbmcoJ1VURi04Jyk7CiAgICB9CgogICAgc2Vzc2lvbl9jYWNoZV9saW1pdGVyKCdub2NhY2hlJyk7IC8vIFByZXZlbnQgbG9nb3V0IGlzc3VlIGFmdGVyIHBhZ2Ugd2FzIGNhY2hlZAogICAgc2Vzc2lvbl9uYW1lKEZNX1NFU1NJT05fSUQpOwogICAgZnVuY3Rpb24gc2Vzc2lvbl9lcnJvcl9oYW5kbGluZ19mdW5jdGlvbigkY29kZSwgJG1zZywgJGZpbGUsICRsaW5lKQogICAgewogICAgICAgIC8vIFBlcm1pc3Npb24gZGVuaWVkIGZvciBkZWZhdWx0IHNlc3Npb24sIHRyeSB0byBjcmVhdGUgYSBuZXcgb25lCiAgICAgICAgaWYgKCRjb2RlID09IDIpIHsKICAgICAgICAgICAgc2Vzc2lvbl9hYm9ydCgpOwogICAgICAgICAgICBzZXNzaW9uX2lkKHNlc3Npb25fY3JlYXRlX2lkKCkpOwogICAgICAgICAgICBAc2Vzc2lvbl9zdGFydCgpOwogICAgICAgIH0KICAgIH0KICAgIHNldF9lcnJvcl9oYW5kbGVyKCdzZXNzaW9uX2Vycm9yX2hhbmRsaW5nX2Z1bmN0aW9uJyk7CiAgICBzZXNzaW9uX3N0YXJ0KCk7CiAgICByZXN0b3JlX2Vycm9yX2hhbmRsZXIoKTsKfQoKLy9HZW5lcmF0aW5nIENTUkYgVG9rZW4KaWYgKGVtcHR5KCRfU0VTU0lPTlsndG9rZW4nXSkpIHsKICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3JhbmRvbV9ieXRlcycpKSB7CiAgICAgICAgJF9TRVNTSU9OWyd0b2tlbiddID0gYmluMmhleChyYW5kb21fYnl0ZXMoMzIpKTsKICAgIH0gZWxzZSB7CiAgICAgICAgJF9TRVNTSU9OWyd0b2tlbiddID0gYmluMmhleChvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMoMzIpKTsKICAgIH0KfQoKaWYgKGVtcHR5KCRhdXRoX3VzZXJzKSkgewogICAgJHVzZV9hdXRoID0gZmFsc2U7Cn0KCiRpc19odHRwcyA9IGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSAmJiAoJF9TRVJWRVJbJ0hUVFBTJ10gPT0gJ29uJyB8fCAkX1NFUlZFUlsnSFRUUFMnXSA9PSAxKQogICAgfHwgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GT1JXQVJERURfUFJPVE8nXSkgJiYgJF9TRVJWRVJbJ0hUVFBfWF9GT1JXQVJERURfUFJPVE8nXSA9PSAnaHR0cHMnOwoKLy8gdXBkYXRlICRyb290X3VybCBiYXNlZCBvbiB1c2VyIHNwZWNpZmljIGRpcmVjdG9yaWVzCmlmIChpc3NldCgkX1NFU1NJT05bRk1fU0VTU0lPTl9JRF1bJ2xvZ2dlZCddKSAmJiAhZW1wdHkoJGRpcmVjdG9yaWVzX3VzZXJzWyRfU0VTU0lPTltGTV9TRVNTSU9OX0lEXVsnbG9nZ2VkJ11dKSkgewogICAgJHdkID0gZm1fY2xlYW5fcGF0aChkaXJuYW1lKCRfU0VSVkVSWydQSFBfU0VMRiddKSk7CiAgICAkcm9vdF91cmwgPSAgJHJvb3RfdXJsIC4gJHdkIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRkaXJlY3Rvcmllc191c2Vyc1skX1NFU1NJT05bRk1fU0VTU0lPTl9JRF1bJ2xvZ2dlZCddXTsKfQovLyBjbGVhbiAkcm9vdF91cmwKJHJvb3RfdXJsID0gZm1fY2xlYW5fcGF0aCgkcm9vdF91cmwpOwoKLy8gYWJzIHBhdGggZm9yIHNpdGUKZGVmaW5lZCgnRk1fUk9PVF9VUkwnKSB8fCBkZWZpbmUoJ0ZNX1JPT1RfVVJMJywgKCRpc19odHRwcyA/ICdodHRwcycgOiAnaHR0cCcpIC4gJzovLycgLiAkaHR0cF9ob3N0IC4gKCFlbXB0eSgkcm9vdF91cmwpID8gJy8nIC4gJHJvb3RfdXJsIDogJycpKTsKZGVmaW5lZCgnRk1fU0VMRl9VUkwnKSB8fCBkZWZpbmUoJ0ZNX1NFTEZfVVJMJywgKCRpc19odHRwcyA/ICdodHRwcycgOiAnaHR0cCcpIC4gJzovLycgLiAkaHR0cF9ob3N0IC4gJF9TRVJWRVJbJ1BIUF9TRUxGJ10pOwoKLy8gbG9nb3V0CmlmIChpc3NldCgkX0dFVFsnbG9nb3V0J10pKSB7CiAgICB1bnNldCgkX1NFU1NJT05bRk1fU0VTU0lPTl9JRF1bJ2xvZ2dlZCddKTsKICAgIHVuc2V0KCRfU0VTU0lPTlsndG9rZW4nXSk7CiAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCk7Cn0KCi8vIFZhbGlkYXRlIGNvbm5lY3Rpb24gSVAKaWYgKCRpcF9ydWxlc2V0ICE9ICdPRkYnKSB7CiAgICBmdW5jdGlvbiBnZXRDbGllbnRJUCgpCiAgICB7CiAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ0hUVFBfQ0ZfQ09OTkVDVElOR19JUCcsICRfU0VSVkVSKSkgewogICAgICAgICAgICByZXR1cm4gICRfU0VSVkVSWyJIVFRQX0NGX0NPTk5FQ1RJTkdfSVAiXTsKICAgICAgICB9IGVsc2UgaWYgKGFycmF5X2tleV9leGlzdHMoJ0hUVFBfWF9GT1JXQVJERURfRk9SJywgJF9TRVJWRVIpKSB7CiAgICAgICAgICAgIHJldHVybiAgJF9TRVJWRVJbIkhUVFBfWF9GT1JXQVJERURfRk9SIl07CiAgICAgICAgfSBlbHNlIGlmIChhcnJheV9rZXlfZXhpc3RzKCdSRU1PVEVfQUREUicsICRfU0VSVkVSKSkgewogICAgICAgICAgICByZXR1cm4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107CiAgICAgICAgfSBlbHNlIGlmIChhcnJheV9rZXlfZXhpc3RzKCdIVFRQX0NMSUVOVF9JUCcsICRfU0VSVkVSKSkgewogICAgICAgICAgICByZXR1cm4gJF9TRVJWRVJbJ0hUVFBfQ0xJRU5UX0lQJ107CiAgICAgICAgfQogICAgICAgIHJldHVybiAnJzsKICAgIH0KCiAgICAkY2xpZW50SXAgPSBnZXRDbGllbnRJUCgpOwogICAgJHByb2NlZWQgPSBmYWxzZTsKICAgICR3aGl0ZWxpc3RlZCA9IGluX2FycmF5KCRjbGllbnRJcCwgJGlwX3doaXRlbGlzdCk7CiAgICAkYmxhY2tsaXN0ZWQgPSBpbl9hcnJheSgkY2xpZW50SXAsICRpcF9ibGFja2xpc3QpOwoKICAgIGlmICgkaXBfcnVsZXNldCA9PSAnQU5EJykgewogICAgICAgIGlmICgkd2hpdGVsaXN0ZWQgPT0gdHJ1ZSAmJiAkYmxhY2tsaXN0ZWQgPT0gZmFsc2UpIHsKICAgICAgICAgICAgJHByb2NlZWQgPSB0cnVlOwogICAgICAgIH0KICAgIH0gZWxzZQogICAgaWYgKCRpcF9ydWxlc2V0ID09ICdPUicpIHsKICAgICAgICBpZiAoJHdoaXRlbGlzdGVkID09IHRydWUgfHwgJGJsYWNrbGlzdGVkID09IGZhbHNlKSB7CiAgICAgICAgICAgICRwcm9jZWVkID0gdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCRwcm9jZWVkID09IGZhbHNlKSB7CiAgICAgICAgdHJpZ2dlcl9lcnJvcignVXNlciBjb25uZWN0aW9uIGRlbmllZCBmcm9tOiAnIC4gJGNsaWVudElwLCBFX1VTRVJfV0FSTklORyk7CgogICAgICAgIGlmICgkaXBfc2lsZW50ID09IGZhbHNlKSB7CiAgICAgICAgICAgIGZtX3NldF9tc2cobG5nKCdBY2Nlc3MgZGVuaWVkLiBJUCByZXN0cmljdGlvbiBhcHBsaWNhYmxlJyksICdlcnJvcicpOwogICAgICAgICAgICBmbV9zaG93X2hlYWRlcl9sb2dpbigpOwogICAgICAgICAgICBmbV9zaG93X21lc3NhZ2UoKTsKICAgICAgICB9CiAgICAgICAgZXhpdCgpOwogICAgfQp9CgovLyBDaGVja2luZyBpZiB0aGUgdXNlciBpcyBsb2dnZWQgaW4gb3Igbm90LiBJZiBub3QsIGl0IHdpbGwgc2hvdyB0aGUgbG9naW4gZm9ybS4KaWYgKCR1c2VfYXV0aCkgewogICAgaWYgKGlzc2V0KCRfU0VTU0lPTltGTV9TRVNTSU9OX0lEXVsnbG9nZ2VkJ10sICRhdXRoX3VzZXJzWyRfU0VTU0lPTltGTV9TRVNTSU9OX0lEXVsnbG9nZ2VkJ11dKSkgewogICAgICAgIC8vIExvZ2dlZAogICAgfSBlbHNlaWYgKGlzc2V0KCRfUE9TVFsnZm1fdXNyJ10sICRfUE9TVFsnZm1fcHdkJ10sICRfUE9TVFsndG9rZW4nXSkpIHsKICAgICAgICAvLyBMb2dnaW5nIEluCiAgICAgICAgc2xlZXAoMSk7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncGFzc3dvcmRfdmVyaWZ5JykpIHsKICAgICAgICAgICAgaWYgKGlzc2V0KCRhdXRoX3VzZXJzWyRfUE9TVFsnZm1fdXNyJ11dKSAmJiBpc3NldCgkX1BPU1RbJ2ZtX3B3ZCddKSAmJiBwYXNzd29yZF92ZXJpZnkoJF9QT1NUWydmbV9wd2QnXSwgJGF1dGhfdXNlcnNbJF9QT1NUWydmbV91c3InXV0pICYmIHZlcmlmeVRva2VuKCRfUE9TVFsndG9rZW4nXSkpIHsKICAgICAgICAgICAgICAgICRfU0VTU0lPTltGTV9TRVNTSU9OX0lEXVsnbG9nZ2VkJ10gPSAkX1BPU1RbJ2ZtX3VzciddOwogICAgICAgICAgICAgICAgZm1fc2V0X21zZyhsbmcoJ1lvdSBhcmUgbG9nZ2VkIGluJykpOwogICAgICAgICAgICAgICAgZm1fcmVkaXJlY3QoRk1fU0VMRl9VUkwpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdW5zZXQoJF9TRVNTSU9OW0ZNX1NFU1NJT05fSURdWydsb2dnZWQnXSk7CiAgICAgICAgICAgICAgICBmbV9zZXRfbXNnKGxuZygnTG9naW4gZmFpbGVkLiBJbnZhbGlkIHVzZXJuYW1lIG9yIHBhc3N3b3JkJyksICdlcnJvcicpOwogICAgICAgICAgICAgICAgZm1fcmVkaXJlY3QoRk1fU0VMRl9VUkwpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZm1fc2V0X21zZyhsbmcoJ3Bhc3N3b3JkX2hhc2ggbm90IHN1cHBvcnRlZCwgVXBncmFkZSBQSFAgdmVyc2lvbicpLCAnZXJyb3InKTs7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICAvLyBGb3JtCiAgICAgICAgdW5zZXQoJF9TRVNTSU9OW0ZNX1NFU1NJT05fSURdWydsb2dnZWQnXSk7CiAgICAgICAgZm1fc2hvd19oZWFkZXJfbG9naW4oKTsKPz4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iaC0xMDAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIgaC0xMDAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IGp1c3RpZnktY29udGVudC1tZC1jZW50ZXIgYWxpZ24tY29udGVudC1jZW50ZXIgaC0xMDB2aCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZCBmYXQiIGRhdGEtYnMtdGhlbWU9Ijw/cGhwIGVjaG8gRk1fVEhFTUU7ID8+Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9ImZvcm0tc2lnbmluIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBhdXRvY29tcGxldGU9Im9mZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnJhbmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIE0xMDA4IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyMzguMDAwMDAwIDE0MC4wMDAwMDAiIGFyaWEtbGFiZWw9IkgzSyBUaW55IEZpbGUgTWFuYWdlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLDE0MC4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiIGZpbGw9IiMwMDAwMDAiIHN0cm9rZT0ibm9uZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTYwIDcwMCBsMCAtNjAwIDExMCAwIDExMCAwIDAgMjYwIDAgMjYwIDcwIDAgNzAgMCAwIC0yNjAgMCAtMjYwIDExMCAwIDExMCAwIDAgNjAwIDAgNjAwIC0xMTAgMCAtMTEwIDAgMCAtMjYwIDAgLTI2MCAtNzAgMCAtNzAgMCAwIDI2MCAwIDI2MCAtMTEwIDAgLTExMCAwIDAgLTYwMHoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPSIjMDAzNTAwIiBkPSJNMTAwOCAxMjI3IGwtMTA4IC03MiAwIC0xMTcgMCAtMTE4IDExMCAwIDExMCAwIDAgMTEwIDAgMTEwIDcwIDAgNzAgMCAwIC0xODAgMCAtMTgwIC0xMjUgMCBjLTY5IDAgLTEyNSAtMyAtMTI1IC02IDAgLTMgMjMgLTM5IDUyIC04MCBsNTIgLTc0IDczIDAgNzMgMCAwIC0xODUgMCAtMTg1IC03MCAwIC03MCAwIDAgMTE1IDAgMTE1IC0xMTAgMCAtMTEwIDAgMCAtMTkwIDAgLTE5MCAxODEgMCAxODEgMCAxMDkgNzMgMTA4IDcyIDEgMTgxIDAgMTgxIC02OSA0OCAtNjggNDkgNjggNTAgNjkgNDkgMCAyNDkgMCAyNDggLTE4MiAtMSAtMTgzIDAgLTEwNyAtNzJ6IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE2NDAgNzAwIGwwIC02MDAgMTEwIDAgMTEwIDAgMCAyMDggMCAyMDggMzUgMzQgMzUgMzQgMzUgLTM0IDM1IC0zNCAwIC0yMDggMCAtMjA4IDExMCAwIDExMCAwIDAgMjEyIDAgMjEzIC04NyA4NyAtODggODggODggODggODcgODcgMCAyMTMgMCAyMTIgLTExMCAwIC0xMTAgMCAwIC0yMDggMCAtMjA4IC03MCAtNjkgLTcwIC02OSAwIDI3NyAwIDI3NyAtMTEwIDAgLTExMCAwIDAgLTYwMHoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0iY2FyZC10aXRsZSI+PD9waHAgZWNobyBBUFBfVElUTEU7ID8+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZm1fdXNyIiBjbGFzcz0icGItMiI+PD9waHAgZWNobyBsbmcoJ1VzZXJuYW1lJyk7ID8+PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0iZm1fdXNyIiBuYW1lPSJmbV91c3IiIHJlcXVpcmVkIGF1dG9mb2N1cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImZtX3B3ZCIgY2xhc3M9InBiLTIiPjw/cGhwIGVjaG8gbG5nKCdQYXNzd29yZCcpOyA/PjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJmbV9wd2QiIG5hbWU9ImZtX3B3ZCIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBmbV9zaG93X21lc3NhZ2UoKTsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRva2VuIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sZW50aXRpZXMoJF9TRVNTSU9OWyd0b2tlbiddKTsgPz4iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXN1Y2Nlc3MgYnRuLWJsb2NrIHctMTAwIG10LTQiIHJvbGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZWNobyBsbmcoJ0xvZ2luJyk7ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1kYXNoOyZtZGFzaDsgJmNvcHk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3RpbnlmaWxlbWFuYWdlci5naXRodWIuaW8vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRleHQtZGVjb3JhdGlvbi1ub25lIHRleHQtbXV0ZWQiIGRhdGEtdmVyc2lvbj0iPD9waHAgZWNobyBWRVJTSU9OOyA/PiI+Q0NQIFByb2dyYW1tZXJzPC9hPiAmbWRhc2g7Jm1kYXNoOwogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgPD9waHAKICAgICAgICBmbV9zaG93X2Zvb3Rlcl9sb2dpbigpOwogICAgICAgIGV4aXQ7CiAgICB9Cn0KCi8vIHVwZGF0ZSByb290IHBhdGgKaWYgKCR1c2VfYXV0aCAmJiBpc3NldCgkX1NFU1NJT05bRk1fU0VTU0lPTl9JRF1bJ2xvZ2dlZCddKSkgewogICAgJHJvb3RfcGF0aCA9IGlzc2V0KCRkaXJlY3Rvcmllc191c2Vyc1skX1NFU1NJT05bRk1fU0VTU0lPTl9JRF1bJ2xvZ2dlZCddXSkgPyAkZGlyZWN0b3JpZXNfdXNlcnNbJF9TRVNTSU9OW0ZNX1NFU1NJT05fSURdWydsb2dnZWQnXV0gOiAkcm9vdF9wYXRoOwp9CgovLyBjbGVhbiBhbmQgY2hlY2sgJHJvb3RfcGF0aAokcm9vdF9wYXRoID0gcnRyaW0oJHJvb3RfcGF0aCwgJ1xcLycpOwokcm9vdF9wYXRoID0gc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkcm9vdF9wYXRoKTsKaWYgKCFAaXNfZGlyKCRyb290X3BhdGgpKSB7CiAgICBlY2hvICI8aDE+IiAuIGxuZygnUm9vdCBwYXRoJykgLiAiIFwieyRyb290X3BhdGh9XCIgIiAuIGxuZygnbm90IGZvdW5kIScpIC4gIiA8L2gxPiI7CiAgICBleGl0Owp9CgpkZWZpbmVkKCdGTV9TSE9XX0hJRERFTicpIHx8IGRlZmluZSgnRk1fU0hPV19ISURERU4nLCAkc2hvd19oaWRkZW5fZmlsZXMpOwpkZWZpbmVkKCdGTV9ST09UX1BBVEgnKSB8fCBkZWZpbmUoJ0ZNX1JPT1RfUEFUSCcsICRyb290X3BhdGgpOwpkZWZpbmVkKCdGTV9MQU5HJykgfHwgZGVmaW5lKCdGTV9MQU5HJywgJGxhbmcpOwpkZWZpbmVkKCdGTV9GSUxFX0VYVEVOU0lPTicpIHx8IGRlZmluZSgnRk1fRklMRV9FWFRFTlNJT04nLCAkYWxsb3dlZF9maWxlX2V4dGVuc2lvbnMpOwpkZWZpbmVkKCdGTV9VUExPQURfRVhURU5TSU9OJykgfHwgZGVmaW5lKCdGTV9VUExPQURfRVhURU5TSU9OJywgJGFsbG93ZWRfdXBsb2FkX2V4dGVuc2lvbnMpOwpkZWZpbmVkKCdGTV9FWENMVURFX0lURU1TJykgfHwgZGVmaW5lKCdGTV9FWENMVURFX0lURU1TJywgKHZlcnNpb25fY29tcGFyZShQSFBfVkVSU0lPTiwgJzcuMC4wJywgJzwnKSA/IHNlcmlhbGl6ZSgkZXhjbHVkZV9pdGVtcykgOiAkZXhjbHVkZV9pdGVtcykpOwpkZWZpbmVkKCdGTV9ET0NfVklFV0VSJykgfHwgZGVmaW5lKCdGTV9ET0NfVklFV0VSJywgJG9ubGluZV92aWV3ZXIpOwpkZWZpbmUoJ0ZNX1JFQURPTkxZJywgJGdsb2JhbF9yZWFkb25seSB8fCAoJHVzZV9hdXRoICYmICFlbXB0eSgkcmVhZG9ubHlfdXNlcnMpICYmIGlzc2V0KCRfU0VTU0lPTltGTV9TRVNTSU9OX0lEXVsnbG9nZ2VkJ10pICYmIGluX2FycmF5KCRfU0VTU0lPTltGTV9TRVNTSU9OX0lEXVsnbG9nZ2VkJ10sICRyZWFkb25seV91c2VycykpKTsKZGVmaW5lKCdGTV9JU19XSU4nLCBESVJFQ1RPUllfU0VQQVJBVE9SID09ICdcXCcpOwoKLy8gYWx3YXlzIHVzZSA/cD0KaWYgKCFpc3NldCgkX0dFVFsncCddKSAmJiBlbXB0eSgkX0ZJTEVTKSkgewogICAgZm1fcmVkaXJlY3QoRk1fU0VMRl9VUkwgLiAnP3A9Jyk7Cn0KCi8vIGdldCBwYXRoCiRwID0gaXNzZXQoJF9HRVRbJ3AnXSkgPyAkX0dFVFsncCddIDogKGlzc2V0KCRfUE9TVFsncCddKSA/ICRfUE9TVFsncCddIDogJycpOwoKLy8gY2xlYW4gcGF0aAokcCA9IGZtX2NsZWFuX3BhdGgoJHApOwoKLy8gZm9yIGFqYXggcmVxdWVzdCAtIHNhdmUKJGlucHV0ID0gZmlsZV9nZXRfY29udGVudHMoJ3BocDovL2lucHV0Jyk7CiRfUE9TVCA9IChzdHJwb3MoJGlucHV0LCAnYWpheCcpICE9IEZBTFNFICYmIHN0cnBvcygkaW5wdXQsICdzYXZlJykgIT0gRkFMU0UpID8ganNvbl9kZWNvZGUoJGlucHV0LCB0cnVlKSA6ICRfUE9TVDsKCi8vIGluc3RlYWQgZ2xvYmFscyB2YXJzCmRlZmluZSgnRk1fUEFUSCcsICRwKTsKZGVmaW5lKCdGTV9VU0VfQVVUSCcsICR1c2VfYXV0aCk7CmRlZmluZSgnRk1fRURJVF9GSUxFJywgJGVkaXRfZmlsZXMpOwpkZWZpbmVkKCdGTV9JQ09OVl9JTlBVVF9FTkMnKSB8fCBkZWZpbmUoJ0ZNX0lDT05WX0lOUFVUX0VOQycsICRpY29udl9pbnB1dF9lbmNvZGluZyk7CmRlZmluZWQoJ0ZNX1VTRV9ISUdITElHSFRKUycpIHx8IGRlZmluZSgnRk1fVVNFX0hJR0hMSUdIVEpTJywgJHVzZV9oaWdobGlnaHRqcyk7CmRlZmluZWQoJ0ZNX0hJR0hMSUdIVEpTX1NUWUxFJykgfHwgZGVmaW5lKCdGTV9ISUdITElHSFRKU19TVFlMRScsICRoaWdobGlnaHRqc19zdHlsZSk7CmRlZmluZWQoJ0ZNX0RBVEVUSU1FX0ZPUk1BVCcpIHx8IGRlZmluZSgnRk1fREFURVRJTUVfRk9STUFUJywgJGRhdGV0aW1lX2Zvcm1hdCk7Cgp1bnNldCgkcCwgJHVzZV9hdXRoLCAkaWNvbnZfaW5wdXRfZW5jb2RpbmcsICR1c2VfaGlnaGxpZ2h0anMsICRoaWdobGlnaHRqc19zdHlsZSk7CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqIEFDVElPTlMgKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLy8gSGFuZGxlIGFsbCBBSkFYIFJlcXVlc3QKaWYgKChpc3NldCgkX1NFU1NJT05bRk1fU0VTU0lPTl9JRF1bJ2xvZ2dlZCddLCAkYXV0aF91c2Vyc1skX1NFU1NJT05bRk1fU0VTU0lPTl9JRF1bJ2xvZ2dlZCddXSkgfHwgIUZNX1VTRV9BVVRIKSAmJiBpc3NldCgkX1BPU1RbJ2FqYXgnXSwgJF9QT1NUWyd0b2tlbiddKSAmJiAhRk1fUkVBRE9OTFkpIHsKICAgIGlmICghdmVyaWZ5VG9rZW4oJF9QT1NUWyd0b2tlbiddKSkgewogICAgICAgIGhlYWRlcignSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCcpOwogICAgICAgIGRpZSgiSW52YWxpZCBUb2tlbi4iKTsKICAgIH0KCiAgICAvL3NlYXJjaCA6IGdldCBsaXN0IG9mIGZpbGVzIGZyb20gdGhlIGN1cnJlbnQgZm9sZGVyCiAgICBpZiAoaXNzZXQoJF9QT1NUWyd0eXBlJ10pICYmICRfUE9TVFsndHlwZSddID09ICJzZWFyY2giKSB7CiAgICAgICAgJGRpciA9ICRfUE9TVFsncGF0aCddID09ICIuIiA/ICcnIDogJF9QT1NUWydwYXRoJ107CiAgICAgICAgJHJlc3BvbnNlID0gc2NhbihmbV9jbGVhbl9wYXRoKCRkaXIpLCAkX1BPU1RbJ2NvbnRlbnQnXSk7CiAgICAgICAgZWNobyBqc29uX2VuY29kZSgkcmVzcG9uc2UpOwogICAgICAgIGV4aXQoKTsKICAgIH0KCiAgICAvLyBzYXZlIGVkaXRvciBmaWxlCiAgICBpZiAoaXNzZXQoJF9QT1NUWyd0eXBlJ10pICYmICRfUE9TVFsndHlwZSddID09ICJzYXZlIikgewogICAgICAgIC8vIGdldCBjdXJyZW50IHBhdGgKICAgICAgICAkcGF0aCA9IEZNX1JPT1RfUEFUSDsKICAgICAgICBpZiAoRk1fUEFUSCAhPSAnJykgewogICAgICAgICAgICAkcGF0aCAuPSAnLycgLiBGTV9QQVRIOwogICAgICAgIH0KICAgICAgICAvLyBjaGVjayBwYXRoCiAgICAgICAgaWYgKCFpc19kaXIoJHBhdGgpKSB7CiAgICAgICAgICAgIGZtX3JlZGlyZWN0KEZNX1NFTEZfVVJMIC4gJz9wPScpOwogICAgICAgIH0KICAgICAgICAkZmlsZSA9ICRfR0VUWydlZGl0J107CiAgICAgICAgJGZpbGUgPSBmbV9jbGVhbl9wYXRoKCRmaWxlKTsKICAgICAgICAkZmlsZSA9IHN0cl9yZXBsYWNlKCcvJywgJycsICRmaWxlKTsKICAgICAgICBpZiAoJGZpbGUgPT0gJycgfHwgIWlzX2ZpbGUoJHBhdGggLiAnLycgLiAkZmlsZSkpIHsKICAgICAgICAgICAgZm1fc2V0X21zZyhsbmcoJ0ZpbGUgbm90IGZvdW5kJyksICdlcnJvcicpOwogICAgICAgICAgICAkRk1fUEFUSCA9IEZNX1BBVEg7CiAgICAgICAgICAgIGZtX3JlZGlyZWN0KEZNX1NFTEZfVVJMIC4gJz9wPScgLiB1cmxlbmNvZGUoJEZNX1BBVEgpKTsKICAgICAgICB9CiAgICAgICAgaGVhZGVyKCdYLVhTUy1Qcm90ZWN0aW9uOjAnKTsKICAgICAgICAkZmlsZV9wYXRoID0gJHBhdGggLiAnLycgLiAkZmlsZTsKCiAgICAgICAgJHdyaXRlZGF0YSA9ICRfUE9TVFsnY29udGVudCddOwogICAgICAgICRmZCA9IGZvcGVuKCRmaWxlX3BhdGgsICJ3Iik7CiAgICAgICAgJHdyaXRlX3Jlc3VsdHMgPSBAZndyaXRlKCRmZCwgJHdyaXRlZGF0YSk7CiAgICAgICAgZmNsb3NlKCRmZCk7CiAgICAgICAgaWYgKCR3cml0ZV9yZXN1bHRzID09PSBmYWxzZSkgewogICAgICAgICAgICBoZWFkZXIoIkhUVFAvMS4xIDUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IiKTsKICAgICAgICAgICAgZGllKCJDb3VsZCBOb3QgV3JpdGUgRmlsZSEgLSBDaGVjayBQZXJtaXNzaW9ucyAvIE93bmVyc2hpcCIpOwogICAgICAgIH0KICAgICAgICBkaWUodHJ1ZSk7CiAgICB9CgogICAgLy8gYmFja3VwIGZpbGVzCiAgICBpZiAoaXNzZXQoJF9QT1NUWyd0eXBlJ10pICYmICRfUE9TVFsndHlwZSddID09ICJiYWNrdXAiICYmICFlbXB0eSgkX1BPU1RbJ2ZpbGUnXSkpIHsKICAgICAgICAkZmlsZU5hbWUgPSBmbV9jbGVhbl9wYXRoKCRfUE9TVFsnZmlsZSddKTsKICAgICAgICAkZnVsbFBhdGggPSBGTV9ST09UX1BBVEggLiAnLyc7CiAgICAgICAgaWYgKCFlbXB0eSgkX1BPU1RbJ3BhdGgnXSkpIHsKICAgICAgICAgICAgJHJlbGF0aXZlRGlyUGF0aCA9IGZtX2NsZWFuX3BhdGgoJF9QT1NUWydwYXRoJ10pOwogICAgICAgICAgICAkZnVsbFBhdGggLj0gInskcmVsYXRpdmVEaXJQYXRofS8iOwogICAgICAgIH0KICAgICAgICAkZGF0ZSA9IGRhdGUoImRNeS1IaXMiKTsKICAgICAgICAkbmV3RmlsZU5hbWUgPSAieyRmaWxlTmFtZX0teyRkYXRlfS5iYWsiOwogICAgICAgICRmdWxseVF1YWxpZmllZEZpbGVOYW1lID0gJGZ1bGxQYXRoIC4gJGZpbGVOYW1lOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoJGZ1bGx5UXVhbGlmaWVkRmlsZU5hbWUpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJGaWxlIHskZmlsZU5hbWV9IG5vdCBmb3VuZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjb3B5KCRmdWxseVF1YWxpZmllZEZpbGVOYW1lLCAkZnVsbFBhdGggLiAkbmV3RmlsZU5hbWUpKSB7CiAgICAgICAgICAgICAgICBlY2hvICJCYWNrdXAgeyRuZXdGaWxlTmFtZX0gY3JlYXRlZCI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29weSBmaWxlIHskZmlsZU5hbWV9Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgZWNobyAkZS0+Z2V0TWVzc2FnZSgpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBTYXZlIENvbmZpZwogICAgaWYgKGlzc2V0KCRfUE9TVFsndHlwZSddKSAmJiAkX1BPU1RbJ3R5cGUnXSA9PSAic2V0dGluZ3MiKSB7CiAgICAgICAgZ2xvYmFsICRjZmcsICRsYW5nLCAkcmVwb3J0X2Vycm9ycywgJHNob3dfaGlkZGVuX2ZpbGVzLCAkbGFuZ19saXN0LCAkaGlkZV9Db2xzLCAkdGhlbWU7CiAgICAgICAgJG5ld0xuZyA9ICRfUE9TVFsnanMtbGFuZ3VhZ2UnXTsKICAgICAgICBmbV9nZXRfdHJhbnNsYXRpb25zKFtdKTsKICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMoJG5ld0xuZywgJGxhbmdfbGlzdCkpIHsKICAgICAgICAgICAgJG5ld0xuZyA9ICdlbic7CiAgICAgICAgfQoKICAgICAgICAkZXJwID0gaXNzZXQoJF9QT1NUWydqcy1lcnJvci1yZXBvcnQnXSkgJiYgJF9QT1NUWydqcy1lcnJvci1yZXBvcnQnXSA9PSAidHJ1ZSIgPyB0cnVlIDogZmFsc2U7CiAgICAgICAgJHNoZiA9IGlzc2V0KCRfUE9TVFsnanMtc2hvdy1oaWRkZW4nXSkgJiYgJF9QT1NUWydqcy1zaG93LWhpZGRlbiddID09ICJ0cnVlIiA/IHRydWUgOiBmYWxzZTsKICAgICAgICAkaGNvID0gaXNzZXQoJF9QT1NUWydqcy1oaWRlLWNvbHMnXSkgJiYgJF9QT1NUWydqcy1oaWRlLWNvbHMnXSA9PSAidHJ1ZSIgPyB0cnVlIDogZmFsc2U7CiAgICAgICAgJHRlMyA9ICRfUE9TVFsnanMtdGhlbWUtMyddOwoKICAgICAgICBpZiAoJGNmZy0+ZGF0YVsnbGFuZyddICE9ICRuZXdMbmcpIHsKICAgICAgICAgICAgJGNmZy0+ZGF0YVsnbGFuZyddID0gJG5ld0xuZzsKICAgICAgICAgICAgJGxhbmcgPSAkbmV3TG5nOwogICAgICAgIH0KICAgICAgICBpZiAoJGNmZy0+ZGF0YVsnZXJyb3JfcmVwb3J0aW5nJ10gIT0gJGVycCkgewogICAgICAgICAgICAkY2ZnLT5kYXRhWydlcnJvcl9yZXBvcnRpbmcnXSA9ICRlcnA7CiAgICAgICAgICAgICRyZXBvcnRfZXJyb3JzID0gJGVycDsKICAgICAgICB9CiAgICAgICAgaWYgKCRjZmctPmRhdGFbJ3Nob3dfaGlkZGVuJ10gIT0gJHNoZikgewogICAgICAgICAgICAkY2ZnLT5kYXRhWydzaG93X2hpZGRlbiddID0gJHNoZjsKICAgICAgICAgICAgJHNob3dfaGlkZGVuX2ZpbGVzID0gJHNoZjsKICAgICAgICB9CiAgICAgICAgaWYgKCRjZmctPmRhdGFbJ3Nob3dfaGlkZGVuJ10gIT0gJHNoZikgewogICAgICAgICAgICAkY2ZnLT5kYXRhWydzaG93X2hpZGRlbiddID0gJHNoZjsKICAgICAgICAgICAgJHNob3dfaGlkZGVuX2ZpbGVzID0gJHNoZjsKICAgICAgICB9CiAgICAgICAgaWYgKCRjZmctPmRhdGFbJ2hpZGVfQ29scyddICE9ICRoY28pIHsKICAgICAgICAgICAgJGNmZy0+ZGF0YVsnaGlkZV9Db2xzJ10gPSAkaGNvOwogICAgICAgICAgICAkaGlkZV9Db2xzID0gJGhjbzsKICAgICAgICB9CiAgICAgICAgaWYgKCRjZmctPmRhdGFbJ3RoZW1lJ10gIT0gJHRlMykgewogICAgICAgICAgICAkY2ZnLT5kYXRhWyd0aGVtZSddID0gJHRlMzsKICAgICAgICAgICAgJHRoZW1lID0gJHRlMzsKICAgICAgICB9CiAgICAgICAgJGNmZy0+c2F2ZSgpOwogICAgICAgIGVjaG8gdHJ1ZTsKICAgIH0KCiAgICAvLyBuZXcgcGFzc3dvcmQgaGFzaAogICAgaWYgKGlzc2V0KCRfUE9TVFsndHlwZSddKSAmJiAkX1BPU1RbJ3R5cGUnXSA9PSAicHdkaGFzaCIpIHsKICAgICAgICAkcmVzID0gaXNzZXQoJF9QT1NUWydpbnB1dFBhc3N3b3JkMiddKSAmJiAhZW1wdHkoJF9QT1NUWydpbnB1dFBhc3N3b3JkMiddKSA/IHBhc3N3b3JkX2hhc2goJF9QT1NUWydpbnB1dFBhc3N3b3JkMiddLCBQQVNTV09SRF9ERUZBVUxUKSA6ICcnOwogICAgICAgIGVjaG8gJHJlczsKICAgIH0KCiAgICAvL3VwbG9hZCB1c2luZyB1cmwKICAgIGlmIChpc3NldCgkX1BPU1RbJ3R5cGUnXSkgJiYgJF9QT1NUWyd0eXBlJ10gPT0gInVwbG9hZCIgJiYgIWVtcHR5KCRfUkVRVUVTVFsidXBsb2FkdXJsIl0pKSB7CiAgICAgICAgJHBhdGggPSBGTV9ST09UX1BBVEg7CiAgICAgICAgaWYgKEZNX1BBVEggIT0gJycpIHsKICAgICAgICAgICAgJHBhdGggLj0gJy8nIC4gRk1fUEFUSDsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGV2ZW50X2NhbGxiYWNrKCRtZXNzYWdlKQogICAgICAgIHsKICAgICAgICAgICAgZ2xvYmFsICRjYWxsYmFjazsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZSgkbWVzc2FnZSk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBnZXRfZmlsZV9wYXRoKCkKICAgICAgICB7CiAgICAgICAgICAgIGdsb2JhbCAkcGF0aCwgJGZpbGVpbmZvLCAkdGVtcF9maWxlOwogICAgICAgICAgICByZXR1cm4gJHBhdGggLiAiLyIgLiBiYXNlbmFtZSgkZmlsZWluZm8tPm5hbWUpOwogICAgICAgIH0KCiAgICAgICAgJHVybCA9ICFlbXB0eSgkX1JFUVVFU1RbInVwbG9hZHVybCJdKSAmJiBwcmVnX21hdGNoKCJ8Xmh0dHAocyk/Oi8vLiskfCIsIHN0cmlwc2xhc2hlcygkX1JFUVVFU1RbInVwbG9hZHVybCJdKSkgPyBzdHJpcHNsYXNoZXMoJF9SRVFVRVNUWyJ1cGxvYWR1cmwiXSkgOiBudWxsOwoKICAgICAgICAvL3ByZXZlbnQgMTI3LiogZG9tYWluIGFuZCBrbm93biBwb3J0cwogICAgICAgICRkb21haW4gPSBwYXJzZV91cmwoJHVybCwgUEhQX1VSTF9IT1NUKTsKICAgICAgICAkcG9ydCA9IHBhcnNlX3VybCgkdXJsLCBQSFBfVVJMX1BPUlQpOwogICAgICAgICRrbm93blBvcnRzID0gWzIyLCAyMywgMjUsIDMzMDZdOwoKICAgICAgICBpZiAocHJlZ19tYXRjaCgiL15sb2NhbGhvc3QkfF4xMjcoPzpcLlswLTldKyl7MCwyfVwuWzAtOV0rJHxeKD86MCpcOikqPzo/MCoxJC9pIiwgJGRvbWFpbikgfHwgaW5fYXJyYXkoJHBvcnQsICRrbm93blBvcnRzKSkgewogICAgICAgICAgICAkZXJyID0gYXJyYXkoIm1lc3NhZ2UiID0+ICJVUkwgaXMgbm90IGFsbG93ZWQiKTsKICAgICAgICAgICAgZXZlbnRfY2FsbGJhY2soYXJyYXkoImZhaWwiID0+ICRlcnIpKTsKICAgICAgICAgICAgZXhpdCgpOwogICAgICAgIH0KCiAgICAgICAgJHVzZV9jdXJsID0gZmFsc2U7CiAgICAgICAgJHRlbXBfZmlsZSA9IHRlbXBuYW0oc3lzX2dldF90ZW1wX2RpcigpLCAidXBsb2FkLSIpOwogICAgICAgICRmaWxlaW5mbyA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICRmaWxlaW5mby0+bmFtZSA9IHRyaW0odXJsZGVjb2RlKGJhc2VuYW1lKCR1cmwpKSwgIi5ceDAwLi5ceDIwIik7CgogICAgICAgICRhbGxvd2VkID0gKEZNX1VQTE9BRF9FWFRFTlNJT04pID8gZXhwbG9kZSgnLCcsIEZNX1VQTE9BRF9FWFRFTlNJT04pIDogZmFsc2U7CiAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIocGF0aGluZm8oJGZpbGVpbmZvLT5uYW1lLCBQQVRISU5GT19FWFRFTlNJT04pKTsKICAgICAgICAkaXNGaWxlQWxsb3dlZCA9ICgkYWxsb3dlZCkgPyBpbl9hcnJheSgkZXh0LCAkYWxsb3dlZCkgOiB0cnVlOwoKICAgICAgICAkZXJyID0gZmFsc2U7CgogICAgICAgIGlmICghJGlzRmlsZUFsbG93ZWQpIHsKICAgICAgICAgICAgJGVyciA9IGFycmF5KCJtZXNzYWdlIiA9PiAiRmlsZSBleHRlbnNpb24gaXMgbm90IGFsbG93ZWQiKTsKICAgICAgICAgICAgZXZlbnRfY2FsbGJhY2soYXJyYXkoImZhaWwiID0+ICRlcnIpKTsKICAgICAgICAgICAgZXhpdCgpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEkdXJsKSB7CiAgICAgICAgICAgICRzdWNjZXNzID0gZmFsc2U7CiAgICAgICAgfSBlbHNlIGlmICgkdXNlX2N1cmwpIHsKICAgICAgICAgICAgQCRmcCA9IGZvcGVuKCR0ZW1wX2ZpbGUsICJ3Iik7CiAgICAgICAgICAgIEAkY2ggPSBjdXJsX2luaXQoJHVybCk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9OT1BST0dSRVNTLCBmYWxzZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GSUxFLCAkZnApOwogICAgICAgICAgICBAJHN1Y2Nlc3MgPSBjdXJsX2V4ZWMoJGNoKTsKICAgICAgICAgICAgJGN1cmxfaW5mbyA9IGN1cmxfZ2V0aW5mbygkY2gpOwogICAgICAgICAgICBpZiAoISRzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAkZXJyID0gYXJyYXkoIm1lc3NhZ2UiID0+IGN1cmxfZXJyb3IoJGNoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICAgICAgZmNsb3NlKCRmcCk7CiAgICAgICAgICAgICRmaWxlaW5mby0+c2l6ZSA9ICRjdXJsX2luZm9bInNpemVfZG93bmxvYWQiXTsKICAgICAgICAgICAgJGZpbGVpbmZvLT50eXBlID0gJGN1cmxfaW5mb1siY29udGVudF90eXBlIl07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGN0eCA9IHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgpOwogICAgICAgICAgICBAJHN1Y2Nlc3MgPSBjb3B5KCR1cmwsICR0ZW1wX2ZpbGUsICRjdHgpOwogICAgICAgICAgICBpZiAoISRzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAkZXJyID0gZXJyb3JfZ2V0X2xhc3QoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRzdWNjZXNzKSB7CiAgICAgICAgICAgICRzdWNjZXNzID0gcmVuYW1lKCR0ZW1wX2ZpbGUsIHN0cnRvayhnZXRfZmlsZV9wYXRoKCksICc/JykpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRzdWNjZXNzKSB7CiAgICAgICAgICAgIGV2ZW50X2NhbGxiYWNrKGFycmF5KCJkb25lIiA9PiAkZmlsZWluZm8pKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB1bmxpbmsoJHRlbXBfZmlsZSk7CiAgICAgICAgICAgIGlmICghJGVycikgewogICAgICAgICAgICAgICAgJGVyciA9IGFycmF5KCJtZXNzYWdlIiA9PiAiSW52YWxpZCB1cmwgcGFyYW1ldGVyIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXZlbnRfY2FsbGJhY2soYXJyYXkoImZhaWwiID0+ICRlcnIpKTsKICAgICAgICB9CiAgICB9CiAgICBleGl0KCk7Cn0KCi8vIERlbGV0ZSBmaWxlIC8gZm9sZGVyCmlmIChpc3NldCgkX0dFVFsnZGVsJ10sICRfUE9TVFsndG9rZW4nXSkgJiYgIUZNX1JFQURPTkxZKSB7CiAgICAkZGVsID0gc3RyX3JlcGxhY2UoJy8nLCAnJywgZm1fY2xlYW5fcGF0aCgkX0dFVFsnZGVsJ10pKTsKICAgIGlmICgkZGVsICE9ICcnICYmICRkZWwgIT0gJy4uJyAmJiAkZGVsICE9ICcuJyAmJiB2ZXJpZnlUb2tlbigkX1BPU1RbJ3Rva2VuJ10pKSB7CiAgICAgICAgJHBhdGggPSBGTV9ST09UX1BBVEg7CiAgICAgICAgaWYgKEZNX1BBVEggIT0gJycpIHsKICAgICAgICAgICAgJHBhdGggLj0gJy8nIC4gRk1fUEFUSDsKICAgICAgICB9CiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkcGF0aCAuICcvJyAuICRkZWwpOwogICAgICAgIGlmIChmbV9yZGVsZXRlKCRwYXRoIC4gJy8nIC4gJGRlbCkpIHsKICAgICAgICAgICAgJG1zZyA9ICRpc19kaXIgPyBsbmcoJ0ZvbGRlcicpIC4gJyA8Yj4lczwvYj4gJyAuIGxuZygnRGVsZXRlZCcpIDogbG5nKCdGaWxlJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCdEZWxldGVkJyk7CiAgICAgICAgICAgIGZtX3NldF9tc2coc3ByaW50ZigkbXNnLCBmbV9lbmMoJGRlbCkpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkbXNnID0gJGlzX2RpciA/IGxuZygnRm9sZGVyJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCdub3QgZGVsZXRlZCcpIDogbG5nKCdGaWxlJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCdub3QgZGVsZXRlZCcpOwogICAgICAgICAgICBmbV9zZXRfbXNnKHNwcmludGYoJG1zZywgZm1fZW5jKCRkZWwpKSwgJ2Vycm9yJyk7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBmbV9zZXRfbXNnKGxuZygnSW52YWxpZCBmaWxlIG9yIGZvbGRlciBuYW1lJyksICdlcnJvcicpOwogICAgfQogICAgJEZNX1BBVEggPSBGTV9QQVRIOwogICAgZm1fcmVkaXJlY3QoRk1fU0VMRl9VUkwgLiAnP3A9JyAuIHVybGVuY29kZSgkRk1fUEFUSCkpOwp9CgovLyBDcmVhdGUgYSBuZXcgZmlsZS9mb2xkZXIKaWYgKGlzc2V0KCRfUE9TVFsnbmV3ZmlsZW5hbWUnXSwgJF9QT1NUWyduZXdmaWxlJ10sICRfUE9TVFsndG9rZW4nXSkgJiYgIUZNX1JFQURPTkxZKSB7CiAgICAkdHlwZSA9IHVybGRlY29kZSgkX1BPU1RbJ25ld2ZpbGUnXSk7CiAgICAkbmV3ID0gc3RyX3JlcGxhY2UoJy8nLCAnJywgZm1fY2xlYW5fcGF0aChzdHJpcF90YWdzKCRfUE9TVFsnbmV3ZmlsZW5hbWUnXSkpKTsKICAgIGlmIChmbV9pc3ZhbGlkX2ZpbGVuYW1lKCRuZXcpICYmICRuZXcgIT0gJycgJiYgJG5ldyAhPSAnLi4nICYmICRuZXcgIT0gJy4nICYmIHZlcmlmeVRva2VuKCRfUE9TVFsndG9rZW4nXSkpIHsKICAgICAgICAkcGF0aCA9IEZNX1JPT1RfUEFUSDsKICAgICAgICBpZiAoRk1fUEFUSCAhPSAnJykgewogICAgICAgICAgICAkcGF0aCAuPSAnLycgLiBGTV9QQVRIOwogICAgICAgIH0KICAgICAgICBpZiAoJHR5cGUgPT0gImZpbGUiKSB7CiAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoJHBhdGggLiAnLycgLiAkbmV3KSkgewogICAgICAgICAgICAgICAgaWYgKGZtX2lzX3ZhbGlkX2V4dCgkbmV3KSkgewogICAgICAgICAgICAgICAgICAgIEBmb3BlbigkcGF0aCAuICcvJyAuICRuZXcsICd3Jykgb3IgZGllKCdDYW5ub3Qgb3BlbiBmaWxlOiAgJyAuICRuZXcpOwogICAgICAgICAgICAgICAgICAgIGZtX3NldF9tc2coc3ByaW50ZihsbmcoJ0ZpbGUnKSAuICcgPGI+JXM8L2I+ICcgLiBsbmcoJ0NyZWF0ZWQnKSwgZm1fZW5jKCRuZXcpKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGZtX3NldF9tc2cobG5nKCdGaWxlIGV4dGVuc2lvbiBpcyBub3QgYWxsb3dlZCcpLCAnZXJyb3InKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGZtX3NldF9tc2coc3ByaW50ZihsbmcoJ0ZpbGUnKSAuICcgPGI+JXM8L2I+ICcgLiBsbmcoJ2FscmVhZHkgZXhpc3RzJyksIGZtX2VuYygkbmV3KSksICdhbGVydCcpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGZtX21rZGlyKCRwYXRoIC4gJy8nIC4gJG5ldywgZmFsc2UpID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBmbV9zZXRfbXNnKHNwcmludGYobG5nKCdGb2xkZXInKSAuICcgPGI+JXM8L2I+ICcgLiBsbmcoJ0NyZWF0ZWQnKSwgJG5ldykpOwogICAgICAgICAgICB9IGVsc2VpZiAoZm1fbWtkaXIoJHBhdGggLiAnLycgLiAkbmV3LCBmYWxzZSkgPT09ICRwYXRoIC4gJy8nIC4gJG5ldykgewogICAgICAgICAgICAgICAgZm1fc2V0X21zZyhzcHJpbnRmKGxuZygnRm9sZGVyJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCdhbHJlYWR5IGV4aXN0cycpLCBmbV9lbmMoJG5ldykpLCAnYWxlcnQnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGZtX3NldF9tc2coc3ByaW50ZihsbmcoJ0ZvbGRlcicpIC4gJyA8Yj4lczwvYj4gJyAuIGxuZygnbm90IGNyZWF0ZWQnKSwgZm1fZW5jKCRuZXcpKSwgJ2Vycm9yJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGZtX3NldF9tc2cobG5nKCdJbnZhbGlkIGNoYXJhY3RlcnMgaW4gZmlsZSBvciBmb2xkZXIgbmFtZScpLCAnZXJyb3InKTsKICAgIH0KICAgICRGTV9QQVRIID0gRk1fUEFUSDsKICAgIGZtX3JlZGlyZWN0KEZNX1NFTEZfVVJMIC4gJz9wPScgLiB1cmxlbmNvZGUoJEZNX1BBVEgpKTsKfQoKLy8gQ29weSBmb2xkZXIgLyBmaWxlCmlmIChpc3NldCgkX0dFVFsnY29weSddLCAkX0dFVFsnZmluaXNoJ10pICYmICFGTV9SRUFET05MWSkgewogICAgLy8gZnJvbQogICAgJGNvcHkgPSB1cmxkZWNvZGUoJF9HRVRbJ2NvcHknXSk7CiAgICAkY29weSA9IGZtX2NsZWFuX3BhdGgoJGNvcHkpOwogICAgLy8gZW1wdHkgcGF0aAogICAgaWYgKCRjb3B5ID09ICcnKSB7CiAgICAgICAgZm1fc2V0X21zZyhsbmcoJ1NvdXJjZSBwYXRoIG5vdCBkZWZpbmVkJyksICdlcnJvcicpOwogICAgICAgICRGTV9QQVRIID0gRk1fUEFUSDsKICAgICAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7CiAgICB9CiAgICAvLyBhYnMgcGF0aCBmcm9tCiAgICAkZnJvbSA9IEZNX1JPT1RfUEFUSCAuICcvJyAuICRjb3B5OwogICAgLy8gYWJzIHBhdGggdG8KICAgICRkZXN0ID0gRk1fUk9PVF9QQVRIOwogICAgaWYgKEZNX1BBVEggIT0gJycpIHsKICAgICAgICAkZGVzdCAuPSAnLycgLiBGTV9QQVRIOwogICAgfQogICAgJGRlc3QgLj0gJy8nIC4gYmFzZW5hbWUoJGZyb20pOwogICAgLy8gbW92ZT8KICAgICRtb3ZlID0gaXNzZXQoJF9HRVRbJ21vdmUnXSk7CiAgICAkbW92ZSA9IGZtX2NsZWFuX3BhdGgodXJsZGVjb2RlKCRtb3ZlKSk7CiAgICAvLyBjb3B5L21vdmUvZHVwbGljYXRlCiAgICBpZiAoJGZyb20gIT0gJGRlc3QpIHsKICAgICAgICAkbXNnX2Zyb20gPSB0cmltKEZNX1BBVEggLiAnLycgLiBiYXNlbmFtZSgkZnJvbSksICcvJyk7CiAgICAgICAgaWYgKCRtb3ZlKSB7IC8vIE1vdmUgYW5kIHRvICE9IGZyb20gc28ganVzdCBwZXJmb3JtIG1vdmUKICAgICAgICAgICAgJHJlbmFtZSA9IGZtX3JlbmFtZSgkZnJvbSwgJGRlc3QpOwogICAgICAgICAgICBpZiAoJHJlbmFtZSkgewogICAgICAgICAgICAgICAgZm1fc2V0X21zZyhzcHJpbnRmKGxuZygnTW92ZWQgZnJvbScpIC4gJyA8Yj4lczwvYj4gJyAuIGxuZygndG8nKSAuICcgPGI+JXM8L2I+JywgZm1fZW5jKCRjb3B5KSwgZm1fZW5jKCRtc2dfZnJvbSkpKTsKICAgICAgICAgICAgfSBlbHNlaWYgKCRyZW5hbWUgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGZtX3NldF9tc2cobG5nKCdGaWxlIG9yIGZvbGRlciB3aXRoIHRoaXMgcGF0aCBhbHJlYWR5IGV4aXN0cycpLCAnYWxlcnQnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGZtX3NldF9tc2coc3ByaW50ZihsbmcoJ0Vycm9yIHdoaWxlIG1vdmluZyBmcm9tJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCd0bycpIC4gJyA8Yj4lczwvYj4nLCBmbV9lbmMoJGNvcHkpLCBmbV9lbmMoJG1zZ19mcm9tKSksICdlcnJvcicpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsgLy8gTm90IG1vdmUgYW5kIHRvICE9IGZyb20gc28gY29weSB3aXRoIG9yaWdpbmFsIG5hbWUKICAgICAgICAgICAgaWYgKGZtX3Jjb3B5KCRmcm9tLCAkZGVzdCkpIHsKICAgICAgICAgICAgICAgIGZtX3NldF9tc2coc3ByaW50ZihsbmcoJ0NvcGllZCBmcm9tJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCd0bycpIC4gJyA8Yj4lczwvYj4nLCBmbV9lbmMoJGNvcHkpLCBmbV9lbmMoJG1zZ19mcm9tKSkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZm1fc2V0X21zZyhzcHJpbnRmKGxuZygnRXJyb3Igd2hpbGUgY29weWluZyBmcm9tJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCd0bycpIC4gJyA8Yj4lczwvYj4nLCBmbV9lbmMoJGNvcHkpLCBmbV9lbmMoJG1zZ19mcm9tKSksICdlcnJvcicpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBpZiAoISRtb3ZlKSB7IC8vTm90IG1vdmUgYW5kIHRvID0gZnJvbSBzbyBkdXBsaWNhdGUKICAgICAgICAgICAgJG1zZ19mcm9tID0gdHJpbShGTV9QQVRIIC4gJy8nIC4gYmFzZW5hbWUoJGZyb20pLCAnLycpOwogICAgICAgICAgICAkZm5fcGFydHMgPSBwYXRoaW5mbygkZnJvbSk7CiAgICAgICAgICAgICRleHRlbnNpb25fc3VmZml4ID0gJyc7CiAgICAgICAgICAgIGlmICghaXNfZGlyKCRmcm9tKSkgewogICAgICAgICAgICAgICAgJGV4dGVuc2lvbl9zdWZmaXggPSAnLicgLiAkZm5fcGFydHNbJ2V4dGVuc2lvbiddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vQ3JlYXRlIG5ldyBuYW1lIGZvciBkdXBsaWNhdGUKICAgICAgICAgICAgJGZuX2R1cGxpY2F0ZSA9ICRmbl9wYXJ0c1snZGlybmFtZSddIC4gJy8nIC4gJGZuX3BhcnRzWydmaWxlbmFtZSddIC4gJy0nIC4gZGF0ZSgnWW1kSGlzJykgLiAkZXh0ZW5zaW9uX3N1ZmZpeDsKICAgICAgICAgICAgJGxvb3BfY291bnQgPSAwOwogICAgICAgICAgICAkbWF4X2xvb3AgPSAxMDAwOwogICAgICAgICAgICAvLyBDaGVjayBpZiBhIGZpbGUgd2l0aCB0aGUgZHVwbGljYXRlIG5hbWUgYWxyZWFkeSBleGlzdHMsIGlmIHNvLCBtYWtlIG5ldyBuYW1lIChlZGdlIGNhc2UuLi4pCiAgICAgICAgICAgIHdoaWxlIChmaWxlX2V4aXN0cygkZm5fZHVwbGljYXRlKSAmICRsb29wX2NvdW50IDwgJG1heF9sb29wKSB7CiAgICAgICAgICAgICAgICAkZm5fcGFydHMgPSBwYXRoaW5mbygkZm5fZHVwbGljYXRlKTsKICAgICAgICAgICAgICAgICRmbl9kdXBsaWNhdGUgPSAkZm5fcGFydHNbJ2Rpcm5hbWUnXSAuICcvJyAuICRmbl9wYXJ0c1snZmlsZW5hbWUnXSAuICctY29weScgLiAkZXh0ZW5zaW9uX3N1ZmZpeDsKICAgICAgICAgICAgICAgICRsb29wX2NvdW50Kys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGZtX3Jjb3B5KCRmcm9tLCAkZm5fZHVwbGljYXRlLCBGYWxzZSkpIHsKICAgICAgICAgICAgICAgIGZtX3NldF9tc2coc3ByaW50ZignQ29waWVkIGZyb20gPGI+JXM8L2I+IHRvIDxiPiVzPC9iPicsIGZtX2VuYygkY29weSksIGZtX2VuYygkZm5fZHVwbGljYXRlKSkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZm1fc2V0X21zZyhzcHJpbnRmKCdFcnJvciB3aGlsZSBjb3B5aW5nIGZyb20gPGI+JXM8L2I+IHRvIDxiPiVzPC9iPicsIGZtX2VuYygkY29weSksIGZtX2VuYygkZm5fZHVwbGljYXRlKSksICdlcnJvcicpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZm1fc2V0X21zZyhsbmcoJ1BhdGhzIG11c3QgYmUgbm90IGVxdWFsJyksICdhbGVydCcpOwogICAgICAgIH0KICAgIH0KICAgICRGTV9QQVRIID0gRk1fUEFUSDsKICAgIGZtX3JlZGlyZWN0KEZNX1NFTEZfVVJMIC4gJz9wPScgLiB1cmxlbmNvZGUoJEZNX1BBVEgpKTsKfQoKLy8gTWFzcyBjb3B5IGZpbGVzLyBmb2xkZXJzCmlmIChpc3NldCgkX1BPU1RbJ2ZpbGUnXSwgJF9QT1NUWydjb3B5X3RvJ10sICRfUE9TVFsnZmluaXNoJ10sICRfUE9TVFsndG9rZW4nXSkgJiYgIUZNX1JFQURPTkxZKSB7CgogICAgaWYgKCF2ZXJpZnlUb2tlbigkX1BPU1RbJ3Rva2VuJ10pKSB7CiAgICAgICAgZm1fc2V0X21zZyhsbmcoJ0ludmFsaWQgVG9rZW4uJyksICdlcnJvcicpOwogICAgfQoKICAgIC8vIGZyb20KICAgICRwYXRoID0gRk1fUk9PVF9QQVRIOwogICAgaWYgKEZNX1BBVEggIT0gJycpIHsKICAgICAgICAkcGF0aCAuPSAnLycgLiBGTV9QQVRIOwogICAgfQogICAgLy8gdG8KICAgICRjb3B5X3RvX3BhdGggPSBGTV9ST09UX1BBVEg7CiAgICAkY29weV90byA9IGZtX2NsZWFuX3BhdGgoJF9QT1NUWydjb3B5X3RvJ10pOwogICAgaWYgKCRjb3B5X3RvICE9ICcnKSB7CiAgICAgICAgJGNvcHlfdG9fcGF0aCAuPSAnLycgLiAkY29weV90bzsKICAgIH0KICAgIGlmICgkcGF0aCA9PSAkY29weV90b19wYXRoKSB7CiAgICAgICAgZm1fc2V0X21zZyhsbmcoJ1BhdGhzIG11c3QgYmUgbm90IGVxdWFsJyksICdhbGVydCcpOwogICAgICAgICRGTV9QQVRIID0gRk1fUEFUSDsKICAgICAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7CiAgICB9CiAgICBpZiAoIWlzX2RpcigkY29weV90b19wYXRoKSkgewogICAgICAgIGlmICghZm1fbWtkaXIoJGNvcHlfdG9fcGF0aCwgdHJ1ZSkpIHsKICAgICAgICAgICAgZm1fc2V0X21zZygnVW5hYmxlIHRvIGNyZWF0ZSBkZXN0aW5hdGlvbiBmb2xkZXInLCAnZXJyb3InKTsKICAgICAgICAgICAgJEZNX1BBVEggPSBGTV9QQVRIOwogICAgICAgICAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7CiAgICAgICAgfQogICAgfQogICAgLy8gbW92ZT8KICAgICRtb3ZlID0gaXNzZXQoJF9QT1NUWydtb3ZlJ10pOwogICAgLy8gY29weS9tb3ZlCiAgICAkZXJyb3JzID0gMDsKICAgICRmaWxlcyA9ICRfUE9TVFsnZmlsZSddOwogICAgaWYgKGlzX2FycmF5KCRmaWxlcykgJiYgY291bnQoJGZpbGVzKSkgewogICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZikgewogICAgICAgICAgICBpZiAoJGYgIT0gJycpIHsKICAgICAgICAgICAgICAgICRmID0gZm1fY2xlYW5fcGF0aCgkZik7CiAgICAgICAgICAgICAgICAvLyBhYnMgcGF0aCBmcm9tCiAgICAgICAgICAgICAgICAkZnJvbSA9ICRwYXRoIC4gJy8nIC4gJGY7CiAgICAgICAgICAgICAgICAvLyBhYnMgcGF0aCB0bwogICAgICAgICAgICAgICAgJGRlc3QgPSAkY29weV90b19wYXRoIC4gJy8nIC4gJGY7CiAgICAgICAgICAgICAgICAvLyBkbwogICAgICAgICAgICAgICAgaWYgKCRtb3ZlKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlbmFtZSA9IGZtX3JlbmFtZSgkZnJvbSwgJGRlc3QpOwogICAgICAgICAgICAgICAgICAgIGlmICgkcmVuYW1lID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3JzKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIWZtX3Jjb3B5KCRmcm9tLCAkZGVzdCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9ycysrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoJGVycm9ycyA9PSAwKSB7CiAgICAgICAgICAgICRtc2cgPSAkbW92ZSA/ICdTZWxlY3RlZCBmaWxlcyBhbmQgZm9sZGVycyBtb3ZlZCcgOiAnU2VsZWN0ZWQgZmlsZXMgYW5kIGZvbGRlcnMgY29waWVkJzsKICAgICAgICAgICAgZm1fc2V0X21zZygkbXNnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkbXNnID0gJG1vdmUgPyAnRXJyb3Igd2hpbGUgbW92aW5nIGl0ZW1zJyA6ICdFcnJvciB3aGlsZSBjb3B5aW5nIGl0ZW1zJzsKICAgICAgICAgICAgZm1fc2V0X21zZygkbXNnLCAnZXJyb3InKTsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGZtX3NldF9tc2cobG5nKCdOb3RoaW5nIHNlbGVjdGVkJyksICdhbGVydCcpOwogICAgfQogICAgJEZNX1BBVEggPSBGTV9QQVRIOwogICAgZm1fcmVkaXJlY3QoRk1fU0VMRl9VUkwgLiAnP3A9JyAuIHVybGVuY29kZSgkRk1fUEFUSCkpOwp9CgovLyBSZW5hbWUKaWYgKGlzc2V0KCRfUE9TVFsncmVuYW1lX2Zyb20nXSwgJF9QT1NUWydyZW5hbWVfdG8nXSwgJF9QT1NUWyd0b2tlbiddKSAmJiAhRk1fUkVBRE9OTFkpIHsKICAgIGlmICghdmVyaWZ5VG9rZW4oJF9QT1NUWyd0b2tlbiddKSkgewogICAgICAgIGZtX3NldF9tc2coIkludmFsaWQgVG9rZW4uIiwgJ2Vycm9yJyk7CiAgICB9CiAgICAvLyBvbGQgbmFtZQogICAgJG9sZCA9IHVybGRlY29kZSgkX1BPU1RbJ3JlbmFtZV9mcm9tJ10pOwogICAgJG9sZCA9IGZtX2NsZWFuX3BhdGgoJG9sZCk7CiAgICAkb2xkID0gc3RyX3JlcGxhY2UoJy8nLCAnJywgJG9sZCk7CiAgICAvLyBuZXcgbmFtZQogICAgJG5ldyA9IHVybGRlY29kZSgkX1BPU1RbJ3JlbmFtZV90byddKTsKICAgICRuZXcgPSBmbV9jbGVhbl9wYXRoKHN0cmlwX3RhZ3MoJG5ldykpOwogICAgJG5ldyA9IHN0cl9yZXBsYWNlKCcvJywgJycsICRuZXcpOwogICAgLy8gcGF0aAogICAgJHBhdGggPSBGTV9ST09UX1BBVEg7CiAgICBpZiAoRk1fUEFUSCAhPSAnJykgewogICAgICAgICRwYXRoIC49ICcvJyAuIEZNX1BBVEg7CiAgICB9CiAgICAvLyByZW5hbWUKICAgIGlmIChmbV9pc3ZhbGlkX2ZpbGVuYW1lKCRuZXcpICYmICRvbGQgIT0gJycgJiYgJG5ldyAhPSAnJykgewogICAgICAgIGlmIChmbV9yZW5hbWUoJHBhdGggLiAnLycgLiAkb2xkLCAkcGF0aCAuICcvJyAuICRuZXcpKSB7CiAgICAgICAgICAgIGZtX3NldF9tc2coc3ByaW50ZihsbmcoJ1JlbmFtZWQgZnJvbScpIC4gJyA8Yj4lczwvYj4gJyAuIGxuZygndG8nKSAuICcgPGI+JXM8L2I+JywgZm1fZW5jKCRvbGQpLCBmbV9lbmMoJG5ldykpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmbV9zZXRfbXNnKHNwcmludGYobG5nKCdFcnJvciB3aGlsZSByZW5hbWluZyBmcm9tJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCd0bycpIC4gJyA8Yj4lczwvYj4nLCBmbV9lbmMoJG9sZCksIGZtX2VuYygkbmV3KSksICdlcnJvcicpOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgZm1fc2V0X21zZyhsbmcoJ0ludmFsaWQgY2hhcmFjdGVycyBpbiBmaWxlIG5hbWUnKSwgJ2Vycm9yJyk7CiAgICB9CiAgICAkRk1fUEFUSCA9IEZNX1BBVEg7CiAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7Cn0KCi8vIERvd25sb2FkCmlmIChpc3NldCgkX0dFVFsnZGwnXSwgJF9QT1NUWyd0b2tlbiddKSkgewogICAgLy8gVmVyaWZ5IHRoZSB0b2tlbiB0byBlbnN1cmUgaXQncyB2YWxpZAogICAgaWYgKCF2ZXJpZnlUb2tlbigkX1BPU1RbJ3Rva2VuJ10pKSB7CiAgICAgICAgZm1fc2V0X21zZygiSW52YWxpZCBUb2tlbi4iLCAnZXJyb3InKTsKICAgICAgICBleGl0OwogICAgfQoKICAgIC8vIENsZWFuIHRoZSBkb3dubG9hZCBmaWxlIHBhdGgKICAgICRkbCA9IHVybGRlY29kZSgkX0dFVFsnZGwnXSk7CiAgICAkZGwgPSBmbV9jbGVhbl9wYXRoKCRkbCk7CiAgICAkZGwgPSBzdHJfcmVwbGFjZSgnLycsICcnLCAkZGwpOyAvLyBQcmV2ZW50IGRpcmVjdG9yeSB0cmF2ZXJzYWwgYXR0YWNrcwoKICAgIC8vIERlZmluZSB0aGUgZmlsZSBwYXRoCiAgICAkcGF0aCA9IEZNX1JPT1RfUEFUSDsKICAgIGlmIChGTV9QQVRIICE9ICcnKSB7CiAgICAgICAgJHBhdGggLj0gJy8nIC4gRk1fUEFUSDsKICAgIH0KCiAgICAvLyBDaGVjayBpZiB0aGUgZmlsZSBleGlzdHMgYW5kIGlzIHZhbGlkCiAgICBpZiAoJGRsICE9ICcnICYmIGlzX2ZpbGUoJHBhdGggLiAnLycgLiAkZGwpKSB7CiAgICAgICAgLy8gQ2xvc2UgdGhlIHNlc3Npb24gdG8gcHJldmVudCBzZXNzaW9uIGxvY2tpbmcKICAgICAgICBpZiAoc2Vzc2lvbl9zdGF0dXMoKSA9PT0gUEhQX1NFU1NJT05fQUNUSVZFKSB7CiAgICAgICAgICAgIHNlc3Npb25fd3JpdGVfY2xvc2UoKTsKICAgICAgICB9CgogICAgICAgIC8vIENhbGwgdGhlIGRvd25sb2FkIGZ1bmN0aW9uCiAgICAgICAgZm1fZG93bmxvYWRfZmlsZSgkcGF0aCAuICcvJyAuICRkbCwgJGRsLCAxMDI0KTsgLy8gRG93bmxvYWQgd2l0aCBhIGJ1ZmZlciBzaXplIG9mIDEwMjQgYnl0ZXMKICAgICAgICBleGl0OwogICAgfSBlbHNlIHsKICAgICAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGZpbGUgaXMgbm90IGZvdW5kCiAgICAgICAgZm1fc2V0X21zZyhsbmcoJ0ZpbGUgbm90IGZvdW5kJyksICdlcnJvcicpOwogICAgICAgICRGTV9QQVRIID0gRk1fUEFUSDsKICAgICAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7CiAgICB9Cn0KCi8vIFVwbG9hZAppZiAoIWVtcHR5KCRfRklMRVMpICYmICFGTV9SRUFET05MWSkgewogICAgaWYgKGlzc2V0KCRfUE9TVFsndG9rZW4nXSkpIHsKICAgICAgICBpZiAoIXZlcmlmeVRva2VuKCRfUE9TVFsndG9rZW4nXSkpIHsKICAgICAgICAgICAgJHJlc3BvbnNlID0gYXJyYXkoJ3N0YXR1cycgPT4gJ2Vycm9yJywgJ2luZm8nID0+ICJJbnZhbGlkIFRva2VuLiIpOwogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCRyZXNwb25zZSk7CiAgICAgICAgICAgIGV4aXQoKTsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgICRyZXNwb25zZSA9IGFycmF5KCdzdGF0dXMnID0+ICdlcnJvcicsICdpbmZvJyA9PiAiVG9rZW4gTWlzc2luZy4iKTsKICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCRyZXNwb25zZSk7CiAgICAgICAgZXhpdCgpOwogICAgfQoKICAgICRjaHVua0luZGV4ID0gJF9QT1NUWydkemNodW5raW5kZXgnXTsKICAgICRjaHVua1RvdGFsID0gJF9QT1NUWydkenRvdGFsY2h1bmtjb3VudCddOwogICAgJGZ1bGxQYXRoSW5wdXQgPSBmbV9jbGVhbl9wYXRoKCRfUkVRVUVTVFsnZnVsbHBhdGgnXSk7CgogICAgJGYgPSAkX0ZJTEVTOwogICAgJHBhdGggPSBGTV9ST09UX1BBVEg7CiAgICAkZHMgPSBESVJFQ1RPUllfU0VQQVJBVE9SOwogICAgaWYgKEZNX1BBVEggIT0gJycpIHsKICAgICAgICAkcGF0aCAuPSAnLycgLiBGTV9QQVRIOwogICAgfQoKICAgICRlcnJvcnMgPSAwOwogICAgJHVwbG9hZHMgPSAwOwogICAgJGFsbG93ZWQgPSAoRk1fVVBMT0FEX0VYVEVOU0lPTikgPyBleHBsb2RlKCcsJywgRk1fVVBMT0FEX0VYVEVOU0lPTikgOiBmYWxzZTsKICAgICRyZXNwb25zZSA9IGFycmF5KAogICAgICAgICdzdGF0dXMnID0+ICdlcnJvcicsCiAgICAgICAgJ2luZm8nICAgPT4gJ09vcHMhIFRyeSBhZ2FpbicKICAgICk7CgogICAgJGZpbGVuYW1lID0gJGZbJ2ZpbGUnXVsnbmFtZSddOwogICAgJHRtcF9uYW1lID0gJGZbJ2ZpbGUnXVsndG1wX25hbWUnXTsKICAgICRleHQgPSBwYXRoaW5mbygkZmlsZW5hbWUsIFBBVEhJTkZPX0ZJTEVOQU1FKSAhPSAnJyA/IHN0cnRvbG93ZXIocGF0aGluZm8oJGZpbGVuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pKSA6ICcnOwogICAgJGlzRmlsZUFsbG93ZWQgPSAoJGFsbG93ZWQpID8gaW5fYXJyYXkoJGV4dCwgJGFsbG93ZWQpIDogdHJ1ZTsKCiAgICBpZiAoIWZtX2lzdmFsaWRfZmlsZW5hbWUoJGZpbGVuYW1lKSAmJiAhZm1faXN2YWxpZF9maWxlbmFtZSgkZnVsbFBhdGhJbnB1dCkpIHsKICAgICAgICAkcmVzcG9uc2UgPSBhcnJheSgKICAgICAgICAgICAgJ3N0YXR1cycgICAgPT4gJ2Vycm9yJywKICAgICAgICAgICAgJ2luZm8nICAgICAgPT4gIkludmFsaWQgRmlsZSBuYW1lISIsCiAgICAgICAgKTsKICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCRyZXNwb25zZSk7CiAgICAgICAgZXhpdCgpOwogICAgfQoKICAgICR0YXJnZXRQYXRoID0gJHBhdGggLiAkZHM7CiAgICBpZiAoaXNfd3JpdGFibGUoJHRhcmdldFBhdGgpKSB7CiAgICAgICAgJGZ1bGxQYXRoID0gJHBhdGggLiAnLycgLiAkZnVsbFBhdGhJbnB1dDsKICAgICAgICAkZm9sZGVyID0gc3Vic3RyKCRmdWxsUGF0aCwgMCwgc3RycnBvcygkZnVsbFBhdGgsICIvIikpOwoKICAgICAgICBpZiAoIWlzX2RpcigkZm9sZGVyKSkgewogICAgICAgICAgICAkb2xkID0gdW1hc2soMCk7CiAgICAgICAgICAgIG1rZGlyKCRmb2xkZXIsIDA3NzcsIHRydWUpOwogICAgICAgICAgICB1bWFzaygkb2xkKTsKICAgICAgICB9CgogICAgICAgIGlmIChlbXB0eSgkZlsnZmlsZSddWydlcnJvciddKSAmJiAhZW1wdHkoJHRtcF9uYW1lKSAmJiAkdG1wX25hbWUgIT0gJ25vbmUnICYmICRpc0ZpbGVBbGxvd2VkKSB7CiAgICAgICAgICAgIGlmICgkY2h1bmtUb3RhbCkgewogICAgICAgICAgICAgICAgJG91dCA9IEBmb3BlbigieyRmdWxsUGF0aH0ucGFydCIsICRjaHVua0luZGV4ID09IDAgPyAid2IiIDogImFiIik7CiAgICAgICAgICAgICAgICBpZiAoJG91dCkgewogICAgICAgICAgICAgICAgICAgICRpbiA9IEBmb3BlbigkdG1wX25hbWUsICJyYiIpOwogICAgICAgICAgICAgICAgICAgIGlmICgkaW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBIUF9WRVJTSU9OX0lEIDwgODAwMDkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdvcmthcm91bmQgaHR0cHM6Ly9idWdzLnBocC5uZXQvYnVnLnBocD9pZD04MTE0NQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJ1ZmYgPSBmcmVhZCgkaW4sIDQwOTYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGJ1ZmYgPT09IGZhbHNlIHx8ICRidWZmID09PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZndyaXRlKCRvdXQsICRidWZmKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlICghZmVvZigkaW4pKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9jb3B5X3RvX3N0cmVhbSgkaW4sICRvdXQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZSA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cycgICAgPT4gJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luZm8nID0+ICJmaWxlIHVwbG9hZCBzdWNjZXNzZnVsIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZSA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cycgICAgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbmZvJyA9PiAiZmFpbGVkIHRvIG9wZW4gb3V0cHV0IHN0cmVhbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3JEZXRhaWxzJyA9PiBlcnJvcl9nZXRfbGFzdCgpCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEBmY2xvc2UoJGluKTsKICAgICAgICAgICAgICAgICAgICBAZmNsb3NlKCRvdXQpOwogICAgICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRtcF9uYW1lKTsKCiAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0dXMnICAgID0+ICdzdWNjZXNzJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2luZm8nID0+ICJmaWxlIHVwbG9hZCBzdWNjZXNzZnVsIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRyZXNwb25zZSA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJyAgICA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAnaW5mbycgPT4gImZhaWxlZCB0byBvcGVuIG91dHB1dCBzdHJlYW0iCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJGNodW5rSW5kZXggPT0gJGNodW5rVG90YWwgLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmdWxsUGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGV4dF8xID0gJGV4dCA/ICcuJyAuICRleHQgOiAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgJGZ1bGxQYXRoVGFyZ2V0ID0gJHBhdGggLiAnLycgLiBiYXNlbmFtZSgkZnVsbFBhdGhJbnB1dCwgJGV4dF8xKSAuICdfJyAuIGRhdGUoJ3ltZEhpcycpIC4gJGV4dF8xOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRmdWxsUGF0aFRhcmdldCA9ICRmdWxsUGF0aDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmVuYW1lKCJ7JGZ1bGxQYXRofS5wYXJ0IiwgJGZ1bGxQYXRoVGFyZ2V0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmIChtb3ZlX3VwbG9hZGVkX2ZpbGUoJHRtcF9uYW1lLCAkZnVsbFBhdGgpKSB7CiAgICAgICAgICAgICAgICAvLyBCZSBzdXJlIHRoYXQgdGhlIGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQKICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZnVsbFBhdGgpKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0dXMnICAgID0+ICdzdWNjZXNzJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2luZm8nID0+ICJmaWxlIHVwbG9hZCBzdWNjZXNzZnVsIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRyZXNwb25zZSA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJyA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAnaW5mbycgICA9PiAnQ291bGRuXCd0IHVwbG9hZCB0aGUgcmVxdWVzdGVkIGZpbGUuJwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJyAgICA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICdpbmZvJyAgICAgID0+ICJFcnJvciB3aGlsZSB1cGxvYWRpbmcgZmlsZXMuIFVwbG9hZGVkIGZpbGVzICR1cGxvYWRzIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgICRyZXNwb25zZSA9IGFycmF5KAogICAgICAgICAgICAnc3RhdHVzJyA9PiAnZXJyb3InLAogICAgICAgICAgICAnaW5mbycgICA9PiAnVGhlIHNwZWNpZmllZCBmb2xkZXIgZm9yIHVwbG9hZCBpc25cJ3Qgd3JpdGVhYmxlLicKICAgICAgICApOwogICAgfQogICAgLy8gUmV0dXJuIHRoZSByZXNwb25zZQogICAgZWNobyBqc29uX2VuY29kZSgkcmVzcG9uc2UpOwogICAgZXhpdCgpOwp9CgovLyBNYXNzIGRlbGV0aW5nCmlmIChpc3NldCgkX1BPU1RbJ2dyb3VwJ10sICRfUE9TVFsnZGVsZXRlJ10sICRfUE9TVFsndG9rZW4nXSkgJiYgIUZNX1JFQURPTkxZKSB7CgogICAgaWYgKCF2ZXJpZnlUb2tlbigkX1BPU1RbJ3Rva2VuJ10pKSB7CiAgICAgICAgZm1fc2V0X21zZyhsbmcoIkludmFsaWQgVG9rZW4uIiksICdlcnJvcicpOwogICAgfQoKICAgICRwYXRoID0gRk1fUk9PVF9QQVRIOwogICAgaWYgKEZNX1BBVEggIT0gJycpIHsKICAgICAgICAkcGF0aCAuPSAnLycgLiBGTV9QQVRIOwogICAgfQoKICAgICRlcnJvcnMgPSAwOwogICAgJGZpbGVzID0gJF9QT1NUWydmaWxlJ107CiAgICBpZiAoaXNfYXJyYXkoJGZpbGVzKSAmJiBjb3VudCgkZmlsZXMpKSB7CiAgICAgICAgZm9yZWFjaCAoJGZpbGVzIGFzICRmKSB7CiAgICAgICAgICAgIGlmICgkZiAhPSAnJykgewogICAgICAgICAgICAgICAgJG5ld19wYXRoID0gJHBhdGggLiAnLycgLiAkZjsKICAgICAgICAgICAgICAgIGlmICghZm1fcmRlbGV0ZSgkbmV3X3BhdGgpKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9ycysrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgkZXJyb3JzID09IDApIHsKICAgICAgICAgICAgZm1fc2V0X21zZyhsbmcoJ1NlbGVjdGVkIGZpbGVzIGFuZCBmb2xkZXIgZGVsZXRlZCcpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmbV9zZXRfbXNnKGxuZygnRXJyb3Igd2hpbGUgZGVsZXRpbmcgaXRlbXMnKSwgJ2Vycm9yJyk7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBmbV9zZXRfbXNnKGxuZygnTm90aGluZyBzZWxlY3RlZCcpLCAnYWxlcnQnKTsKICAgIH0KCiAgICAkRk1fUEFUSCA9IEZNX1BBVEg7CiAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7Cn0KCi8vIFBhY2sgZmlsZXMgemlwLCB0YXIKaWYgKGlzc2V0KCRfUE9TVFsnZ3JvdXAnXSwgJF9QT1NUWyd0b2tlbiddKSAmJiAoaXNzZXQoJF9QT1NUWyd6aXAnXSkgfHwgaXNzZXQoJF9QT1NUWyd0YXInXSkpICYmICFGTV9SRUFET05MWSkgewoKICAgIGlmICghdmVyaWZ5VG9rZW4oJF9QT1NUWyd0b2tlbiddKSkgewogICAgICAgIGZtX3NldF9tc2cobG5nKCJJbnZhbGlkIFRva2VuLiIpLCAnZXJyb3InKTsKICAgIH0KCiAgICAkcGF0aCA9IEZNX1JPT1RfUEFUSDsKICAgICRleHQgPSAnemlwJzsKICAgIGlmIChGTV9QQVRIICE9ICcnKSB7CiAgICAgICAgJHBhdGggLj0gJy8nIC4gRk1fUEFUSDsKICAgIH0KCiAgICAvL3NldCBwYWNrIHR5cGUKICAgICRleHQgPSBpc3NldCgkX1BPU1RbJ3RhciddKSA/ICd0YXInIDogJ3ppcCc7CgogICAgaWYgKCgkZXh0ID09ICJ6aXAiICYmICFjbGFzc19leGlzdHMoJ1ppcEFyY2hpdmUnKSkgfHwgKCRleHQgPT0gInRhciIgJiYgIWNsYXNzX2V4aXN0cygnUGhhckRhdGEnKSkpIHsKICAgICAgICBmbV9zZXRfbXNnKGxuZygnT3BlcmF0aW9ucyB3aXRoIGFyY2hpdmVzIGFyZSBub3QgYXZhaWxhYmxlJyksICdlcnJvcicpOwogICAgICAgICRGTV9QQVRIID0gRk1fUEFUSDsKICAgICAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7CiAgICB9CgogICAgJGZpbGVzID0gJF9QT1NUWydmaWxlJ107CiAgICAkc2FuaXRpemVkX2ZpbGVzID0gYXJyYXkoKTsKCiAgICAvLyBjbGVhbiBwYXRoCiAgICBmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpIHsKICAgICAgICBhcnJheV9wdXNoKCRzYW5pdGl6ZWRfZmlsZXMsIGZtX2NsZWFuX3BhdGgoJGZpbGUpKTsKICAgIH0KCiAgICAkZmlsZXMgPSAkc2FuaXRpemVkX2ZpbGVzOwoKICAgIGlmICghZW1wdHkoJGZpbGVzKSkgewogICAgICAgIGNoZGlyKCRwYXRoKTsKCiAgICAgICAgaWYgKGNvdW50KCRmaWxlcykgPT0gMSkgewogICAgICAgICAgICAkb25lX2ZpbGUgPSByZXNldCgkZmlsZXMpOwogICAgICAgICAgICAkb25lX2ZpbGUgPSBiYXNlbmFtZSgkb25lX2ZpbGUpOwogICAgICAgICAgICAkemlwbmFtZSA9ICRvbmVfZmlsZSAuICdfJyAuIGRhdGUoJ3ltZF9IaXMnKSAuICcuJyAuICRleHQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHppcG5hbWUgPSAnYXJjaGl2ZV8nIC4gZGF0ZSgneW1kX0hpcycpIC4gJy4nIC4gJGV4dDsKICAgICAgICB9CgogICAgICAgIGlmICgkZXh0ID09ICd6aXAnKSB7CiAgICAgICAgICAgICR6aXBwZXIgPSBuZXcgRk1fWmlwcGVyKCk7CiAgICAgICAgICAgICRyZXMgPSAkemlwcGVyLT5jcmVhdGUoJHppcG5hbWUsICRmaWxlcyk7CiAgICAgICAgfSBlbHNlaWYgKCRleHQgPT0gJ3RhcicpIHsKICAgICAgICAgICAgJHRhciA9IG5ldyBGTV9aaXBwZXJfVGFyKCk7CiAgICAgICAgICAgICRyZXMgPSAkdGFyLT5jcmVhdGUoJHppcG5hbWUsICRmaWxlcyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHJlcykgewogICAgICAgICAgICBmbV9zZXRfbXNnKHNwcmludGYobG5nKCdBcmNoaXZlJykgLiAnIDxiPiVzPC9iPiAnIC4gbG5nKCdDcmVhdGVkJyksIGZtX2VuYygkemlwbmFtZSkpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmbV9zZXRfbXNnKGxuZygnQXJjaGl2ZSBub3QgY3JlYXRlZCcpLCAnZXJyb3InKTsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGZtX3NldF9tc2cobG5nKCdOb3RoaW5nIHNlbGVjdGVkJyksICdhbGVydCcpOwogICAgfQoKICAgICRGTV9QQVRIID0gRk1fUEFUSDsKICAgIGZtX3JlZGlyZWN0KEZNX1NFTEZfVVJMIC4gJz9wPScgLiB1cmxlbmNvZGUoJEZNX1BBVEgpKTsKfQoKLy8gVW5wYWNrIHppcCwgdGFyCmlmIChpc3NldCgkX1BPU1RbJ3VuemlwJ10sICRfUE9TVFsndG9rZW4nXSkgJiYgIUZNX1JFQURPTkxZKSB7CgogICAgaWYgKCF2ZXJpZnlUb2tlbigkX1BPU1RbJ3Rva2VuJ10pKSB7CiAgICAgICAgZm1fc2V0X21zZyhsbmcoIkludmFsaWQgVG9rZW4uIiksICdlcnJvcicpOwogICAgfQoKICAgICR1bnppcCA9IHVybGRlY29kZSgkX1BPU1RbJ3VuemlwJ10pOwogICAgJHVuemlwID0gZm1fY2xlYW5fcGF0aCgkdW56aXApOwogICAgJHVuemlwID0gc3RyX3JlcGxhY2UoJy8nLCAnJywgJHVuemlwKTsKICAgICRpc1ZhbGlkID0gZmFsc2U7CgogICAgJHBhdGggPSBGTV9ST09UX1BBVEg7CiAgICBpZiAoRk1fUEFUSCAhPSAnJykgewogICAgICAgICRwYXRoIC49ICcvJyAuIEZNX1BBVEg7CiAgICB9CgogICAgaWYgKCR1bnppcCAhPSAnJyAmJiBpc19maWxlKCRwYXRoIC4gJy8nIC4gJHVuemlwKSkgewogICAgICAgICR6aXBfcGF0aCA9ICRwYXRoIC4gJy8nIC4gJHVuemlwOwogICAgICAgICRleHQgPSBwYXRoaW5mbygkemlwX3BhdGgsIFBBVEhJTkZPX0VYVEVOU0lPTik7CiAgICAgICAgJGlzVmFsaWQgPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgICBmbV9zZXRfbXNnKGxuZygnRmlsZSBub3QgZm91bmQnKSwgJ2Vycm9yJyk7CiAgICB9CgogICAgaWYgKCgkZXh0ID09ICJ6aXAiICYmICFjbGFzc19leGlzdHMoJ1ppcEFyY2hpdmUnKSkgfHwgKCRleHQgPT0gInRhciIgJiYgIWNsYXNzX2V4aXN0cygnUGhhckRhdGEnKSkpIHsKICAgICAgICBmbV9zZXRfbXNnKGxuZygnT3BlcmF0aW9ucyB3aXRoIGFyY2hpdmVzIGFyZSBub3QgYXZhaWxhYmxlJyksICdlcnJvcicpOwogICAgICAgICRGTV9QQVRIID0gRk1fUEFUSDsKICAgICAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7CiAgICB9CgogICAgaWYgKCRpc1ZhbGlkKSB7CiAgICAgICAgLy90byBmb2xkZXIKICAgICAgICAkdG9mb2xkZXIgPSAnJzsKICAgICAgICBpZiAoaXNzZXQoJF9QT1NUWyd0b2ZvbGRlciddKSkgewogICAgICAgICAgICAkdG9mb2xkZXIgPSBwYXRoaW5mbygkemlwX3BhdGgsIFBBVEhJTkZPX0ZJTEVOQU1FKTsKICAgICAgICAgICAgaWYgKGZtX21rZGlyKCRwYXRoIC4gJy8nIC4gJHRvZm9sZGVyLCB0cnVlKSkgewogICAgICAgICAgICAgICAgJHBhdGggLj0gJy8nIC4gJHRvZm9sZGVyOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJGV4dCA9PSAiemlwIikgewogICAgICAgICAgICAkemlwcGVyID0gbmV3IEZNX1ppcHBlcigpOwogICAgICAgICAgICAkcmVzID0gJHppcHBlci0+dW56aXAoJHppcF9wYXRoLCAkcGF0aCk7CiAgICAgICAgfSBlbHNlaWYgKCRleHQgPT0gInRhciIpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICRnemlwcGVyID0gbmV3IFBoYXJEYXRhKCR6aXBfcGF0aCk7CiAgICAgICAgICAgICAgICBpZiAoQCRnemlwcGVyLT5leHRyYWN0VG8oJHBhdGgsIG51bGwsIHRydWUpKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlcyA9IHRydWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRyZXMgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICAgICAvL1RPRE86OiBuZWVkIHRvIGhhbmRsZSB0aGUgZXJyb3IKICAgICAgICAgICAgICAgICRyZXMgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJHJlcykgewogICAgICAgICAgICBmbV9zZXRfbXNnKGxuZygnQXJjaGl2ZSB1bnBhY2tlZCcpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmbV9zZXRfbXNnKGxuZygnQXJjaGl2ZSBub3QgdW5wYWNrZWQnKSwgJ2Vycm9yJyk7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBmbV9zZXRfbXNnKGxuZygnRmlsZSBub3QgZm91bmQnKSwgJ2Vycm9yJyk7CiAgICB9CiAgICAkRk1fUEFUSCA9IEZNX1BBVEg7CiAgICBmbV9yZWRpcmVjdChGTV9TRUxGX1VSTCAuICc/cD0nIC4gdXJsZW5jb2RlKCRGTV9QQVRIKSk7Cn0KCi8vIENoYW5nZSBQZXJtcyAobm90IGZvciBXaW5kb3dzKQppZiAoaXNzZXQoJF9QT1NUWydjaG1vZCddLCAkX1BPU1RbJ3Rva2VuJ10pICYmICFGTV9SRUFET05MWSAmJiAhRk1fSVNfV0lOKSB7CgogICAgaWYgKCF2ZXJpZnlUb2tlbigkX1BPU1RbJ3Rva2VuJ10pKSB7CiAgICAgICAgZm1fc2V0X21zZyhsbmcoIkludmFsaWQgVG9rZW4uIiksICdlcnJvcicpOwogICAgfQoKICAgICRwYXRoID0gRk1fUk9PVF9QQVRIOwogICAgaWYgKEZNX1BBVEggIT0gJycpIHsKICAgICAgICAkcGF0aCAuPSAnLycgLiBGTV9QQVRIOwogICAgfQoKICAgICRmaWxlID0gJF9QT1NUWydjaG1vZCddOwogICAgJGZpbGUgPSBmbV9jbGVhbl9wYXRoKCRmaWxlKTsKICAgICRmaWxlID0gc3RyX3JlcGxhY2UoJy8nLCAnJywgJGZpbGUpOwogICAgaWYgKCRmaWxlID09ICcnIHx8ICghaXNfZmlsZSgkcGF0aCAuICcvJyAuICRmaWxlKSAmJiAhaXNfZGlyKCRwYXRoIC4gJy8nIC4gJGZpbGUpKSkgewogICAgICAgIGZtX3NldF9tc2cobG5nKCdGaWxlIG5vdCBmb3VuZCcpLCAnZXJyb3InKTsKICAgICAgICAkRk1fUEFUSCA9IEZNX1BBVEg7CiAgICAgICAgZm1fcmVkaXJlY3QoRk1fU0VMRl9VUkwgLiAnP3A9JyAuIHVybGVuY29kZSgkRk1fUEFUSCkpOwogICAgfQoKICAgICRtb2RlID0gMDsKICAgIGlmICghZW1wdHkoJF9QT1NUWyd1ciddKSkgewogICAgICAgICRtb2RlIHw9IDA0MDA7CiAgICB9CiAgICBpZiAoIWVtcHR5KCRfUE9TVFsndXcnXSkpIHsKICAgICAgICAkbW9kZSB8PSAwMjAwOwogICAgfQogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ3V4J10pKSB7CiAgICAgICAgJG1vZGUgfD0gMDEwMDsKICAgIH0KICAgIGlmICghZW1wdHkoJF9QT1NUWydnciddKSkgewogICAgICAgICRtb2RlIHw9IDAwNDA7CiAgICB9CiAgICBpZiAoIWVtcHR5KCRfUE9TVFsnZ3cnXSkpIHsKICAgICAgICAkbW9kZSB8PSAwMDIwOwogICAgfQogICAg


  • RUDY SETIAWAN September 18, 2018 11:48

    permohonan imb split apakah harus di lengkapi dengan bukti bpjs TK dan bukti bpjs kesehatan ??? knp waktu permohonan imb induk tdk di persyaratkan ???

    • DPMPTSP

      Yth. Bapak Rudy Setiawan Terima kasih atas masukan dan informasi yang telah disampaikan. Perihal pengajuan IMB khususnya splitzing itu tidak dipersyaratkan mengajukan Bukti BPJS Tenaga Kerja dan BPJS Kesehatan.


  • ANDRI MARZUKI August 16, 2018 14:58

    Selamat sore Bpk/Ibu, sy mau menanyakan bagaimana caranya sy mencetak secara mandir TDP yg sudah sy ajukan dan sudah status Penyerahan SK. Menu apa yg harus sy pilih supaya sy bs mencetaknya? Terima kasih.

    • DPMPTSP

      Yth. Bapak Andri Marzuki. Terima kasih atas masukan dan informasi yang telah disampaikan. Perihal cetak mandiri apabila sk sudah jadi, masuk ke menu akun saya pilih permohonan saya, klik IKM pada pendaftaran yang diajukan. lalu cetak sk apabila sudah mengisi kolom IKM Apabilla memerlukan informasi lebih lanjut silahkan menghubungi call center kami


  • INTAN August 15, 2018 14:57

    Assalamualaikum bpk/ibu, untuk permohonan 180912.TDP.02895 terjadi penolakan karna izin teknis IUJK tidak ada, padahal saya sudah melampirkan berkas IUJK PUSAT mengingat kami mengajukan permohonan TDP cabang, nama file yg kami upload adalah IZIN disana tercantum domisili dan iujk jg siup pusat (untuk domisili nya cabang) mohon tolong lebih teliti lagi agar tidak memperlambat pembuatan izin yg kami butuhkan dimohon konfirmasinya

    • DPMPTSP

      Yth. Ibu Intan. Terima kasih atas masukan dan informasi yang telah disampaikan. Perihal berkas yang diajukan Ibu. untuk jenis usaha IUJK mohon maaf untuk jenis usaha tersebut tidak bisa dilampirkan IUJK pusat, Ibu harus membuat IUJK cabangnya terlebih dahulu. mengingat Usaha Ibu tersebut yang diajukan adalah Cabangnya, dan TDP akan kami proses apabila Ibu mengajukan IUJK cabangnya terlebih dahulu. terima kasih Apabila memerlukan informasi lebih lanjut silahkan menghubungi call center kami


  • DAVID SUGIANTO August 12, 2018 10:43

    yth. Mohon di mengerti dengan jelas isi dari penolakan pengajuan permohonan dengan isi (SILAHKAN DAFTAR DI OSS.GO.ID / SEMUA PERIZINAN HARUS MEMILIKI NIB (NOMOR INDUK BERUSAHA, padahal saya bisa masuk ke sistem periiznan online itu pake NIB, bagaimana bisa mengeluarkan penolakan saya harus daftar kembali ke OSS. Saya harus bagaimana selanjutnya, NIB sudah punya dengan nomor : 8120002931475, terima kasih

    • DPMPTSP

      Yth. Bapak David Sugianto. Terima kasih atas masukan dan informasi yang telah disampaikan. Perihal penolakan berkas. apabila memang dilokasi tidak ada produksi, silahkan perbaiki permohonannya dan silahkan Konfirmasi langsung ke DPMPTSP