124174|function.prev|33|1567695374|Mikhail|RnVuY3Rpb24gdG8gZ2V0IGVsZW1lbnQgaW4gYXJyYXksIHRoYXQgZ29lcyBwcmV2aW91cyB5b3VyIGtleSBvciBmYWxzZSBpZiBpdCBub3QgZXhlaXN0cyBvciBrZXkgZG9lc24ndCBpc3NldCBpbiBhcnJheS4KCjw/cGhwCgpmdW5jdGlvbiBwcmV2aW91c0VsZW1lbnQoYXJyYXkgJGFycmF5LCAkY3VycmVudEtleSkKewogICAgaWYgKCFpc3NldCgkYXJyYXlbJGN1cnJlbnRLZXldKSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGVuZCgkYXJyYXkpOwogICAgZG8gewogICAgICAgICRrZXkgPSBhcnJheV9zZWFyY2goY3VycmVudCgkYXJyYXkpLCAkYXJyYXkpOwogICAgICAgICRwcmV2aW91c0VsZW1lbnQgPSBwcmV2KCRhcnJheSk7CiAgICB9CiAgICB3aGlsZSAoJGtleSAhPSAkY3VycmVudEtleSk7CgogICAgcmV0dXJuICRwcmV2aW91c0VsZW1lbnQ7Cn0=|1|2 114735|function.prev|0|1396242563|MicroVB INC|U29tZSBjb3JyZWN0aW9ucyB0byB0aGUgcHJldmlvdXMgZnVuY3Rpb24uCi0gV2hlbiBwcmV2KCkgYW5kIG5leHQoKSBkaXN0YW5jZSBpcyBub3cgY2FsY3VsYXRlZCBwcm9wZXJseSByZXR1cm5pbmcgdGhlICdjbG9zZXInIG9uZS4KLSBXaGVuIGV4YWN0IGlzIGZhbHNlLCBhbmQgYW4gaXRlbSBleGlzdHMgd2l0aCB0aGUga2V5IHNlYXJjaGVkIGZvciwgaXQgbm93IHJldHVybnMgdGhhdCBlbnRyeSBpbnN0ZWFkIG9mIG5leHQvcHJldiBjbG9zZXN0Ci0gQXQgZW5kcyBvZiB0aGUgYXJyYXksIHNvbWV0aW1lcyB3aGVuIG1vdmluZyBwYXN0IHVzaW5nIG5leHQoKSBvciBwcmV2KCksIGl0IGNhdXNlZCByZXN1bHRzIHRvIGRpZS4gVGhpcyB3YXMgY29ycmVjdGVkLgotIEFkZGVkIGZpZWxkIHRvIHJlc3VsdCBzdGF0aW5nIHdoZXRoZXIgdGhlIG1hdGNoIHdhcyAnZXhhY3QnICgnZXhhY3QnPT50cnVlKSwgb3IgbmVhcmVzdCAoJ2V4YWN0Jz0+ZmFsc2UpCgo8P3BocApmdW5jdGlvbiBuZWFyZXN0KCRhcnJheSwgJHZhbHVlLCAkZXhhY3Q9ZmFsc2UpIHsKCS8vIEluaXRpYWxpemUgVmFyaWFibGVzCiAgICAkbmV4dCA9IGZhbHNlOwogICAgJHByZXYgPSBmYWxzZTsKICAgICRyZXR1cm4gPSBmYWxzZTsKCgkkYXJyX2JlZ2luID0gZmFsc2U7CgkkYXJyX2VuZCA9IGZhbHNlOwoJICAgIAoJJGV4YWN0X21hdGNoID0gZmFsc2U7CgkJCiAgICAKICAgIGlmKCRleGFjdCAmJiBpc3NldCgkYXJyYXlbJHZhbHVlXSkpIHsKICAgICAgICAvLyBJZiBleGFjdCBtYXRjaCBmb3VuZCwgYW5kIHNlYXJjaGluZyBmb3IgZXhhY3QgKG5vdCBuZWFyZXN0KSwgcmV0dXJuIHJlc3VsdC4KICAgICAgICAkcmV0dXJuID0gQXJyYXkoJHZhbHVlPT4kYXJyYXlbJHZhbHVlXSk7CgkJJGV4YWN0X21hdGNoID0gdHJ1ZTsKCX0gZWxzZWlmICghJGV4YWN0ICYmIGlzc2V0KCRhcnJheVskdmFsdWVdKSkgewogICAgICAgIC8vIElmIGV4YWN0IG1hdGNoIGZvdW5kLCBhbmQgc2VhcmNoaW5nIGZvciBuZWFyZXN0LCByZXR1cm4gcmVzdWx0LgogICAgICAgICRyZXR1cm4gPSBBcnJheSgkdmFsdWU9PiRhcnJheVskdmFsdWVdKTsKCQkkZXhhY3RfbWF0Y2ggPSB0cnVlOwogICAgfSBlbHNlIHsKCgkJaWYoIWlzc2V0KCRhcnJheVskdmFsdWVdKSAmJiAhJGV4YWN0KSB7CgkJCS8vIEluc2VydCBlbGVtZW50IHRoYXQgZG9lc24ndCBleGlzdCBzbyBuZWFyZXN0IGNhbiBiZSBmb3VuZAoJCQkkYXJyYXlbJHZhbHVlXSA9ICctJzsKCQl9CgkKCQkvLyBTb3J0IGFycmF5IHNvIGluamVjdGVkIHJlY29yZCBpcyBuZWFyIHJlbGF0aXZlIG51bWVyaWNzCiAgICAgICAga3NvcnQoJGFycmF5KTsgLy8gU29ydCBhcnJheSBvbiBrZXkKCgkJLy8gU2V0IHN0YXJ0IGFuZCBlbmQga2V5cwoJCSRhcnJfYmVnaW4gPSBrZXkoJGFycmF5KTsKCQllbmQoJGFycmF5KTsKCQkkYXJyX2VuZCA9IGtleSgkYXJyYXkpOwoJCXJlc2V0KCRhcnJheSk7CgkJCgkJLy8gTG9vcCB0aHJvdWdoIGFycmF5IHVudGlsIG1hdGNoIGlzIGZvdW5kLCB0aGVuIHNldCAkcHJldiBhbmQgJG5leHQgdG8gdGhlIHJlc3BlY3RpdmUga2V5cyBpZiBleGlzdAogICAgICAgIHdoaWxlICggIWlzX251bGwoJGtleSA9IGtleSgkYXJyYXkpKSApIHsKICAgICAgICAgICAgJHZhbCA9IGN1cnJlbnQoJGFycmF5KTsKICAgICAgICAgICAgaWYoJGtleSA9PSAkdmFsdWUpIHsKCQkJCWlmKCR2YWx1ZSA8PiAkYXJyX2JlZ2luKSB7CgkJCQkJcHJldigkYXJyYXkpOyAvLyBHZXQgZW50cnkgYmVmb3JlIHRoaXMgb25lCgkJCQkJJHByZXYgPSBrZXkoJGFycmF5KTsKCQkJCX0KCQkJCQkJCQkJCgkJCQluZXh0KCRhcnJheSk7ICAgICAgICAgLy8gU2tpcCBjdXJyZW50IGVudHJ5IGFzIHRoaXMgd2FzIHdoYXQgd2Ugd2VyZSBsb29raW5nIGZvciBuZWFyZXN0IHRvCgkJCQkKCQkJCWlmKCR2YWx1ZSA8PiAkYXJyX2VuZCkgewoJCQkJCW5leHQoJGFycmF5KTsgLy8gR2V0IGVudHJ5IGFmdGVyIHRoaXMgb25lCgkJCQkJJG5leHQgPSBrZXkoJGFycmF5KTsKCQkJCX0KCQkJCWJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5leHQoJGFycmF5KTsKICAgICAgICB9CgogICAgICAgIGlmKCRwcmV2ICYmICRuZXh0KSB7CiAgICAgICAgICAgIGlmKCgkdmFsdWUgLSAkcHJldikgPCAoJG5leHQgLSAkdmFsdWUpKSB7CgkJCQkvLyBQcmV2aW91cyBpcyBjbG9zZXIKICAgICAgICAgICAgICAgICRyZXR1cm4gPSBBcnJheSgkcHJldj0+JGFycmF5WyRwcmV2XSk7CiAgICAgICAgICAgIH0gZWxzZSB7CgkJCQkvLyBOZXh0IGlzIGNsb3NlcgogICAgICAgICAgICAgICAgJHJldHVybiA9IEFycmF5KCRuZXh0PT4kYXJyYXlbJG5leHRdKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZWlmICgkcHJldiB8fCAkbmV4dCkgewogICAgICAgICAgICBpZigkcHJldikgewoJCQkJLy8gT25seSBQcmV2aW91cyBleGlzdHMKICAgICAgICAgICAgICAgICRyZXR1cm4gPSBBcnJheSgkcHJldj0+JGFycmF5WyRwcmV2XSk7CiAgICAgICAgICAgIH0gZWxzZWlmICgkbmV4dCkgewoJCQkJLy8gT25seSBOZXh0IGV4aXN0cwogICAgICAgICAgICAgICAgJHJldHVybiA9IEFycmF5KCRuZXh0PT4kYXJyYXlbJG5leHRdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCgkvLyBSZXR1cm4gcmVzdWx0aW5nIEFycmF5KCkuICAgJHJldHVybiBpcyBmYWxzZSBpZiBub3RoaW5nIG1hdGNoZXMgdGhlIGNsb3Nlc3QgY29uZGl0aW9ucywgb3IgaWYgZXhhY3QgaXMgc3BlY2lmaWVkIGFuZCBrZXkgZG9lcyBub3QgZXhpc3QuICAgICAgICAKCWlmKCRyZXR1cm4pIHsKCQlyZXR1cm4gJHJldHVybitBcnJheSgnZXhhY3QnPT4kZXhhY3RfbWF0Y2gpOwoJfSBlbHNlIHsKCQlyZXR1cm4gZmFsc2U7Cgl9Cn0KPz4KCkp1c3QgdG8gY2xhcmlmeSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBlaXRoZXIgYW4gQXJyYXkoKSBjb250YWluaW5nIHRoZSAka2V5PT4kdmFsdWUgcGFpciBvZiB0aGUgcmVzdWx0IGFuZCAnZXhhY3QnPT4oYm9vbCkgd2hldGhlciB0aGUgbWF0Y2ggd2FzIGV4YWN0IG9yIG5vdC4KClRvIGFjY2VzcyB0aGUgJGtleT0+JHZhbHVlIHBhaXIsIGNhbiBiZSBkb25lIGFzIGZvbGxvd3MgOgo8P3BocAoKCSRyZXN1bHQgPSBuZWFyZXN0KCAuLi4gKTsgIC8vIEp1c3QgaGVyZSBmb3IgY2xhcmlmaWNhdGlvbiBvZiB0aGUgcG9zaXRpb24gZm9yIHRoZSBjb2RlIHRoYXQgZm9sbG93cy4KCSAKCWlmKCRyZXN1bHQpIHsKCQkvLyBPdXRwdXQgdGhlIEtleQoJCWVjaG8ga2V5KCRyZXN1bHQpOwoKCQkvLyBPdXRwdXQgdGhlIFZhbHVlCgkJZWNobyAkcmVzdWx0KCBrZXkoJHJlc3VsdCkgKTsKCgkJLy8gT3V0cHV0IGlmIGV4YWN0IG1hdGNoCgkJaWYoJHJlc3VsdFsnZXhhY3QnXSkgewoJCQllY2hvICdUaGlzIHdhcyBhbiBFWEFDVCBtYXRjaCc7CgkJfSBlbHNlIHsKCQkJZWNobyAnVGhpcyByZXN1bHQgd2FzIGZvdW5kIHdpdGggZnV6enkgbG9naWMnOwoJCX0KCgl9IGVsc2UgewoKCQllY2hvICdObyByZXN1bHQgZm91bmQnOwoKCX0KCj8+|0|10 114733|function.prev|50|1396228674|MicroVB INC|VGhpcyBmdW5jdGlvbiBzZWFyY2hlcyBmb3IgdGhlIGNsb3Nlc3QgZWxlbWVudCBpbiBhbiBhcnJheSBieSBrZXkgdmFsdWUsIGFuZCByZXR1cm5zIHRoZSBrZXkvdmFsdWUgcGFpciwgb3IgZmFsc2UgaWYgbm90IGZvdW5kLgoKPD9waHAKZnVuY3Rpb24gbmVhcmVzdCgkYXJyYXksICR2YWx1ZSwgJGV4YWN0PWZhbHNlKSB7CiAgICAgICAgLy8gSW5pdGlhbGl6ZSBWYXJpYWJsZXMKCSRuZXh0ID0gZmFsc2U7CgkkcHJldiA9IGZhbHNlOwoJJHJldHVybiA9IGZhbHNlOwoJCglpZighaXNzZXQoJGFycmF5WyR2YWx1ZV0pICYmICEkZXhhY3QpIHsKCQkvLyBJbnNlcnQgZWxlbWVudCB0aGF0IGRvZXNuJ3QgZXhpc3Qgc28gbmVhcmVzdCBjYW4gYmUgZm91bmQKCQkkYXJyYXlbJHZhbHVlXSA9ICctJzsKCX0KCQoJaWYoJGV4YWN0ICYmIGlzc2V0KCRhcnJheVskdmFsdWVdKSkgewogICAgICAgICAgICAgICAgLy8gSWYgZXhhY3QgbWF0Y2ggZm91bmQsIGFuZCBzZWFyY2hpbmcgZm9yIGV4YWN0IChub3QgbmVhcmVzdCksIHJldHVybiByZXN1bHQuCgkJJHJldHVybiA9IEFycmF5KCR2YWx1ZT0+JGFycmF5WyR2YWx1ZV0pOwoJfSBlbHNlIHsKCSAgICAgICAgLy8gU29ydCBhcnJheSBzbyBpbmplY3RlZCByZWNvcmQgaXMgbmVhciByZWxhdGl2ZSBudW1lcmljcwoJCWtzb3J0KCRhcnJheSk7IC8vIFNvcnQgYXJyYXkgb24ga2V5CgogICAgICAgICAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGFycmF5IHVudGlsIG1hdGNoIGlzIGZvdW5kLCB0aGVuIHNldCAkcHJldiBhbmQgJG5leHQgdG8gdGhlIHJlc3BlY3RpdmUga2V5cyBpZiBleGlzdAoJCXdoaWxlICggIWlzX251bGwoJGtleSA9IGtleSgkYXJyYXkpKSApIHsKCQkJJHZhbCA9IGN1cnJlbnQoJGFycmF5KTsKCQkJaWYoJGtleSA9PSAkdmFsdWUpIHsKCQkJCXByZXYoJGFycmF5KTsgLy8gR2V0IGVudHJ5IGJlZm9yZSB0aGlzIG9uZQoJCQkJJHByZXYgPSBrZXkoJGFycmF5KTsKCQkJCW5leHQoJGFycmF5KTsgICAgICAgICAvLyBTa2lwIGN1cnJlbnQgZW50cnkgYXMgdGhpcyB3YXMgd2hhdCB3ZSB3ZXJlIGxvb2tpbmcgZm9yIG5lYXJlc3QgdG8KCQkJCW5leHQoJGFycmF5KTsgLy8gR2V0IGVudHJ5IGFmdGVyIHRoaXMgb25lCgkJCQkkbmV4dCA9IGtleSgkYXJyYXkpOwoJCQkJYnJlYWs7CgkJCX0KCQkJbmV4dCgkYXJyYXkpOwoJCX0KCgkJaWYoJHByZXYgJiYgJG5leHQpIHsKCQkJaWYoKCRsb25nIC0gJHByZXYpID4gKCRuZXh0IC0gJGxvbmcpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByZXZpb3VzIGlzIGNsb3NlcgoJCQkJJHJldHVybiA9IEFycmF5KCRwcmV2PT4kYXJyYXlbJHByZXZdKTsKCQkJfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV4dCBpcyBjbG9zZXIKCQkJCSRyZXR1cm4gPSBBcnJheSgkbmV4dD0+JGFycmF5WyRuZXh0XSk7CgkJCX0KCQl9IGVsc2VpZiAoJHByZXYgfHwgJG5leHQpIHsKCQkJaWYoJHByZXYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBQcmV2aW91cyBleGlzdHMKCQkJCSRyZXR1cm4gPSBBcnJheSgkcHJldj0+JGFycmF5WyRwcmV2XSk7CgkJCX0gZWxzZWlmICgkbmV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IE5leHQgZXhpc3RzCgkJCQkkcmV0dXJuID0gQXJyYXkoJG5leHQ9PiRhcnJheVskbmV4dF0pOwoJCQl9CgkJfQoJfQoKICAgICAgICAvLyBSZXR1cm4gcmVzdWx0aW5nIEFycmF5KCkuICAgJHJldHVybiBpcyBmYWxzZSBpZiBub3RoaW5nIG1hdGNoZXMgdGhlIGNsb3Nlc3QgY29uZGl0aW9ucywgb3IgaWYgZXhhY3QgaXMgc3BlY2lmaWVkIGFuZCBrZXkgZG9lcyBub3QgZXhpc3QuCQkKCXJldHVybiAkcmV0dXJuOwp9Cj8+CgpFeGFtcGxlIHVzYWdlICh0byBsb29rdXAgdGhlIGNsb3Nlc3QgY29sb3IgaW4gYW4gYXJyYXkpCjw/cGhwCiRteWNvbG9ycz0gQXJyYXkoCgk1MDAxMDQ2PT4nQWJiZXknLAoJMTc3NDU5Nj0+J0FjYWRpYScsCgk4MTcxNjgxPT4nQWNhcHVsY28nLAoJNjk3MDY1MT0+J0Fjb3JuJywKCTEzMjM4MjQ1PT4nQWVybyBCbHVlJywKCTc0MjM2MzU9PidBZmZhaXInLAoJODgwMzg1MD0+J0FmZ2hhbiBUYW4nLAoJMTM5NDM5NzY9PidBa2Fyb2EnLAoJMTY3NzcyMTU9PidBbGFiYXN0ZXInLAoJMTYxMTYxNzk9PidBbGJlc2NlbnQgV2hpdGUnLAoJMTAxNzYyNTk9PidBbGVydCBUYW4nLAoJMzAzNzE9PidBbGxwb3J0cycKKTsKCi8vIENvbG9yIHRvIHNlYXJjaCBmb3IgaW4gSGV4CiRjb2xvciA9ICdDMEMwQzAnOwoKLy8gQ29udmVydCBIZXggdG8gTG9uZyB0byBjb21wYXJlIHdpdGggYXJyYXkoKSBrZXlzCiRjb2xvcmxvbmcgPSBiYXNlX2NvbnZlcnQoJGNvbG9yLDE2LDEwKTsKCi8vIENoZWNrIGZvciBhbiBleGFjdCBtYXRjaAokcmVzdWx0ID0gbmVhcmVzdCgkbXljb2xvcnMsICRjb2xvcmxvbmcsIHRydWUpOwppZigkcmVzdWx0KSB7CgllY2hvICJBbiBleGFjdCBtYXRjaCB3YXMgZm91bmQgZm9yICMiIC4gJGNvbG9yIC4gIiB3aGljaCBpcyBjYWxsZWQgJyIgLiAkcmVzdWx0W2tleSgkcmVzdWx0KV0gLiAiJyI7Cn0gZWxzZSB7CgllY2hvICJObyBleGFjdCBtYXRjaCB3YXMgZm91bmQiOwp9CgppZighJHJlc3VsdCkgewogICAgLy8gQ2hlY2sgZm9yIGNsb3Nlc3QgbWF0Y2gKCSRyZXN1bHQgPSBuZWFyZXN0KCRteWNvbG9ycywgJGNvbG9ybG9uZywgdHJ1ZSk7CglpZigkcmVzdWx0KSB7CgkJLy8gTWF0Y2ggZm91bmQKCQllY2hvICJUaGUgY2xvc2VzdCBtYXRjaCBmb3IgIyIgLiAkY29sb3IgLiAiIGlzICMiIC4gYmFzZV9jb252ZXJ0KGtleSgkcmVzdWx0KSwxMCwxNikgLiAiIHdoaWNoIGlzIGNhbGxlZCAnIiAuICRyZXN1bHRba2V5KCRyZXN1bHQpXSAuICInIjsKCX0gZWxzZSB7CgkgICAgLy8gTm8gbWF0Y2ggZm91bmQKCQllY2hvICJObyBtYXRjaCB3YXMgZm91bmQgZm9yICMiIC4gJGNvbG9yOwoJfSAgCn0KPz4=|10|10 91204|function.prev|50|1243598788|soapergem at gmail dot com|SGVyZSdzIGEgc2xpZ2h0IHJldmlzaW9uIHRvIHhtbGljaDAyJ3MgYmFja3dhcmRzIGl0ZXJhdGlvbiBleGFtcGxlLiBUaGUgcHJvYmxlbSB3aXRoIGhpcy9oZXIgZXhhbXBsZSBpcyB0aGF0IGl0IHdpbGwgaGFsdCBpZiBhbnkgb2YgdGhlIGFycmF5IGVsZW1lbnRzIGFyZSBib29sZWFuIGZhbHNlLCB3aGlsZSB0aGlzIHZlcnNpb24gd2lsbCBub3QuCgo8P3BocAoKZW5kKCRhcik7CndoaWxlICggIWlzX251bGwoJGtleSA9IGtleSgkYXIpKSApIHsKCSR2YWwgPSBjdXJyZW50KCRhcik7CgllY2hvICJ7JGtleX0gPT4geyR2YWx9XG4iOwoJcHJldigkYXIpOwp9Cgo/Pg==|13|13