Corrected Patch for Epoll Support
[email protected] (Rusty Conover) Thu, 15 Sep 2005 00:53:38 -0600
| Newsgroups | perl.loop |
|---|---|
| Organization | InfoGears Inc. |
| Message-ID | <[email protected]> |
--------------030702040401050208050103 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi All, Here is a fixed patch that fixes one bug in the previous patch I sent. I failed to properly clear the epoll flags for the descriptor when the delete method is called. That meant that epoll flags were persisted even when the watcher has been removed and a new watcher was installed on the same descriptor. Thanks, Rusty -- Rusty Conover InfoGears Inc. http://www.infogears.com 406-587-5432 --------------030702040401050208050103 Content-Type: text/plain; name="epoll-2.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="epoll-2.diff" ZGlmZiAtdXIgLi9FdmVudC0xLjA2L2MvdW5peC5jIC4uL0V2ZW50LTEuMDYvYy91bml4LmMK LS0tIC4vRXZlbnQtMS4wNi9jL3VuaXguYwkyMDA1LTA5LTExIDE0OjEwOjM4LjAwMDAwMDAw MCAtMDYwMAorKysgLi4vRXZlbnQtMS4wNi9jL3VuaXguYwkyMDA1LTA5LTEzIDAyOjA5OjQ4 LjAwMDAwMDAwMCAtMDYwMApAQCAtMSwzICsxLDIxMCBAQAorI2lmIGRlZmluZWQoSEFTX0VQ T0xMKQorCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNl Lmg+CisjaW5jbHVkZSA8c3lzL3F1ZXVlLmg+CisjaW5jbHVkZSA8c3lzL2Vwb2xsLmg+CisK K3N0cnVjdCBlcG9sbG9wIHsKKwkvKiB3YXRjaGVyIHBvaW50ZXJzICovCisJcGVfaW8gKipm ZHM7CisJaW50IG5mZHM7CisJc3RydWN0IGVwb2xsX2V2ZW50ICpldmVudHM7CisJaW50IG5l dmVudHM7CisJaW50IGVwZmQ7Cit9OworCitzdHJ1Y3QgZXBvbGxvcCBlcG9sbG9wOworCisK KyNlbmRpZiAvKiBIQVNfRVBPTEwgKi8KKworLyogUXVldWUgc29tZSBJTyBiYWNrIGludG8g dGhlIGNhbGxiYWNrIHN5c3RlbSBmb3Igc29tZSBiaXRzICovCitzdGF0aWMgdm9pZCBfcXVl dWVfaW8ocGVfaW8gKndhLCBpbnQgZ290KSB7CisgICAgcGVfaW9ldmVudCAqZXY7CisgICAg Z290ICY9IHdhLT5wb2xsOworICAgIGlmICghZ290KSB7CisJaWYgKFdhREVCVUd4KHdhKSA+ PSAzKSB7CisJICAgIFNUUkxFTiBuX2E7CisJICAgIHdhcm4oIkV2ZW50OiBpbyAnJXMnIHF1 ZXVlZCBub3RoaW5nIiwgU3ZQVih3YS0+YmFzZS5kZXNjLCBuX2EpKTsKKwl9CisJcmV0dXJu OworICAgIH0KKyAgICBldiA9IChwZV9pb2V2ZW50KikgKCp3YS0+YmFzZS52dGJsLT5uZXdf ZXZlbnQpKChwZV93YXRjaGVyKikgd2EpOworICAgICsrZXYtPmJhc2UuaGl0czsKKyAgICBl di0+Z290IHw9IGdvdDsgICAgCisgICAgcXVldWVFdmVudCgocGVfZXZlbnQqKSBldik7Cit9 CisKK3N0YXRpYyB2b2lkIGJvb3RfZXBvbGwoKSB7CisjaWYgZGVmaW5lZChIQVNfRVBPTEwp CisJc3RydWN0IHJsaW1pdCBybDsKKwlpbnQgZXBmZCwgbmZpbGVzOworCisJLyogR2V0IHRo ZSB0b3RhbCBudW1iZXIgb2YgZGVzY3JpcHRvcnMgYWJsZSB0byBiZSBvcGVuZWQgaW4gdGhp cyBwcm9jZXNzCisJICAgYW5kIGFsbG9jYXRlIGVub3VnaCBzbG90cyB0byBoYW5kbGUgYWxs IG9mIHRoZW0gKi8KKwlpZiAoZ2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZybCkgPT0gMCkg eworCQlpZihybC5ybGltX2N1ciAhPSBSTElNX0lORklOSVRZKSB7CisJCQluZmlsZXMgPSBy bC5ybGltX2N1cjsKKwkJfSBlbHNlIHsKKwkJCS8qIEFuIGFyYml0cmFyeSBsaW1pdCBvZiBk ZXNjcmlwdG9ycyAqLworCQkJbmZpbGVzID0gNjQqMTAyNCoxMDI0OworCQl9CisJfSBlbHNl IHsKKwkJY3JvYWsoIkZhaWxlZCB0byBnZXQgb3BlbmVkIGZpbGUgaGFuZGxlIGxpbWl0Iik7 CisJfQorCQorCS8qIEluaXRhbGl6ZSB0aGUga2VybmVsIHF1ZXVlLCB3aXRoIGFuIGluaXRp YWwgc2l6ZSBvZgorCSBkZXNjcmlwdG9ycywgZG9uJ3Qgc2l6ZSB0byB0aGUgbWF4aW11bSBo ZXJlLCBzaW5jZSB0aGUga2VybmVsCisJIHdpbGwgYXV0b21hdGljYWxseSByZXNpemUuICov CisKKwlpZiAoKGVwZmQgPSBlcG9sbF9jcmVhdGUoMTAwKSkgPT0gLTEpIHsKKwkJY3JvYWso IkZhaWxlZCB0byBjcmVhdGUgZXBvbGwgd2l0aCAlZCBmaWxlcyIsIG5maWxlcyk7CisJfQor CisJLyogc2V0IHRoZSBjbG9zZSBvbiBleGVjIGZsYWcgKi8KKwlmY250bChlcGZkLCBGX1NF VEZELCAxKTsKKworCWVwb2xsb3AuZXBmZCA9IGVwZmQ7CisJCisJLyogSW5pdCBhbmQgYWxs b2MgZmllbGRzICovCisJRXZOZXcoOSwgZXBvbGxvcC5ldmVudHMsIG5maWxlcywgc3RydWN0 IGVwb2xsX2V2ZW50KTsKKwllcG9sbG9wLm5ldmVudHMgPSBuZmlsZXM7CisKKwlFdk5ldyg5 LCBlcG9sbG9wLmZkcywgbmZpbGVzLCBwZV9pbyAqKTsKKwllcG9sbG9wLm5mZHMgPSBuZmls ZXM7CisKKyNlbmRpZiAvKkhBU19FUE9MTCovCit9CisKKworCisKKworI2lmIGRlZmluZWQo SEFTX0VQT0xMKQorCitzdGF0aWMgdm9pZCBwZV9zeXNfc2xlZXAoZG91YmxlIGxlZnQpIHsK KwlpbnQgcmV0OworCWRvdWJsZSB0MCA9IE5WdGltZSgpOworCWRvdWJsZSB0MSA9IHQwICsg bGVmdDsKKwl3aGlsZSAoMSkgeworCQkvKiBObyBuZWVkIHRvIGNhbGwgZXBvbGwgaGVyZSB3 aGVuIHBvbGwgd2lsbCB3b3JrIGp1c3QgZmluZSAqLworCQlyZXQgPSBwb2xsKDAsIDAsIChp bnQpIChsZWZ0ICogMTAwMCkpOyAvKiBob3BlIHplcm9lcyBva2F5ICovCisJCWlmIChyZXQg PCAwICYmIGVycm5vICE9IEVBR0FJTiAmJiBlcnJubyAhPSBFSU5UUikKKwkJCWNyb2FrKCJw b2xsKCUuMmYpIGdvdCBlcnJubyAlZCIsIGxlZnQsIGVycm5vKTsKKwkJbGVmdCA9IHQxIC0g TlZ0aW1lKCk7CisJCWlmIChsZWZ0ID4gSW50ZXJ2YWxFcHNpbG9uKSB7CisJCQlpZiAocmV0 PT0wKSArK1RpbWVvdXRUb29FYXJseTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWJyZWFrOwor CX0KK30KKworc3RhdGljIHZvaWQgcGVfc3lzX2lvX2FkZCAocGVfaW8gKmV2KSB7CisJc3Ry dWN0IHN0YXQgYnVmOworCVNUUkxFTiBuX2E7CQorCWludCBvcCA9IEVQT0xMX0NUTF9BREQ7 CisKKworCWlmIChldi0+ZmQgPD0gMCkgeworCQljcm9haygicGVfc3lzX2lvX2FkZDogbm9u LXZhbGlkIGZkICglZCkiLCBldi0+ZmQpOworCQlyZXR1cm47CisJfQorCisJZXBvbGxvcC5l dmVudHNbZXYtPmZkXS5ldmVudHMgPSAwOworCisJaWYoZXYtPnBvbGwgJiBQRV9FKSB7CisJ CWVwb2xsb3AuZXZlbnRzW2V2LT5mZF0uZXZlbnRzIHw9IEVQT0xMUFJJOworCX0KKwkKKwlp Zihldi0+cG9sbCAmIFBFX1IpIHsKKwkJZXBvbGxvcC5ldmVudHNbZXYtPmZkXS5ldmVudHMg fD0gRVBPTExJTiB8IEVQT0xMUFJJIHwgRVBPTExFUlIgfCBFUE9MTEhVUDsKKwl9CisJaWYo ZXYtPnBvbGwgJiBQRV9XKSB7CisJCWVwb2xsb3AuZXZlbnRzW2V2LT5mZF0uZXZlbnRzIHw9 IEVQT0xMT1VUIHwgRVBPTExFUlI7CisJfQorCQorCS8qIElmIHRoaXMgZGVzY3JpcHRvciBp cyBhbHJlYWR5IHVzZWQgd2UgbmVlZCB0byBtb2RpZnkgdGhlIGZsYWdzICovCisJaWYoZXBv bGxvcC5mZHNbZXYtPmZkXSAhPSBOVUxMKSB7CisJCW9wID0gRVBPTExfQ1RMX01PRDsJICAg IAorCX0gCisKKwkKKwllcG9sbG9wLmV2ZW50c1tldi0+ZmRdLmRhdGEucHRyID0gZXY7CisJ ICAgICAgICAKKwlpZiAoZXBvbGxfY3RsKGVwb2xsb3AuZXBmZCwgb3AsIGV2LT5mZCwgJmVw b2xsb3AuZXZlbnRzW2V2LT5mZF0pID09IC0xKSB7CQkKKwkJLyogQ2hlY2sgaWYgaXRzIGEg YmFkIGRlc2NyaXB0b3IgKi8KKwkJaWYgKGV2LT5mZCA+PSAwICYmIFBlcmxMSU9fZnN0YXQo ZXYtPmZkLCAmYnVmKSA8IDAgJiYgZXJybm8gPT0gRUJBREYpIHsKKwkJICAgIHdhcm4oIkV2 ZW50OiAnJXMnIHdhcyB1bmV4cGVjdGVkbHkgY2xvc2VkIiwKKwkJCSBTdlBWKGV2LT5iYXNl LmRlc2MsIG5fYSkpOworCQkgICAgcGVfaW9fcmVzZXRfaGFuZGxlKChwZV93YXRjaGVyKikg ZXYpOworCQkgICAgcmV0dXJuOworCQl9CisJCWNyb2FrKCJGYWlsZWQgdG8gY2hhbmdlIHRo ZSBlcG9sbCBzZXR0aW5ncyB1bmtub3duIGVycm9yIiwgZXYtPmZkKTsKKwl9CisKKwkvKiBT YXZlIHRoZSBwb2ludGVyIHRvIHRoZSBjdXJyZW50IGV2ZW50ICovCisJZXBvbGxvcC5mZHNb ZXYtPmZkXSA9IGV2OyAgICAKKwlyZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIHBlX3N5c19p b19kZWwgKHBlX2lvICpldikgeworCWlmKGV2LT5mZCA8IDApIHsKKwkJcmV0dXJuOworCX0K KworCWlmIChlcG9sbF9jdGwoZXBvbGxvcC5lcGZkLCBFUE9MTF9DVExfREVMLCBldi0+ZmQs ICZlcG9sbG9wLmV2ZW50c1tldi0+ZmRdKSA9PSAtMSkKKwkJY3JvYWsoIkZhaWxlZCB0byBk ZWxldGUgZnJvbSBlcG9sbCIpOworCisJZXBvbGxvcC5mZHNbZXYtPmZkXSA9IDA7CisJCisJ cmV0dXJuOworfQorCisKK3N0YXRpYyB2b2lkIHBlX3N5c19tdWx0aXBsZXgoZG91YmxlIHRp bWVvdXQpIHsKKwlpbnQgaSwgcmVzLCByZWFsX3RpbWVvdXQ7CisJCisJaWYodGltZW91dCA8 PSAwKSB7CisJCXJlYWxfdGltZW91dCA9IDA7CisJfSBlbHNlIHsKKwkJcmVhbF90aW1lb3V0 ID0gdGltZW91dCAqIDEwMDA7CisJfQorCisJcmVzID0gZXBvbGxfd2FpdChlcG9sbG9wLmVw ZmQsIGVwb2xsb3AuZXZlbnRzLCBlcG9sbG9wLm5ldmVudHMsIHJlYWxfdGltZW91dCk7CisJ CisJaWYgKHJlcyA9PSAtMSkgeworCQlyZXR1cm47CisJfQorCQorCWZvciAoaSA9IDA7IGkg PCByZXM7IGkrKykgeworCQlpbnQgd2hhdCA9IGVwb2xsb3AuZXZlbnRzW2ldLmV2ZW50czsJ CQorCQlwZV9pbyAqdGhpc193YXRjaGVyID0gKHN0cnVjdCBwZV9pbyAqKWVwb2xsb3AuZXZl bnRzW2ldLmRhdGEucHRyOworICAgCisJCS8qIEluIHRoZSBldmVudCBvZiBhbiBlcnJvciBz aWduYWwgZWl0aGVyIHRoZSByZWFkIG9yIHRoZSB3cml0ZSBjYWxsYmFjayAqLworICAgICAg ICAgICAgICAgIGlmICh3aGF0ICYgRVBPTExIVVAgfHwgd2hhdCAmIEVQT0xMRVJSKSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICB3aGF0IHw9IEVQT0xMSU4gfCBFUE9MTE9VVDsKKwkJ fQorCisJCWlmICh3aGF0ICYgRVBPTExJTikgeworCQkJX3F1ZXVlX2lvKHRoaXNfd2F0Y2hl ciwgUEVfUik7CisJCX0KKworCQlpZiAod2hhdCAmIEVQT0xMT1VUKSB7CisJCQlfcXVldWVf aW8odGhpc193YXRjaGVyLCBQRV9XKTsKKwkJfQorCX0KKwlyZXR1cm47Cit9CisKKyNlbmRp ZiAvKiBIQVNfRVBPTEwgKi8KKworCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiBFUE9MTCAqLworCisKKwogI2lmIGRlZmluZWQoSEFTX0RFVlBPTEwpCiAjaW5jbHVkZSA8 c3lzL2RldnBvbGwuaD4KICAgICBzdGF0aWMgaW50IGRwZmQ9MDsKQEAgLTUzLDI0ICsyNjAs OSBAQAogICAgIHJldHVybiAtMTsKIH0KIAotc3RhdGljIHZvaWQgX3F1ZXVlX2lvKHBlX2lv ICp3YSwgaW50IGdvdCkgewotICAgIHBlX2lvZXZlbnQgKmV2OwotICAgIGdvdCAmPSB3YS0+ cG9sbDsKLSAgICBpZiAoIWdvdCkgewotCWlmIChXYURFQlVHeCh3YSkgPj0gMykgewotCSAg ICBTVFJMRU4gbl9hOwotCSAgICB3YXJuKCJFdmVudDogaW8gJyVzJyBxdWV1ZWQgbm90aGlu ZyIsIFN2UFYod2EtPmJhc2UuZGVzYywgbl9hKSk7Ci0JfQotCXJldHVybjsKLSAgICB9Ci0g ICAgZXYgPSAocGVfaW9ldmVudCopICgqd2EtPmJhc2UudnRibC0+bmV3X2V2ZW50KSgocGVf d2F0Y2hlciopIHdhKTsKLSAgICArK2V2LT5iYXNlLmhpdHM7Ci0gICAgZXYtPmdvdCB8PSBn b3Q7Ci0gICAgcXVldWVFdmVudCgocGVfZXZlbnQqKSBldik7Ci19CiAKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIERFVlBPTEwgKi8KLSNp ZiBkZWZpbmVkKEhBU19ERVZQT0xMKSAmJiAhUEVfU1lTX0lPCisjaWYgZGVmaW5lZChIQVNf REVWUE9MTCkgJiYgIVBFX1NZU19JTyAmJiAhZGVmaW5lZChIQVNfRVBPTEwpCiAjZGVmaW5l IFBFX1NZU19JTyAxCiAKIHN0YXRpYyB2b2lkIHBlX3N5c19zbGVlcChkb3VibGUgbGVmdCkg ewpAQCAtMjI5LDcgKzQyMSw3IEBACiAjZW5kaWYgLypIQVNfREVWUE9MTCovCiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFBPTEwgKi8K LSNpZiBkZWZpbmVkKEhBU19QT0xMKSAmJiAhUEVfU1lTX0lPCisjaWYgZGVmaW5lZChIQVNf UE9MTCkgJiYgIVBFX1NZU19JTyAmJiAhZGVmaW5lZChIQVNfRVBPTEwpCiAjZGVmaW5lIFBF X1NZU19JTyAxCiAKIHN0YXRpYyBzdHJ1Y3QgcG9sbGZkICpQb2xsZmQ9MDsKQEAgLTM0Niw3 ICs1MzgsNyBAQAogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqIFNFTEVDVCAqLwotI2lmIGRlZmluZWQoSEFTX1NFTEVDVCkgJiYgIVBF X1NZU19JTworI2lmIGRlZmluZWQoSEFTX1NFTEVDVCkgJiYgIVBFX1NZU19JTyAmJiAhZGVm aW5lZChIQVNfRVBPTEwpCiAjZGVmaW5lIFBFX1NZU19JTyAxCiAKIHN0YXRpYyBpbnQgTmZk czsKT25seSBpbiAuLi9FdmVudC0xLjA2L2M6IHVuaXguY34KZGlmZiAtdXIgLi9FdmVudC0x LjA2L0NoYW5nZUxvZyAuLi9FdmVudC0xLjA2L0NoYW5nZUxvZwotLS0gLi9FdmVudC0xLjA2 L0NoYW5nZUxvZwkyMDA1LTA5LTExIDE0OjEwOjM4LjAwMDAwMDAwMCAtMDYwMAorKysgLi4v RXZlbnQtMS4wNi9DaGFuZ2VMb2cJMjAwNS0wOS0xMSAxOTo0NDoxMy4wMDAwMDAwMDAgLTA2 MDAKQEAgLTEsMyArMSwxNCBAQAorMjAwNS0wOS0xMSAgICA8cmNvbm92ZXJAaW5mb2dlYXJz LmNvbT4KKworCSogQWRkIGVwb2xsIHN1cHBvcnQgb24gbGludXgsIGVuYWJsZWQgd2l0aCAt REhBU19FUE9MTAorCisJKiBDaGFuZ2UgdGhlIHQvaW8udCB0ZXN0IHRvIGFkZCB0aGUgd2Fy bmluZyBoYW5kbGVyIGJlZm9yZSB0aGUgZmQKKwlpcyBhZGRlZCB0byB0aGUgRXZlbnQgb2Jq ZWN0LCBiZWNhdXNlIHdpdGggZXBvbGwgdGhlIEVCQURGIGVycm9yCisJd2lsbCBiZSByZXBv cnRlZCB3aGVuIHRoZSBmZCBpcyBhZGRlZCB0byB0aGUgZXBvbGwgZmQuCisKKwkqIENoYW5n ZSBFdmVudC54cyB0byBjYWxsIGJvb3RfZXBvbGwoKSB0byBpbml0aWFsaXplIHRoZSBlcG9s bCBmZCwKKwlzbyBpdCBjYW4gYmUgdXNlZCBsYXRlciBvbi4KKwogMjAwNS0wNS0xNCAgICA8 am9zaHVhQGFsd2F5cy5qb3kuZXRoLm5ldD4KIAogCSogUmVsZWFzZSAxLjA2LgpPbmx5IGlu IC4uL0V2ZW50LTEuMDY6IENoYW5nZUxvZ34KT25seSBpbiAuLi9FdmVudC0xLjA2OiBFdmVu dC0xLjA2LnRhci5negpkaWZmIC11ciAuL0V2ZW50LTEuMDYvRXZlbnQueHMgLi4vRXZlbnQt MS4wNi9FdmVudC54cwotLS0gLi9FdmVudC0xLjA2L0V2ZW50LnhzCTIwMDUtMDktMTEgMTQ6 MTA6MzguMDAwMDAwMDAwIC0wNjAwCisrKyAuLi9FdmVudC0xLjA2L0V2ZW50LnhzCTIwMDUt MDktMTEgMTk6Mjc6MjcuMDAwMDAwMDAwIC0wNjAwCkBAIC0yOTYsNiArMjk2LDcgQEAKICAg Ym9vdF9pZGxlKCk7CiAgIGJvb3RfdGltZXIoKTsKICAgYm9vdF9pbygpOworICBib290X2Vw b2xsKCk7CiAgIGJvb3RfZGV2cG9sbCgpOwogICBib290X3ZhcigpOwogICBib290X3RpZWQo KTsKZGlmZiAtdXIgLi9FdmVudC0xLjA2L01ha2VmaWxlLlBMIC4uL0V2ZW50LTEuMDYvTWFr ZWZpbGUuUEwKLS0tIC4vRXZlbnQtMS4wNi9NYWtlZmlsZS5QTAkyMDA1LTA5LTExIDE0OjEw OjM4LjAwMDAwMDAwMCAtMDYwMAorKysgLi4vRXZlbnQtMS4wNi9NYWtlZmlsZS5QTAkyMDA1 LTA5LTExIDE5OjI3OjAxLjAwMDAwMDAwMCAtMDYwMApAQCAtMTEsNiArMTEsNyBAQAogbXkg QG9wdD0oUFJFUkVRX1BNID0+IHsgVGVzdCA9PiAxIH0sCiAJIFZFUlNJT05fRlJPTQk9PiAi Li9saWIvRXZlbnQucG0iLAogCSBOQU1FICAgICAgCT0+ICJFdmVudCIsCisJIERFRklORSAg ICAgICAgID0+ICctREhBU19FUE9MTCcsCiAJIFRZUEVNQVBTICAgICAgID0+IFsnLi9saWIv RXZlbnQvdHlwZW1hcCddLAogCSBJTkMJCT0+ICctSWMgLUlsaWIvRXZlbnQnLAogCSBICQk9 PiBbZ2xvYigiYy8qIiksIGdsb2IoIiouaCIpLCAibGliL0V2ZW50L0V2ZW50QVBJLmgiXSwK T25seSBpbiAuLi9FdmVudC0xLjA2L3Q6IGZvby5ydW4KZGlmZiAtdXIgLi9FdmVudC0xLjA2 L3QvaW8udCAuLi9FdmVudC0xLjA2L3QvaW8udAotLS0gLi9FdmVudC0xLjA2L3QvaW8udAky MDA1LTA5LTExIDE5OjQ3OjQ0LjAwMDAwMDAwMCAtMDYwMAorKysgLi4vRXZlbnQtMS4wNi90 L2lvLnQJMjAwNS0wOS0xMSAxNTo0OTo0My4wMDAwMDAwMDAgLTA2MDAKQEAgLTIzLDEyICsy Myw2IEBACiAKIG15ICRub3RpY2VkX2JvZ3VzX2ZkPTA7CiBteSAkYm9ndXNfdGltZW91dD0w OwotbXkgJGJvZ3VzID0gRXZlbnQtPmlvKGRlc2MgPT4gJ29vcHMnLCBwb2xsID0+ICdyJywg ZmQgPT4gMTIzLAotCQkgICAgICB0aW1lb3V0ID0+IC4xLCBjYiA9PiBzdWIgewotCQkJICAr KyRib2d1c190aW1lb3V0OwotCQkgICAgICB9KTsKLQotcHJpbnQgImJvZ3VzOiAkYm9ndXNc biI7CiAKICRTSUd7X19XQVJOX199ID0gc3ViIHsKICAgICBteSAkaXNfaXQgPSAkX1swXSA9 fiBtL1wnb29wc1wnIHdhcyB1bmV4cGVjdGVkbHkvOwpAQCAtMzksNiArMzMsMTIgQEAKICAg ICB9CiB9OwogCisKK215ICRib2d1cyA9IEV2ZW50LT5pbyhkZXNjID0+ICdvb3BzJywgcG9s bCA9PiAncicsIGZkID0+IDEyMywKKwkJICAgICAgdGltZW91dCA9PiAuMSwgY2IgPT4gc3Vi IHsKKwkJCSAgKyskYm9ndXNfdGltZW91dDsKKwkJICAgICAgfSk7CisKIHN1YiBuZXdfcGlw ZSB7CiAgICAgbXkgKCRjbnQpID0gQF87CiAgICAgbXkgKCRyLCR3KSA9IChnZW5zeW0sIGdl bnN5bSk7Cg== --------------030702040401050208050103--