<?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>75402</bug_id>
          
          <creation_ts>2011-12-30 21:37:08 -0800</creation_ts>
          <short_desc>Use overload methods to implement [Optional] parameters in AudioNode.idl</short_desc>
          <delta_ts>2012-01-01 12:56:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Raymond">rgbbones</reporter>
          <assigned_to name="Raymond">rgbbones</assigned_to>
          <cc>abarth</cc>
    
    <cc>crogers</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>528257</commentid>
    <comment_count>0</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-30 21:37:08 -0800</bug_when>
    <thetext>Use overload methods to implement [Optional] parameters in AudioNode.idl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528258</commentid>
    <comment_count>1</comment_count>
      <attachid>120826</attachid>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-30 21:40:44 -0800</bug_when>
    <thetext>Created attachment 120826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528259</commentid>
    <comment_count>2</comment_count>
      <attachid>120826</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-30 21:52:37 -0800</bug_when>
    <thetext>Comment on attachment 120826
Patch

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

Looks great!  Thanks.

&gt; Source/WebCore/webaudio/AudioNode.h:122
&gt; +    void connect(AudioNode*, ExceptionCode&amp;);
&gt; +    void connect(AudioNode*, unsigned outputIndex, ExceptionCode&amp;);
&gt; +    void connect(AudioNode*, unsigned outputIndex, unsigned inputIndex, ExceptionCode&amp;);
&gt; +    void disconnect(ExceptionCode&amp;);
&gt; +    void disconnect(unsigned outputIndex, ExceptionCode&amp;);

You can use [Optional=CallWithDefaultValue] if you don&apos;t want to create all these symbols.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528262</commentid>
    <comment_count>3</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-30 22:03:30 -0800</bug_when>
    <thetext>(In reply to comment #2)

&gt; 
&gt; &gt; Source/WebCore/webaudio/AudioNode.h:122
&gt; &gt; +    void connect(AudioNode*, ExceptionCode&amp;);
&gt; &gt; +    void connect(AudioNode*, unsigned outputIndex, ExceptionCode&amp;);
&gt; &gt; +    void connect(AudioNode*, unsigned outputIndex, unsigned inputIndex, ExceptionCode&amp;);
&gt; &gt; +    void disconnect(ExceptionCode&amp;);
&gt; &gt; +    void disconnect(unsigned outputIndex, ExceptionCode&amp;);
&gt; 
&gt; You can use [Optional=CallWithDefaultValue] if you don&apos;t want to create all these symbols.

Oh,really! That&apos;s great, I will update the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528266</commentid>
    <comment_count>4</comment_count>
      <attachid>120826</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-30 22:36:30 -0800</bug_when>
    <thetext>Comment on attachment 120826
Patch

Attachment 120826 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10954356

New failing tests:
webaudio/mediaelementaudiosourcenode.html
webaudio/audionode.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528269</commentid>
    <comment_count>5</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-30 23:14:52 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 120826 [details])
&gt; Attachment 120826 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/10954356
&gt; 
&gt; New failing tests:
&gt; webaudio/mediaelementaudiosourcenode.html
&gt; webaudio/audionode.html

hmm, it seems that the connect function can take a 0 for destination, so that disconnect will utilize it. While it won&apos;t take a 0 for destination from JS space as the test page try to verify. But the Web Audio Spec don&apos;t specify that destination node should not be 0. But anyway, to try to find a solution for this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528326</commentid>
    <comment_count>6</comment_count>
      <attachid>120839</attachid>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-31 19:36:54 -0800</bug_when>
    <thetext>Created attachment 120839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528327</commentid>
    <comment_count>7</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-31 19:52:02 -0800</bug_when>
    <thetext>Failed to set up Layout test env locally ( can not link the DumpRenderTree on my ubuntu 11.10 ...). But managed to load all the LayoutTest/webaudio/ test pages manually. It seems the test been passed. 

While I also observe that, some test page will pass and fail randomly from time to time ( not related to connect, mainly pages related to offline context creation, and failed at the point of create context, if one fails, all the other similar pages fail. If one success, all the others success too) either with or without this patch.  Strange. Maybe it&apos;s my local env&apos;s issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528357</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-01 10:43:35 -0800</bug_when>
    <thetext>&gt; Strange. Maybe it&apos;s my local env&apos;s issue?

Not sure.  I don&apos;t know much about web audio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528365</commentid>
    <comment_count>9</comment_count>
      <attachid>120839</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-01 12:56:43 -0800</bug_when>
    <thetext>Comment on attachment 120839
Patch

Clearing flags on attachment: 120839

Committed r103882: &lt;http://trac.webkit.org/changeset/103882&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528366</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-01 12:56:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120826</attachid>
            <date>2011-12-30 21:40:44 -0800</date>
            <delta_ts>2011-12-31 19:37:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75402-20111231134440.patch</filename>
            <type>text/plain</type>
            <size>19246</size>
            <attacher name="Raymond">rgbbones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzODU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY5Mzk5NmYyZmFhNzc5
NjI4MTdlZmY0OThlZmMzMGE0NmNmZTQ5Yi4uYWRlYjY2MzY0YWQ2MDY4Yzk4ZDIxYTYwNDFkMWU5
YTJhMDM3NTcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTEyLTMwICBSYXlt
b25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4KKworICAgICAgICBVc2Ugb3ZlcmxvYWQg
bWV0aG9kcyB0byBpbXBsZW1lbnQgW09wdGlvbmFsXSBwYXJhbWV0ZXJzIGluIEF1ZGlvTm9kZS5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIHJlcXVpcmVkLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
QXVkaW9Ob2RlQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhBdWRpb05vZGVDdXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1
ZGlvTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmNvbm5lY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpkaXNjb25uZWN0KToKKyAgICAgICAgKiB3ZWJhdWRp
by9BdWRpb05vZGUuaDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb05vZGUuaWRsOgorCiAyMDEx
LTEyLTMwICBBbmRyZWFzIEtsaW5nICA8YXdlc29tZWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYWNoZSBhbmQgcmV1c2UgdGhlIEhUTUxUYWJsZUVsZW1lbnQucm93cyBjb2xsZWN0aW9uLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYWRhYmFjYTJmNjhjYThmYzgyNmI0MDAy
MGE4ODNjMTRkM2Y4YTkwMC4uNWE2NWZiNjQyNjNlNjNmOGQ4NzgwMzUyODNhZDMwMmJkOWU1OWY5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01MTk4LDcgKzUxOTgsNiBAQCBp
ZiBFTkFCTEVfV0VCX0FVRElPCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwIFwKLQlTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ29udm9sdmVyTm9kZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2F2ZVNoYXBlck5vZGVDdXN0b20uY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlVjgu
Y21ha2UKaW5kZXggM2QyZjQ0ZDU0NDU4ZDA1ZTRjN2Q1ZDhlYzUwMzhjNmM3MWJlNmI2Zi4uMTA4
NWRiYmUyMWY2NWNhMmU4MjE0Mjc0MTI3MDNhNDAyMmEwZGZkMCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvVXNlVjguY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKQEAg
LTY3LDcgKzY3LDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1
ZGlvQ29udGV4dEN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb05vZGVD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTUnVsZUN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggZGQ0OGVkMTcwMGVjMTgxNzZkNzFlODU5ODllZGFkMjYwN2M0ZWEyNC4uYTI2ZTJl
MzllYzc4M2IyMTIxMTgyY2EyYzZmNWFjNDcwOGNjMjQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
MTgyMCw3ICsxODIwLDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1
c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9t
LmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTQ1NTRm9udEZhY2VSdWxlQ3VzdG9tLmNwcCcsCkBAIC0yMTgwLDcg
KzIxNzksNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVy
Vmlld0N1c3RvbS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0J1
ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0
b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhBdWRpb05vZGVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhCaW5kaW5nTWFjcm9zLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENTU1J1bGVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzI3Mzg4OTFlZThhYTRiZDNm
YzA0NjczOGRhMDRkODcwMzJkMWZlMy4uOWFhODJkZmQ4YzcwZmJlNjI0NGVjOTBiZGFhNjk3MmE1
MTE1OWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNjM3OCw3ICs2Mzc4LDYgQEAKIAkJRkRDNTRGMDUxMzk5QjBEQTAwOEQ5
MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZEQzU0RjAyMTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJO
b2RlLmggKi87IH07CiAJCUZERUFBQUYzMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvQnVmZmVy
U291cmNlTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGREVBQUFFRjEyQjAyRUU0MDBEQ0YzM0IgLyogSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGVDdXN0b20uY3BwICovOyB9OwogCQlGREVBQUFGNDEyQjAyRUU0MDBEQ0YzM0IgLyogSlNB
dWRpb0NvbnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkRFQUFBRjAxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Db250ZXh0Q3Vz
dG9tLmNwcCAqLzsgfTsKLQkJRkRFQUFBRjUxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Ob2Rl
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZERUFBQUYxMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvTm9kZUN1c3RvbS5jcHAgKi87IH07
CiAJCUZERUFBQUY2MTJCMDJFRTQwMERDRjMzQiAvKiBKU0NvbnZvbHZlck5vZGVDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFQUFBRjIx
MkIwMkVFNDAwRENGMzNCIC8qIEpTQ29udm9sdmVyTm9kZUN1c3RvbS5jcHAgKi87IH07CiAJCUZE
RUFBQUZFMTJCMDJGNDkwMERDRjMzQiAvKiBKU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFQUFBRkQx
MkIwMkY0OTAwRENGMzNCIC8qIEpTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHAgKi87IH07
CiAJCUZERjA5REM4MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRGMDlEQzYxMzk5
QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5jcHAgKi87IH07CkBAIC0xMzg1NSw3
ICsxMzg1NCw2IEBACiAJCUZEQzU0RjAzMTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJO
b2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCaXF1YWRGaWx0ZXJOb2RlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRFQUFBRUYxMkIwMkVFNDAwRENGMzNCIC8qIEpT
QXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRFQUFBRjAxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9D
b250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkRF
QUFBRjExMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRFQUFBRjIxMkIwMkVFNDAwRENGMzNCIC8qIEpTQ29u
dm9sdmVyTm9kZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NvbnZvbHZlck5vZGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGREVBQUFGRDEyQjAyRjQ5MDBEQ0YzM0IgLyogSlNKYXZhU2NyaXB0QXVkaW9Ob2RlQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSmF2YVNjcmlwdEF1
ZGlvTm9kZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZERjA5REM2
MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCaXF1YWRGaWx0ZXJOb2RlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5ODI2LDcgKzE5ODI0LDYgQEAKIAkJCQlCQzJFRDZCQjBD
NkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAqLywKIAkJCQlGREVBQUFFRjEyQjAy
RUU0MDBEQ0YzM0IgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwICovLAogCQkJ
CUZERUFBQUYwMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAgKi8s
Ci0JCQkJRkRFQUFBRjExMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcCAq
LywKIAkJCQk0OUVFRDE0QjEwNTE5NzE5MDAwOTlGQUIgLyogSlNDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDdXN0b20uY3BwICovLAogCQkJCTQ5RUVEMTREMTA1MTk3MUEwMDA5OUZBQiAvKiBKU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAogCQkJCTkzQkE1OUIxMEYyQUE1RkUw
MDhFOEU5OSAvKiBKU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAgKi8sCkBAIC0yNjMxOCw3ICsyNjMx
NSw2IEBACiAJCQkJRkRBMTVFQUIxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9HYWluTm9kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVBRDEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRp
b0xpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUFGMTJCMDNFRTEwMDNBNTgz
QSAvKiBKU0F1ZGlvTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGREVBQUFGNTEyQjAyRUU0
MDBEQ0YzM0IgLyogSlNBdWRpb05vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRB
MTVFQjExMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9QYW5uZXJOb2RlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZEQTE1RUIzMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvUGFyYW0uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVFQjUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Qcm9j
ZXNzaW5nRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY3ZjMzZjI2MDAxNjc3OWI0NTYyYzZmMzJhYTZhNDY2OWMxMDI1YzQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
LSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJfQVVE
SU8pCi0KLSNpbmNsdWRlICJKU0F1ZGlvTm9kZS5oIgotCi0jaW5jbHVkZSAiQXVkaW9Ob2RlLmgi
Ci0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUpT
Qzo6SlNWYWx1ZSBKU0F1ZGlvTm9kZTo6Y29ubmVjdChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKLXsK
LSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93
RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRz
IikpOwotCi0gICAgdW5zaWduZWQgb3V0cHV0SW5kZXggPSAwOwotICAgIHVuc2lnbmVkIGlucHV0
SW5kZXggPSAwOwotICAgIAotICAgIEF1ZGlvTm9kZSogZGVzdGluYXRpb25Ob2RlID0gdG9BdWRp
b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpOwotICAgIGlmICghZGVzdGluYXRpb25Ob2RlKQotICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiSW52
YWxpZCBkZXN0aW5hdGlvbiBub2RlIikpOwotICAgIAotICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPiAxKQotICAgICAgICBvdXRwdXRJbmRleCA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50
MzIoZXhlYyk7Ci0KLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMikKLSAgICAgICAg
aW5wdXRJbmRleCA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvSW50MzIoZXhlYyk7Ci0KLSAgICBBdWRp
b05vZGUqIGF1ZGlvTm9kZSA9IHN0YXRpY19jYXN0PEF1ZGlvTm9kZSo+KGltcGwoKSk7Ci0gICAg
Ym9vbCBzdWNjZXNzID0gYXVkaW9Ob2RlLT5jb25uZWN0KGRlc3RpbmF0aW9uTm9kZSwgb3V0cHV0
SW5kZXgsIGlucHV0SW5kZXgpOwotICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkludmFsaWQgaW5kZXggcGFy
YW1ldGVyIikpOwotICAgIAotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpT
Qzo6SlNWYWx1ZSBKU0F1ZGlvTm9kZTo6ZGlzY29ubmVjdChKU0M6OkV4ZWNTdGF0ZSogZXhlYykK
LXsgICAgCi0gICAgdW5zaWduZWQgb3V0cHV0SW5kZXggPSAwOwotICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgPiAwKQotICAgICAgICBvdXRwdXRJbmRleCA9IGV4ZWMtPmFyZ3VtZW50KDAp
LnRvSW50MzIoZXhlYyk7Ci0KLSAgICBBdWRpb05vZGUqIGF1ZGlvTm9kZSA9IHN0YXRpY19jYXN0
PEF1ZGlvTm9kZSo+KGltcGwoKSk7Ci0gICAgYXVkaW9Ob2RlLT5kaXNjb25uZWN0KG91dHB1dElu
ZGV4KTsKLSAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Ob2RlQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MGIwNTEyOTk2YjdkMjJhZWUyOTlkOGExZjIw
OWZhYWNiYTVlM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Ob2RlQ3VzdG9tLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVRElPKQotCi0jaW5jbHVkZSAiVjhBdWRpb05v
ZGUuaCIKLQotI2luY2x1ZGUgIkF1ZGlvTm9kZS5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlY4QmluZGluZy5oIgot
I2luY2x1ZGUgIlY4UHJveHkuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhBdWRpb05vZGU6OmNvbm5lY3RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQoteyAgICAKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVy
cm9yKTsKLQotICAgIEF1ZGlvTm9kZSogZGVzdGluYXRpb25Ob2RlID0gMDsKLSAgICBpZiAoVjhB
dWRpb05vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKQotICAgICAgICBkZXN0aW5hdGlvbk5vZGUg
PSB0b05hdGl2ZShhcmdzWzBdLT5Ub09iamVjdCgpKTsKLSAgICAgICAgCi0gICAgaWYgKCFkZXN0
aW5hdGlvbk5vZGUpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJJbnZhbGlkIGRlc3RpbmF0
aW9uIG5vZGUiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7Ci0gICAgCi0gICAgdW5zaWduZWQgb3V0
cHV0ID0gMDsKLSAgICB1bnNpZ25lZCBpbnB1dCA9IDA7Ci0gICAgYm9vbCBvayA9IGZhbHNlOwot
ICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMSkgewotICAgICAgICBvdXRwdXQgPSB0b0ludDMyKGFy
Z3NbMV0sIG9rKTsKLSAgICAgICAgaWYgKCFvaykKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJJbnZhbGlkIGluZGV4IHBhcmFtZXRlcnMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7Ci0g
ICAgfQotCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAyKSB7Ci0gICAgICAgIGlucHV0ID0gdG9J
bnQzMihhcmdzWzJdLCBvayk7Ci0gICAgICAgIGlmICghb2spCi0gICAgICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcigiSW52YWxpZCBpbmRleCBwYXJhbWV0ZXJzIiwgVjhQcm94eTo6U3ludGF4RXJy
b3IpOwotICAgIH0KLSAgICAgICAgCi0gICAgQXVkaW9Ob2RlKiBhdWRpb05vZGUgPSB0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKLSAgICBib29sIHN1Y2Nlc3MgPSBhdWRpb05vZGUtPmNvbm5lY3Qo
ZGVzdGluYXRpb25Ob2RlLCBvdXRwdXQsIGlucHV0KTsKLSAgICBpZiAoIXN1Y2Nlc3MpCi0gICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJJbnZhbGlkIGluZGV4IHBhcmFtZXRlciIsIFY4UHJveHk6
OlN5bnRheEVycm9yKTsKLQotICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci19Ci0KLXY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEF1ZGlvTm9kZTo6ZGlzY29ubmVjdENhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCi17ICAgIAotICAgIHVuc2lnbmVkIG91dHB1dCA9IDA7Ci0gICAg
Ym9vbCBvayA9IGZhbHNlOwotICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCkgewotICAgICAgICBv
dXRwdXQgPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICAgICAgaWYgKCFvaykKLSAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJJbnZhbGlkIGluZGV4IHBhcmFtZXRlcnMiLCBWOFByb3h5
OjpTeW50YXhFcnJvcik7Ci0gICAgfQotCi0gICAgQXVkaW9Ob2RlKiBhdWRpb05vZGUgPSB0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBib29sIHN1Y2Nlc3MgPSBhdWRpb05vZGUtPmRpc2Nv
bm5lY3Qob3V0cHV0KTsKLSAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJJbnZhbGlkIGluZGV4IHBhcmFtZXRlciIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKLQot
ICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJhdWRpby9BdWRpb05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9O
b2RlLmNwcAppbmRleCBjMmJiYWY3MWIxYWIzOTBmZDFlOTcyZjg4MzYwYTY4YTlhZWQ4MzBkLi42
OWY0MmFmNDhiNGU0MjQxMTk4NWY3ZGM5NGMxZTUzNzYwNDlmMzVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dl
YmF1ZGlvL0F1ZGlvTm9kZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBdWRpb0Nv
bnRleHQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVJbnB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9k
ZU91dHB1dC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlIDx3dGYvQXRv
bWljcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTExMyw0MiArMTE0LDYz
IEBAIEF1ZGlvTm9kZU91dHB1dCogQXVkaW9Ob2RlOjpvdXRwdXQodW5zaWduZWQgaSkKICAgICBy
ZXR1cm4gMDsKIH0KIAotYm9vbCBBdWRpb05vZGU6OmNvbm5lY3QoQXVkaW9Ob2RlKiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgb3V0cHV0SW5kZXgsIHVuc2lnbmVkIGlucHV0SW5kZXgpCit2b2lkIEF1
ZGlvTm9kZTo6Y29ubmVjdChBdWRpb05vZGUqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBvdXRwdXRJ
bmRleCwgdW5zaWduZWQgaW5wdXRJbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsgCiAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGxvY2tl
cihjb250ZXh0KCkpOwotICAgIAorCiAgICAgLy8gU2FuaXR5IGNoZWNrIGlucHV0IGFuZCBvdXRw
dXQgaW5kaWNlcy4KLSAgICBpZiAob3V0cHV0SW5kZXggPj0gbnVtYmVyT2ZPdXRwdXRzKCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoZGVzdGluYXRpb24gJiYgaW5wdXRJbmRleCA+
PSBkZXN0aW5hdGlvbi0+bnVtYmVyT2ZJbnB1dHMoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmIChvdXRwdXRJbmRleCA+PSBudW1iZXJPZk91dHB1dHMoKSkgeworICAgICAgICBlYyA9
IElOREVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlc3Rp
bmF0aW9uICYmIGlucHV0SW5kZXggPj0gZGVzdGluYXRpb24tPm51bWJlck9mSW5wdXRzKCkpIHsK
KyAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAog
ICAgIEF1ZGlvTm9kZU91dHB1dCogb3V0cHV0ID0gdGhpcy0+b3V0cHV0KG91dHB1dEluZGV4KTsK
ICAgICBpZiAoIWRlc3RpbmF0aW9uKSB7CiAgICAgICAgIC8vIERpc2Nvbm5lY3Qgb3V0cHV0IGZy
b20gYW55IGlucHV0cyBpdCBtYXkgYmUgY3VycmVudGx5IGNvbm5lY3RlZCB0by4KICAgICAgICAg
b3V0cHV0LT5kaXNjb25uZWN0QWxsSW5wdXRzKCk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGNvbnRleHQoKSAhPSBkZXN0aW5hdGlvbi0+
Y29udGV4dCgpKSB7CisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuOwog
ICAgIH0KLSAgICAKLSAgICBpZiAoY29udGV4dCgpICE9IGRlc3RpbmF0aW9uLT5jb250ZXh0KCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEF1ZGlvTm9kZUlucHV0KiBpbnB1dCA9IGRl
c3RpbmF0aW9uLT5pbnB1dChpbnB1dEluZGV4KTsKICAgICBpbnB1dC0+Y29ubmVjdChvdXRwdXQp
OwogCiAgICAgLy8gTGV0IGNvbnRleHQga25vdyB0aGF0IGEgY29ubmVjdGlvbiBoYXMgYmVlbiBt
YWRlLgogICAgIGNvbnRleHQoKS0+aW5jcmVtZW50Q29ubmVjdGlvbkNvdW50KCk7Cit9CisKK3Zv
aWQgQXVkaW9Ob2RlOjpjb25uZWN0KEF1ZGlvTm9kZSogZGVzdGluYXRpb24sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGNvbm5lY3QoZGVzdGluYXRpb24sIDAsIDAsIGVjKTsKK30KKwogCi0g
ICAgcmV0dXJuIHRydWU7Cit2b2lkIEF1ZGlvTm9kZTo6Y29ubmVjdChBdWRpb05vZGUqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBvdXRwdXRJbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAg
Y29ubmVjdChkZXN0aW5hdGlvbiwgb3V0cHV0SW5kZXgsIDAsIGVjKTsKIH0KIAotYm9vbCBBdWRp
b05vZGU6OmRpc2Nvbm5lY3QodW5zaWduZWQgb3V0cHV0SW5kZXgpCit2b2lkIEF1ZGlvTm9kZTo6
ZGlzY29ubmVjdCh1bnNpZ25lZCBvdXRwdXRJbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIg
bG9ja2VyKGNvbnRleHQoKSk7Ci0gICAgCi0gICAgcmV0dXJuIGNvbm5lY3QoMCwgb3V0cHV0SW5k
ZXgpOworCisgICAgY29ubmVjdCgwLCBvdXRwdXRJbmRleCwgZWMpOworfQorCit2b2lkIEF1ZGlv
Tm9kZTo6ZGlzY29ubmVjdChFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBkaXNjb25uZWN0KDAs
IGVjKTsKIH0KIAogdm9pZCBBdWRpb05vZGU6OnByb2Nlc3NJZk5lY2Vzc2FyeShzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGUuaAppbmRleCA4NmZmZTdj
ZmE0NTUyNjE1YTliOTU4Mzk0YmRlN2FkNDhlZGZjN2MyLi5kMWZhMGEzNGM4NzExZDg1MTA1NTQz
ZGFmNjE5ZWM2Y2Y2OGQwNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
dWRpb05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGUuaApAQCAt
MzgsNiArMzgsOCBAQCBjbGFzcyBBdWRpb0NvbnRleHQ7CiBjbGFzcyBBdWRpb05vZGVJbnB1dDsK
IGNsYXNzIEF1ZGlvTm9kZU91dHB1dDsKIAordHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKwog
Ly8gQW4gQXVkaW9Ob2RlIGlzIHRoZSBiYXNpYyBidWlsZGluZyBibG9jayBmb3IgaGFuZGxpbmcg
YXVkaW8gd2l0aGluIGFuIEF1ZGlvQ29udGV4dC4KIC8vIEl0IG1heSBiZSBhbiBhdWRpbyBzb3Vy
Y2UsIGFuIGludGVybWVkaWF0ZSBwcm9jZXNzaW5nIG1vZHVsZSwgb3IgYW4gYXVkaW8gZGVzdGlu
YXRpb24uCiAvLyBFYWNoIEF1ZGlvTm9kZSBjYW4gaGF2ZSBpbnB1dHMgYW5kL29yIG91dHB1dHMu
IEFuIEF1ZGlvU291cmNlTm9kZSBoYXMgbm8gaW5wdXRzIGFuZCBhIHNpbmdsZSBvdXRwdXQuCkBA
IC0xMTIsMTAgKzExNCwxMiBAQCBwdWJsaWM6CiAgICAgQXVkaW9Ob2RlSW5wdXQqIGlucHV0KHVu
c2lnbmVkKTsKICAgICBBdWRpb05vZGVPdXRwdXQqIG91dHB1dCh1bnNpZ25lZCk7CiAKLSAgICAv
LyBjb25uZWN0KCkgLyBkaXNjb25uZWN0KCkgcmV0dXJuIHRydWUgb24gc3VjY2Vzcy4KICAgICAv
LyBDYWxsZWQgZnJvbSBtYWluIHRocmVhZCBieSBjb3JyZXNwb25kaW5nIEphdmFTY3JpcHQgbWV0
aG9kcy4KLSAgICBib29sIGNvbm5lY3QoQXVkaW9Ob2RlKiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
b3V0cHV0SW5kZXggPSAwLCB1bnNpZ25lZCBpbnB1dEluZGV4ID0gMCk7Ci0gICAgYm9vbCBkaXNj
b25uZWN0KHVuc2lnbmVkIG91dHB1dEluZGV4ID0gMCk7CisgICAgdm9pZCBjb25uZWN0KEF1ZGlv
Tm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGNvbm5lY3QoQXVkaW9Ob2RlKiwgdW5z
aWduZWQgb3V0cHV0SW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGNvbm5lY3QoQXVk
aW9Ob2RlKiwgdW5zaWduZWQgb3V0cHV0SW5kZXgsIHVuc2lnbmVkIGlucHV0SW5kZXgsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3QoRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgZGlzY29ubmVjdCh1bnNpZ25lZCBvdXRwdXRJbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogCiAg
ICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGUuaWRsIGIvU291cmNl
L1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbAppbmRleCBlNTFhYTdjMTI1ZWFjMmFhZWM5
ZTE5Y2U2ODAzOTMxZjM0ZmM5NDI3Li42NDM5ZTViZmRhNmRiNTBkYjY1ZWU2YmJjY2E2NTU0YjE2
NDY0ZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGUuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwKQEAgLTMwLDEyICsz
MCwxMCBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZklucHV0czsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzOwogCi0gICAgICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0
aGlzIG1ldGhvZCBuZWVkIHRvIGJlIEN1c3RvbT8KLSAgICAgICAgW0N1c3RvbV0gdm9pZCBjb25u
ZWN0KGluIEF1ZGlvTm9kZSBkZXN0aW5hdGlvbiwgaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBsb25n
IG91dHB1dCwgaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBsb25nIGlucHV0KQorICAgICAgICB2b2lk
IGNvbm5lY3QoaW4gQXVkaW9Ob2RlIGRlc3RpbmF0aW9uLCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVk
IGxvbmcgb3V0cHV0LCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIGxvbmcgaW5wdXQpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXMg
dGhpcyBtZXRob2QgbmVlZCB0byBiZSBDdXN0b20/Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZGlz
Y29ubmVjdChpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIGxvbmcgb3V0cHV0KQorICAgICAgICB2b2lk
IGRpc2Nvbm5lY3QoaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBsb25nIG91dHB1dCkKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiB9Cg==
</data>
<flag name="review"
          id="121156"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="121158"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120839</attachid>
            <date>2011-12-31 19:36:54 -0800</date>
            <delta_ts>2012-01-01 12:56:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75402-20120101114052.patch</filename>
            <type>text/plain</type>
            <size>19173</size>
            <attacher name="Raymond">rgbbones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTMwNzk1YTEyYzhmMDIz
YTM0YWYzZTk4MDA0MTgzNTViYjNlZGEyOS4uYmU1ODdlMTE1NGZmNGFhNWJjODAxMGVlY2NkZTgw
MTFkNjIxMDQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTEyLTMxICBSYXlt
b25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4KKworICAgICAgICBVc2Ugb3ZlcmxvYWQg
bWV0aG9kcyB0byBpbXBsZW1lbnQgW09wdGlvbmFsXSBwYXJhbWV0ZXJzIGluIEF1ZGlvTm9kZS5p
ZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIHJlcXVpcmVkLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
QXVkaW9Ob2RlQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhBdWRpb05vZGVDdXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1
ZGlvTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OmNvbm5lY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpkaXNjb25uZWN0KToKKyAgICAgICAgKiB3ZWJhdWRp
by9BdWRpb05vZGUuaDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb05vZGUuaWRsOgorCiAyMDEx
LTEyLTMxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQ29y
ZSBjaGFuZ2UgZm9yIDxyZGFyOi8vcHJvYmxlbS8xMDQ2MzA1OT4gQ2Fubm90IHByaW50IFVTUFMg
c2hpcHBpbmcgbGFiZWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhZGFiYWNh
MmY2OGNhOGZjODI2YjQwMDIwYTg4M2MxNGQzZjhhOTAwLi41YTY1ZmI2NDI2M2U2M2Y4ZDg3ODAz
NTI4M2FkMzAyYmQ5ZTU5Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTUx
OTgsNyArNTE5OCw2IEBAIGlmIEVOQUJMRV9XRUJfQVVESU8KIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0
b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3Rv
bS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Ob2RlQ3VzdG9tLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb252b2x2ZXJOb2RlQ3VzdG9tLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNKYXZhU2NyaXB0QXVkaW9Ob2RlQ3Vz
dG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXYXZlU2hhcGVyTm9kZUN1
c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRleCAzZDJmNDRkNTQ0NThkMDVlNGM3ZDVkOGVjNTAz
OGM2YzcxYmU2YjZmLi4xMDg1ZGJiZTIxZjY1Y2EyZTgyMTQyNzQxMjcwM2E0MDIyYTBkZmQwIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Vc2VWOC5jbWFrZQpAQCAtNjcsNyArNjcsNiBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwCiAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NS
dWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3Rv
bS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkZDQ4ZWQxNzAwZWMxODE3NmQ3MWU4NTk4OWVkYWQy
NjA3YzRlYTI0Li5hMjZlMmUzOWVjNzgzYjIxMjExODJjYTJjNmY1YWM0NzA4Y2MyNDU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0xODIwLDcgKzE4MjAsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTQXR0ckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQXVkaW9C
dWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNB
dWRpb0NvbnRleHRDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlv
Tm9kZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJ
bk9uZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ0RBVEFTZWN0aW9uQ3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDU1NGb250RmFjZVJ1bGVDdXN0b20u
Y3BwJywKQEAgLTIxODAsNyArMjE3OSw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEF1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAnLAotICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvTm9kZUN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEJpbmRpbmdNYWNyb3MuaCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTUnVsZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBh
YzQ3ZDBlNDQ2ZjQ4MzdhOGFhNTFhZTQwMTcwYjNhYjZmMjNlMmZkLi5hNDhkOWY2M2NlNGM0MTAw
ZTE5NmQwMDZjYjczMTIyOWM0OGIzMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc4LDcgKzYzNzgsNiBAQAogCQlGREM1
NEYwNTEzOTlCMERBMDA4RDkxMTcgLyogQmlxdWFkRmlsdGVyTm9kZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRDNTRGMDIxMzk5QjBEQTAwOEQ5MTE3
IC8qIEJpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKIAkJRkRFQUFBRjMxMkIwMkVFNDAwRENGMzNC
IC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERUFBQUVGMTJCMDJFRTQwMERDRjMzQiAvKiBK
U0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgKi87IH07CiAJCUZERUFBQUY0MTJCMDJF
RTQwMERDRjMzQiAvKiBKU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREVBQUFGMDEyQjAyRUU0MDBEQ0YzM0IgLyog
SlNBdWRpb0NvbnRleHRDdXN0b20uY3BwICovOyB9OwotCQlGREVBQUFGNTEyQjAyRUU0MDBEQ0Yz
M0IgLyogSlNBdWRpb05vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkRFQUFBRjExMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Ob2Rl
Q3VzdG9tLmNwcCAqLzsgfTsKIAkJRkRFQUFBRjYxMkIwMkVFNDAwRENGMzNCIC8qIEpTQ29udm9s
dmVyTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGREVBQUFGMjEyQjAyRUU0MDBEQ0YzM0IgLyogSlNDb252b2x2ZXJOb2RlQ3VzdG9t
LmNwcCAqLzsgfTsKIAkJRkRFQUFBRkUxMkIwMkY0OTAwRENGMzNCIC8qIEpTSmF2YVNjcmlwdEF1
ZGlvTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGREVBQUFGRDEyQjAyRjQ5MDBEQ0YzM0IgLyogSlNKYXZhU2NyaXB0QXVkaW9Ob2Rl
Q3VzdG9tLmNwcCAqLzsgfTsKIAkJRkRGMDlEQzgxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFk
RmlsdGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGREYwOURDNjEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmNwcCAq
LzsgfTsKQEAgLTEzODU1LDcgKzEzODU0LDYgQEAKIAkJRkRDNTRGMDMxMzk5QjBEQTAwOEQ5MTE3
IC8qIEJpcXVhZEZpbHRlck5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVhZEZp
bHRlck5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREVBQUFFRjEyQjAy
RUU0MDBEQ0YzM0IgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREVBQUFGMDEyQjAyRUU0MDBE
Q0YzM0IgLyogSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlGREVBQUFGMTEyQjAyRUU0MDBEQ0YzM0IgLyogSlNBdWRpb05vZGVDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdWRpb05vZGVD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREVBQUFGMjEyQjAyRUU0
MDBEQ0YzM0IgLyogSlNDb252b2x2ZXJOb2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29udm9sdmVyTm9kZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUZERUFBQUZEMTJCMDJGNDkwMERDRjMzQiAvKiBKU0phdmFTY3Jp
cHRBdWRpb05vZGVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNKYXZhU2NyaXB0QXVkaW9Ob2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkRGMDlEQzYxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0JpcXVhZEZpbHRlck5v
ZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk4MjYsNyArMTk4MjQsNiBA
QAogCQkJCUJDMkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwICovLAog
CQkJCUZERUFBQUVGMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1
c3RvbS5jcHAgKi8sCiAJCQkJRkRFQUFBRjAxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Db250
ZXh0Q3VzdG9tLmNwcCAqLywKLQkJCQlGREVBQUFGMTEyQjAyRUU0MDBEQ0YzM0IgLyogSlNBdWRp
b05vZGVDdXN0b20uY3BwICovLAogCQkJCTQ5RUVEMTRCMTA1MTk3MTkwMDA5OUZBQiAvKiBKU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEQxMDUxOTcx
QTAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJ
OTNCQTU5QjEwRjJBQTVGRTAwOEU4RTk5IC8qIEpTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcCAqLywK
QEAgLTI2MzE4LDcgKzI2MzE1LDYgQEAKIAkJCQlGREExNUVBQjEyQjAzRUUxMDAzQTU4M0EgLyog
SlNBdWRpb0dhaW5Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUFEMTJCMDNFRTEw
MDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVF
QUYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUZERUFBQUY1MTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvTm9kZUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREExNUVCMTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb1Bhbm5lck5v
ZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVFQjMxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9QYXJhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVCNTEyQjAzRUUxMDAzQTU4
M0EgLyogSlNBdWRpb1Byb2Nlc3NpbmdFdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Ob2RlQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Ob2RlQ3VzdG9tLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNjdmMzNmMjYwMDE2Nzc5YjQ1NjJjNmYzMmFhNmE0NjY5YzEw
MjVjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvTm9kZUN1c3RvbS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0j
aWYgRU5BQkxFKFdFQl9BVURJTykKLQotI2luY2x1ZGUgIkpTQXVkaW9Ob2RlLmgiCi0KLSNpbmNs
dWRlICJBdWRpb05vZGUuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotSlNDOjpKU1ZhbHVlIEpTQXVkaW9Ob2RlOjpjb25uZWN0KEpTQzo6RXhl
Y1N0YXRlKiBleGVjKQotewotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQotICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiTm90
IGVub3VnaCBhcmd1bWVudHMiKSk7Ci0KLSAgICB1bnNpZ25lZCBvdXRwdXRJbmRleCA9IDA7Ci0g
ICAgdW5zaWduZWQgaW5wdXRJbmRleCA9IDA7Ci0gICAgCi0gICAgQXVkaW9Ob2RlKiBkZXN0aW5h
dGlvbk5vZGUgPSB0b0F1ZGlvTm9kZShleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAgaWYgKCFkZXN0
aW5hdGlvbk5vZGUpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRh
eEVycm9yKGV4ZWMsICJJbnZhbGlkIGRlc3RpbmF0aW9uIG5vZGUiKSk7Ci0gICAgCi0gICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEpCi0gICAgICAgIG91dHB1dEluZGV4ID0gZXhlYy0+
YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKLQotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPiAyKQotICAgICAgICBpbnB1dEluZGV4ID0gZXhlYy0+YXJndW1lbnQoMikudG9JbnQzMihl
eGVjKTsKLQotICAgIEF1ZGlvTm9kZSogYXVkaW9Ob2RlID0gc3RhdGljX2Nhc3Q8QXVkaW9Ob2Rl
Kj4oaW1wbCgpKTsKLSAgICBib29sIHN1Y2Nlc3MgPSBhdWRpb05vZGUtPmNvbm5lY3QoZGVzdGlu
YXRpb25Ob2RlLCBvdXRwdXRJbmRleCwgaW5wdXRJbmRleCk7Ci0gICAgaWYgKCFzdWNjZXNzKQot
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAi
SW52YWxpZCBpbmRleCBwYXJhbWV0ZXIiKSk7Ci0gICAgCi0gICAgcmV0dXJuIEpTQzo6anNVbmRl
ZmluZWQoKTsKLX0KLQotSlNDOjpKU1ZhbHVlIEpTQXVkaW9Ob2RlOjpkaXNjb25uZWN0KEpTQzo6
RXhlY1N0YXRlKiBleGVjKQoteyAgICAKLSAgICB1bnNpZ25lZCBvdXRwdXRJbmRleCA9IDA7Ci0g
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDApCi0gICAgICAgIG91dHB1dEluZGV4ID0g
ZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKLQotICAgIEF1ZGlvTm9kZSogYXVkaW9O
b2RlID0gc3RhdGljX2Nhc3Q8QXVkaW9Ob2RlKj4oaW1wbCgpKTsKLSAgICBhdWRpb05vZGUtPmRp
c2Nvbm5lY3Qob3V0cHV0SW5kZXgpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb05v
ZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9O
b2RlQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkwYjA1MTI5OTZi
N2QyMmFlZTI5OWQ4YTFmMjA5ZmFhY2JhNWUzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhB
dWRpb05vZGVDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0KLSNp
bmNsdWRlICJWOEF1ZGlvTm9kZS5oIgotCi0jaW5jbHVkZSAiQXVkaW9Ob2RlLmgiCi0jaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVk
ZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEF1ZGlvTm9kZTo6Y29ubmVjdENhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17ICAgIAotICAgIGlmIChhcmdzLkxlbmd0aCgp
IDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwg
VjhQcm94eTo6U3ludGF4RXJyb3IpOwotCi0gICAgQXVkaW9Ob2RlKiBkZXN0aW5hdGlvbk5vZGUg
PSAwOwotICAgIGlmIChWOEF1ZGlvTm9kZTo6SGFzSW5zdGFuY2UoYXJnc1swXSkpCi0gICAgICAg
IGRlc3RpbmF0aW9uTm9kZSA9IHRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOwotICAgICAg
ICAKLSAgICBpZiAoIWRlc3RpbmF0aW9uTm9kZSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
IkludmFsaWQgZGVzdGluYXRpb24gbm9kZSIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKLSAgICAK
LSAgICB1bnNpZ25lZCBvdXRwdXQgPSAwOwotICAgIHVuc2lnbmVkIGlucHV0ID0gMDsKLSAgICBi
b29sIG9rID0gZmFsc2U7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAxKSB7Ci0gICAgICAgIG91
dHB1dCA9IHRvSW50MzIoYXJnc1sxXSwgb2spOwotICAgICAgICBpZiAoIW9rKQotICAgICAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFyYW1ldGVycyIsIFY4UHJveHk6
OlN5bnRheEVycm9yKTsKLSAgICB9Ci0KLSAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDIpIHsKLSAg
ICAgICAgaW5wdXQgPSB0b0ludDMyKGFyZ3NbMl0sIG9rKTsKLSAgICAgICAgaWYgKCFvaykKLSAg
ICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJJbnZhbGlkIGluZGV4IHBhcmFtZXRlcnMiLCBW
OFByb3h5OjpTeW50YXhFcnJvcik7Ci0gICAgfQotICAgICAgICAKLSAgICBBdWRpb05vZGUqIGF1
ZGlvTm9kZSA9IHRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIGJvb2wgc3VjY2VzcyA9IGF1
ZGlvTm9kZS0+Y29ubmVjdChkZXN0aW5hdGlvbk5vZGUsIG91dHB1dCwgaW5wdXQpOwotICAgIGlm
ICghc3VjY2VzcykKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFy
YW1ldGVyIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOwotCi0gICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKLX0KLQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXVkaW9Ob2RlOjpkaXNjb25uZWN0
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKLXsgICAgCi0gICAgdW5zaWduZWQg
b3V0cHV0ID0gMDsKLSAgICBib29sIG9rID0gZmFsc2U7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PiAwKSB7Ci0gICAgICAgIG91dHB1dCA9IHRvSW50MzIoYXJnc1swXSwgb2spOwotICAgICAgICBp
ZiAoIW9rKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFy
YW1ldGVycyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKLSAgICB9Ci0KLSAgICBBdWRpb05vZGUq
IGF1ZGlvTm9kZSA9IHRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIGJvb2wgc3VjY2VzcyA9
IGF1ZGlvTm9kZS0+ZGlzY29ubmVjdChvdXRwdXQpOwotICAgIGlmICghc3VjY2VzcykKLSAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoIkludmFsaWQgaW5kZXggcGFyYW1ldGVyIiwgVjhQcm94eTo6
U3ludGF4RXJyb3IpOwotCi0gICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IGMyYmJhZjcxYjFhYjM5MGZkMWU5NzJmODgz
NjBhNjhhOWFlZDgzMGQuLmUyYTNiNzgzZmNkZTQ0MDVhYjllNmM0MjRjYmRkNzM5Mjc5Mzc0MzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZUlucHV0LmgiCiAj
aW5jbHVkZSAiQXVkaW9Ob2RlT3V0cHV0LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgog
I2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApA
QCAtMTEzLDQyICsxMTQsNTMgQEAgQXVkaW9Ob2RlT3V0cHV0KiBBdWRpb05vZGU6Om91dHB1dCh1
bnNpZ25lZCBpKQogICAgIHJldHVybiAwOwogfQogCi1ib29sIEF1ZGlvTm9kZTo6Y29ubmVjdChB
dWRpb05vZGUqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBvdXRwdXRJbmRleCwgdW5zaWduZWQgaW5w
dXRJbmRleCkKK3ZvaWQgQXVkaW9Ob2RlOjpjb25uZWN0KEF1ZGlvTm9kZSogZGVzdGluYXRpb24s
IHVuc2lnbmVkIG91dHB1dEluZGV4LCB1bnNpZ25lZCBpbnB1dEluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyAKICAgICBBdWRpb0NvbnRleHQ6
OkF1dG9Mb2NrZXIgbG9ja2VyKGNvbnRleHQoKSk7Ci0gICAgCi0gICAgLy8gU2FuaXR5IGNoZWNr
IGlucHV0IGFuZCBvdXRwdXQgaW5kaWNlcy4KLSAgICBpZiAob3V0cHV0SW5kZXggPj0gbnVtYmVy
T2ZPdXRwdXRzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoZGVzdGluYXRpb24g
JiYgaW5wdXRJbmRleCA+PSBkZXN0aW5hdGlvbi0+bnVtYmVyT2ZJbnB1dHMoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQgPSB0aGlzLT5vdXRw
dXQob3V0cHV0SW5kZXgpOwogICAgIGlmICghZGVzdGluYXRpb24pIHsKLSAgICAgICAgLy8gRGlz
Y29ubmVjdCBvdXRwdXQgZnJvbSBhbnkgaW5wdXRzIGl0IG1heSBiZSBjdXJyZW50bHkgY29ubmVj
dGVkIHRvLgotICAgICAgICBvdXRwdXQtPmRpc2Nvbm5lY3RBbGxJbnB1dHMoKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIC8vIFNhbml0eSBjaGVjayBpbnB1dCBhbmQgb3V0cHV0IGluZGljZXMuCisg
ICAgaWYgKG91dHB1dEluZGV4ID49IG51bWJlck9mT3V0cHV0cygpKSB7CisgICAgICAgIGVjID0g
SU5ERVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZGVzdGlu
YXRpb24gJiYgaW5wdXRJbmRleCA+PSBkZXN0aW5hdGlvbi0+bnVtYmVyT2ZJbnB1dHMoKSkgewor
ICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGNvbnRleHQoKSAhPSBkZXN0aW5hdGlvbi0+Y29udGV4dCgpKSB7CisgICAgICAgIGVj
ID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKLSAgICBpZiAoY29u
dGV4dCgpICE9IGRlc3RpbmF0aW9uLT5jb250ZXh0KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIEF1ZGlvTm9kZUlucHV0KiBpbnB1dCA9IGRlc3RpbmF0aW9uLT5pbnB1dChpbnB1dElu
ZGV4KTsKKyAgICBBdWRpb05vZGVPdXRwdXQqIG91dHB1dCA9IHRoaXMtPm91dHB1dChvdXRwdXRJ
bmRleCk7CiAgICAgaW5wdXQtPmNvbm5lY3Qob3V0cHV0KTsKIAogICAgIC8vIExldCBjb250ZXh0
IGtub3cgdGhhdCBhIGNvbm5lY3Rpb24gaGFzIGJlZW4gbWFkZS4KICAgICBjb250ZXh0KCktPmlu
Y3JlbWVudENvbm5lY3Rpb25Db3VudCgpOwotCi0gICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
QXVkaW9Ob2RlOjpkaXNjb25uZWN0KHVuc2lnbmVkIG91dHB1dEluZGV4KQordm9pZCBBdWRpb05v
ZGU6OmRpc2Nvbm5lY3QodW5zaWduZWQgb3V0cHV0SW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9j
a2VyIGxvY2tlcihjb250ZXh0KCkpOwotICAgIAotICAgIHJldHVybiBjb25uZWN0KDAsIG91dHB1
dEluZGV4KTsKKworICAgIC8vIFNhbml0eSBjaGVjayBpbnB1dCBhbmQgb3V0cHV0IGluZGljZXMu
CisgICAgaWYgKG91dHB1dEluZGV4ID49IG51bWJlck9mT3V0cHV0cygpKSB7CisgICAgICAgIGVj
ID0gSU5ERVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBdWRpb05v
ZGVPdXRwdXQqIG91dHB1dCA9IHRoaXMtPm91dHB1dChvdXRwdXRJbmRleCk7CisgICAgb3V0cHV0
LT5kaXNjb25uZWN0QWxsSW5wdXRzKCk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlOjpwcm9jZXNzSWZO
ZWNlc3Nhcnkoc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9O
b2RlLmgKaW5kZXggODZmZmU3Y2ZhNDU1MjYxNWE5Yjk1ODM5NGJkZTdhZDQ4ZWRmYzdjMi4uZDEz
MjVlMWRiZWUxODBiNjc3MWRkM2Q3YmE2NDViMjQ4Y2YxMzVkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vQXVkaW9Ob2RlLmgKQEAgLTM4LDYgKzM4LDggQEAgY2xhc3MgQXVkaW9Db250ZXh0OwogY2xh
c3MgQXVkaW9Ob2RlSW5wdXQ7CiBjbGFzcyBBdWRpb05vZGVPdXRwdXQ7CiAKK3R5cGVkZWYgaW50
IEV4Y2VwdGlvbkNvZGU7CisKIC8vIEFuIEF1ZGlvTm9kZSBpcyB0aGUgYmFzaWMgYnVpbGRpbmcg
YmxvY2sgZm9yIGhhbmRsaW5nIGF1ZGlvIHdpdGhpbiBhbiBBdWRpb0NvbnRleHQuCiAvLyBJdCBt
YXkgYmUgYW4gYXVkaW8gc291cmNlLCBhbiBpbnRlcm1lZGlhdGUgcHJvY2Vzc2luZyBtb2R1bGUs
IG9yIGFuIGF1ZGlvIGRlc3RpbmF0aW9uLgogLy8gRWFjaCBBdWRpb05vZGUgY2FuIGhhdmUgaW5w
dXRzIGFuZC9vciBvdXRwdXRzLiBBbiBBdWRpb1NvdXJjZU5vZGUgaGFzIG5vIGlucHV0cyBhbmQg
YSBzaW5nbGUgb3V0cHV0LgpAQCAtMTEyLDEwICsxMTQsOSBAQCBwdWJsaWM6CiAgICAgQXVkaW9O
b2RlSW5wdXQqIGlucHV0KHVuc2lnbmVkKTsKICAgICBBdWRpb05vZGVPdXRwdXQqIG91dHB1dCh1
bnNpZ25lZCk7CiAKLSAgICAvLyBjb25uZWN0KCkgLyBkaXNjb25uZWN0KCkgcmV0dXJuIHRydWUg
b24gc3VjY2Vzcy4KICAgICAvLyBDYWxsZWQgZnJvbSBtYWluIHRocmVhZCBieSBjb3JyZXNwb25k
aW5nIEphdmFTY3JpcHQgbWV0aG9kcy4KLSAgICBib29sIGNvbm5lY3QoQXVkaW9Ob2RlKiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgb3V0cHV0SW5kZXggPSAwLCB1bnNpZ25lZCBpbnB1dEluZGV4ID0g
MCk7Ci0gICAgYm9vbCBkaXNjb25uZWN0KHVuc2lnbmVkIG91dHB1dEluZGV4ID0gMCk7CisgICAg
dm9pZCBjb25uZWN0KEF1ZGlvTm9kZSosIHVuc2lnbmVkIG91dHB1dEluZGV4LCB1bnNpZ25lZCBp
bnB1dEluZGV4LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBkaXNjb25uZWN0KHVuc2lnbmVk
IG91dHB1dEluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBmbG9hdCBzYW1wbGVSYXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRp
b05vZGUuaWRsCmluZGV4IGU1MWFhN2MxMjVlYWMyYWFlYzllMTljZTY4MDM5MzFmMzRmYzk0Mjcu
LjA2Zjg3M2UzYTg4YWZlMjIxOTI0NjRhMmQzYTIyMzIwYTIxNzc2YmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
d2ViYXVkaW8vQXVkaW9Ob2RlLmlkbApAQCAtMzAsMTIgKzMwLDEwIEBAIG1vZHVsZSBhdWRpbyB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRz
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZk91dHB1
dHM7CiAKLSAgICAgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgbWV0aG9kIG5lZWQgdG8gYmUg
Q3VzdG9tPwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGNvbm5lY3QoaW4gQXVkaW9Ob2RlIGRlc3Rp
bmF0aW9uLCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIGxvbmcgb3V0cHV0LCBpbiBbT3B0aW9uYWxd
IHVuc2lnbmVkIGxvbmcgaW5wdXQpCisgICAgICAgIHZvaWQgY29ubmVjdChpbiBBdWRpb05vZGUg
ZGVzdGluYXRpb24sIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gdW5zaWduZWQg
bG9uZyBvdXRwdXQsIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gdW5zaWduZWQg
bG9uZyBpbnB1dCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAg
IC8vIEZJWE1FOiBXaHkgZG9lcyB0aGlzIG1ldGhvZCBuZWVkIHRvIGJlIEN1c3RvbT8KLSAgICAg
ICAgW0N1c3RvbV0gdm9pZCBkaXNjb25uZWN0KGluIFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyBv
dXRwdXQpCisgICAgICAgIHZvaWQgZGlzY29ubmVjdChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIHVuc2lnbmVkIGxvbmcgb3V0cHV0KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgfTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>