<?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>134521</bug_id>
          
          <creation_ts>2014-07-01 16:20:24 -0700</creation_ts>
          <short_desc>iOS should use shared code to determine the system marketing version</short_desc>
          <delta_ts>2014-07-03 09:54:43 -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>WebCore Misc.</component>
          <version>528+ (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>
          
          <blocked>134524</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Mark Rowe (bdash)">mrowe</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1019815</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-07-01 16:20:24 -0700</bug_when>
    <thetext>The iOS implementation of systemMarketingVersion is currently a FIXME. UserAgentIOS.mm has an implementation under the name osMarketingVersion that&apos;s virtually identical to the OS X version. We should only have a single copy of the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019820</commentid>
    <comment_count>1</comment_count>
      <attachid>234214</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-07-01 16:27:12 -0700</bug_when>
    <thetext>Created attachment 234214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020049</commentid>
    <comment_count>2</comment_count>
      <attachid>234214</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-02 14:46:44 -0700</bug_when>
    <thetext>Comment on attachment 234214
Patch

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

&gt; Source/WebCore/page/cocoa/UserAgent.mm:38
&gt; +    return [systemMarketingVersion() stringByReplacingOccurrencesOfString:@&quot;.&quot; withString:@&quot;_&quot;];

It&apos;s sad that we go from String to NSString* and back here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020077</commentid>
    <comment_count>3</comment_count>
      <attachid>234214</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-02 15:39:05 -0700</bug_when>
    <thetext>Comment on attachment 234214
Patch

Clearing flags on attachment: 234214

Committed r170730: &lt;http://trac.webkit.org/changeset/170730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020078</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-02 15:39:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020280</commentid>
    <comment_count>5</comment_count>
      <attachid>234214</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-03 09:54:43 -0700</bug_when>
    <thetext>Comment on attachment 234214
Patch

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

&gt;&gt; Source/WebCore/page/cocoa/UserAgent.mm:38
&gt;&gt; +    return [systemMarketingVersion() stringByReplacingOccurrencesOfString:@&quot;.&quot; withString:@&quot;_&quot;];
&gt; 
&gt; It&apos;s sad that we go from String to NSString* and back here.

WTF::String dose have a function to do this.

    return systemMarketingVersion.replace(&apos;.&apos;, &apos;_&apos;);</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234214</attachid>
            <date>2014-07-01 16:27:12 -0700</date>
            <delta_ts>2014-07-03 09:54:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134521-20140701162653.patch</filename>
            <type>text/plain</type>
            <size>38417</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmUwNjRhYWNkOTgyOWVm
MzI0ODI2OTAzYjFmNjE5MzU4YTQyNjc2ZS4uZTk0ZmVlOTg3MDI5ODRmOWQxYTIwYmUwY2Y0Y2Ew
M2ExNDQwM2M2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA3LTAxICBNYXJr
IFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzEzNDUyMT4gaU9TIHNob3VsZCB1c2Ugc2hhcmVkIGNvZGUgdG8gZGV0ZXJtaW5lIHRoZSBzeXN0
ZW0gbWFya2V0aW5nIHZlcnNpb24KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIHRo
ZSBuZXcgZmlsZXMsIGFuZCBzb3J0IHRoZSBncm91cHMgdGhleSdyZSBpbi4KKyAgICAgICAgKiBw
YWdlL2NvY29hL1VzZXJBZ2VudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9Vc2VyQWdlbnQuaC4KKyAgICAgICAgKiBwYWdlL2NvY29hL1VzZXJBZ2VudC5tbTogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1VzZXJBZ2VudC5oLgorICAgICAgICBNb3Zl
IHN5c3RlbU1hcmtldGluZ1ZlcnNpb25Gb3JVc2VyQWdlbnRTdHJpbmcgdG8gYSBsb2NhdGlvbiB3
aGVyZSBpdCBjYW4gYmUgc2hhcmVkIGJldHdlZW4KKyAgICAgICAgTWFjIGFuZCBpT1MuCisgICAg
ICAgICogcGFnZS9pb3MvVXNlckFnZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6c3RhbmRh
cmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKTogU3dpdGNoIHRvIHN5c3RlbU1hcmtldGlu
Z1ZlcnNpb25Gb3JVc2VyQWdlbnRTdHJpbmcuCisgICAgICAgICogcGFnZS9tYWMvVXNlckFnZW50
TWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3RlbVZlcnNpb24uaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TeXN0ZW1WZXJzaW9uTWFjLmguCisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVtVmVyc2lvbi5tbTogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TeXN0ZW1WZXJzaW9uTWFjLm1tLgorICAgICAgICBN
b3ZlIHRvIGEgbG9jYXRpb24gdGhhdCBtYWtlcyBpdCBjbGVhciB0aGlzIGlzIHNoYXJlZCBiZXR3
ZWVuIE1hYyBhbmQgaU9TLiBFbmFibGUgdGhlIG1vZGVybiBNYWMKKyAgICAgICAgY29kZXBhdGgg
Zm9yIGlPUyBhcyB3ZWxsLgorCiAyMDE0LTA2LTMwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIG5vbi10aHVtYiByZWdpc3RlcnMgaW4g
YXJtdjcgY3NzIGppdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhZjU2Mjk3ZGU0YmNhODI3YTYwZTA0NjA1ZjRi
ZTFmNWY1MmJmMjY0Li41MjkzYzM4ZDI4Yjc5NjJjMDgzODk0ZmUyOWE4YzE5YzM1ZTc1Njg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDctMDEgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KKworICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM0NTIxPiBpT1Mg
c2hvdWxkIHVzZSBzaGFyZWQgY29kZSB0byBkZXRlcm1pbmUgdGhlIHN5c3RlbSBtYXJrZXRpbmcg
dmVyc2lvbgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW06IFVwZGF0ZSAjaW1wb3J0LgorICAgICAg
ICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tOiBEaXR0by4KKwogMjAxNC0wNi0yOSAg
WW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRN
TEltYWdlRWxlbWVudCdzIHNpemVzIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlZDAzOTY4NWYxOTRiYWZmZTE1
ZmZkMWRhNWI5ZTNlMjc3MGJkZDQuLmVjN2NlNGNjMDBkNzFlZjVlZDgwOTc3ZmU1MzVkMTgwMGNl
ODk3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTIxMDEsNiArMjEwMSw5IEBACiAJCTVDRkM0MzUwMTkyNDA5RTMwMEEwRDNC
NSAvKiBQb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUNGQzQzNEUxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJM
b2NrQ29udHJvbGxlci5jcHAgKi87IH07CiAJCTVEMjFBODAyMTNFQ0U1REYwMEJCNzA2NCAvKiBX
ZWJWVFRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUQyMUE4MDAxM0VDRTVERjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNlci5jcHAgKi87IH07
CiAJCTVEMjFBODAzMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjFBODAxMTNFQ0U1REYwMEJC
NzA2NCAvKiBXZWJWVFRQYXJzZXIuaCAqLzsgfTsKKwkJNUQ1OTc1QjMxOTYzNUYxMTAwRDAwODc4
IC8qIFN5c3RlbVZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVENTk3NUIxMTk2MzVGMTEwMEQwMDg3OCAvKiBTeXN0ZW1WZXJzaW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNUQ1OTc1QjQx
OTYzNUYxMTAwRDAwODc4IC8qIFN5c3RlbVZlcnNpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDU5NzVCMjE5NjM1RjExMDBEMDA4NzggLyogU3lz
dGVtVmVyc2lvbi5tbSAqLzsgfTsKKwkJNUQ1OTc1QjcxOTYzNjM3QjAwRDAwODc4IC8qIFVzZXJB
Z2VudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVE
NTk3NUI2MTk2MzYzN0IwMEQwMDg3OCAvKiBVc2VyQWdlbnQubW0gKi87IH07CiAJCTVEODc0RjEz
MEQxNjFEMzIwMDc5NkMzQiAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyMjdERDBBRjU4OUFE
MDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwICovOyB9OwogCQk1RDg3
QkI4MzExRTNFRDg2MDA3MDJCNkYgLyogRXhwb3J0RmlsZUdlbmVyYXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDg3QkI4MjExRTNFRDg2MDA3
MDJCNkYgLyogRXhwb3J0RmlsZUdlbmVyYXRvci5jcHAgKi87IH07CiAJCTVEOEM0REJGMTQyODIy
MkMwMDI2Q0U3MiAvKiBEaXNwbGF5U2xlZXBEaXNhYmxlckNvY29hLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEOEM0REJEMTQyODIyMkMwMDI2Q0U3
MiAvKiBEaXNwbGF5U2xlZXBEaXNhYmxlckNvY29hLmNwcCAqLzsgfTsKQEAgLTIxMDksOCArMjEx
Miw2IEBACiAJCTVEOTI1QjY4MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxCZWhhdmlvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ5MjVCNjYwRjY0
RDRERDAwQjg0N0YwIC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNURBNUUwRkMxMDJCOTUzODAwMDg4Q0Y5IC8qIEpT
V2ViU29ja2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVEQTVFMEZBMTAyQjk1MzgwMDA4OENGOSAvKiBKU1dlYlNvY2tldC5jcHAgKi87IH07CiAJ
CTVEQTVFMEZEMTAyQjk1MzgwMDA4OENGOSAvKiBKU1dlYlNvY2tldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURBNUUwRkIxMDJCOTUzODAwMDg4Q0Y5
IC8qIEpTV2ViU29ja2V0LmggKi87IH07Ci0JCTVEQTk3RUNEMTY4RTc4N0IwMDBFMzY3NiAvKiBT
eXN0ZW1WZXJzaW9uTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1REE5N0VDQjE2OEU3ODdCMDAwRTM2NzYgLyogU3lzdGVtVmVyc2lvbk1hYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTVEQTk3RUNF
MTY4RTc4N0IwMDBFMzY3NiAvKiBTeXN0ZW1WZXJzaW9uTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURBOTdFQ0MxNjhFNzg3QjAwMEUzNjc2IC8q
IFN5c3RlbVZlcnNpb25NYWMubW0gKi87IH07CiAJCTVEQjFCQzZBMTA3MTVBNjQwMEVGQUE0OSAv
KiBUcmFuc2Zvcm1Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVEQjFCQzY4MTA3MTVBNjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2UuaCAq
LzsgfTsKIAkJNURCMUJDNkIxMDcxNUE2NDAwRUZBQTQ5IC8qIFRyYW5zZm9ybVNvdXJjZUxpYnhz
bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURC
MUJDNjkxMDcxNUE2NDAwRUZBQTQ5IC8qIFRyYW5zZm9ybVNvdXJjZUxpYnhzbHQuY3BwICovOyB9
OwogCQk1REY3RjVDMjBGMDFGOTJBMDA1MjZCNEIgLyogQ1NTUHJvcGVydHlOYW1lcy5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjU2NTgwRUYwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaCAqLzsgfTsKQEAg
LTkyMTksNiArOTIyMCw5IEBACiAJCTVEMjFBODAwMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQ
YXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVlRUUGFy
c2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyMUE4MDExM0VDRTVERjAw
QkI3MDY0IC8qIFdlYlZUVFBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJWVFRQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ0QjhDNTIx
MUU1MkM4QjAwQkJCNjJGIC8qIFdlYkNvcmUuZXhwLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYkNvcmUuZXhwLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1RDU5NzVCMTE5
NjM1RjExMDBEMDA4NzggLyogU3lzdGVtVmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTeXN0ZW1WZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTVENTk3NUIyMTk2MzVGMTEwMEQwMDg3OCAvKiBTeXN0ZW1WZXJzaW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3lzdGVtVmVyc2lvbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUQ1OTc1QjYxOTYzNjM3QjAwRDAwODc4IC8qIFVzZXJBZ2Vu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJBZ2VudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ4N0JCNEYxMUUzRUFFQjAwNzAyQjZG
IC8qIFdlYkNvcmVFeHBvcnRGaWxlR2VuZXJhdG9yICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJDb3JlRXhwb3J0RmlsZUdlbmVyYXRvcjsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNUQ4N0JCODIxMUUzRUQ4NjAwNzAyQjZG
IC8qIEV4cG9ydEZpbGVHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gRXhwb3J0RmlsZUdlbmVyYXRvci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0V4cG9ydEZpbGVHZW5lcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQk1RDhDNERCRDE0MjgyMjJDMDAyNkNFNzIgLyogRGlzcGxheVNsZWVwRGlz
YWJsZXJDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNw
bGF5U2xlZXBEaXNhYmxlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTkyMjcsOCArOTIzMSw2IEBACiAJCTVEOTI1QjY2MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxC
ZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxCZWhhdmlv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REE1RTBGQTEwMkI5NTM4MDAwODhD
RjkgLyogSlNXZWJTb2NrZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJTb2NrZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REE1RTBG
QjEwMkI5NTM4MDAwODhDRjkgLyogSlNXZWJTb2NrZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNXZWJTb2NrZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NURBOTdFQ0IxNjhFNzg3QjAwMEUzNjc2IC8qIFN5c3RlbVZlcnNpb25NYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtVmVyc2lvbk1hYy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk1REE5N0VDQzE2OEU3ODdCMDAwRTM2NzYgLyogU3lzdGVtVmVyc2lv
bk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN5c3RlbVZl
cnNpb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQjFCQzY4MTA3MTVB
NjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVHJhbnNmb3JtU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVEQjFCQzY5MTA3MTVBNjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRyYW5zZm9ybVNvdXJjZUxpYnhz
bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REZFQkFCNjE4NTkyQjZEMDBD
NzVCRUIgLyogV2ViS2l0QXZhaWxhYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktpdEF2YWlsYWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTYxNjAsNiArMTYxNjIsMTUgQEAKIAkJCXBhdGggPSBtb2NrOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNUQ1OTc1QjUxOTYzNjJCRTAwRDAwODc4IC8qIGNvY29hICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkyNjI1NUYwMTE4
ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50LmggKi8sCisJCQkJNUQ1OTc1QjYxOTYzNjM3QjAw
RDAwODc4IC8qIFVzZXJBZ2VudC5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1REE1RTBGOTEwMkI5NTA0MDAwODhDRjkg
LyogV2ViU29ja2V0cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC0xNjQ1MCw4ICsxNjQ2MSw2IEBACiAJCQkJOTNCMkQ4MTcwRjk5MjBFRTAwNkFFNkIyIC8q
IFN1ZGRlblRlcm1pbmF0aW9uLm1tICovLAogCQkJCUNEQTA3RkJGMThFMEEyMkIwMDQ2OTlGQSAv
KiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tICovLAogCQkJCUNEQTA3RkMwMThFMEEyMkIwMDQ2
OTlGQSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLmggKi8sCi0JCQkJNURBOTdFQ0IxNjhFNzg3
QjAwMEUzNjc2IC8qIFN5c3RlbVZlcnNpb25NYWMuaCAqLywKLQkJCQk1REE5N0VDQzE2OEU3ODdC
MDAwRTM2NzYgLyogU3lzdGVtVmVyc2lvbk1hYy5tbSAqLywKIAkJCQlCQ0U2NTlFNTBFQTkyRkIy
MDA3RTQ1MzMgLyogVGhlbWVNYWMuaCAqLywKIAkJCQlCQ0U2NTlFODBFQTkyRkZBMDA3RTQ1MzMg
LyogVGhlbWVNYWMubW0gKi8sCiAJCQkJNTFERjZEN0YwQjkyQTE4RTAwQzJEQzg1IC8qIFRocmVh
ZENoZWNrLm1tICovLApAQCAtMTY1MDIsOSArMTY1MTEsOCBAQAogCQk2NUJGMDIxODA5NzQ4MDYz
MDBDNDMxOTYgLyogcGFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCi0JCQkJNUNGQzQzNEUxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxl
ci5jcHAgKi8sCi0JCQkJNUNGQzQzNEYxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29u
dHJvbGxlci5oICovLAogCQkJCTMxNkZFMTA2MEU2RTFEODQwMEJGNjA4OCAvKiBhbmltYXRpb24g
Ki8sCisJCQkJNUQ1OTc1QjUxOTYzNjJCRTAwRDAwODc4IC8qIGNvY29hICovLAogCQkJCTE4QTZD
RDZGMEQ4RjIwMjUwMDFEQzNDRSAvKiBpb3MgKi8sCiAJCQkJOTNDMDlBODIwQjA2NEYwNTAwNUFC
RDREIC8qIG1hYyAqLywKIAkJCQkxQUY2MkVFMTE0REEyMkE3MDA0MTU1NkMgLyogc2Nyb2xsaW5n
ICovLApAQCAtMTY1MjMsMTQgKzE2NTMxLDE0IEBACiAJCQkJMTREODIzOEEwQUY5MkRGNjAwMDRG
MDU3IC8qIENocm9tZS5jcHAgKi8sCiAJCQkJMTREODIzNTAwQUY5MkE3OTAwMDRGMDU3IC8qIENo
cm9tZS5oICovLAogCQkJCTE0RDgyNDA2MEFGOTNBRUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQu
aCAqLywKLQkJCQk5N0M0NzFEOTEyRjkyNUJDMDA4NjM1NEIgLyogQ29udGVudFNlY3VyaXR5UG9s
aWN5LmNwcCAqLywKLQkJCQk5N0M0NzFEQTEyRjkyNUJEMDA4NjM1NEIgLyogQ29udGVudFNlY3Vy
aXR5UG9saWN5LmggKi8sCiAJCQkJMDY1QUQ0RjIwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRN
ZW51Q2xpZW50LmggKi8sCiAJCQkJNTEwNkQ3QkIxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRleHRN
ZW51Q29udGV4dC5jcHAgKi8sCiAJCQkJNTEwNkQ3QkMxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRl
eHRNZW51Q29udGV4dC5oICovLAogCQkJCTA2NUFENEYzMEIwQzJFREEwMDVBMkIxRCAvKiBDb250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovLAogCQkJCTA2NUFENEY0MEIwQzJFREEwMDVBMkIxRCAv
KiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCAqLywKIAkJCQk3QURFNzIyNTEwQ0JCQjlCMDA2QjNC
M0EgLyogQ29udGV4dE1lbnVQcm92aWRlci5oICovLAorCQkJCTk3QzQ3MUQ5MTJGOTI1QkMwMDg2
MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3kuY3BwICovLAorCQkJCTk3QzQ3MURBMTJGOTI1
QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3kuaCAqLywKIAkJCQk5NzVDQTI4NzEz
MDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBF
OTlBRDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENy
eXB0by5pZGwgKi8sCkBAIC0xNjYzOCw2ICsxNjY0Niw4IEBACiAJCQkJOEFGNEU1NTkxMURDNUE2
MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmggKi8sCiAJCQkJOEFGNEU1NUExMURDNUE2
MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmlkbCAqLywKIAkJCQkzMUQ1OTFCMTE2Njk3
QTZDMDBFNkJGMDIgLyogUGx1Z0luQ2xpZW50LmggKi8sCisJCQkJNUNGQzQzNEUxOTI0MDZBOTAw
QTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAgKi8sCisJCQkJNUNGQzQzNEYxOTI0
MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oICovLAogCQkJCTM3NzJCMDk1
MTY1MzU4NTYwMDBBNDlDQSAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oICovLAogCQkJCUI3NzZE
NDNDMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3BwICovLAogCQkJCUI3NzZENDNB
MTEwNDUyNUQwMEJFQjBFQyAvKiBQcmludENvbnRleHQuaCAqLywKQEAgLTE2NjczLDYgKzE2Njgz
LDE1IEBACiAJCQkJMDAzRjFGRTkxMUU2QUI0MzAwODI1OEQ5IC8qIFVzZXJDb250ZW50VHlwZXMu
aCAqLywKIAkJCQlCQ0FDRjNCQTEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmNwcCAqLywKIAkJCQlCQ0FDRjNCQjEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmggKi8sCisJCQkJN0MzQjc5NkYxOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNz
YWdlSGFuZGxlci5jcHAgKi8sCisJCQkJN0MzQjc5NzAxOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJN
ZXNzYWdlSGFuZGxlci5oICovLAorCQkJCTdDNzNGQjBFMTkxRUY2MEUwMDdERTA2MSAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXIuaWRsICovLAorCQkJCTdDRTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBV
c2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCAqLywKKwkJCQk3Q0U2ODM0MzE5MjE0M0E4
MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oICovLAorCQkJCTdDRTY4
MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMu
aCAqLywKKwkJCQk3QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVy
c05hbWVzcGFjZS5jcHAgKi8sCisJCQkJN0M3M0ZCMDYxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJN
ZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCAqLywKKwkJCQk3QzczRkIwOTE5MUVGNDlGMDA3REUw
NjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwgKi8sCiAJCQkJQkNBMkIwNjAx
MDUwNDc1RjAwNDNCRDFDIC8qIFVzZXJTY3JpcHQuaCAqLywKIAkJCQlCQ0EyQjA4QTEwNTA1QkNE
MDA0M0JEMUMgLyogVXNlclNjcmlwdFR5cGVzLmggKi8sCiAJCQkJQkM4QkYxNTAxMDU4MTNCRjAw
QTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggKi8sCkBAIC0xNjY4NCw2ICsxNjcwMyw5IEBACiAJ
CQkJMUFGNENFRUIxOEJDM0MxQjAwQkMyRDM0IC8qIFZpc2l0ZWRMaW5rU3RvcmUuY3BwICovLAog
CQkJCTFBQkE3RkZGMTg5NzM0MTIwMERDRTlENiAvKiBWaXNpdGVkTGlua1N0b3JlLmggKi8sCiAJ
CQkJQkU5ODNEOTUwNTJBMkUwQTAwODkyRDg1IC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oICov
LAorCQkJCTdDNDhBNkNFMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuY3BwICov
LAorCQkJCTdDNDhBNkNGMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaCAqLywK
KwkJCQk3QzQ4QTZEMjE5MUM5RDhFMDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmlkbCAqLywK
IAkJCQk0OTRCRDc5MzBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaCAqLywKIAkJCQk0
OTRCRDc5NDBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaWRsICovLAogCQkJCTkzRUM0
NDlGMTg4RjRCQjgwMDY2MURGMSAvKiBXaGVlbEV2ZW50RGVsdGFUcmFja2VyLmNwcCAqLywKQEAg
LTE2Njk1LDE4ICsxNjcxNyw2IEBACiAJCQkJRTEyNzFBMTMwRUVFQzgwNDAwRjYxMjEzIC8qIFdv
cmtlck5hdmlnYXRvci5jcHAgKi8sCiAJCQkJRTEyNzFBMEEwRUVFQzc3QTAwRjYxMjEzIC8qIFdv
cmtlck5hdmlnYXRvci5oICovLAogCQkJCUUxMjcxQTUxMEVFRUNEMUMwMEY2MTIxMyAvKiBXb3Jr
ZXJOYXZpZ2F0b3IuaWRsICovLAotCQkJCTdDNDhBNkNFMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJL
aXROYW1lc3BhY2UuY3BwICovLAotCQkJCTdDNDhBNkNGMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJL
aXROYW1lc3BhY2UuaCAqLywKLQkJCQk3QzQ4QTZEMjE5MUM5RDhFMDAwMjY2NzQgLyogV2ViS2l0
TmFtZXNwYWNlLmlkbCAqLywKLQkJCQk3QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1l
c3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5jcHAgKi8sCi0JCQkJN0M3M0ZCMDYxOTFFRjQxNzAwN0RF
MDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCAqLywKLQkJCQk3QzczRkIwOTE5
MUVGNDlGMDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwgKi8sCi0J
CQkJN0MzQjc5NkYxOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8s
Ci0JCQkJN0MzQjc5NzAxOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5oICov
LAotCQkJCTdDNzNGQjBFMTkxRUY2MEUwMDdERTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuaWRs
ICovLAotCQkJCTdDRTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJE
ZXNjcmlwdG9yLmNwcCAqLywKLQkJCQk3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oICovLAotCQkJCTdDRTY4MzQ2MTkyMTgyMTUwMEY0RDky
OCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gcGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNzU1OSw3ICsxNzU2
OSw2IEBACiAJCQkJOTNDMDlBN0UwQjA2NEVFRjAwNUFCRDREIC8qIEV2ZW50SGFuZGxlck1hYy5t
bSAqLywKIAkJCQkxQzI2NDk3QjBEN0UyNEVDMDBCRDEwRjIgLyogUGFnZU1hYy5jcHAgKi8sCiAJ
CQkJRTFDMkYyNDgxNTMzQTIxMjAwODNGOTc0IC8qIFNldHRpbmdzTWFjLm1tICovLAotCQkJCTI2
MjU1RjAxMTg4NzhFMTEwMDA2RTFGRCAvKiBVc2VyQWdlbnQuaCAqLywKIAkJCQkyNjI1NUYwMjE4
ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFjLm1tICovLAogCQkJCUY1ODc4NTRDMDJERTM3
NTkwMUVBNDEyMiAvKiBXZWJDb3JlRnJhbWVWaWV3LmggKi8sCiAJCQkpOwpAQCAtMTg1MzUsNiAr
MTg1NDQsOCBAQAogCQkJCUE1Qzk3NENGMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29h
LmggKi8sCiAJCQkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0g
Ki8sCiAJCQkJQURCNkIyOTcxOEZCOTAyNDAwODE5NjNFIC8qIE1lbW9yeVByZXNzdXJlSGFuZGxl
ckNvY29hLm1tICovLAorCQkJCTVENTk3NUIxMTk2MzVGMTEwMEQwMDg3OCAvKiBTeXN0ZW1WZXJz
aW9uLmggKi8sCisJCQkJNUQ1OTc1QjIxOTYzNUYxMTAwRDAwODc4IC8qIFN5c3RlbVZlcnNpb24u
bW0gKi8sCiAJCQkJN0NDNTY0QjkxOEJBQzcyMDAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRl
dGVjdG9yQ29jb2EuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKQEAgLTI0MjA0LDYg
KzI0MjE1LDcgQEAKIAkJCQk0MzU4RTg4MTEzNjBBMzE3MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ3RjEyNDhGMEIzMDBEM0E5QzkgLyogRkVGbG9v
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ4MDE5NTUxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1
c3NpYW5CbHVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1RDU5NzVCMzE5NjM1RjExMDBEMDA4Nzgg
LyogU3lzdGVtVmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEODExMjQ4RjBCMzAw
RDNBOUM5IC8qIEZFTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDgzMTI0OEYw
QjMwMEQzQTlDOSAvKiBGRU1lcmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ4NTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MzE2LDcg
KzI2MzI4LDYgQEAKIAkJCQlFMTgwODExNzE2RkNGOUNCMDBCODBEMDcgLyogU3luY2hyb25vdXNM
b2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RkFFNENGMTg1MkUzQTUwMDRDOEM0
NiAvKiBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMDNDMDc0MTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1NZW1v
cnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTVEQTk3RUNEMTY4RTc4N0IwMDBFMzY3NiAvKiBTeXN0
ZW1WZXJzaW9uTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjA1MTBBMTU0RjA5MDAwQTQy
MzQgLyogVGFibGVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTNCRUMzMEQyMjJCMUQw
MDdFMDZFNCAvKiBUYWdOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNERDYxMjUx
RjEyRDAwM0VGMjY5IC8qIFRlbGVwaG9uZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
OTI1Nyw2ICsyOTI2OCw3IEBACiAJCQkJMjkzRUFFMjExMzU2QjMyRTAwNjdBQ0Y5IC8qIFJ1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NEMzNjNGMTBGQUE3
QkIzMDA5N0Y4Q0MgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOEM2RUE2MTkxMUVGN0UwNDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUQ1OTc1QjcxOTYzNjM3QjAwRDAwODc4IC8qIFVz
ZXJBZ2VudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNERDcwODk2MTgzNTlGNkYwMDJCM0RDNiAv
KiBTYW1wbGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFOTExQ0EwRUY4NkQ0NzAwOUQw
Q0FGIC8qIFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVE
RkU4RjU2MEQxNjQ3N0IwMDc2RTkzNyAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yOTQxOCw2ICsyOTQzMCw3IEBACiAJCQkJNTFFMEJCMzkwREE1QUNCNjAwQTlFNDE3
IC8qIFN0b3JhZ2VNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUwRDBFODIwRkY0MjcyOTAw
QUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1RTM4
QzAxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTVENTk3NUI0MTk2MzVGMTEwMEQwMDg3OCAvKiBTeXN0ZW1WZXJzaW9uLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUFCMDlEQjQxNkFGNUY2QzAwODUzOEU3IC8qIFN0b3JhZ2VTdHJh
dGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTEwMkQ5NTBGRDlBQTJEMDBGQUZGMDQgLyog
U3RvcmFnZVN5bmNNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUYyMzE5MERDMTYw
REEwMDRGMDAzMiAvKiBTdG9yYWdlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2NDks
NyArMjk2NjIsNiBAQAogCQkJCTQ0MkFCQ0Q2MTdEOTI2MkYwMEQzMDcxNSAvKiBTeW5jaHJvbm91
c0xvYWRlckNsaWVudENGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2RkFFNENFMTg1MkUz
QTUwMDRDOEM0NiAvKiBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ1MzkwQUUwRUFGRjRCNTAwMzY5NUM4IC8q
IFN5c3RlbU1lbW9yeUlPUy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1REE5N0VDRTE2OEU3ODdC
MDAwRTM2NzYgLyogU3lzdGVtVmVyc2lvbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRTNC
RUMyMEQyMjJCMUQwMDdFMDZFNCAvKiBUYWdOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGNTVCM0RENTEyNTFGMTJEMDAzRUYyNjkgLyogVGVsZXBob25lSW5wdXRUeXBlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQzU2NEJBMThCQUM3MjAwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1i
ZXJEZXRlY3RvckNvY29hLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9jb2NvYS9Vc2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
VXNlckFnZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJmZjM0MDc4ZWIwZDMzNWYxYmI4NzQzZjU2MWM2ZDQ3
NzIwZDRhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvVXNl
ckFnZW50LmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVXNlckFnZW50
X2gKKyNkZWZpbmUgVXNlckFnZW50X2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBw
bGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdCBTdHJpbmcm
IHdlYmtpdFZlcnNpb25TdHJpbmcpOworU3RyaW5nIHN5c3RlbU1hcmtldGluZ1ZlcnNpb25Gb3JV
c2VyQWdlbnRTdHJpbmcoKTsKK30KKworI2VuZGlmIC8vIFVzZXJBZ2VudF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvVXNlckFnZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MTY1YzY1ZjE2MTkxYTZjYjQ3
MGFkNzlhNmQ0MjUzZTk4ZTI1ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NvY29hL1VzZXJBZ2VudC5tbQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJVc2VyQWdlbnQuaCIKKworI2ltcG9ydCAiU3lzdGVt
VmVyc2lvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBzeXN0ZW1NYXJrZXRp
bmdWZXJzaW9uRm9yVXNlckFnZW50U3RyaW5nKCkKK3sKKyAgICAvLyBVc2UgdW5kZXJzY29yZXMg
aW5zdGVhZCBvZiBkb3RzIGJlY2F1c2Ugd2hlbiB3ZSBmaXJzdCBhZGRlZCB0aGUgTWFjIE9TIFgg
dmVyc2lvbiB0byB0aGUgdXNlciBhZ2VudCBzdHJpbmcKKyAgICAvLyB3ZSB3ZXJlIGNvbmNlcm5l
ZCBhYm91dCBvbGQgREhUTUwgbGlicmFyaWVzIGludGVycHJldGluZyAiNC4iIGFzIE5ldHNjYXBl
IDQuIFRoYXQncyBubyBsb25nZXIgYSBjb25jZXJuIGZvciB1cworICAgIC8vIGJ1dCB3ZSdyZSBz
dGlja2luZyB3aXRoIHRoZSB1bmRlcnNjb3JlcyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBm
b3JtYXQgdXNlZCBieSBvbGRlciB2ZXJzaW9ucyBvZiBTYWZhcmkuCisgICAgcmV0dXJuIFtzeXN0
ZW1NYXJrZXRpbmdWZXJzaW9uKCkgc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNlc09mU3RyaW5n
OkAiLiIgd2l0aFN0cmluZzpAIl8iXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvVXNlckFnZW50SU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvVXNlckFnZW50SU9TLm1tCmluZGV4IGE4NWQxZjY5YjM2OTUzNzY5
YTliMDkyMjg5MTllMTAxNDdiZjM2ZTMuLjU4NjZkZWFmNjU1YmQ1ZDAyNDNjMTRhZTc2ODcxYTg3
NzE2MDY2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL1VzZXJBZ2VudElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Vc2VyQWdlbnRJT1MubW0KQEAgLTI2
LDI5ICsyNiwxMSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJVc2VyQWdlbnQuaCIK
IAotI2ltcG9ydCA8V2ViQ29yZVN5c3RlbUludGVyZmFjZS5oPgotI2ltcG9ydCA8d3RmL05ldmVy
RGVzdHJveWVkLmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0ICJTeXN0ZW1W
ZXJzaW9uLmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotc3RhdGljIE5TU3RyaW5nICpwbGF0Zm9ybVN5c3RlbVJvb3REaXJlY3Rv
cnkoKQotewotI2lmIFBMQVRGT1JNKElPU19TSU1VTEFUT1IpCi0gICAgY29uc3QgY2hhciAqc2lt
dWxhdG9yUm9vdCA9IGdldGVudigiSVBIT05FX1NJTVVMQVRPUl9ST09UIik7Ci0gICAgcmV0dXJu
IFtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzooc2ltdWxhdG9yUm9vdCA/IHNpbXVsYXRv
clJvb3QgOiAiLyIpXTsKLSNlbHNlCi0gICAgcmV0dXJuIEAiLyI7Ci0jZW5kaWYKLX0KLQotc3Rh
dGljIE5TU3RyaW5nICpvc01hcmtldGluZ1ZlcnNpb24oKQotewotICAgIFJldGFpblB0cjxOU0Rp
Y3Rpb25hcnk+IHN5c3RlbUluZm8gPSBhZG9wdE5TKFtbTlNEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRzT2ZGaWxlOltwbGF0Zm9ybVN5c3RlbVJvb3REaXJlY3RvcnkoKSBzdHJpbmdC
eUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJTeXN0ZW0vTGlicmFyeS9Db3JlU2VydmljZXMvU3lz
dGVtVmVyc2lvbi5wbGlzdCJdXSk7Ci0gICAgTlNTdHJpbmcgKnByb2R1Y3RWZXJzaW9uID0gW3N5
c3RlbUluZm8gb2JqZWN0Rm9yS2V5OkAiUHJvZHVjdFZlcnNpb24iXTsKLSAgICByZXR1cm4gIXBy
b2R1Y3RWZXJzaW9uID8gQCIiIDogW3Byb2R1Y3RWZXJzaW9uIHN0cmluZ0J5UmVwbGFjaW5nT2Nj
dXJyZW5jZXNPZlN0cmluZzpAIi4iIHdpdGhTdHJpbmc6QCJfIl07Ci19Ci0KIFN0cmluZyBzdGFu
ZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlv
bk5hbWUsIGNvbnN0IFN0cmluZyYgd2Via2l0VmVyc2lvblN0cmluZykKIHsKICAgICBpZiAoQ0ZT
dHJpbmdSZWYgb3ZlcnJpZGVVc2VyQWdlbnQgPSB3a0dldFVzZXJBZ2VudCgpKQpAQCAtNjUsNyAr
NDcsNyBAQCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNvbnN0
IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdAogICAgIE5TU3RyaW5nICp3ZWJLaXRWZXJz
aW9uID0gd2Via2l0VmVyc2lvblN0cmluZzsKICAgICBDRlN0cmluZ1JlZiBkZXZpY2VOYW1lID0g
d2tHZXREZXZpY2VOYW1lKCk7CiAgICAgQ0ZTdHJpbmdSZWYgb3NOYW1lRm9yVXNlckFnZW50ID0g
d2tHZXRPU05hbWVGb3JVc2VyQWdlbnQoKTsKLSAgICBOU1N0cmluZyAqb3NNYXJrZXRpbmdWZXJz
aW9uU3RyaW5nID0gb3NNYXJrZXRpbmdWZXJzaW9uKCk7CisgICAgTlNTdHJpbmcgKm9zTWFya2V0
aW5nVmVyc2lvblN0cmluZyA9IHN5c3RlbU1hcmtldGluZ1ZlcnNpb25Gb3JVc2VyQWdlbnRTdHJp
bmcoKTsKICAgICBpZiAoYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiTW96aWxsYS81LjAgKCVAOyBDUFUgJUAgJUAg
bGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIGRldmlj
ZU5hbWUsIG9zTmFtZUZvclVzZXJBZ2VudCwgb3NNYXJrZXRpbmdWZXJzaW9uU3RyaW5nLCB3ZWJL
aXRWZXJzaW9uXTsKICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJNb3pp
bGxhLzUuMCAoJUA7IENQVSAlQCAlQCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC8lQCAoS0hU
TUwsIGxpa2UgR2Vja28pICVAIiwgZGV2aWNlTmFtZSwgb3NOYW1lRm9yVXNlckFnZW50LCBvc01h
cmtldGluZ1ZlcnNpb25TdHJpbmcsIHdlYktpdFZlcnNpb24sIHN0YXRpY19jYXN0PE5TU3RyaW5n
ICo+KGFwcGxpY2F0aW9uTmFtZSldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvVXNlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9Vc2VyQWdlbnQuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc3NWFiMjk5NWU5MTdhOWJmNTc4MmU1NjM0OGY1
OWVhMWJkMDBjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9Vc2VyQWdlbnQuaAorKysgL2Rldi9udWxsCkBAIC0x
LDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFVzZXJBZ2VudF9oCi0jZGVmaW5lIFVz
ZXJBZ2VudF9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotQGNsYXNzIE5T
QnVuZGxlOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1TdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRX
aXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdCBT
dHJpbmcmIHdlYmtpdFZlcnNpb25TdHJpbmcpOwotfQotCi0jZW5kaWYgLy8gVXNlckFnZW50TWFj
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1VzZXJBZ2VudE1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1VzZXJBZ2VudE1hYy5tbQppbmRleCBhZDZiZDI3YTZh
MDBiNjZjODgzOWViNDMwNTllN2QwNGUxMzU3ZmNkLi5hN2QwMGJhZjU0ZWY0M2JiOGM3NjVmOWI2
MmViNzY0YjcxZTFjOTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9Vc2Vy
QWdlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVXNlckFnZW50TWFjLm1t
CkBAIC0yNiw4ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlVzZXJBZ2Vu
dC5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZlcnNpb25NYWMuaD4KLSNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCAiU3lzdGVtVmVyc2lvbi5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTM5LDE0ICszOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
cnJvciBVbmtub3duIGFyY2hpdGVjdHVyZQogI2VuZGlmCiAKLXN0YXRpYyBOU1N0cmluZyAqc3lz
dGVtTWFya2V0aW5nVmVyc2lvbkZvclVzZXJBZ2VudFN0cmluZygpCi17Ci0gICAgLy8gVXNlIHVu
ZGVyc2NvcmVzIGluc3RlYWQgb2YgZG90cyBiZWNhdXNlIHdoZW4gd2UgZmlyc3QgYWRkZWQgdGhl
IE1hYyBPUyBYIHZlcnNpb24gdG8gdGhlIHVzZXIgYWdlbnQgc3RyaW5nCi0gICAgLy8gd2Ugd2Vy
ZSBjb25jZXJuZWQgYWJvdXQgb2xkIERIVE1MIGxpYnJhcmllcyBpbnRlcnByZXRpbmcgIjQuIiBh
cyBOZXRzY2FwZSA0LiBUaGF0J3Mgbm8gbG9uZ2VyIGEgY29uY2VybiBmb3IgdXMKLSAgICAvLyBi
dXQgd2UncmUgc3RpY2tpbmcgd2l0aCB0aGUgdW5kZXJzY29yZXMgZm9yIGNvbXBhdGliaWxpdHkg
d2l0aCB0aGUgZm9ybWF0IHVzZWQgYnkgb2xkZXIgdmVyc2lvbnMgb2YgU2FmYXJpLgotICAgIHJl
dHVybiBbc3lzdGVtTWFya2V0aW5nVmVyc2lvbigpIHN0cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5j
ZXNPZlN0cmluZzpAIi4iIHdpdGhTdHJpbmc6QCJfIl07Ci19Ci0KIFN0cmluZyBzdGFuZGFyZFVz
ZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUs
IGNvbnN0IFN0cmluZyYgd2ViS2l0VmVyc2lvblN0cmluZykKIHsKICAgICBTdHJpbmcgb3NWZXJz
aW9uID0gc3lzdGVtTWFya2V0aW5nVmVyc2lvbkZvclVzZXJBZ2VudFN0cmluZygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtVmVyc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtVmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVh
YzZkYzVlZTU4NzNhZDRmMTNkNzdiNTYwMTlkZTE3YWE0MTExMmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1WZXJzaW9uLmgKQEAgLTAsMCAr
MSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05TU3RyaW5nICpz
eXN0ZW1NYXJrZXRpbmdWZXJzaW9uKCk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1N5c3RlbVZlcnNpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TeXN0ZW1WZXJzaW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczMjEwMWU0ZDc3M2FiMDUyYjY1
MWI2MTBhYjNiNmY3MzE3YzNkOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TeXN0ZW1WZXJzaW9uLm1tCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN5c3RlbVZlcnNpb24uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKKworc3RhdGljIE5TU3RyaW5nICpjcmVhdGVTeXN0
ZW1NYXJrZXRpbmdWZXJzaW9uKCkKK3sKKyAgICAvLyBDYW4ndCB1c2UgLVtOU1Byb2Nlc3NJbmZv
IG9wZXJhdGluZ1N5c3RlbVZlcnNpb25TdHJpbmddIGJlY2F1c2UgaXQgaGFzIHRvbyBtdWNoIHN0
dWZmIHdlIGRvbid0IHdhbnQuCisgICAgTlNTdHJpbmcgKnN5c3RlbUxpYnJhcnlQYXRoID0gW05T
U2VhcmNoUGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5zKE5TTGlicmFyeURpcmVjdG9yeSwgTlNT
eXN0ZW1Eb21haW5NYXNrLCBZRVMpIG9iamVjdEF0SW5kZXg6MF07CisgICAgTlNTdHJpbmcgKnN5
c3RlbVZlcnNpb25QbGlzdFBhdGggPSBbc3lzdGVtTGlicmFyeVBhdGggc3RyaW5nQnlBcHBlbmRp
bmdQYXRoQ29tcG9uZW50OkAiQ29yZVNlcnZpY2VzL1N5c3RlbVZlcnNpb24ucGxpc3QiXTsKKyAg
ICBOU0RpY3Rpb25hcnkgKnN5c3RlbVZlcnNpb25JbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9u
YXJ5V2l0aENvbnRlbnRzT2ZGaWxlOnN5c3RlbVZlcnNpb25QbGlzdFBhdGhdOworICAgIHJldHVy
biBbW3N5c3RlbVZlcnNpb25JbmZvIG9iamVjdEZvcktleTpAIlByb2R1Y3RWZXJzaW9uIl0gY29w
eV07Cit9CisKKyNlbHNlCisKK3N0YXRpYyBpbmxpbmUgaW50IGNhbGxHZXN0YWx0KE9TVHlwZSBz
ZWxlY3RvcikKK3sKKyAgICBTSW50MzIgdmFsdWUgPSAwOworICAgIEdlc3RhbHQoc2VsZWN0b3Is
ICZ2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOworfQorCitzdGF0aWMgTlNTdHJpbmcgKmNyZWF0
ZVN5c3RlbU1hcmtldGluZ1ZlcnNpb24oKQoreworICAgIC8vIENhbid0IHVzZSAtW05TUHJvY2Vz
c0luZm8gb3BlcmF0aW5nU3lzdGVtVmVyc2lvblN0cmluZ10gYmVjYXVzZSBpdCBoYXMgdG9vIG11
Y2ggc3R1ZmYgd2UgZG9uJ3Qgd2FudC4KKyAgICBpbnQgbWFqb3IgPSBjYWxsR2VzdGFsdChnZXN0
YWx0U3lzdGVtVmVyc2lvbk1ham9yKTsKKyAgICBBU1NFUlQobWFqb3IpOworCisgICAgaW50IG1p
bm9yID0gY2FsbEdlc3RhbHQoZ2VzdGFsdFN5c3RlbVZlcnNpb25NaW5vcik7CisgICAgaW50IGJ1
Z0ZpeCA9IGNhbGxHZXN0YWx0KGdlc3RhbHRTeXN0ZW1WZXJzaW9uQnVnRml4KTsKKyAgICBpZiAo
YnVnRml4KQorICAgICAgICByZXR1cm4gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6
QCIlZC4lZC4lZCIsIG1ham9yLCBtaW5vciwgYnVnRml4XTsKKyAgICBpZiAobWlub3IpCisgICAg
ICAgIHJldHVybiBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVkLiVkIiwgbWFq
b3IsIG1pbm9yXTsKKyAgICByZXR1cm4gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6
QCIlZCIsIG1ham9yXTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCisKK05TU3RyaW5nICpzeXN0ZW1NYXJrZXRp
bmdWZXJzaW9uKCkKK3sKKyAgICBzdGF0aWMgTlNTdHJpbmcgKnZlcnNpb24gPSBjcmVhdGVTeXN0
ZW1NYXJrZXRpbmdWZXJzaW9uKCk7CisgICAgcmV0dXJuIHZlcnNpb247Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TeXN0ZW1WZXJzaW9uTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3lzdGVtVmVyc2lvbk1hYy5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1YWM2ZGM1ZWU1ODczYWQ0ZjEzZDc3YjU2MDE5ZGUxN2FhNDEx
MTJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TeXN0ZW1WZXJzaW9uTWFjLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwyOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTlNT
dHJpbmcgKnN5c3RlbU1hcmtldGluZ1ZlcnNpb24oKTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N5c3RlbVZlcnNpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU3lzdGVtVmVyc2lvbk1hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTFjMTdiNjE3MWNmNmQwN2I2ODY2NTM0MzA3ZjAyYTZjYWExMjE2YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU3lzdGVtVmVyc2lvbk1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDg0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlN5c3Rl
bVZlcnNpb25NYWMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0jaWYgIVBMQVRGT1JNKElP
UykKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKLQotc3RhdGlj
IE5TU3RyaW5nICpjcmVhdGVTeXN0ZW1NYXJrZXRpbmdWZXJzaW9uKCkKLXsKLSAgICAvLyBDYW4n
dCB1c2UgLVtOU1Byb2Nlc3NJbmZvIG9wZXJhdGluZ1N5c3RlbVZlcnNpb25TdHJpbmddIGJlY2F1
c2UgaXQgaGFzIHRvbyBtdWNoIHN0dWZmIHdlIGRvbid0IHdhbnQuCi0gICAgTlNTdHJpbmcgKnN5
c3RlbUxpYnJhcnlQYXRoID0gW05TU2VhcmNoUGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5zKE5T
TGlicmFyeURpcmVjdG9yeSwgTlNTeXN0ZW1Eb21haW5NYXNrLCBZRVMpIG9iamVjdEF0SW5kZXg6
MF07Ci0gICAgTlNTdHJpbmcgKnN5c3RlbVZlcnNpb25QbGlzdFBhdGggPSBbc3lzdGVtTGlicmFy
eVBhdGggc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiQ29yZVNlcnZpY2VzL1N5c3Rl
bVZlcnNpb24ucGxpc3QiXTsKLSAgICBOU0RpY3Rpb25hcnkgKnN5c3RlbVZlcnNpb25JbmZvID0g
W05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZGaWxlOnN5c3RlbVZlcnNpb25Q
bGlzdFBhdGhdOwotICAgIHJldHVybiBbW3N5c3RlbVZlcnNpb25JbmZvIG9iamVjdEZvcktleTpA
IlByb2R1Y3RWZXJzaW9uIl0gY29weV07Ci19Ci0KLSNlbHNlCi0KLXN0YXRpYyBpbmxpbmUgaW50
IGNhbGxHZXN0YWx0KE9TVHlwZSBzZWxlY3RvcikKLXsKLSAgICBTSW50MzIgdmFsdWUgPSAwOwot
ICAgIEdlc3RhbHQoc2VsZWN0b3IsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIHZhbHVlOwotfQotCi1z
dGF0aWMgTlNTdHJpbmcgKmNyZWF0ZVN5c3RlbU1hcmtldGluZ1ZlcnNpb24oKQotewotICAgIC8v
IENhbid0IHVzZSAtW05TUHJvY2Vzc0luZm8gb3BlcmF0aW5nU3lzdGVtVmVyc2lvblN0cmluZ10g
YmVjYXVzZSBpdCBoYXMgdG9vIG11Y2ggc3R1ZmYgd2UgZG9uJ3Qgd2FudC4KLSAgICBpbnQgbWFq
b3IgPSBjYWxsR2VzdGFsdChnZXN0YWx0U3lzdGVtVmVyc2lvbk1ham9yKTsKLSAgICBBU1NFUlQo
bWFqb3IpOwotCi0gICAgaW50IG1pbm9yID0gY2FsbEdlc3RhbHQoZ2VzdGFsdFN5c3RlbVZlcnNp
b25NaW5vcik7Ci0gICAgaW50IGJ1Z0ZpeCA9IGNhbGxHZXN0YWx0KGdlc3RhbHRTeXN0ZW1WZXJz
aW9uQnVnRml4KTsKLSAgICBpZiAoYnVnRml4KQotICAgICAgICByZXR1cm4gW1tOU1N0cmluZyBh
bGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlZC4lZC4lZCIsIG1ham9yLCBtaW5vciwgYnVnRml4XTsK
LSAgICBpZiAobWlub3IpCi0gICAgICAgIHJldHVybiBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0
aEZvcm1hdDpAIiVkLiVkIiwgbWFqb3IsIG1pbm9yXTsKLSAgICByZXR1cm4gW1tOU1N0cmluZyBh
bGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlZCIsIG1ham9yXTsKLX0KLQotI2VuZGlmIC8vIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAotCi1OU1N0cmluZyAqc3lzdGVtTWFy
a2V0aW5nVmVyc2lvbigpCi17Ci0gICAgc3RhdGljIE5TU3RyaW5nICp2ZXJzaW9uID0gY3JlYXRl
U3lzdGVtTWFya2V0aW5nVmVyc2lvbigpOwotICAgIHJldHVybiB2ZXJzaW9uOwotfQotI2Vsc2UK
LQotTlNTdHJpbmcgKnN5c3RlbU1hcmtldGluZ1ZlcnNpb24oKQotewotICAgIC8vIEZJWE1FOiBO
ZWVkcyBpbXBsZW1lbnRhdGlvbi4KLSAgICBzdGF0aWMgTlNTdHJpbmcgKnZlcnNpb24gPSBAIiI7
Ci0gICAgcmV0dXJuIHZlcnNpb247Ci19Ci0KLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotCi19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCmluZGV4IDli
NDlmNmU4ZDgyMDkyMjI4MzRhYjkxNjgwZGVhNjkyNjM5MDU3YjMuLmFlY2MwNDFlZWMyZWRhOGUz
NDczNjRhYzJlZGM4M2Q2M2RkN2NkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3Mv
Q2hpbGRQcm9jZXNzSU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJTYW5kYm94SW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aCIKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9TeXN0
ZW1WZXJzaW9uTWFjLmg+CisjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZlcnNpb24uaD4KICNpbXBv
cnQgPG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8bWFjaC90YXNrLmg+CiAjaW1wb3J0IDxwd2QuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXggZDNk
ZmFhNGRkNzU1MzAyZGY5ZWNkMzAzYzg4NDJmZGU1ZWY0YWJlZC4uMjBlMmE1ZDAwMjRhNDQ5Njlm
MmI4ODllMDQ3OGIzZGM4ZjI5YzBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
aGlsZFByb2Nlc3NNYWMubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIlNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5o
IgogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1N5c3Rl
bVZlcnNpb25NYWMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtVmVyc2lvbi5oPgogI2ltcG9y
dCA8bWFjaC9tYWNoLmg+CiAjaW1wb3J0IDxtYWNoL3Rhc2suaD4KICNpbXBvcnQgPHB3ZC5oPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>