<?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>43657</bug_id>
          
          <creation_ts>2010-08-06 17:27:43 -0700</creation_ts>
          <short_desc>Fix style violations in Document</short_desc>
          <delta_ts>2010-08-07 09:29:23 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261588</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-08-06 17:27:43 -0700</bug_when>
    <thetext>Fix style violations in Document</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261591</commentid>
    <comment_count>1</comment_count>
      <attachid>63789</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-08-06 17:33:25 -0700</bug_when>
    <thetext>Created attachment 63789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261602</commentid>
    <comment_count>2</comment_count>
      <attachid>63789</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-06 18:02:20 -0700</bug_when>
    <thetext>Comment on attachment 63789
Patch

Looks great.  Thanks Tony.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261609</commentid>
    <comment_count>3</comment_count>
      <attachid>63789</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-06 18:30:26 -0700</bug_when>
    <thetext>Comment on attachment 63789
Patch

Clearing flags on attachment: 63789

Committed r64889: &lt;http://trac.webkit.org/changeset/64889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261610</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-06 18:30:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261674</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-06 23:30:03 -0700</bug_when>
    <thetext>             case PROCESSING_INSTRUCTION_NODE:
-                return true;
+                break;

Was this a style violation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261729</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-08-07 09:29:23 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt;              case PROCESSING_INSTRUCTION_NODE:
&gt; -                return true;
&gt; +                break;
&gt; 
&gt; Was this a style violation?

Sharp eye.

This didn&apos;t actually change, the diff is just really misleading.

There are actually two switch statements: the first on line 2591, the second on line 2614. They are identical except for indentation and this one case.

My change only fixed the indentation of both switches. However, rather than making it look like I changed two switch statements, the diff made it look like I deleted the first, changed the second into the first and added a new one.

Anyway, looking at the full file instead of the diff should hopefully clear this up.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63789</attachid>
            <date>2010-08-06 17:33:25 -0700</date>
            <delta_ts>2010-08-06 18:30:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43657-20100806173323.patch</filename>
            <type>text/plain</type>
            <size>33791</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTc2YWMzNDQ0MDljMTM1MDg1NWIzNTg5Y2FkZDc2Y2NiODY2NWFmNi4uOWI5Y2I2NmYxMmIyZjYy
MWQ1MmYwYmZlMTUyZTE4MTFmYTQ1MGZmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMC0wOC0wNiAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBzdHlsZSB2aW9sYXRpb25zIGluIERvY3Vt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzY1
NworCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIG5ldyBmdW5jdGlvbmFsaXR5Lgor
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjY2VwdHNF
ZGl0aW5nRm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBvcnROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjphZG9wdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmdldEVs
ZW1lbnRCeUlkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWFkeVN0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpzaG91bGRTY2hlZHVsZUxheW91dCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6bmV4dEZvY3VzYWJsZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnByZXZpb3VzRm9jdXNhYmxlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
bm9kZUFic0luZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpub2RlV2l0aEFic0lu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjaGlsZFR5cGVBbGxvd2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojph
dHRhY2hOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaE5v
ZGVJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGFyc2VRdWFsaWZpZWRO
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRJbWFnZU1hcCk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SW5QYWdlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmFkZE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29weU1h
cmtlcnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNoaWZ0TWFya2Vycyk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0TWFya2Vyc0FjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cGFyZW50RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnRvcERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1FbGVtZW50S2V5SGFzaDo6
aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW5pdFNlY3VyaXR5Q29udGV4dCk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
aW5jRE9NVHJlZVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRvbVRyZWVW
ZXJzaW9uKToKKwogMjAxMC0wOC0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZWxlYXNlIFF0IGJ1aWxkIGZpeC4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCBiZWQzMTlkNjdlNzc5NzUyMzU4OGRkZGJiZjY4ZDVmN2ZlMmRhMTdiLi44ZmEyMzQ2
ODUxMDUxMzk5NmQ1ZWJhZjM2OTY5ZDAwOTExNTI4YzI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03OSwxMCAr
NzksOCBAQAogI2luY2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVD
b2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiTGVnYWN5SFRN
TFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxUaXRsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIu
aCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAj
aW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKQEAgLTkxLDYgKzg5LDggQEAKICNpbmNsdWRlICJJ
bnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
IgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJMZWdhY3lIVE1MRG9jdW1l
bnRQYXJzZXIuaCIKKyNpbmNsdWRlICJMZWdhY3lIVE1MVHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VF
dmVudC5oIgpAQCAtMTM2LDEwICsxMzYsMTAgQEAKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIldo
ZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlhN
TEh0dHBSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5h
bWVzLmgiCi0jaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
RnVuY3Rpb25zLmg+CkBAIC0xNzQsOCArMTc0LDggQEAKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4
dGVuc2lvbnMuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50RmFjdG9yeS5oIgogI2luY2x1ZGUgIlNW
R05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCkBAIC0zMDMsMTIgKzMwMywxMiBAQCBzdGF0aWMgV2lkZ2V0KiB3aWRn
ZXRGb3JOb2RlKE5vZGUqIGZvY3VzZWROb2RlKQogICAgIHJldHVybiB0b1JlbmRlcldpZGdldChy
ZW5kZXJlciktPndpZGdldCgpOwogfQogCi1zdGF0aWMgYm9vbCBhY2NlcHRzRWRpdGluZ0ZvY3Vz
KE5vZGUgKm5vZGUpCitzdGF0aWMgYm9vbCBhY2NlcHRzRWRpdGluZ0ZvY3VzKE5vZGUqIG5vZGUp
CiB7CiAgICAgQVNTRVJUKG5vZGUpOwogICAgIEFTU0VSVChub2RlLT5pc0NvbnRlbnRFZGl0YWJs
ZSgpKTsKIAotICAgIE5vZGUgKnJvb3QgPSBub2RlLT5yb290RWRpdGFibGVFbGVtZW50KCk7Cisg
ICAgTm9kZSogcm9vdCA9IG5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKICAgICBGcmFtZSog
ZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUgfHwgIXJv
b3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM2MCw3ICszNjAsNyBAQCBwcml2YXRlOgog
CiBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wg
aXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgOiBDb250YWluZXJOb2RlKDApCi0gICAgLCBtX2Rv
bXRyZWVfdmVyc2lvbigwKQorICAgICwgbV9kb21UcmVlVmVyc2lvbigwKQogICAgICwgbV9zdHls
ZVNoZWV0cyhTdHlsZVNoZWV0TGlzdDo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9zdHlsZVJlY2Fs
Y1RpbWVyKHRoaXMsICZEb2N1bWVudDo6c3R5bGVSZWNhbGNUaW1lckZpcmVkKQogICAgICwgbV9m
cmFtZUVsZW1lbnRzU2hvdWxkSWdub3JlU2Nyb2xsaW5nKGZhbHNlKQpAQCAtNzI1LDc1ICs3MjUs
NzUgQEAgUGFzc1JlZlB0cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRl
ZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9uQ28KICAgICB9CiAKICAgICBzd2l0Y2ggKGltcG9y
dGVkTm9kZS0+bm9kZVR5cGUoKSkgewotICAgICAgICBjYXNlIFRFWFRfTk9ERToKLSAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVUZXh0Tm9kZShpbXBvcnRlZE5vZGUtPm5vZGVWYWx1ZSgpKTsKLSAg
ICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRl
Q0RBVEFTZWN0aW9uKGltcG9ydGVkTm9kZS0+bm9kZVZhbHVlKCksIGVjKTsKLSAgICAgICAgY2Fz
ZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlRW50aXR5
UmVmZXJlbmNlKGltcG9ydGVkTm9kZS0+bm9kZU5hbWUoKSwgZWMpOwotICAgICAgICBjYXNlIFBS
T0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24oaW1wb3J0ZWROb2RlLT5ub2RlTmFtZSgpLCBpbXBvcnRlZE5vZGUt
Pm5vZGVWYWx1ZSgpLCBlYyk7Ci0gICAgICAgIGNhc2UgQ09NTUVOVF9OT0RFOgotICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZUNvbW1lbnQoaW1wb3J0ZWROb2RlLT5ub2RlVmFsdWUoKSk7Ci0gICAg
ICAgIGNhc2UgRUxFTUVOVF9OT0RFOiB7Ci0gICAgICAgICAgICBFbGVtZW50KiBvbGRFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGltcG9ydGVkTm9kZSk7Ci0gICAgICAgICAgICBSZWZQ
dHI8RWxlbWVudD4gbmV3RWxlbWVudCA9IGNyZWF0ZUVsZW1lbnROUyhvbGRFbGVtZW50LT5uYW1l
c3BhY2VVUkkoKSwgb2xkRWxlbWVudC0+dGFnUU5hbWUoKS50b1N0cmluZygpLCBlYyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKLQotICAgICAgICAgICAgTmFtZWROb2RlTWFwKiBhdHRycyA9IG9sZEVsZW1l
bnQtPmF0dHJpYnV0ZXModHJ1ZSk7Ci0gICAgICAgICAgICBpZiAoYXR0cnMpIHsKLSAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBhdHRycy0+bGVuZ3RoKCk7Ci0gICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIEF0dHJpYnV0ZSogYXR0ciA9IGF0dHJzLT5hdHRyaWJ1dGVJdGVtKGkpOwotICAgICAg
ICAgICAgICAgICAgICBuZXdFbGVtZW50LT5zZXRBdHRyaWJ1dGUoYXR0ci0+bmFtZSgpLCBhdHRy
LT52YWx1ZSgpLmltcGwoKSwgZWMpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZWMpCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgICAgICB9CisgICAgY2Fz
ZSBURVhUX05PREU6CisgICAgICAgIHJldHVybiBjcmVhdGVUZXh0Tm9kZShpbXBvcnRlZE5vZGUt
Pm5vZGVWYWx1ZSgpKTsKKyAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZUNEQVRBU2VjdGlvbihpbXBvcnRlZE5vZGUtPm5vZGVWYWx1ZSgpLCBlYyk7Cisg
ICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgIHJldHVybiBjcmVhdGVFbnRp
dHlSZWZlcmVuY2UoaW1wb3J0ZWROb2RlLT5ub2RlTmFtZSgpLCBlYyk7CisgICAgY2FzZSBQUk9D
RVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgICAgIHJldHVybiBjcmVhdGVQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oaW1wb3J0ZWROb2RlLT5ub2RlTmFtZSgpLCBpbXBvcnRlZE5vZGUtPm5vZGVW
YWx1ZSgpLCBlYyk7CisgICAgY2FzZSBDT01NRU5UX05PREU6CisgICAgICAgIHJldHVybiBjcmVh
dGVDb21tZW50KGltcG9ydGVkTm9kZS0+bm9kZVZhbHVlKCkpOworICAgIGNhc2UgRUxFTUVOVF9O
T0RFOiB7CisgICAgICAgIEVsZW1lbnQqIG9sZEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50
Kj4oaW1wb3J0ZWROb2RlKTsKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG5ld0VsZW1lbnQgPSBj
cmVhdGVFbGVtZW50TlMob2xkRWxlbWVudC0+bmFtZXNwYWNlVVJJKCksIG9sZEVsZW1lbnQtPnRh
Z1FOYW1lKCkudG9TdHJpbmcoKSwgZWMpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
aWYgKGVjKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgTmFtZWROb2RlTWFwKiBh
dHRycyA9IG9sZEVsZW1lbnQtPmF0dHJpYnV0ZXModHJ1ZSk7CisgICAgICAgIGlmIChhdHRycykg
eworICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gYXR0cnMtPmxlbmd0aCgpOworICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgICAg
ICAgICAgQXR0cmlidXRlKiBhdHRyID0gYXR0cnMtPmF0dHJpYnV0ZUl0ZW0oaSk7CisgICAgICAg
ICAgICAgICAgbmV3RWxlbWVudC0+c2V0QXR0cmlidXRlKGF0dHItPm5hbWUoKSwgYXR0ci0+dmFs
dWUoKS5pbXBsKCksIGVjKTsKKyAgICAgICAgICAgICAgICBpZiAoZWMpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgfQorICAgICAgICB9CiAKLSAgICAgICAgICAg
IG5ld0VsZW1lbnQtPmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzKG9sZEVsZW1lbnQpOworICAg
ICAgICBuZXdFbGVtZW50LT5jb3B5Tm9uQXR0cmlidXRlUHJvcGVydGllcyhvbGRFbGVtZW50KTsK
IAotICAgICAgICAgICAgaWYgKGRlZXApIHsKLSAgICAgICAgICAgICAgICBmb3IgKE5vZGUqIG9s
ZENoaWxkID0gb2xkRWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBvbGRDaGlsZDsgb2xkQ2hpbGQgPSBv
bGRDaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Tm9k
ZT4gbmV3Q2hpbGQgPSBpbXBvcnROb2RlKG9sZENoaWxkLCB0cnVlLCBlYyk7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAg
ICAgICAgICAgICAgICAgICBuZXdFbGVtZW50LT5hcHBlbmRDaGlsZChuZXdDaGlsZC5yZWxlYXNl
KCksIGVjKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICBpZiAoZGVlcCkgewor
ICAgICAgICAgICAgZm9yIChOb2RlKiBvbGRDaGlsZCA9IG9sZEVsZW1lbnQtPmZpcnN0Q2hpbGQo
KTsgb2xkQ2hpbGQ7IG9sZENoaWxkID0gb2xkQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAg
ICAgICAgICAgICBSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQgPSBpbXBvcnROb2RlKG9sZENoaWxkLCB0
cnVlLCBlYyk7CisgICAgICAgICAgICAgICAgaWYgKGVjKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgICAgICAgICBuZXdFbGVtZW50LT5hcHBlbmRDaGlsZChuZXdDaGls
ZC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgICAgICAgICBpZiAoZWMpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gbmV3
RWxlbWVudC5yZWxlYXNlKCk7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSSUJVVEVfTk9E
RToKLSAgICAgICAgICAgIHJldHVybiBBdHRyOjpjcmVhdGUoMCwgdGhpcywgc3RhdGljX2Nhc3Q8
QXR0cio+KGltcG9ydGVkTm9kZSktPmF0dHIoKS0+Y2xvbmUoKSk7Ci0gICAgICAgIGNhc2UgRE9D
VU1FTlRfRlJBR01FTlRfTk9ERTogewotICAgICAgICAgICAgRG9jdW1lbnRGcmFnbWVudCogb2xk
RnJhZ21lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudEZyYWdtZW50Kj4oaW1wb3J0ZWROb2RlKTsK
LSAgICAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBuZXdGcmFnbWVudCA9IGNyZWF0
ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgICAgIGlmIChkZWVwKSB7Ci0gICAgICAgICAg
ICAgICAgZm9yIChOb2RlKiBvbGRDaGlsZCA9IG9sZEZyYWdtZW50LT5maXJzdENoaWxkKCk7IG9s
ZENoaWxkOyBvbGRDaGlsZCA9IG9sZENoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIFJlZlB0cjxOb2RlPiBuZXdDaGlsZCA9IGltcG9ydE5vZGUob2xkQ2hpbGQsIHRy
dWUsIGVjKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICAgICAgICAgIG5ld0ZyYWdtZW50LT5hcHBlbmRD
aGlsZChuZXdDaGlsZC5yZWxlYXNlKCksIGVjKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVj
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICAgICAgfQor
CisgICAgICAgIHJldHVybiBuZXdFbGVtZW50LnJlbGVhc2UoKTsKKyAgICB9CisgICAgY2FzZSBB
VFRSSUJVVEVfTk9ERToKKyAgICAgICAgcmV0dXJuIEF0dHI6OmNyZWF0ZSgwLCB0aGlzLCBzdGF0
aWNfY2FzdDxBdHRyKj4oaW1wb3J0ZWROb2RlKS0+YXR0cigpLT5jbG9uZSgpKTsKKyAgICBjYXNl
IERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6IHsKKyAgICAgICAgRG9jdW1lbnRGcmFnbWVudCogb2xk
RnJhZ21lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudEZyYWdtZW50Kj4oaW1wb3J0ZWROb2RlKTsK
KyAgICAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IG5ld0ZyYWdtZW50ID0gY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOworICAgICAgICBpZiAoZGVlcCkgeworICAgICAgICAgICAgZm9yIChO
b2RlKiBvbGRDaGlsZCA9IG9sZEZyYWdtZW50LT5maXJzdENoaWxkKCk7IG9sZENoaWxkOyBvbGRD
aGlsZCA9IG9sZENoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAgICAgICAgUmVmUHRy
PE5vZGU+IG5ld0NoaWxkID0gaW1wb3J0Tm9kZShvbGRDaGlsZCwgdHJ1ZSwgZWMpOworICAgICAg
ICAgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICAgICAgbmV3RnJhZ21lbnQtPmFwcGVuZENoaWxkKG5ld0NoaWxkLnJlbGVhc2UoKSwgZWMp
OworICAgICAgICAgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHJldHVybiBuZXdGcmFn
bWVudC5yZWxlYXNlKCk7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBFTlRJVFlfTk9ERToKLSAg
ICAgICAgY2FzZSBOT1RBVElPTl9OT0RFOgotICAgICAgICAgICAgLy8gRklYTUU6IEl0IHNob3Vs
ZCBiZSBwb3NzaWJsZSB0byBpbXBvcnQgdGhlc2Ugbm9kZSB0eXBlcywgaG93ZXZlciBpbiBET00z
IHRoZSBEb2N1bWVudFR5cGUgaXMgcmVhZG9ubHksIHNvIHRoZXJlIGlzbid0IG11Y2ggc2Vuc2Ug
aW4gZG9pbmcgdGhhdC4KLSAgICAgICAgICAgIC8vIEFiaWxpdHkgdG8gYWRkIHRoZXNlIGltcG9y
dGVkIG5vZGVzIHRvIGEgRG9jdW1lbnRUeXBlIHdpbGwgYmUgY29uc2lkZXJlZCBmb3IgYWRkaXRp
b24gdG8gYSBmdXR1cmUgcmVsZWFzZSBvZiB0aGUgRE9NLgotICAgICAgICBjYXNlIERPQ1VNRU5U
X05PREU6Ci0gICAgICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOgotICAgICAgICBjYXNlIFhQ
QVRIX05BTUVTUEFDRV9OT0RFOgotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgICAg
ICByZXR1cm4gbmV3RnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKyAgICBjYXNlIEVOVElUWV9O
T0RFOgorICAgIGNhc2UgTk9UQVRJT05fTk9ERToKKyAgICAgICAgLy8gRklYTUU6IEl0IHNob3Vs
ZCBiZSBwb3NzaWJsZSB0byBpbXBvcnQgdGhlc2Ugbm9kZSB0eXBlcywgaG93ZXZlciBpbiBET00z
IHRoZSBEb2N1bWVudFR5cGUgaXMgcmVhZG9ubHksIHNvIHRoZXJlIGlzbid0IG11Y2ggc2Vuc2Ug
aW4gZG9pbmcgdGhhdC4KKyAgICAgICAgLy8gQWJpbGl0eSB0byBhZGQgdGhlc2UgaW1wb3J0ZWQg
bm9kZXMgdG8gYSBEb2N1bWVudFR5cGUgd2lsbCBiZSBjb25zaWRlcmVkIGZvciBhZGRpdGlvbiB0
byBhIGZ1dHVyZSByZWxlYXNlIG9mIHRoZSBET00uCisgICAgY2FzZSBET0NVTUVOVF9OT0RFOgor
ICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgIGNhc2UgWFBBVEhfTkFNRVNQQUNFX05P
REU6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7
CkBAIC04MTQsMjYgKzgxNCwyNiBAQCBQYXNzUmVmUHRyPE5vZGU+IERvY3VtZW50OjphZG9wdE5v
ZGUoUGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAog
ICAgIHN3aXRjaCAoc291cmNlLT5ub2RlVHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgRU5USVRZX05P
REU6Ci0gICAgICAgIGNhc2UgTk9UQVRJT05fTk9ERToKLSAgICAgICAgY2FzZSBET0NVTUVOVF9O
T0RFOgotICAgICAgICBjYXNlIERPQ1VNRU5UX1RZUEVfTk9ERToKLSAgICAgICAgY2FzZSBYUEFU
SF9OQU1FU1BBQ0VfTk9ERToKLSAgICAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7Ci0g
ICAgICAgICAgICByZXR1cm4gMDsgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBBVFRSSUJVVEVf
Tk9ERTogeyAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEF0dHIqIGF0dHIgPSBzdGF0
aWNfY2FzdDxBdHRyKj4oc291cmNlLmdldCgpKTsKLSAgICAgICAgICAgIGlmIChhdHRyLT5vd25l
ckVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICBhdHRyLT5vd25lckVsZW1lbnQoKS0+cmVtb3Zl
QXR0cmlidXRlTm9kZShhdHRyLCBlYyk7Ci0gICAgICAgICAgICBhdHRyLT5zZXRTcGVjaWZpZWQo
dHJ1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfSAgICAgICAKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIGlmIChzb3VyY2UtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSkKLSAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxIVE1MSUZyYW1lRWxlbWVudCo+KHNvdXJjZS5nZXQo
KSktPnNldFJlbWFpbnNBbGl2ZU9uUmVtb3ZhbEZyb21UcmVlKGF0dGFjaGVkKCkpOworICAgIGNh
c2UgRU5USVRZX05PREU6CisgICAgY2FzZSBOT1RBVElPTl9OT0RFOgorICAgIGNhc2UgRE9DVU1F
TlRfTk9ERToKKyAgICBjYXNlIERPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICBjYXNlIFhQQVRIX05B
TUVTUEFDRV9OT0RFOgorICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOworICAgICAgICBy
ZXR1cm4gMDsgICAgICAgICAgICAKKyAgICBjYXNlIEFUVFJJQlVURV9OT0RFOiB7ICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICBBdHRyKiBhdHRyID0gc3RhdGljX2Nhc3Q8QXR0cio+KHNvdXJj
ZS5nZXQoKSk7CisgICAgICAgIGlmIChhdHRyLT5vd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAg
IGF0dHItPm93bmVyRWxlbWVudCgpLT5yZW1vdmVBdHRyaWJ1dGVOb2RlKGF0dHIsIGVjKTsKKyAg
ICAgICAgYXR0ci0+c2V0U3BlY2lmaWVkKHRydWUpOworICAgICAgICBicmVhazsKKyAgICB9ICAg
ICAgIAorICAgIGRlZmF1bHQ6CisgICAgICAgIGlmIChzb3VyY2UtPmhhc1RhZ05hbWUoaWZyYW1l
VGFnKSkKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4oc291cmNl
LmdldCgpKS0+c2V0UmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRyZWUoYXR0YWNoZWQoKSk7CiAK
LSAgICAgICAgICAgIGlmIChzb3VyY2UtPnBhcmVudE5vZGUoKSkKLSAgICAgICAgICAgICAgICBz
b3VyY2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoc291cmNlLmdldCgpLCBlYyk7CisgICAg
ICAgIGlmIChzb3VyY2UtPnBhcmVudE5vZGUoKSkKKyAgICAgICAgICAgIHNvdXJjZS0+cGFyZW50
Tm9kZSgpLT5yZW1vdmVDaGlsZChzb3VyY2UuZ2V0KCksIGVjKTsKICAgICB9CiAgICAgICAgICAg
ICAgICAgCiAgICAgZm9yIChOb2RlKiBub2RlID0gc291cmNlLmdldCgpOyBub2RlOyBub2RlID0g
bm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShzb3VyY2UuZ2V0KCkpKQpAQCAtOTIzLDcgKzkyMyw3IEBA
IEVsZW1lbnQqIERvY3VtZW50OjpnZXRFbGVtZW50QnlJZChjb25zdCBBdG9taWNTdHJpbmcmIGVs
ZW1lbnRJZCkgY29uc3QKIAogICAgIGlmIChtX2R1cGxpY2F0ZUlkcy5jb250YWlucyhlbGVtZW50
SWQuaW1wbCgpKSkgewogICAgICAgICAvLyBXZSBrbm93IHRoZXJlJ3MgYXQgbGVhc3Qgb25lIG5v
ZGUgd2l0aCB0aGlzIGlkLCBidXQgd2UgZG9uJ3Qga25vdyB3aGF0IHRoZSBmaXJzdCBvbmUgaXMu
Ci0gICAgICAgIGZvciAoTm9kZSAqbiA9IHRyYXZlcnNlTmV4dE5vZGUoKTsgbiAhPSAwOyBuID0g
bi0+dHJhdmVyc2VOZXh0Tm9kZSgpKSB7CisgICAgICAgIGZvciAoTm9kZSogbiA9IHRyYXZlcnNl
TmV4dE5vZGUoKTsgbjsgbiA9IG4tPnRyYXZlcnNlTmV4dE5vZGUoKSkgewogICAgICAgICAgICAg
aWYgKG4tPmlzRWxlbWVudE5vZGUoKSkgewogICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxFbGVtZW50Kj4obik7CiAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmhhc0lE
KCkgJiYgZWxlbWVudC0+Z2V0SWRBdHRyaWJ1dGUoKSA9PSBlbGVtZW50SWQpIHsKQEAgLTk0NSw5
ICs5NDUsOSBAQCBTdHJpbmcgRG9jdW1lbnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogICAgICAgICAg
ICAgcmV0dXJuICJjb21wbGV0ZSI7CiAgICAgICAgIGlmIChwYXJzaW5nKCkpIAogICAgICAgICAg
ICAgcmV0dXJuICJsb2FkaW5nIjsKLSAgICAgIHJldHVybiAibG9hZGVkIjsKLSAgICAgIC8vIEZJ
WE1FOiBXaGF0IGRvZXMgImludGVyYWN0aXZlIiBtZWFuPwotICAgICAgLy8gRklYTUU6IE1pc3Np
bmcgc3VwcG9ydCBmb3IgInVuaW5pdGlhbGl6ZWQiLgorICAgICAgICByZXR1cm4gImxvYWRlZCI7
CisgICAgICAgIC8vIEZJWE1FOiBXaGF0IGRvZXMgImludGVyYWN0aXZlIiBtZWFuPworICAgICAg
ICAvLyBGSVhNRTogTWlzc2luZyBzdXBwb3J0IGZvciAidW5pbml0aWFsaXplZCIuCiAgICAgfQog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KQEAgLTEzNTIsNyArMTM1Miw3IEBAIFBhc3NSZWZQdHI8
Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVu
c2lnbmVkIHdoYXRUCiAgICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3JlYXRlKHJvb3QsIHdoYXRU
b1Nob3csIGZpbHRlciwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CiB9CiAKLVBhc3NSZWZQdHI8
VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSAqcm9vdCwgdW5zaWdu
ZWQgd2hhdFRvU2hvdywgCitQYXNzUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50OjpjcmVhdGVU
cmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIHdoYXRUb1Nob3csIAogICAgIFBhc3NSZWZQ
dHI8Tm9kZUZpbHRlcj4gZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGlmICghcm9vdCkgewpAQCAtMjA0OCw4ICsyMDQ4LDggQEAg
Ym9vbCBEb2N1bWVudDo6c2hvdWxkU2NoZWR1bGVMYXlvdXQoKQogICAgIC8vICAgIChhKSBPbmx5
IHNjaGVkdWxlIGEgbGF5b3V0IG9uY2UgdGhlIHN0eWxlc2hlZXRzIGFyZSBsb2FkZWQuCiAgICAg
Ly8gICAgKGIpIE9ubHkgc2NoZWR1bGUgbGF5b3V0IG9uY2Ugd2UgaGF2ZSBhIGJvZHkgZWxlbWVu
dC4KIAotICAgIHJldHVybiAoaGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkgJiYgYm9keSgpKSB8fAot
ICAgICAgICAoZG9jdW1lbnRFbGVtZW50KCkgJiYgIWRvY3VtZW50RWxlbWVudCgpLT5oYXNUYWdO
YW1lKGh0bWxUYWcpKTsKKyAgICByZXR1cm4gKGhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpICYmIGJv
ZHkoKSkKKyAgICAgICAgfHwgKGRvY3VtZW50RWxlbWVudCgpICYmICFkb2N1bWVudEVsZW1lbnQo
KS0+aGFzVGFnTmFtZShodG1sVGFnKSk7CiB9CiAKIGludCBEb2N1bWVudDo6bWluaW11bUxheW91
dERlbGF5KCkKQEAgLTIzMTksNyArMjMxOSw3IEBAIE5vZGUqIERvY3VtZW50OjpuZXh0Rm9jdXNh
YmxlTm9kZShOb2RlKiBzdGFydCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgIGlmIChO
b2RlKiB3aW5uZXIgPSBuZXh0Tm9kZVdpdGhFeGFjdFRhYkluZGV4KHN0YXJ0LT50cmF2ZXJzZU5l
eHROb2RlKCksIHN0YXJ0LT50YWJJbmRleCgpLCBldmVudCkpCiAgICAgICAgICAgICByZXR1cm4g
d2lubmVyOwogCi0gICAgICAgIGlmIChzdGFydC0+dGFiSW5kZXgoKSA9PSAwKQorICAgICAgICBp
ZiAoIXN0YXJ0LT50YWJJbmRleCgpKQogICAgICAgICAgICAgLy8gV2UndmUgcmVhY2hlZCB0aGUg
bGFzdCBub2RlIGluIHRoZSBkb2N1bWVudCB3aXRoIGEgdGFiaW5kZXggb2YgMC4gVGhpcyBpcyB0
aGUgZW5kIG9mIHRoZSB0YWJiaW5nIG9yZGVyLgogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQpAQCAtMjMzOCw4ICsyMzM4LDcgQEAgTm9kZSogRG9jdW1lbnQ6Om5leHRGb2N1c2FibGVOb2Rl
KE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkKIE5vZGUqIERvY3VtZW50OjpwcmV2
aW91c0ZvY3VzYWJsZU5vZGUoTm9kZSogc3RhcnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewog
ICAgIE5vZGUqIGxhc3Q7Ci0gICAgZm9yIChsYXN0ID0gdGhpczsgbGFzdC0+bGFzdENoaWxkKCk7
IGxhc3QgPSBsYXN0LT5sYXN0Q2hpbGQoKSkKLSAgICAgICAgOyAvLyBFbXB0eSBsb29wLgorICAg
IGZvciAobGFzdCA9IHRoaXM7IGxhc3QtPmxhc3RDaGlsZCgpOyBsYXN0ID0gbGFzdC0+bGFzdENo
aWxkKCkpIHsgfQogCiAgICAgLy8gRmlyc3QgdHJ5IHRvIGZpbmQgdGhlIGxhc3Qgbm9kZSBpbiB0
aGUgZG9jdW1lbnQgdGhhdCBjb21lcyBiZWZvcmUgc3RhcnQgYW5kIGhhcyB0aGUgc2FtZSB0YWJp
bmRleCBhcyBzdGFydC4KICAgICAvLyBJZiBzdGFydCBpcyBudWxsLCBmaW5kIHRoZSBsYXN0IG5v
ZGUgaW4gdGhlIGRvY3VtZW50IHdpdGggYSB0YWJpbmRleCBvZiAwLgpAQCAtMjM3NSwxNyArMjM3
NCwxNiBAQCBpbnQgRG9jdW1lbnQ6Om5vZGVBYnNJbmRleChOb2RlICpub2RlKQogICAgIEFTU0VS
VChub2RlLT5kb2N1bWVudCgpID09IHRoaXMpOwogCiAgICAgaW50IGFic0luZGV4ID0gMDsKLSAg
ICBmb3IgKE5vZGUgKm4gPSBub2RlOyBuICYmIG4gIT0gdGhpczsgbiA9IG4tPnRyYXZlcnNlUHJl
dmlvdXNOb2RlKCkpCisgICAgZm9yIChOb2RlKiBuID0gbm9kZTsgbiAmJiBuICE9IHRoaXM7IG4g
PSBuLT50cmF2ZXJzZVByZXZpb3VzTm9kZSgpKQogICAgICAgICBhYnNJbmRleCsrOwogICAgIHJl
dHVybiBhYnNJbmRleDsKIH0KIAotTm9kZSAqRG9jdW1lbnQ6Om5vZGVXaXRoQWJzSW5kZXgoaW50
IGFic0luZGV4KQorTm9kZSogRG9jdW1lbnQ6Om5vZGVXaXRoQWJzSW5kZXgoaW50IGFic0luZGV4
KQogewotICAgIE5vZGUgKm4gPSB0aGlzOwotICAgIGZvciAoaW50IGkgPSAwOyBuICYmIChpIDwg
YWJzSW5kZXgpOyBpKyspIHsKKyAgICBOb2RlKiBuID0gdGhpczsKKyAgICBmb3IgKGludCBpID0g
MDsgbiAmJiAoaSA8IGFic0luZGV4KTsgaSsrKQogICAgICAgICBuID0gbi0+dHJhdmVyc2VOZXh0
Tm9kZSgpOwotICAgIH0KICAgICByZXR1cm4gbjsKIH0KIApAQCAtMjUzMCwyNyArMjUyOCwyNyBA
QCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIERvY3VtZW50OjpwcmVwYXJlTW91c2VFdmVu
dChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcgogYm9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dl
ZChOb2RlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIEFU
VFJJQlVURV9OT0RFOgotICAgICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICAgICAg
Y2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgotICAgICAgICBjYXNlIERPQ1VNRU5UX05PREU6
Ci0gICAgICAgIGNhc2UgRU5USVRZX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5D
RV9OT0RFOgotICAgICAgICBjYXNlIE5PVEFUSU9OX05PREU6Ci0gICAgICAgIGNhc2UgVEVYVF9O
T0RFOgotICAgICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBjYXNlIENPTU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBQUk9D
RVNTSU5HX0lOU1RSVUNUSU9OX05PREU6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgY2FzZSBET0NVTUVOVF9UWVBFX05PREU6Ci0gICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgot
ICAgICAgICAgICAgLy8gRG9jdW1lbnRzIG1heSBjb250YWluIG5vIG1vcmUgdGhhbiBvbmUgb2Yg
ZWFjaCBvZiB0aGVzZS4KLSAgICAgICAgICAgIC8vIChPbmUgRWxlbWVudCBhbmQgb25lIERvY3Vt
ZW50VHlwZS4pCi0gICAgICAgICAgICBmb3IgKE5vZGUqIGMgPSBmaXJzdENoaWxkKCk7IGM7IGMg
PSBjLT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgICAgIGlmIChjLT5ub2RlVHlwZSgpID09
IHR5cGUpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGNhc2UgQVRUUklCVVRFX05PREU6CisgICAgY2FzZSBDREFUQV9TRUNU
SU9OX05PREU6CisgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgorICAgIGNhc2UgRE9D
VU1FTlRfTk9ERToKKyAgICBjYXNlIEVOVElUWV9OT0RFOgorICAgIGNhc2UgRU5USVRZX1JFRkVS
RU5DRV9OT0RFOgorICAgIGNhc2UgTk9UQVRJT05fTk9ERToKKyAgICBjYXNlIFRFWFRfTk9ERToK
KyAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgY2FzZSBDT01NRU5UX05PREU6CisgICAgY2FzZSBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05P
REU6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOgor
ICAgIGNhc2UgRUxFTUVOVF9OT0RFOgorICAgICAgICAvLyBEb2N1bWVudHMgbWF5IGNvbnRhaW4g
bm8gbW9yZSB0aGFuIG9uZSBvZiBlYWNoIG9mIHRoZXNlLgorICAgICAgICAvLyAoT25lIEVsZW1l
bnQgYW5kIG9uZSBEb2N1bWVudFR5cGUuKQorICAgICAgICBmb3IgKE5vZGUqIGMgPSBmaXJzdENo
aWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgaWYgKGMtPm5vZGVU
eXBlKCkgPT0gdHlwZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0yNTc0LDE0ICsyNTcy
LDE0IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCiAgICAgICAgIHN3
aXRjaCAoYy0+bm9kZVR5cGUoKSkgewotICAgICAgICAgICAgY2FzZSBET0NVTUVOVF9UWVBFX05P
REU6Ci0gICAgICAgICAgICAgICAgbnVtRG9jdHlwZXMrKzsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgICAgIG51bUVs
ZW1lbnRzKys7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPQ1VNRU5UX1RZUEVfTk9ERToK
KyAgICAgICAgICAgIG51bURvY3R5cGVzKys7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBFTEVNRU5UX05PREU6CisgICAgICAgICAgICBudW1FbGVtZW50cysrOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgIH0KICAgICAKQEAgLTI1ODksMjkgKzI1ODcsNiBAQCBib29sIERvY3VtZW50OjpjYW5S
ZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAgIGlmIChuZXdD
aGlsZC0+bm9kZVR5cGUoKSA9PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSB7CiAgICAgICAgIGZv
ciAoTm9kZSogYyA9IGZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJsaW5nKCkpIHsKICAg
ICAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewotICAgICAgICAgICAgICAgIGNhc2Ug
QVRUUklCVVRFX05PREU6Ci0gICAgICAgICAgICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6
Ci0gICAgICAgICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgotICAgICAgICAg
ICAgICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICAgICAgICAgICAgICBjYXNlIEVOVElUWV9O
T0RFOgotICAgICAgICAgICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAg
ICAgICAgICAgIGNhc2UgTk9UQVRJT05fTk9ERToKLSAgICAgICAgICAgICAgICBjYXNlIFRFWFRf
Tk9ERToKLSAgICAgICAgICAgICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgY2FzZSBDT01NRU5U
X05PREU6Ci0gICAgICAgICAgICAgICAgY2FzZSBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRE9DVU1F
TlRfVFlQRV9OT0RFOgotICAgICAgICAgICAgICAgICAgICBudW1Eb2N0eXBlcysrOwotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIEVMRU1FTlRfTk9ERToK
LSAgICAgICAgICAgICAgICAgICAgbnVtRWxlbWVudHMrKzsKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBz
d2l0Y2ggKG5ld0NoaWxkLT5ub2RlVHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIEFUVFJJQlVU
RV9OT0RFOgogICAgICAgICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6CiAgICAgICAgICAg
ICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC0yNjI0LDEzICsyNTk5LDM2IEBAIGJv
b2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hp
bGQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY2FzZSBDT01N
RU5UX05PREU6CiAgICAgICAgICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToK
LSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOgogICAgICAgICAgICAgICAgIG51bURv
Y3R5cGVzKys7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEVMRU1F
TlRfTk9ERToKICAgICAgICAgICAgICAgICBudW1FbGVtZW50cysrOwogICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAg
c3dpdGNoIChuZXdDaGlsZC0+bm9kZVR5cGUoKSkgeworICAgICAgICBjYXNlIEFUVFJJQlVURV9O
T0RFOgorICAgICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgY2FzZSBET0NV
TUVOVF9GUkFHTUVOVF9OT0RFOgorICAgICAgICBjYXNlIERPQ1VNRU5UX05PREU6CisgICAgICAg
IGNhc2UgRU5USVRZX05PREU6CisgICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgor
ICAgICAgICBjYXNlIE5PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgVEVYVF9OT0RFOgorICAg
ICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBjYXNlIENPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBQUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREU6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBE
T0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICBudW1Eb2N0eXBlcysrOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgbnVtRWxl
bWVudHMrKzsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9ICAgICAgICAgICAgICAgIAog
ICAgIH0KICAgICAgICAgCkBAIC0yODI5LDExICsyODI3LDExIEBAIHZvaWQgRG9jdW1lbnQ6OnJl
Y2FsY1N0eWxlU2VsZWN0b3IoKQogICAgICAgICAgICAgYm9vbCBlbmFibGVkVmlhU2NyaXB0ID0g
ZmFsc2U7CiAgICAgICAgICAgICBpZiAoZS0+aGFzTG9jYWxOYW1lKGxpbmtUYWcpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gPExJTks+IGVsZW1lbnQKLSAgICAgICAgICAgICAgICBIVE1MTGlua0Vs
ZW1lbnQqIGwgPSBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihuKTsKLSAgICAgICAgICAg
ICAgICBpZiAobC0+aXNEaXNhYmxlZCgpKQorICAgICAgICAgICAgICAgIEhUTUxMaW5rRWxlbWVu
dCogbGlua0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihuKTsKKyAgICAg
ICAgICAgICAgICBpZiAobGlua0VsZW1lbnQtPmlzRGlzYWJsZWQoKSkKICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgZW5hYmxlZFZpYVNjcmlwdCA9IGwtPmlz
RW5hYmxlZFZpYVNjcmlwdCgpOwotICAgICAgICAgICAgICAgIGlmIChsLT5pc0xvYWRpbmcoKSkg
eworICAgICAgICAgICAgICAgIGVuYWJsZWRWaWFTY3JpcHQgPSBsaW5rRWxlbWVudC0+aXNFbmFi
bGVkVmlhU2NyaXB0KCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5pc0xvYWRp
bmcoKSkgewogICAgICAgICAgICAgICAgICAgICAvLyBpdCBpcyBsb2FkaW5nIGJ1dCB3ZSBzaG91
bGQgc3RpbGwgZGVjaWRlIHdoaWNoIHN0eWxlIHNoZWV0IHNldCB0byB1c2UKICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFlbmFibGVkVmlhU2NyaXB0ICYmICF0aXRsZS5pc0VtcHR5KCkgJiYgbV9w
cmVmZXJyZWRTdHlsZXNoZWV0U2V0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiByZWwgPSBlLT5nZXRBdHRyaWJ1dGUocmVsQXR0cik7CkBA
IC0yODQ0LDcgKzI4NDIsNyBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZVNlbGVjdG9yKCkK
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCFsLT5zaGVldCgpKQorICAgICAg
ICAgICAgICAgIGlmICghbGlua0VsZW1lbnQtPnNoZWV0KCkpCiAgICAgICAgICAgICAgICAgICAg
IHRpdGxlID0gbnVsbEF0b207CiAgICAgICAgICAgICB9CiAKQEAgLTMwNTIsNyArMzA1MCw3IEBA
IGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNl
ZE5vZGUpCiAgICAgICAgIC8vIGV3dywgSSBzdWNrLiBzZXQgdGhlIHF0IGZvY3VzIGNvcnJlY3Rs
eQogICAgICAgICAvLyAjIyMgZmluZCBhIGJldHRlciBwbGFjZSBpbiB0aGUgY29kZSBmb3IgdGhp
cwogICAgICAgICBpZiAodmlldygpKSB7Ci0gICAgICAgICAgICBXaWRnZXQgKmZvY3VzV2lkZ2V0
ID0gd2lkZ2V0Rm9yTm9kZShtX2ZvY3VzZWROb2RlLmdldCgpKTsKKyAgICAgICAgICAgIFdpZGdl
dCogZm9jdXNXaWRnZXQgPSB3aWRnZXRGb3JOb2RlKG1fZm9jdXNlZE5vZGUuZ2V0KCkpOwogICAg
ICAgICAgICAgaWYgKGZvY3VzV2lkZ2V0KSB7CiAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJl
IGEgd2lkZ2V0IGhhcyB0aGUgcmlnaHQgc2l6ZSBiZWZvcmUgZ2l2aW5nIGl0IGZvY3VzLgogICAg
ICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgYXJlIHRlc3RpbmcgZWRnZSBjYXNlcyBvZiB0
aGUgV2lkZ2V0IGNvZGUuCkBAIC0zMTA4LDEyICszMTA2LDEyIEBAIHZvaWQgRG9jdW1lbnQ6OnNl
dENTU1RhcmdldChFbGVtZW50KiBuKQogICAgICAgICBuLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7
CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmF0dGFjaE5vZGVJdGVyYXRvcihOb2RlSXRlcmF0b3IgKm5p
KQordm9pZCBEb2N1bWVudDo6YXR0YWNoTm9kZUl0ZXJhdG9yKE5vZGVJdGVyYXRvciogbmkpCiB7
CiAgICAgbV9ub2RlSXRlcmF0b3JzLmFkZChuaSk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmRldGFj
aE5vZGVJdGVyYXRvcihOb2RlSXRlcmF0b3IgKm5pKQordm9pZCBEb2N1bWVudDo6ZGV0YWNoTm9k
ZUl0ZXJhdG9yKE5vZGVJdGVyYXRvciogbmkpCiB7CiAgICAgbV9ub2RlSXRlcmF0b3JzLnJlbW92
ZShuaSk7CiB9CkBAIC0zNTYzLDcgKzM1NjEsNyBAQCBib29sIERvY3VtZW50OjpwYXJzZVF1YWxp
ZmllZE5hbWUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBTdHJpbmcmIHByZWZpeCwgUwog
ewogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHF1YWxpZmllZE5hbWUubGVuZ3RoKCk7CiAKLSAgICBp
ZiAobGVuZ3RoID09IDApIHsKKyAgICBpZiAoIWxlbmd0aCkgewogICAgICAgICBlYyA9IElOVkFM
SURfQ0hBUkFDVEVSX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTM2NDYs
NyArMzY0NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZUltYWdlTWFwKEhUTUxNYXBFbGVtZW50
KiBpbWFnZU1hcCkKICAgICAgICAgbV9pbWFnZU1hcHNCeU5hbWUucmVtb3ZlKGl0KTsKIH0KIAot
SFRNTE1hcEVsZW1lbnQgKkRvY3VtZW50OjpnZXRJbWFnZU1hcChjb25zdCBTdHJpbmcmIHVybCkg
Y29uc3QKK0hUTUxNYXBFbGVtZW50KiBEb2N1bWVudDo6Z2V0SW1hZ2VNYXAoY29uc3QgU3RyaW5n
JiB1cmwpIGNvbnN0CiB7CiAgICAgaWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0zNjgyLDEzICszNjgwLDEzIEBAIHZvaWQgRG9jdW1lbnQ6OnNldEluUGFnZUNhY2hlKGJv
b2wgZmxhZykKIAogICAgIG1faW5QYWdlQ2FjaGUgPSBmbGFnOwogICAgIGlmIChmbGFnKSB7Ci0g
ICAgICAgIEFTU0VSVChtX3NhdmVkUmVuZGVyZXIgPT0gMCk7CisgICAgICAgIEFTU0VSVCghbV9z
YXZlZFJlbmRlcmVyKTsKICAgICAgICAgbV9zYXZlZFJlbmRlcmVyID0gcmVuZGVyZXIoKTsKICAg
ICAgICAgaWYgKEZyYW1lVmlldyogdiA9IHZpZXcoKSkKICAgICAgICAgICAgIHYtPnJlc2V0U2Ny
b2xsYmFycygpOwogICAgICAgICB1bnNjaGVkdWxlU3R5bGVSZWNhbGMoKTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBBU1NFUlQocmVuZGVyZXIoKSA9PSAwIHx8IHJlbmRlcmVyKCkgPT0gbV9zYXZl
ZFJlbmRlcmVyKTsKKyAgICAgICAgQVNTRVJUKCFyZW5kZXJlcigpIHx8IHJlbmRlcmVyKCkgPT0g
bV9zYXZlZFJlbmRlcmVyKTsKICAgICAgICAgQVNTRVJUKG1fcmVuZGVyQXJlbmEpOwogICAgICAg
ICBzZXRSZW5kZXJlcihtX3NhdmVkUmVuZGVyZXIpOwogICAgICAgICBtX3NhdmVkUmVuZGVyZXIg
PSAwOwpAQCAtMzgwNCw3ICszODAyLDcgQEAgc3RhdGljIEludFJlY3QgcGxhY2Vob2xkZXJSZWN0
Rm9yTWFya2VyKCkKICAgICByZXR1cm4gSW50UmVjdCgtMSwgLTEsIC0xLCAtMSk7CiB9CiAKLXZv
aWQgRG9jdW1lbnQ6OmFkZE1hcmtlcihSYW5nZSAqcmFuZ2UsIERvY3VtZW50TWFya2VyOjpNYXJr
ZXJUeXBlIHR5cGUsIFN0cmluZyBkZXNjcmlwdGlvbikKK3ZvaWQgRG9jdW1lbnQ6OmFkZE1hcmtl
cihSYW5nZSogcmFuZ2UsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlIHR5cGUsIFN0cmluZyBk
ZXNjcmlwdGlvbikKIHsKICAgICAvLyBVc2UgYSBUZXh0SXRlcmF0b3IgdG8gdmlzaXQgdGhlIHBv
dGVudGlhbGx5IG11bHRpcGxlIG5vZGVzIHRoZSByYW5nZSBjb3ZlcnMuCiAgICAgZm9yIChUZXh0
SXRlcmF0b3IgbWFya2VkVGV4dChyYW5nZSk7ICFtYXJrZWRUZXh0LmF0RW5kKCk7IG1hcmtlZFRl
eHQuYWR2YW5jZSgpKSB7CkBAIC0zOTAxLDcgKzM4OTksNyBAQCB2b2lkIERvY3VtZW50OjphZGRN
YXJrZXIoTm9kZSogbm9kZSwgRG9jdW1lbnRNYXJrZXIgbmV3TWFya2VyKQogCiAvLyBjb3BpZXMg
bWFya2VycyBmcm9tIHNyY05vZGUgdG8gZHN0Tm9kZSwgYXBwbHlpbmcgdGhlIHNwZWNpZmllZCBz
aGlmdCBkZWx0YSB0byB0aGUgY29waWVzLiAgVGhlIHNoaWZ0IGlzCiAvLyB1c2VmdWwgaWYsIGUu
Zy4sIHRoZSBjYWxsZXIgaGFzIGNyZWF0ZWQgdGhlIGRzdE5vZGUgZnJvbSBhIG5vbi1wcmVmaXgg
c3Vic3RyaW5nIG9mIHRoZSBzcmNOb2RlLgotdm9pZCBEb2N1bWVudDo6Y29weU1hcmtlcnMoTm9k
ZSAqc3JjTm9kZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIGludCBsZW5ndGgsIE5vZGUgKmRzdE5v
ZGUsIGludCBkZWx0YSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgbWFya2VyVHlwZSkKK3Zv
aWQgRG9jdW1lbnQ6OmNvcHlNYXJrZXJzKE5vZGUqIHNyY05vZGUsIHVuc2lnbmVkIHN0YXJ0T2Zm
c2V0LCBpbnQgbGVuZ3RoLCBOb2RlKiBkc3ROb2RlLCBpbnQgZGVsdGEsIERvY3VtZW50TWFya2Vy
OjpNYXJrZXJUeXBlIG1hcmtlclR5cGUpCiB7CiAgICAgaWYgKGxlbmd0aCA8PSAwKQogICAgICAg
ICByZXR1cm47CkBAIC00MjA2LDcgKzQyMDQsNyBAQCB2b2lkIERvY3VtZW50OjppbnZhbGlkYXRl
UmVuZGVyZWRSZWN0c0Zvck1hcmtlcnNJblJlY3QoY29uc3QgSW50UmVjdCYgcikKICAgICB9CiB9
CiAKLXZvaWQgRG9jdW1lbnQ6OnNoaWZ0TWFya2VycyhOb2RlICpub2RlLCB1bnNpZ25lZCBzdGFy
dE9mZnNldCwgaW50IGRlbHRhLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSBtYXJrZXJUeXBl
KQordm9pZCBEb2N1bWVudDo6c2hpZnRNYXJrZXJzKE5vZGUqIG5vZGUsIHVuc2lnbmVkIHN0YXJ0
T2Zmc2V0LCBpbnQgZGVsdGEsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlIG1hcmtlclR5cGUp
CiB7CiAgICAgTWFya2VyTWFwVmVjdG9yUGFpciogdmVjdG9yUGFpciA9IG1fbWFya2Vycy5nZXQo
bm9kZSk7CiAgICAgaWYgKCF2ZWN0b3JQYWlyKQpAQCAtNDIxOCw3ICs0MjE2LDcgQEAgdm9pZCBE
b2N1bWVudDo6c2hpZnRNYXJrZXJzKE5vZGUgKm5vZGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCBp
bnQgZGVsdGEsIERvY3VtZW4KICAgICAKICAgICBib29sIGRvY0RpcnR5ID0gZmFsc2U7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgIT0gbWFya2Vycy5zaXplKCk7ICsraSkgewotICAgICAgICBE
b2N1bWVudE1hcmtlciAmbWFya2VyID0gbWFya2Vyc1tpXTsKKyAgICAgICAgRG9jdW1lbnRNYXJr
ZXImIG1hcmtlciA9IG1hcmtlcnNbaV07CiAgICAgICAgIGlmIChtYXJrZXIuc3RhcnRPZmZzZXQg
Pj0gc3RhcnRPZmZzZXQgJiYgKG1hcmtlclR5cGUgPT0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtl
cnMgfHwgbWFya2VyLnR5cGUgPT0gbWFya2VyVHlwZSkpIHsKICAgICAgICAgICAgIEFTU0VSVCgo
aW50KW1hcmtlci5zdGFydE9mZnNldCArIGRlbHRhID49IDApOwogICAgICAgICAgICAgbWFya2Vy
LnN0YXJ0T2Zmc2V0ICs9IGRlbHRhOwpAQCAtNDI2Myw3ICs0MjYxLDcgQEAgdm9pZCBEb2N1bWVu
dDo6c2V0TWFya2Vyc0FjdGl2ZShOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5z
aWduZWQgZW5kT2YKIAogICAgIGJvb2wgZG9jRGlydHkgPSBmYWxzZTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSAhPSBtYXJrZXJzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIERvY3VtZW50TWFy
a2VyICZtYXJrZXIgPSBtYXJrZXJzW2ldOworICAgICAgICBEb2N1bWVudE1hcmtlciYgbWFya2Vy
ID0gbWFya2Vyc1tpXTsKIAogICAgICAgICAvLyBNYXJrZXJzIGFyZSByZXR1cm5lZCBpbiBvcmRl
ciwgc28gc3RvcCBpZiB3ZSBhcmUgbm93IHBhc3QgdGhlIHNwZWNpZmllZCByYW5nZS4KICAgICAg
ICAgaWYgKG1hcmtlci5zdGFydE9mZnNldCA+PSBlbmRPZmZzZXQpCkBAIC00MzI1LDIxICs0MzIz
LDIxIEBAIGJvb2wgRG9jdW1lbnQ6OmluRGVzaWduTW9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1Eb2N1bWVudCAqRG9jdW1lbnQ6OnBhcmVudERvY3VtZW50KCkgY29uc3QKK0Rv
Y3VtZW50KiBEb2N1bWVudDo6cGFyZW50RG9jdW1lbnQoKSBjb25zdAogewotICAgIEZyYW1lICpj
aGlsZFBhcnQgPSBmcmFtZSgpOworICAgIEZyYW1lKiBjaGlsZFBhcnQgPSBmcmFtZSgpOwogICAg
IGlmICghY2hpbGRQYXJ0KQogICAgICAgICByZXR1cm4gMDsKLSAgICBGcmFtZSAqcGFyZW50ID0g
Y2hpbGRQYXJ0LT50cmVlKCktPnBhcmVudCgpOworICAgIEZyYW1lKiBwYXJlbnQgPSBjaGlsZFBh
cnQtPnRyZWUoKS0+cGFyZW50KCk7CiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybiAw
OwogICAgIHJldHVybiBwYXJlbnQtPmRvY3VtZW50KCk7CiB9CiAKLURvY3VtZW50ICpEb2N1bWVu
dDo6dG9wRG9jdW1lbnQoKSBjb25zdAorRG9jdW1lbnQqIERvY3VtZW50Ojp0b3BEb2N1bWVudCgp
IGNvbnN0CiB7Ci0gICAgRG9jdW1lbnQgKmRvYyA9IGNvbnN0X2Nhc3Q8RG9jdW1lbnQgKj4odGhp
cyk7Ci0gICAgRWxlbWVudCAqZWxlbWVudDsKKyAgICBEb2N1bWVudCogZG9jID0gY29uc3RfY2Fz
dDxEb2N1bWVudCAqPih0aGlzKTsKKyAgICBFbGVtZW50KiBlbGVtZW50OwogICAgIHdoaWxlICgo
ZWxlbWVudCA9IGRvYy0+b3duZXJFbGVtZW50KCkpKQogICAgICAgICBkb2MgPSBlbGVtZW50LT5k
b2N1bWVudCgpOwogICAgIApAQCAtNDY1NCw3ICs0NjUyLDcgQEAgdW5zaWduZWQgRm9ybUVsZW1l
bnRLZXlIYXNoOjpoYXNoKGNvbnN0IEZvcm1FbGVtZW50S2V5JiBrKQogICAgIC8vIHRoaXMgYXZv
aWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0
bwogICAgIC8vIHNpZ25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0
aGF0IGlzIGxpa2VseSB0byBiZQogICAgIC8vIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hl
biB0aGUgbG93IGJpdHMgYXJlIG1hc2tlZAotICAgIGlmIChoYXNoID09IDApCisgICAgaWYgKCFo
YXNoKQogICAgICAgICBoYXNoID0gMHg4MDAwMDAwMDsKIAogICAgIHJldHVybiBoYXNoOwpAQCAt
NDY4OCw3ICs0Njg2LDcgQEAgYm9vbCBEb2N1bWVudDo6dXNlU2VjdXJlS2V5Ym9hcmRFbnRyeVdo
ZW5BY3RpdmUoKSBjb25zdAogdm9pZCBEb2N1bWVudDo6aW5pdFNlY3VyaXR5Q29udGV4dCgpCiB7
CiAgICAgaWYgKHNlY3VyaXR5T3JpZ2luKCkgJiYgIXNlY3VyaXR5T3JpZ2luKCktPmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuOyAgLy8gbV9zZWN1cml0eU9yaWdpbiBoYXMgYWxyZWFkeSBiZWVu
IGluaXRpYWxpemVkLgorICAgICAgICByZXR1cm47IC8vIG1fc2VjdXJpdHlPcmlnaW4gaGFzIGFs
cmVhZHkgYmVlbiBpbml0aWFsaXplZC4KIAogICAgIGlmICghbV9mcmFtZSkgewogICAgICAgICAv
LyBObyBzb3VyY2UgZm9yIGEgc2VjdXJpdHkgY29udGV4dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ2M2NlYzM2NjZm
NTIyYzEzMmM4ZDY2M2IxNWFiY2QxYjk5NDlkODQuLmQ5YmFhOTBhZGY1OGZlYTczMjYyZTQ4Yzhk
MDY4NTgwZDM4MjZhZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjgsMTAgKzI4LDEwIEBACiAKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIkNoZWNrZWRSYWRpb0J1dHRvbnMuaCIK
LSNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5jbHVkZSAiQ29sbGVjdGlvbkNhY2hlLmgi
CiAjaW5jbHVkZSAiQ29sbGVjdGlvblR5cGUuaCIKICNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNDgsMTAwICs0
OCwxMDAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgQXN5bmNTY3JpcHRS
dW5uZXI7Ci0gICAgY2xhc3MgQXR0cjsKLSAgICBjbGFzcyBBWE9iamVjdENhY2hlOwotICAgIGNs
YXNzIENEQVRBU2VjdGlvbjsKLSAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0OwotICAgIGNs
YXNzIENhY2hlZFNjcmlwdDsKLSAgICBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0OwotICAg
IGNsYXNzIENoYXJhY3RlckRhdGE7Ci0gICAgY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKLSAg
ICBjbGFzcyBDU1NTdHlsZVNlbGVjdG9yOwotICAgIGNsYXNzIENTU1N0eWxlU2hlZXQ7Ci0gICAg
Y2xhc3MgQ29tbWVudDsKLSAgICBjbGFzcyBEYXRhYmFzZTsKLSAgICBjbGFzcyBET01JbXBsZW1l
bnRhdGlvbjsKLSAgICBjbGFzcyBET01TZWxlY3Rpb247Ci0gICAgY2xhc3MgRE9NV2luZG93Owot
ICAgIGNsYXNzIERhdGFiYXNlVGhyZWFkOwotICAgIGNsYXNzIERvY0xvYWRlcjsKLSAgICBjbGFz
cyBEb2N1bWVudEZyYWdtZW50OwotICAgIGNsYXNzIERvY3VtZW50VHlwZTsKLSAgICBjbGFzcyBE
b2N1bWVudFdlYWtSZWZlcmVuY2U7Ci0gICAgY2xhc3MgRWRpdGluZ1RleHQ7Ci0gICAgY2xhc3Mg
RWxlbWVudDsKLSAgICBjbGFzcyBFbnRpdHlSZWZlcmVuY2U7Ci0gICAgY2xhc3MgRXZlbnQ7Ci0g
ICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKLSAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBGcmFt
ZVZpZXc7Ci0gICAgY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7Ci0gICAgY2xhc3MgSFRNTENvbGxl
Y3Rpb247Ci0gICAgY2xhc3MgSFRNTEFsbENvbGxlY3Rpb247Ci0gICAgY2xhc3MgSFRNTERvY3Vt
ZW50OwotICAgIGNsYXNzIEhUTUxFbGVtZW50OwotICAgIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsK
LSAgICBjbGFzcyBIVE1MRnJhbWVPd25lckVsZW1lbnQ7Ci0gICAgY2xhc3MgSFRNTEhlYWRFbGVt
ZW50OwotICAgIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7Ci0gICAgY2xhc3MgSFRNTE1hcEVsZW1l
bnQ7Ci0gICAgY2xhc3MgSGlzdG9yeUl0ZW07Ci0gICAgY2xhc3MgSGl0VGVzdFJlcXVlc3Q7Ci0g
ICAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKLSAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OwotICAgIGNsYXNzIEludFBvaW50OwotICAgIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKLSAgICBj
bGFzcyBKU05vZGU7Ci0gICAgY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwotICAgIGNsYXNz
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7Ci0gICAgY2xhc3MgTm9kZUZpbHRlcjsKLSAg
ICBjbGFzcyBOb2RlSXRlcmF0b3I7Ci0gICAgY2xhc3MgUGFnZTsKLSAgICBjbGFzcyBQbGF0Zm9y
bU1vdXNlRXZlbnQ7Ci0gICAgY2xhc3MgUHJvY2Vzc2luZ0luc3RydWN0aW9uOwotICAgIGNsYXNz
IFJhbmdlOwotICAgIGNsYXNzIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyOwotICAgIGNsYXNzIFJl
bmRlckFyZW5hOwotICAgIGNsYXNzIFJlbmRlclZpZXc7Ci0gICAgY2xhc3MgU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyOwotICAgIGNsYXNzIFNjcmlwdEVsZW1lbnREYXRhOwotICAgIGNsYXNzIFNl
Y3VyaXR5T3JpZ2luOwotICAgIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKLSAgICBjbGFz
cyBTZWdtZW50ZWRTdHJpbmc7Ci0gICAgY2xhc3MgU2V0dGluZ3M7Ci0gICAgY2xhc3MgU3R5bGVT
aGVldDsKLSAgICBjbGFzcyBTdHlsZVNoZWV0TGlzdDsKLSAgICBjbGFzcyBUZXh0OwotICAgIGNs
YXNzIFRleHRSZXNvdXJjZURlY29kZXI7Ci0gICAgY2xhc3MgRG9jdW1lbnRQYXJzZXI7Ci0gICAg
Y2xhc3MgVHJlZVdhbGtlcjsKLSAgICBjbGFzcyBYTUxIdHRwUmVxdWVzdDsKK2NsYXNzIEFzeW5j
U2NyaXB0UnVubmVyOworY2xhc3MgQXR0cjsKK2NsYXNzIEFYT2JqZWN0Q2FjaGU7CitjbGFzcyBD
REFUQVNlY3Rpb247CitjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0OworY2xhc3MgQ2FjaGVkU2Ny
aXB0OworY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKK2NsYXNzIENoYXJhY3RlckRhdGE7
CitjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOworY2xhc3MgQ1NTU3R5bGVTZWxlY3RvcjsKK2Ns
YXNzIENTU1N0eWxlU2hlZXQ7CitjbGFzcyBDb21tZW50OworY2xhc3MgRGF0YWJhc2U7CitjbGFz
cyBET01JbXBsZW1lbnRhdGlvbjsKK2NsYXNzIERPTVNlbGVjdGlvbjsKK2NsYXNzIERPTVdpbmRv
dzsKK2NsYXNzIERhdGFiYXNlVGhyZWFkOworY2xhc3MgRG9jTG9hZGVyOworY2xhc3MgRG9jdW1l
bnRGcmFnbWVudDsKK2NsYXNzIERvY3VtZW50VHlwZTsKK2NsYXNzIERvY3VtZW50V2Vha1JlZmVy
ZW5jZTsKK2NsYXNzIEVkaXRpbmdUZXh0OworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEVudGl0eVJl
ZmVyZW5jZTsKK2NsYXNzIEV2ZW50OworY2xhc3MgRXZlbnRMaXN0ZW5lcjsKK2NsYXNzIEZyYW1l
OworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CitjbGFzcyBIVE1M
Q29sbGVjdGlvbjsKK2NsYXNzIEhUTUxBbGxDb2xsZWN0aW9uOworY2xhc3MgSFRNTERvY3VtZW50
OworY2xhc3MgSFRNTEVsZW1lbnQ7CitjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CitjbGFzcyBIVE1M
RnJhbWVPd25lckVsZW1lbnQ7CitjbGFzcyBIVE1MSGVhZEVsZW1lbnQ7CitjbGFzcyBIVE1MSW5w
dXRFbGVtZW50OworY2xhc3MgSFRNTE1hcEVsZW1lbnQ7CitjbGFzcyBIaXN0b3J5SXRlbTsKK2Ns
YXNzIEhpdFRlc3RSZXF1ZXN0OworY2xhc3MgSGl0VGVzdFJlc3VsdDsKK2NsYXNzIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ7CitjbGFzcyBJbnRQb2ludDsKK2NsYXNzIERPTVdyYXBwZXJXb3JsZDsK
K2NsYXNzIEpTTm9kZTsKK2NsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKK2NsYXNzIE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CitjbGFzcyBOb2RlRmlsdGVyOworY2xhc3MgTm9kZUl0
ZXJhdG9yOworY2xhc3MgUGFnZTsKK2NsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKK2NsYXNzIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjsKK2NsYXNzIFJhbmdlOworY2xhc3MgUmVnaXN0ZXJlZEV2ZW50
TGlzdGVuZXI7CitjbGFzcyBSZW5kZXJBcmVuYTsKK2NsYXNzIFJlbmRlclZpZXc7CitjbGFzcyBT
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CitjbGFzcyBTY3JpcHRFbGVtZW50RGF0YTsKK2NsYXNz
IFNlY3VyaXR5T3JpZ2luOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOworY2xhc3MgU2Vn
bWVudGVkU3RyaW5nOworY2xhc3MgU2V0dGluZ3M7CitjbGFzcyBTdHlsZVNoZWV0OworY2xhc3Mg
U3R5bGVTaGVldExpc3Q7CitjbGFzcyBUZXh0OworY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsK
K2NsYXNzIERvY3VtZW50UGFyc2VyOworY2xhc3MgVHJlZVdhbGtlcjsKK2NsYXNzIFhNTEh0dHBS
ZXF1ZXN0OwogCiAjaWYgRU5BQkxFKFNWRykKLSAgICBjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lv
bnM7CitjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CiAjZW5kaWYKLSAgICAKKwogI2lmIEVO
QUJMRShYU0xUKQotICAgIGNsYXNzIFRyYW5zZm9ybVNvdXJjZTsKK2NsYXNzIFRyYW5zZm9ybVNv
dXJjZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFhCTCkKLSAgICBjbGFzcyBYQkxCaW5kaW5nTWFu
YWdlcjsKK2NsYXNzIFhCTEJpbmRpbmdNYW5hZ2VyOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoWFBB
VEgpCi0gICAgY2xhc3MgWFBhdGhFdmFsdWF0b3I7Ci0gICAgY2xhc3MgWFBhdGhFeHByZXNzaW9u
OwotICAgIGNsYXNzIFhQYXRoTlNSZXNvbHZlcjsKLSAgICBjbGFzcyBYUGF0aFJlc3VsdDsKK2Ns
YXNzIFhQYXRoRXZhbHVhdG9yOworY2xhc3MgWFBhdGhFeHByZXNzaW9uOworY2xhc3MgWFBhdGhO
U1Jlc29sdmVyOworY2xhc3MgWFBhdGhSZXN1bHQ7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKLSAgICBzdHJ1Y3QgRGFzaGJvYXJkUmVnaW9uVmFsdWU7CitzdHJ1Y3Qg
RGFzaGJvYXJkUmVnaW9uVmFsdWU7CiAjZW5kaWYKIAotICAgIHR5cGVkZWYgaW50IEV4Y2VwdGlv
bkNvZGU7Cit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBGb3JtRWxlbWVudEtl
eSB7CiBwdWJsaWM6CkBAIC04NTksOCArODU5LDggQEAgcHVibGljOgogICAgIFhCTEJpbmRpbmdN
YW5hZ2VyKiBiaW5kaW5nTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fYmluZGluZ01hbmFnZXIu
Z2V0KCk7IH0KICNlbmRpZgogCi0gICAgdm9pZCBpbmNET01UcmVlVmVyc2lvbigpIHsgKyttX2Rv
bXRyZWVfdmVyc2lvbjsgfQotICAgIHVuc2lnbmVkIGRvbVRyZWVWZXJzaW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9kb210cmVlX3ZlcnNpb247IH0KKyAgICB2b2lkIGluY0RPTVRyZWVWZXJzaW9uKCkg
eyArK21fZG9tVHJlZVZlcnNpb247IH0KKyAgICB1bnNpZ25lZCBkb21UcmVlVmVyc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZG9tVHJlZVZlcnNpb247IH0KIAogICAgIHZvaWQgc2V0RG9jVHlwZShQ
YXNzUmVmUHRyPERvY3VtZW50VHlwZT4pOwogCkBAIC0xMDcwLDEwICsxMDcwLDEwIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3dlbGxGb3JtZWQ7CiAKICAgICAvLyBEb2N1bWVudCBVUkxzLgotICAg
IEtVUkwgbV91cmw7ICAvLyBEb2N1bWVudC5VUkw6IFRoZSBVUkwgZnJvbSB3aGljaCB0aGlzIGRv
Y3VtZW50IHdhcyByZXRyaWV2ZWQuCi0gICAgS1VSTCBtX2Jhc2VVUkw7ICAvLyBOb2RlLmJhc2VV
Ukk6IFRoZSBVUkwgdG8gdXNlIHdoZW4gcmVzb2x2aW5nIHJlbGF0aXZlIFVSTHMuCi0gICAgS1VS
TCBtX2Jhc2VFbGVtZW50VVJMOyAgLy8gVGhlIFVSTCBzZXQgYnkgdGhlIDxiYXNlPiBlbGVtZW50
LgotICAgIEtVUkwgbV9jb29raWVVUkw7ICAvLyBUaGUgVVJMIHRvIHVzZSBmb3IgY29va2llIGFj
Y2Vzcy4KKyAgICBLVVJMIG1fdXJsOyAvLyBEb2N1bWVudC5VUkw6IFRoZSBVUkwgZnJvbSB3aGlj
aCB0aGlzIGRvY3VtZW50IHdhcyByZXRyaWV2ZWQuCisgICAgS1VSTCBtX2Jhc2VVUkw7IC8vIE5v
ZGUuYmFzZVVSSTogVGhlIFVSTCB0byB1c2Ugd2hlbiByZXNvbHZpbmcgcmVsYXRpdmUgVVJMcy4K
KyAgICBLVVJMIG1fYmFzZUVsZW1lbnRVUkw7IC8vIFRoZSBVUkwgc2V0IGJ5IHRoZSA8YmFzZT4g
ZWxlbWVudC4KKyAgICBLVVJMIG1fY29va2llVVJMOyAvLyBUaGUgVVJMIHRvIHVzZSBmb3IgY29v
a2llIGFjY2Vzcy4KICAgICBLVVJMIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXM7IC8vIFRoZSBwb2xp
Y3kgVVJMIGZvciB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcuCiAKICAgICAvLyBEb2N1bWVu
dC5kb2N1bWVudFVSSToKQEAgLTExMjQsNyArMTEyNCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PE5vZGU+IG1fYWN0aXZlTm9kZTsKICAgICBtdXRhYmxlIFJlZlB0cjxFbGVtZW50PiBtX2RvY3Vt
ZW50RWxlbWVudDsKIAotICAgIHVuc2lnbmVkIG1fZG9tdHJlZV92ZXJzaW9uOworICAgIHVuc2ln
bmVkIG1fZG9tVHJlZVZlcnNpb247CiAgICAgCiAgICAgSGFzaFNldDxOb2RlSXRlcmF0b3IqPiBt
X25vZGVJdGVyYXRvcnM7CiAgICAgSGFzaFNldDxSYW5nZSo+IG1fcmFuZ2VzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>