<?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>45469</bug_id>
          
          <creation_ts>2010-09-09 10:31:13 -0700</creation_ts>
          <short_desc>Add media element logging</short_desc>
          <delta_ts>2010-09-09 14:08:13 -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>Media</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>276555</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-09 10:31:13 -0700</bug_when>
    <thetext>HTMLMediaElement should WebCore&apos;s logging facilities to make debugging some types or problems easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276604</commentid>
    <comment_count>1</comment_count>
      <attachid>67067</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-09 11:14:28 -0700</bug_when>
    <thetext>Created attachment 67067
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276608</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-09 11:17:05 -0700</bug_when>
    <thetext>Attachment 67067 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/html/HTMLMediaElement.cpp:894:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276736</commentid>
    <comment_count>3</comment_count>
      <attachid>67067</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-09 14:00:22 -0700</bug_when>
    <thetext>Comment on attachment 67067
Proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=67067&amp;action=prettypatch

r=me as long as you fix the style issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276747</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-09 14:08:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67114</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67067</attachid>
            <date>2010-09-09 11:14:28 -0700</date>
            <delta_ts>2010-09-09 14:00:22 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_1.txt</filename>
            <type>text/plain</type>
            <size>26052</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzA5NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzMgQEAKKzIwMTAtMDktMDkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIG1lZGlhIGVsZW1lbnQgbG9nZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU0NjkKKworICAgICAgICBMb2cgaW50ZXJlc3RpbmcgcG9p
bnRzIGluIGEgbWVkaWEgZWxlbWVudCdzIGxpZmVjeWNsZS4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cmxGb3JMb2dnaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmJvb2xTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c2NoZWR1bGVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50Ojphc3luY0V2ZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpjYW5QbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
Ojpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVGb3JM
b2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVz
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzU2FmZVRvTG9hZFVSTCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3YWl0Rm9yU291cmNlQ2hhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVFcnJvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5jZWxQZW5kaW5nRXZlbnRzQW5k
Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE5ldHdv
cmtTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnJld2luZCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZXR1cm5Ub1JlYWx0aW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFkZFBsYXllZFJhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlZWspOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6ZmluaXNoU2Vlayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpzZXRQbGF5YmFja1JhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6c2V0V2Via2l0UHJlc2VydmVzUGl0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6c2V0QXV0b3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6c2V0UHJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
bGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldExvb3ApOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6c2V0Q29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6c2V0Vm9sdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNl
dE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRvZ2dsZVBsYXlT
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpiZWdpblNjcnViYmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjplbmRTY3J1YmJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJW
b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyTXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJEdXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllclBsYXliYWNrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2F3VW5zdXBwb3J0ZWRUcmFj
a3MpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJTaXpl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
clJlbmRlcmluZ01vZGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnVwZGF0ZVBsYXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
Ojp1c2VyQ2FuY2VsbGVkTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN1c3BlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVzdW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVZvbHVtZURpZENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllclByb3h5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDYW5TdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRTaG91bGREZWxheUxvYWRFdmVudCk6
CisKIDIwMTAtMDktMDkgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA2Njk4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFZp
ZGVvRWxlbWVudC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYURvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFFcnJvci5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgpA
QCAtNzgsNiArNzksMjggQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCisjaWYgIUxPR19ESVNBQkxFRAorc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nKGNv
bnN0IFN0cmluZyYgdXJsKQoreworICAgIHN0YXRpYyB1bnNpZ25lZCBtYXhpbXVtVVJMTGVuZ3Ro
Rm9yTG9nZ2luZyA9IDEyODsKKworICAgIGlmICh1cmwubGVuZ3RoKCkgPCBtYXhpbXVtVVJMTGVu
Z3RoRm9yTG9nZ2luZykKKyAgICAgICAgcmV0dXJuIHVybDsKKyAgICByZXR1cm4gdXJsLnN1YnN0
cmluZygwLCBtYXhpbXVtVVJMTGVuZ3RoRm9yTG9nZ2luZykgKyAiLi4uIjsKK30KKworc3RhdGlj
IGNvbnN0IGNoYXIgKmJvb2xTdHJpbmcoYm9vbCB2YWwpCit7CisgICAgcmV0dXJuIHZhbCA/ICJ0
cnVlIiA6ICJmYWxzZSI7Cit9CisjZW5kaWYKKworI2lmbmRlZiBMT0dfTUVESUFfRVZFTlRTCisv
LyBEZWZhdWx0IHRvIG5vdCBsb2dnaW5nIGV2ZW50cyBiZWNhdXNlIHNvIG1hbnkgYXJlIGdlbmVy
YXRlZCB0aGV5IGNhbiBvdmVyd2hlbG0gdGhlIHJlc3Qgb2YgCisvLyB0aGUgbG9nZ2luZy4KKyNk
ZWZpbmUgTE9HX01FRElBX0VWRU5UUyAwCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCkBAIC0zNjYsNiArMzg5LDkgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZU5leHRTb3VyYwogCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCiB7
CisjaWYgTE9HX01FRElBX0VWRU5UUworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6
OnNjaGVkdWxlRXZlbnQgLSBzY2hlZHVsaW5nICclcyciLCBldmVudE5hbWUuc3RyaW5nKCkuYXNj
aWkoKS5kYXRhKCkpOworI2VuZGlmCiAgICAgbV9wZW5kaW5nRXZlbnRzLmFwcGVuZChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIHRydWUpKTsKICAgICBpZiAoIW1fYXN5bmNFdmVudFRp
bWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fYXN5bmNFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKQEAgLTM4OCw2ICs0MTQsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmFzeW5jRXZlbnRU
aW1lckZpCiAgICAgbV9wZW5kaW5nRXZlbnRzLnN3YXAocGVuZGluZ0V2ZW50cyk7CiAgICAgdW5z
aWduZWQgY291bnQgPSBwZW5kaW5nRXZlbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIG5k
eCA9IDA7IG5keCA8IGNvdW50OyArK25keCkgeworI2lmIExPR19NRURJQV9FVkVOVFMKKyAgICAg
ICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6YXN5bmNFdmVudFRpbWVyRmlyZWQgLSBk
aXNwYXRjaGluZyAnJXMnIiwgcGVuZGluZ0V2ZW50c1tuZHhdLT50eXBlKCkuc3RyaW5nKCkuYXNj
aWkoKS5kYXRhKCkpOworI2VuZGlmCiAgICAgICAgIGlmIChwZW5kaW5nRXZlbnRzW25keF0tPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuY2FucGxheUV2ZW50KSB7CiAgICAgICAgICAgICBtX2Rpc3Bh
dGNoaW5nQ2FuUGxheUV2ZW50ID0gdHJ1ZTsKICAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQocGVu
ZGluZ0V2ZW50c1tuZHhdLnJlbGVhc2UoKSwgZWMpOwpAQCAtNDgwLDExICs1MDksMTUgQEAgU3Ry
aW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbgogICAgICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgIAorICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlU
eXBlKCVzKSAtPiAlcyIsIG1pbWVUeXBlLnV0ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgpLmRh
dGEoKSk7CisKICAgICByZXR1cm4gY2FuUGxheTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojpsb2FkKGJvb2wgaXNVc2VyR2VzdHVyZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgTE9H
KE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bG9hZChpc1VzZXJHZXN0dXJlIDogJXMpIiwgYm9v
bFN0cmluZyhpc1VzZXJHZXN0dXJlKSk7CisKICAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1
aXJlVXNlckdlc3R1cmVGb3JMb2FkUmVzdHJpY3Rpb24gJiYgIWlzVXNlckdlc3R1cmUpCiAgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgZWxzZSB7CkBAIC00OTYsNiArNTI5LDgg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKGJvb2wgaXNVc2VyRwogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnByZXBhcmVGb3JMb2FkKCkKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVk
aWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCIpOworCiAgICAgLy8gUGVyZm9ybSB0aGUgY2xlYW51
cCByZXF1aXJlZCBmb3IgdGhlIHJlc291cmNlIGxvYWQgYWxnb3JpdGhtIHRvIHJ1bi4KICAgICBz
dG9wUGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBAIC01NzksNiAr
NjE0LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkSW50ZXJuYWwoKQogCiB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UoKQogeworICAgIExPRyhNZWRpYSwg
IkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UiKTsKKwogICAgIGVudW0gTW9k
ZSB7IGF0dHJpYnV0ZSwgY2hpbGRyZW4gfTsKICAgICBNb2RlIG1vZGUgPSBhdHRyaWJ1dGU7CiAK
QEAgLTU5Nyw2ICs2MzQsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVz
b3VyCiAKICAgICAgICAgICAgIC8vIC4uLiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JL
X0VNUFRZLCBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMKICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRl
ID0gTkVUV09SS19FTVBUWTsKKworICAgICAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSwgbm90aGluZyB0byBsb2FkIik7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNjE3LDYgKzY1Niw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c2VsZWN0TWVkaWFSZXNvdXIKICAgICAgICAgS1VSTCBtZWRpYVVSTCA9IGdldE5v
bkVtcHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpOwogICAgICAgICBpZiAobWVkaWFVUkwuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICBub25lU3VwcG9ydGVkKCk7CisgICAgICAgICAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291cmNlLCBlbXB0eSAnc3JjJyIp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTYyNyw2ICs2NjcsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyCiAgICAgICAgIH0gZWxzZSAK
ICAgICAgICAgICAgIG5vbmVTdXBwb3J0ZWQoKTsKIAorICAgICAgICBMT0coTWVkaWEsICJIVE1M
TWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291cmNlLCAnc3JjJyBub3QgdXNlZCIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NTcsNiArNjk4LDggQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkUmVzb3VyY2UoY29ucwogewogICAgIEFTU0VSVChpc1NhZmVUb0xvYWRVUkwo
aW5pdGlhbFVSTCwgQ29tcGxhaW4pKTsKIAorICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1l
bnQ6OmxvYWRSZXNvdXJjZSglcywgJXMpIiwgdXJsRm9yTG9nZ2luZyhpbml0aWFsVVJMLnN0cmlu
ZygpKS51dGY4KCkuZGF0YSgpLCBjb250ZW50VHlwZS5yYXcoKS51dGY4KCkuZGF0YSgpKTsKKwog
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNjczLDYgKzcxNiw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bG9hZFJlc291cmNlKGNvbnMKIAogICAgIG1fY3VycmVudFNyYyA9IHVybDsKIAorICAgIExP
RyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSAtIG1fY3VycmVudFNyYyAt
PiAlcyIsIHVybEZvckxvZ2dpbmcobV9jdXJyZW50U3JjKS51dGY4KCkuZGF0YSgpKTsKKwogICAg
IGlmIChtX3NlbmRQcm9ncmVzc0V2ZW50cykgCiAgICAgICAgIHN0YXJ0UHJvZ3Jlc3NFdmVudFRp
bWVyKCk7CiAKQEAgLTY5Myw4ICs3MzgsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2Fk
UmVzb3VyY2UoY29ucwogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzU2FmZVRvTG9hZFVSTChj
b25zdCBLVVJMJiB1cmwsIEludmFsaWRTb3VyY2VBY3Rpb24gYWN0aW9uSWZJbnZhbGlkKQogewot
ICAgIGlmICghdXJsLmlzVmFsaWQoKSkKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkpIHsKKyAgICAg
ICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6aXNTYWZlVG9Mb2FkVVJMKCVzKSAtPiBG
QUxTRSBiZWNhdXNlIHVybCBpcyBpbnZhbGlkIiwgdXJsRm9yTG9nZ2luZyh1cmwuc3RyaW5nKCkp
LnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQogICAgIAog
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgRnJhbWVMb2FkZXIq
IGxvYWRlciA9IGZyYW1lID8gZnJhbWUtPmxvYWRlcigpIDogMDsKQEAgLTcwMyw2ICs3NTAsNyBA
QCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzU2FmZVRvTG9hZFVSTChjCiAgICAgaWYgKCFsb2Fk
ZXIgfHwgIVNlY3VyaXR5T3JpZ2luOjpjYW5EaXNwbGF5KHVybCwgU3RyaW5nKCksIGRvY3VtZW50
KCkpKSB7CiAgICAgICAgIGlmIChhY3Rpb25JZkludmFsaWQgPT0gQ29tcGxhaW4pCiAgICAgICAg
ICAgICBGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKGZyYW1lLCB1cmwuc3RyaW5n
KCkpOworICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojppc1NhZmVUb0xvYWRV
UkwoJXMpIC0+IEZBTFNFIHJlamVjdGVkIGJ5IFNlY3VyaXR5T3JpZ2luIiwgdXJsRm9yTG9nZ2lu
Zyh1cmwuc3RyaW5nKCkpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICAgIApAQCAtNzIyLDYgKzc3MCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3Rh
cnRQcm9ncmVzc0V2ZW4KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp3YWl0Rm9yU291cmNlQ2hh
bmdlKCkKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp3YWl0Rm9yU291cmNl
Q2hhbmdlIik7CisKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRTdGF0ZSA9
IFdhaXRpbmdGb3JTb3VyY2U7CiAKQEAgLTczNCw2ICs3ODQsOCBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OndhaXRGb3JTb3VyY2VDaGFuCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bm9uZVN1
cHBvcnRlZCgpCiB7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bm9uZVN1cHBv
cnRlZCIpOworCiAgICAgc3RvcFBlcmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBX
YWl0aW5nRm9yU291cmNlOwogICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAwOwpAQCAtNzY0LDYg
KzgxNiw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRlZCgpCiAKIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVFcnJvcihQYXNzUmVmUHRyPE1lZGlhRXJyb3I+
IGVycikKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZUVy
cm9yKCVkKSIsIHN0YXRpY19jYXN0PGludD4oZXJyLT5jb2RlKCkpKTsKKwogICAgIC8vIDEgLSBU
aGUgdXNlciBhZ2VudCBzaG91bGQgY2FuY2VsIHRoZSBmZXRjaGluZyBwcm9jZXNzLgogICAgIHN0
b3BQZXJpb2RpY1RpbWVycygpOwogICAgIG1fbG9hZFN0YXRlID0gV2FpdGluZ0ZvclNvdXJjZTsK
QEAgLTc4OSw2ICs4NDMsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lRXJy
b3IoCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2FuY2VsUGVuZGluZ0V2ZW50c0FuZENhbGxi
YWNrcygpCiB7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6Y2FuY2VsUGVuZGlu
Z0V2ZW50c0FuZENhbGxiYWNrcyIpOworCiAgICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFyKCk7CiAK
ICAgICBmb3IgKE5vZGUqIG5vZGUgPSBmaXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5u
ZXh0U2libGluZygpKSB7CkBAIC04MTYsNiArODcyLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllck5ldHdvcgogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE5ldHdvcmtT
dGF0ZShNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIHN0YXRlKQogeworICAgIExPRyhNZWRpYSwg
IkhUTUxNZWRpYUVsZW1lbnQ6OnNldE5ldHdvcmtTdGF0ZSglZCkgLSBjdXJyZW50IHN0YXRlIGlz
ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0ZSksIHN0YXRpY19jYXN0PGludD4obV9uZXR3b3Jr
U3RhdGUpKTsKKwogICAgIGlmIChzdGF0ZSA9PSBNZWRpYVBsYXllcjo6RW1wdHkpIHsKICAgICAg
ICAgLy8ganVzdCB1cGRhdGUgdGhlIGNhY2hlZCBzdGF0ZSBhbmQgbGVhdmUsIHdlIGNhbid0IGRv
IGFueXRoaW5nIAogICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE5FVFdPUktfRU1QVFk7CkBAIC04
MjksMTAgKzg4NywxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE5ldHdvcmtTdGF0ZShN
CiAgICAgICAgIC8vIDxzb3VyY2U+IGNoaWxkcmVuLCBzY2hlZHVsZSB0aGUgbmV4dCBvbmUKICAg
ICAgICAgaWYgKG1fcmVhZHlTdGF0ZSA8IEhBVkVfTUVUQURBVEEgJiYgbV9sb2FkU3RhdGUgPT0g
TG9hZGluZ0Zyb21Tb3VyY2VFbGVtZW50KSB7CiAgICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VO
b2RlLT5zY2hlZHVsZUVycm9yRXZlbnQoKTsKLSAgICAgICAgICAgIGlmIChoYXZlUG90ZW50aWFs
U291cmNlQ2hpbGQoKSkKKyAgICAgICAgICAgIGlmIChoYXZlUG90ZW50aWFsU291cmNlQ2hpbGQo
KSkgeworICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldE5l
dHdvcmtTdGF0ZSBzY2hlZHVsaW5nIG5leHQgPHNvdXJjZT4iKTsKICAgICAgICAgICAgICAgICBz
Y2hlZHVsZU5leHRTb3VyY2VDaGlsZCgpOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1l
ZGlhRWxlbWVudDo6c2V0TmV0d29ya1N0YXRlIG5vIG1vcmUgPHNvdXJjZT4gZWxlbWVudHMsIHdh
aXRpbmciKTsKICAgICAgICAgICAgICAgICB3YWl0Rm9yU291cmNlQ2hhbmdlKCk7CisgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtODg2LDYgKzk0OCw4
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZWFkeVMKIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHN0YXRl
KQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUoJWQp
IC0gY3VycmVudCBzdGF0ZSBpcyAlZCwiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRlKSwgc3RhdGlj
X2Nhc3Q8aW50PihtX3JlYWR5U3RhdGUpKTsKKwogICAgIC8vIFNldCAid2FzUG90ZW50aWFsbHlQ
bGF5aW5nIiBCRUZPUkUgdXBkYXRpbmcgbV9yZWFkeVN0YXRlLCBwb3RlbnRpYWxseVBsYXlpbmco
KSB1c2VzIGl0CiAgICAgYm9vbCB3YXNQb3RlbnRpYWxseVBsYXlpbmcgPSBwb3RlbnRpYWxseVBs
YXlpbmcoKTsKIApAQCAtOTk5LDE4ICsxMDYzLDIyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
cHJvZ3Jlc3NFdmVudFRpbWUKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXdpbmQoZmxvYXQg
dGltZURlbHRhKQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnJld2luZCgl
ZikiLCB0aW1lRGVsdGEpOworCiAgICAgRXhjZXB0aW9uQ29kZSBlOwogICAgIHNldEN1cnJlbnRU
aW1lKG1heChjdXJyZW50VGltZSgpIC0gdGltZURlbHRhLCBtaW5UaW1lU2Vla2FibGUoKSksIGUp
OwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJldHVyblRvUmVhbHRpbWUoKQogeworICAg
IExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnJldHVyblRvUmVhbHRpbWUiKTsKICAgICBF
eGNlcHRpb25Db2RlIGU7CiAgICAgc2V0Q3VycmVudFRpbWUobWF4VGltZVNlZWthYmxlKCksIGUp
OwogfSAgCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YWRkUGxheWVkUmFuZ2UoZmxvYXQgc3Rh
cnQsIGZsb2F0IGVuZCkKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjphZGRQ
bGF5ZWRSYW5nZSglZiwgJWYpIiwgc3RhcnQsIGVuZCk7CiAgICAgaWYgKCFtX3BsYXllZFRpbWVS
YW5nZXMpCiAgICAgICAgIG1fcGxheWVkVGltZVJhbmdlcyA9IFRpbWVSYW5nZXM6OmNyZWF0ZSgp
OwogICAgIG1fcGxheWVkVGltZVJhbmdlcy0+YWRkKHN0YXJ0LCBlbmQpOwpAQCAtMTAyMyw2ICsx
MDkxLDggQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzdXBwb3J0c1NhdmUoKSBjbwogICAgIAog
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrKGZsb2F0IHRpbWUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNlZWsoJWYpIiwgdGltZSk7
CisKICAgICAvLyA0LjguOS45IFNlZWtpbmcKIAogICAgIC8vIDEgLSBJZiB0aGUgbWVkaWEgZWxl
bWVudCdzIHJlYWR5U3RhdGUgaXMgSEFWRV9OT1RISU5HLCB0aGVuIHJhaXNlIGFuIElOVkFMSURf
U1RBVEVfRVJSIGV4Y2VwdGlvbi4KQEAgLTEwNzUsNiArMTE0NSw4IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c2VlayhmbG9hdCB0aW1lLCAKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpmaW5p
c2hTZWVrKCkKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpmaW5pc2hTZWVr
Iik7CisKICAgICAvLyA0LjguMTAuMTAgU2Vla2luZyBzdGVwIDEyCiAgICAgbV9zZWVraW5nID0g
ZmFsc2U7CiAKQEAgLTExNTksNiArMTIzMSw4IEBAIGZsb2F0IEhUTUxNZWRpYUVsZW1lbnQ6OnBs
YXliYWNrUmF0ZSgpIGMKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRQbGF5YmFja1JhdGUo
ZmxvYXQgcmF0ZSkKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZXRQbGF5
YmFja1JhdGUoJWYpIiwgcmF0ZSk7CisKICAgICBpZiAobV9wbGF5YmFja1JhdGUgIT0gcmF0ZSkg
ewogICAgICAgICBtX3BsYXliYWNrUmF0ZSA9IHJhdGU7CiAgICAgICAgIHNjaGVkdWxlRXZlbnQo
ZXZlbnROYW1lcygpLnJhdGVjaGFuZ2VFdmVudCk7CkBAIC0xMTc0LDYgKzEyNDgsOCBAQCBib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OndlYmtpdFByZXNlcnZlc1BpCiAKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0V2Via2l0UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKIHsKKyAg
ICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZXRXZWJraXRQcmVzZXJ2ZXNQaXRjaCgl
cykiLCBib29sU3RyaW5nKHByZXNlcnZlc1BpdGNoKSk7CisKICAgICBtX3dlYmtpdFByZXNlcnZl
c1BpdGNoID0gcHJlc2VydmVzUGl0Y2g7CiAgICAgCiAgICAgaWYgKCFtX3BsYXllcikKQEAgLTEx
OTcsNiArMTI3Myw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6YXV0b3BsYXkoKSBjb25zdAog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldEF1dG9wbGF5KGJvb2wgYikKIHsKKyAgICBMT0co
TWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZXRBdXRvcGxheSglcykiLCBib29sU3RyaW5nKGIp
KTsKICAgICBzZXRCb29sZWFuQXR0cmlidXRlKGF1dG9wbGF5QXR0ciwgYik7CiB9CiAKQEAgLTEy
MjAsMTEgKzEyOTcsMTQgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OnByZWxvYWQoKSBjb25z
dAogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWxvYWQoY29uc3QgU3RyaW5nJiBwcmVs
b2FkKQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWxvYWQoJXMp
IiwgcHJlbG9hZC51dGY4KCkuZGF0YSgpKTsKICAgICBzZXRBdHRyaWJ1dGUocHJlbG9hZEF0dHIs
IHByZWxvYWQpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkoYm9vbCBpc1VzZXJH
ZXN0dXJlKQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkoaXNVc2Vy
R2VzdHVyZSA6ICVzKSIsIGJvb2xTdHJpbmcoaXNVc2VyR2VzdHVyZSkpOworCiAgICAgaWYgKG1f
cmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNoYW5nZVJlc3RyaWN0aW9u
ICYmICFpc1VzZXJHZXN0dXJlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEyNDQsNiArMTMyNCw4
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheShib29sIGlzVXNlckcKIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRp
YUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCIpOworCiAgICAgLy8gNC44LjEwLjkuIFBsYXlpbmcgdGhl
IG1lZGlhIHJlc291cmNlCiAgICAgaWYgKCFtX3BsYXllciB8fCBtX25ldHdvcmtTdGF0ZSA9PSBO
RVRXT1JLX0VNUFRZKQogICAgICAgICBzY2hlZHVsZUxvYWQoKTsKQEAgLTEyNzEsNiArMTM1Myw4
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKCkKIAogdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpwYXVzZShib29sIGlzVXNlckdlc3R1cmUpCiB7CisgICAgTE9HKE1lZGlhLCAi
SFRNTE1lZGlhRWxlbWVudDo6cGF1c2UoaXNVc2VyR2VzdHVyZSA6ICVzKSIsIGJvb2xTdHJpbmco
aXNVc2VyR2VzdHVyZSkpOworCiAgICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJH
ZXN0dXJlRm9yUmF0ZUNoYW5nZVJlc3RyaWN0aW9uICYmICFpc1VzZXJHZXN0dXJlKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTEyODAsNiArMTM2NCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
cGF1c2UoYm9vbCBpc1VzZXIKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFs
KCkKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsIik7
CisKICAgICAvLyA0LjguMTAuOS4gUGxheWluZyB0aGUgbWVkaWEgcmVzb3VyY2UKICAgICBpZiAo
IW1fcGxheWVyIHx8IG1fbmV0d29ya1N0YXRlID09IE5FVFdPUktfRU1QVFkpCiAgICAgICAgIHNj
aGVkdWxlTG9hZCgpOwpAQCAtMTMwMiw2ICsxMzg4LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50
Ojpsb29wKCkgY29uc3QKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRMb29wKGJvb2wgYikK
IHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZXRMb29wKCVzKSIsIGJvb2xT
dHJpbmcoYikpOwogICAgIHNldEJvb2xlYW5BdHRyaWJ1dGUobG9vcEF0dHIsIGIpOwogfQogCkBA
IC0xMzE4LDYgKzE0MDUsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbnRyb2xzKCkgY29u
c3QKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9scyhib29sIGIpCiB7CisgICAg
TE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbHMoJXMpIiwgYm9vbFN0cmlu
ZyhiKSk7CiAgICAgc2V0Qm9vbGVhbkF0dHJpYnV0ZShjb250cm9sc0F0dHIsIGIpOwogfQogCkBA
IC0xMzI4LDYgKzE0MTYsOCBAQCBmbG9hdCBIVE1MTWVkaWFFbGVtZW50Ojp2b2x1bWUoKSBjb25z
dAogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZvbHVtZShmbG9hdCB2b2wsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRy
b2xzKCVmKSIsIHZvbCk7CisKICAgICBpZiAodm9sIDwgMC4wZiB8fCB2b2wgPiAxLjBmKSB7CiAg
ICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNDcsNiAr
MTQzNyw4IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6bXV0ZWQoKSBjb25zdAogCiB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnNldE11dGVkKGJvb2wgbXV0ZWQpCiB7CisgICAgTE9HKE1lZGlhLCAi
SFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoJXMpIiwgYm9vbFN0cmluZyhtdXRlZCkpOworCiAg
ICAgaWYgKG1fbXV0ZWQgIT0gbXV0ZWQpIHsKICAgICAgICAgbV9tdXRlZCA9IG11dGVkOwogICAg
ICAgICAvLyBBdm9pZCByZWN1cnNpb24gd2hlbiB0aGUgcGxheWVyIHJlcG9ydHMgdm9sdW1lIGNo
YW5nZXMuCkBAIC0xMzY0LDYgKzE0NTYsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE11
dGVkKGJvb2wgbXV0CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dG9nZ2xlUGxheVN0YXRlKCkK
IHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp0b2dnbGVQbGF5U3RhdGUgLSBj
YW5QbGF5KCkgaXMgJXMiLCBib29sU3RyaW5nKGNhblBsYXkoKSkpOworCiAgICAgLy8gV2UgY2Fu
IHNhZmVseSBjYWxsIHRoZSBpbnRlcm5hbCBwbGF5L3BhdXNlIG1ldGhvZHMsIHdoaWNoIGRvbid0
IGNoZWNrIHJlc3RyaWN0aW9ucywgYmVjYXVzZQogICAgIC8vIHRoaXMgbWV0aG9kIGlzIG9ubHkg
Y2FsbGVkIGZyb20gdGhlIGJ1aWx0LWluIG1lZGlhIGNvbnRyb2xsZXIKICAgICBpZiAoY2FuUGxh
eSgpKQpAQCAtMTM3NCw2ICsxNDY4LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0b2dnbGVQ
bGF5U3RhdGUoKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmJlZ2luU2NydWJiaW5nKCkKIHsK
KyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpiZWdpblNjcnViYmluZyAtIHBhdXNl
ZCgpIGlzICVzIiwgYm9vbFN0cmluZyhwYXVzZWQoKSkpOworCiAgICAgaWYgKCFwYXVzZWQoKSkg
ewogICAgICAgICBpZiAoZW5kZWQoKSkgewogICAgICAgICAgICAgLy8gQmVjYXVzZSBhIG1lZGlh
IGVsZW1lbnQgc3RheXMgaW4gbm9uLXBhdXNlZCBzdGF0ZSB3aGVuIGl0IHJlYWNoZXMgZW5kLCBw
bGF5YmFjayByZXN1bWVzIApAQCAtMTM5MSw2ICsxNDg3LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpiZWdpblNjcnViYmluZygpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kU2NydWJi
aW5nKCkKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpiZWdpblNjcnViYmlu
ZyAtIG1fcGF1c2VkSW50ZXJuYWwgaXMgJXMiLCBib29sU3RyaW5nKG1fcGF1c2VkSW50ZXJuYWwp
KTsKKwogICAgIGlmIChtX3BhdXNlZEludGVybmFsKQogICAgICAgICBzZXRQYXVzZWRJbnRlcm5h
bChmYWxzZSk7CiB9CkBAIC0xNDc3LDYgKzE1NzUsMTMgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50
OjpoYXZlUG90ZW50aWFsU291cgogCiBLVVJMIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRT
b3VyY2VDaGlsZChDb250ZW50VHlwZSAqY29udGVudFR5cGUsIEludmFsaWRTb3VyY2VBY3Rpb24g
YWN0aW9uSWZJbnZhbGlkKQogeworI2lmICFMT0dfRElTQUJMRUQKKyAgICAvLyBEb24ndCBsb2cg
aWYgdGhpcyB3YXMganVzdCBjYWxsZWQgdG8gZmluZCBvdXQgaWYgdGhlcmUgYXJlIGFueSB2YWxp
ZCA8c291cmNlPiBlbGVtZW50cy4KKyAgICBib29sIHNob3VsZExvZyA9IGFjdGlvbklmSW52YWxp
ZCAhPSBEb05vdGhpbmc7CisgICAgaWYgKHNob3VsZExvZykKKyAgICAgICAgTE9HKE1lZGlhLCAi
SFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKGNvbnRlbnRUeXBlIDogXCIl
c1wiKSIsIGNvbnRlbnRUeXBlID8gY29udGVudFR5cGUtPnJhdygpLnV0ZjgoKS5kYXRhKCkgOiAi
Iik7CisjZW5kaWYKKwogICAgIEtVUkwgbWVkaWFVUkw7CiAgICAgTm9kZSogbm9kZTsKICAgICBi
b29sIGxvb2tpbmdGb3JQcmV2aW91c05vZGUgPSBtX2N1cnJlbnRTb3VyY2VOb2RlOwpAQCAtMTQ5
NiwxNyArMTYwMSwyOSBAQCBLVVJMIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VD
CiAKICAgICAgICAgLy8gSWYgY2FuZGlkYXRlIGRvZXMgbm90IGhhdmUgYSBzcmMgYXR0cmlidXRl
LCBvciBpZiBpdHMgc3JjIGF0dHJpYnV0ZSdzIHZhbHVlIGlzIHRoZSBlbXB0eSBzdHJpbmcgLi4u
IGp1bXAgZG93biB0byB0aGUgZmFpbGVkIHN0ZXAgYmVsb3cKICAgICAgICAgbWVkaWFVUkwgPSBz
b3VyY2UtPmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpOworI2lmICFMT0dfRElTQUJM
RUQKKyAgICAgICAgaWYgKHNob3VsZExvZykKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxN
ZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCAtICdzcmMnIGlzICVzIiwgdXJsRm9y
TG9nZ2luZyhtZWRpYVVSTCkudXRmOCgpLmRhdGEoKSk7CisjZW5kaWYKICAgICAgICAgaWYgKG1l
ZGlhVVJMLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGdvdG8gY2hlY2tfYWdhaW47CiAgICAgICAg
IAogICAgICAgICBpZiAoc291cmNlLT5oYXNBdHRyaWJ1dGUobWVkaWFBdHRyKSkgewogICAgICAg
ICAgICAgTWVkaWFRdWVyeUV2YWx1YXRvciBzY3JlZW5FdmFsKCJzY3JlZW4iLCBkb2N1bWVudCgp
LT5mcmFtZSgpLCByZW5kZXJlcigpID8gcmVuZGVyZXIoKS0+c3R5bGUoKSA6IDApOwogICAgICAg
ICAgICAgUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEgPSBNZWRpYUxpc3Q6OmNyZWF0ZUFsbG93aW5n
RGVzY3JpcHRpb25TeW50YXgoc291cmNlLT5tZWRpYSgpKTsKKyNpZiAhTE9HX0RJU0FCTEVECisg
ICAgICAgICAgICBpZiAoc2hvdWxkTG9nKQorICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCAtICdtZWRpYScgaXMgJXMiLCBz
b3VyY2UtPm1lZGlhKCkudXRmOCgpLmRhdGEoKSk7CisjZW5kaWYKICAgICAgICAgICAgIGlmICgh
c2NyZWVuRXZhbC5ldmFsKG1lZGlhLmdldCgpKSkgCiAgICAgICAgICAgICAgICAgZ290byBjaGVj
a19hZ2FpbjsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChzb3VyY2UtPmhhc0F0dHJpYnV0ZSh0
eXBlQXR0cikpIHsKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgICAgICAgICBpZiAoc2hvdWxkTG9n
KQorICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5l
eHRTb3VyY2VDaGlsZCAtICd0eXBlJyBpcyAlcyIsIHNvdXJjZS0+dHlwZSgpLnV0ZjgoKS5kYXRh
KCkpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUo
Q29udGVudFR5cGUoc291cmNlLT50eXBlKCkpKSkKICAgICAgICAgICAgICAgICBnb3RvIGNoZWNr
X2FnYWluOwogICAgICAgICB9CkBAIC0xNTI4LDExICsxNjQ1LDE3IEBAIGNoZWNrX2FnYWluOgog
CiAgICAgaWYgKCFjYW5Vc2UpCiAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAwOworI2lm
ICFMT0dfRElTQUJMRUQKKyAgICBpZiAoc2hvdWxkTG9nKQorICAgICAgICBMT0coTWVkaWEsICJI
VE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQgLT4gJXMiLCBjYW5Vc2UgPyB1
cmxGb3JMb2dnaW5nKG1lZGlhVVJMLnN0cmluZygpKS51dGY4KCkuZGF0YSgpIDogIiIpOworI2Vu
ZGlmCiAgICAgcmV0dXJuIGNhblVzZSA/IG1lZGlhVVJMIDogS1VSTCgpOwogfQogCiB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewor
ICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5nZWQi
KTsKKwogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKIAogICAgIC8v
IEFsd2F5cyBjYWxsIHNjaGVkdWxlVGltZXVwZGF0ZUV2ZW50IHdoZW4gdGhlIG1lZGlhIGVuZ2lu
ZSByZXBvcnRzIGEgdGltZSBkaXNjb250aW51aXR5LCAKQEAgLTE1NjcsNiArMTY5MCw4IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJUaW1lQ2gKIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogeworICAgIExP
RyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZCIpOwor
CiAgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogICAgIGlmIChtX3Bs
YXllcikKICAgICAgICAgbV92b2x1bWUgPSBtX3BsYXllci0+dm9sdW1lKCk7CkBAIC0xNTc2LDYg
KzE3MDEsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVm9sdW1lCiAKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciop
CiB7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJNdXRlQ2hh
bmdlZCIpOworCiAgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogICAg
IGlmIChtX3BsYXllcikKICAgICAgICAgc2V0TXV0ZWQobV9wbGF5ZXItPm11dGVkKCkpOwpAQCAt
MTU4NCw2ICsxNzExLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllck11dGVD
aAogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRHVyYXRpb25DaGFuZ2VkKE1l
ZGlhUGxheWVyKikKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllckR1cmF0aW9uQ2hhbmdlZCIpOworCiAgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJD
YWxsYmFjaygpOwogICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLmR1cmF0aW9uY2hhbmdl
RXZlbnQpOwogICAgIGlmIChyZW5kZXJlcigpKQpAQCAtMTU5Myw2ICsxNzIyLDggQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckR1cmF0aQogCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyUmF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogeworICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmF0ZUNoYW5nZWQiKTsKKwogICAgIGJl
Z2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKICAgICAvLyBTdGFzaCB0aGUgcmF0
ZSBpbiBjYXNlIHRoZSBvbmUgd2UgdHJpZWQgdG8gc2V0IGlzbid0IHdoYXQgdGhlIGVuZ2luZSBp
cwogICAgIC8vIHVzaW5nIChlZy4gaXQgY2FuJ3QgaGFuZGxlIHRoZSByYXRlIHdlIHNldCkKQEAg
LTE2MDIsNiArMTczMyw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSYXRl
Q2gKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclBsYXliYWNrU3RhdGVDaGFu
Z2VkKE1lZGlhUGxheWVyKikKIHsKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVBsYXllclBsYXliYWNrU3RhdGVDaGFuZ2VkIik7CisKICAgICBpZiAoIW1fcGxheWVyKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTE2MTUsNiArMTc0OCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJQbGF5YmEKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllclNhd1Vuc3VwcG9ydGVkVHJhY2tzKE1lZGlhUGxheWVyKikKIHsKKyAgICBMT0coTWVkaWEs
ICJIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNhd1Vuc3VwcG9ydGVkVHJhY2tzIik7CisK
ICAgICAvLyBUaGUgTWVkaWFQbGF5ZXIgY2FtZSBhY3Jvc3MgY29udGVudCBpdCBjYW5ub3QgY29t
cGxldGVseSBoYW5kbGUuCiAgICAgLy8gVGhpcyBpcyBub3JtYWxseSBhY2NlcHRhYmxlIGV4Y2Vw
dCB3aGVuIHdlIGFyZSBpbiBhIHN0YW5kYWxvbmUKICAgICAvLyBNZWRpYURvY3VtZW50LiBJZiBz
bywgdGVsbCB0aGUgZG9jdW1lbnQgd2hhdCBoYXMgaGFwcGVuZWQuCkBAIC0xNjM2LDYgKzE3NzEs
OCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVwYWluCiAKIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJTaXplQ2hhbmdlZChNZWRpYVBsYXllciopCiB7Cisg
ICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJTaXplQ2hhbmdlZCIp
OworCiAgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogICAgIGlmIChy
ZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwpAQCAt
MTY1NCw2ICsxNzkxLDggQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlbmRl
cgogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQiKTsKKwogICAgIC8vIEtpY2sgb2ZmIGEgZmFr
ZSByZWNhbGNTdHlsZSB0aGF0IHdpbGwgdXBkYXRlIHRoZSBjb21wb3NpdGluZyB0cmVlLgogICAg
IHNldE5lZWRzU3R5bGVSZWNhbGMoU3ludGhldGljU3R5bGVDaGFuZ2UpOwogfQpAQCAtMTc4OSw2
ICsxOTI4LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUoKQogICAg
IGJvb2wgc2hvdWxkQmVQbGF5aW5nID0gcG90ZW50aWFsbHlQbGF5aW5nKCk7CiAgICAgYm9vbCBw
bGF5ZXJQYXVzZWQgPSBtX3BsYXllci0+cGF1c2VkKCk7CiAKKyAgICBMT0coTWVkaWEsICJIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUgLSBzaG91bGRCZVBsYXlpbmcgPSAlcywgcGxh
eWVyUGF1c2VkID0gJXMiLCAKKyAgICAgICAgYm9vbFN0cmluZyhzaG91bGRCZVBsYXlpbmcpLCBi
b29sU3RyaW5nKHBsYXllclBhdXNlZCkpOworCiAgICAgaWYgKHNob3VsZEJlUGxheWluZykgewog
ICAgICAgICBzZXREaXNwbGF5TW9kZShWaWRlbyk7CiAKQEAgLTE4MzQsNiArMTk3Niw4IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c3RvcFBlcmlvZGljVGltZXIKIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiB7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlh
RWxlbWVudDo6dXNlckNhbmNlbGxlZExvYWQiKTsKKwogICAgIGlmIChtX25ldHdvcmtTdGF0ZSA9
PSBORVRXT1JLX0VNUFRZIHx8IG1fY29tcGxldGVseUxvYWRlZCkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0xODc5LDExICsyMDIzLDE0IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6Y2FuU3VzcGVu
ZCgpIGNvbnMKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKIHsKKyAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpzdG9wIik7CiAgICAgc3VzcGVuZCgpOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnN1c3BlbmQoKQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRp
YUVsZW1lbnQ6OnN1c3BlbmQiKTsKKwogICAgIGlmIChtX2lzRnVsbHNjcmVlbikKICAgICAgICAg
ZXhpdEZ1bGxzY3JlZW4oKTsKIApAQCAtMTkwMiw2ICsyMDQ5LDggQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzdXNwZW5kKCkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUoKQogewor
ICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnJlc3VtZSIpOworCiAgICAgbV9pbkFj
dGl2ZURvY3VtZW50ID0gdHJ1ZTsKICAgICBzZXRQYXVzZWRJbnRlcm5hbChmYWxzZSk7CiAKQEAg
LTE5MjIsMTEgKzIwNzEsMTQgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNQZW5kaW5nQWN0
aXZpdAogewogICAgIC8vIFJldHVybiB0cnVlIHdoZW4gd2UgaGF2ZSBwZW5kaW5nIGV2ZW50cyBz
byB3ZSBjYW4ndCBmaXJlIGV2ZW50cyBhZnRlciB0aGUgSlMgCiAgICAgLy8gb2JqZWN0IGdldHMg
Y29sbGVjdGVkLgotICAgIHJldHVybiBtX3BlbmRpbmdFdmVudHMuc2l6ZSgpOworICAgIGJvb2wg
cGVuZGluZyA9IG1fcGVuZGluZ0V2ZW50cy5zaXplKCk7CisgICAgTE9HKE1lZGlhLCAiSFRNTE1l
ZGlhRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5IC0+ICVzIiwgYm9vbFN0cmluZyhwZW5kaW5n
KSk7CisgICAgcmV0dXJuIHBlbmRpbmc7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVk
aWFWb2x1bWVEaWRDaGFuZ2UoKQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6
Om1lZGlhVm9sdW1lRGlkQ2hhbmdlIik7CiAgICAgdXBkYXRlVm9sdW1lKCk7CiB9CiAKQEAgLTIw
MzgsNiArMjE5MCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5ZXIK
ICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuOwogCisgICAgTE9HKE1lZGlhLCAiSFRN
TE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5ZXJQcm94eSIpOworCiAgICAgS1VSTCB1cmw7
CiAgICAgVmVjdG9yPFN0cmluZz4gcGFyYW1OYW1lczsKICAgICBWZWN0b3I8U3RyaW5nPiBwYXJh
bVZhbHVlczsKQEAgLTIwNjgsNiArMjIyMiw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlV2lkZ2V0KGJvb2wKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4o
KQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbiIp
OworCiAgICAgQVNTRVJUKCFtX2lzRnVsbHNjcmVlbik7CiAgICAgbV9pc0Z1bGxzY3JlZW4gPSB0
cnVlOwogICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPnBhZ2UoKSkgewpAQCAtMjA3
OCw2ICsyMjM0LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oKQog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKCkKIHsKKyAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbiIpOworCiAgICAgQVNTRVJUKG1f
aXNGdWxsc2NyZWVuKTsKICAgICBtX2lzRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgIGlmIChkb2N1
bWVudCgpICYmIGRvY3VtZW50KCktPnBhZ2UoKSkgewpAQCAtMjExMCw2ICsyMjY4LDggQEAgYm9v
bCBIVE1MTWVkaWFFbGVtZW50OjpjbG9zZWRDYXB0aW9uc1ZpcwogCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcHRpb25WaXNpYmxl
KQogeworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldENsb3NlZENhcHRpb25z
VmlzaWJsZSglcykiLCBib29sU3RyaW5nKGNsb3NlZENhcHRpb25WaXNpYmxlKSk7CisKICAgICBp
ZiAoIW1fcGxheWVyIHx8IWhhc0Nsb3NlZENhcHRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMjEzNyw2ICsyMjk3LDggQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRIYXNDbG9z
ZWRDYQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ2FuU3RhcnQoKQogeworICAgIExP
RyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ2FuU3RhcnQiKTsKKwogICAgIEFTU0VS
VChtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCk7CiAgICAgbV9pc1dhaXRpbmdVbnRpbE1l
ZGlhQ2FuU3RhcnQgPSBmYWxzZTsKICAgICBsb2FkSW50ZXJuYWwoKTsKQEAgLTIxNjYsNiArMjMy
OCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0U2hvdWxkRGVsYXlMb2EKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAorICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNo
b3VsZERlbGF5TG9hZEV2ZW50KCVzKSIsIGJvb2xTdHJpbmcoc2hvdWxkRGVsYXkpKTsKKwogICAg
IG1fc2hvdWxkRGVsYXlMb2FkRXZlbnQgPSBzaG91bGREZWxheTsKICAgICBtX2lzV2FpdGluZ1Rv
RGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCA9IGZhbHNlOwogICAgIGlmIChzaG91bGREZWxh
eSkK
</data>
<flag name="review"
          id="56264"
          type_id="1"
          status="+"
          setter="cmarrin"
    />
          </attachment>
      

    </bug>

</bugzilla>