126457|class.parallel-events|100|1632597870|gam6itko|PD9waHAKCi8vIGV4YW1wbGUgYmVsb3cgc2hvd3MgaG93IHRvIHN0b3AgY2hpbGQgdGhyZWFkIGZyb20gbWFpbiB0aHJlYWQKCnVzZSBwYXJhbGxlbFx7Q2hhbm5lbCwgRXZlbnRzLCBFdmVudHNcRXZlbnRcVHlwZSwgUnVudGltZX07CgokZm5UaHJlYWQgPSBzdGF0aWMgZnVuY3Rpb24gKENoYW5uZWwgJGNoYW5uZWwpIHsKICAgICRldmVudHMgPSBuZXcgRXZlbnRzKCk7CiAgICAkZXZlbnRzLT5hZGRDaGFubmVsKCRjaGFubmVsKTsKICAgICRldmVudHMtPnNldEJsb2NraW5nKGZhbHNlKTsgLy8gZG9uJ3QgYmxvY2sgb24gRXZlbnRzOjpwb2xsKCkKCiAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgIGlmICgkZXZlbnQgPSAkZXZlbnRzLT5wb2xsKCkpIHsKICAgICAgICAgICAgLy9JdCBzZWVtcywgdGhlIHRhcmdldCBnZXRzIGRlbGV0ZWQgYWZ0ZXIgcmV0dXJuaW5nIGFuIGV2ZW50LCBzbyBhZGQgaXQgYWdhaW4uCiAgICAgICAgICAgICRldmVudHMtPmFkZENoYW5uZWwoJGNoYW5uZWwpOwoKICAgICAgICAgICAgaWYgKFR5cGU6OlJlYWQgPT09ICRldmVudC0+dHlwZSkgewogICAgICAgICAgICAgICAgZWNobyAiLSByZWNlaXZlZCB2YWx1ZTogIi4kZXZlbnQtPnZhbHVlLlBIUF9FT0w7CiAgICAgICAgICAgIH0gZWxzZWlmIChUeXBlOjpDbG9zZSA9PT0gJGV2ZW50LT50eXBlKSB7CiAgICAgICAgICAgICAgICBlY2hvICItIHJlY2VpdmluZyBjbG9zZSBldmVudCIuUEhQX0VPTDsKICAgICAgICAgICAgICAgIHJldHVybiAiaSdtIGRvbmUiOwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBlY2hvICItXG4iOwogICAgICAgIHVzbGVlcCg1MDBfMDAwKTsKICAgIH0KfTsKCi8vIG1haW4gdGhyZWFkCiRydW50aW1lID0gbmV3IFJ1bnRpbWUoKTsKJGNoYW5uZWwgPSBuZXcgQ2hhbm5lbCgpOwokZnV0dXJlID0gJHJ1bnRpbWUtPnJ1bigkZm5UaHJlYWQsIFskY2hhbm5lbF0pOwoKJGNoYW5uZWwtPnNlbmQoJ21lc3NhZ2UxJyk7CnNsZWVwKDIpOwokY2hhbm5lbC0+c2VuZCgnbWVzc2FnZTInKTsKc2xlZXAoMik7CgplY2hvICJjbG9zaW5nIGNoYW5uZWxcbiI7CiRjaGFubmVsLT5jbG9zZSgpOwplY2hvICJmdXR1cmUgc2FpZDogIi4kZnV0dXJlLT52YWx1ZSgpOwplY2hvIFBIUF9FT0w7|1|0 126416|class.parallel-events|100|1631374118|gam6itko|PD9waHAKCi8vIHRoaXMgZXhhbXBsZSBzaG93cyBob3cgRXZlbnRzIGhhbmRsZSBGdXR1cmUgZXZlbnRzCgp1c2UgcGFyYWxsZWxce0V2ZW50cywgRXZlbnRzXEV2ZW50LCBSdW50aW1lfTsKCiRldmVudHMgPSBuZXcgRXZlbnRzKCk7CgokcnVudGltZSA9IG5ldyBSdW50aW1lKCk7CgovL1JlYWQgKHR5cGU6IDEpCiRmdXR1cmUgPSAkcnVudGltZS0+cnVuKAogICAgc3RhdGljIGZ1bmN0aW9uIChzdHJpbmcgJG5hbWUpIHsKICAgICAgICByZXR1cm4gIkZ1dHVyZSMkbmFtZSByZXN1bHQiOwogICAgfSwKICAgIFsnUmVhZCddCik7CiRldmVudHMtPmFkZEZ1dHVyZSgiRnV0dXJlI1JlYWQiLCAkZnV0dXJlKTsKCi8vQ2FuY2VsICAodHlwZTogNCkKJGZ1dHVyZSA9ICRydW50aW1lLT5ydW4oCiAgICBzdGF0aWMgZnVuY3Rpb24gKHN0cmluZyAkbmFtZSkgewogICAgICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCJFeGNlcHRpb24jJG5hbWUiKTsKICAgIH0sCiAgICBbJ0NhbmNlbCddCik7CiRldmVudHMtPmFkZEZ1dHVyZSgiRnV0dXJlI0NhbmNlbCIsICRmdXR1cmUpOwoKLy9LaWxsICAodHlwZTogNSkKJGZ1dHVyZSA9ICRydW50aW1lLT5ydW4oCiAgICBzdGF0aWMgZnVuY3Rpb24gKCkgewogICAgICAgIHNsZWVwKDEwMDAwMCk7CiAgICB9LAogICAgW10KKTsKJGV2ZW50cy0+YWRkRnV0dXJlKCJGdXR1cmUjS2lsbCIsICRmdXR1cmUpOwokZnV0dXJlLT5jYW5jZWwoKTsgLy9raWxsIGl0CgovL0Vycm9yICAodHlwZTogNikKJGZ1dHVyZSA9ICRydW50aW1lLT5ydW4oCiAgICBzdGF0aWMgZnVuY3Rpb24gKCkgewogICAgICAgICRtZW1vcnlFYXRlciA9IFtdOwogICAgICAgICRpID0gMDsKICAgICAgICB3aGlsZSAoKyskaSkgewogICAgICAgICAgICAkbWVtb3J5RWF0ZXJbXSA9ICRpOwogICAgICAgIH0KICAgIH0KKTsKJGV2ZW50cy0+YWRkRnV0dXJlKCJGdXR1cmUjRXJyb3IiLCAkZnV0dXJlKTsKCi8vIHJlYWRpbmcgZXZlbnRzCgovKiogQHZhciBFdmVudCAkZXZlbnQgKi8KZm9yZWFjaCAoJGV2ZW50cyBhcyAkaSA9PiAkZXZlbnQpIHsKICAgIGVjaG8gc3RyX3BhZCgnJywgNTAsICc9JykgLiAiIEVWRU5UXyRpXG4iOwogICAgdmFyX2R1bXAoJGV2ZW50KTsKICAgIGVjaG8gIlxuIjsKfQ==|1|0 124528|class.parallel-events|86|1577026955|s dot laufer at homegear dot email|PD9waHAKLyoqCkV4YW1wbGUgc2hvd2luZyB0aGUgdXNhZ2Ugb2YgZXZlbnRzLgoKVGhlIGRvY3VtZW50YXRpb24gc3RpbGwgaXMgdmVyeSB0aGluLCBzbyBJJ20gbm90IHN1cmUsIHRoZSBleGFtcGxlIGlzIHRoZSBiZXN0IHNvbHV0aW9uLiBCdXQgaXQgd29ya3MuCiovCnVzZSBwYXJhbGxlbFx7Q2hhbm5lbCxSdW50aW1lLEV2ZW50cyxFdmVudHNcRXZlbnR9OwoKJG15VGhyZWFkID0gZnVuY3Rpb24oQ2hhbm5lbCAkY2hhbm5lbCkgewoJJGV2ZW50cyA9IG5ldyBFdmVudHMoKTsKCSRldmVudHMtPmFkZENoYW5uZWwoJGNoYW5uZWwpOwoJLy8kZXZlbnRzLT5zZXRCbG9ja2luZyhmYWxzZSk7IC8vVW5jb21tZW50IHRvIGRvbid0IGJsb2NrIG9uIEV2ZW50czo6cG9sbCgpCgkkZXZlbnRzLT5zZXRUaW1lb3V0KDEwMDAwMDApOyAvL0NvbW1lbnQgd2hlbiBub3QgYmxvY2tpbmcKCgl3aGlsZSh0cnVlKQoJewoJCS8qCgkJLi4uCgkJWW91ciBjb2RlLgoJCS4uLgoJCSovCgoJCS8vUmVhZCBhbGwgYXZhaWxhYmxlIGV2ZW50cwoJCXRyeQoJCXsKCQkJJGV2ZW50ID0gTlVMTDsKCQkJZG8KCQkJewoJCQkJJGV2ZW50ID0gJGV2ZW50cy0+cG9sbCgpOyAvL1JldHVybnMgbm9uLW51bGwgaWYgdGhlcmUgaXMgYW4gZXZlbnQKCQkJCWlmKCRldmVudCAmJiAkZXZlbnQtPnNvdXJjZSA9PSAnbXlDaGFubmVsJykKCQkJCXsKCQkJCQkvL0l0IHNlZW1zLCB0aGUgdGFyZ2V0IGdldHMgZGVsZXRlZCBhZnRlciByZXR1cm5pbmcgYW4gZXZlbnQsCgkJCQkJLy9zbyBhZGQgaXQgYWdhaW4uCgkJCQkJJGV2ZW50cy0+YWRkQ2hhbm5lbCgkY2hhbm5lbCk7CgkJCQkJaWYoJGV2ZW50LT50eXBlID09IEV2ZW50XFR5cGU6OlJlYWQpCgkJCQkJewoJCQkJCQlpZihpc19hcnJheSgkZXZlbnQtPnZhbHVlKSAmJiBjb3VudCgkZXZlbnQtPnZhbHVlKSA+IDApCgkJCQkJCXsKCQkJCQkJCWlmKCRldmVudC0+dmFsdWVbJ25hbWUnXSA9PSAnc3RvcCcpCgkJCQkJCQl7CgkJCQkJCQkJZWNobyAnU3RvcHBpbmcgdGhyZWFkJzsKCQkJCQkJCQlyZXR1cm47IC8vU3RvcAoJCQkJCQkJfQoJCQkJCQkJZWxzZQoJCQkJCQkJewoJCQkJCQkJCWVjaG8gJ0V2ZW50OiAnLiRldmVudC0+dmFsdWVbJ25hbWUnXS4nID0+ICcuJGV2ZW50LT52YWx1ZVsndmFsdWUnXS5QSFBfRU9MOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJCWVsc2UgaWYoJGV2ZW50LT50eXBlID09IEV2ZW50XFR5cGU6OkNsb3NlKSByZXR1cm47IC8vU3RvcAoJCQkJfQoJCQl9CgkJCXdoaWxlKCRldmVudCk7CgkJfQoJCWNhdGNoKEV2ZW50c1xFcnJvclxUaW1lb3V0ICRleCkKCQl7CgkJCS8vVGltZW91dAoJCQllY2hvICdUaW1lb3V0Jy5QSFBfRU9MOwoJCX0KCX0KfTsKCmNsYXNzIE15Q2xhc3MgewoJcHJpdmF0ZSAkcnVudGltZTsKCXByaXZhdGUgJGZ1dHVyZTsKCXByaXZhdGUgJGNoYW5uZWw7CgoJcHVibGljIGZ1bmN0aW9uIHN0YXJ0KCkgewoJCS8vQ3JlYXRlIHJ1bnRpbWUKCQkkdGhpcy0+cnVudGltZSA9IG5ldyBSdW50aW1lKCk7CgoJCS8vQ3JlYXRlIGJ1ZmZlcmVkIGNoYW5uZWwuCgkJLy9CdWZmZXJlZCBjaGFubmVscyBkb24ndCBibG9jayBvbiBDaGFubmVsOjpzZW5kKCkuCgkJLy9Ob3RlIHRoYXQgdGFyZ2V0IG5hbWVzIG5lZWQgdG8gYmUgdW5pcXVlIHdpdGhpbiB0aGUgcHJvY2Vzcy4KCQkkdGhpcy0+Y2hhbm5lbCA9IENoYW5uZWw6Om1ha2UoJ215Q2hhbm5lbCcsIENoYW5uZWw6OkluZmluaXRlKTsKCgkJZ2xvYmFsICRteVRocmVhZDsKCQkkdGhpcy0+ZnV0dXJlID0gJHRoaXMtPnJ1bnRpbWUtPnJ1bigkbXlUaHJlYWQsIFskdGhpcy0+Y2hhbm5lbF0pOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzdG9wKCkgewoJCSR0aGlzLT5jaGFubmVsLT5zZW5kKFsnbmFtZScgPT4gJ3N0b3AnLCAndmFsdWUnID0+IHRydWVdKTsKCgkJJHRoaXMtPmZ1dHVyZS0+dmFsdWUoKTsgLy9XYWl0IGZvciB0aHJlYWQgdG8gZmluaXNoCgkJJHRoaXMtPmNoYW5uZWwtPmNsb3NlKCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGVtaXQoc3RyaW5nICRuYW1lLCAkdmFsdWUpCgl7CgkJJHRoaXMtPmNoYW5uZWwtPnNlbmQoWyduYW1lJyA9PiAkbmFtZSwgJ3ZhbHVlJyA9PiAkdmFsdWVdKTsKCX0KfQoKJGEgPSBuZXcgTXlDbGFzcygpOwokYS0+c3RhcnQoKTsKCmZvcigkaSA9IDA7ICRpIDwgNTsgJGkrKykKewoJJGEtPmVtaXQoJ3Rlc3QnLCAkaSk7CglzbGVlcCgwLjUpOwp9CgpzbGVlcCgyKTsKCmZvcigkaSA9IDU7ICRpIDwgMTA7ICRpKyspCnsKCSRhLT5lbWl0KCd0ZXN0JywgJGkpOwoJc2xlZXAoMC41KTsKfQoKJGEtPnN0b3AoKTsKPz4=|18|3