<?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>156468</bug_id>
          
          <creation_ts>2016-04-11 10:48:12 -0700</creation_ts>
          <short_desc>Merge AttributedDOMTokenList into DOMTokenList</short_desc>
          <delta_ts>2016-04-11 11:49:09 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1182730</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 10:48:12 -0700</bug_when>
    <thetext>Merge AttributedDOMTokenList into AttributeTokenList to simplify the code. DOMTokenList is not constructible and AttributedDOMTokenList is its only constructible subclass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182731</commentid>
    <comment_count>1</comment_count>
      <attachid>276157</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 10:51:02 -0700</bug_when>
    <thetext>Created attachment 276157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182733</commentid>
    <comment_count>2</comment_count>
      <attachid>276157</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-11 10:57:36 -0700</bug_when>
    <thetext>Comment on attachment 276157
Patch

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

&gt; Source/WebCore/html/DOMTokenList.cpp:203
&gt; +    // Do not reset the DOMTokenList value if the attribute value was changed by us.

Why don&apos;t we assert that m_element is non-null.

&gt; Source/WebCore/html/DOMTokenList.cpp:212
&gt; +    m_cachedValue = nullAtom;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182734</commentid>
    <comment_count>3</comment_count>
      <attachid>276157</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 10:58:55 -0700</bug_when>
    <thetext>Comment on attachment 276157
Patch

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

&gt;&gt; Source/WebCore/html/DOMTokenList.cpp:203
&gt;&gt; +    // Do not reset the DOMTokenList value if the attribute value was changed by us.
&gt; 
&gt; Why don&apos;t we assert that m_element is non-null.

because m_element is a reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182736</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-11 11:12:05 -0700</bug_when>
    <thetext>Sorry, I meant to say attributeName.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182739</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 11:19:28 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Sorry, I meant to say attributeName.

attributeName is passed to the constructor and is a QualifiedName, stored as m_attributeName.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182749</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-11 11:47:43 -0700</bug_when>
    <thetext>Oh sorry, I misread your patch. I thought we had two constructors but we don&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182750</commentid>
    <comment_count>7</comment_count>
      <attachid>276157</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 11:49:06 -0700</bug_when>
    <thetext>Comment on attachment 276157
Patch

Clearing flags on attachment: 276157

Committed r199298: &lt;http://trac.webkit.org/changeset/199298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182752</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 11:49:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276157</attachid>
            <date>2016-04-11 10:51:02 -0700</date>
            <delta_ts>2016-04-11 11:49:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156468-20160411105111.patch</filename>
            <type>text/plain</type>
            <size>25108</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFmZjVmNDQ4NDE3YTc1
ZjRkNTQ4ZjE4MjFhYTE2ZGFlODU1NGM3NC4uODUxZmNkZDcxMzg5N2JhN2VkNGIzYjkxMTNkNzM3
YWJjYzQwMmY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDE2LTA0LTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTWVyZ2UgQXR0cmlidXRlZERP
TVRva2VuTGlzdCBpbnRvIERPTVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWVyZ2UgQXR0cmlidXRlZERPTVRva2VuTGlzdCBpbnRvIERP
TVRva2VuTGlzdCB0byBzaW1wbGlmeSB0aGUgY29kZS4KKyAgICAgICAgRE9NVG9rZW5MaXN0IGlz
IG5vdCBjb25zdHJ1Y3RpYmxlIGFuZCBBdHRyaWJ1dGVkRE9NVG9rZW5MaXN0IGlzIGl0cworICAg
ICAgICBvbmx5IGNvbnN0cnVjdGlibGUgc3ViY2xhc3MgYWZ0ZXIgcjE5NjEyMy4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpjbGFzc0xpc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6Y2xhc3NMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2V0Q2xhc3NMaXN0KToKKyAgICAgICAgKiBodG1sL0F0
dHJpYnV0ZURPTVRva2VuTGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9BdHRyaWJ1
dGVET01Ub2tlbkxpc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OkRPTVRva2VuTGlzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OmF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UpOgorICAg
ICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxp
c3Q6OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OmRlcmVmKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6ZWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01Ub2tlbkxpc3Q6On5ET01Ub2tlbkxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
RE9NVG9rZW5MaXN0Ojp1cGRhdGVBZnRlclRva2VuQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNo
b3JFbGVtZW50OjpyZWxMaXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCk6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6c2l6ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TExpbmtFbGVtZW50OjpyZWxMaXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE91dHB1dEVsZW1lbnQ6Omh0bWxGb3IpOgorICAgICAgICAqIGh0bWwvSFRNTE91dHB1
dEVsZW1lbnQuaDoKKworMjAxNi0wNC0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCiAgICAgICAgIERPTVRva2VuTGlzdC5jb250YWlucygpIHNob3VsZCBub3QgdGhyb3cKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjQ1MwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGY4ZGE0ZjMwMmI2MDQ3MWExNmE3MGY2NTU1MjllMzE3NDdi
Y2FmNmUuLjA4MzRkNTVkNDg0NGY4N2M4YmNlMWVlYmRkYTI0NDY4NDcxOTlhMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xNjA5LDcgKzE2MDksNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5jcHAKIAot
ICAgIGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcAogICAgIGh0bWwvQXV0b2ZpbGwuY3Bw
CiAgICAgaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcAogICAgIGh0bWwvQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2NWY2Mjg2YjYzNDlkMmY5NDc1OWUyYTNiNGUwMzcwMmUyOTdi
MDBjLi41OTRjYTgzOGM4ZTEwYmNkYzNiMjEyNTIyMjljMDM4YmIwMjYyNmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzI4
LDggKzE3MjgsNiBAQAogCQk0NUJBQzJCMDEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDVCQUMyQUYxMzYw
QkJBQjAwNURBMjU4IC8qIEljb25VUkwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0NUZFQTVDRjE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUZFQTVD
RDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgKi87IH07CiAJCTQ1RkVBNUQwMTU2RERF
OEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2MjMzRUVFMUJB
MEYxODcwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MjMzRUVEMUJBMEYxN0EwMDBFQkVCQiAv
KiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCAqLzsgfTsKLQkJNDYyMzNFRUYxQkEwRjE4QjAwMEVC
RUJCIC8qIEF0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjIzM0VFQzFCQTBGMTdBMDAwRUJFQkIgLyogQXR0cmli
dXRlRE9NVG9rZW5MaXN0LmNwcCAqLzsgfTsKIAkJNDYzNDU5MkMxQUMyMjcxMDAwRUNCNzFDIC8q
IFBvd2VyT2JzZXJ2ZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMu
Y3BwICovOyB9OwogCQk0NjNFQjYyMjFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNFQjYy
MDFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi87IH07CiAJCTQ2M0VCNjIz
MUI4Nzg5RTAwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNFQjYyMTFCODc4OUNCMDA5NkVENTEgLyogVGFn
Q29sbGVjdGlvbi5oICovOyB9OwpAQCAtOTI0OSw4ICs5MjQ3LDYgQEAKIAkJNDVCQUMyQUYxMzYw
QkJBQjAwNURBMjU4IC8qIEljb25VUkwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSWNvblVSTC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NUZFQTVDRDE1NkRE
RThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEZWNpbWFsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVGRUE1
Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGVjaW1hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NjIzM0VF
QzFCQTBGMTdBMDAwRUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEF0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHA7IHBh
dGggPSAuLi9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0NjIzM0VFRDFCQTBGMTdBMDAwRUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEF0dHJpYnV0ZURPTVRva2VuTGlz
dC5oOyBwYXRoID0gLi4vQXR0cmlidXRlRE9NVG9rZW5MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2VydmVyTWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvd2VyT2JzZXJ2ZXJN
YWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMDFCODc4OUNCMDA5
NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUYWdDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjExNjQsOCArMjExNjAsNiBAQAogCQlCMUFENEU3NzEzQTEyQTcyMDA4NDZC
MjcgLyogdHJhY2sgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAot
CQkJCTQ2MjMzRUVDMUJBMEYxN0EwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3Bw
ICovLAotCQkJCTQ2MjMzRUVEMUJBMEYxN0EwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxp
c3QuaCAqLywKIAkJCQlCRTg4RTBDQzE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFjay5jcHAg
Ki8sCiAJCQkJQkU4OEUwQ0QxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suaCAqLywKIAkJ
CQlCRTg4RTBDRTE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFjay5pZGwgKi8sCkBAIC0yNTAy
NCw3ICsyNTAxOCw2IEBACiAJCQkJQThDNEE4MEQwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QzRBODBCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTgxNERBMUM3MEUxMEQwMEJGODVBQyAvKiBBdHRyaWJ1
dGVDaGFuZ2VJbnZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQ2MjMzRUVFMUJBMEYx
ODcwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDdBMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDYyOUVBMzE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE1RkY3MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Jh
c2ljUHJvY2Vzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODk5Miw3ICsyODk4NSw2IEBA
CiAJCQkJMEZGRDRENjAxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MEUwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0
dHIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBODE0RDgxQzcwRTEwNTAwQkY4NUFDIC8qIEF0
dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0NjIzM0VF
RjFCQTBGMThCMDAwRUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZENjI5RUE0MTU0QjQ3MTYwMDA2RDAyNiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9y
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNUZGNjEyQjAyNjc2MDBDMUEzNTkgLyog
QXVkaW9CYXNpY1Byb2Nlc3Nvck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTVGRjgx
MkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDgyY2RlMmMwNDkwMzY2ZWU5Mzk2NmJiYzJhNzBjZGIwYzE1N2Q3
ZGUuLmIzODJkY2VkYTE2NDgwNjU2M2U3MzZhYjExNWQwNDFlYTllOGY4ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTI3NzAsNyArMjc3MCw3IEBAIERPTVRva2VuTGlzdCYgRWxlbWVudDo6
Y2xhc3NMaXN0KCkKIHsKICAgICBFbGVtZW50UmFyZURhdGEmIGRhdGEgPSBlbnN1cmVFbGVtZW50
UmFyZURhdGEoKTsKICAgICBpZiAoIWRhdGEuY2xhc3NMaXN0KCkpCi0gICAgICAgIGRhdGEuc2V0
Q2xhc3NMaXN0KHN0ZDo6bWFrZV91bmlxdWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhpcywg
SFRNTE5hbWVzOjpjbGFzc0F0dHIpKTsKKyAgICAgICAgZGF0YS5zZXRDbGFzc0xpc3Qoc3RkOjpt
YWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFtZXM6OmNsYXNzQXR0cikpOwog
ICAgIHJldHVybiAqZGF0YS5jbGFzc0xpc3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRS
YXJlRGF0YS5oCmluZGV4IDdkN2M3ZmNkM2EwMGFhZmMwMzllM2RmM2Y3MTc2MjE5MzZkMTdmYWUu
LjY0ZTY1ZDY3ZDA3NjEyYjhkMGM5MTcyODNhZTk0OTgyNzNjYjkzZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTIyLDcgKzIyLDcgQEAKICNpZm5kZWYgRWxlbWVudFJh
cmVEYXRhX2gKICNkZWZpbmUgRWxlbWVudFJhcmVEYXRhX2gKIAotI2luY2x1ZGUgIkF0dHJpYnV0
ZURPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRh
dGFzZXRET01TdHJpbmdNYXAuaCIKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKICNpbmNsdWRl
ICJOb2RlUmFyZURhdGEuaCIKQEAgLTkyLDggKzkyLDggQEAgcHVibGljOgogICAgIFJlbmRlclN0
eWxlKiBjb21wdXRlZFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlZFN0eWxlLmdldCgp
OyB9CiAgICAgdm9pZCBzZXRDb21wdXRlZFN0eWxlKFJlZjxSZW5kZXJTdHlsZT4mJiBjb21wdXRl
ZFN0eWxlKSB7IG1fY29tcHV0ZWRTdHlsZSA9IFdURk1vdmUoY29tcHV0ZWRTdHlsZSk7IH0KIAot
ICAgIEF0dHJpYnV0ZURPTVRva2VuTGlzdCogY2xhc3NMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc0xpc3QuZ2V0KCk7IH0KLSAgICB2b2lkIHNldENsYXNzTGlzdChzdGQ6OnVuaXF1ZV9wdHI8
QXR0cmlidXRlRE9NVG9rZW5MaXN0PiBjbGFzc0xpc3QpIHsgbV9jbGFzc0xpc3QgPSBXVEZNb3Zl
KGNsYXNzTGlzdCk7IH0KKyAgICBET01Ub2tlbkxpc3QqIGNsYXNzTGlzdCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xhc3NMaXN0LmdldCgpOyB9CisgICAgdm9pZCBzZXRDbGFzc0xpc3Qoc3RkOjp1bmlx
dWVfcHRyPERPTVRva2VuTGlzdD4gY2xhc3NMaXN0KSB7IG1fY2xhc3NMaXN0ID0gV1RGTW92ZShj
bGFzc0xpc3QpOyB9CiAKICAgICBEYXRhc2V0RE9NU3RyaW5nTWFwKiBkYXRhc2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9kYXRhc2V0LmdldCgpOyB9CiAgICAgdm9pZCBzZXREYXRhc2V0KHN0ZDo6dW5p
cXVlX3B0cjxEYXRhc2V0RE9NU3RyaW5nTWFwPiBkYXRhc2V0KSB7IG1fZGF0YXNldCA9IFdURk1v
dmUoZGF0YXNldCk7IH0KQEAgLTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxS
ZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFz
ZXRET01TdHJpbmdNYXA+IG1fZGF0YXNldDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRl
RE9NVG9rZW5MaXN0PiBtX2NsYXNzTGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NVG9rZW5M
aXN0PiBtX2NsYXNzTGlzdDsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290Owog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxOYW1lZE5vZGVNYXA+IG1fYXR0cmlidXRlTWFwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIxNjRkOGEzNDgzYjAwZmYwNDlkNGJlMTNkNjhiNjlmZTNlMjk1
NTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCIKLQotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFu
Z2UuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1BdHRyaWJ1dGVET01Ub2tlbkxpc3Q6OkF0
dHJpYnV0ZURPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lKQotICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCi0gICAgLCBtX2F0dHJp
YnV0ZU5hbWUoYXR0cmlidXRlTmFtZSkKLXsKLSAgICBzZXRWYWx1ZUludGVybmFsKG1fZWxlbWVu
dC5nZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lKSk7Ci19Ci0KLXZvaWQgQXR0cmlidXRlRE9N
VG9rZW5MaXN0OjphdHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdW
YWx1ZSkKLXsKLSAgICAvLyBEbyBub3QgcmVzZXQgdGhlIERPTVRva2VuTGlzdCB2YWx1ZSBpZiB0
aGUgYXR0cmlidXRlIHZhbHVlIHdhcyBjaGFuZ2VkIGJ5IHVzLgotICAgIGlmIChtX2lzVXBkYXRp
bmdBdHRyaWJ1dGVWYWx1ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2V0VmFsdWVJbnRlcm5h
bChuZXdWYWx1ZSk7Ci19Ci0KLXZvaWQgQXR0cmlidXRlRE9NVG9rZW5MaXN0Ojp1cGRhdGVBZnRl
clRva2VuQ2hhbmdlKCkKLXsKLSAgICBET01Ub2tlbkxpc3Q6OnVwZGF0ZUFmdGVyVG9rZW5DaGFu
Z2UoKTsKLQotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2lz
VXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSwgdHJ1ZSk7Ci0gICAgbV9lbGVtZW50LnNldEF0dHJpYnV0
ZShtX2F0dHJpYnV0ZU5hbWUsIHZhbHVlKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODVmYjdlNTBmZjYzMWEzNjg4Y2JhNzQ4MzhmYjc3ODZhZTcx
NmY3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQXR0cmlidXRlRE9NVG9rZW5MaXN0
X2gKLSNkZWZpbmUgQXR0cmlidXRlRE9NVG9rZW5MaXN0X2gKLQotI2luY2x1ZGUgIkRPTVRva2Vu
TGlzdC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgZmluYWwgOiBwdWJsaWMgRE9NVG9rZW5MaXN0IHsK
LSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBBdHRyaWJ1dGVET01U
b2tlbkxpc3QoRWxlbWVudCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpOwot
ICAgIHZvaWQgYXR0cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwotCi1w
cml2YXRlOgotICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBtX2VsZW1lbnQucmVmKCk7IH0KLSAg
ICB2b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBtX2VsZW1lbnQuZGVyZWYoKTsgfQotCi0gICAgRWxl
bWVudCogZWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICZtX2VsZW1lbnQ7IH0KLSAg
ICB2b2lkIHVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKSBvdmVycmlkZTsKLQotICAgIEVsZW1lbnQm
IG1fZWxlbWVudDsKLSAgICBjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lJiBtX2F0dHJpYnV0
ZU5hbWU7Ci0gICAgYm9vbCBtX2lzVXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSB7IGZhbHNlIH07Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBBdHRyaWJ1dGVET01Ub2tl
bkxpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IDFlNGYyMzY0OWJl
MDYyMjZmOWQxNTMyMTZmYjU1MTFjODViZjUxYjMuLmIwYjc2ZjI5ZGNlOWY3NGQxMDQ2YWNkYWFm
ZjE4YWZlZGQzZDE1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTMw
LDExICszMCwxOSBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJT
cGFjZVNwbGl0U3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3
dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFz
aC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitET01Ub2tlbkxpc3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQorICAgIDogbV9lbGVtZW50KGVsZW1l
bnQpCisgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFtZSkKK3sKKyAgICBzZXRWYWx1
ZUludGVybmFsKG1fZWxlbWVudC5nZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lKSk7Cit9CisK
IGJvb2wgRE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRva2VuKGNvbnN0IFN0cmluZyYgdG9rZW4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpIHsKQEAgLTE5MCw0
ICsxOTgsMjEgQEAgdm9pZCBET01Ub2tlbkxpc3Q6OnNldFZhbHVlSW50ZXJuYWwoY29uc3QgV1RG
OjpTdHJpbmcmIHZhbHVlKQogICAgIG1fY2FjaGVkVmFsdWUgPSBudWxsQXRvbTsKIH0KIAordm9p
ZCBET01Ub2tlbkxpc3Q6OmF0dHJpYnV0ZVZhbHVlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcm
IG5ld1ZhbHVlKQoreworICAgIC8vIERvIG5vdCByZXNldCB0aGUgRE9NVG9rZW5MaXN0IHZhbHVl
IGlmIHRoZSBhdHRyaWJ1dGUgdmFsdWUgd2FzIGNoYW5nZWQgYnkgdXMuCisgICAgaWYgKG1faXNV
cGRhdGluZ0F0dHJpYnV0ZVZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRWYWx1ZUlu
dGVybmFsKG5ld1ZhbHVlKTsKK30KKwordm9pZCBET01Ub2tlbkxpc3Q6OnVwZGF0ZUFmdGVyVG9r
ZW5DaGFuZ2UoKQoreworICAgIG1fY2FjaGVkVmFsdWUgPSBudWxsQXRvbTsKKworICAgIFRlbXBv
cmFyeUNoYW5nZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2lzVXBkYXRpbmdBdHRyaWJ1dGVW
YWx1ZSwgdHJ1ZSk7CisgICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUs
IHZhbHVlKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuaAppbmRleCAwNjU0MTlhYjhhNjhkMzQ4MzRlMzgzZmZlODAyZjA4NWVmMzIyN2Rm
Li43ZDY1OTU3MjhjYjU4MTZjMzUwZTY4NTkyODJjYjAxMTNhMDJkYmZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmgKQEAgLTI2LDIzICsyNiwyMyBAQAogI2lmbmRlZiBET01Ub2tlbkxp
c3RfaAogI2RlZmluZSBET01Ub2tlbkxpc3RfaAogCisjaW5jbHVkZSA8RWxlbWVudC5oPgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBFbGVtZW50OwotCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBET01Ub2tl
bkxpc3QgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERPTVRva2VuTGlzdCk7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgfkRPTVRva2VuTGlzdCgpIHsg
fQorICAgIERPTVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSk7CisgICAgdm9pZCBhdHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3Ry
aW5nJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZigpID0gMDsKKyAgICB2b2lkIHJlZigpIHsgbV9lbGVtZW50LnJlZigpOyB9CisgICAgdm9p
ZCBkZXJlZigpIHsgbV9lbGVtZW50LmRlcmVmKCk7IH0KIAogICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0OwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29u
c3Q7CkBAIC01NiwyMyArNTYsMjMgQEAgcHVibGljOgogCiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCk7IH0KIAotICAgIHZpcnR1YWwgRWxl
bWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICBFbGVtZW50JiBl
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9CiAKICAgICB2b2lkIHNldFZhbHVl
KGNvbnN0IFN0cmluZyYpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUoKSBjb25zdDsK
IAotcHJvdGVjdGVkOgotICAgIERPTVRva2VuTGlzdCgpID0gZGVmYXVsdDsKK3ByaXZhdGU6CiAg
ICAgdm9pZCBzZXRWYWx1ZUludGVybmFsKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgdXBkYXRl
QWZ0ZXJUb2tlbkNoYW5nZSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFmdGVyVG9rZW5D
aGFuZ2UoKSB7IG1fY2FjaGVkVmFsdWUgPSBudWxsQXRvbTsgfQotCi1wcml2YXRlOgogICAgIHN0
YXRpYyBib29sIHZhbGlkYXRlVG9rZW4oY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHN0YXRpYyBib29sIHZhbGlkYXRlVG9rZW5zKGNvbnN0IFN0cmluZyogdG9rZW5zLCBzaXpl
X3QgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBhZGRJbnRlcm5hbChjb25zdCBT
dHJpbmcqIHRva2Vucywgc2l6ZV90IGxlbmd0aCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
cmVtb3ZlSW50ZXJuYWwoY29uc3QgU3RyaW5nKiB0b2tlbnMsIHNpemVfdCBsZW5ndGgsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAorICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKKyAgICBjb25zdCBXZWJDb3Jl
OjpRdWFsaWZpZWROYW1lJiBtX2F0dHJpYnV0ZU5hbWU7CisgICAgYm9vbCBtX2lzVXBkYXRpbmdB
dHRyaWJ1dGVWYWx1ZSB7IGZhbHNlIH07CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tl
bnM7CiAgICAgbXV0YWJsZSBBdG9taWNTdHJpbmcgbV9jYWNoZWRWYWx1ZTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IGY0YjE5OTU0MGY4ODRjZWI5
NWUyNzc2YWMyZTYwY2IxYTVhMmZmNDkuLmIyMmE5MzA5MDU5MzAwMDNmODhmNzhhZDY2YTE0YTA1
ZTk0MDJkZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hv
ckVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIgorI2luY2x1
ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1
ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTMwMyw3ICsz
MDMsNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50OjpoYXNSZWwodWludDMyX3QgcmVsYXRpb24p
IGNvbnN0CiBET01Ub2tlbkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAg
ICBpZiAoIW1fcmVsTGlzdCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8
QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyKTsKKyAgICAg
ICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1M
TmFtZXM6OnJlbEF0dHIpOwogICAgIHJldHVybiAqbV9yZWxMaXN0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKaW5kZXggOTdjNTdkYTg1ZmNiMzJlNzVmOWEzNWE0
NzI1ZDBjN2NhYTFkNjIxZC4uMzMyYWRhNTAxOTk5YTlkNzE4OGM1ZWQ5YjVlNWI3ZjVmYTI2YTM4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtMzAsNyArMzAs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEF0dHJpYnV0ZURPTVRva2VuTGlz
dDsKK2NsYXNzIERPTVRva2VuTGlzdDsKIAogLy8gTGluayByZWxhdGlvbiBiaXRtYXNrIHZhbHVl
cy4KIC8vIEZJWE1FOiBVbmNvbW1lbnQgYXMgdGhlIHZhcmlvdXMgbGluayByZWxhdGlvbnMgYXJl
IGltcGxlbWVudGVkLgpAQCAtMTUxLDcgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgdWludDMyX3Qg
bV9saW5rUmVsYXRpb25zIDogMzA7CiAgICAgbXV0YWJsZSBMaW5rSGFzaCBtX2NhY2hlZFZpc2l0
ZWRMaW5rSGFzaDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+
IG1fcmVsTGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NVG9rZW5MaXN0PiBtX3JlbExpc3Q7
CiB9OwogCiBpbmxpbmUgTGlua0hhc2ggSFRNTEFuY2hvckVsZW1lbnQ6OnZpc2l0ZWRMaW5rSGFz
aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCmluZGV4
IGFjMzE4ZmM4MjhiMmQxNmViMWNjZmE3MTdjNmYxZjRjNDE2ODlhNmQuLjgwYzIwZTE0NTI2MjQx
Y2RmNmI1YjM4ZDE0YmI5OGIyNjg1MDgwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuY3BwCkBAIC0yNSw4ICsyNSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRv
a2VuTGlzdC5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJET01U
b2tlbkxpc3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTElGcmFt
ZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRAogRE9NVG9rZW5MaXN0JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgpCiB7
CiAgICAgaWYgKCFtX3NhbmRib3gpCi0gICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91bmlx
dWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0dHIpOworICAgICAgICBt
X3NhbmRib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMsIHNhbmRib3hB
dHRyKTsKICAgICByZXR1cm4gKm1fc2FuZGJveDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5oCmluZGV4IGU0MjFhOTY2ODc2M2U3NjIyMDc0MTdhODE3ZWRiODk4M2U2
ODM2NDQuLmQwMGMyOTI4YmQ3YzQ4NDlmNDM5ZGQ1NmYzMzk1YjNhYzU2ZjNjMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdHRyaWJ1dGVET01Ub2tlbkxpc3Q7CitjbGFzcyBE
T01Ub2tlbkxpc3Q7CiAKIGNsYXNzIEhUTUxJRnJhbWVFbGVtZW50IGZpbmFsIDogcHVibGljIEhU
TUxGcmFtZUVsZW1lbnRCYXNlIHsKIHB1YmxpYzoKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsK
ICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0PiBtX3NhbmRib3g7CisgICAg
c3RkOjp1bmlxdWVfcHRyPERPTVRva2VuTGlzdD4gbV9zYW5kYm94OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4
IDRhNzNlNTMwZDc1MWYxZWU3ZjE3NWQ2MmE0YmUwZjYyNWY3MmFmOTkuLmY5MDc2NDlmMTlhMTg1
NWZjODhjYmNkOGY1ZDU3M2ZiNDU4OWVlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5jcHAKQEAgLTI2LDEzICsyNiwxMyBAQAogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVu
dC5oIgogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCi0jaW5jbHVkZSAiQXR0cmlidXRlRE9NVG9r
ZW5MaXN0LmgiCiAjaW5jbHVkZSAiQXV0aG9yU3R5bGVTaGVldHMuaCIKICNpbmNsdWRlICJDYWNo
ZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1ZGUgIkRPTVRv
a2VuTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudFNlbmRlci5oIgpAQCAtMzc4LDcgKzM3OCw3IEBAIGJvb2wgSFRNTExpbmtF
bGVtZW50OjpzdHlsZVNoZWV0SXNMb2FkaW5nKCkgY29uc3QKIERPTVRva2VuTGlzdCYgSFRNTExp
bmtFbGVtZW50OjpzaXplcygpCiB7CiAgICAgaWYgKCFtX3NpemVzKQotICAgICAgICBtX3NpemVz
ID0gc3RkOjptYWtlX3VuaXF1ZTxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+KCp0aGlzLCBzaXplc0F0
dHIpOworICAgICAgICBtX3NpemVzID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0
aGlzLCBzaXplc0F0dHIpOwogICAgIHJldHVybiAqbV9zaXplczsKIH0KIApAQCAtNDE4LDcgKzQx
OCw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRjaFBlbmRpbmdFdmVudChMaW5rRXZl
bnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0JiBIVE1MTGlua0VsZW1lbnQ6OnJl
bExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAgICAgICAgbV9yZWxMaXN0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFtZXM6OnJl
bEF0dHIpOworICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlz
dD4oKnRoaXMsIEhUTUxOYW1lczo6cmVsQXR0cik7CiAgICAgcmV0dXJuICptX3JlbExpc3Q7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IDJlM2I0NGYzNzE1NGFi
ZDM2ZTE3NDAwYzQ2OTcwZmU2NjRiNTYxZGUuLmFiMzc3NDQwOGViNjg3NDBhODQxZjg1OGY0OGNl
YjAzYTNkYjgwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaApAQCAtMjQs
MTAgKzI0LDEwIEBACiAjaWZuZGVmIEhUTUxMaW5rRWxlbWVudF9oCiAjZGVmaW5lIEhUTUxMaW5r
RWxlbWVudF9oCiAKLSNpbmNsdWRlICJBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiRE9NVG9rZW5MaXN0
LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJMaW5rTG9hZGVyLmgiCiAj
aW5jbHVkZSAiTGlua0xvYWRlckNsaWVudC5oIgpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIEF0dHJpYnV0ZURPTVRva2VuTGlzdDsKK2NsYXNzIERPTVRv
a2VuTGlzdDsKIGNsYXNzIEhUTUxMaW5rRWxlbWVudDsKIGNsYXNzIFVSTDsKIApAQCAtMTI4LDcg
KzEyOCw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV90eXBlOwogICAgIFN0cmluZyBtX21l
ZGlhOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+IG1fc2l6ZXM7
CisgICAgc3RkOjp1bmlxdWVfcHRyPERPTVRva2VuTGlzdD4gbV9zaXplczsKICAgICBEaXNhYmxl
ZFN0YXRlIG1fZGlzYWJsZWRTdGF0ZTsKICAgICBMaW5rUmVsQXR0cmlidXRlIG1fcmVsQXR0cmli
dXRlOwogICAgIGJvb2wgbV9sb2FkaW5nOwpAQCAtMTM5LDcgKzEzOSw3IEBAIHByaXZhdGU6CiAK
ICAgICBQZW5kaW5nU2hlZXRUeXBlIG1fcGVuZGluZ1NoZWV0VHlwZTsKIAotICAgIHN0ZDo6dW5p
cXVlX3B0cjxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+IG1fcmVsTGlzdDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8RE9NVG9rZW5MaXN0PiBtX3JlbExpc3Q7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCmluZGV4IDVjMDJjNWU5NjBhYjdl
NDEzZjM5Mjk3NGFiM2RkM2M1NDc5ZjlmNmMuLjBiMmRhZjRhZjQ3YjViMWMxNmNiMzIyMjM3YTkz
YjY3N2ZiMTIwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3Bw
CkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBIVE1MT3V0cHV0RWxlbWVudDo6c2V0RGVmYXVsdFZh
bHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiBET01Ub2tlbkxpc3QmIEhUTUxPdXRwdXRFbGVtZW50
OjpodG1sRm9yKCkKIHsKICAgICBpZiAoIW1fdG9rZW5zKQotICAgICAgICBtX3Rva2VucyA9IHN0
ZDo6bWFrZV91bmlxdWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhpcywgZm9yQXR0cik7Cisg
ICAgICAgIG1fdG9rZW5zID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBm
b3JBdHRyKTsKICAgICByZXR1cm4gKm1fdG9rZW5zOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPdXRwdXRFbGVtZW50LmgKaW5kZXggMjU0NmUxNWQ0NmVkOWRjZDlkMmU5MGM5NGQyYTI0YWQ1
ZGNhYTBjMS4uMjRkYjc4M2JjYjk1N2Q1Mjg5YjdiZjA2ZjlmYWM5YzM0ZWMzZDNjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaApAQCAtMzEsNyArMzEsNyBAQAogI2lm
bmRlZiBIVE1MT3V0cHV0RWxlbWVudF9oCiAjZGVmaW5lIEhUTUxPdXRwdXRFbGVtZW50X2gKIAot
I2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRPTVRva2VuTGlz
dC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0RlZmF1bHRW
YWx1ZU1vZGU7CiAgICAgYm9vbCBtX2lzU2V0VGV4dENvbnRlbnRJblByb2dyZXNzOwogICAgIFN0
cmluZyBtX2RlZmF1bHRWYWx1ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9r
ZW5MaXN0PiBtX3Rva2VuczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NVG9rZW5MaXN0PiBtX3Rv
a2VuczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>