<?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>43145</bug_id>
          
          <creation_ts>2010-07-28 13:44:49 -0700</creation_ts>
          <short_desc>Add support for calling NPObject methods</short_desc>
          <delta_ts>2010-07-28 14:31:17 -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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>257341</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-28 13:44:49 -0700</bug_when>
    <thetext>Add support for calling NPObject methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257347</commentid>
    <comment_count>1</comment_count>
      <attachid>62873</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-28 13:57:47 -0700</bug_when>
    <thetext>Created attachment 62873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257348</commentid>
    <comment_count>2</comment_count>
      <attachid>62873</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-28 14:04:10 -0700</bug_when>
    <thetext>Comment on attachment 62873
Patch

&gt; +    if (!returnValue)
&gt; +        throwError(exec, createError(exec, &quot;Error calling method on NPObject!&quot;));

Do we need the exclamation point?

Otherwise, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257360</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-28 14:31:17 -0700</bug_when>
    <thetext>Committed r64231: &lt;http://trac.webkit.org/changeset/64231&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62873</attachid>
            <date>2010-07-28 13:57:47 -0700</date>
            <delta_ts>2010-07-28 14:04:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43145-20100728135746.patch</filename>
            <type>text/plain</type>
            <size>31451</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYzViNmMzMmI1ODYxZjFhMmEyODUxYjJmZDZhMGZhMTNhZWU4OWQyLi41YzhkMWU5
NDdkODEyZjdlY2UwY2M5YTEzMjMwNmNhYzg3NjAwYTBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDctMjggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgY2FsbGluZyBOUE9iamVjdCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MzE0NQorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9T
a2lwcGVkOgorICAgICAgICBSZW1vdmUgcGx1Z2lucy9ucHJ1bnRpbWUvZ2V0LWludC1pZGVudGlm
aWVyLXNwZWNpYWwtdmFsdWVzLmh0bWwgc2luY2UgaXQgcGFzc2VzIG5vdy4KKwogMjAxMC0wNy0y
NyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKaW5kZXgg
MDU2YWJmZjRiOGYyZjMyMzExODNjZmRkZDY2ZWM1NzNhMjAwYTBhOC4uZjU0NDdlMzc1OGRmMmNi
MzM1YmE1ZDhkM2U4ZDZlYzYzNjYwZDE5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tp
cHBlZApAQCAtMTQxMyw3ICsxNDEzLDYgQEAgcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tc2V0d2lu
ZG93LXNpemUtMi5odG1sCiBwbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1zZXR3aW5kb3ctc2l6ZS5o
dG1sCiBwbHVnaW5zL25wcnVudGltZS9iaW5kaW5ncy10ZXN0Lmh0bWwKIHBsdWdpbnMvbnBydW50
aW1lL2VudW1lcmF0ZS5odG1sCi1wbHVnaW5zL25wcnVudGltZS9nZXQtaW50LWlkZW50aWZpZXIt
c3BlY2lhbC12YWx1ZXMuaHRtbAogcGx1Z2lucy9ucHJ1bnRpbWUvZ2V0LXByb3BlcnR5LXJldHVy
bi12YWx1ZS5odG1sCiBwbHVnaW5zL25wcnVudGltZS9pZGVudGlmaWVyLWNvbnZlcnNpb24uaHRt
bAogcGx1Z2lucy9ucHJ1bnRpbWUvaW52b2tlLWJyb3dzZXJmdW5jcy5odG1sCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVhNTAzYmNiZTFj
NTBmZjFmNDc2MTJkODJlMjM0OTFiYTA1MjZmZWUuLjU3MDZkNmNiMjJmYjYwMTk1NjJhNTg2OWNi
YWY2MWYzMjdlZTVlMTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDctMjggIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgY2FsbGluZyBOUE9iamVjdCBtZXRob2Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzE0NQor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgIEV4cG9ydCBKU0hUTUxFbGVtZW50
OjpzX2luZm8gYW5kIHBsdWdpblNjcmlwdE9iamVjdC4KKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgTWFrZSBKU0hUTUxFbGVtZW50LmggYW5k
IEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIHByaXZhdGUgaGVhZGVycy4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwbHVnaW5TY3JpcHRPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5oOgorICAgICAgICBNYWtlIHBsdWdpblNjcmlwdE9iamVjdCBhIHB1
YmxpYyBmdW5jdGlvbi4KKwogMjAxMC0wNy0yNyAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCBkZmJkMTUwYzdlMDEwM2E3NmQ4Y2YyOTg0YWVjNmNjNDY5YzdkY2VlLi40ZmM4MzA2OWEzYjZk
YjI4NDE2MmJiNmFmM2M2YWIzMWI1ZmRlYzEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTI4NSw2ICsyODUsNyBAQCBf
X1pON1dlYkNvcmUxM0hpdFRlc3RSZXN1bHRDMUVSS1MwXwogX19aTjdXZWJDb3JlMTNIaXRUZXN0
UmVzdWx0RDFFdgogX19aTjdXZWJDb3JlMTNJZGVudGlmaWVyUmVwM2dldEVQS2MKIF9fWk43V2Vi
Q29yZTEzSWRlbnRpZmllclJlcDNnZXRFaQorX19aTjdXZWJDb3JlMTNKU0hUTUxFbGVtZW50NnNf
aW5mb0UKIF9fWk43V2ViQ29yZTEzS2V5Ym9hcmRFdmVudEMxRVJLTlNfMTJBdG9taWNTdHJpbmdF
YmJQTlNfOURPTVdpbmRvd0VSS05TXzZTdHJpbmdFamJiYmJiCiBfX1pON1dlYkNvcmUxM1R5cGlu
Z0NvbW1hbmQzOWluc2VydFBhcmFncmFwaFNlcGFyYXRvckluUXVvdGVkQ29udGVudEVQTlNfOERv
Y3VtZW50RQogX19aTjdXZWJDb3JlMTN0b0RldmljZVNwYWNlRVJLTlNfOUZsb2F0UmVjdEVQOE5T
V2luZG93CkBAIC00MDgsNiArNDA5LDcgQEAgX19aTjdXZWJDb3JlMTduYW1lRm9yQ3Vyc29yVHlw
ZUVOU182Q3Vyc29yNFR5cGVFCiBfX1pON1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVBLY1Jp
CiBfX1pON1dlYkNvcmUxOGRlcHJlY2F0ZWRQYXJzZVVSTEVSS05TXzZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRQorX19aTjdX
ZWJDb3JlMThwbHVnaW5TY3JpcHRPYmplY3RFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTNKU0hUTUxF
bGVtZW50RQogX19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMTZyZXN1bWVBbmltYXRp
b25zRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxN3N1
c3BlbmRBbmltYXRpb25zRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNv
bnRyb2xsZXIyMHBhdXNlQW5pbWF0aW9uQXRUaW1lRVBOU18xMlJlbmRlck9iamVjdEVSS05TXzZT
dHJpbmdFZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5
NDVhYTVkYTAyYmZkNzIxN2JiMDU1ZWNjMWJiYzMwNDgyNjFhOTE2Li4zNjk5YTE3NmIwNDE5ZjE3
MTEzZWI1OGE0M2NiZGY5Nzg1NjJkZDQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMzQ1LDcgKzM0NSw3IEBACiAJCTFBMzQxN0M5MENFQ0ZGMjUwMDQ5
Q0JERSAvKiBKU0N1c3RvbVZvaWRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzNDE3QzcwQ0VDRkYyNTAwNDlDQkRFIC8qIEpTQ3VzdG9t
Vm9pZENhbGxiYWNrLmggKi87IH07CiAJCTFBMzQxN0NBMENFQ0ZGMjUwMDQ5Q0JERSAvKiBKU0N1
c3RvbVZvaWRDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTM0MTdDODBDRUNGRjI1MDA0OUNCREUgLyogSlNDdXN0b21Wb2lkQ2FsbGJh
Y2suY3BwICovOyB9OwogCQkxQTQ5NEJGQTBBMTIyRjQ0MDBGREFGQzEgLyogSlNIVE1MRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ5
NEJGODBBMTIyRjQ0MDBGREFGQzEgLyogSlNIVE1MRWxlbWVudC5jcHAgKi87IH07Ci0JCTFBNDk0
QkZCMEExMjJGNDQwMEZEQUZDMSAvKiBKU0hUTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ5NEJGOTBBMTIyRjQ0MDBGREFGQzEgLyog
SlNIVE1MRWxlbWVudC5oICovOyB9OworCQkxQTQ5NEJGQjBBMTIyRjQ0MDBGREFGQzEgLyogSlNI
VE1MRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE0OTRCRjkwQTEyMkY0NDAwRkRBRkMxIC8qIEpTSFRNTEVsZW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTQ5NEUzNDBBMTIzNThC
MDBGREFGQzEgLyogSlNIVE1MRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0OTRFMzIwQTEyMzU4QTAwRkRBRkMxIC8qIEpTSFRNTERv
Y3VtZW50LmNwcCAqLzsgfTsKIAkJMUE0OTRFMzUwQTEyMzU4QjAwRkRBRkMxIC8qIEpTSFRNTERv
Y3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTQ5NEUzMzBBMTIzNThCMDBGREFGQzEgLyogSlNIVE1MRG9jdW1lbnQuaCAqLzsgfTsKIAkJMUE0
OTRFREUwQTEyM0Y0QzAwRkRBRkMxIC8qIEpTRG9jdW1lbnRGcmFnbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ5NEVEQzBBMTIzRjRDMDBG
REFGQzEgLyogSlNEb2N1bWVudEZyYWdtZW50LmNwcCAqLzsgfTsKQEAgLTI1MDgsNyArMjUwOCw3
IEBACiAJCTkzQjcwRDY5MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCNzBENEQwOUVC
MEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5jcHAgKi87IH07CiAJCTkzQjcwRDZBMDlF
QjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2
ZW50TGlzdGVuZXIuaCAqLzsgfTsKIAkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0I3MEQ0RjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcCAqLzsgfTsKLQkJOTNCNzBENkMwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNCNzBENTAwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5oICovOyB9OworCQk5M0I3MEQ2QzA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0I3MEQ1MDA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNCNzBENkYwOUVCMEM3QzAwOUQ4NDY4IC8qIFNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCNzBENTMwOUVCMEM3QzAw
OUQ4NDY4IC8qIFNjcmlwdENvbnRyb2xsZXIuY3BwICovOyB9OwogCQk5M0I3MEQ3MDA5RUIwQzdD
MDA5RDg0NjggLyogU2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCNzBENTQwOUVCMEM3QzAwOUQ4NDY4IC8qIFNjcmlwdENv
bnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0I3N0EzODBBREQ3OTI1MDBFQTRCODEgLyogRnJhbWVMb2FkZXJUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCNzdBMzcwQURENzky
NTAwRUE0QjgxIC8qIEZyYW1lTG9hZGVyVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdp
bkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IDZiZGM0NDAzODUwNjhlY2JhN2FmNTQ1M2E1ODU2
NzA3ZTE2Y2ZkNTAuLmNmNDNlOTE4Mzg0OTQ2M2M5ZDY1NDNmNmY0YTdmNDhhYWJmZGU3NzkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAgSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKE5vZGUqIG5vZGUpCiAg
ICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi1zdGF0aWMgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9i
amVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTSFRNTEVsZW1lbnQqIGpzSFRNTEVsZW1lbnQpCitKU09i
amVjdCogcGx1Z2luU2NyaXB0T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNIVE1MRWxlbWVudCog
anNIVE1MRWxlbWVudCkKIHsKICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGpzSFRNTEVsZW1l
bnQtPmltcGwoKTsKICAgICBpZiAoIShlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwg
ZWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhcHBs
ZXRUYWcpKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9u
cy5oCmluZGV4IGFjZDQ5NjVmMzFiN2RiM2Q0YjhjNzY2MWI5OWVjODU5OTUyMDdhZDUuLjE1YWY1
OWE3MTJhZTI0MDM2ODVmNDMwZDViZDkyZjIwYmQ5MjRkMWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaApAQCAtMzYsNiArMzYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICAvLyBSdW50aW1lIG9iamVjdCBzdXBwb3J0IGNvZGUgZm9y
IEpTSFRNTEFwcGxldEVsZW1lbnQsIEpTSFRNTEVtYmVkRWxlbWVudCBhbmQgSlNIVE1MT2JqZWN0
RWxlbWVudC4KICAgICBKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2UoTm9k
ZSopOworICAgIEpTQzo6SlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVjdChKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNIVE1MRWxlbWVudCoganNIVE1MRWxlbWVudCk7CiAKICAgICBKU0M6OkpTVmFs
dWUgcnVudGltZU9iamVjdFByb3BlcnR5R2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKICAgICBib29sIHJ1bnRpbWVPYmplY3RDdXN0
b21HZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBKU0M6OlByb3BlcnR5U2xvdCYsIEpTSFRNTEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1dl
YktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTk1MTVhMTAzODM0M2Zm
Y2Y2NjM1MDU5M2U4MGQzN2NjMGY5YjllMS4uNmQwZGIxODAyZTlhNWM5NGU0N2ZhYWE3ZDRjMTZh
MzNjMWVmMDZkZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMC0wNy0yOCAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBjYWxsaW5nIE5QT2JqZWN0IG1ldGhvZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMTQ1CisKKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBK
U05QTWV0aG9kLmNwcCBhbmQgSlNOUE1ldGhvZC5oCisgICAgCisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL0pTTlBNZXRob2QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvSlNOUE1ldGhvZC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
SlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oik6CisgICAgICAgIEFkZCBhIENsYXNz
SW5mbyBzdGF0aWMgdmFyaWFibGUgZm9yIEpTTlBPYmplY3QuCisKKyAgICAgICAgKFdlYktpdDo6
SlNOUE9iamVjdDo6Y2FsbE1ldGhvZCk6CisgICAgICAgIENvbnZlcnQgdGhlIHBhc3NlZCBpbiBh
cmd1bWVudHMsIGNhbGwgdGhlIG1ldGhvZCBhbmQgY29udmVydCB0aGUgcmVzdWx0IGJhY2suCisK
KyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAg
ICAgQ2hlY2sgaWYgdGhlIE5QT2JqZWN0IGhhcyBhIG1ldGhvZC4KKworICAgICAgICAoV2ViS2l0
OjpKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIpOgorICAgICAgICBSZXR1cm4gYSBuZXcgSlNOUE1l
dGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9KU05QT2JqZWN0Lmg6CisgICAg
ICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OmNsYXNzSW5mbyk6CisgICAgICAgIFJldHVybiB0aGUg
c19pbmZvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05QSlNPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpnZXRQcm9wZXJ0eSk6CisgICAgICAgIEdldCB0
aGUgcHJvcGVydHkgZnJvbSB0aGUgSlNPYmplY3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTlBSdW50aW1lT2JqZWN0TWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBSdW50aW1l
T2JqZWN0TWFwOjpjb252ZXJ0SlNWYWx1ZVRvTlBWYXJpYW50KToKKyAgICAgICAgQ29udmVydCB0
aGUgZ2l2ZW4gSlNWYWx1ZSB0byBhbiBOUFZhcmlhbnQuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0
Mi52Y3Byb2o6CisgICAgICAgIEFkZCBKU05QTWV0aG9kLmNwcCBhbmQgSlNOUE1ldGhvZC5oCisK
IDIwMTAtMDctMjcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4ZGNlYjBlNzNjNjkwYmFhYTM0YTE3ZDM0Y2JlM2ZkOTFhOTRh
OTEzLi45YjZhZmI2OWFiY2I3M2U4ZjMwYjhiNjY5ODhiYTMwZjAxNzgzN2RkIDEwMDY0NAotLS0g
YS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUsNiArNzUsOCBAQAogCQkx
QUU0OTc2OTExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUU0OTc2NzExRkY2NThFMDA0OEI0NjQg
LyogTlBKU09iamVjdC5jcHAgKi87IH07CiAJCTFBRTQ5ODc4MTFGRjdGQUEwMDQ4QjQ2NCAvKiBK
U05QT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQUU0OTg3NjExRkY3RkFBMDA0OEI0NjQgLyogSlNOUE9iamVjdC5oICovOyB9OwogCQkxQUU0
OTg3OTExRkY3RkFBMDA0OEI0NjQgLyogSlNOUE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUU0OTg3NzExRkY3RkFBMDA0OEI0NjQgLyog
SlNOUE9iamVjdC5jcHAgKi87IH07CisJCTFBRTQ5QTQ5MTFGRkE4Q0UwMDQ4QjQ2NCAvKiBKU05Q
TWV0aG9kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QUU0OUE0NzExRkZBOENFMDA0OEI0NjQgLyogSlNOUE1ldGhvZC5oICovOyB9OworCQkxQUU0OUE0
QTExRkZBOENFMDA0OEI0NjQgLyogSlNOUE1ldGhvZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUU0OUE0ODExRkZBOENFMDA0OEI0NjQgLyogSlNO
UE1ldGhvZC5jcHAgKi87IH07CiAJCTFBRTVCN0ZCMTFFN0FFRDIwMEJBNjc2NyAvKiBOZXRzY2Fw
ZVBsdWdpbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBRTVCN0Y5MTFFN0FFRDIwMEJBNjc2NyAvKiBOZXRzY2FwZVBsdWdpbk1hYy5tbSAqLzsg
fTsKIAkJMUFFRkNDMTIxMUQwMUY5NjAwODIxOUQzIC8qIFBsdWdpbkluZm9TdG9yZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFRkNDMTAxMUQwMUY5
NjAwODIxOUQzIC8qIFBsdWdpbkluZm9TdG9yZS5oICovOyB9OwogCQkxQUVGQ0MxMzExRDAxRjk2
MDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRUZDQzExMTFEMDFGOTYwMDgyMTlEMyAvKiBQbHVnaW5J
bmZvU3RvcmUuY3BwICovOyB9OwpAQCAtMzY0LDYgKzM2Niw4IEBACiAJCTFBRTQ5NzY3MTFGRjY1
OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5QSlNPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QUU0OTg3NjExRkY3RkFBMDA0OEI0NjQgLyogSlNOUE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU05QT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBRTQ5ODc3MTFGRjdGQUEwMDQ4QjQ2NCAvKiBKU05QT2JqZWN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTlBPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQUU0OUE0NzExRkZBOENFMDA0OEI0NjQgLyogSlNOUE1ldGhvZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU05QTWV0aG9kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBRTQ5QTQ4MTFGRkE4Q0UwMDQ4QjQ2NCAvKiBKU05QTWV0
aG9kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTlBNZXRob2Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUU1QjdGOTExRTdBRUQyMDBCQTY3
NjcgLyogTmV0c2NhcGVQbHVnaW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBOZXRzY2FwZVBsdWdpbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUFFRkNDMTAxMUQwMUY5NjAwODIxOUQzIC8qIFBsdWdpbkluZm9TdG9yZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5JbmZvU3RvcmUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFRkNDMTExMUQwMUY5NjAwODIxOUQzIC8qIFBsdWdpbklu
Zm9TdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5J
bmZvU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgxLDYgKzY4NSw4
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBNkZCOTA4MTFF
NjZGQjEwMERCMTM3MSAvKiBOZXRzY2FwZSAqLywKKwkJCQkxQUU0OUE0ODExRkZBOENFMDA0OEI0
NjQgLyogSlNOUE1ldGhvZC5jcHAgKi8sCisJCQkJMUFFNDlBNDcxMUZGQThDRTAwNDhCNDY0IC8q
IEpTTlBNZXRob2QuaCAqLywKIAkJCQkxQUU0OTg3NzExRkY3RkFBMDA0OEI0NjQgLyogSlNOUE9i
amVjdC5jcHAgKi8sCiAJCQkJMUFFNDk4NzYxMUZGN0ZBQTAwNDhCNDY0IC8qIEpTTlBPYmplY3Qu
aCAqLywKIAkJCQkxQUU0OTc2NzExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5jcHAgKi8s
CkBAIC0xMjk1LDYgKzEzMDEsNyBAQAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBX
S0J1bmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTQ5NzY4MTFGRjY1OEUwMDQ4
QjQ2NCAvKiBOUEpTT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU0OTg3ODExRkY3RkFB
MDA0OEI0NjQgLyogSlNOUE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFFNDlBNDkxMUZG
QThDRTAwNDhCNDY0IC8qIEpTTlBNZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTQ5NCw2ICsx
NTAxLDcgQEAKIAkJCQlFMUVFNTY1NjExRjhGNzE3MDBDQ0JFRTQgLyogV0tCdW5kbGVOb2RlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTQ5NzY5MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTQ5ODc5MTFGRjdGQUEwMDQ4QjQ2NCAvKiBK
U05QT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBRTQ5QTRBMTFGRkE4Q0UwMDQ4QjQ2
NCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvSlNOUE1ldGhvZC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9KU05QTWV0aG9kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzBlMmE0MTFlNDIzNGZiODc4M2NmNjVj
YjAzMDJlNGQzYTQ2YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvSlNOUE1ldGhvZC5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJKU05QTWV0aG9kLmgiCisKKyNpbmNsdWRlICJKU05QT2JqZWN0LmgiCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FcnJvci5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNHbG9iYWxPYmplY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0pTSFRNTEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oPgor
Cit1c2luZyBuYW1lc3BhY2UgSlNDOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjb25zdCBDbGFzc0luZm8gSlNOUE1ldGhvZDo6c19pbmZvID0geyAi
TlBNZXRob2QiLCAwLCAwLCAwIH07CisKK0pTTlBNZXRob2Q6OkpTTlBNZXRob2QoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBu
YW1lLCBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbigm
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGNyZWF0ZVN0cnVjdHVyZShnbG9iYWxP
YmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBuYW1lKQorICAgICwgbV9ucElkZW50aWZpZXIo
bnBJZGVudGlmaWVyKQoreworfQorCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU05QTWV0aG9kKiBqc05QTWV0
aG9kID0gc3RhdGljX2Nhc3Q8SlNOUE1ldGhvZCo+KGV4ZWMtPmNhbGxlZSgpKTsKKworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworCisgICAgLy8gQ2hlY2sg
aWYgd2UncmUgY2FsbGluZyBhIG1ldGhvZCBvbiB0aGUgcGx1Zy1pbiBzY3JpcHQgb2JqZWN0Lgor
ICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHMoJkpTSFRNTEVsZW1lbnQ6OnNfaW5mbykpIHsKKyAg
ICAgICAgSlNIVE1MRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEpTSFRNTEVsZW1lbnQq
Pihhc09iamVjdCh0aGlzVmFsdWUpKTsKKworICAgICAgICAvLyBUcnkgdG8gZ2V0IHRoZSBzY3Jp
cHQgb2JqZWN0IGZyb20gdGhlIGVsZW1lbnQKKyAgICAgICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRP
YmplY3QgPSBwbHVnaW5TY3JpcHRPYmplY3QoZXhlYywgZWxlbWVudCkpCisgICAgICAgICAgICB0
aGlzVmFsdWUgPSBzY3JpcHRPYmplY3Q7CisgICAgfQorCisgICAgaWYgKHRoaXNWYWx1ZS5pbmhl
cml0cygmSlNOUE9iamVjdDo6c19pbmZvKSkgeworICAgICAgICBKU05QT2JqZWN0KiBqc05QT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNOUE9iamVjdCo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworCisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOUE9iamVjdC0+Y2FsbE1ldGhvZChleGVj
LCBqc05QTWV0aG9kLT5ucElkZW50aWZpZXIoKSkpOworICAgIH0KKworICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworfQorCitDYWxsVHlwZSBKU05QTWV0aG9kOjpnZXRDYWxsRGF0
YShDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y2FsbE1ldGhvZDsKKyAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL0pTTlBNZXRo
b2QuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL0pTTlBNZXRob2QuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YTg1NzhjZGQzOTQ0YjZkNDY1MTI2NzdmZDRhMzBjN2RjOTQ3Mjk2Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvSlNOUE1ldGhvZC5oCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTTlBNZXRob2RfaAorI2RlZmluZSBKU05QTWV0
aG9kX2gKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ludGVybmFsRnVuY3Rpb24uaD4KKwor
dHlwZWRlZiB2b2lkKiBOUElkZW50aWZpZXI7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBB
IEpTT2JqZWN0IHRoYXQgd3JhcHMgYW4gTlBNZXRob2QuCitjbGFzcyBKU05QTWV0aG9kIDogcHVi
bGljIEpTQzo6SW50ZXJuYWxGdW5jdGlvbiB7CitwdWJsaWM6CisgICAgSlNOUE1ldGhvZChKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
LCBOUElkZW50aWZpZXIpOworCisgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bzsKKworICAgIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX25w
SWRlbnRpZmllcjsgfQorCitwcml2YXRlOiAgICAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6
OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAg
eworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCk7CisgICAgfQorCisgICAgdmlydHVhbCBKU0M6OkNhbGxUeXBlIGdldENhbGxEYXRhKEpT
Qzo6Q2FsbERhdGEmKTsKKyAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0lu
Zm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9CisgICAgCisgICAgTlBJZGVudGlmaWVyIG1f
bnBJZGVudGlmaWVyOworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEpTTlBNZXRob2RfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvSlNO
UE9iamVjdC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9KU05QT2JqZWN0LmNwcApp
bmRleCAyZjBmZTY5YzczNDVmMzdmZjE5NjA4YmJmMDM5ODQ1NzA1ZjQwYzVhLi42ZDdlOTI1ZmYx
M2FmODc5YjU5ZWY2OTkyYzY3NzNkYjQ1MTJkNzVjIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9KU05QT2JqZWN0LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9KU05QT2JqZWN0LmNwcApAQCAtMjUsMTIgKzI1LDEzIEBACiAKICNpbmNsdWRlICJKU05Q
T2JqZWN0LmgiCiAKKyNpbmNsdWRlICJKU05QTWV0aG9kLmgiCiAjaW5jbHVkZSAiTlBSdW50aW1l
T2JqZWN0TWFwLmgiCiAjaW5jbHVkZSAiTlBSdW50aW1lVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvRXJyb3IuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dsb2Jh
bE9iamVjdC5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL09iamVjdFByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSWRlbnRpZmllclJlcC5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTQyLDcgKzQzLDkgQEAgc3RhdGljIE5QSWRlbnRpZmll
ciBucElkZW50aWZpZXJGcm9tSWRlbnRpZmllcihjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVy
KQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOUElkZW50aWZpZXI+KElkZW50aWZpZXJSZXA6
OmdldChpZGVudGlmaWVyLmFzY2lpKCkpKTsKIH0KLSAgICAKKworY29uc3QgQ2xhc3NJbmZvIEpT
TlBPYmplY3Q6OnNfaW5mbyA9IHsgIk5QT2JqZWN0IiwgMCwgMCwgMCB9OworCiBKU05QT2JqZWN0
OjpKU05QT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5Q
UnVudGltZU9iamVjdE1hcCogb2JqZWN0TWFwLCBOUE9iamVjdCogbnBPYmplY3QpCiAgICAgOiBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBjcmVhdGVTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpCiAgICAgLCBtX29iamVjdE1hcChvYmplY3RN
YXApCkBAIC01Niw2ICs1OSw0MiBAQCBKU05QT2JqZWN0Ojp+SlNOUE9iamVjdCgpCiAgICAgLy8g
RklYTUU6IEltcGxlbWVudC4KIH0KIAorSlNWYWx1ZSBKU05QT2JqZWN0OjpjYWxsTWV0aG9kKEV4
ZWNTdGF0ZSogZXhlYywgTlBJZGVudGlmaWVyIG1ldGhvZE5hbWUpCit7CisgICAgaWYgKCFtX25w
T2JqZWN0LT5fY2xhc3MtPmhhc01ldGhvZChtX25wT2JqZWN0LCBtZXRob2ROYW1lKSkKKyAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICBzaXplX3QgYXJndW1lbnRDb3VudCA9IGV4
ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBWZWN0b3I8TlBWYXJpYW50LCA4PiBhcmd1bWVudHMo
YXJndW1lbnRDb3VudCk7CisKKyAgICAvLyBDb252ZXJ0IGFsbCBhcmd1bWVudHMgdG8gTlBWYXJp
YW50cy4KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50Q291bnQ7ICsraSkKKyAg
ICAgICAgbV9vYmplY3RNYXAtPmNvbnZlcnRKU1ZhbHVlVG9OUFZhcmlhbnQoZXhlYywgZXhlYy0+
YXJndW1lbnQoaSksIGFyZ3VtZW50c1tpXSk7CisKKyAgICBib29sIHJldHVyblZhbHVlOworICAg
IE5QVmFyaWFudCByZXN1bHQ7CisgICAgVk9JRF9UT19OUFZBUklBTlQocmVzdWx0KTsKKyAgICAK
KyAgICB7CisgICAgICAgIEpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhTaWxlbmNl
QXNzZXJ0aW9uc09ubHkpOworICAgICAgICByZXR1cm5WYWx1ZSA9IG1fbnBPYmplY3QtPl9jbGFz
cy0+aW52b2tlKG1fbnBPYmplY3QsIG1ldGhvZE5hbWUsIGFyZ3VtZW50cy5kYXRhKCksIGFyZ3Vt
ZW50Q291bnQsICZyZXN1bHQpOworCisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgaW52b2tlIHNl
dHRpbmcgYW4gZXhjZXB0aW9uLgorICAgICAgICAvLyBGSVhNRTogRmluZCBvdXQgd2hhdCBoYXBw
ZW5zIGlmIGNhbGxpbmcgaW52b2tlIGNhdXNlcyB0aGUgcGx1Zy1pbiB0byBnbyBhd2F5LgorICAg
IH0KKworICAgIC8vIFJlbGVhc2UgYWxsIGFyZ3VtZW50czsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGFyZ3VtZW50Q291bnQ7ICsraSkKKyAgICAgICAgcmVsZWFzZU5QVmFyaWFudFZhbHVl
KCZhcmd1bWVudHNbaV0pOworCisgICAgaWYgKCFyZXR1cm5WYWx1ZSkKKyAgICAgICAgdGhyb3dF
cnJvcihleGVjLCBjcmVhdGVFcnJvcihleGVjLCAiRXJyb3IgY2FsbGluZyBtZXRob2Qgb24gTlBP
YmplY3QhIikpOworCisgICAgSlNWYWx1ZSBwcm9wZXJ0eVZhbHVlID0gbV9vYmplY3RNYXAtPmNv
bnZlcnROUFZhcmlhbnRUb0pTVmFsdWUoZXhlYywgcmVzdWx0KTsKKyAgICByZWxlYXNlTlBWYXJp
YW50VmFsdWUoJnJlc3VsdCk7CisgICAgcmV0dXJuIHByb3BlcnR5VmFsdWU7Cit9CisKIGJvb2wg
SlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgaWYgKCFt
X25wT2JqZWN0KSB7CkBAIC02NCwxMiArMTAzLDE5IEBAIGJvb2wgSlNOUE9iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
CiAgICAgfQogICAgIAogICAgIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIgPSBucElkZW50aWZp
ZXJGcm9tSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUpOworCisgICAgLy8gRmlyc3QsIGNoZWNrIGlm
IHRoZSBOUE9iamVjdCBoYXMgYSBwcm9wZXJ0eSB3aXRoIHRoaXMgbmFtZS4KICAgICBpZiAobV9u
cE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eSAmJiBtX25wT2JqZWN0LT5fY2xhc3MtPmhhc1By
b3BlcnR5KG1fbnBPYmplY3QsIG5wSWRlbnRpZmllcikpIHsKICAgICAgICAgc2xvdC5zZXRDdXN0
b20odGhpcywgcHJvcGVydHlHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
LSAgICAvLyBGSVhNRTogQ2hlY2sgbWV0aG9kcy4KKyAgICAvLyBTZWNvbmQsIGNoZWNrIGlzIHRo
ZSBOUE9iamVjdCBoYXMgYSBtZXRob2Qgd2l0aCB0aGlzIG5hbWUuCisgICAgaWYgKG1fbnBPYmpl
Y3QtPl9jbGFzcy0+aGFzTWV0aG9kICYmIG1fbnBPYmplY3QtPl9jbGFzcy0+aGFzTWV0aG9kKG1f
bnBPYmplY3QsIG5wSWRlbnRpZmllcikpIHsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywg
bWV0aG9kR2V0dGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIApAQCAtODMsMjUgKzEyOSwzNiBAQCBKU1ZhbHVlIEpTTlBPYmplY3Q6
OnByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3Qg
SWRlbgogICAgIGlmICghdGhpc09iai0+bV9ucE9iamVjdC0+X2NsYXNzLT5nZXRQcm9wZXJ0eSkK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBOUFZhcmlhbnQgcHJvcGVydHk7
Ci0gICAgVk9JRF9UT19OUFZBUklBTlQocHJvcGVydHkpOworICAgIE5QVmFyaWFudCByZXN1bHQ7
CisgICAgVk9JRF9UT19OUFZBUklBTlQocmVzdWx0KTsKIAotICAgIGJvb2wgcmVzdWx0OworICAg
IGJvb2wgcmV0dXJuVmFsdWU7CiAgICAgewogICAgICAgICBKU0xvY2s6OkRyb3BBbGxMb2NrcyBk
cm9wQWxsTG9ja3MoU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKICAgICAgICAgTlBJZGVudGlmaWVy
IG5wSWRlbnRpZmllciA9IG5wSWRlbnRpZmllckZyb21JZGVudGlmaWVyKHByb3BlcnR5TmFtZSk7
Ci0gICAgICAgIHJlc3VsdCA9IHRoaXNPYmotPm1fbnBPYmplY3QtPl9jbGFzcy0+Z2V0UHJvcGVy
dHkodGhpc09iai0+bV9ucE9iamVjdCwgbnBJZGVudGlmaWVyLCAmcHJvcGVydHkpOworICAgICAg
ICByZXR1cm5WYWx1ZSA9IHRoaXNPYmotPm1fbnBPYmplY3QtPl9jbGFzcy0+Z2V0UHJvcGVydHko
dGhpc09iai0+bV9ucE9iamVjdCwgbnBJZGVudGlmaWVyLCAmcmVzdWx0KTsKICAgICAgICAgCiAg
ICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZ2V0UHJvcGVydHkgc2V0dGluZyBhbiBleGNlcHRpb24u
CiAgICAgICAgIC8vIEZJWE1FOiBGaW5kIG91dCB3aGF0IGhhcHBlbnMgaWYgY2FsbGluZyBnZXRQ
cm9wZXJ0eSBjYXVzZXMgdGhlIHBsdWctaW4gdG8gZ28gYXdheS4KICAgICB9CiAKLSAgICBpZiAo
IXJlc3VsdCkKKyAgICBpZiAoIXJldHVyblZhbHVlKQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKIAotICAgIHJldHVybiB0aGlzT2JqLT5tX29iamVjdE1hcC0+Y29udmVydE5QVmFyaWFu
dFRvVmFsdWUoZXhlYywgcHJvcGVydHkpOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCi0gICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgSlNWYWx1ZSBwcm9wZXJ0eVZhbHVlID0gdGhpc09i
ai0+bV9vYmplY3RNYXAtPmNvbnZlcnROUFZhcmlhbnRUb0pTVmFsdWUoZXhlYywgcmVzdWx0KTsK
KyAgICByZWxlYXNlTlBWYXJpYW50VmFsdWUoJnJlc3VsdCk7CisgICAgcmV0dXJuIHByb3BlcnR5
VmFsdWU7Cit9CisKK0pTVmFsdWUgSlNOUE9iamVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYgbWV0aG9kTmFtZSkKK3sK
KyAgICBKU05QT2JqZWN0KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNOUE9iamVjdCo+KGFzT2Jq
ZWN0KHNsb3RCYXNlKSk7CisgICAgCisgICAgaWYgKCF0aGlzT2JqLT5tX25wT2JqZWN0KQorICAg
ICAgICByZXR1cm4gdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CisKKyAgICBOUElkZW50
aWZpZXIgbnBJZGVudGlmaWVyID0gbnBJZGVudGlmaWVyRnJvbUlkZW50aWZpZXIobWV0aG9kTmFt
ZSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNOUE1ldGhvZChleGVjLCB0aGlzT2JqLT5nbG9i
YWxPYmplY3QoKSwgbWV0aG9kTmFtZSwgbnBJZGVudGlmaWVyKTsKIH0KIAogSlNPYmplY3QqIEpT
TlBPYmplY3Q6OnRocm93SW52YWxpZEFjY2Vzc0Vycm9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAt
LWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL0pTTlBPYmplY3QuaCBiL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL0pTTlBPYmplY3QuaAppbmRleCA2ZGMzNjE3NGY2OTY4ODM0ODli
ZTY3NDNlZDdkYTA2MzMxZTdhYjNkLi43NDE5YWQxNTIzNjBjODhkMzlmOWU5MTM1MjNlMWFhNGM3
ZDlkNGViIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9KU05QT2JqZWN0
LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvSlNOUE9iamVjdC5oCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaD4KIAordHlwZWRlZiB2b2lkKiBOUElkZW50aWZpZXI7CiBzdHJ1Y3QgTlBPYmplY3Q7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDEsNiArNDIsMTAgQEAgcHVibGljOgogICAgIEpT
TlBPYmplY3QoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgTlBSdW50aW1l
T2JqZWN0TWFwKiBvYmplY3RNYXAsIE5QT2JqZWN0KiBucE9iamVjdCk7CiAgICAgfkpTTlBPYmpl
Y3QoKTsKIAorICAgIEpTQzo6SlNWYWx1ZSBjYWxsTWV0aG9kKEpTQzo6RXhlY1N0YXRlKiwgTlBJ
ZGVudGlmaWVyIG1ldGhvZE5hbWUpOworCisgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZv
IHNfaW5mbzsKKwogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1
Y3R1cmVGbGFnczsKICAgICAKQEAgLTUyLDggKzU3LDExIEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogCiAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBwcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CisgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtZXRo
b2RHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYpOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiB0aHJvd0ludmFsaWRBY2Nlc3NFcnJv
cihKU0M6OkV4ZWNTdGF0ZSopOwogCisgICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5mbyog
Y2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQorCiAgICAgTlBSdW50aW1lT2Jq
ZWN0TWFwKiBtX29iamVjdE1hcDsKICAgICBOUE9iamVjdCogbV9ucE9iamVjdDsKIH07CmRpZmYg
LS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OUEpTT2JqZWN0LmNwcCBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05QSlNPYmplY3QuY3BwCmluZGV4IGFmZTZkYTNmMGE0MjNh
ZGQ1NTgzOGU0ZDkzYWJjMmE5MmY5NTBkMGIuLmM0MGJmNmViNGRmMjE3ZGEyZDZlODA0MjljZjU4
ZWEwOTkwZGM0YTIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05QSlNP
YmplY3QuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05QSlNPYmplY3QuY3Bw
CkBAIC0yNyw3ICsyNyw5IEBACiAKICNpbmNsdWRlICJOUFJ1bnRpbWVPYmplY3RNYXAuaCIKICNp
bmNsdWRlICJOUFJ1bnRpbWVVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xv
Y2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWUuaD4gIAogI2luY2x1ZGUgPFdlYkNvcmUvSWRlbnRpZmllclJlcC5oPgpAQCAt
OTUsMTQgKzk3LDI3IEBAIGJvb2wgTlBKU09iamVjdDo6aGFzUHJvcGVydHkoTlBJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiAgICAgICAgIHJlc3VsdCA9IG1fanNPYmplY3QtPmhhc1Byb3BlcnR5KGV4
ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigpKTsKIAogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9u
KCk7Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIE5QSlNPYmplY3Q6OmdldFByb3Bl
cnR5KE5QSWRlbnRpZmllciBpZGVudGlmaWVyLCBOUFZhcmlhbnQqIHJlc3VsdCkKK2Jvb2wgTlBK
U09iamVjdDo6Z2V0UHJvcGVydHkoTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgTlBWYXJpYW50
KiByZXN1bHQpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgSWRlbnRpZmllclJlcCogaWRlbnRpZmllclJlcCA9IHN0YXRpY19jYXN0PElkZW50aWZp
ZXJSZXAqPihwcm9wZXJ0eU5hbWUpOworICAgIAorICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fb2Jq
ZWN0TWFwLT5nbG9iYWxFeGVjKCk7CisgICAgaWYgKCFleGVjKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworICAgIEpTVmFs
dWUganNSZXN1bHQ7CisgICAgaWYgKGlkZW50aWZpZXJSZXAtPmlzU3RyaW5nKCkpCisgICAgICAg
IGpzUmVzdWx0ID0gbV9qc09iamVjdC0+Z2V0KGV4ZWMsIGlkZW50aWZpZXJGcm9tSWRlbnRpZmll
clJlcChleGVjLCBpZGVudGlmaWVyUmVwKSk7CisgICAgZWxzZQorICAgICAgICBqc1Jlc3VsdCA9
IG1fanNPYmplY3QtPmdldChleGVjLCBpZGVudGlmaWVyUmVwLT5udW1iZXIoKSk7CisgICAgCisg
ICAgbV9vYmplY3RNYXAtPmNvbnZlcnRKU1ZhbHVlVG9OUFZhcmlhbnQoZXhlYywganNSZXN1bHQs
ICpyZXN1bHQpOworICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIE5QQ2xhc3MqIE5QSlNPYmplY3Q6Om5wQ2xhc3MoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTlBSdW50aW1lT2JqZWN0TWFwLmNwcCBiL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05QUnVudGltZU9iamVjdE1hcC5jcHAKaW5kZXggYTU5ZTA2OWRjYmI2
YzJmZTYxMjAzNmNkYTdhMjIyNjA0NDM5YjNiOS4uYjVmOTNlOTU5OGMzM2UzNjJhMjUzNDQ5N2Iz
NzgwZTAwZmViMzY3MCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTlBS
dW50aW1lT2JqZWN0TWFwLmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OUFJ1
bnRpbWVPYmplY3RNYXAuY3BwCkBAIC0yNSw2ICsyNSw4IEBACiAKICNpbmNsdWRlICJOUFJ1bnRp
bWVPYmplY3RNYXAuaCIKIAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgorCiAj
aW5jbHVkZSAiSlNOUE9iamVjdC5oIgogI2luY2x1ZGUgIk5QSlNPYmplY3QuaCIKICNpbmNsdWRl
ICJOUFJ1bnRpbWVVdGlsaXRpZXMuaCIKQEAgLTc1LDcgKzc3LDcgQEAgdm9pZCBOUFJ1bnRpbWVP
YmplY3RNYXA6OmpzTlBPYmplY3REZXN0cm95ZWQoSlNOUE9iamVjdCoganNOUE9iamVjdCkKICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50LgogfQogCi1KU1ZhbHVlIE5QUnVudGltZU9iamVjdE1hcDo6
Y29udmVydE5QVmFyaWFudFRvVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IE5QVmFy
aWFudCYgdmFyaWFudCkKK0pTVmFsdWUgTlBSdW50aW1lT2JqZWN0TWFwOjpjb252ZXJ0TlBWYXJp
YW50VG9KU1ZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBOUFZhcmlhbnQmIHZhcmlh
bnQpCiB7CiAgICAgc3dpdGNoICh2YXJpYW50LnR5cGUpIHsKICAgICBjYXNlIE5QVmFyaWFudFR5
cGVfVm9pZDoKQEAgLTEwNSw2ICsxMDcsNTkgQEAgSlNWYWx1ZSBOUFJ1bnRpbWVPYmplY3RNYXA6
OmNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdAogICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCit2b2lkIE5QUnVudGltZU9iamVjdE1hcDo6Y29u
dmVydEpTVmFsdWVUb05QVmFyaWFudChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIE5Q
VmFyaWFudCYgdmFyaWFudCkKK3sKKyAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09u
bHkpOworCisgICAgVk9JRF9UT19OUFZBUklBTlQodmFyaWFudCk7CisgICAgCisgICAgaWYgKHZh
bHVlLmlzTnVsbCgpKSB7CisgICAgICAgIE5VTExfVE9fTlBWQVJJQU5UKHZhcmlhbnQpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAg
ICAgICAgVk9JRF9UT19OUFZBUklBTlQodmFyaWFudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAodmFsdWUuaXNCb29sZWFuKCkpIHsKKyAgICAgICAgQk9PTEVBTl9UT19OUFZB
UklBTlQodmFsdWUudG9Cb29sZWFuKGV4ZWMpLCB2YXJpYW50KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmICh2YWx1ZS5pc051bWJlcigpKSB7CisgICAgICAgIERPVUJMRV9UT19O
UFZBUklBTlQodmFsdWUudG9OdW1iZXIoZXhlYyksIHZhcmlhbnQpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpIHsKKyAgICAgICAgQ1N0cmluZyB1
dGY4U3RyaW5nID0gdmFsdWUudG9TdHJpbmcoZXhlYykuVVRGOFN0cmluZygpOworCisgICAgICAg
IC8vIFRoaXMgc2hvdWxkIHVzZSBOUE5fTWVtQWxsb2MsIGJ1dCB3ZSBrbm93IHRoYXQgaXQgdXNl
cyBtYWxsb2MgdW5kZXIgdGhlIGhvb2QuCisgICAgICAgIGNoYXIqIHV0ZjhDaGFyYWN0ZXJzID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYyh1dGY4U3RyaW5nLmxlbmd0aCgpKSk7CisgICAgICAg
IG1lbWNweSh1dGY4Q2hhcmFjdGVycywgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVu
Z3RoKCkpOworICAgICAgICAKKyAgICAgICAgU1RSSU5HTl9UT19OUFZBUklBTlQodXRmOENoYXJh
Y3RlcnMsIHV0ZjhTdHJpbmcubGVuZ3RoKCksIHZhcmlhbnQpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgSlNPYmplY3QqIGpz
T2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOworCisgICAgICAgIGlmIChqc09iamVjdC0+Y2xhc3NJ
bmZvKCkgPT0gJkpTTlBPYmplY3Q6OnNfaW5mbykgeworICAgICAgICAgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIE5QT2JqZWN0
KiBucE9iamVjdCA9IGdldE9yQ3JlYXRlTlBPYmplY3QoanNPYmplY3QpOworICAgICAgICBPQkpF
Q1RfVE9fTlBWQVJJQU5UKG5wT2JqZWN0LCB2YXJpYW50KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB2b2lkIE5QUnVudGltZU9iamVj
dE1hcDo6aW52YWxpZGF0ZSgpCiB7CiAgICAgVmVjdG9yPE5QSlNPYmplY3QqPiBucEpTT2JqZWN0
czsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05QUnVudGltZU9iamVj
dE1hcC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTlBSdW50aW1lT2JqZWN0TWFwLmgK
aW5kZXggMDIxMTU3Yzg1MDM1MDU1MDVlNmI4YTMzYjBiMzc5Yzg4OGQ1NGRkYS4uYzRlMmE5YmZl
MGE5MmVhMTI3ODgwNzNmZGY1NjljZjEzYjcyMWIwNSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTlBSdW50aW1lT2JqZWN0TWFwLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTlBSdW50aW1lT2JqZWN0TWFwLmgKQEAgLTYwLDcgKzYwLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBqc05QT2JqZWN0RGVzdHJveWVkKEpTTlBPYmplY3QqKTsKIAotICAgIEpT
Qzo6SlNWYWx1ZSBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IE5QVmFyaWFudCYpOworICAgIHZvaWQgY29udmVydEpTVmFsdWVUb05QVmFyaWFudChKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgTlBWYXJpYW50Jik7CisgICAgSlNDOjpKU1ZhbHVlIGNv
bnZlcnROUFZhcmlhbnRUb0pTVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBOUFZhcmlhbnQm
KTsKIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBwbHVnLWluIGlzIGRlc3Ryb3llZC4gV2lsbCBp
bnZhbGlkYXRlIGFsbCB0aGUgTlBPYmplY3RzLgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJLaXQy
LnZjcHJvagppbmRleCBkYjY4MThlNzYwMDc3ZmY4NGNmNDcyYjJiNmU3OTZkYjE3YzZjMGVjLi5j
MTU2ZDQ1ZWU1MTgyNzBhMzNjN2RmMjdkOWFiMTE4YmExMTMwOTc5IDEwMDc1NQotLS0gYS9XZWJL
aXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpA
QCAtNzUyLDYgKzc1MiwxNCBAQAogCQkJCU5hbWU9IlBsdWdpbnMiDQogCQkJCT4NCiAJCQkJPEZp
bGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXEpTTlBNZXRob2Qu
Y3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFdlYlByb2Nlc3NcUGx1Z2luc1xKU05QTWV0aG9kLmgiDQorCQkJCQk+DQorCQkJCTwv
RmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xQbHVn
aW5zXEpTTlBPYmplY3QuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQo=
</data>
<flag name="review"
          id="51129"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>