<?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>146292</bug_id>
          
          <creation_ts>2015-06-24 14:59:25 -0700</creation_ts>
          <short_desc>Refactor CallLinkInfo from a struct to a class</short_desc>
          <delta_ts>2015-06-24 15:38:16 -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>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>146285</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1104496</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-06-24 14:59:25 -0700</bug_when>
    <thetext>This is in preparation for fixing https://bugs.webkit.org/show_bug.cgi?id=146285</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104508</commentid>
    <comment_count>1</comment_count>
      <attachid>255518</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-06-24 15:37:30 -0700</bug_when>
    <thetext>Created attachment 255518
Patch for Landing - rubber stamped in person.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104509</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-06-24 15:38:16 -0700</bug_when>
    <thetext>Committed r185930: &lt;http://trac.webkit.org/changeset/185930&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255518</attachid>
            <date>2015-06-24 15:37:30 -0700</date>
            <delta_ts>2015-06-24 15:37:30 -0700</delta_ts>
            <desc>Patch for Landing - rubber stamped in person.</desc>
            <filename>146292.patch</filename>
            <type>text/plain</type>
            <size>41878</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg1OTI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMSBA
QAorMjAxNS0wNi0yNCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZWZhY3RvciBDYWxsTGlua0luZm8gZnJvbSBhIHN0cnVjdCB0byBhIGNsYXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDYyOTIKKworICAg
ICAgICBSdWJiZXIgc3RhbXBlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBSZWZhY3RvcmVk
IENhbGxMaW5rSW5mbyBmcm9tIGEgc3RydWN0IHRvIGEgY2xhc3Mgd2l0aCBwcm9wZXIgYWNjZXNz
b3JzIGFuZCBtYWRlIGFsbCB0aGUKKyAgICAgICAgZGF0YSBlbGVtZW50cyBwcml2YXRlLgorCisg
ICAgICAgIERvbmUgaW4gcHJlcGFyYXRpb24gZm9yIGZpeGluZyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2Mjg1LgorCisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExp
bmtJbmZvLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjbGVhclN0dWIpOgorICAg
ICAgICAoSlNDOjpDYWxsTGlua0luZm86OnVubGluayk6CisgICAgICAgIChKU0M6OkNhbGxMaW5r
SW5mbzo6dmlzaXRXZWFrKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAg
ICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjYWxsVHlwZUZvcik6CisgICAgICAgIChKU0M6OkNh
bGxMaW5rSW5mbzo6Q2FsbExpbmtJbmZvKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjp+
Q2FsbExpbmtJbmZvKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpzcGVjaWFsaXphdGlv
bktpbmRGb3IpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNwZWNpYWxpemF0aW9uS2lu
ZCk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6aXNMaW5rZWQpOgorICAgICAgICAoSlND
OjpDYWxsTGlua0luZm86OnNldFVwQ2FsbCk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6
c2V0Q2FsbExvY2F0aW9ucyk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2V0VXBDYWxs
RnJvbUZUTCk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6Y2FsbFJldHVybkxvY2F0aW9u
KToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpob3RQYXRoQmVnaW4pOgorICAgICAgICAo
SlNDOjpDYWxsTGlua0luZm86OmhvdFBhdGhPdGhlcik6CisgICAgICAgIChKU0M6OkNhbGxMaW5r
SW5mbzo6c2V0Q2FsbGVlKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjbGVhckNhbGxl
ZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6Y2FsbGVlKToKKyAgICAgICAgKEpTQzo6
Q2FsbExpbmtJbmZvOjpzZXRMYXN0U2VlbkNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5r
SW5mbzo6Y2xlYXJMYXN0U2VlbkNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6
bGFzdFNlZW5DYWxsZWUpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmhhdmVMYXN0U2Vl
bkNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2V0U3R1Yik6CisgICAgICAg
IChKU0M6OkNhbGxMaW5rSW5mbzo6c3R1Yik6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6
c2Vlbk9uY2UpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmNsZWFyU2Vlbik6CisgICAg
ICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2V0U2Vlbik6CisgICAgICAgIChKU0M6OkNhbGxMaW5r
SW5mbzo6aGFzU2VlbkNsb3N1cmUpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldEhh
c1NlZW5DbG9zdXJlKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjbGVhcmVkQnlHQyk6
CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2V0Q2FsbFR5cGUpOgorICAgICAgICAoSlND
OjpDYWxsTGlua0luZm86OmNhbGxUeXBlKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjph
ZGRyZXNzT2ZNYXhOdW1Bcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86Om1h
eE51bUFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6b2Zmc2V0T2ZTbG93
UGF0aENvdW50KToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpzZXRDYWxsZWVHUFIpOgor
ICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmNhbGxlZUdQUik6CisgICAgICAgIChKU0M6OkNh
bGxMaW5rSW5mbzo6c2xvd1BhdGhDb3VudCk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6
c2V0Q29kZU9yaWdpbik6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6Y29kZU9yaWdpbik6
CisgICAgICAgIChKU0M6OmdldENhbGxMaW5rSW5mb0NvZGVPcmlnaW4pOgorICAgICAgICAqIGJ5
dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6
OmNvbXB1dGVGb3IpOgorICAgICAgICAoSlNDOjpDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZyb21D
YWxsTGlua0luZm8pOgorICAgICAgICAoSlNDOjpDYWxsTGlua1N0YXR1czo6Y29tcHV0ZURGR1N0
YXR1c2VzKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0YXR1cy5oOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRD
YWxsT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb0ZvckJ5dGVj
b2RlSW5kZXgpOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6SklUQ29tcGlsZXI6OmxpbmspOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29t
cGlsZXJDb21tb24uY3BwOgorICAgICAgICAoSlNDOjpERkc6OnJlaWZ5SW5saW5lZENhbGxGcmFt
ZXMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
ZW1pdENhbGwpOgorICAgICAgICAqIGZ0bC9GVExKU0NhbGxCYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6RlRMOjpKU0NhbGxCYXNlOjpsaW5rKToKKyAgICAgICAgKiBqaXQvQWNjZXNzb3JDYWxsSklU
U3R1YlJvdXRpbmUuaDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklU
Ojpwcml2YXRlQ29tcGlsZSk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9K
SVRDYWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlU2V0dXBWYXJhcmdzRnJhbWUp
OgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAqIGppdC9KSVRD
YWxsMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVTZXR1cFZhcmFyZ3NGcmFt
ZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgICogaml0L0pJ
VE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGlu
ZS5jcHA6CisgICAgICAgIChKU0M6OlBvbHltb3JwaGljQ2FsbE5vZGU6OnVubGluayk6CisgICAg
ICAgIChKU0M6OlBvbHltb3JwaGljQ2FsbE5vZGU6OmNsZWFyQ2FsbExpbmtJbmZvKToKKyAgICAg
ICAgKiBqaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaDoKKyAgICAgICAgKiBqaXQvUmVw
YXRjaC5jcHA6CisgICAgICAgIChKU0M6OmdlbmVyYXRlQnlJZFN0dWIpOgorICAgICAgICAoSlND
OjpsaW5rU2xvd0Zvcik6CisgICAgICAgIChKU0M6OmxpbmtGb3IpOgorICAgICAgICAoSlNDOjpy
ZXZlcnRDYWxsKToKKyAgICAgICAgKEpTQzo6dW5saW5rRm9yKToKKyAgICAgICAgKEpTQzo6bGlu
a1BvbHltb3JwaGljQ2FsbCk6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6Cisg
ICAgICAgIChKU0M6OnZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcik6CisKIDIwMTUtMDYtMjQgIERv
dWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CiAKICAgICAgICAgQnVnIDE0NjE3NyAt
IEFYOiBBWE9iamVjdENhY2hlIHNob3VsZCB0cnkgdG8gdXNlIGFuIHVuaWdub3JlZCBhY2Nlc3Np
YmlsaXR5T2JqZWN0IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAJKHJldmlzaW9uIDE4NTkyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICsz
NywxNCBAQAogI2lmIEVOQUJMRShKSVQpCiBuYW1lc3BhY2UgSlNDIHsKIAordm9pZCBDYWxsTGlu
a0luZm86OmNsZWFyU3R1YigpCit7CisgICAgaWYgKCFzdHViKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fc3R1Yi5jbGVhcigpOworfQorCiB2b2lkIENhbGxMaW5rSW5mbzo6dW5saW5rKFJl
cGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIpCiB7CiAgICAgaWYgKCFpc0xpbmtlZCgpKSB7CkBA
IC00OCw4ICs1Niw4IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp1bmxpbmsoUmVwYXRjaEJ1ZmZlciYK
ICAgICAKICAgICB1bmxpbmtGb3IoCiAgICAgICAgIHJlcGF0Y2hCdWZmZXIsICp0aGlzLAotICAg
ICAgICAoY2FsbFR5cGUgPT0gQ29uc3RydWN0IHx8IGNhbGxUeXBlID09IENvbnN0cnVjdFZhcmFy
Z3MpPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCi0gICAgICAgIGlzRlRMID8gTXVz
dFByZXNlcnZlUmVnaXN0ZXJzIDogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7Cisg
ICAgICAgIChtX2NhbGxUeXBlID09IENvbnN0cnVjdCB8fCBtX2NhbGxUeXBlID09IENvbnN0cnVj
dFZhcmFyZ3MpPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgIG1faXNG
VEwgPyBNdXN0UHJlc2VydmVSZWdpc3RlcnMgOiBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVp
cmVkKTsKIAogICAgIC8vIEl0IHdpbGwgYmUgb24gYSBsaXN0IGlmIHRoZSBjYWxsZWUgaGFzIGEg
Y29kZSBibG9jay4KICAgICBpZiAoaXNPbkxpc3QoKSkKQEAgLTYwLDM4ICs2OCwzOCBAQCB2b2lk
IENhbGxMaW5rSW5mbzo6dmlzaXRXZWFrKFJlcGF0Y2hCdWZmCiB7CiAgICAgYXV0byBoYW5kbGVT
cGVjaWZpY0NhbGxlZSA9IFsmXSAoSlNGdW5jdGlvbiogY2FsbGVlKSB7CiAgICAgICAgIGlmIChI
ZWFwOjppc01hcmtlZChjYWxsZWUtPmV4ZWN1dGFibGUoKSkpCi0gICAgICAgICAgICBoYXNTZWVu
Q2xvc3VyZSA9IHRydWU7CisgICAgICAgICAgICBtX2hhc1NlZW5DbG9zdXJlID0gdHJ1ZTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY2xlYXJlZEJ5R0MgPSB0cnVlOworICAgICAgICAgICAg
bV9jbGVhcmVkQnlHQyA9IHRydWU7CiAgICAgfTsKICAgICAKICAgICBpZiAoaXNMaW5rZWQoKSkg
ewotICAgICAgICBpZiAoc3R1YikgewotICAgICAgICAgICAgaWYgKCFzdHViLT52aXNpdFdlYWso
cmVwYXRjaEJ1ZmZlcikpIHsKKyAgICAgICAgaWYgKHN0dWIoKSkgeworICAgICAgICAgICAgaWYg
KCFzdHViKCktPnZpc2l0V2VhayhyZXBhdGNoQnVmZmVyKSkgewogICAgICAgICAgICAgICAgIGlm
IChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygK
ICAgICAgICAgICAgICAgICAgICAgICAgICJDbGVhcmluZyBjbG9zdXJlIGNhbGwgZnJvbSAiLCAq
cmVwYXRjaEJ1ZmZlci5jb2RlQmxvY2soKSwgIiB0byAiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgbGlzdER1bXAoc3R1Yi0+dmFyaWFudHMoKSksICIsIHN0dWIgcm91dGluZSAiLCBSYXdQb2lu
dGVyKHN0dWIuZ2V0KCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdER1bXAoc3R1Yigp
LT52YXJpYW50cygpKSwgIiwgc3R1YiByb3V0aW5lICIsIFJhd1BvaW50ZXIoc3R1YigpKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICIuXG4iKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgdW5saW5rKHJlcGF0Y2hCdWZmZXIpOwotICAgICAgICAgICAgICAgIGNsZWFyZWRC
eUdDID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBtX2NsZWFyZWRCeUdDID0gdHJ1ZTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmICghSGVhcDo6aXNNYXJrZWQoY2FsbGVlLmdldCgp
KSkgeworICAgICAgICB9IGVsc2UgaWYgKCFIZWFwOjppc01hcmtlZChtX2NhbGxlZS5nZXQoKSkp
IHsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKICAgICAgICAgICAg
ICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICAgICAiQ2xlYXJpbmcgY2FsbCBmcm9tICIs
ICpyZXBhdGNoQnVmZmVyLmNvZGVCbG9jaygpLCAiIHRvICIsCi0gICAgICAgICAgICAgICAgICAg
IFJhd1BvaW50ZXIoY2FsbGVlLmdldCgpKSwgIiAoIiwKLSAgICAgICAgICAgICAgICAgICAgY2Fs
bGVlLmdldCgpLT5leGVjdXRhYmxlKCktPmhhc2hGb3Ioc3BlY2lhbGl6YXRpb25LaW5kKCkpLAor
ICAgICAgICAgICAgICAgICAgICBSYXdQb2ludGVyKG1fY2FsbGVlLmdldCgpKSwgIiAoIiwKKyAg
ICAgICAgICAgICAgICAgICAgbV9jYWxsZWUuZ2V0KCktPmV4ZWN1dGFibGUoKS0+aGFzaEZvcihz
cGVjaWFsaXphdGlvbktpbmQoKSksCiAgICAgICAgICAgICAgICAgICAgICIpLlxuIik7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBoYW5kbGVTcGVjaWZpY0NhbGxlZShjYWxsZWUuZ2V0KCkp
OworICAgICAgICAgICAgaGFuZGxlU3BlY2lmaWNDYWxsZWUobV9jYWxsZWUuZ2V0KCkpOwogICAg
ICAgICAgICAgdW5saW5rKHJlcGF0Y2hCdWZmZXIpOwogICAgICAgICB9CiAgICAgfQotICAgIGlm
ICghIWxhc3RTZWVuQ2FsbGVlICYmICFIZWFwOjppc01hcmtlZChsYXN0U2VlbkNhbGxlZS5nZXQo
KSkpIHsKLSAgICAgICAgaGFuZGxlU3BlY2lmaWNDYWxsZWUobGFzdFNlZW5DYWxsZWUuZ2V0KCkp
OwotICAgICAgICBsYXN0U2VlbkNhbGxlZS5jbGVhcigpOworICAgIGlmIChoYXZlTGFzdFNlZW5D
YWxsZWUoKSAmJiAhSGVhcDo6aXNNYXJrZWQobGFzdFNlZW5DYWxsZWUoKSkpIHsKKyAgICAgICAg
aGFuZGxlU3BlY2lmaWNDYWxsZWUobGFzdFNlZW5DYWxsZWUoKSk7CisgICAgICAgIGNsZWFyTGFz
dFNlZW5DYWxsZWUoKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgJKHJldmlzaW9uIDE4NTkyOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAkod29ya2luZyBjb3B5KQpAQCAt
NDEsNyArNDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgUmVwYXRjaEJ1ZmZlcjsKIAot
c3RydWN0IENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxDYWxsTGlu
a0luZm8+IHsKK2NsYXNzIENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9k
ZTxDYWxsTGlua0luZm8+IHsKK3B1YmxpYzoKICAgICBlbnVtIENhbGxUeXBlIHsgTm9uZSwgQ2Fs
bCwgQ2FsbFZhcmFyZ3MsIENvbnN0cnVjdCwgQ29uc3RydWN0VmFyYXJncyB9OwogICAgIHN0YXRp
YyBDYWxsVHlwZSBjYWxsVHlwZUZvcihPcGNvZGVJRCBvcGNvZGVJRCkKICAgICB7CkBAIC01Niwy
MCArNTcsMjIgQEAgc3RydWN0IENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbgogICAg
IH0KICAgICAKICAgICBDYWxsTGlua0luZm8oKQotICAgICAgICA6IGlzRlRMKGZhbHNlKQotICAg
ICAgICAsIGhhc1NlZW5TaG91bGRSZXBhdGNoKGZhbHNlKQotICAgICAgICAsIGhhc1NlZW5DbG9z
dXJlKGZhbHNlKQotICAgICAgICAsIGNsZWFyZWRCeUdDKGZhbHNlKQotICAgICAgICAsIGNhbGxU
eXBlKE5vbmUpCi0gICAgICAgICwgbWF4TnVtQXJndW1lbnRzKDApCi0gICAgICAgICwgc2xvd1Bh
dGhDb3VudCgwKQorICAgICAgICA6IG1faXNGVEwoZmFsc2UpCisgICAgICAgICwgbV9oYXNTZWVu
U2hvdWxkUmVwYXRjaChmYWxzZSkKKyAgICAgICAgLCBtX2hhc1NlZW5DbG9zdXJlKGZhbHNlKQor
ICAgICAgICAsIG1fY2xlYXJlZEJ5R0MoZmFsc2UpCisgICAgICAgICwgbV9jYWxsVHlwZShOb25l
KQorICAgICAgICAsIG1fbWF4TnVtQXJndW1lbnRzKDApCisgICAgICAgICwgbV9zbG93UGF0aENv
dW50KDApCiAgICAgewogICAgIH0KICAgICAgICAgCiAgICAgfkNhbGxMaW5rSW5mbygpCiAgICAg
ewotICAgICAgICBpZiAoc3R1YikKLSAgICAgICAgICAgIHN0dWItPmNsZWFyQ2FsbE5vZGVzRm9y
KHRoaXMpOworICAgICAgICBpZiAoc3R1YigpKQorICAgICAgICAgICAgbV9zdHViLT5jbGVhckNh
bGxOb2Rlc0Zvcih0aGlzKTsKKworICAgICAgICBjbGVhclN0dWIoKTsKIAogICAgICAgICBpZiAo
aXNPbkxpc3QoKSkKICAgICAgICAgICAgIHJlbW92ZSgpOwpAQCAtODEsNDYgKzg0LDIwNyBAQCBz
dHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VuCiAgICAgfQogICAgIENvZGVT
cGVjaWFsaXphdGlvbktpbmQgc3BlY2lhbGl6YXRpb25LaW5kKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBzcGVjaWFsaXphdGlvbktpbmRGb3Ioc3RhdGljX2Nhc3Q8Q2FsbFR5cGU+KGNh
bGxUeXBlKSk7CisgICAgICAgIHJldHVybiBzcGVjaWFsaXphdGlvbktpbmRGb3Ioc3RhdGljX2Nh
c3Q8Q2FsbFR5cGU+KG1fY2FsbFR5cGUpKTsKICAgICB9CiAKLSAgICBDb2RlTG9jYXRpb25OZWFy
Q2FsbCBjYWxsUmV0dXJuTG9jYXRpb247Ci0gICAgQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGhv
dFBhdGhCZWdpbjsKLSAgICBDb2RlTG9jYXRpb25OZWFyQ2FsbCBob3RQYXRoT3RoZXI7Ci0gICAg
SklUV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGNhbGxlZTsKLSAgICBXcml0ZUJhcnJpZXI8SlNG
dW5jdGlvbj4gbGFzdFNlZW5DYWxsZWU7Ci0gICAgUmVmUHRyPFBvbHltb3JwaGljQ2FsbFN0dWJS
b3V0aW5lPiBzdHViOwotICAgIGJvb2wgaXNGVEwgOiAxOwotICAgIGJvb2wgaGFzU2VlblNob3Vs
ZFJlcGF0Y2ggOiAxOwotICAgIGJvb2wgaGFzU2VlbkNsb3N1cmUgOiAxOwotICAgIGJvb2wgY2xl
YXJlZEJ5R0MgOiAxOwotICAgIHVuc2lnbmVkIGNhbGxUeXBlIDogNDsgLy8gQ2FsbFR5cGUKLSAg
ICB1bnNpZ25lZCBjYWxsZWVHUFIgOiA4OwotICAgIHVpbnQ4X3QgbWF4TnVtQXJndW1lbnRzOyAv
LyBPbmx5IHVzZWQgZm9yIHZhcmFyZ3MgY2FsbHMuCi0gICAgdWludDMyX3Qgc2xvd1BhdGhDb3Vu
dDsKLSAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW47Ci0KLSAgICBib29sIGlzTGlua2VkKCkgeyBy
ZXR1cm4gc3R1YiB8fCBjYWxsZWU7IH0KKyAgICBib29sIGlzTGlua2VkKCkgeyByZXR1cm4gbV9z
dHViIHx8IG1fY2FsbGVlOyB9CiAgICAgdm9pZCB1bmxpbmsoUmVwYXRjaEJ1ZmZlciYpOwogCisg
ICAgdm9pZCBzZXRVcENhbGwoQ2FsbFR5cGUgY2FsbFR5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdp
biwgdW5zaWduZWQgY2FsbGVlR1BSKQorICAgIHsKKyAgICAgICAgbV9jYWxsVHlwZSA9IGNhbGxU
eXBlOworICAgICAgICBtX2NvZGVPcmlnaW4gPSBjb2RlT3JpZ2luOworICAgICAgICBtX2NhbGxl
ZUdQUiA9IGNhbGxlZUdQUjsKKyAgICB9CisKKyAgICB2b2lkIHNldENhbGxMb2NhdGlvbnMoQ29k
ZUxvY2F0aW9uTmVhckNhbGwgY2FsbFJldHVybkxvY2F0aW9uLCBDb2RlTG9jYXRpb25EYXRhTGFi
ZWxQdHIgaG90UGF0aEJlZ2luLAorICAgICAgICBDb2RlTG9jYXRpb25OZWFyQ2FsbCBob3RQYXRo
T3RoZXIpCisgICAgeworICAgICAgICBtX2NhbGxSZXR1cm5Mb2NhdGlvbiA9IGNhbGxSZXR1cm5M
b2NhdGlvbjsKKyAgICAgICAgbV9ob3RQYXRoQmVnaW4gPSBob3RQYXRoQmVnaW47CisgICAgICAg
IG1faG90UGF0aE90aGVyID0gaG90UGF0aE90aGVyOworICAgIH0KKworICAgIHZvaWQgc2V0VXBD
YWxsRnJvbUZUTChDYWxsVHlwZSBjYWxsVHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLAorICAg
ICAgICBDb2RlTG9jYXRpb25OZWFyQ2FsbCBjYWxsUmV0dXJuTG9jYXRpb24sIENvZGVMb2NhdGlv
bkRhdGFMYWJlbFB0ciBob3RQYXRoQmVnaW4sCisgICAgICAgIENvZGVMb2NhdGlvbk5lYXJDYWxs
IGhvdFBhdGhPdGhlciwgdW5zaWduZWQgY2FsbGVlR1BSKQorICAgIHsKKyAgICAgICAgbV9pc0ZU
TCA9IHRydWU7CisgICAgICAgIG1fY2FsbFR5cGUgPSBjYWxsVHlwZTsKKyAgICAgICAgbV9jb2Rl
T3JpZ2luID0gY29kZU9yaWdpbjsKKyAgICAgICAgbV9jYWxsUmV0dXJuTG9jYXRpb24gPSBjYWxs
UmV0dXJuTG9jYXRpb247CisgICAgICAgIG1faG90UGF0aEJlZ2luID0gaG90UGF0aEJlZ2luOwor
ICAgICAgICBtX2hvdFBhdGhPdGhlciA9IGhvdFBhdGhPdGhlcjsKKyAgICAgICAgbV9jYWxsZWVH
UFIgPSBjYWxsZWVHUFI7CisgICAgfQorCisgICAgQ29kZUxvY2F0aW9uTmVhckNhbGwgY2FsbFJl
dHVybkxvY2F0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2NhbGxSZXR1cm5Mb2NhdGlv
bjsKKyAgICB9CisKKyAgICBDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHIgaG90UGF0aEJlZ2luKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBtX2hvdFBhdGhCZWdpbjsKKyAgICB9CisKKyAgICBDb2Rl
TG9jYXRpb25OZWFyQ2FsbCBob3RQYXRoT3RoZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
aG90UGF0aE90aGVyOworICAgIH0KKworICAgIHZvaWQgc2V0Q2FsbGVlKFZNJiB2bSwgQ29kZUxv
Y2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0aW9uLCBKU0NlbGwqIG93bmVyLCBKU0Z1bmN0aW9uKiBj
YWxsZWUpCisgICAgeworICAgICAgICBtX2NhbGxlZS5zZXQodm0sIGxvY2F0aW9uLCBvd25lciwg
Y2FsbGVlKTsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyQ2FsbGVlKCkKKyAgICB7CisgICAgICAg
IG1fY2FsbGVlLmNsZWFyKCk7CisgICAgfQorCisgICAgSlNGdW5jdGlvbiogY2FsbGVlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2NhbGxlZS5nZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNl
dExhc3RTZWVuQ2FsbGVlKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNGdW5jdGlvbiog
Y2FsbGVlKQorICAgIHsKKyAgICAgICAgbV9sYXN0U2VlbkNhbGxlZS5zZXQodm0sIG93bmVyLCBj
YWxsZWUpOworICAgIH0KKworICAgIHZvaWQgY2xlYXJMYXN0U2VlbkNhbGxlZSgpCisgICAgewor
ICAgICAgICBtX2xhc3RTZWVuQ2FsbGVlLmNsZWFyKCk7CisgICAgfQorCisgICAgSlNGdW5jdGlv
biogbGFzdFNlZW5DYWxsZWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbGFzdFNlZW5DYWxs
ZWUuZ2V0KCk7CisgICAgfQorCisgICAgYm9vbCBoYXZlTGFzdFNlZW5DYWxsZWUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuICEhbV9sYXN0U2VlbkNhbGxlZTsKKyAgICB9CisKKyAgICB2b2lkIHNl
dFN0dWIoUGFzc1JlZlB0cjxQb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZT4gbmV3U3R1YikKKyAg
ICB7CisgICAgICAgIG1fc3R1YiA9IG5ld1N0dWI7CisgICAgfQorCisgICAgdm9pZCBjbGVhclN0
dWIoKTsKKworICAgIFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKiBzdHViKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX3N0dWIuZ2V0KCk7CisgICAgfQorCiAgICAgYm9vbCBzZWVuT25jZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gaGFzU2VlblNob3VsZFJlcGF0Y2g7CisgICAgICAgIHJl
dHVybiBtX2hhc1NlZW5TaG91bGRSZXBhdGNoOworICAgIH0KKworICAgIHZvaWQgY2xlYXJTZWVu
KCkKKyAgICB7CisgICAgICAgIG1faGFzU2VlblNob3VsZFJlcGF0Y2ggPSBmYWxzZTsKICAgICB9
CiAKICAgICB2b2lkIHNldFNlZW4oKQogICAgIHsKLSAgICAgICAgaGFzU2VlblNob3VsZFJlcGF0
Y2ggPSB0cnVlOworICAgICAgICBtX2hhc1NlZW5TaG91bGRSZXBhdGNoID0gdHJ1ZTsKICAgICB9
Ci0gICAgCisKKyAgICBib29sIGhhc1NlZW5DbG9zdXJlKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2hhc1NlZW5DbG9zdXJlOworICAgIH0KKworICAgIHZvaWQgc2V0SGFzU2VlbkNsb3N1cmUo
KQorICAgIHsKKyAgICAgICAgbV9oYXNTZWVuQ2xvc3VyZSA9IHRydWU7CisgICAgfQorCisgICAg
Ym9vbCBjbGVhcmVkQnlHQygpCisgICAgeworICAgICAgICByZXR1cm4gbV9jbGVhcmVkQnlHQzsK
KyAgICB9CisKKyAgICB2b2lkIHNldENhbGxUeXBlKENhbGxUeXBlIGNhbGxUeXBlKQorICAgIHsK
KyAgICAgICAgbV9jYWxsVHlwZSA9IGNhbGxUeXBlOworICAgIH0KKworICAgIENhbGxUeXBlIGNh
bGxUeXBlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWxsVHlwZT4obV9j
YWxsVHlwZSk7CisgICAgfQorCisgICAgdWludDhfdCogYWRkcmVzc09mTWF4TnVtQXJndW1lbnRz
KCkKKyAgICB7CisgICAgICAgIHJldHVybiAmbV9tYXhOdW1Bcmd1bWVudHM7CisgICAgfQorCisg
ICAgdWludDhfdCBtYXhOdW1Bcmd1bWVudHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbWF4
TnVtQXJndW1lbnRzOworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTbG93
UGF0aENvdW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ2FsbExp
bmtJbmZvLCBtX3Nsb3dQYXRoQ291bnQpOworICAgIH0KKworICAgIHZvaWQgc2V0Q2FsbGVlR1BS
KHVuc2lnbmVkIGNhbGxlZUdQUikKKyAgICB7CisgICAgICAgIG1fY2FsbGVlR1BSID0gY2FsbGVl
R1BSOworICAgIH0KKworICAgIHVuc2lnbmVkIGNhbGxlZUdQUigpCisgICAgeworICAgICAgICBy
ZXR1cm4gbV9jYWxsZWVHUFI7CisgICAgfQorCisgICAgdWludDMyX3Qgc2xvd1BhdGhDb3VudCgp
CisgICAgeworICAgICAgICByZXR1cm4gbV9zbG93UGF0aENvdW50OworICAgIH0KKworICAgIHZv
aWQgc2V0Q29kZU9yaWdpbihDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCisgICAgeworICAgICAgICBt
X2NvZGVPcmlnaW4gPSBjb2RlT3JpZ2luOworICAgIH0KKworICAgIENvZGVPcmlnaW4gY29kZU9y
aWdpbigpCisgICAgeworICAgICAgICByZXR1cm4gbV9jb2RlT3JpZ2luOworICAgIH0KKwogICAg
IHZvaWQgdmlzaXRXZWFrKFJlcGF0Y2hCdWZmZXImKTsKLSAgICAKKwogICAgIHN0YXRpYyBDYWxs
TGlua0luZm8mIGR1bW15KCk7CisKK3ByaXZhdGU6CisgICAgQ29kZUxvY2F0aW9uTmVhckNhbGwg
bV9jYWxsUmV0dXJuTG9jYXRpb247CisgICAgQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyIG1faG90
UGF0aEJlZ2luOworICAgIENvZGVMb2NhdGlvbk5lYXJDYWxsIG1faG90UGF0aE90aGVyOworICAg
IEpJVFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2NhbGxlZTsKKyAgICBXcml0ZUJhcnJpZXI8
SlNGdW5jdGlvbj4gbV9sYXN0U2VlbkNhbGxlZTsKKyAgICBSZWZQdHI8UG9seW1vcnBoaWNDYWxs
U3R1YlJvdXRpbmU+IG1fc3R1YjsKKyAgICBib29sIG1faXNGVEwgOiAxOworICAgIGJvb2wgbV9o
YXNTZWVuU2hvdWxkUmVwYXRjaCA6IDE7CisgICAgYm9vbCBtX2hhc1NlZW5DbG9zdXJlIDogMTsK
KyAgICBib29sIG1fY2xlYXJlZEJ5R0MgOiAxOworICAgIHVuc2lnbmVkIG1fY2FsbFR5cGUgOiA0
OyAvLyBDYWxsVHlwZQorICAgIHVuc2lnbmVkIG1fY2FsbGVlR1BSIDogODsKKyAgICB1aW50OF90
IG1fbWF4TnVtQXJndW1lbnRzOyAvLyBPbmx5IHVzZWQgZm9yIHZhcmFyZ3MgY2FsbHMuCisgICAg
dWludDMyX3QgbV9zbG93UGF0aENvdW50OworICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luOwog
fTsKIAogaW5saW5lIENvZGVPcmlnaW4gZ2V0Q2FsbExpbmtJbmZvQ29kZU9yaWdpbihDYWxsTGlu
a0luZm8mIGNhbGxMaW5rSW5mbykKIHsKLSAgICByZXR1cm4gY2FsbExpbmtJbmZvLmNvZGVPcmln
aW47CisgICAgcmV0dXJuIGNhbGxMaW5rSW5mby5jb2RlT3JpZ2luKCk7CiB9CiAKIHR5cGVkZWYg
SGFzaE1hcDxDb2RlT3JpZ2luLCBDYWxsTGlua0luZm8qLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVI
YXNoPiBDYWxsTGlua0luZm9NYXA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ2FsbExpbmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDE4NTkyOCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyOCwxNCArMTI4LDE0IEBAIENhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpj
b21wdXRlRm8KICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CiAgICAgCiAgICAgQ2Fs
bExpbmtTdGF0dXMgcmVzdWx0ID0gY29tcHV0ZUZyb21DYWxsTGlua0luZm8obG9ja2VyLCBjYWxs
TGlua0luZm8pOwotICAgIHJlc3VsdC5tX21heE51bUFyZ3VtZW50cyA9IGNhbGxMaW5rSW5mby5t
YXhOdW1Bcmd1bWVudHM7CisgICAgcmVzdWx0Lm1fbWF4TnVtQXJndW1lbnRzID0gY2FsbExpbmtJ
bmZvLm1heE51bUFyZ3VtZW50cygpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIENhbGxMaW5r
U3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRnJvbUNhbGxMaW5rSW5mbygKICAgICBjb25z
dCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiB7Ci0g
ICAgaWYgKGNhbGxMaW5rSW5mby5jbGVhcmVkQnlHQykKKyAgICBpZiAoY2FsbExpbmtJbmZvLmNs
ZWFyZWRCeUdDKCkpCiAgICAgICAgIHJldHVybiB0YWtlc1Nsb3dQYXRoKCk7CiAgICAgCiAgICAg
Ly8gTm90ZSB0aGF0IGRlc3BpdGUgcmVxdWlyaW5nIHRoYXQgdGhlIGxvY2tlciBpcyBoZWxkLCB0
aGlzIGNvZGUgaXMgcmFjeSB3aXRoIHJlc3BlY3QKQEAgLTE1NSw3ICsxNTUsNyBAQCBDYWxsTGlu
a1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZyCiAgICAgLy8gdW50aWwgbmV4dCBHQyBl
dmVuIGlmIHRoZSBDYWxsTGlua0luZm8gaXMgY29uY3VycmVudGx5IGNsZWFyZWQuIEFsc28sIHRo
ZSB2YXJpYW50cyBsaXN0IGlzCiAgICAgLy8gbmV2ZXIgbXV0YXRlZCBhZnRlciB0aGUgUG9seW1v
cnBoaWNDYWxsU3R1YlJvdXRpbmUgaXMgaW5zdGFudGlhdGVkLiBXZSBoYXZlIHNvbWUgY29uc2Vy
dmF0aXZlCiAgICAgLy8gZmVuY2luZyBpbiBwbGFjZSB0byBtYWtlIHN1cmUgdGhhdCB3ZSBzZWUg
dGhlIHZhcmlhbnRzIGxpc3QgYWZ0ZXIgY29uc3RydWN0aW9uLgotICAgIGlmIChQb2x5bW9ycGhp
Y0NhbGxTdHViUm91dGluZSogc3R1YiA9IGNhbGxMaW5rSW5mby5zdHViLmdldCgpKSB7CisgICAg
aWYgKFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKiBzdHViID0gY2FsbExpbmtJbmZvLnN0dWIo
KSkgewogICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKICAgICAgICAgCiAgICAgICAgIENh
bGxFZGdlTGlzdCBlZGdlcyA9IHN0dWItPmVkZ2VzKCk7CkBAIC0xNzQsNyArMTc0LDcgQEAgQ2Fs
bExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcgogICAgICAgICBSRUxFQVNFX0FT
U0VSVChlZGdlcy5maXJzdCgpLmNvdW50KCkgPj0gZWRnZXMubGFzdCgpLmNvdW50KCkpOwogICAg
ICAgICAKICAgICAgICAgZG91YmxlIHRvdGFsQ2FsbHNUb0tub3duID0gMDsKLSAgICAgICAgZG91
YmxlIHRvdGFsQ2FsbHNUb1Vua25vd24gPSBjYWxsTGlua0luZm8uc2xvd1BhdGhDb3VudDsKKyAg
ICAgICAgZG91YmxlIHRvdGFsQ2FsbHNUb1Vua25vd24gPSBjYWxsTGlua0luZm8uc2xvd1BhdGhD
b3VudCgpOwogICAgICAgICBDYWxsVmFyaWFudExpc3QgdmFyaWFudHM7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgZWRnZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIENhbGxF
ZGdlIGVkZ2UgPSBlZGdlc1tpXTsKQEAgLTIxMiwxNCArMjEyLDE0IEBAIENhbGxMaW5rU3RhdHVz
IENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRnIKICAgICAKICAgICBDYWxsTGlua1N0YXR1cyByZXN1
bHQ7CiAgICAgCi0gICAgaWYgKEpTRnVuY3Rpb24qIHRhcmdldCA9IGNhbGxMaW5rSW5mby5sYXN0
U2VlbkNhbGxlZS5nZXQoKSkgeworICAgIGlmIChKU0Z1bmN0aW9uKiB0YXJnZXQgPSBjYWxsTGlu
a0luZm8ubGFzdFNlZW5DYWxsZWUoKSkgewogICAgICAgICBDYWxsVmFyaWFudCB2YXJpYW50KHRh
cmdldCk7Ci0gICAgICAgIGlmIChjYWxsTGlua0luZm8uaGFzU2VlbkNsb3N1cmUpCisgICAgICAg
IGlmIChjYWxsTGlua0luZm8uaGFzU2VlbkNsb3N1cmUoKSkKICAgICAgICAgICAgIHZhcmlhbnQg
PSB2YXJpYW50LmRlc3BlY2lmaWVkQ2xvc3VyZSgpOwogICAgICAgICByZXN1bHQubV92YXJpYW50
cy5hcHBlbmQodmFyaWFudCk7CiAgICAgfQogICAgIAotICAgIHJlc3VsdC5tX2NvdWxkVGFrZVNs
b3dQYXRoID0gISFjYWxsTGlua0luZm8uc2xvd1BhdGhDb3VudDsKKyAgICByZXN1bHQubV9jb3Vs
ZFRha2VTbG93UGF0aCA9ICEhY2FsbExpbmtJbmZvLnNsb3dQYXRoQ291bnQoKTsKIAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CkBAIC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBDYWxsTGlua1N0YXR1czo6
Y29tcHV0ZURGR1N0YXR1c2VzKAogICAgIENvZGVCbG9jayogYmFzZWxpbmVDb2RlQmxvY2sgPSBk
ZmdDb2RlQmxvY2stPmFsdGVybmF0aXZlKCk7CiAgICAgZm9yIChhdXRvIGl0ZXIgPSBkZmdDb2Rl
QmxvY2stPmNhbGxMaW5rSW5mb3NCZWdpbigpOyAhIWl0ZXI7ICsraXRlcikgewogICAgICAgICBD
YWxsTGlua0luZm8mIGluZm8gPSAqKml0ZXI7Ci0gICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdp
biA9IGluZm8uY29kZU9yaWdpbjsKKyAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gaW5m
by5jb2RlT3JpZ2luKCk7CiAgICAgICAgIAogICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYWQgYWxy
ZWFkeSBwcmV2aW91c2x5IG1hZGUgYSB0ZXJyaWJsZSBtaXN0YWtlIGluIHRoZSBGVEwgZm9yIHRo
aXMKICAgICAgICAgLy8gY29kZSBvcmlnaW4uIE5vdGUgdGhhdCB0aGlzIGlzIGFwcHJveGltYXRl
IGJlY2F1c2Ugd2UgY291bGQgaGF2ZSBhIG1vbm92YXJpYW50CkBAIC0yNjYsNyArMjY2LDcgQEAg
dm9pZCBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZURGR1N0YXR1c2VzKAogICAgICAgICAKICAgICAg
ICAgewogICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZGZnQ29kZUJsb2Nr
LT5tX2xvY2spOwotICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4sIGNvbXB1dGVG
b3IobG9ja2VyLCBkZmdDb2RlQmxvY2ssIGluZm8sIGV4aXRTaXRlRGF0YSkpOworICAgICAgICAg
ICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4oKSwgY29tcHV0ZUZvcihsb2NrZXIsIGRmZ0NvZGVC
bG9jaywgaW5mbywgZXhpdFNpdGVEYXRhKSk7CiAgICAgICAgIH0KICAgICB9CiAjZWxzZQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgJ
KHJldmlzaW9uIDE4NTkyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua1N0YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEV4ZWN1
dGFibGVCYXNlOwogY2xhc3MgSW50ZXJuYWxGdW5jdGlvbjsKIGNsYXNzIEpTRnVuY3Rpb247CiBj
bGFzcyBTdHJ1Y3R1cmU7Ci1zdHJ1Y3QgQ2FsbExpbmtJbmZvOworY2xhc3MgQ2FsbExpbmtJbmZv
OwogCiBjbGFzcyBDYWxsTGlua1N0YXR1cyB7CiBwdWJsaWM6CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTg1OTI4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUyOCw3ICs1MjgsNyBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRDYWxsT3AoUHJpbnRT
dHJlYW0mCiAgICAgICAgIH0KICNpZiBFTkFCTEUoSklUKQogICAgICAgICBpZiAoQ2FsbExpbmtJ
bmZvKiBpbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGxvY2F0aW9uKSkpIHsKLSAgICAgICAgICAg
IEpTRnVuY3Rpb24qIHRhcmdldCA9IGluZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgpOworICAgICAg
ICAgICAgSlNGdW5jdGlvbiogdGFyZ2V0ID0gaW5mby0+bGFzdFNlZW5DYWxsZWUoKTsKICAgICAg
ICAgICAgIGlmICh0YXJnZXQpCiAgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiIGppdCglcCwg
ZXhlYyAlcCkiLCB0YXJnZXQsIHRhcmdldC0+ZXhlY3V0YWJsZSgpKTsKICAgICAgICAgfQpAQCAt
Mjc3Niw3ICsyNzc2LDcgQEAgdm9pZCBDb2RlQmxvY2s6OnJlc2V0U3R1YkR1cmluZ0dDSW50ZXJu
YQogQ2FsbExpbmtJbmZvKiBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb0ZvckJ5dGVjb2RlSW5k
ZXgodW5zaWduZWQgaW5kZXgpCiB7CiAgICAgZm9yIChhdXRvIGl0ZXIgPSBtX2NhbGxMaW5rSW5m
b3MuYmVnaW4oKTsgISFpdGVyOyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKCgqaXRlciktPmNvZGVP
cmlnaW4gPT0gQ29kZU9yaWdpbihpbmRleCkpCisgICAgICAgIGlmICgoKml0ZXIpLT5jb2RlT3Jp
Z2luKCkgPT0gQ29kZU9yaWdpbihpbmRleCkpCiAgICAgICAgICAgICByZXR1cm4gKml0ZXI7CiAg
ICAgfQogICAgIHJldHVybiBudWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlzaW9uIDE4NTkyOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDgs
OSArMjQ4LDkgQEAgdm9pZCBKSVRDb21waWxlcjo6bGluayhMaW5rQnVmZmVyJiBsaW5rQgogICAg
ICAgICAgICAgaW5mby5zcGVjaWFsaXphdGlvbktpbmQoKSwKICAgICAgICAgICAgIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogICAgICAgICBsaW5rQnVmZmVyLmxpbmsocmVjb3Jk
Lm1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKG1fdm0tPmdldENUSVN0dWIoZ2VuZXJhdG9yKS5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwotICAgICAgICBpbmZvLmNhbGxSZXR1cm5Mb2NhdGlv
biA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKHJlY29yZC5tX3Nsb3dDYWxsKTsKLSAg
ICAgICAgaW5mby5ob3RQYXRoQmVnaW4gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2YocmVjb3JkLm1f
dGFyZ2V0VG9DaGVjayk7Ci0gICAgICAgIGluZm8uaG90UGF0aE90aGVyID0gbGlua0J1ZmZlci5s
b2NhdGlvbk9mTmVhckNhbGwocmVjb3JkLm1fZmFzdENhbGwpOworICAgICAgICBpbmZvLnNldENh
bGxMb2NhdGlvbnMobGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwocmVjb3JkLm1fc2xvd0Nh
bGwpLAorICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mKHJlY29yZC5tX3RhcmdldFRv
Q2hlY2spLAorICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwocmVjb3Jk
Lm1fZmFzdENhbGwpKTsKICAgICB9CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9z
ckV4aXRUaHVuayA9IHZtKCktPmdldENUSVN0dWIob3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVy
YXRvcik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxl
ckNvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCShyZXZpc2lvbiAxODU5MjgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxI
ZWxwZXJzCiAgICAgICAgICAgICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JDYWxsZXItPmdldENh
bGxMaW5rSW5mb0ZvckJ5dGVjb2RlSW5kZXgoY2FsbEJ5dGVjb2RlSW5kZXgpOwogICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoY2FsbExpbmtJbmZvKTsKICAgICAgICAgICAgIAotICAgICAgICAg
ICAganVtcFRhcmdldCA9IGNhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uLmV4ZWN1dGFi
bGVBZGRyZXNzKCk7CisgICAgICAgICAgICBqdW1wVGFyZ2V0ID0gY2FsbExpbmtJbmZvLT5jYWxs
UmV0dXJuTG9jYXRpb24oKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxODU5Mjgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MjksOSArODI5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
ZW1pdENhbGwoTm9kZSogbm9kZQogCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJl
c3VsdFBheWxvYWRHUFIsIG5vZGUsIERhdGFGb3JtYXRKUywgVXNlQ2hpbGRyZW5DYWxsZWRFeHBs
aWNpdGx5KTsKIAotICAgIGluZm8tPmNhbGxUeXBlID0gY2FsbFR5cGU7Ci0gICAgaW5mby0+Y29k
ZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKLSAgICBpbmZvLT5jYWxsZWVHUFIgPSBj
YWxsZWVQYXlsb2FkR1BSOworICAgIGluZm8tPnNldFVwQ2FsbChjYWxsVHlwZSwgbm9kZS0+b3Jp
Z2luLnNlbWFudGljLCBjYWxsZWVQYXlsb2FkR1BSKTsKICAgICBtX2ppdC5hZGRKU0NhbGwoZmFz
dENhbGwsIHNsb3dDYWxsLCB0YXJnZXRUb0NoZWNrLCBpbmZvKTsKICAgICAKICAgICAvLyBJZiB3
ZSB3ZXJlIHZhcmFyZ3MsIHRoZW4gYWZ0ZXIgdGhlIGNhbGxzIGFyZSBkb25lLCB3ZSBuZWVkIHRv
IHJlZXN0YWJsaXNoIG91ciBzdGFjayBwb2ludGVyLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxODU5Mjgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03OTIsMTAgKzc5Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVt
aXRDYWxsKE5vZGUqIG5vZGUKICAgICAKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9j
dXJyZW50Tm9kZSwgRGF0YUZvcm1hdEpTLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwog
ICAgIAotICAgIGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPSBjYWxsVHlwZTsKLSAgICBjYWxsTGlu
a0luZm8tPmNvZGVPcmlnaW4gPSBtX2N1cnJlbnROb2RlLT5vcmlnaW4uc2VtYW50aWM7Ci0gICAg
Y2FsbExpbmtJbmZvLT5jYWxsZWVHUFIgPSBjYWxsZWVHUFI7Ci0gICAgCisgICAgY2FsbExpbmtJ
bmZvLT5zZXRVcENhbGwoY2FsbFR5cGUsIG1fY3VycmVudE5vZGUtPm9yaWdpbi5zZW1hbnRpYywg
IGNhbGxlZUdQUik7ICAgIAogICAgIG1faml0LmFkZEpTQ2FsbChmYXN0Q2FsbCwgc2xvd0NhbGws
IHRhcmdldFRvQ2hlY2ssIGNhbGxMaW5rSW5mbyk7CiAgICAgCiAgICAgLy8gSWYgd2Ugd2VyZSB2
YXJhcmdzLCB0aGVuIGFmdGVyIHRoZSBjYWxscyBhcmUgZG9uZSwgd2UgbmVlZCB0byByZWVzdGFi
bGlzaCBvdXIgc3RhY2sgcG9pbnRlci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSlNDYWxsQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExKU0NhbGxCYXNlLmNwcAkocmV2aXNpb24gMTg1OTI4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExKU0NhbGxCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTQgKzc0
LDEwIEBAIHZvaWQgSlNDYWxsQmFzZTo6bGluayhWTSYgdm0sIExpbmtCdWZmZXIKICAgICAKICAg
ICBsaW5rQnVmZmVyLmxpbmsoCiAgICAgICAgIG1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKHZtLmdl
dENUSVN0dWIoZ2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwotICAgIAot
ICAgIG1fY2FsbExpbmtJbmZvLT5pc0ZUTCA9IHRydWU7Ci0gICAgbV9jYWxsTGlua0luZm8tPmNh
bGxUeXBlID0gbV90eXBlOwotICAgIG1fY2FsbExpbmtJbmZvLT5jb2RlT3JpZ2luID0gbV9vcmln
aW47Ci0gICAgbV9jYWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZmZXIu
bG9jYXRpb25PZk5lYXJDYWxsKG1fc2xvd0NhbGwpOwotICAgIG1fY2FsbExpbmtJbmZvLT5ob3RQ
YXRoQmVnaW4gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2YobV90YXJnZXRUb0NoZWNrKTsKLSAgICBt
X2NhbGxMaW5rSW5mby0+aG90UGF0aE90aGVyID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNh
bGwobV9mYXN0Q2FsbCk7Ci0gICAgbV9jYWxsTGlua0luZm8tPmNhbGxlZUdQUiA9IEdQUkluZm86
OnJlZ1QwOworCisgICAgbV9jYWxsTGlua0luZm8tPnNldFVwQ2FsbEZyb21GVEwobV90eXBlLCBt
X29yaWdpbiwgbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9zbG93Q2FsbCksCisgICAg
ICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZihtX3RhcmdldFRvQ2hlY2spLCBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2ZOZWFyQ2FsbChtX2Zhc3RDYWxsKSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDApOwog
fQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0FjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0aW5lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9BY2Nlc3NvckNhbGxKSVRTdHViUm91dGluZS5oCShyZXZpc2lv
biAxODU5MjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FjY2Vzc29yQ2FsbEpJVFN0
dWJSb3V0aW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLXN0cnVjdCBDYWxsTGlua0luZm87CitjbGFzcyBDYWxsTGlua0luZm87CiAKIC8v
IEpJVCBzdHViIHJvdXRpbmUgZm9yIHVzZSBieSBKYXZhU2NyaXB0IGFjY2Vzc29ycy4gVGhlc2Ug
d2lsbCBiZSBtYWtpbmcgYSBKUwogLy8gY2FsbCB0aGF0IHJlcXVpcmVzIGlubGluZSBjYWNoaW5n
LiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHJldmlzaW9uIDE4NTkyOCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjc4
LDkgKzY3OCw5IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jYWxsQ29tcGlsYXRpb25JbmZvLnNpemUoKTsg
KytpKSB7CiAgICAgICAgIENhbGxDb21waWxhdGlvbkluZm8mIGNvbXBpbGF0aW9uSW5mbyA9IG1f
Y2FsbENvbXBpbGF0aW9uSW5mb1tpXTsKICAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gKmNv
bXBpbGF0aW9uSW5mby5jYWxsTGlua0luZm87Ci0gICAgICAgIGluZm8uY2FsbFJldHVybkxvY2F0
aW9uID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKGNvbXBpbGF0aW9uSW5mby5jYWxs
UmV0dXJuTG9jYXRpb24pOwotICAgICAgICBpbmZvLmhvdFBhdGhCZWdpbiA9IHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2YoY29tcGlsYXRpb25JbmZvLmhvdFBhdGhCZWdpbik7Ci0gICAgICAgIGluZm8u
aG90UGF0aE90aGVyID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKGNvbXBpbGF0aW9u
SW5mby5ob3RQYXRoT3RoZXIpOworICAgICAgICBpbmZvLnNldENhbGxMb2NhdGlvbnMocGF0Y2hC
dWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKGNvbXBpbGF0aW9uSW5mby5jYWxsUmV0dXJuTG9jYXRp
b24pLAorICAgICAgICAgICAgcGF0Y2hCdWZmZXIubG9jYXRpb25PZihjb21waWxhdGlvbkluZm8u
aG90UGF0aEJlZ2luKSwKKyAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2Fs
bChjb21waWxhdGlvbkluZm8uaG90UGF0aE90aGVyKSk7CiAgICAgfQogCiAgICAgQ29tcGFjdEpJ
VENvZGVNYXA6OkVuY29kZXIgaml0Q29kZU1hcEVuY29kZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgJKHJldmlzaW9uIDE4NTkyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgY2xhc3MgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTsKKyAgICBjbGFzcyBDYWxsTGlua0lu
Zm87CiAgICAgY2xhc3MgQ29kZUJsb2NrOwogICAgIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsK
ICAgICBjbGFzcyBKSVQ7CkBAIC02Myw3ICs2NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNs
YXNzIFJlZ2lzdGVyOwogICAgIGNsYXNzIFN0cnVjdHVyZUNoYWluOwogCi0gICAgc3RydWN0IENh
bGxMaW5rSW5mbzsKICAgICBzdHJ1Y3QgSW5zdHJ1Y3Rpb247CiAgICAgc3RydWN0IE9wZXJhbmRU
eXBlczsKICAgICBzdHJ1Y3QgUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0OwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkocmV2aXNpb24gMTg1
OTI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCB2b2lkIEpJVDo6Y29tcGlsZVNldHVwVmFy
YXJnc0ZyYW1lKEluc3RyCiAKICAgICAvLyBQcm9maWxlIHRoZSBhcmd1bWVudCBjb3VudC4KICAg
ICBsb2FkMzIoQWRkcmVzcyhyZWdUMSwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDIpOwotICAg
IGxvYWQ4KCZpbmZvLT5tYXhOdW1Bcmd1bWVudHMsIHJlZ1QwKTsKKyAgICBsb2FkOChpbmZvLT5h
ZGRyZXNzT2ZNYXhOdW1Bcmd1bWVudHMoKSwgcmVnVDApOwogICAgIEp1bXAgbm90QmlnZ2VzdCA9
IGJyYW5jaDMyKEFib3ZlLCByZWdUMCwgcmVnVDIpOwogICAgIEp1bXAgbm90U2F0dXJhdGVkID0g
YnJhbmNoMzIoQmVsb3dPckVxdWFsLCByZWdUMiwgVHJ1c3RlZEltbTMyKDI1NSkpOwogICAgIG1v
dmUoVHJ1c3RlZEltbTMyKDI1NSksIHJlZ1QyKTsKICAgICBub3RTYXR1cmF0ZWQubGluayh0aGlz
KTsKLSAgICBzdG9yZTgocmVnVDIsICZpbmZvLT5tYXhOdW1Bcmd1bWVudHMpOworICAgIHN0b3Jl
OChyZWdUMiwgaW5mby0+YWRkcmVzc09mTWF4TnVtQXJndW1lbnRzKCkpOwogICAgIG5vdEJpZ2dl
c3QubGluayh0aGlzKTsKICAgICAKICAgICAvLyBJbml0aWFsaXplICd0aGlzJy4KQEAgLTI0Myw5
ICsyNDMsNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJCiAgICAg
YWRkU2xvd0Nhc2Uoc2xvd0Nhc2UpOwogCiAgICAgQVNTRVJUKG1fY2FsbENvbXBpbGF0aW9uSW5m
by5zaXplKCkgPT0gY2FsbExpbmtJbmZvSW5kZXgpOwotICAgIGluZm8tPmNhbGxUeXBlID0gQ2Fs
bExpbmtJbmZvOjpjYWxsVHlwZUZvcihvcGNvZGVJRCk7Ci0gICAgaW5mby0+Y29kZU9yaWdpbiA9
IENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCk7Ci0gICAgaW5mby0+Y2FsbGVlR1BSID0gcmVn
VDA7CisgICAgaW5mby0+c2V0VXBDYWxsKENhbGxMaW5rSW5mbzo6Y2FsbFR5cGVGb3Iob3Bjb2Rl
SUQpLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCByZWdUMCk7CiAgICAgbV9jYWxsQ29t
cGlsYXRpb25JbmZvLmFwcGVuZChDYWxsQ29tcGlsYXRpb25JbmZvKCkpOwogICAgIG1fY2FsbENv
bXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uaG90UGF0aEJlZ2luID0gYWRkcmVzc09m
TGlua2VkRnVuY3Rpb25DaGVjazsKICAgICBtX2NhbGxDb21waWxhdGlvbkluZm9bY2FsbExpbmtJ
bmZvSW5kZXhdLmNhbGxMaW5rSW5mbyA9IGluZm87CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDE4NTkyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDEyICs3MiwxMiBAQCB2b2lk
IEpJVDo6Y29tcGlsZVNldHVwVmFyYXJnc0ZyYW1lKEluc3RyCiAKICAgICAvLyBQcm9maWxlIHRo
ZSBhcmd1bWVudCBjb3VudC4KICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMSwgSlNTdGFjazo6QXJn
dW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2Fk
T2Zmc2V0KSwgcmVnVDIpOwotICAgIGxvYWQ4KCZpbmZvLT5tYXhOdW1Bcmd1bWVudHMsIHJlZ1Qw
KTsKKyAgICBsb2FkOChpbmZvLT5hZGRyZXNzT2ZNYXhOdW1Bcmd1bWVudHMoKSwgcmVnVDApOwog
ICAgIEp1bXAgbm90QmlnZ2VzdCA9IGJyYW5jaDMyKEFib3ZlLCByZWdUMCwgcmVnVDIpOwogICAg
IEp1bXAgbm90U2F0dXJhdGVkID0gYnJhbmNoMzIoQmVsb3dPckVxdWFsLCByZWdUMiwgVHJ1c3Rl
ZEltbTMyKDI1NSkpOwogICAgIG1vdmUoVHJ1c3RlZEltbTMyKDI1NSksIHJlZ1QyKTsKICAgICBu
b3RTYXR1cmF0ZWQubGluayh0aGlzKTsKLSAgICBzdG9yZTgocmVnVDIsICZpbmZvLT5tYXhOdW1B
cmd1bWVudHMpOworICAgIHN0b3JlOChyZWdUMiwgaW5mby0+YWRkcmVzc09mTWF4TnVtQXJndW1l
bnRzKCkpOwogICAgIG5vdEJpZ2dlc3QubGluayh0aGlzKTsKICAgICAKICAgICAvLyBJbml0aWFs
aXplICd0aGlzJy4KQEAgLTE3OCw5ICsxNzgsNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChP
cGNvZGVJRCBvcGNvZGVJCiAgICAgYWRkU2xvd0Nhc2Uoc2xvd0Nhc2UpOwogCiAgICAgQVNTRVJU
KG1fY2FsbENvbXBpbGF0aW9uSW5mby5zaXplKCkgPT0gY2FsbExpbmtJbmZvSW5kZXgpOwotICAg
IGluZm8tPmNhbGxUeXBlID0gQ2FsbExpbmtJbmZvOjpjYWxsVHlwZUZvcihvcGNvZGVJRCk7Ci0g
ICAgaW5mby0+Y29kZU9yaWdpbiA9IENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCk7Ci0gICAg
aW5mby0+Y2FsbGVlR1BSID0gcmVnVDA7CisgICAgaW5mby0+c2V0VXBDYWxsKENhbGxMaW5rSW5m
bzo6Y2FsbFR5cGVGb3Iob3Bjb2RlSUQpLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBy
ZWdUMCk7CiAgICAgbV9jYWxsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChDYWxsQ29tcGlsYXRpb25J
bmZvKCkpOwogICAgIG1fY2FsbENvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uaG90
UGF0aEJlZ2luID0gYWRkcmVzc09mTGlua2VkRnVuY3Rpb25DaGVjazsKICAgICBtX2NhbGxDb21w
aWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxMaW5rSW5mbyA9IGluZm87CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9u
IDE4NTkyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc5NSw3ICs3OTUsNyBAQCBpbmxpbmUgY2hhciogbGlua0ZvcigK
ICAgICAgICAgfQogICAgICAgICBjb2RlQmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVC
bG9ja0ZvcihraW5kKTsKICAgICAgICAgQXJpdHlDaGVja01vZGUgYXJpdHk7Ci0gICAgICAgIGlm
IChleGVjQ2FsbGVlLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8
c2l6ZV90Pihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkgfHwgY2FsbExpbmtJbmZvLT5jYWxs
VHlwZSA9PSBDYWxsTGlua0luZm86OkNhbGxWYXJhcmdzIHx8IGNhbGxMaW5rSW5mby0+Y2FsbFR5
cGUgPT0gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3RWYXJhcmdzKQorICAgICAgICBpZiAoZXhlY0Nh
bGxlZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSA8IHN0YXRpY19jYXN0PHNpemVfdD4o
Y29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpIHx8IGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUoKSA9
PSBDYWxsTGlua0luZm86OkNhbGxWYXJhcmdzIHx8IGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUoKSA9
PSBDYWxsTGlua0luZm86OkNvbnN0cnVjdFZhcmFyZ3MpCiAgICAgICAgICAgICBhcml0eSA9IE11
c3RDaGVja0FyaXR5OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhcml0eSA9IEFyaXR5Q2hl
Y2tOb3RSZXF1aXJlZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBo
aWNDYWxsU3R1YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxODU5MjgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCB2b2lkIFBvbHltb3JwaGljQ2FsbE5v
ZGU6OnVubGluayhSZXBhdGNoCiB7CiAgICAgaWYgKG1fY2FsbExpbmtJbmZvKSB7CiAgICAgICAg
IGlmIChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSkKLSAgICAgICAgICAgIGRhdGFMb2coIlVu
bGlua2luZyBwb2x5bW9ycGhpYyBjYWxsIGF0ICIsIG1fY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJu
TG9jYXRpb24sICIsICIsIG1fY2FsbExpbmtJbmZvLT5jb2RlT3JpZ2luLCAiXG4iKTsKKyAgICAg
ICAgICAgIGRhdGFMb2coIlVubGlua2luZyBwb2x5bW9ycGhpYyBjYWxsIGF0ICIsIG1fY2FsbExp
bmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24oKSwgIiwgIiwgbV9jYWxsTGlua0luZm8tPmNvZGVP
cmlnaW4oKSwgIlxuIik7CiAKICAgICAgICAgbV9jYWxsTGlua0luZm8tPnVubGluayhyZXBhdGNo
QnVmZmVyKTsKICAgICB9CkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgUG9seW1vcnBoaWNDYWxsTm9k
ZTo6dW5saW5rKFJlcGF0Y2gKIHZvaWQgUG9seW1vcnBoaWNDYWxsTm9kZTo6Y2xlYXJDYWxsTGlu
a0luZm8oKQogewogICAgIGlmIChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSkKLSAgICAgICAg
ZGF0YUxvZygiQ2xlYXJpbmcgY2FsbCBsaW5rIGluZm8gZm9yIHBvbHltb3JwaGljIGNhbGwgYXQg
IiwgbV9jYWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgIiwgIiwgbV9jYWxsTGlua0lu
Zm8tPmNvZGVPcmlnaW4sICJcbiIpOworICAgICAgICBkYXRhTG9nKCJDbGVhcmluZyBjYWxsIGxp
bmsgaW5mbyBmb3IgcG9seW1vcnBoaWMgY2FsbCBhdCAiLCBtX2NhbGxMaW5rSW5mby0+Y2FsbFJl
dHVybkxvY2F0aW9uKCksICIsICIsIG1fY2FsbExpbmtJbmZvLT5jb2RlT3JpZ2luKCksICJcbiIp
OwogCiAgICAgbV9jYWxsTGlua0luZm8gPSBudWxscHRyOwogfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaAko
cmV2aXNpb24gMTg1OTI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9ycGhp
Y0NhbGxTdHViUm91dGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1zdHJ1Y3QgQ2FsbExpbmtJbmZvOworY2xhc3MgQ2FsbExpbmtJbmZv
OwogCiBjbGFzcyBQb2x5bW9ycGhpY0NhbGxOb2RlIDogcHVibGljIEJhc2ljUmF3U2VudGluZWxO
b2RlPFBvbHltb3JwaGljQ2FsbE5vZGU+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQb2x5
bW9ycGhpY0NhbGxOb2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRj
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNw
cAkocmV2aXNpb24gMTg1OTI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ4LDkgKzQ0OCw3IEBAIHN0YXRpYyBib29sIGdlbmVy
YXRlQnlJZFN0dWIoCiAgICAgICAgICAgICAvLyBzaHJpbmsgaXQgYWZ0ZXIuCiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGNhbGxMaW5rSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FsbExpbmtJ
bmZvPigpOwotICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9IENhbGxMaW5rSW5m
bzo6Q2FsbDsKLSAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+Y29kZU9yaWdpbiA9IHN0dWJJbmZv
LmNvZGVPcmlnaW47Ci0gICAgICAgICAgICBjYWxsTGlua0luZm8tPmNhbGxlZUdQUiA9IGxvYWRl
ZFZhbHVlR1BSOworICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRVcENhbGwoQ2FsbExpbmtJ
bmZvOjpDYWxsLCBzdHViSW5mby5jb2RlT3JpZ2luLCBsb2FkZWRWYWx1ZUdQUik7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBkb25lOwogICAgICAg
ICAgICAgCkBAIC01ODQsOSArNTgyLDkgQEAgc3RhdGljIGJvb2wgZ2VuZXJhdGVCeUlkU3R1YigK
ICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhvcGVyYXRpb25DYWxsLCBjdXN0b20pOwogICAgICAg
ICBwYXRjaEJ1ZmZlci5saW5rKGhhbmRsZXJDYWxsLCBsb29rdXBFeGNlcHRpb25IYW5kbGVyKTsK
ICAgICB9IGVsc2UgaWYgKGtpbmQgPT0gQ2FsbEdldHRlciB8fCBraW5kID09IENhbGxTZXR0ZXIp
IHsKLSAgICAgICAgY2FsbExpbmtJbmZvLT5ob3RQYXRoT3RoZXIgPSBwYXRjaEJ1ZmZlci5sb2Nh
dGlvbk9mTmVhckNhbGwoZmFzdFBhdGhDYWxsKTsKLSAgICAgICAgY2FsbExpbmtJbmZvLT5ob3RQ
YXRoQmVnaW4gPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGFkZHJlc3NPZkxpbmtGdW5jdGlvbkNo
ZWNrKTsKLSAgICAgICAgY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24gPSBwYXRjaEJ1
ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwoc2xvd1BhdGhDYWxsKTsKKyAgICAgICAgY2FsbExpbmtJ
bmZvLT5zZXRDYWxsTG9jYXRpb25zKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbChzbG93
UGF0aENhbGwpLAorICAgICAgICAgICAgcGF0Y2hCdWZmZXIubG9jYXRpb25PZihhZGRyZXNzT2ZM
aW5rRnVuY3Rpb25DaGVjayksCisgICAgICAgICAgICBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mTmVh
ckNhbGwoZmFzdFBhdGhDYWxsKSk7CiAKICAgICAgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9y
ID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAogICAgICAgICAgICAgQ29kZUZvckNhbGwsIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwpAQCAtMTYwNiw3ICsxNjA0LDcgQEAgc3RhdGlj
IHZvaWQgbGlua1Nsb3dGb3IoCiAgICAgUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlciwgVk0q
IHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9y
KQogewogICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKAotICAgICAgICBjYWxsTGlua0luZm8uY2Fs
bFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUoKSk7CisgICAg
ICAgIGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24oKSwgdm0tPmdldENUSVN0dWIoZ2Vu
ZXJhdG9yKS5jb2RlKCkpOwogfQogCiBzdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcigKQEAgLTE2MjEs
NyArMTYxOSw3IEBAIHZvaWQgbGlua0ZvcigKICAgICBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsCiAg
ICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKLSAgICBBU1NFUlQoIWNh
bGxMaW5rSW5mby5zdHViKTsKKyAgICBBU1NFUlQoIWNhbGxMaW5rSW5mby5zdHViKCkpOwogICAg
IAogICAgIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrID0gZXhlYy0+Y2FsbGVyRnJhbWUoKS0+
Y29kZUJsb2NrKCk7CiAKQEAgLTE2MzAsMTEgKzE2MjgsMTEgQEAgdm9pZCBsaW5rRm9yKAogICAg
IFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjYWxsZXJDb2RlQmxvY2spOwogICAgIAogICAg
IEFTU0VSVCghY2FsbExpbmtJbmZvLmlzTGlua2VkKCkpOwotICAgIGNhbGxMaW5rSW5mby5jYWxs
ZWUuc2V0KGV4ZWMtPmNhbGxlckZyYW1lKCktPnZtKCksIGNhbGxMaW5rSW5mby5ob3RQYXRoQmVn
aW4sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7Ci0gICAgY2Fs
bExpbmtJbmZvLmxhc3RTZWVuQ2FsbGVlLnNldChleGVjLT5jYWxsZXJGcmFtZSgpLT52bSgpLCBj
YWxsZXJDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOworICAgIGNhbGxMaW5r
SW5mby5zZXRDYWxsZWUoZXhlYy0+Y2FsbGVyRnJhbWUoKS0+dm0oKSwgY2FsbExpbmtJbmZvLmhv
dFBhdGhCZWdpbigpLCBjYWxsZXJDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUp
OworICAgIGNhbGxMaW5rSW5mby5zZXRMYXN0U2VlbkNhbGxlZShleGVjLT5jYWxsZXJGcmFtZSgp
LT52bSgpLCBjYWxsZXJDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOwogICAg
IGlmIChzaG91bGRTaG93RGlzYXNzZW1ibHlGb3IoY2FsbGVyQ29kZUJsb2NrKSkKLSAgICAgICAg
ZGF0YUxvZygiTGlua2luZyBjYWxsIGluICIsICpjYWxsZXJDb2RlQmxvY2ssICIgYXQgIiwgY2Fs
bExpbmtJbmZvLmNvZGVPcmlnaW4sICIgdG8gIiwgcG9pbnRlckR1bXAoY2FsbGVlQ29kZUJsb2Nr
KSwgIiwgZW50cnlwb2ludCBhdCAiLCBjb2RlUHRyLCAiXG4iKTsKLSAgICByZXBhdGNoQnVmZmVy
LnJlbGluayhjYWxsTGlua0luZm8uaG90UGF0aE90aGVyLCBjb2RlUHRyKTsKKyAgICAgICAgZGF0
YUxvZygiTGlua2luZyBjYWxsIGluICIsICpjYWxsZXJDb2RlQmxvY2ssICIgYXQgIiwgY2FsbExp
bmtJbmZvLmNvZGVPcmlnaW4oKSwgIiB0byAiLCBwb2ludGVyRHVtcChjYWxsZWVDb2RlQmxvY2sp
LCAiLCBlbnRyeXBvaW50IGF0ICIsIGNvZGVQdHIsICJcbiIpOworICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rKGNhbGxMaW5rSW5mby5ob3RQYXRoT3RoZXIoKSwgY29kZVB0cik7CiAgICAgCiAgICAg
aWYgKGNhbGxlZUNvZGVCbG9jaykKICAgICAgICAgY2FsbGVlQ29kZUJsb2NrLT5saW5rSW5jb21p
bmdDYWxsKGV4ZWMtPmNhbGxlckZyYW1lKCksICZjYWxsTGlua0luZm8pOwpAQCAtMTY2NSwxMiAr
MTY2MywxMiBAQCBzdGF0aWMgdm9pZCByZXZlcnRDYWxsKAogICAgIFJlcGF0Y2hCdWZmZXImIHJl
cGF0Y2hCdWZmZXIsIFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIFRodW5rR2Vu
ZXJhdG9yIGdlbmVyYXRvcikKIHsKICAgICByZXBhdGNoQnVmZmVyLnJldmVydEp1bXBSZXBsYWNl
bWVudFRvQnJhbmNoUHRyV2l0aFBhdGNoKAotICAgICAgICBSZXBhdGNoQnVmZmVyOjpzdGFydE9m
QnJhbmNoUHRyV2l0aFBhdGNoT25SZWdpc3RlcihjYWxsTGlua0luZm8uaG90UGF0aEJlZ2luKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQ+KGNhbGxMaW5r
SW5mby5jYWxsZWVHUFIpLCAwKTsKKyAgICAgICAgUmVwYXRjaEJ1ZmZlcjo6c3RhcnRPZkJyYW5j
aFB0cldpdGhQYXRjaE9uUmVnaXN0ZXIoY2FsbExpbmtJbmZvLmhvdFBhdGhCZWdpbigpKSwKKyAg
ICAgICAgc3RhdGljX2Nhc3Q8TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQ+KGNhbGxMaW5rSW5m
by5jYWxsZWVHUFIoKSksIDApOwogICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBj
YWxsTGlua0luZm8sIGdlbmVyYXRvcik7Ci0gICAgY2FsbExpbmtJbmZvLmhhc1NlZW5TaG91bGRS
ZXBhdGNoID0gZmFsc2U7Ci0gICAgY2FsbExpbmtJbmZvLmNhbGxlZS5jbGVhcigpOwotICAgIGNh
bGxMaW5rSW5mby5zdHViLmNsZWFyKCk7CisgICAgY2FsbExpbmtJbmZvLmNsZWFyU2VlbigpOwor
ICAgIGNhbGxMaW5rSW5mby5jbGVhckNhbGxlZSgpOworICAgIGNhbGxMaW5rSW5mby5jbGVhclN0
dWIoKTsKICAgICBpZiAoY2FsbExpbmtJbmZvLmlzT25MaXN0KCkpCiAgICAgICAgIGNhbGxMaW5r
SW5mby5yZW1vdmUoKTsKIH0KQEAgLTE2ODAsNyArMTY3OCw3IEBAIHZvaWQgdW5saW5rRm9yKAog
ICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2Rl
IHJlZ2lzdGVycykKIHsKICAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkpCi0gICAg
ICAgIGRhdGFMb2coIlVubGlua2luZyBjYWxsIGZyb20gIiwgY2FsbExpbmtJbmZvLmNhbGxSZXR1
cm5Mb2NhdGlvbiwgIiBpbiByZXF1ZXN0IGZyb20gIiwgcG9pbnRlckR1bXAocmVwYXRjaEJ1ZmZl
ci5jb2RlQmxvY2soKSksICJcbiIpOworICAgICAgICBkYXRhTG9nKCJVbmxpbmtpbmcgY2FsbCBm
cm9tICIsIGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24oKSwgIiBpbiByZXF1ZXN0IGZy
b20gIiwgcG9pbnRlckR1bXAocmVwYXRjaEJ1ZmZlci5jb2RlQmxvY2soKSksICJcbiIpOwogICAg
IAogICAgIHJldmVydENhbGwoCiAgICAgICAgIHJlcGF0Y2hCdWZmZXIsIHJlcGF0Y2hCdWZmZXIu
Y29kZUJsb2NrKCktPnZtKCksIGNhbGxMaW5rSW5mbywKQEAgLTE3MjYsOSArMTcyNCw5IEBAIHZv
aWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICBWTSogdm0gPSBjYWxsZXJDb2RlQmxvY2stPnZt
KCk7CiAgICAgCiAgICAgQ2FsbFZhcmlhbnRMaXN0IGxpc3Q7Ci0gICAgaWYgKFBvbHltb3JwaGlj
Q2FsbFN0dWJSb3V0aW5lKiBzdHViID0gY2FsbExpbmtJbmZvLnN0dWIuZ2V0KCkpCisgICAgaWYg
KFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKiBzdHViID0gY2FsbExpbmtJbmZvLnN0dWIoKSkK
ICAgICAgICAgbGlzdCA9IHN0dWItPnZhcmlhbnRzKCk7Ci0gICAgZWxzZSBpZiAoSlNGdW5jdGlv
biogb2xkQ2FsbGVlID0gY2FsbExpbmtJbmZvLmNhbGxlZS5nZXQoKSkKKyAgICBlbHNlIGlmIChK
U0Z1bmN0aW9uKiBvbGRDYWxsZWUgPSBjYWxsTGlua0luZm8uY2FsbGVlKCkpCiAgICAgICAgIGxp
c3QgPSBDYWxsVmFyaWFudExpc3R7IENhbGxWYXJpYW50KG9sZENhbGxlZSkgfTsKICAgICAKICAg
ICBsaXN0ID0gdmFyaWFudExpc3RXaXRoVmFyaWFudChsaXN0LCBuZXdWYXJpYW50KTsKQEAgLTE3
NDYsNyArMTc0NCw3IEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICB9CiAgICAgCiAg
ICAgaWYgKGlzQ2xvc3VyZUNhbGwpCi0gICAgICAgIGNhbGxMaW5rSW5mby5oYXNTZWVuQ2xvc3Vy
ZSA9IHRydWU7CisgICAgICAgIGNhbGxMaW5rSW5mby5zZXRIYXNTZWVuQ2xvc3VyZSgpOwogICAg
IAogICAgIFZlY3RvcjxQb2x5bW9ycGhpY0NhbGxDYXNlPiBjYWxsQ2FzZXM7CiAgICAgCkBAIC0x
NzYwLDcgKzE3NTgsNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIC8vIElmIHdlIGNhbm5vdCBoYW5kbGUgYSBjYWxsZWUsIGFzc3VtZSB0aGF0
IGl0J3MgYmV0dGVyIGZvciB0aGlzIHdob2xlIHRoaW5nIHRvIGJlIGEKICAgICAgICAgICAgIC8v
IHZpcnR1YWwgY2FsbC4KLSAgICAgICAgICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMo
KSkgfHwgY2FsbExpbmtJbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2FsbFZhcmFyZ3Mg
fHwgY2FsbExpbmtJbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0VmFyYXJn
cykgeworICAgICAgICAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkg
PCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSB8fCBjYWxs
TGlua0luZm8uY2FsbFR5cGUoKSA9PSBDYWxsTGlua0luZm86OkNhbGxWYXJhcmdzIHx8IGNhbGxM
aW5rSW5mby5jYWxsVHlwZSgpID09IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0VmFyYXJncykgewog
ICAgICAgICAgICAgICAgIGxpbmtWaXJ0dWFsRm9yKGV4ZWMsIGNhbGxMaW5rSW5mbywgQ29kZUZv
ckNhbGwsIHJlZ2lzdGVycyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQpAQCAtMTc4MCw3ICsxNzc4LDcgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAotICAgIEdQUlJlZyBjYWxsZWVHUFIgPSBzdGF0aWNfY2Fz
dDxHUFJSZWc+KGNhbGxMaW5rSW5mby5jYWxsZWVHUFIpOworICAgIEdQUlJlZyBjYWxsZWVHUFIg
PSBzdGF0aWNfY2FzdDxHUFJSZWc+KGNhbGxMaW5rSW5mby5jYWxsZWVHUFIoKSk7CiAgICAgCiAg
ICAgQ0NhbGxIZWxwZXJzIHN0dWJKaXQodm0sIGNhbGxlckNvZGVCbG9jayk7CiAgICAgCkBAIC0x
ODk1LDcgKzE4OTMsNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgc3R1YkppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBHUFJJbmZv
OjpyZWdUMSk7CiAjZW5kaWYKICAgICBzdHViSml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKCZjYWxsTGlua0luZm8pLCBHUFJJbmZvOjpyZWdUMik7Ci0gICAgc3R1YkppdC5tb3Zl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0
aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgc3R1YkppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihjYWxsTGlua0luZm8uY2FsbFJldHVybkxv
Y2F0aW9uKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSksIEdQUkluZm86OnJlZ1Q0KTsKICAgICAKICAg
ICBzdHViSml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1Q0
KTsKICAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgc2xvdyA9IHN0dWJKaXQuanVtcCgpOwpAQCAt
MTkxMiwxNiArMTkxMCwxNiBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgICAgICAg
ICBjYWxsVG9Db2RlUHRyLmNhbGwsIEZ1bmN0aW9uUHRyKGNhbGxUb0NvZGVQdHIuY29kZVB0ci5l
eGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgfQogICAgIGlmIChKSVRDb2RlOjppc09wdGltaXpp
bmdKSVQoY2FsbGVyQ29kZUJsb2NrLT5qaXRUeXBlKCkpKQotICAgICAgICBwYXRjaEJ1ZmZlci5s
aW5rKGRvbmUsIGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgw
KSk7CisgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1
cm5Mb2NhdGlvbigpLmxhYmVsQXRPZmZzZXQoMCkpOwogICAgIGVsc2UKLSAgICAgICAgcGF0Y2hC
dWZmZXIubGluayhkb25lLCBjYWxsTGlua0luZm8uaG90UGF0aE90aGVyLmxhYmVsQXRPZmZzZXQo
MCkpOworICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGNhbGxMaW5rSW5mby5ob3RQYXRo
T3RoZXIoKS5sYWJlbEF0T2Zmc2V0KDApKTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3csIENv
ZGVMb2NhdGlvbkxhYmVsKHZtLT5nZXRDVElTdHViKGxpbmtQb2x5bW9ycGhpY0NhbGxUaHVua0dl
bmVyYXRvckZvcihyZWdpc3RlcnMpKS5jb2RlKCkpKTsKICAgICAKICAgICBSZWZQdHI8UG9seW1v
cnBoaWNDYWxsU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lID0gYWRvcHRSZWYobmV3IFBvbHltb3Jw
aGljQ2FsbFN0dWJSb3V0aW5lKAogICAgICAgICBGSU5BTElaRV9DT0RFX0ZPUigKICAgICAgICAg
ICAgIGNhbGxlckNvZGVCbG9jaywgcGF0Y2hCdWZmZXIsCiAgICAgICAgICAgICAoIlBvbHltb3Jw
aGljIGNhbGwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCwgdGFyZ2V0cyAlcyIsCi0gICAg
ICAgICAgICAgICAgdG9DU3RyaW5nKCpjYWxsZXJDb2RlQmxvY2spLmRhdGEoKSwgY2FsbExpbmtJ
bmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDApLmV4ZWN1dGFibGVBZGRyZXNz
KCksCisgICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpjYWxsZXJDb2RlQmxvY2spLmRhdGEoKSwg
Y2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbigpLmxhYmVsQXRPZmZzZXQoMCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSwKICAgICAgICAgICAgICAgICB0b0NTdHJpbmcobGlzdER1bXAoY2FsbENh
c2VzKSkuZGF0YSgpKSksCiAgICAgICAgICp2bSwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1
dGFibGUoKSwgZXhlYy0+Y2FsbGVyRnJhbWUoKSwgY2FsbExpbmtJbmZvLCBjYWxsQ2FzZXMsCiAg
ICAgICAgIFdURjo6bW92ZShmYXN0Q291bnRzKSkpOwpAQCAtMTkyOSwxNCArMTkyNywxNCBAQCB2
b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVy
KGNhbGxlckNvZGVCbG9jayk7CiAgICAgCiAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0aEp1
bXAoCi0gICAgICAgIFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZCcmFuY2hQdHJXaXRoUGF0Y2hPblJl
Z2lzdGVyKGNhbGxMaW5rSW5mby5ob3RQYXRoQmVnaW4pLAorICAgICAgICBSZXBhdGNoQnVmZmVy
OjpzdGFydE9mQnJhbmNoUHRyV2l0aFBhdGNoT25SZWdpc3RlcihjYWxsTGlua0luZm8uaG90UGF0
aEJlZ2luKCkpLAogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbChzdHViUm91dGluZS0+Y29kZSgp
LmNvZGUoKSkpOwogICAgIC8vIFRoaXMgaXMgd2VpcmQuIFRoZSBvcmlnaW5hbCBzbG93IHBhdGgg
c2hvdWxkIG5vIGxvbmdlciBiZSByZWFjaGFibGUuCiAgICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1
ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwsIHJlZ2lzdGVycyk7CiAgICAgCiAg
ICAgLy8gSWYgdGhlcmUgaGFkIGJlZW4gYSBwcmV2aW91cyBzdHViIHJvdXRpbmUsIHRoYXQgb25l
IHdpbGwgZGllIGFzIHNvb24gYXMgdGhlIEdDIHJ1bnMgYW5kIHNlZXMKICAgICAvLyB0aGF0IGl0
J3Mgbm8gbG9uZ2VyIG9uIHN0YWNrLgotICAgIGNhbGxMaW5rSW5mby5zdHViID0gc3R1YlJvdXRp
bmUucmVsZWFzZSgpOworICAgIGNhbGxMaW5rSW5mby5zZXRTdHViKHN0dWJSb3V0aW5lLnJlbGVh
c2UoKSk7CiAgICAgCiAgICAgLy8gVGhlIGNhbGwgbGluayBpbmZvIG5vIGxvbmdlciBoYXMgYSBj
YWxsIGNhY2hlIGFwYXJ0IGZyb20gdGhlIGp1bXAgdG8gdGhlIHBvbHltb3JwaGljIGNhbGwKICAg
ICAvLyBzdHViLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRv
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcAkocmV2aXNpb24gMTg1OTI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9UaHVua0dlbmVyYXRvcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcsNyArMTc3LDcgQEAg
c3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVAogICAgIC8vIHNsb3cgcGF0
aCBleGVjdXRpb24gZm9yIHRoZSBwcm9maWxlci4KICAgICBqaXQuYWRkMzIoCiAgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6cmVnVDIsIE9CSkVDVF9PRkZTRVRPRihDYWxsTGlua0luZm8sIHNsb3dQYXRo
Q291bnQpKSk7CisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMiwg
Q2FsbExpbmtJbmZvOjpvZmZzZXRPZlNsb3dQYXRoQ291bnQoKSkpOwogCiAgICAgLy8gRklYTUU6
IHdlIHNob3VsZCBoYXZlIGEgc3RvcnkgZm9yIGVsaW1pbmF0aW5nIHRoZXNlIGNoZWNrcy4gSW4g
bWFueSBjYXNlcywKICAgICAvLyB0aGUgREZHIGtub3dzIHRoYXQgdGhlIHZhbHVlIGlzIGRlZmlu
aXRlbHkgYSBjZWxsLCBvciBkZWZpbml0ZWx5IGEgZnVuY3Rpb24uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>