<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>28352</bug_id>
          
          <creation_ts>2009-08-16 02:15:18 -0700</creation_ts>
          <short_desc>Fix coding style issues in yarr/RegexInterpreter.cpp</short_desc>
          <delta_ts>2009-08-16 06:15:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Holger Freyther">zecke</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>140546</commentid>
    <comment_count>0</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-08-16 02:15:18 -0700</bug_when>
    <thetext>The naming of class members doesn&apos;t match the coding style and there are some lines solely consisting out of whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140549</commentid>
    <comment_count>1</comment_count>
      <attachid>34924</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-08-16 02:27:40 -0700</bug_when>
    <thetext>Created attachment 34924
2009-08-16  Holger Hans Peter Freyther  &lt;zecke@selfish.org&gt;

Reviewed by NOBODY (OOPS!).

https://bugs.webkit.org/show_bug.cgi?id=28352

Fix coding style violations. Use m_ for C++ class members. Remove
trailing whitespace on empty lines.

* yarr/RegexInterpreter.cpp:
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
(JSC::Yarr::Interpreter::tryConsumeCharacter):
(JSC::Yarr::Interpreter::tryConsumeBackReference):
(JSC::Yarr::Interpreter::parenthesesDoBacktrack):
(JSC::Yarr::Interpreter::backtrackParentheses):
(JSC::Yarr::ByteCompiler::ByteCompiler):
(JSC::Yarr::ByteCompiler::compile):
(JSC::Yarr::ByteCompiler::checkInput):
(JSC::Yarr::ByteCompiler::assertionBOL):
(JSC::Yarr::ByteCompiler::assertionEOL):
(JSC::Yarr::ByteCompiler::assertionWordBoundary):
(JSC::Yarr::ByteCompiler::atomPatternCharacter):
(JSC::Yarr::ByteCompiler::atomCharacterClass):
(JSC::Yarr::ByteCompiler::atomBackReference):
(JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
(JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
(JSC::Yarr::ByteCompiler::popParenthesesStack):
(JSC::Yarr::ByteCompiler::closeAlternative):
(JSC::Yarr::ByteCompiler::closeBodyAlternative):
(JSC::Yarr::ByteCompiler::atomParenthesesEnd):
(JSC::Yarr::ByteCompiler::regexBegin):
(JSC::Yarr::ByteCompiler::alterantiveBodyDisjunction):
(JSC::Yarr::ByteCompiler::alterantiveDisjunction):
(JSC::Yarr::ByteCompiler::emitDisjunction):
---
 2 files changed, 145 insertions(+), 110 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140551</commentid>
    <comment_count>2</comment_count>
      <attachid>34924</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-16 02:43:27 -0700</bug_when>
    <thetext>Comment on attachment 34924
2009-08-16  Holger Hans Peter Freyther  &lt;zecke@selfish.org&gt;

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140555</commentid>
    <comment_count>3</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-08-16 06:15:46 -0700</bug_when>
    <thetext>Landed in r47337.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34924</attachid>
            <date>2009-08-16 02:27:40 -0700</date>
            <delta_ts>2009-08-16 02:43:26 -0700</delta_ts>
            <desc>2009-08-16  Holger Hans Peter Freyther  &lt;zecke@selfish.org&gt;</desc>
            <filename>bug-28352-20090816112710.patch</filename>
            <type>text/plain</type>
            <size>24886</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA5YWI2YjM5Li5jOTEzN2MzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMDktMDgtMTYgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlz
aC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MzUyCisKKyAgICAgICAg
Rml4IGNvZGluZyBzdHlsZSB2aW9sYXRpb25zLiBVc2UgbV8gZm9yIEMrKyBjbGFzcyBtZW1iZXJz
LiBSZW1vdmUKKyAgICAgICAgdHJhaWxpbmcgd2hpdGVzcGFjZSBvbiBlbXB0eSBsaW5lcy4KKwor
ICAgICAgICAqIHlhcnIvUmVnZXhJbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6
OkludGVycHJldGVyOjpQYXJlbnRoZXNlc0Rpc2p1bmN0aW9uQ29udGV4dDo6UGFyZW50aGVzZXNE
aXNqdW5jdGlvbkNvbnRleHQpOgorICAgICAgICAoSlNDOjpZYXJyOjpJbnRlcnByZXRlcjo6dHJ5
Q29uc3VtZUNoYXJhY3Rlcik6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjp0cnlD
b25zdW1lQmFja1JlZmVyZW5jZSk6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjpw
YXJlbnRoZXNlc0RvQmFja3RyYWNrKToKKyAgICAgICAgKEpTQzo6WWFycjo6SW50ZXJwcmV0ZXI6
OmJhY2t0cmFja1BhcmVudGhlc2VzKToKKyAgICAgICAgKEpTQzo6WWFycjo6Qnl0ZUNvbXBpbGVy
OjpCeXRlQ29tcGlsZXIpOgorICAgICAgICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OmNvbXBp
bGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OmNoZWNrSW5wdXQpOgorICAg
ICAgICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OmFzc2VydGlvbkJPTCk6CisgICAgICAgIChK
U0M6OllhcnI6OkJ5dGVDb21waWxlcjo6YXNzZXJ0aW9uRU9MKToKKyAgICAgICAgKEpTQzo6WWFy
cjo6Qnl0ZUNvbXBpbGVyOjphc3NlcnRpb25Xb3JkQm91bmRhcnkpOgorICAgICAgICAoSlNDOjpZ
YXJyOjpCeXRlQ29tcGlsZXI6OmF0b21QYXR0ZXJuQ2hhcmFjdGVyKToKKyAgICAgICAgKEpTQzo6
WWFycjo6Qnl0ZUNvbXBpbGVyOjphdG9tQ2hhcmFjdGVyQ2xhc3MpOgorICAgICAgICAoSlNDOjpZ
YXJyOjpCeXRlQ29tcGlsZXI6OmF0b21CYWNrUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6WWFy
cjo6Qnl0ZUNvbXBpbGVyOjphdG9tUGFyZW50aGVzZXNTdWJwYXR0ZXJuQmVnaW4pOgorICAgICAg
ICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OmF0b21QYXJlbnRoZXRpY2FsQXNzZXJ0aW9uQmVn
aW4pOgorICAgICAgICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OnBvcFBhcmVudGhlc2VzU3Rh
Y2spOgorICAgICAgICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OmNsb3NlQWx0ZXJuYXRpdmUp
OgorICAgICAgICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OmNsb3NlQm9keUFsdGVybmF0aXZl
KToKKyAgICAgICAgKEpTQzo6WWFycjo6Qnl0ZUNvbXBpbGVyOjphdG9tUGFyZW50aGVzZXNFbmQp
OgorICAgICAgICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OnJlZ2V4QmVnaW4pOgorICAgICAg
ICAoSlNDOjpZYXJyOjpCeXRlQ29tcGlsZXI6OmFsdGVyYW50aXZlQm9keURpc2p1bmN0aW9uKToK
KyAgICAgICAgKEpTQzo6WWFycjo6Qnl0ZUNvbXBpbGVyOjphbHRlcmFudGl2ZURpc2p1bmN0aW9u
KToKKyAgICAgICAgKEpTQzo6WWFycjo6Qnl0ZUNvbXBpbGVyOjplbWl0RGlzanVuY3Rpb24pOgor
CiAyMDA5LTA4LTE0ICBHYWJvciBMb2tpICA8bG9raUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleElu
dGVycHJldGVyLmNwcAppbmRleCBiMGFhZTY1Li5mMTM4MWMzIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3lh
cnIvUmVnZXhJbnRlcnByZXRlci5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
ICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgpAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICA6IHRlcm0oMCkKICAgICAgICAgewogICAgICAgICB9Ci0gICAgICAgIAorCiAg
ICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIHZvaWQqIHdoZXJlKQogICAgICAgICB7
CiAgICAgICAgICAgICByZXR1cm4gd2hlcmU7CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgIHN1YnBhdHRlcm5CYWNrdXBbaV0gPSBvdXRwdXRbKGZpcnN0U3VicGF0
dGVybklkIDw8IDEpICsgaV07CiAgICAgICAgICAgICAgICAgb3V0cHV0WyhmaXJzdFN1YnBhdHRl
cm5JZCA8PCAxKSArIGldID0gLTE7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKKwogICAg
ICAgICAgICAgbmV3KGdldERpc2p1bmN0aW9uQ29udGV4dCh0ZXJtKSkgRGlzanVuY3Rpb25Db250
ZXh0KCk7CiAgICAgICAgIH0KIApAQCAtMTM4LDcgKzEzOCw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAobnVtTmVzdGVkU3VicGF0dGVybnMgPDwgMSk7
ICsraSkKICAgICAgICAgICAgICAgICBvdXRwdXRbKGZpcnN0U3VicGF0dGVybklkIDw8IDEpICsg
aV0gPSBzdWJwYXR0ZXJuQmFja3VwW2ldOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAg
IERpc2p1bmN0aW9uQ29udGV4dCogZ2V0RGlzanVuY3Rpb25Db250ZXh0KEJ5dGVUZXJtJiB0ZXJt
KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxEaXNqdW5j
dGlvbkNvbnRleHQqPigmKHN1YnBhdHRlcm5CYWNrdXBbdGVybS5hdG9tLnBhcmVudGhlc2VzRGlz
anVuY3Rpb24tPm1fbnVtU3VicGF0dGVybnMgPDwgMV0pKTsKQEAgLTIwOCw3ICsyMDgsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGlucHV0W3BvcyAtIDFdOwogICAgICAgICAg
ICAgcmV0dXJuIC0xOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIHVuc2lnbmVkIGdl
dFBvcygpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBwb3M7CkBAIC0yMTgsNyArMjE4
LDcgQEAgcHVibGljOgogICAgICAgICB7CiAgICAgICAgICAgICBwb3MgPSBwOwogICAgICAgICB9
Ci0gICAgICAgIAorCiAgICAgICAgIGJvb2wgYXRTdGFydCgpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHJldHVybiBwb3MgPT0gMDsKQEAgLTI4NCw3ICsyODQsNyBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICBpZiAoaW5wdXQuYXRFbmQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgCisKICAgICAgICAgaW50IGNoID0gaW5wdXQucmVhZCgpOwogCiAgICAgICAgIGlmIChw
YXR0ZXJuLT5tX2lnbm9yZUNhc2UgPyAoKFVuaWNvZGU6OnRvTG93ZXIodGVzdENoYXIpID09IGNo
KSB8fCAoVW5pY29kZTo6dG9VcHBlcih0ZXN0Q2hhcikgPT0gY2gpKSA6ICh0ZXN0Q2hhciA9PSBj
aCkpIHsKQEAgLTM0MSw3ICszNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIApAQCAtNjA2LDcgKzYwNiw3IEBAIHB1YmxpYzoKIAogICAgICAg
ICAgICAgaWYgKG1hdGNoRGlzanVuY3Rpb24odGVybS5hdG9tLnBhcmVudGhlc2VzRGlzanVuY3Rp
b24sIGNvbnRleHQtPmdldERpc2p1bmN0aW9uQ29udGV4dCh0ZXJtKSwgdHJ1ZSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgcmVzZXRN
YXRjaGVzKHRlcm0sIGNvbnRleHQpOwogICAgICAgICAgICAgZnJlZVBhcmVudGhlc2VzRGlzanVu
Y3Rpb25Db250ZXh0KGNvbnRleHQpOwogICAgICAgICAgICAgcG9wUGFyZW50aGVzZXNEaXNqdW5j
dGlvbkNvbnRleHQoYmFja1RyYWNrKTsKQEAgLTk0Niw3ICs5NDYsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgLy8gcG9w
IGEgbWF0Y2ggb2ZmIHRoZSBzdGFjawogICAgICAgICAgICAgICAgIHJlc2V0TWF0Y2hlcyh0ZXJt
LCBjb250ZXh0KTsKICAgICAgICAgICAgICAgICBmcmVlUGFyZW50aGVzZXNEaXNqdW5jdGlvbkNv
bnRleHQoY29udGV4dCk7CkBAIC0xMjY2LDM3ICsxMjY2LDM3IEBAIHB1YmxpYzoKICAgICBCeXRl
Q29tcGlsZXIoUmVnZXhQYXR0ZXJuJiBwYXR0ZXJuKQogICAgICAgICA6IG1fcGF0dGVybihwYXR0
ZXJuKQogICAgIHsKLSAgICAgICAgYm9keURpc2p1bmN0aW9uID0gMDsKLSAgICAgICAgY3VycmVu
dEFsdGVybmF0aXZlSW5kZXggPSAwOworICAgICAgICBtX2JvZHlEaXNqdW5jdGlvbiA9IDA7Cisg
ICAgICAgIG1fY3VycmVudEFsdGVybmF0aXZlSW5kZXggPSAwOwogICAgIH0KLSAgICAKKwogICAg
IEJ5dGVjb2RlUGF0dGVybiogY29tcGlsZSgpCiAgICAgewogICAgICAgICByZWdleEJlZ2luKG1f
cGF0dGVybi5tX251bVN1YnBhdHRlcm5zLCBtX3BhdHRlcm4ubV9ib2R5LT5tX2NhbGxGcmFtZVNp
emUpOwogICAgICAgICBlbWl0RGlzanVuY3Rpb24obV9wYXR0ZXJuLm1fYm9keSk7CiAgICAgICAg
IHJlZ2V4RW5kKCk7CiAKLSAgICAgICAgcmV0dXJuIG5ldyBCeXRlY29kZVBhdHRlcm4oYm9keURp
c2p1bmN0aW9uLCBtX2FsbFBhcmVudGhlc2VzSW5mbywgbV9wYXR0ZXJuKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBCeXRlY29kZVBhdHRlcm4obV9ib2R5RGlzanVuY3Rpb24sIG1fYWxsUGFyZW50aGVz
ZXNJbmZvLCBtX3BhdHRlcm4pOwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgY2hlY2tJbnB1dCh1
bnNpZ25lZCBjb3VudCkKICAgICB7Ci0gICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBw
ZW5kKEJ5dGVUZXJtOjpDaGVja0lucHV0KGNvdW50KSk7CisgICAgICAgIG1fYm9keURpc2p1bmN0
aW9uLT50ZXJtcy5hcHBlbmQoQnl0ZVRlcm06OkNoZWNrSW5wdXQoY291bnQpKTsKICAgICB9CiAK
ICAgICB2b2lkIGFzc2VydGlvbkJPTChpbnQgaW5wdXRQb3NpdGlvbikKICAgICB7Ci0gICAgICAg
IGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVUZXJtOjpCT0woaW5wdXRQb3NpdGlv
bikpOworICAgICAgICBtX2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVUZXJtOjpC
T0woaW5wdXRQb3NpdGlvbikpOwogICAgIH0KIAogICAgIHZvaWQgYXNzZXJ0aW9uRU9MKGludCBp
bnB1dFBvc2l0aW9uKQogICAgIHsKLSAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtcy5hcHBl
bmQoQnl0ZVRlcm06OkVPTChpbnB1dFBvc2l0aW9uKSk7CisgICAgICAgIG1fYm9keURpc2p1bmN0
aW9uLT50ZXJtcy5hcHBlbmQoQnl0ZVRlcm06OkVPTChpbnB1dFBvc2l0aW9uKSk7CiAgICAgfQog
CiAgICAgdm9pZCBhc3NlcnRpb25Xb3JkQm91bmRhcnkoYm9vbCBpbnZlcnQsIGludCBpbnB1dFBv
c2l0aW9uKQogICAgIHsKLSAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtcy5hcHBlbmQoQnl0
ZVRlcm06OldvcmRCb3VuZGFyeShpbnZlcnQsIGlucHV0UG9zaXRpb24pKTsKKyAgICAgICAgbV9i
b2R5RGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVybTo6V29yZEJvdW5kYXJ5KGludmVy
dCwgaW5wdXRQb3NpdGlvbikpOwogICAgIH0KIAogICAgIHZvaWQgYXRvbVBhdHRlcm5DaGFyYWN0
ZXIoVUNoYXIgY2gsIGludCBpbnB1dFBvc2l0aW9uLCB1bnNpZ25lZCBmcmFtZUxvY2F0aW9uLCB1
bnNpZ25lZCBxdWFudGl0eUNvdW50LCBRdWFudGlmaWVyVHlwZSBxdWFudGl0eVR5cGUpCkBAIC0x
MzA0LDYwICsxMzA0LDYwIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1fcGF0dGVybi5tX2lnbm9y
ZUNhc2UpIHsKICAgICAgICAgICAgIFVDaGFyIGxvID0gVW5pY29kZTo6dG9Mb3dlcihjaCk7CiAg
ICAgICAgICAgICBVQ2hhciBoaSA9IFVuaWNvZGU6OnRvVXBwZXIoY2gpOwotICAgICAgICAgICAg
CisKICAgICAgICAgICAgIGlmIChsbyAhPSBoaSkgewotICAgICAgICAgICAgICAgIGJvZHlEaXNq
dW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVUZXJtKGxvLCBoaSwgaW5wdXRQb3NpdGlvbiwgZnJh
bWVMb2NhdGlvbiwgcXVhbnRpdHlDb3VudCwgcXVhbnRpdHlUeXBlKSk7CisgICAgICAgICAgICAg
ICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVybShsbywgaGksIGlucHV0
UG9zaXRpb24sIGZyYW1lTG9jYXRpb24sIHF1YW50aXR5Q291bnQsIHF1YW50aXR5VHlwZSkpOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg
ICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVUZXJtKGNoLCBpbnB1dFBvc2l0
aW9uLCBmcmFtZUxvY2F0aW9uLCBxdWFudGl0eUNvdW50LCBxdWFudGl0eVR5cGUpKTsKKyAgICAg
ICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVybShjaCwgaW5wdXRQb3Np
dGlvbiwgZnJhbWVMb2NhdGlvbiwgcXVhbnRpdHlDb3VudCwgcXVhbnRpdHlUeXBlKSk7CiAgICAg
fQotICAgIAorCiAgICAgdm9pZCBhdG9tQ2hhcmFjdGVyQ2xhc3MoQ2hhcmFjdGVyQ2xhc3MqIGNo
YXJhY3RlckNsYXNzLCBib29sIGludmVydCwgaW50IGlucHV0UG9zaXRpb24sIHVuc2lnbmVkIGZy
YW1lTG9jYXRpb24sIHVuc2lnbmVkIHF1YW50aXR5Q291bnQsIFF1YW50aWZpZXJUeXBlIHF1YW50
aXR5VHlwZSkKICAgICB7Ci0gICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5
dGVUZXJtKGNoYXJhY3RlckNsYXNzLCBpbnZlcnQsIGlucHV0UG9zaXRpb24pKTsKKyAgICAgICAg
bV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVybShjaGFyYWN0ZXJDbGFzcywg
aW52ZXJ0LCBpbnB1dFBvc2l0aW9uKSk7CiAKLSAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJt
c1tib2R5RGlzanVuY3Rpb24tPnRlcm1zLnNpemUoKSAtIDFdLmF0b20ucXVhbnRpdHlDb3VudCA9
IHF1YW50aXR5Q291bnQ7Ci0gICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXNbYm9keURpc2p1
bmN0aW9uLT50ZXJtcy5zaXplKCkgLSAxXS5hdG9tLnF1YW50aXR5VHlwZSA9IHF1YW50aXR5VHlw
ZTsKLSAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtc1tib2R5RGlzanVuY3Rpb24tPnRlcm1z
LnNpemUoKSAtIDFdLmZyYW1lTG9jYXRpb24gPSBmcmFtZUxvY2F0aW9uOworICAgICAgICBtX2Jv
ZHlEaXNqdW5jdGlvbi0+dGVybXNbbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLnNpemUoKSAtIDFd
LmF0b20ucXVhbnRpdHlDb3VudCA9IHF1YW50aXR5Q291bnQ7CisgICAgICAgIG1fYm9keURpc2p1
bmN0aW9uLT50ZXJtc1ttX2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uYXRvbS5x
dWFudGl0eVR5cGUgPSBxdWFudGl0eVR5cGU7CisgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50
ZXJtc1ttX2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uZnJhbWVMb2NhdGlvbiA9
IGZyYW1lTG9jYXRpb247CiAgICAgfQogCiAgICAgdm9pZCBhdG9tQmFja1JlZmVyZW5jZSh1bnNp
Z25lZCBzdWJwYXR0ZXJuSWQsIGludCBpbnB1dFBvc2l0aW9uLCB1bnNpZ25lZCBmcmFtZUxvY2F0
aW9uLCB1bnNpZ25lZCBxdWFudGl0eUNvdW50LCBRdWFudGlmaWVyVHlwZSBxdWFudGl0eVR5cGUp
CiAgICAgewogICAgICAgICBBU1NFUlQoc3VicGF0dGVybklkKTsKIAotICAgICAgICBib2R5RGlz
anVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVybTo6QmFja1JlZmVyZW5jZShzdWJwYXR0ZXJu
SWQsIGlucHV0UG9zaXRpb24pKTsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFw
cGVuZChCeXRlVGVybTo6QmFja1JlZmVyZW5jZShzdWJwYXR0ZXJuSWQsIGlucHV0UG9zaXRpb24p
KTsKIAotICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JvZHlEaXNqdW5jdGlvbi0+dGVy
bXMuc2l6ZSgpIC0gMV0uYXRvbS5xdWFudGl0eUNvdW50ID0gcXVhbnRpdHlDb3VudDsKLSAgICAg
ICAgYm9keURpc2p1bmN0aW9uLT50ZXJtc1tib2R5RGlzanVuY3Rpb24tPnRlcm1zLnNpemUoKSAt
IDFdLmF0b20ucXVhbnRpdHlUeXBlID0gcXVhbnRpdHlUeXBlOwotICAgICAgICBib2R5RGlzanVu
Y3Rpb24tPnRlcm1zW2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uZnJhbWVMb2Nh
dGlvbiA9IGZyYW1lTG9jYXRpb247CisgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50ZXJtc1tt
X2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uYXRvbS5xdWFudGl0eUNvdW50ID0g
cXVhbnRpdHlDb3VudDsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW21fYm9keURp
c2p1bmN0aW9uLT50ZXJtcy5zaXplKCkgLSAxXS5hdG9tLnF1YW50aXR5VHlwZSA9IHF1YW50aXR5
VHlwZTsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW21fYm9keURpc2p1bmN0aW9u
LT50ZXJtcy5zaXplKCkgLSAxXS5mcmFtZUxvY2F0aW9uID0gZnJhbWVMb2NhdGlvbjsKICAgICB9
CiAKICAgICB2b2lkIGF0b21QYXJlbnRoZXNlc1N1YnBhdHRlcm5CZWdpbih1bnNpZ25lZCBzdWJw
YXR0ZXJuSWQsIGJvb2wgY2FwdHVyZSwgaW50IGlucHV0UG9zaXRpb24sIHVuc2lnbmVkIGZyYW1l
TG9jYXRpb24sIHVuc2lnbmVkIGFsdGVybmF0aXZlRnJhbWVMb2NhdGlvbikKICAgICB7Ci0gICAg
ICAgIGludCBiZWdpblRlcm0gPSBib2R5RGlzanVuY3Rpb24tPnRlcm1zLnNpemUoKTsKKyAgICAg
ICAgaW50IGJlZ2luVGVybSA9IG1fYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaXplKCk7CiAKLSAg
ICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtcy5hcHBlbmQoQnl0ZVRlcm0oQnl0ZVRlcm06OlR5
cGVQYXJlbnRoZXNlc1N1YnBhdHRlcm5PbmNlQmVnaW4sIHN1YnBhdHRlcm5JZCwgY2FwdHVyZSwg
aW5wdXRQb3NpdGlvbikpOwotICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JvZHlEaXNq
dW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uZnJhbWVMb2NhdGlvbiA9IGZyYW1lTG9jYXRpb247
Ci0gICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVUZXJtOjpBbHRlcm5h
dGl2ZUJlZ2luKCkpOwotICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JvZHlEaXNqdW5j
dGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uZnJhbWVMb2NhdGlvbiA9IGFsdGVybmF0aXZlRnJhbWVM
b2NhdGlvbjsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVy
bShCeXRlVGVybTo6VHlwZVBhcmVudGhlc2VzU3VicGF0dGVybk9uY2VCZWdpbiwgc3VicGF0dGVy
bklkLCBjYXB0dXJlLCBpbnB1dFBvc2l0aW9uKSk7CisgICAgICAgIG1fYm9keURpc2p1bmN0aW9u
LT50ZXJtc1ttX2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uZnJhbWVMb2NhdGlv
biA9IGZyYW1lTG9jYXRpb247CisgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50ZXJtcy5hcHBl
bmQoQnl0ZVRlcm06OkFsdGVybmF0aXZlQmVnaW4oKSk7CisgICAgICAgIG1fYm9keURpc2p1bmN0
aW9uLT50ZXJtc1ttX2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uZnJhbWVMb2Nh
dGlvbiA9IGFsdGVybmF0aXZlRnJhbWVMb2NhdGlvbjsKIAotICAgICAgICBtX3BhcmVudGhlc2Vz
U3RhY2suYXBwZW5kKFBhcmVudGhlc2VzU3RhY2tFbnRyeShiZWdpblRlcm0sIGN1cnJlbnRBbHRl
cm5hdGl2ZUluZGV4KSk7Ci0gICAgICAgIGN1cnJlbnRBbHRlcm5hdGl2ZUluZGV4ID0gYmVnaW5U
ZXJtICsgMTsKKyAgICAgICAgbV9wYXJlbnRoZXNlc1N0YWNrLmFwcGVuZChQYXJlbnRoZXNlc1N0
YWNrRW50cnkoYmVnaW5UZXJtLCBtX2N1cnJlbnRBbHRlcm5hdGl2ZUluZGV4KSk7CisgICAgICAg
IG1fY3VycmVudEFsdGVybmF0aXZlSW5kZXggPSBiZWdpblRlcm0gKyAxOwogICAgIH0KIAogICAg
IHZvaWQgYXRvbVBhcmVudGhldGljYWxBc3NlcnRpb25CZWdpbih1bnNpZ25lZCBzdWJwYXR0ZXJu
SWQsIGJvb2wgaW52ZXJ0LCB1bnNpZ25lZCBmcmFtZUxvY2F0aW9uLCB1bnNpZ25lZCBhbHRlcm5h
dGl2ZUZyYW1lTG9jYXRpb24pCiAgICAgewotICAgICAgICBpbnQgYmVnaW5UZXJtID0gYm9keURp
c2p1bmN0aW9uLT50ZXJtcy5zaXplKCk7CisgICAgICAgIGludCBiZWdpblRlcm0gPSBtX2JvZHlE
aXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpOwogCi0gICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVy
bXMuYXBwZW5kKEJ5dGVUZXJtKEJ5dGVUZXJtOjpUeXBlUGFyZW50aGV0aWNhbEFzc2VydGlvbkJl
Z2luLCBzdWJwYXR0ZXJuSWQsIGludmVydCwgMCkpOwotICAgICAgICBib2R5RGlzanVuY3Rpb24t
PnRlcm1zW2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uZnJhbWVMb2NhdGlvbiA9
IGZyYW1lTG9jYXRpb247Ci0gICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5
dGVUZXJtOjpBbHRlcm5hdGl2ZUJlZ2luKCkpOwotICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRl
cm1zW2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpIC0gMV0uZnJhbWVMb2NhdGlvbiA9IGFs
dGVybmF0aXZlRnJhbWVMb2NhdGlvbjsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1z
LmFwcGVuZChCeXRlVGVybShCeXRlVGVybTo6VHlwZVBhcmVudGhldGljYWxBc3NlcnRpb25CZWdp
biwgc3VicGF0dGVybklkLCBpbnZlcnQsIDApKTsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24t
PnRlcm1zW21fYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaXplKCkgLSAxXS5mcmFtZUxvY2F0aW9u
ID0gZnJhbWVMb2NhdGlvbjsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFwcGVu
ZChCeXRlVGVybTo6QWx0ZXJuYXRpdmVCZWdpbigpKTsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rp
b24tPnRlcm1zW21fYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaXplKCkgLSAxXS5mcmFtZUxvY2F0
aW9uID0gYWx0ZXJuYXRpdmVGcmFtZUxvY2F0aW9uOwogCi0gICAgICAgIG1fcGFyZW50aGVzZXNT
dGFjay5hcHBlbmQoUGFyZW50aGVzZXNTdGFja0VudHJ5KGJlZ2luVGVybSwgY3VycmVudEFsdGVy
bmF0aXZlSW5kZXgpKTsKLSAgICAgICAgY3VycmVudEFsdGVybmF0aXZlSW5kZXggPSBiZWdpblRl
cm0gKyAxOworICAgICAgICBtX3BhcmVudGhlc2VzU3RhY2suYXBwZW5kKFBhcmVudGhlc2VzU3Rh
Y2tFbnRyeShiZWdpblRlcm0sIG1fY3VycmVudEFsdGVybmF0aXZlSW5kZXgpKTsKKyAgICAgICAg
bV9jdXJyZW50QWx0ZXJuYXRpdmVJbmRleCA9IGJlZ2luVGVybSArIDE7CiAgICAgfQogCiAgICAg
dW5zaWduZWQgcG9wUGFyZW50aGVzZXNTdGFjaygpCkBAIC0xMzY1LDEyICsxMzY1LDEyIEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKG1fcGFyZW50aGVzZXNTdGFjay5zaXplKCkpOwogICAgICAg
ICBpbnQgc3RhY2tFbmQgPSBtX3BhcmVudGhlc2VzU3RhY2suc2l6ZSgpIC0gMTsKICAgICAgICAg
dW5zaWduZWQgYmVnaW5UZXJtID0gbV9wYXJlbnRoZXNlc1N0YWNrW3N0YWNrRW5kXS5iZWdpblRl
cm07Ci0gICAgICAgIGN1cnJlbnRBbHRlcm5hdGl2ZUluZGV4ID0gbV9wYXJlbnRoZXNlc1N0YWNr
W3N0YWNrRW5kXS5zYXZlZEFsdGVybmF0aXZlSW5kZXg7CisgICAgICAgIG1fY3VycmVudEFsdGVy
bmF0aXZlSW5kZXggPSBtX3BhcmVudGhlc2VzU3RhY2tbc3RhY2tFbmRdLnNhdmVkQWx0ZXJuYXRp
dmVJbmRleDsKICAgICAgICAgbV9wYXJlbnRoZXNlc1N0YWNrLnNocmluayhzdGFja0VuZCk7CiAK
LSAgICAgICAgQVNTRVJUKGJlZ2luVGVybSA8IGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgp
KTsKLSAgICAgICAgQVNTRVJUKGN1cnJlbnRBbHRlcm5hdGl2ZUluZGV4IDwgYm9keURpc2p1bmN0
aW9uLT50ZXJtcy5zaXplKCkpOwotICAgICAgICAKKyAgICAgICAgQVNTRVJUKGJlZ2luVGVybSA8
IG1fYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9jdXJy
ZW50QWx0ZXJuYXRpdmVJbmRleCA8IG1fYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaXplKCkpOwor
CiAgICAgICAgIHJldHVybiBiZWdpblRlcm07CiAgICAgfQogCkBAIC0xMzg3LDI1ICsxMzg3LDI1
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlQWx0ZXJuYXRpdmUoaW50IGJlZ2luVGVybSkKICAg
ICB7CiAgICAgICAgIGludCBvcmlnQmVnaW5UZXJtID0gYmVnaW5UZXJtOwotICAgICAgICBBU1NF
UlQoYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1dLnR5cGUgPT0gQnl0ZVRlcm06OlR5
cGVBbHRlcm5hdGl2ZUJlZ2luKTsKLSAgICAgICAgaW50IGVuZEluZGV4ID0gYm9keURpc2p1bmN0
aW9uLT50ZXJtcy5zaXplKCk7CisgICAgICAgIEFTU0VSVChtX2JvZHlEaXNqdW5jdGlvbi0+dGVy
bXNbYmVnaW5UZXJtXS50eXBlID09IEJ5dGVUZXJtOjpUeXBlQWx0ZXJuYXRpdmVCZWdpbik7Cisg
ICAgICAgIGludCBlbmRJbmRleCA9IG1fYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaXplKCk7CiAK
LSAgICAgICAgdW5zaWduZWQgZnJhbWVMb2NhdGlvbiA9IGJvZHlEaXNqdW5jdGlvbi0+dGVybXNb
YmVnaW5UZXJtXS5mcmFtZUxvY2F0aW9uOworICAgICAgICB1bnNpZ25lZCBmcmFtZUxvY2F0aW9u
ID0gbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uZnJhbWVMb2NhdGlvbjsKIAot
ICAgICAgICBpZiAoIWJvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVnaW5UZXJtXS5hbHRlcm5hdGl2
ZS5uZXh0KQotICAgICAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtcy5yZW1vdmUoYmVnaW5U
ZXJtKTsKKyAgICAgICAgaWYgKCFtX2JvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVnaW5UZXJtXS5h
bHRlcm5hdGl2ZS5uZXh0KQorICAgICAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLnJl
bW92ZShiZWdpblRlcm0pOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHdoaWxlIChib2R5
RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYWx0ZXJuYXRpdmUubmV4dCkgewotICAgICAg
ICAgICAgICAgIGJlZ2luVGVybSArPSBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0u
YWx0ZXJuYXRpdmUubmV4dDsKLSAgICAgICAgICAgICAgICBBU1NFUlQoYm9keURpc2p1bmN0aW9u
LT50ZXJtc1tiZWdpblRlcm1dLnR5cGUgPT0gQnl0ZVRlcm06OlR5cGVBbHRlcm5hdGl2ZURpc2p1
bmN0aW9uKTsKLSAgICAgICAgICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVy
bV0uYWx0ZXJuYXRpdmUuZW5kID0gZW5kSW5kZXggLSBiZWdpblRlcm07Ci0gICAgICAgICAgICAg
ICAgYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1dLmZyYW1lTG9jYXRpb24gPSBmcmFt
ZUxvY2F0aW9uOworICAgICAgICAgICAgd2hpbGUgKG1fYm9keURpc2p1bmN0aW9uLT50ZXJtc1ti
ZWdpblRlcm1dLmFsdGVybmF0aXZlLm5leHQpIHsKKyAgICAgICAgICAgICAgICBiZWdpblRlcm0g
Kz0gbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYWx0ZXJuYXRpdmUubmV4dDsK
KyAgICAgICAgICAgICAgICBBU1NFUlQobV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVy
bV0udHlwZSA9PSBCeXRlVGVybTo6VHlwZUFsdGVybmF0aXZlRGlzanVuY3Rpb24pOworICAgICAg
ICAgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1dLmFsdGVybmF0aXZl
LmVuZCA9IGVuZEluZGV4IC0gYmVnaW5UZXJtOworICAgICAgICAgICAgICAgIG1fYm9keURpc2p1
bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1dLmZyYW1lTG9jYXRpb24gPSBmcmFtZUxvY2F0aW9uOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBib2R5RGlzanVuY3Rpb24t
PnRlcm1zW2JlZ2luVGVybV0uYWx0ZXJuYXRpdmUubmV4dCA9IG9yaWdCZWdpblRlcm0gLSBiZWdp
blRlcm07CiAKLSAgICAgICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVU
ZXJtOjpBbHRlcm5hdGl2ZUVuZCgpKTsKLSAgICAgICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVy
bXNbZW5kSW5kZXhdLmZyYW1lTG9jYXRpb24gPSBmcmFtZUxvY2F0aW9uOworICAgICAgICAgICAg
bV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYWx0ZXJuYXRpdmUubmV4dCA9IG9y
aWdCZWdpblRlcm0gLSBiZWdpblRlcm07CisKKyAgICAgICAgICAgIG1fYm9keURpc2p1bmN0aW9u
LT50ZXJtcy5hcHBlbmQoQnl0ZVRlcm06OkFsdGVybmF0aXZlRW5kKCkpOworICAgICAgICAgICAg
bV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2VuZEluZGV4XS5mcmFtZUxvY2F0aW9uID0gZnJhbWVM
b2NhdGlvbjsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTQxMyw0NiArMTQxMyw0NiBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpbnQgYmVnaW5UZXJtID0gMDsKICAgICAgICAgaW50IG9yaWdC
ZWdpblRlcm0gPSAwOwotICAgICAgICBBU1NFUlQoYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdp
blRlcm1dLnR5cGUgPT0gQnl0ZVRlcm06OlR5cGVCb2R5QWx0ZXJuYXRpdmVCZWdpbik7Ci0gICAg
ICAgIGludCBlbmRJbmRleCA9IGJvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpOworICAgICAg
ICBBU1NFUlQobV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0udHlwZSA9PSBCeXRl
VGVybTo6VHlwZUJvZHlBbHRlcm5hdGl2ZUJlZ2luKTsKKyAgICAgICAgaW50IGVuZEluZGV4ID0g
bV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLnNpemUoKTsKIAotICAgICAgICB1bnNpZ25lZCBmcmFt
ZUxvY2F0aW9uID0gYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1dLmZyYW1lTG9jYXRp
b247CisgICAgICAgIHVuc2lnbmVkIGZyYW1lTG9jYXRpb24gPSBtX2JvZHlEaXNqdW5jdGlvbi0+
dGVybXNbYmVnaW5UZXJtXS5mcmFtZUxvY2F0aW9uOwogCi0gICAgICAgIHdoaWxlIChib2R5RGlz
anVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYWx0ZXJuYXRpdmUubmV4dCkgewotICAgICAgICAg
ICAgYmVnaW5UZXJtICs9IGJvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVnaW5UZXJtXS5hbHRlcm5h
dGl2ZS5uZXh0OwotICAgICAgICAgICAgQVNTRVJUKGJvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVn
aW5UZXJtXS50eXBlID09IEJ5dGVUZXJtOjpUeXBlQm9keUFsdGVybmF0aXZlRGlzanVuY3Rpb24p
OwotICAgICAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1dLmFsdGVybmF0
aXZlLmVuZCA9IGVuZEluZGV4IC0gYmVnaW5UZXJtOwotICAgICAgICAgICAgYm9keURpc2p1bmN0
aW9uLT50ZXJtc1tiZWdpblRlcm1dLmZyYW1lTG9jYXRpb24gPSBmcmFtZUxvY2F0aW9uOworICAg
ICAgICB3aGlsZSAobV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYWx0ZXJuYXRp
dmUubmV4dCkgeworICAgICAgICAgICAgYmVnaW5UZXJtICs9IG1fYm9keURpc2p1bmN0aW9uLT50
ZXJtc1tiZWdpblRlcm1dLmFsdGVybmF0aXZlLm5leHQ7CisgICAgICAgICAgICBBU1NFUlQobV9i
b2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0udHlwZSA9PSBCeXRlVGVybTo6VHlwZUJv
ZHlBbHRlcm5hdGl2ZURpc2p1bmN0aW9uKTsKKyAgICAgICAgICAgIG1fYm9keURpc2p1bmN0aW9u
LT50ZXJtc1tiZWdpblRlcm1dLmFsdGVybmF0aXZlLmVuZCA9IGVuZEluZGV4IC0gYmVnaW5UZXJt
OworICAgICAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uZnJhbWVM
b2NhdGlvbiA9IGZyYW1lTG9jYXRpb247CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGJv
ZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVnaW5UZXJtXS5hbHRlcm5hdGl2ZS5uZXh0ID0gb3JpZ0Jl
Z2luVGVybSAtIGJlZ2luVGVybTsKIAotICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFw
cGVuZChCeXRlVGVybTo6Qm9keUFsdGVybmF0aXZlRW5kKCkpOwotICAgICAgICBib2R5RGlzanVu
Y3Rpb24tPnRlcm1zW2VuZEluZGV4XS5mcmFtZUxvY2F0aW9uID0gZnJhbWVMb2NhdGlvbjsKKyAg
ICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYWx0ZXJuYXRpdmUubmV4
dCA9IG9yaWdCZWdpblRlcm0gLSBiZWdpblRlcm07CisKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rp
b24tPnRlcm1zLmFwcGVuZChCeXRlVGVybTo6Qm9keUFsdGVybmF0aXZlRW5kKCkpOworICAgICAg
ICBtX2JvZHlEaXNqdW5jdGlvbi0+dGVybXNbZW5kSW5kZXhdLmZyYW1lTG9jYXRpb24gPSBmcmFt
ZUxvY2F0aW9uOwogICAgIH0KIAogICAgIHZvaWQgYXRvbVBhcmVudGhlc2VzRW5kKGJvb2wgZG9J
bmxpbmUsIHVuc2lnbmVkIGxhc3RTdWJwYXR0ZXJuSWQsIGludCBpbnB1dFBvc2l0aW9uLCB1bnNp
Z25lZCBmcmFtZUxvY2F0aW9uLCB1bnNpZ25lZCBxdWFudGl0eUNvdW50LCBRdWFudGlmaWVyVHlw
ZSBxdWFudGl0eVR5cGUsIHVuc2lnbmVkIGNhbGxGcmFtZVNpemUgPSAwKQogICAgIHsKICAgICAg
ICAgdW5zaWduZWQgYmVnaW5UZXJtID0gcG9wUGFyZW50aGVzZXNTdGFjaygpOwogICAgICAgICBj
bG9zZUFsdGVybmF0aXZlKGJlZ2luVGVybSArIDEpOwotICAgICAgICB1bnNpZ25lZCBlbmRUZXJt
ID0gYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaXplKCk7CisgICAgICAgIHVuc2lnbmVkIGVuZFRl
cm0gPSBtX2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuc2l6ZSgpOwogCi0gICAgICAgIGJvb2wgaXNB
c3NlcnRpb24gPSBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0udHlwZSA9PSBCeXRl
VGVybTo6VHlwZVBhcmVudGhldGljYWxBc3NlcnRpb25CZWdpbjsKLSAgICAgICAgYm9vbCBpbnZl
cnRPckNhcHR1cmUgPSBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uaW52ZXJ0T3JD
YXB0dXJlOwotICAgICAgICB1bnNpZ25lZCBzdWJwYXR0ZXJuSWQgPSBib2R5RGlzanVuY3Rpb24t
PnRlcm1zW2JlZ2luVGVybV0uYXRvbS5zdWJwYXR0ZXJuSWQ7CisgICAgICAgIGJvb2wgaXNBc3Nl
cnRpb24gPSBtX2JvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVnaW5UZXJtXS50eXBlID09IEJ5dGVU
ZXJtOjpUeXBlUGFyZW50aGV0aWNhbEFzc2VydGlvbkJlZ2luOworICAgICAgICBib29sIGludmVy
dE9yQ2FwdHVyZSA9IG1fYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1dLmludmVydE9y
Q2FwdHVyZTsKKyAgICAgICAgdW5zaWduZWQgc3VicGF0dGVybklkID0gbV9ib2R5RGlzanVuY3Rp
b24tPnRlcm1zW2JlZ2luVGVybV0uYXRvbS5zdWJwYXR0ZXJuSWQ7CiAKLSAgICAgICAgYm9keURp
c2p1bmN0aW9uLT50ZXJtcy5hcHBlbmQoQnl0ZVRlcm0oaXNBc3NlcnRpb24gPyBCeXRlVGVybTo6
VHlwZVBhcmVudGhldGljYWxBc3NlcnRpb25FbmQgOiBCeXRlVGVybTo6VHlwZVBhcmVudGhlc2Vz
U3VicGF0dGVybk9uY2VFbmQsIHN1YnBhdHRlcm5JZCwgaW52ZXJ0T3JDYXB0dXJlLCBpbnB1dFBv
c2l0aW9uKSk7Ci0gICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVnaW5UZXJtXS5hdG9t
LnBhcmVudGhlc2VzV2lkdGggPSBlbmRUZXJtIC0gYmVnaW5UZXJtOwotICAgICAgICBib2R5RGlz
anVuY3Rpb24tPnRlcm1zW2VuZFRlcm1dLmF0b20ucGFyZW50aGVzZXNXaWR0aCA9IGVuZFRlcm0g
LSBiZWdpblRlcm07Ci0gICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXNbZW5kVGVybV0uZnJh
bWVMb2NhdGlvbiA9IGZyYW1lTG9jYXRpb247CisgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50
ZXJtcy5hcHBlbmQoQnl0ZVRlcm0oaXNBc3NlcnRpb24gPyBCeXRlVGVybTo6VHlwZVBhcmVudGhl
dGljYWxBc3NlcnRpb25FbmQgOiBCeXRlVGVybTo6VHlwZVBhcmVudGhlc2VzU3VicGF0dGVybk9u
Y2VFbmQsIHN1YnBhdHRlcm5JZCwgaW52ZXJ0T3JDYXB0dXJlLCBpbnB1dFBvc2l0aW9uKSk7Cisg
ICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1dLmF0b20ucGFyZW50aGVz
ZXNXaWR0aCA9IGVuZFRlcm0gLSBiZWdpblRlcm07CisgICAgICAgIG1fYm9keURpc2p1bmN0aW9u
LT50ZXJtc1tlbmRUZXJtXS5hdG9tLnBhcmVudGhlc2VzV2lkdGggPSBlbmRUZXJtIC0gYmVnaW5U
ZXJtOworICAgICAgICBtX2JvZHlEaXNqdW5jdGlvbi0+dGVybXNbZW5kVGVybV0uZnJhbWVMb2Nh
dGlvbiA9IGZyYW1lTG9jYXRpb247CiAKICAgICAgICAgaWYgKGRvSW5saW5lKSB7Ci0gICAgICAg
ICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYXRvbS5xdWFudGl0eUNvdW50
ID0gcXVhbnRpdHlDb3VudDsKLSAgICAgICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVn
aW5UZXJtXS5hdG9tLnF1YW50aXR5VHlwZSA9IHF1YW50aXR5VHlwZTsKLSAgICAgICAgICAgIGJv
ZHlEaXNqdW5jdGlvbi0+dGVybXNbZW5kVGVybV0uYXRvbS5xdWFudGl0eUNvdW50ID0gcXVhbnRp
dHlDb3VudDsKLSAgICAgICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXNbZW5kVGVybV0uYXRv
bS5xdWFudGl0eVR5cGUgPSBxdWFudGl0eVR5cGU7CisgICAgICAgICAgICBtX2JvZHlEaXNqdW5j
dGlvbi0+dGVybXNbYmVnaW5UZXJtXS5hdG9tLnF1YW50aXR5Q291bnQgPSBxdWFudGl0eUNvdW50
OworICAgICAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYXRvbS5x
dWFudGl0eVR5cGUgPSBxdWFudGl0eVR5cGU7CisgICAgICAgICAgICBtX2JvZHlEaXNqdW5jdGlv
bi0+dGVybXNbZW5kVGVybV0uYXRvbS5xdWFudGl0eUNvdW50ID0gcXVhbnRpdHlDb3VudDsKKyAg
ICAgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50ZXJtc1tlbmRUZXJtXS5hdG9tLnF1YW50aXR5
VHlwZSA9IHF1YW50aXR5VHlwZTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEJ5dGVU
ZXJtJiBwYXJlbnRoZXNlc0JlZ2luID0gYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRlcm1d
OworICAgICAgICAgICAgQnl0ZVRlcm0mIHBhcmVudGhlc2VzQmVnaW4gPSBtX2JvZHlEaXNqdW5j
dGlvbi0+dGVybXNbYmVnaW5UZXJtXTsKICAgICAgICAgICAgIEFTU0VSVChwYXJlbnRoZXNlc0Jl
Z2luLnR5cGUgPT0gQnl0ZVRlcm06OlR5cGVQYXJlbnRoZXNlc1N1YnBhdHRlcm5PbmNlQmVnaW4p
OwogCiAgICAgICAgICAgICBib29sIGludmVydE9yQ2FwdHVyZSA9IHBhcmVudGhlc2VzQmVnaW4u
aW52ZXJ0T3JDYXB0dXJlOwpAQCAtMTQ2MywyNiArMTQ2MywyNiBAQCBwdWJsaWM6CiAKICAgICAg
ICAgICAgIHBhcmVudGhlc2VzRGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVybTo6U3Vi
cGF0dGVybkJlZ2luKCkpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCB0ZXJtSW5QYXJlbnRo
ZXNlcyA9IGJlZ2luVGVybSArIDE7IHRlcm1JblBhcmVudGhlc2VzIDwgZW5kVGVybTsgKyt0ZXJt
SW5QYXJlbnRoZXNlcykKLSAgICAgICAgICAgICAgICBwYXJlbnRoZXNlc0Rpc2p1bmN0aW9uLT50
ZXJtcy5hcHBlbmQoYm9keURpc2p1bmN0aW9uLT50ZXJtc1t0ZXJtSW5QYXJlbnRoZXNlc10pOwor
ICAgICAgICAgICAgICAgIHBhcmVudGhlc2VzRGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChtX2Jv
ZHlEaXNqdW5jdGlvbi0+dGVybXNbdGVybUluUGFyZW50aGVzZXNdKTsKICAgICAgICAgICAgIHBh
cmVudGhlc2VzRGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVybTo6U3VicGF0dGVybkVu
ZCgpKTsKIAotICAgICAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaHJpbmsoYmVnaW5U
ZXJtKTsKKyAgICAgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50ZXJtcy5zaHJpbmsoYmVnaW5U
ZXJtKTsKIAogICAgICAgICAgICAgbV9hbGxQYXJlbnRoZXNlc0luZm8uYXBwZW5kKHBhcmVudGhl
c2VzRGlzanVuY3Rpb24pOwotICAgICAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtcy5hcHBl
bmQoQnl0ZVRlcm0oQnl0ZVRlcm06OlR5cGVQYXJlbnRoZXNlc1N1YnBhdHRlcm4sIHN1YnBhdHRl
cm5JZCwgcGFyZW50aGVzZXNEaXNqdW5jdGlvbiwgaW52ZXJ0T3JDYXB0dXJlLCBpbnB1dFBvc2l0
aW9uKSk7CisgICAgICAgICAgICBtX2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVU
ZXJtKEJ5dGVUZXJtOjpUeXBlUGFyZW50aGVzZXNTdWJwYXR0ZXJuLCBzdWJwYXR0ZXJuSWQsIHBh
cmVudGhlc2VzRGlzanVuY3Rpb24sIGludmVydE9yQ2FwdHVyZSwgaW5wdXRQb3NpdGlvbikpOwog
Ci0gICAgICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2JlZ2luVGVybV0uYXRvbS5xdWFu
dGl0eUNvdW50ID0gcXVhbnRpdHlDb3VudDsKLSAgICAgICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+
dGVybXNbYmVnaW5UZXJtXS5hdG9tLnF1YW50aXR5VHlwZSA9IHF1YW50aXR5VHlwZTsKLSAgICAg
ICAgICAgIGJvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVnaW5UZXJtXS5mcmFtZUxvY2F0aW9uID0g
ZnJhbWVMb2NhdGlvbjsKKyAgICAgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdp
blRlcm1dLmF0b20ucXVhbnRpdHlDb3VudCA9IHF1YW50aXR5Q291bnQ7CisgICAgICAgICAgICBt
X2JvZHlEaXNqdW5jdGlvbi0+dGVybXNbYmVnaW5UZXJtXS5hdG9tLnF1YW50aXR5VHlwZSA9IHF1
YW50aXR5VHlwZTsKKyAgICAgICAgICAgIG1fYm9keURpc2p1bmN0aW9uLT50ZXJtc1tiZWdpblRl
cm1dLmZyYW1lTG9jYXRpb24gPSBmcmFtZUxvY2F0aW9uOwogICAgICAgICB9CiAgICAgfQogCiAg
ICAgdm9pZCByZWdleEJlZ2luKHVuc2lnbmVkIG51bVN1YnBhdHRlcm5zLCB1bnNpZ25lZCBjYWxs
RnJhbWVTaXplKQogICAgIHsKLSAgICAgICAgYm9keURpc2p1bmN0aW9uID0gbmV3IEJ5dGVEaXNq
dW5jdGlvbihudW1TdWJwYXR0ZXJucywgY2FsbEZyYW1lU2l6ZSk7Ci0gICAgICAgIGJvZHlEaXNq
dW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVUZXJtOjpCb2R5QWx0ZXJuYXRpdmVCZWdpbigpKTsK
LSAgICAgICAgYm9keURpc2p1bmN0aW9uLT50ZXJtc1swXS5mcmFtZUxvY2F0aW9uID0gMDsKLSAg
ICAgICAgY3VycmVudEFsdGVybmF0aXZlSW5kZXggPSAwOworICAgICAgICBtX2JvZHlEaXNqdW5j
dGlvbiA9IG5ldyBCeXRlRGlzanVuY3Rpb24obnVtU3VicGF0dGVybnMsIGNhbGxGcmFtZVNpemUp
OworICAgICAgICBtX2JvZHlEaXNqdW5jdGlvbi0+dGVybXMuYXBwZW5kKEJ5dGVUZXJtOjpCb2R5
QWx0ZXJuYXRpdmVCZWdpbigpKTsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zWzBd
LmZyYW1lTG9jYXRpb24gPSAwOworICAgICAgICBtX2N1cnJlbnRBbHRlcm5hdGl2ZUluZGV4ID0g
MDsKICAgICB9CiAKICAgICB2b2lkIHJlZ2V4RW5kKCkKQEAgLTE0OTIsMjcgKzE0OTIsMjcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBhbHRlcmFudGl2ZUJvZHlEaXNqdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBpbnQgbmV3QWx0ZXJuYXRpdmVJbmRleCA9IGJvZHlEaXNqdW5jdGlvbi0+dGVybXMu
c2l6ZSgpOwotICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zW2N1cnJlbnRBbHRlcm5hdGl2
ZUluZGV4XS5hbHRlcm5hdGl2ZS5uZXh0ID0gbmV3QWx0ZXJuYXRpdmVJbmRleCAtIGN1cnJlbnRB
bHRlcm5hdGl2ZUluZGV4OwotICAgICAgICBib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChC
eXRlVGVybTo6Qm9keUFsdGVybmF0aXZlRGlzanVuY3Rpb24oKSk7CisgICAgICAgIGludCBuZXdB
bHRlcm5hdGl2ZUluZGV4ID0gbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLnNpemUoKTsKKyAgICAg
ICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW21fY3VycmVudEFsdGVybmF0aXZlSW5kZXhdLmFs
dGVybmF0aXZlLm5leHQgPSBuZXdBbHRlcm5hdGl2ZUluZGV4IC0gbV9jdXJyZW50QWx0ZXJuYXRp
dmVJbmRleDsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVy
bTo6Qm9keUFsdGVybmF0aXZlRGlzanVuY3Rpb24oKSk7CiAKLSAgICAgICAgY3VycmVudEFsdGVy
bmF0aXZlSW5kZXggPSBuZXdBbHRlcm5hdGl2ZUluZGV4OworICAgICAgICBtX2N1cnJlbnRBbHRl
cm5hdGl2ZUluZGV4ID0gbmV3QWx0ZXJuYXRpdmVJbmRleDsKICAgICB9CiAKICAgICB2b2lkIGFs
dGVyYW50aXZlRGlzanVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaW50IG5ld0FsdGVybmF0aXZl
SW5kZXggPSBib2R5RGlzanVuY3Rpb24tPnRlcm1zLnNpemUoKTsKLSAgICAgICAgYm9keURpc2p1
bmN0aW9uLT50ZXJtc1tjdXJyZW50QWx0ZXJuYXRpdmVJbmRleF0uYWx0ZXJuYXRpdmUubmV4dCA9
IG5ld0FsdGVybmF0aXZlSW5kZXggLSBjdXJyZW50QWx0ZXJuYXRpdmVJbmRleDsKLSAgICAgICAg
Ym9keURpc2p1bmN0aW9uLT50ZXJtcy5hcHBlbmQoQnl0ZVRlcm06OkFsdGVybmF0aXZlRGlzanVu
Y3Rpb24oKSk7CisgICAgICAgIGludCBuZXdBbHRlcm5hdGl2ZUluZGV4ID0gbV9ib2R5RGlzanVu
Y3Rpb24tPnRlcm1zLnNpemUoKTsKKyAgICAgICAgbV9ib2R5RGlzanVuY3Rpb24tPnRlcm1zW21f
Y3VycmVudEFsdGVybmF0aXZlSW5kZXhdLmFsdGVybmF0aXZlLm5leHQgPSBuZXdBbHRlcm5hdGl2
ZUluZGV4IC0gbV9jdXJyZW50QWx0ZXJuYXRpdmVJbmRleDsKKyAgICAgICAgbV9ib2R5RGlzanVu
Y3Rpb24tPnRlcm1zLmFwcGVuZChCeXRlVGVybTo6QWx0ZXJuYXRpdmVEaXNqdW5jdGlvbigpKTsK
IAotICAgICAgICBjdXJyZW50QWx0ZXJuYXRpdmVJbmRleCA9IG5ld0FsdGVybmF0aXZlSW5kZXg7
CisgICAgICAgIG1fY3VycmVudEFsdGVybmF0aXZlSW5kZXggPSBuZXdBbHRlcm5hdGl2ZUluZGV4
OwogICAgIH0KIAogICAgIHZvaWQgZW1pdERpc2p1bmN0aW9uKFBhdHRlcm5EaXNqdW5jdGlvbiog
ZGlzanVuY3Rpb24sIHVuc2lnbmVkIGlucHV0Q291bnRBbHJlYWR5Q2hlY2tlZCA9IDAsIHVuc2ln
bmVkIHBhcmVudGhlc2VzSW5wdXRDb3VudEFscmVhZHlDaGVja2VkID0gMCkKICAgICB7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgYWx0ID0gMDsgYWx0IDwgZGlzanVuY3Rpb24tPm1fYWx0ZXJuYXRp
dmVzLnNpemUoKTsgKythbHQpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGN1cnJlbnRDb3VudEFs
cmVhZHlDaGVja2VkID0gaW5wdXRDb3VudEFscmVhZHlDaGVja2VkOwotICAgICAgICAKKwogICAg
ICAgICAgICAgaWYgKGFsdCkgewogICAgICAgICAgICAgICAgIGlmIChkaXNqdW5jdGlvbiA9PSBt
X3BhdHRlcm4ubV9ib2R5KQogICAgICAgICAgICAgICAgICAgICBhbHRlcmFudGl2ZUJvZHlEaXNq
dW5jdGlvbigpOwpAQCAtMTU4Niw3ICsxNTg2LDcgQEAgcHVibGljOgogCiAgICAgICAgICAgICAg
ICAgY2FzZSBQYXR0ZXJuVGVybTo6VHlwZVBhcmVudGhldGljYWxBc3NlcnRpb246IHsKICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgYWx0ZXJuYXRpdmVGcmFtZUxvY2F0aW9uID0gdGVybS5p
bnB1dFBvc2l0aW9uICsgUmVnZXhTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb1BhcmVudGhldGlj
YWxBc3NlcnRpb247Ci0gICAgICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgICAg
IGF0b21QYXJlbnRoZXRpY2FsQXNzZXJ0aW9uQmVnaW4odGVybS5wYXJlbnRoZXNlcy5zdWJwYXR0
ZXJuSWQsIHRlcm0uaW52ZXJ0T3JDYXB0dXJlLCB0ZXJtLmZyYW1lTG9jYXRpb24sIGFsdGVybmF0
aXZlRnJhbWVMb2NhdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIGVtaXREaXNqdW5jdGlvbih0
ZXJtLnBhcmVudGhlc2VzLmRpc2p1bmN0aW9uLCBjdXJyZW50Q291bnRBbHJlYWR5Q2hlY2tlZCwg
MCk7CiAgICAgICAgICAgICAgICAgICAgIGF0b21QYXJlbnRoZXNlc0VuZCh0cnVlLCB0ZXJtLnBh
cmVudGhlc2VzLmxhc3RTdWJwYXR0ZXJuSWQsIDAsIHRlcm0uZnJhbWVMb2NhdGlvbiwgdGVybS5x
dWFudGl0eUNvdW50LCB0ZXJtLnF1YW50aXR5VHlwZSk7CkBAIC0xNTk5LDggKzE1OTksOCBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUmVnZXhQYXR0ZXJuJiBtX3BhdHRlcm47Ci0gICAgQnl0
ZURpc2p1bmN0aW9uKiBib2R5RGlzanVuY3Rpb247Ci0gICAgdW5zaWduZWQgY3VycmVudEFsdGVy
bmF0aXZlSW5kZXg7CisgICAgQnl0ZURpc2p1bmN0aW9uKiBtX2JvZHlEaXNqdW5jdGlvbjsKKyAg
ICB1bnNpZ25lZCBtX2N1cnJlbnRBbHRlcm5hdGl2ZUluZGV4OwogICAgIFZlY3RvcjxQYXJlbnRo
ZXNlc1N0YWNrRW50cnk+IG1fcGFyZW50aGVzZXNTdGFjazsKICAgICBWZWN0b3I8Qnl0ZURpc2p1
bmN0aW9uKj4gbV9hbGxQYXJlbnRoZXNlc0luZm87CiB9Ow==
</data>
<flag name="review"
          id="19105"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>