<?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>174186</bug_id>
          
          <creation_ts>2017-07-05 16:56:41 -0700</creation_ts>
          <short_desc>[WebIDL] Remove custom bindings for WebGL code dealing with WebGL extensions</short_desc>
          <delta_ts>2017-07-06 18:16:12 -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>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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1325833</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-05 16:56:41 -0700</bug_when>
    <thetext>[WebIDL] Remove custom bindings for WebGL code dealing with WebGL extensions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325844</commentid>
    <comment_count>1</comment_count>
      <attachid>314670</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-05 17:13:04 -0700</bug_when>
    <thetext>Created attachment 314670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326274</commentid>
    <comment_count>2</comment_count>
      <attachid>314670</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-07-06 17:47:10 -0700</bug_when>
    <thetext>Comment on attachment 314670
Patch

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

&gt; Source/WebCore/bindings/IDLTypes.h:56
&gt; +#if ENABLE(WEBGL)
&gt; +class WebGLExtension;
&gt; +#endif

It doesn&apos;t hurt to forward declare a class outside of guards, does it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326281</commentid>
    <comment_count>3</comment_count>
      <attachid>314670</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-06 18:16:10 -0700</bug_when>
    <thetext>Comment on attachment 314670
Patch

Clearing flags on attachment: 314670

Committed r219229: &lt;http://trac.webkit.org/changeset/219229&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326282</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-06 18:16:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314670</attachid>
            <date>2017-07-05 17:13:04 -0700</date>
            <delta_ts>2017-07-06 18:16:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174186-20170705171432.patch</filename>
            <type>text/plain</type>
            <size>37895</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTE2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE3LTA3LTA1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIGN1c3RvbSBi
aW5kaW5ncyBmb3IgV2ViR0wgY29kZSBkZWFsaW5nIHdpdGggV2ViR0wgZXh0ZW5zaW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgIFVwZGF0ZSBmaWxlcy4gQ2F0ZWdvcml6ZSBzb21lIG9mIHRoZSByZW1haW5pbmcgY3VzdG9t
IGJpbmRpbmdzIGludG8gZ3JvdXBzLgorCisgICAgICAgICogYmluZGluZ3MvSURMVHlwZXMuaDoK
KyAgICAgICAgQWRkIGEgSURMV2ViR0xFeHRlbnNpb24gdHlwZSwgdG8gbW9kZWwgdGhlIHNwZWNp
YWwgV2ViR0xFeHRlbnNpb24gdHlwZS4gSW4KKyAgICAgICAgdGhlIGZ1dHVyZSwgV2ViR0xFeHRl
bnNpb24gY2FuIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgVmFyaWFudC4KKyAgICAgICAgCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2ViR0wuY3BwOiBBZGRlZC4KKyAgICAg
ICAgTW92ZSBXZWJHTEFueSdzIGNvbnZlcnRUb0pTVmFsdWUgYW5kIGFkZCBhIGNvbnZlcnRUb0pT
VmFsdWUgZm9yIFdlYkdMRXh0ZW5zaW9uLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01D
b252ZXJ0V2ViR0wuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0pTVmFsdWUpOgorICAg
ICAgICBTaW5jZSBXZWJHTEV4dGVuc2lvbiBpcyBhIHdyYXBwZXIgdHlwZSwgd2UgbmVlZCBib3Ro
IGEgcG9pbnRlciBhbmQgcmVmZXJlbmNlIHZhcmlhbnQKKyAgICAgICAgb2YgdGhlIGNvbnZlcnNp
b24uCisKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETFdlYkdMRXh0ZW5zaW9uPjo6
Y29udmVydCk6CisgICAgICAgIEFkZGVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRF
eHRlbnNpb24pOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgY3VzdG9tIG9wZXJhdGlvbiBhbmQg
Y29udmVydGVyLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgUmVtb3ZlIGN1c3RvbSBvcGVyYXRpb24gYW5kIGNvbnZlcnRlci4KKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoQWRk
VG9JbmNsdWRlc0ZvcklETFR5cGUpOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVy
dE5lZWRzU3RhdGUpOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzR2xv
YmFsT2JqZWN0KToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIElETFdlYkdMRXh0ZW5zaW9uLgor
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMQW55Lmg6CisgICAgICAgIE1vdmVkIGNvbnZlcnRUb0pTVmFsdWUg
dG8gdGhlIGJpbmRpbmdzIHdoZXJlIGl0IGJlbG9uZ3MuCisKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbDoKKyAgICAgICAgQW5ub3RhdGUgZ2V0RXh0
ZW5zaW9uIHdpdGggW092ZXJyaWRlSURMVHlwZT1JRExXZWJHTEV4dGVuc2lvbl0uCisKIDIwMTct
MDctMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
QW5vdGhlciBidWlsZCBmaXgsIGZvciBNYWMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2
aXNpb24gMjE5MTQwKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTExNDcsNiArMTE0Nyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dE51bWJlcnMuY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHAKKyAg
ICBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRXZWJHTC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RP
TUl0ZXJhdG9yLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRm9udEZhY2VDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNGb250RmFjZVNldEN1c3RvbS5jcHAKQEAgLTMxNzQsNyArMzE3NSw2IEBA
IGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxv
YXRMaW5lYXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNw
cAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAotICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3Bw
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDIxOTE0MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjkxMCw3ICsyOTEwLDYgQEAKIAkJ
NkUzRkFFOEUxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThDMTQ3MzNGREIw
MEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5jcHAgKi87IH07CiAJCTZFM0ZBRThGMTQ3MzNG
REIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFFOEQxNDczM0ZEQjAwRTQyMzA2
IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggKi87IH07CiAJCTZFM0ZBRThGMTQ3MzNG
REIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFFOEQxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdM
RGVwdGhUZXh0dXJlLmggKi87IH07Ci0JCTZFNDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJH
TEFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3BwICovOyB9OwogCQk2RTQ3RTY2
MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFu
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZF
NEFCQ0Q0MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNEMjEzOEVBMEI3
MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovOyB9OwogCQk2RTRBQkNENTEz
OEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAv
KiBKU0hUTUxVbmtub3duRWxlbWVudC5oICovOyB9OwpAQCAtMzI2Myw2ICszMjYyLDcgQEAKIAkJ
N0M5REJGRUUxQTlDNDlCMTAwMEQ2QjI1IC8qIEpTSFRNTEF0dGFjaG1lbnRFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzlEQkZFQzFBOUM0
OUIxMDAwRDZCMjUgLyogSlNIVE1MQXR0YWNobWVudEVsZW1lbnQuaCAqLzsgfTsKIAkJN0NCNUNB
M0YxRTUyNUM3MTAwRkFFRjEzIC8qIE1lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQjVDQTNEMUU1MjVDNkMwMEZB
RUYxMyAvKiBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgKi87IH07CiAJCTdDQjVDQTQwMUU1MjVD
NzMwMEZBRUYxMyAvKiBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCNUNBM0UxRTUyNUM2QzAwRkFFRjEzIC8qIE1l
ZGlhUXVlcnlFeHByZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJN0NCQTVCQTcxRjBCNEJERTAwMzRENzQ1IC8qIEpTRE9NQ29udmVydFdl
YkdMLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
QkE1QkE2MUYwQjRCREUwMDM0RDc0NSAvKiBKU0RPTUNvbnZlcnRXZWJHTC5jcHAgKi87IH07CiAJ
CTdDQzAxRDBBMUU0QTdCMDQwMEU1MjlDQyAvKiBKU0RPTUJ1aWx0aW5Db25zdHJ1Y3RvckJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwQ0VG
MkUxRTRBNTgzMjAwOERFQjgwIC8qIEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yQmFzZS5jcHAgKi87
IH07CiAJCTdDQzAxRDBCMUU0QTdCMDQwMEU1MjlDQyAvKiBKU0RPTUNvbnN0cnVjdG9yQmFzZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzBDRUYy
RjFFNEE1OEFEMDA4REVCODAgLyogSlNET01Db25zdHJ1Y3RvckJhc2UuY3BwICovOyB9OwogCQk3
Q0MwMUQwQzFFNEE3QjA0MDBFNTI5Q0MgLyogSlNET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzBDRUYz
MDFFNEE1OEYxMDA4REVCODAgLyogSlNET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudC5jcHAgKi87
IH07CkBAIC0xMDc2Nyw3ICsxMDc2Nyw2IEBACiAJCTZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNyAv
KiBXZWJHTERlcHRoVGV4dHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJHTERlcHRoVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUU5
MDE0NzMzRkVBMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA3IC8qIFdlYkdM
RGVwdGhUZXh0dXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVy
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVFMTBCNzk0NEIwMEIx
ODZDOCAvKiBXZWJHTEFueS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHTEFueS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNDdFNjVGMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHTEFueS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMjEz
OEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1M
VW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1M
VW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzcyLDYg
KzExMzcxLDcgQEAKIAkJN0M5REJGRUMxQTlDNDlCMTAwMEQ2QjI1IC8qIEpTSFRNTEF0dGFjaG1l
bnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTEF0dGFj
aG1lbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQjVDQTNEMUU1
MjVDNkMwMEZBRUYxMyAvKiBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQjVDQTNFMUU1MjVDNkMwMEZBRUYxMyAvKiBNZWRpYVF1
ZXJ5RXhwcmVzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVF1
ZXJ5RXhwcmVzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0JBNUJBNjFG
MEI0QkRFMDAzNEQ3NDUgLyogSlNET01Db252ZXJ0V2ViR0wuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNET01Db252ZXJ0V2ViR0wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
Q0MyRERGODFFQzk0MTVBMDAyN0I3NzQgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDQzJEREZBMUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0NDMkRERkUxRUM5NUE0NDAwMjdCNzc0IC8qIEpTTm90aWZpY2F0aW9u
UGVybWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05v
dGlmaWNhdGlvblBlcm1pc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTgwODksNyArMTgwODksNiBAQAogCQkJCUQzRjNEMzVEMUE2OUE1MDYwMDU5RkMyQiAvKiBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywKIAkJCQlBN0QyMEY2QjEwN0Y0MzhCMDBBODAzOTIg
LyogV2ViR0xBY3RpdmVJbmZvLmggKi8sCiAJCQkJQTdEMjBGM0IxMDdGMzczODAwQTgwMzkyIC8q
IFdlYkdMQWN0aXZlSW5mby5pZGwgKi8sCi0JCQkJNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8q
IFdlYkdMQW55LmNwcCAqLywKIAkJCQk2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xB
bnkuaCAqLywKIAkJCQk0OUM3QjlBODEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuY3Bw
ICovLAogCQkJCTQ5QzdCOUE5MTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5oICovLApA
QCAtMTk3OTcsNiArMTk3OTYsOCBAQAogCQkJCTUxNkJCNzkyMENFOTFFNjgwMDUxMkY3OSAvKiBK
U1RyZWVXYWxrZXJDdXN0b20uY3BwICovLAogCQkJCUJFNkRGNzA4MTcxQ0EyQzUwMERENTJCOCAv
KiBKU1ZpZGVvVHJhY2tDdXN0b20uY3BwICovLAogCQkJCUJFNkRGNzBBMTcxQ0EyQzUwMERENTJC
OCAvKiBKU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNwcCAqLywKKwkJCQlEM0YzRDM1OTFBNjlBM0Iw
MDA1OUZDMkIgLyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKKwkJCQk0
OUVFRDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwICovLAogCQkJCTMxQTA4OEM0MUU3MzdCMkMwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwICovLAogCQkJCTMxQTA4OEM1MUU3MzdCMkMwMDNCNjYwOSAvKiBK
U1dlYkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvckN1c3RvbS5jcHAgKi8sCiAJCQkJ
ODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwICovLApA
QCAtMTk4NjcsMTEgKzE5ODY4LDIzIEBACiAJCQkJN0M4RTM0QTkxRTRBMzM4RTAwNTRDRTIzIC8q
IEpTRE9NQ29udmVydFVuaW9uLmggKi8sCiAJCQkJN0M4RTM0QUExRTRBMzM4RTAwNTRDRTIzIC8q
IEpTRE9NQ29udmVydFZhcmlhZGljLmggKi8sCiAJCQkJN0M4RTM0QUIxRTRBMzM4RTAwNTRDRTIz
IC8qIEpTRE9NQ29udmVydFdlYkdMLmggKi8sCisJCQkJN0NCQTVCQTYxRjBCNEJERTAwMzRENzQ1
IC8qIEpTRE9NQ29udmVydFdlYkdMLmNwcCAqLywKIAkJCQk3QzhFMzRBQzFFNEEzMzhFMDA1NENF
MjMgLyogSlNET01Db252ZXJ0WFBhdGhOU1Jlc29sdmVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9
IENvbnZlcnNpb25zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJN0NCQTVC
QTkxRjBCNTE0ODAwMzRENzQ1IC8qIFByb21pc2VzIE9ubHkgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyODA4MzQxMUM2REM5NkEwMDE0NTFCNiAvKiBK
U0ZvbnRGYWNlQ3VzdG9tLmNwcCAqLywKKwkJCQkxQzI0RUVBQTFDNzJBQTBBMDA4MEY4RkMgLyog
SlNGb250RmFjZVNldEN1c3RvbS5jcHAgKi8sCisJCQkJMkQ5QkY3NDgxREJGRERGODAwN0E3RDk5
IC8qIEpTTWVkaWFLZXlTZXNzaW9uQ3VzdG9tLmNwcCAqLywKKwkJCQkzODg1MEM1MjFFOTY0QzEx
MDBDNjA3NTMgLyogSlNXZWJHUFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcCAqLywKKwkJCSk7CisJ
CQluYW1lID0gIlByb21pc2VzIE9ubHkiOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJN0U0REUxMEIxOThCMTA4MTAwNTFDQjAyIC8qIGNvY29hICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIzNjkyLDYgKzIzNzA1LDcgQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJN0MzRDhFRTQxRTA4QkFCRTAwMjNC
MDg0IC8qIEdDIC8gV3JhcHBpbmcgT25seSAqLywKKwkJCQk3Q0JBNUJBOTFGMEI1MTQ4MDAzNEQ3
NDUgLyogUHJvbWlzZXMgT25seSAqLywKIAkJCQlBNTg0RkUzNzE4NjREQUMxMDA4NDNCMTAgLyog
SlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwICovLAogCQkJCUUxNTdBOEU2MTgxODRDNjcw
MDlGODIxRCAvKiBKU0NyeXB0b0tleUN1c3RvbS5jcHAgKi8sCiAJCQkJQkM1ODI1RjIwQzBCODkz
ODAwNTNGMUI1IC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgKi8sCkBAIC0yMzcw
MCw4ICsyMzcxNCw2IEBACiAJCQkJREVDMjk3NUQxQjRERUIyQTAwNUY1OTQ1IC8qIEpTQ3VzdG9t
RXZlbnRDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RP
TVdpbmRvd0N1c3RvbS5jcHAgKi8sCiAJCQkJNjUyRkJCQkIwREUyN0NCNjAwMDFEMzg2IC8qIEpT
RE9NV2luZG93Q3VzdG9tLmggKi8sCi0JCQkJQzI4MDgzNDExQzZEQzk2QTAwMTQ1MUI2IC8qIEpT
Rm9udEZhY2VDdXN0b20uY3BwICovLAotCQkJCTFDMjRFRUFBMUM3MkFBMEEwMDgwRjhGQyAvKiBK
U0ZvbnRGYWNlU2V0Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0U3QjE5MjBENEU4Njk2MDA3NUE1Mzkg
LyogSlNIaXN0b3J5Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzRFREVGMzBDMDhGM0ZCMDA3RURENDkg
LyogSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJOTM5MjI2MkMxMDMyMTA3
QjAwNkU3RDVEIC8qIEpTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwICovLApAQCAtMjM3MTEs
NyArMjM3MjMsNiBAQAogCQkJCUQ2Rjc5NjBDMTY2RkZFQ0UwMDc2REQxOCAvKiBKU0hUTUxUZW1w
bGF0ZUVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCTdBNzRFQ0JDMTAxODM5REEwMEJGOTM5RSAv
KiBKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFMUM0M0YwRDk4
MzBGNDAwM0IwMkYyIC8qIEpTTG9jYXRpb25DdXN0b20uY3BwICovLAotCQkJCTJEOUJGNzQ4MURC
RkRERjgwMDdBN0Q5OSAvKiBKU01lZGlhS2V5U2Vzc2lvbkN1c3RvbS5jcHAgKi8sCiAJCQkJNDEw
QjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLywKIAkJ
CQlBMUU1QjMxRDFBQUQxREE0MDA2RUJFRkIgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
Q3VzdG9tLmNwcCAqLywKIAkJCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCAqLywKQEAgLTIzNzE5LDkgKzIzNzMwLDYgQEAKIAkJCQk0MThD
Mzk1RDFDOEYwQUFCMDA1MUM4QTMgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAg
Ki8sCiAJCQkJNTFEMEM1MTUwREFBOTBCNzAwM0IzODMxIC8qIEpTU3RvcmFnZUN1c3RvbS5jcHAg
Ki8sCiAJCQkJNTdBOUM4OEQxREE3MEJGODAwQkM3MzA1IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcCAqLywKLQkJCQlEM0YzRDM1OTFBNjlBM0IwMDA1OUZDMkIgLyogSlNXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKLQkJCQk0OUVFRDE0QzEwNTE5NzFBMDAwOTlGQUIgLyog
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAotCQkJCTM4ODUwQzUyMUU5NjRD
MTEwMEM2MDc1MyAvKiBKU1dlYkdQVUNvbW1hbmRCdWZmZXJDdXN0b20uY3BwICovLAogCQkJCUUx
RkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAg
Ki8sCiAJCQkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVD
dXN0b20uY3BwICovLAogCQkJCUJDMzQ4QkJEMERCN0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCAqLywKQEAgLTMwNzk4LDYgKzMwODA2LDcgQEAKIAkJCQlDRDBFRUUw
RTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGRDMxNjBCQzEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk1hYy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAwNzEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0NCQTVCQTcxRjBCNEJERTAw
MzRENzQ1IC8qIEpTRE9NQ29udmVydFdlYkdMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2
MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDRDU1OTY5MTE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVy
SU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEJFMTJCMDI3MkEwMEMxQTM1OSAvKiBB
dWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzg4Niw3ICszMzg5NSw2
IEBACiAJCQkJRkUwRDg0RUIxMDQ4NDM2RTAwMUExNzlFIC8qIFdlYkV2ZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMjI1QTE2QjYwRDVDMTFFOTAwMDkwMjk1IC8qIFdlYkV2ZW50UmVnaW9uLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJRDNGM0QzNkQxQTY5QjdEQzAwNTlGQzJCIC8qIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNkU0N0U2NjAxMEI3OTQ0QjAw
QjE4NkM4IC8qIFdlYkdMQW55LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRkZDNDUzMUQ1RTgx
QzQwMDI2N0E2NiAvKiBXZWJHTEJsYWNrbGlzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdC
OUM4MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3RTY2RTIzMzE2RDZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5j
cHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaAkocmV2
aXNpb24gMjE5MTQwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAgY2xhc3MgSURCS2V5RGF0YTsKIGNsYXNzIElE
QlZhbHVlOwogY2xhc3MgRE9NUHJvbWlzZTsKIAorI2lmIEVOQUJMRShXRUJHTCkKK2NsYXNzIFdl
YkdMRXh0ZW5zaW9uOworI2VuZGlmCisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgSURM
VHlwZSB7CiAgICAgdXNpbmcgSW1wbGVtZW50YXRpb25UeXBlID0gVDsKQEAgLTI1OCw2ICsyNjIs
NyBAQCBzdHJ1Y3QgSURMSURCVmFsdWUgOiBJRExXcmFwcGVyPElEQlZhbHVlCiAKICNpZiBFTkFC
TEUoV0VCR0wpCiBzdHJ1Y3QgSURMV2ViR0xBbnkgOiBJRExUeXBlPFdlYkdMQW55PiB7IH07Citz
dHJ1Y3QgSURMV2ViR0xFeHRlbnNpb24gOiBJRExXcmFwcGVyPFdlYkdMRXh0ZW5zaW9uPiB7IH07
CiAjZW5kaWYKIAogLy8gSGVscGVyIHByZWRpY2F0ZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydFdlYkdMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRXZWJHTC5jcHAJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2ViR0wuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFdlYkdMLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisK
KyNpbmNsdWRlICJKU0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCisjaW5jbHVkZSAiSlNET01Db252
ZXJ0QnVmZmVyU291cmNlLmgiCisjaW5jbHVkZSAiSlNFWFRCbGVuZE1pbk1heC5oIgorI2luY2x1
ZGUgIkpTRVhURnJhZ0RlcHRoLmgiCisjaW5jbHVkZSAiSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmgi
CisjaW5jbHVkZSAiSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKKyNpbmNsdWRlICJK
U0VYVHNSR0IuaCIKKyNpbmNsdWRlICJKU09FU0VsZW1lbnRJbmRleFVpbnQuaCIKKyNpbmNsdWRl
ICJKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKKyNpbmNsdWRlICJKU09FU1RleHR1cmVGbG9h
dC5oIgorI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0TGluZWFyLmgiCisjaW5jbHVkZSAiSlNP
RVNUZXh0dXJlSGFsZkZsb2F0LmgiCisjaW5jbHVkZSAiSlNPRVNUZXh0dXJlSGFsZkZsb2F0TGlu
ZWFyLmgiCisjaW5jbHVkZSAiSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgorI2luY2x1ZGUgIkpT
V2ViR0xCdWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCIK
KyNpbmNsdWRlICJKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oIgorI2luY2x1ZGUgIkpT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCIKKyNpbmNsdWRlICJKU1dlYkdMRGVidWdSZW5k
ZXJlckluZm8uaCIKKyNpbmNsdWRlICJKU1dlYkdMRGVidWdTaGFkZXJzLmgiCisjaW5jbHVkZSAi
SlNXZWJHTERlcHRoVGV4dHVyZS5oIgorI2luY2x1ZGUgIkpTV2ViR0xEcmF3QnVmZmVycy5oIgor
I2luY2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xMb3NlQ29u
dGV4dC5oIgorI2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCisjaW5jbHVkZSAiSlNXZWJHTFJl
bmRlcmJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xUZXh0dXJlLmgiCisjaW5jbHVkZSAiSlNX
ZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCisjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVzZSB0aGUgSURMVW5pb24gSlNDb252ZXJ0ZXIuCitK
U1ZhbHVlIGNvbnZlcnRUb0pTVmFsdWUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xBbnkmIGFueSkKK3sKKyAgICByZXR1cm4gV1RG
Ojpzd2l0Y2hPbihhbnksCisgICAgICAgIFtdIChzdGQ6Om51bGxwdHJfdCkgeworICAgICAgICAg
ICAgcmV0dXJuIGpzTnVsbCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoYm9vbCB2YWx1ZSkg
eworICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih2YWx1ZSk7CisgICAgICAgIH0sCisgICAg
ICAgIFtdIChpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7
CisgICAgICAgIH0sCisgICAgICAgIFtdICh1bnNpZ25lZCB2YWx1ZSkgeworICAgICAgICAgICAg
cmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGxvbmcgbG9u
ZyB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNOdW1i
ZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYgdmFsdWUp
IHsKKyAgICAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZSgmc3RhdGUsIHZhbHVlKTsK
KyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8Ym9vbD4mIHZhbHVlcykgewor
ICAgICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKKyAgICAgICAgICAgIGZvciAo
YXV0byYgdmFsdWUgOiB2YWx1ZXMpCisgICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQoanNCb29s
ZWFuKHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoJnN0YXRlLCAw
LCAmZ2xvYmFsT2JqZWN0LCBsaXN0KTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBS
ZWZQdHI8RmxvYXQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZz
dGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBb
Jl0gKGNvbnN0IFJlZlB0cjxJbnQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAor
ICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50OEFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAg
ICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50MzJBcnJheT4mIGFycmF5KSB7
CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5Lmdl
dCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xCdWZmZXI+
JiBidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVj
dCwgYnVmZmVyLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBb
Jl0gKGNvbnN0IFJlZlB0cjxXZWJHTFByb2dyYW0+JiBwcm9ncmFtKSB7CisgICAgICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHByb2dyYW0uZ2V0KCkpOworICAgICAg
ICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4mIGJ1ZmZl
cikgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZm
ZXIuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFRl
eHR1cmU+JiB0ZXh0dXJlKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHRleHR1cmUuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0
IFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiYgYXJyYXkpIHsKKyAgICAgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAg
ICB9CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgLAorICAgICAgICBbJl0gKGNvbnN0IFJl
ZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9Cisj
ZW5kaWYKKyAgICApOworfQorCitKU1ZhbHVlIGNvbnZlcnRUb0pTVmFsdWUoRXhlY1N0YXRlJiBz
dGF0ZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbnNpb24mIGV4
dGVuc2lvbikKK3sKKyAgICBzd2l0Y2ggKGV4dGVuc2lvbi5nZXROYW1lKCkpIHsKKyAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpXZWJHTExvc2VDb250ZXh0TmFtZToKKyAgICAgICAgcmV0dXJuIHRv
SlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTExvc2VDb250ZXh0Jj4o
ZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUU2hhZGVyVGV4dHVyZUxP
RE5hbWU6CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8RVhUU2hhZGVyVGV4dHVyZUxPRCY+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xF
eHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWU6CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljJj4oZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhU
c1JHQk5hbWU6CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8RVhUc1JHQiY+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246
OkVYVEZyYWdEZXB0aE5hbWU6CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8RVhURnJhZ0RlcHRoJj4oZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6RVhUQmxlbmRNaW5NYXhOYW1lOgorICAgICAgICByZXR1cm4gdG9KUygm
c3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEJsZW5kTWluTWF4Jj4oZXh0ZW5z
aW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05h
bWU6CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyY+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xF
eHRlbnNpb246Ok9FU1RleHR1cmVGbG9hdE5hbWU6CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0Jj4oZXh0ZW5zaW9u
KSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUZsb2F0TGluZWFyTmFtZToK
KyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxP
RVNUZXh0dXJlRmxvYXRMaW5lYXImPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpPRVNUZXh0dXJlSGFsZkZsb2F0TmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0Jj4oZXh0ZW5z
aW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVh
ck5hbWU6CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhciY+KGV4dGVuc2lvbikpOworICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKKyAgICAgICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9i
amVjdCY+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU0VsZW1lbnRJ
bmRleFVpbnROYW1lOgorICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVpbnQmPihleHRlbnNpb24pKTsKKyAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZToKKyAgICAgICAgcmV0
dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvJj4oZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xE
ZWJ1Z1NoYWRlcnNOYW1lOgorICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzJj4oZXh0ZW5zaW9uKSk7CisgICAgY2Fz
ZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQ05hbWU6CisgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFUQyY+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246
OldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQ05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKCZz
dGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDJj4oZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVENOYW1lOgorICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxP
YmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDJj4oZXh0ZW5zaW9u
KSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZXB0aFRleHR1cmVOYW1lOgorICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdM
RGVwdGhUZXh0dXJlJj4oZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2Vi
R0xEcmF3QnVmZmVyc05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEcmF3QnVmZmVycyY+KGV4dGVuc2lvbikpOworICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OkFOR0xFSW5zdGFuY2VkQXJyYXlzTmFtZToKKyAgICAgICAgcmV0
dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxBTkdMRUluc3RhbmNl
ZEFycmF5cyY+KGV4dGVuc2lvbikpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4ganNOdWxsKCk7Cit9CisKK30KKworI2VuZGlmCisKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFdlYkdMLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2ViR0wuaAkocmV2aXNpb24gMjE5
MTQwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2ViR0wuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsMjAgQEAKICNpZiBFTkFCTEUoV0VCR0wpCiAKICNp
bmNsdWRlICJJRExUeXBlcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJhc2UuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitKU0M6OkpTVmFsdWUgY29udmVydFRvSlNWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgY29uc3QgV2ViR0xBbnkmKTsKK0pTQzo6SlNW
YWx1ZSBjb252ZXJ0VG9KU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3Qm
LCBXZWJHTEV4dGVuc2lvbiYpOworCitpbmxpbmUgSlNDOjpKU1ZhbHVlIGNvbnZlcnRUb0pTVmFs
dWUoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
LCBXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uKQoreworICAgIGlmICghZXh0ZW5zaW9uKQorICAg
ICAgICByZXR1cm4gSlNDOjpqc051bGwoKTsKKyAgICByZXR1cm4gY29udmVydFRvSlNWYWx1ZShz
dGF0ZSwgZ2xvYmFsT2JqZWN0LCAqZXh0ZW5zaW9uKTsKK30KKwogdGVtcGxhdGU8PiBzdHJ1Y3Qg
SlNDb252ZXJ0ZXI8SURMV2ViR0xBbnk+IHsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVl
ZHNTdGF0ZSA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzR2xvYmFsT2Jq
ZWN0ID0gdHJ1ZTsKQEAgLTQxLDYgKzUyLDE3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEpTQ29udmVy
dGVyPElETFdlYkdMQW4KICAgICB9CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBKU0NvbnZlcnRl
cjxJRExXZWJHTEV4dGVuc2lvbj4geworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc1N0
YXRlID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNHbG9iYWxPYmplY3Qg
PSB0cnVlOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCwgY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVy
dFRvSlNWYWx1ZShzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBEZXRhaWw6OmdldFB0ck9yUmVmKHZhbHVl
KSk7CisgICAgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE5MTQwKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzksMjUgKzM5LDYgQEAgdm9pZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OnZpc2l0QWRkaQogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgpKTsKIH0K
IAotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUmLCBKU0RPTUdsb2JhbE9iamVjdCYsIFdl
YkdMRXh0ZW5zaW9uKikKLXsKLSAgICAvLyBObyBleHRlbnNpb25zIGZvciBXZWJHTDIgYXQgdGhl
IG1vbWVudC4KLSAgICByZXR1cm4ganNOdWxsKCk7Ci19Ci0KLUpTVmFsdWUgSlNXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBWTSYg
dm0gPSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKLQotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICByZXR1cm4g
dGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KS50b1dURlN0cmluZygmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7Ci0gICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdl
dEV4dGVuc2lvbihuYW1lKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9u
IDIxOTE0MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNTQgKzI2LDggQEAKICNpbmNs
dWRlICJjb25maWcuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKKwogI2luY2x1ZGUgIkpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCi0jaW5jbHVk
ZSAiRVhUQmxlbmRNaW5NYXguaCIKLSNpbmNsdWRlICJFWFRGcmFnRGVwdGguaCIKLSNpbmNsdWRl
ICJFWFRTaGFkZXJUZXh0dXJlTE9ELmgiCi0jaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljLmgiCi0jaW5jbHVkZSAiRVhUc1JHQi5oIgotI2luY2x1ZGUgIkpTQU5HTEVJbnN0YW5j
ZWRBcnJheXMuaCIKLSNpbmNsdWRlICJKU0VYVEJsZW5kTWluTWF4LmgiCi0jaW5jbHVkZSAiSlNF
WFRGcmFnRGVwdGguaCIKLSNpbmNsdWRlICJKU0VYVFNoYWRlclRleHR1cmVMT0QuaCIKLSNpbmNs
dWRlICJKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgotI2luY2x1ZGUgIkpTRVhUc1JH
Qi5oIgotI2luY2x1ZGUgIkpTT0VTRWxlbWVudEluZGV4VWludC5oIgotI2luY2x1ZGUgIkpTT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5oIgotI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0LmgiCi0j
aW5jbHVkZSAiSlNPRVNUZXh0dXJlRmxvYXRMaW5lYXIuaCIKLSNpbmNsdWRlICJKU09FU1RleHR1
cmVIYWxmRmxvYXQuaCIKLSNpbmNsdWRlICJKU09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuaCIK
LSNpbmNsdWRlICJKU09FU1ZlcnRleEFycmF5T2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmgiCi0jaW5jbHVkZSAiSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVEMuaCIKLSNpbmNsdWRlICJKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmgiCi0jaW5j
bHVkZSAiSlNXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgiCi0jaW5jbHVkZSAiSlNXZWJHTERlYnVn
U2hhZGVycy5oIgotI2luY2x1ZGUgIkpTV2ViR0xEZXB0aFRleHR1cmUuaCIKLSNpbmNsdWRlICJK
U1dlYkdMRHJhd0J1ZmZlcnMuaCIKLSNpbmNsdWRlICJKU1dlYkdMTG9zZUNvbnRleHQuaCIKLSNp
bmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKLSNpbmNsdWRlICJKU1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlICJPRVNFbGVtZW50SW5kZXhVaW50LmgiCi0j
aW5jbHVkZSAiT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgotI2luY2x1ZGUgIk9FU1RleHR1cmVG
bG9hdC5oIgotI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdExpbmVhci5oIgotI2luY2x1ZGUgIk9F
U1RleHR1cmVIYWxmRmxvYXQuaCIKLSNpbmNsdWRlICJPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFy
LmgiCi0jaW5jbHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3QuaCIKLSNpbmNsdWRlICJXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmgiCi0jaW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDLmgiCi0jaW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCIKLSNpbmNsdWRl
ICJXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgiCi0jaW5jbHVkZSAiV2ViR0xEZWJ1Z1NoYWRlcnMu
aCIKLSNpbmNsdWRlICJXZWJHTERlcHRoVGV4dHVyZS5oIgotI2luY2x1ZGUgIldlYkdMRHJhd0J1
ZmZlcnMuaCIKLSNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgIldlYkdMTG9z
ZUNvbnRleHQuaCIKLSNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCi0jaW5jbHVk
ZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CkBAIC04NCw3MSArMzgsNiBAQCB2b2lkIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdEFk
ZGl0CiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZ3cmFwcGVkKCkpOwogfQogCi1zdGF0aWMg
SlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCi17Ci0gICAgaWYgKCFleHRlbnNpb24p
Ci0gICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0TmFt
ZSgpKSB7Ci0gICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xMb3NlQ29udGV4dE5hbWU6Ci0g
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2Vi
R0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVY
VFNoYWRlclRleHR1cmVMT0ROYW1lOgotICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFNoYWRlclRleHR1cmVMT0QqPihleHRlbnNpb24pKTsK
LSAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1l
OgotICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2Vi
R0xFeHRlbnNpb246OkVYVHNSR0JOYW1lOgotICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihleHRlbnNpb24pKTsKLSAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpFWFRGcmFnRGVwdGhOYW1lOgotICAgICAgICByZXR1cm4gdG9KUygm
c3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVuc2lv
bikpOwotICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVEJsZW5kTWluTWF4TmFtZToKLSAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVu
ZE1pbk1heCo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxP
YmplY3QsIHN0YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsK
LSAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlRmxvYXROYW1lOgotICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVG
bG9hdCo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVG
bG9hdExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7Ci0gICAg
Y2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUhhbGZGbG9hdE5hbWU6Ci0gICAgICAgIHJl
dHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhh
bGZGbG9hdCo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXJOYW1lOgotICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIqPihleHRlbnNp
b24pKTsKLSAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU6
Ci0gICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24pKTsKLSAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpPRVNFbGVtZW50SW5kZXhVaW50TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5z
aW9uKSk7Ci0gICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05h
bWU6Ci0gICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2ViR0xF
eHRlbnNpb246OldlYkdMRGVidWdTaGFkZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVu
c2lvbikpOwotICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VENOYW1lOgotICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKLSAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOgotICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVQVlJUQyo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMo
JnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQyo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVwdGhU
ZXh0dXJlTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTERlcHRoVGV4dHVyZSo+KGV4dGVuc2lvbikpOwotICAgIGNhc2UgV2Vi
R0xFeHRlbnNpb246OldlYkdMRHJhd0J1ZmZlcnNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUygm
c3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRHJhd0J1ZmZlcnMqPihleHRl
bnNpb24pKTsKLSAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpBTkdMRUluc3RhbmNlZEFycmF5c05h
bWU6Ci0gICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8QU5HTEVJbnN0YW5jZWRBcnJheXMqPihleHRlbnNpb24pKTsKLSAgICB9Ci0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGpzTnVsbCgpOwotfQotCi1KU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAg
ICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLQotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICBy
ZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b1dURlN0cmluZygmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7Ci0gICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBl
ZCgpLmdldEV4dGVuc2lvbihuYW1lKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMTkxNDApCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzIxLDcgKzMyMSw3IEBAIHN1YiBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCRvdmVycmlkZVR5
cGVOYW1lIGVxICJJRExXZWJHTEFueSIpIHsKKyAgICAgICAgaWYgKCRvdmVycmlkZVR5cGVOYW1l
IGVxICJJRExXZWJHTEFueSIgfHwgJG92ZXJyaWRlVHlwZU5hbWUgZXEgIklETFdlYkdMRXh0ZW5z
aW9uIikgewogICAgICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0V2ViR0wuaCIs
ICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpAQCAtNjM4MSw2ICs2MzgxLDcgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnRO
ZWVkc1N0YXRlCiAgICAgICAgIG15ICRvdmVycmlkZVR5cGVOYW1lID0gJHR5cGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e092ZXJyaWRlSURMVHlwZX07CiAgICAgICAgIHJldHVybiAxIGlmICRvdmVy
cmlkZVR5cGVOYW1lIGVxICJJRExJREJLZXkiOwogICAgICAgICByZXR1cm4gMSBpZiAkb3ZlcnJp
ZGVUeXBlTmFtZSBlcSAiSURMV2ViR0xBbnkiOworICAgICAgICByZXR1cm4gMSBpZiAkb3ZlcnJp
ZGVUeXBlTmFtZSBlcSAiSURMV2ViR0xFeHRlbnNpb24iOwogCiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KQEAgLTY0MTMsNiArNjQxNCw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0
TmVlZHNHbG9iYWwKICAgICAgICAgbXkgJG92ZXJyaWRlVHlwZU5hbWUgPSAkdHlwZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfTsKICAgICAgICAgcmV0dXJuIDEgaWYgJG92
ZXJyaWRlVHlwZU5hbWUgZXEgIklETElEQktleSI7CiAgICAgICAgIHJldHVybiAxIGlmICRvdmVy
cmlkZVR5cGVOYW1lIGVxICJJRExXZWJHTEFueSI7CisgICAgICAgIHJldHVybiAxIGlmICRvdmVy
cmlkZVR5cGVOYW1lIGVxICJJRExXZWJHTEV4dGVuc2lvbiI7CiAKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmNwcAkocmV2
aXNpb24gMjE5MTQwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3Bw
CShub25leGlzdGVudCkKQEAgLTEsMTIwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2Vi
R0xBbnkuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkKLQotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5o
IgotI2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJKU1dlYkdMRnJhbWVidWZm
ZXIuaCIKLSNpbmNsdWRlICJKU1dlYkdMUHJvZ3JhbS5oIgotI2luY2x1ZGUgIkpTV2ViR0xSZW5k
ZXJidWZmZXIuaCIKLSNpbmNsdWRlICJKU1dlYkdMVGV4dHVyZS5oIgotI2luY2x1ZGUgIkpTV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgotI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+Ci0KLSNp
ZiBFTkFCTEUoV0VCR0wyKQotI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgot
I2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQot
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIHVzZSB0aGUgSURMVW5pb24gSlNDb252ZXJ0ZXIuCi1KU1Zh
bHVlIGNvbnZlcnRUb0pTVmFsdWUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xBbnkmIGFueSkKLXsKLSAgICByZXR1cm4gV1RGOjpz
d2l0Y2hPbihhbnksCi0gICAgICAgIFtdIChzdGQ6Om51bGxwdHJfdCkgewotICAgICAgICAgICAg
cmV0dXJuIGpzTnVsbCgpOwotICAgICAgICB9LAotICAgICAgICBbXSAoYm9vbCB2YWx1ZSkgewot
ICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih2YWx1ZSk7Ci0gICAgICAgIH0sCi0gICAgICAg
IFtdIChpbnQgdmFsdWUpIHsKLSAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7Ci0g
ICAgICAgIH0sCi0gICAgICAgIFtdICh1bnNpZ25lZCB2YWx1ZSkgewotICAgICAgICAgICAgcmV0
dXJuIGpzTnVtYmVyKHZhbHVlKTsKLSAgICAgICAgfSwKLSAgICAgICAgW10gKGxvbmcgbG9uZyB2
YWx1ZSkgewotICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKLSAgICAgICAgfSwK
LSAgICAgICAgW10gKGZsb2F0IHZhbHVlKSB7Ci0gICAgICAgICAgICByZXR1cm4ganNOdW1iZXIo
dmFsdWUpOwotICAgICAgICB9LAotICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsK
LSAgICAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZSgmc3RhdGUsIHZhbHVlKTsKLSAg
ICAgICAgfSwKLSAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8Ym9vbD4mIHZhbHVlcykgewotICAg
ICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKLSAgICAgICAgICAgIGZvciAoYXV0
byYgdmFsdWUgOiB2YWx1ZXMpCi0gICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQoanNCb29sZWFu
KHZhbHVlKSk7Ci0gICAgICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoJnN0YXRlLCAwLCAm
Z2xvYmFsT2JqZWN0LCBsaXN0KTsKLSAgICAgICAgfSwKLSAgICAgICAgWyZdIChjb25zdCBSZWZQ
dHI8RmxvYXQzMkFycmF5PiYgYXJyYXkpIHsKLSAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOwotICAgICAgICB9LAotICAgICAgICBbJl0g
KGNvbnN0IFJlZlB0cjxJbnQzMkFycmF5PiYgYXJyYXkpIHsKLSAgICAgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOwotICAgICAgICB9LAotICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50OEFycmF5PiYgYXJyYXkpIHsKLSAgICAgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOwotICAgICAg
ICB9LAotICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50MzJBcnJheT4mIGFycmF5KSB7Ci0g
ICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgp
KTsKLSAgICAgICAgfSwKLSAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xCdWZmZXI+JiBi
dWZmZXIpIHsKLSAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
YnVmZmVyLmdldCgpKTsKLSAgICAgICAgfSwKLSAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2Vi
R0xGcmFtZWJ1ZmZlcj4mIGJ1ZmZlcikgewotICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOwotICAgICAgICB9LAotICAgICAgICBbJl0g
KGNvbnN0IFJlZlB0cjxXZWJHTFByb2dyYW0+JiBwcm9ncmFtKSB7Ci0gICAgICAgICAgICByZXR1
cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHByb2dyYW0uZ2V0KCkpOwotICAgICAgICB9
LAotICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4mIGJ1ZmZlcikg
ewotICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIu
Z2V0KCkpOwotICAgICAgICB9LAotICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFRleHR1
cmU+JiB0ZXh0dXJlKSB7Ci0gICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxP
YmplY3QsIHRleHR1cmUuZ2V0KCkpOwotICAgICAgICB9LAotICAgICAgICBbJl0gKGNvbnN0IFJl
ZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiYgYXJyYXkpIHsKLSAgICAgICAgICAgIHJl
dHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOwotICAgICAgICB9
Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICAgICAgLAotICAgICAgICBbJl0gKGNvbnN0IFJlZlB0
cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiYgYXJyYXkpIHsKLSAgICAgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOwotICAgICAgICB9Ci0jZW5k
aWYKLSAgICApOwotfQotCi19Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xBbnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEFueS5oCShyZXZpc2lvbiAyMTkxNDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEFueS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw4ICs3Miw2IEBAIHVzaW5nIFdl
YkdMQW55ID0gVmFyaWFudDwKICNlbmRpZgogPjsKIAotSlNDOjpKU1ZhbHVlIGNvbnZlcnRUb0pT
VmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBKU0RPTUdsb2JhbE9iamVjdCYsIGNvbnN0IFdlYkdMQW55
Jik7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmlkbAkocmV2aXNpb24gMjE5MTQwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU2MCw3ICs1NjAs
NyBAQCB0eXBlZGVmIChJbWFnZURhdGEgb3IgSFRNTEltYWdlRWxlbWVudCBvCiAgICAgR0xlbnVt
IGdldEVycm9yKCk7CiAKICAgICBzZXF1ZW5jZTxET01TdHJpbmc+PyBnZXRTdXBwb3J0ZWRFeHRl
bnNpb25zKCk7Ci0gICAgW0N1c3RvbV0gb2JqZWN0PyBnZXRFeHRlbnNpb24oRE9NU3RyaW5nIG5h
bWUpOworICAgIFtPdmVycmlkZUlETFR5cGU9SURMV2ViR0xFeHRlbnNpb25dIG9iamVjdD8gZ2V0
RXh0ZW5zaW9uKERPTVN0cmluZyBuYW1lKTsKIAogICAgIFtPdmVycmlkZUlETFR5cGU9SURMV2Vi
R0xBbnldIGFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0xlbnVtIHRhcmdl
dCwgR0xlbnVtIGF0dGFjaG1lbnQsIEdMZW51bSBwbmFtZSk7CiAgICAgW092ZXJyaWRlSURMVHlw
ZT1JRExXZWJHTEFueV0gYW55IGdldFBhcmFtZXRlcihHTGVudW0gcG5hbWUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>