C6 - Ciliated


LS0tCnRpdGxlOiAiQ29tcGFydG1lbnQgaXNvc3dpdGNoIHJlc3VsdHMgIgpnZW9tZXRyeTogbWFyZ2luPTFjbQpwYXJhbXM6IAogIGNsdXN0ZXI6ICIiCiAgZG9faHRtbF9yZXBvcnRzIDogRkFMU0UKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICBjc3M6ICJzdHlsZS5jc3MiCiAgICBjb2RlX2ZvbGRpbmc6IG5vbmUKICAgIHRoZW1lOiBqb3VybmFsCiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiAzCiAgICB0b2NfZmxvYXQ6IHllcwogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICczJwogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICczJwotLS0KCgpgYGB7ciBzZXR1cF9yZXBvcnQsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBlY2hvID0gRkFMU0UsCiAgbWVzc2FnZSA9IEZBTFNFLAogIHdhcm5pbmcgPSBGQUxTRSwgCiAgY2FjaGUgPSBGQUxTRSwKICBjYWNoZS5sYXp5ID0gRkFMU0UsCiAgdGlkeSA9IFRSVUUKKQoKY2x1c3Rlcl9tZXRhID0gbGlzdCgKICAiQzAiID0gbGlzdChuYW1lPSJGaWJyb2JsYXN0IiwgIGNvbG9yPSIjRjg3NjZEIiksCiAgIkMxIiA9IGxpc3QobmFtZT0iRXBpdGhlbGlhbCIsICBjb2xvcj0iI0M0OUEwMCIpLAogICJDMiIgPSBsaXN0KG5hbWU9Ik15ZWxvaWQiLCAgICAgY29sb3I9IiM1M0I0MDAiKSwKICAiQzMiID0gbGlzdChuYW1lPSJFbmRvdGhlbGlhbCIsIGNvbG9yPSIjMDBDMDk0IiksCiAgIkM0IiA9IGxpc3QobmFtZT0iVCtOSytJTEMiLCAgICBjb2xvcj0iIzAwQjZFQiIpLAogICJDNSIgPSBsaXN0KG5hbWU9IkIgY2VsbCIsICAgICAgY29sb3I9IiNBNThBRkYiKSwKICAiQzYiID0gbGlzdChuYW1lPSJDaWxpYXRlZCIsICAgIGNvbG9yPSIjRkI2MkQ3IikKKQoKc2V0d2QoIi9kYXRhLzEweF9kYXRhLzEweF81cHNhbmdlciIpCnNvdXJjZSgiLi9pc29zd2l0Y2gvMDAuY29tbW9uLmltcG9ydC5SIikKc291cmNlKCIuL2lzb3N3aXRjaC8wMC52aXN1YWwuUiIpCmxpYnJhcnkodHJlZW1hcGlmeSkKYGBgCgoKCiMgYHIgcGFyYW1zJGNsdXN0ZXJgIC0gYHIgY2x1c3Rlcl9tZXRhW1twYXJhbXMkY2x1c3Rlcl1dW1sibmFtZSJdXSBgCgpgYGB7ciBpbml0IH0KCmlmKCFleGlzdHMoInNhbmdlciIpKQogIHNhbmdlciA8LSByZWFkUkRTKCJvdXRwdXQvQTA0LXNhbmdlck1VTFRJLnJkcyIpCgpjZWxsdHlwZV9jb3VudHMgPC0gc2FuZ2VyQG1ldGEuZGF0YSAlPiUKICBncm91cF9ieShiaWdfY2x1c3RlciwgbmV3X2NlbGx0eXBlKSAlPiUKICBzdW1tYXJpc2UobiA9IG4oKSkKCiMgc3Vic2V0IGdpdmVuIGNsdXN0ZXIsIG9ubHkgY2VsbF90eXBlcyB3aXRoIG1vcmUgdGhhbiAyMCBjZWxscwpJZGVudHMoc2FuZ2VyKSA8LSAibmV3X2NlbGx0eXBlIgpzdWJfaWRlbnRzIDwtIGNlbGx0eXBlX2NvdW50cyAlPiUKIGZpbHRlcihiaWdfY2x1c3RlciA9PSBwYXJhbXMkY2x1c3RlciwgbiA+IDIwKQpzdWIgPC0gc3Vic2V0KHNhbmdlciwgaWRlbnRzID0gc3ViX2lkZW50cyRuZXdfY2VsbHR5cGUpIApgYGAKCmBgYHtyIGRpbXBsb3RzLCBmaWcuaGVpZ2h0PTUsIGZpZy53aWR0aD0xMn0KCnVtYXBfdGhlbWUgPSB0aGVtZSgKICBheGlzLnRpY2tzID0gZWxlbWVudF9ibGFuaygpLAogIGF4aXMudGV4dCA9IGVsZW1lbnRfYmxhbmsoKSwKICBheGlzLmxpbmUgPSBlbGVtZW50X2xpbmUoY29sb3VyID0gJ2dyYXknLCBzaXplID0gMC4yKSwKICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZT0xMCksCiAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplPTE0LCBmYWNlPSJwbGFpbiIsIGhqdXN0ID0gMCkpCgooRGltUGxvdChzdWIsIGdyb3VwLmJ5PSJuZXdfY2VsbHR5cGUiLCBsYWJlbD1ULCBsYWJlbC5zaXplPTMuMiwgcHQuc2l6ZT0wLjgsIHJlcGVsPVRSVUUsIHJhc3Rlcj1UUlVFKSArIAogIGxhYnMoeT1OVUxMLCB4PSJVTUFQIiwgdGl0bGU9IkNlbGwgdHlwZSIpICsKICB1bWFwX3RoZW1lICsgCiAgTm9MZWdlbmQoKSkgfAooRGltUGxvdChzdWIsIGdyb3VwLmJ5PSJzdGFnZSIsc2h1ZmZsZT1UUlVFLCBwdC5zaXplPTEsIHJlcGVsPVRSVUUsIHJhc3Rlcj1UUlVFKSArIAogIGxhYnMoeT1OVUxMLCB4PSJVTUFQIiwgdGl0bGU9IkRldmVsb3BtZW50YWwgc3RhZ2UiKSArIAogIHVtYXBfdGhlbWUpCiAgCmBgYAoKCmBgYHtyIHRyZWVtYXAsIGZpZy5oZWlnaHQ9NCwgZmlnLndpZHRoPTV9CmdncGxvdChzdWJfaWRlbnRzLCBhZXMoYXJlYSA9IG4sIGxhYmVsID0gZ2x1ZSgie25ld19jZWxsdHlwZX1cbih7bn0pIiksIHN1Ymdyb3VwID0gYmlnX2NsdXN0ZXIpKSArCiAgZ2VvbV90cmVlbWFwKCBmaWxsPWNsdXN0ZXJfbWV0YVtbcGFyYW1zJGNsdXN0ZXJdXVtbImNvbG9yIl1dICkgKwogIGdlb21fdHJlZW1hcF9zdWJncm91cF9ib3JkZXIoKSArCiAgZ2VvbV90cmVlbWFwX3N1Ymdyb3VwX3RleHQocGxhY2UgPSAiY2VudHJlIiwgZ3Jvdz1GLCBhbHBoYSA9IDAuNSwgY29sb3VyID0gImJsYWNrIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250ZmFjZSA9ICJpdGFsaWMiLCBtaW4uc2l6ZSA9IDApICsKICBnZW9tX3RyZWVtYXBfdGV4dChjb2xvdXIgPSAid2hpdGUiLCBwbGFjZSA9ICJ0b3BsZWZ0Iiwgc2l6ZT0xMCwgZ3Jvdz1GLCByZWZsb3cgPSBUKSArCiAgZ2d0aXRsZShnbHVlKCJuPXtzdW0oc3ViX2lkZW50cyRuKX0iKSkKYGBgCgoKCgoKYGBge3IgY29tcHV0ZV9tYXJrZXJzLCBpbmNsdWRlPUZBTFNFfQpEZWZhdWx0QXNzYXkoc3ViKSA8LSAibXVsdGkiCnN1YiA8LSBTZXRJZGVudChzdWIsIHZhbHVlID0gIm5ld19jZWxsdHlwZSIpCgptYXJrZXJfZmlsZW5hbWUgPSBnbHVlKCIuL291dHB1dC9BMDYte3BhcmFtcyRjbHVzdGVyfV9tYXJrZXJzLmNzdiIpCiAKaWYoZmlsZS5leGlzdHMobWFya2VyX2ZpbGVuYW1lKSkgewogc3ViX21hcmtlcnMgPC0gcmVhZC50YWJsZShtYXJrZXJfZmlsZW5hbWUsIHNlcD0iLCIpCn0gZWxzZSB7CiBjbHVzdGVycyA8LSBsZXZlbHMoc3ViQGFjdGl2ZS5pZGVudCkKIHN1Yl9tYXJrZXJzICA8LSBJU09fU1dJVENIX0FMTChzdWIsIGNsdXN0ZXJzLCBhc3NheT0ibXVsdGkiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4ucGN0PTAsIGxvZ2ZjLnRocmVzaG9sZD0wLjQwLCB2ZXJib3NlPVRSVUUpCiB3cml0ZS50YWJsZShzdWJfbWFya2VycywgbWFya2VyX2ZpbGVuYW1lLCBzZXA9IiwiKQp9CgpgYGAKCgojIElzb2Zvcm0gc3dpdGNoZXMKCioqIE5PIE1BUktFUiBGT1VORCAqKiAKYGBge3J9CmtuaXRyOjprbml0X2V4aXQoKQpgYGAKCgpgYGB7ciBwbG90X21hcmtlcl9zY29yZSwgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9MTB9CgoocGxvdF9tYXJrZXJfbWF0cml4X2Fubm90YXRlZChzdWIsIHN1Yl9tYXJrZXJzKSB8IAogcGxvdF9tYXJrZXJfc2NvcmUoc3ViLCBzdWJfbWFya2VycywgZmFjZXQ9RkFMU0UsIG92ZXJsYXBzPTE2KSApICsgIAogcGxvdF9sYXlvdXQod2lkdGhzID0gYyg0NSwgNTUpKQoKYGBgCgpNYXJrZXIgc3BsaXQgcGVyIGNlbGwtdHlwZToKYGBge3IgZmFjZXRlZCwgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9MTJ9CnBsb3RfbWFya2VyX3Njb3JlKHN1Yiwgc3ViX21hcmtlcnMsIGZhY2V0PVRSVUUsIG5jb2w9NSwgb3ZlcmxhcHM9MTYpCmBgYAoKCiMgVG9wIDEwIHN3aXRjaGluZyBnZW5lcyB7LnRhYnNldH0KCgpgYGB7ciBnZW5lX2xpc3QsIGVjaG89RkFMU0V9CmdlbmVfbGlzdCA8LSBzdWJfbWFya2VycyAlPiUKICBncm91cF9ieShnZW5lSWQpICU+JQogIHNsaWNlX21pbihvcmRlcl9ieT1wX3ZhbF9hZGosIG49MSwgd2l0aF90aWVzPUZBTFNFKSAlPiUKICBhcnJhbmdlKHBfdmFsX2FkaikgJT4lCiAgcHVsbChnZW5lSWQpCgpgYGAKCgpgYGB7ciBnZW5lX3JlcG9ydHMsIGZpZy53aWR0aD0xMywgZmlnLmhlaWdodD03LCByZXN1bHRzPSdhc2lzJ30KbG9vcF9lbmQgPSBtaW4oMTAsIGxlbmd0aChnZW5lX2xpc3QpKQpmb3IoZ2VuZSBpbiBnZW5lX2xpc3RbMTpsb29wX2VuZF0pewogIGNhdCgiXG5cbiMjICIsIGdlbmUsICJcblxuIikKICBwPC1pc29zd2l0Y2hfcmVwb3J0KHN1YiwgIm11bHRpIiwgZ2VuZSwgbWFya2VyX2xpc3Q9c3ViX21hcmtlcnMpCiAgcHJpbnQocCkgIAogIGNhdCgiXG5cbiIpCn0KYGBgCgpgYGB7ciBnZW5lcmF0ZV9nZW5lX3JlcG9ydHMsIGluY2x1ZGU9RkFMU0V9CmlmKHBhcmFtcyRkb19odG1sX3JlcG9ydHMpewogIGZvcihnZW5lIGluIGdlbmVfbGlzdCl7CiAgICB0cnkocmVuZGVyX2h0bWxfZ2VuZV9yZXBvcnQoc3ViLCBzdWJfbWFya2VycywgZ2VuZSwgcHJlZml4PXBhcmFtcyRjbHVzdGVyKSkKICB9Cn0KYGBgCgoKCiMgQWxsIGlzb2Zvcm0gc3dpdGNoaW5nIGdlbmVzCgpgYGB7ciBnZW5lX3RhYmxlfQpnZW5lX3N3aXRjaF90YWJsZShzdWJfbWFya2VycywgcGFyYW1zJGNsdXN0ZXIpCmBgYAoKCmBgYHtyIHN3aXRjaF90YWJsZX0KI3N1Yl9zd2l0Y2hlcyA8LSBjb21wdXRlX3N3aXRjaGVzKHN1Yl9tYXJrZXJzKQojZm9ybWF0X3N3aXRjaF90YWJsZShzdWJfc3dpdGNoZXMpCmBgYAoK