<?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>77510</bug_id>
          
          <creation_ts>2012-01-31 21:52:17 -0800</creation_ts>
          <short_desc>In AppleWebKit and AppleWin, stop rebuilding IDLs that need not to be rebuilt</short_desc>
          <delta_ts>2023-02-08 22:21:56 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</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>76970</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dominicc</cc>
    
    <cc>fujii</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>546800</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-31 21:52:17 -0800</bug_when>
    <thetext>Currently, if any IDL is updated, all IDLs are rebuilt. We should stop rebuilding IDLs which are not modified and whose supplemental dependency are not changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547014</commentid>
    <comment_count>1</comment_count>
      <attachid>124931</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-01 05:03:48 -0800</bug_when>
    <thetext>Created attachment 124931
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547019</commentid>
    <comment_count>2</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-01 05:07:30 -0800</bug_when>
    <thetext>Uploaded a WIP patch. The patch works fine in a clean build. However, when I touch Element.idl and try rebuild, makefile goes into infinite loop. This is strange since the dependency of makefile should be DAG. I&apos;ve been debugging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547037</commentid>
    <comment_count>3</comment_count>
      <attachid>124938</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-01 06:01:15 -0800</bug_when>
    <thetext>Created attachment 124938
WIP patch

Fixed the infinite loop issue by handling JavaScriptCallFrame.idl specially</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547086</commentid>
    <comment_count>4</comment_count>
      <attachid>124938</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-01 07:51:38 -0800</bug_when>
    <thetext>Comment on attachment 124938
WIP patch

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

Looks like a good approach. The file name supplemental_dependency.tmp seems like it could be better. No reason the .tmp extension is particularly good. But I guess you already had that file name before this patch.

&gt; Source/WebCore/bindings/scripts/update-idl-needs-rebuild.pl:68
&gt; +    open FH, &quot;&gt; $file&quot; or die &quot;Couldn&apos;t open $file: $!&quot;;

Better syntax:

    open FH, &quot;&gt;&quot;, $file

The version where the &quot;&gt;&quot; is in the filename string is old/obsolete. Same for &quot;&lt;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547088</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-01 07:56:18 -0800</bug_when>
    <thetext>Adam, Darin: Thank you! Getting close to the goal, but one problem still remains. Even if I touch DOMWindowWebAudio.idl, DOMWindow.idl is not rebuilt. The reason is as follows.

The build flow:

&gt; supplemental_dependency.tmp : $(ALL_IDLS)
&gt;     perl resolve-supplemental.pl $(ALL_IDLS)
&gt; 
&gt; %.idl-needs-rebuild : %.idl | supplemental_dependency.tmp
&gt;     touch %.idl-needs-rebuild
&gt;     perl update-idl-needs-rebuild.pl $&lt; $@ # update-idl-needs-rebuild.pl touches the &quot;main&quot; IDL&apos;s .idl-needs-rebuild if the .idl-needs-rebuild is older than %.idl
&gt; 
&gt; JS%.cpp : %.idl-needs-rebuild | *.idl-needs-rebuild
&gt;     perl generate-bindings.pl supplemental_dependency.tmp $&lt;    # Generates JS%.cpp


In particular, let us focus on this line:

&gt; JSDOMWindow.cpp : DOMWindow.idl-needs-rebuild | *.idl-needs-rebuild
&gt;     ...

At this point, the following five things can happen:

(a) All *.idl-needs-rebuild rules fire.
(b) The DOMWindow.idl-needs-rebuild rule fires.
(c) The timestamps of JSDOMWindow.cpp and DOMWindow.idl-needs-rebuild are compared.
(d) If JSDOMWindow.cpp is older than DOMWindow.idl-needs-rebuild, the JSDOMWindow.cpp rule is decided to fire.
(e) If the JSDOMWindow.cpp rule is decided to fire, the JSDOMWindow.cpp rule fires.

We were expecting that the following order would be guaranteed:
(a)-&gt;(c),  (b)-&gt;(c),  (c)-&gt;(d), (d)-&gt;(e)

However, actually what makefile guarantees is the following order:
(a)-&gt;(e),  (b)-&gt;(c),  (c)-&gt;(d), (d)-&gt;(e)

That way, if things happen in the order of (b)-&gt;(c)-&gt;(d)-&gt;(a)-&gt;(e), the JSDOMWindow.cpp rule does not fire. This actually happens in my experiments (even with -j 1).


You can confirm the behavior in the following simplified example:

all : A
A : B | C
	echo A
	touch A
B :
	echo B
C :
	sleep 2
	echo C
	touch B

If you run the makefile with -j 1, &quot;echo A&quot; will be output in the odd runs but will not be output in the even runs.

Any idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548619</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-03 03:44:57 -0800</bug_when>
    <thetext>Adam, Darin: dominicc@ suggested the following idea:

supplemental_dependency.tmp : $(ALL_IDLS)
    perl resolve-supplemental.pl ...

%.idl-needs-rebuild : %.idl supplemental_dependency.tmp
    perl update-idl-needs-rebuild.pl ...

JS%.cpp : %.idl-needs-rebuild
     perl generate-bindings.pl ...


resolve-supplemental.pl generates the following supplemental_dependency.tmp. The number next to a file name is the timestamp of the file.

A.idl(1200)
B.idl(1000) B-supplemental1.idl(800) B-supplemental2.idl(1200)
C.idl(1000)

update-idl-needs-rebuild.pl touches %.idl-needs-rebuild so that the timestamps of %.idl-needs-rebuild and %.idl become equal, if (1) %.idl-needs-rebuild is older than %.idl or (2) there is an IDL file (other than %.idl) whose timestamp is newer than %.idl in the %.idl&apos;s line of supplemental_dependency.tmp. For example, if the timestamps of A.idl-needs-rebuild, B.idl-needs-rebuild and C.idl-needs-rebuild are 1000, then A.idl-needs-rebuild and B.idl-needs-rebuild will be touched.

If any IDL is updated, resolve-supplemental.pl will run once, update-idl-needs-rebuild.pl will run for all IDL files, and generate-bindings.pl will run for the IDL files which are modified or whose dependencies are changed.

It appears it will work fine. The advantage of this idea is that it does not use makefile&apos;s tricky syntax. Thoughts? If you think this will work fine, I am happy to implement it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548890</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-03 11:31:57 -0800</bug_when>
    <thetext>The only immediate problem I spot is that running the update-idl-needs-rebuild.pl script hundreds of times might be slow. Otherwise, sounds like it should be OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549872</commentid>
    <comment_count>8</comment_count>
      <attachid>125607</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-06 03:07:41 -0800</bug_when>
    <thetext>Created attachment 125607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549874</commentid>
    <comment_count>9</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-06 03:12:59 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; The only immediate problem I spot is that running the update-idl-needs-rebuild.pl script hundreds of times might be slow. 

Darin, Adam: I confirmed that the uploaded patch works as we expect, except that update-idl-needs-rebuild.pl always runs for all IDL files even if no IDL files are updated. (If no IDLs are updated, update-idl-needs-rebuild.pl just runs and does nothing. It takes about 3 seconds in my local AppleWebKit. Would it be acceptable?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550249</commentid>
    <comment_count>10</comment_count>
      <attachid>125607</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-06 13:33:03 -0800</bug_when>
    <thetext>Comment on attachment 125607
Patch

IMHO, this is an improvement.  It&apos;s probably not the final solution.  We can continue to iterate in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550332</commentid>
    <comment_count>11</comment_count>
      <attachid>125607</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 15:11:15 -0800</bug_when>
    <thetext>Comment on attachment 125607
Patch

Clearing flags on attachment: 125607

Committed r106862: &lt;http://trac.webkit.org/changeset/106862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550333</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 15:11:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550691</commentid>
    <comment_count>13</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-07 00:54:27 -0800</bug_when>
    <thetext>Reverted r106862 for reason:

Mac build fails if we manually remove generated code

Committed r106913: &lt;http://trac.webkit.org/changeset/106913&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550694</commentid>
    <comment_count>14</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-07 01:01:27 -0800</bug_when>
    <thetext>Sadly I rolled out the patch because the patch will break AppleWebKit build.

&gt; supplemental_dependency.tmp : $(ALL_IDLS)
&gt;     perl resolve-supplemental.pl ...
&gt; 
&gt; %.idl-needs-rebuild : %.idl supplemental_dependency.tmp
&gt;     perl update-idl-needs-rebuild.pl ...
&gt; 
&gt; JS%.cpp : %.idl-needs-rebuild
&gt;      perl generate-bindings.pl ...

In the above build flow, if we manually remove JS%.cpp, the JS%.cpp will be never rebuilt again. (The same happens for JS%.h, WebDOM%.h, WebDOM%.cpp, etc) I tried several approaches to fix the issue, but could not find a sane approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932246</commentid>
    <comment_count>15</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-08 22:21:56 -0800</bug_when>
    <thetext>I think this problem is gone.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124931</attachid>
            <date>2012-02-01 05:03:48 -0800</date>
            <delta_ts>2012-02-01 06:01:10 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-77510-20120201220346.patch</filename>
            <type>text/plain</type>
            <size>11187</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ0MjYxN2UzZGNkYWJj
YWRkNGUwM2NjZjI0ZDVmYTU2ZmNjYThjOS4uNTlkMmY3NjEyYzU0YjAzYTFlMGJjNWU2OGZkM2Fj
MDMxMDJlZjNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAyLTAxICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbiBBcHBsZVdlYktp
dCwgc3RvcCByZWJ1aWxkaW5nIElETHMgdGhhdCBuZWVkIG5vdCB0byBiZSByZWJ1aWx0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzUxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgaWYg
YW55IElETCBpcyB1cGRhdGVkLCBhbGwgSURMcyBhcmUgcmVidWlsdC4KKyAgICAgICAgVGhpcyBw
YXRjaCBzdG9wcyByZWJ1aWxkaW5nIElETHMgd2hpY2ggYXJlIG5vdCBtb2RpZmllZCBhbmQKKyAg
ICAgICAgd2hvc2Ugc3VwcGxlbWVudGFsIGRlcGVuZGVuY2llcyBhcmUgbm90IGNoYW5nZWQuCisK
KyAgICAgICAgVGhlIG5ldyBidWlsZCBmbG93IGlzIGFzIGZvbGxvd3M6CisKKyAgICAgICAgICAg
IHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5LnRtcCA6ICQoQUxMX0lETFMpCisgICAgICAgICAgICAg
ICAgcGVybCByZXNvbHZlLXN1cHBsZW1lbnRhbC5wbCAkKEFMTF9JRExTKQorCisgICAgICAgICAg
ICAlLmlkbC1uZWVkcy1yZWJ1aWxkIDogJS5pZGwgfCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeS50
bXAKKyAgICAgICAgICAgICAgICBwZXJsIHVwZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbCAkPCAk
QCAjIHVwZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbCB0b3VjaGVzICUuaWRsIGFuZCB0aGUgc3Vw
cGxlbWVudGluZyBJREwncyAuaWRsLW5lZWRzLXJlYnVpbGQgaWYgdGhlIC5pZGwtbmVlZHMtcmVi
dWlsZCBpcyBvbGRlciB0aGFuICUuaWRsCisKKyAgICAgICAgICAgIEpTJS5jcHAgOiAlLmlkbC1u
ZWVkcy1yZWJ1aWxkIHwgKi5pZGwtbmVlZHMtcmVidWlsZAorICAgICAgICAgICAgICAgIHBlcmwg
Z2VuZXJhdGUtYmluZGluZ3MucGwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kudG1wICQ8ICAgICMg
R2VuZXJhdGVzIEpTJS5jcHAKKworICAgICAgICBObyB0ZXN0cy4gSSBtYW51YWxseSBjb25maXJt
ZWQgdGhlIGZvbGxvd2luZ3M6CisgICAgICAgIC0gVG91Y2ggRWxlbWVudC5pZGwsIHRoZW4gb25s
eSBFbGVtZW50LmlkbCBpcyByZWJ1aWx0CisgICAgICAgIC0gVG91Y2ggRE9NV2luZG93LmlkbCwg
dGhlbiBvbmx5IERPTVdpbmRvdy5pZGwgaXMgcmVidWlsdAorICAgICAgICAtIFRvdWNoIERPTVdp
bmRvd1dlYkF1ZGlvLmlkbCwgdGhlbiBvbmx5IERPTVdpbmRvdy5pZGwgYW5kIERPTVdpbmRvd1dl
YkF1ZGlvLmlkbCBhcmUgcmVidWlsdAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTog
TW9kaWZpZWQgdGhlIGJ1aWxkIGZsb3cgYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGw6IE1vZGlmaWVkIHRvIHJlYWQgYW4g
SURMIGZpbGUgcGF0aCBmcm9tIC5pZGwtbmVlZHMtcmVidWlsZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3VwZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbDogQWRkZWQuCisgICAgICAgIFRv
dWNoZXMgJS5pZGwgYW5kIHRoZSBzdXBwbGVtZW50aW5nIElETCdzIC5pZGwtbmVlZHMtcmVidWls
ZCBpZiB0aGUgLmlkbC1uZWVkcy1yZWJ1aWxkCisgICAgICAgIGlzIG9sZGVyIHRoYW4gJS5pZGwu
CisgICAgICAgICh0b3VjaCk6CisKIDIwMTItMDEtMjkgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jk
b25AZ21haWwuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXNlIGRlY29kaW5nIHN3aXp6bGUg
b25seSBvbiBsaWJqcGVnLXR1cmJvIDEuMS45MCsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDY0YmU4M2Q2YzZhMTY4NDk1MGQxMGIzNzI3NGRkMDNjZTE5N2JlNmMuLjBmMTFhYmEy
YjAzNmM4YjYzNGM3NTI1YTliZjE4MjcyODZmYzQ4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNTg0LDE1ICs1ODQsMTkgQEAgQklORElOR19JRExTID0gXAogRE9NX0NMQVNT
RVM9JChiYXNlbmFtZSAkKG5vdGRpciAkKEJJTkRJTkdfSURMUykpKQogCiBKU19ET01fSEVBREVS
Uz0kKGZpbHRlci1vdXQgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggSlNFdmVudExpc3RlbmVy
LmggSlNFdmVudFRhcmdldC5oLCAkKERPTV9DTEFTU0VTOiU9SlMlLmgpKQorSlNfSURMX05FRURT
X1JFQlVJTERTPSQoSlNfRE9NX0hFQURFUlM6SlMlLmg9JS5pZGwtbmVlZHMtcmVidWlsZCkKIAog
V0VCX0RPTV9IRUFERVJTIDo9CiBpZmVxICgkKGZpbmRzdHJpbmcgQlVJTERJTkdfV1gsJChGRUFU
VVJFX0RFRklORVMpKSwgQlVJTERJTkdfV1gpCiBXRUJfRE9NX0hFQURFUlMgOj0gJChmaWx0ZXIt
b3V0IFdlYkRPTVhTTFRQcm9jZXNzb3IuaCBXZWJET01FdmVudFRhcmdldC5oLCAkKERPTV9DTEFT
U0VTOiU9V2ViRE9NJS5oKSkKK0NQUF9JRExfTkVFRFNfUkVCVUlMRFM9JChXRUJfRE9NX0hFQURF
UlM6V2ViRE9NJS5oPSUuaWRsLW5lZWRzLXJlYnVpbGQpCiBlbmRpZiAjIEJVSUxESU5HX1dYCiAK
IGFsbCA6IFwKICAgICAkKEpTX0RPTV9IRUFERVJTKSBcCisgICAgJChKU19JRExfTkVFRFNfUkVC
VUlMRFMpIFwKICAgICAkKFdFQl9ET01fSEVBREVSUykgXAorICAgICQoQ1BQX0lETF9ORUVEU19S
RUJVSUxEUykgXAogICAgIFwKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUuaCBcCiAgICAgXApA
QCAtOTM0LDggKzkzOCwxMSBAQCAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIDogJChS
RVNPTFZFX1NVUFBMRU1FTlRBTF9TQ1JJUFRTKSAkKEJJTkRJTkdfSURMUwogCSQoY2FsbCByZXNv
bHZlX3N1cHBsZW1lbnRhbF9zY3JpcHQsICQoUkVTT0xWRV9TVVBQTEVNRU5UQUxfU0NSSVBUUykp
IC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykg
TEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlc0xpc3QgJChJRExfRklMRVNfVE1QKSAtLXN1
cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICRACiAJcm0gLWYgJChJRExfRklMRVNfVE1QKQogCi1K
UyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NSSVBUUykgJChTVVBQTEVNRU5UQUxfREVQRU5E
RU5DWV9GSUxFKQotCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKEpTX0JJTkRJTkdTX1NDUklQ
VFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChB
RERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBK
UyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lf
RklMRSkgJDwKKyUuaWRsLW5lZWRzLXJlYnVpbGQgOiAlLmlkbCAkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMvdXBkYXRlLWlkbC1uZWVkcy1yZWJ1aWxkLnBsIHwgJChTVVBQTEVNRU5UQUxfREVQ
RU5ERU5DWV9GSUxFKQorCXBlcmwgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3VwZGF0ZS1p
ZGwtbmVlZHMtcmVidWlsZC5wbCAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExF
TUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pZGxGaWxlICQ8CisKK0pTJS5oIDogJS5pZGwtbmVl
ZHMtcmVidWlsZCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpIHwgJChKU19JRExfTkVFRFNfUkVCVUlM
RFMpCisJJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoSlNfQklORElOR1NfU0NSSVBUUykpICQo
SURMX0NPTU1PTl9BUkdTKSAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSAkKEFERElUSU9O
QUxfSURMX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpTIC0tc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAt
LWlkbE5lZWRzUmVidWlsZEZpbGUgJDwKIAogCiAjIEluc3BlY3RvciBpbnRlcmZhY2VzIGdlbmVy
YXRvcgpAQCAtOTYyLDggKzk2OSw4IEBAIEluamVjdGVkU2NyaXB0U291cmNlLmggOiBJbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qcwogaWZlcSAoJChmaW5kc3RyaW5nIEJVSUxESU5HX1dYLCQoRkVBVFVS
RV9ERUZJTkVTKSksIEJVSUxESU5HX1dYKQogQ1BQX0JJTkRJTkdTX1NDUklQVFMgPSAkKEdFTkVS
QVRFX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbQogCi1XZWJE
T00lLmggOiAlLmlkbCAkKENQUF9CSU5ESU5HU19TQ1JJUFRTKSAkKFNVUFBMRU1FTlRBTF9ERVBF
TkRFTkNZX0ZJTEUpCi0JJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoQ1BQX0JJTkRJTkdTX1ND
UklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykg
JChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9DUFAiIC0tZ2VuZXJhdG9yIENQUCAt
LXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklM
RSkgJDwKK1dlYkRPTSUuaCA6ICUuaWRsLW5lZWRzLXJlYnVpbGQgJChDUFBfQklORElOR1NfU0NS
SVBUUykgfCAkKENQUF9JRExfTkVFRFNfUkVCVUlMRFMpCisJJChjYWxsIGdlbmVyYXRvcl9zY3Jp
cHQsICQoQ1BQX0JJTkRJTkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVz
ICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9D
UFAiIC0tZ2VuZXJhdG9yIENQUCAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExF
TUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgIC0taWRsTmVlZHNSZWJ1aWxkRmlsZSAkPAogZW5kaWYg
IyBCVUlMRElOR19XWAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTczLDggKzk4
MCw5IEBAIGVuZGlmICMgQlVJTERJTkdfV1gKIGlmZXEgKCQoT1MpLE1BQ09TKQogCiBPQkpDX0RP
TV9IRUFERVJTPSQoZmlsdGVyLW91dCBET01ET01XaW5kb3cuaCBET01ET01NaW1lVHlwZS5oIERP
TURPTVBsdWdpbi5oLCQoRE9NX0NMQVNTRVM6JT1ET00lLmgpKQorT0JKQ19JRExfTkVFRFNfUkVC
VUlMRFM9JChPQkpDX0RPTV9IRUFERVJTOkRPTSUuaD0lLmlkbC1uZWVkcy1yZWJ1aWxkKQogCi1h
bGwgOiAkKE9CSkNfRE9NX0hFQURFUlMpCithbGwgOiAkKE9CSkNfRE9NX0hFQURFUlMpICQoT0JK
Q19JRExfTkVFRFNfUkVCVUlMRFMpCiAKIGFsbCA6IENoYXJzZXREYXRhLmNwcAogCkBAIC0xMDA1
LDggKzEwMTMsOCBAQCBlbmRpZiAjIGluc3RhbGxoZHJzCiAjIE9iamVjdGl2ZS1DIGJpbmRpbmdz
CiAKIERPTV9CSU5ESU5HU19TQ1JJUFRTID0gJChHRU5FUkFURV9CSU5ESU5HX1NDUklQVFMpIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KLURPTSUuaCA6ICUuaWRsICQoRE9N
X0JJTkRJTkdTX1NDUklQVFMpICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgYmluZGlu
Z3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKLQkkKGNhbGwgZ2VuZXJhdG9yX3NjcmlwdCwg
JChET01fQklORElOR1NfU0NSSVBUUykpICQoSURMX0NPTU1PTl9BUkdTKSAtLWRlZmluZXMgIiQo
RkVBVFVSRV9ERUZJTkVTKSAkKEFERElUSU9OQUxfSURMX0RFRklORVMpIExBTkdVQUdFX09CSkVD
VElWRV9DIiAtLWdlbmVyYXRvciBPYmpDIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChT
VVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAkPAorRE9NJS5oIDogJS5pZGwtbmVlZHMtcmVi
dWlsZCAkKERPTV9CSU5ESU5HU19TQ1JJUFRTKSBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVy
ZmFjZXMuaCB8ICQoT0JKQ19JRExfTkVFRFNfUkVCVUlMRFMpCisJJChjYWxsIGdlbmVyYXRvcl9z
Y3JpcHQsICQoRE9NX0JJTkRJTkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZp
bmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFH
RV9PQkpFQ1RJVkVfQyIgLS1nZW5lcmF0b3IgT2JqQyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lG
aWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pZGxOZWVkc1JlYnVpbGRGaWxl
ICQ8CiAKIC1pbmNsdWRlICQoT0JKQ19ET01fSEVBREVSUzouaD0uZGVwKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAppbmRl
eCA1ZTM4OTU2MDlkNjI3Nzg4N2VmNjg1NjlhYzE0MzE2OGJmNjk2NmI4Li41M2MzZWY5OGE2N2E5
OTMzYjM5ZjA5ZmM5YTA4MzkyZjEzYjhhODZhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKQEAgLTUwLDYgKzUwLDcgQEAg
bXkgJHdyaXRlRGVwZW5kZW5jaWVzOwogbXkgJHZlcmJvc2U7CiBteSAkc3VwcGxlbWVudGFsRGVw
ZW5kZW5jeUZpbGU7CiBteSAkYWRkaXRpb25hbElkbEZpbGVzTGlzdDsKK215ICRpZGxOZWVkc1Jl
YnVpbGRGaWxlOwogCiBHZXRPcHRpb25zKCdpbmNsdWRlPXNAJyA9PiBcQGlkbERpcmVjdG9yaWVz
LAogICAgICAgICAgICAnb3V0cHV0RGlyPXMnID0+IFwkb3V0cHV0RGlyZWN0b3J5LApAQCAtNjIs
MTIgKzYzLDI1IEBAIEdldE9wdGlvbnMoJ2luY2x1ZGU9c0AnID0+IFxAaWRsRGlyZWN0b3JpZXMs
CiAgICAgICAgICAgICd2ZXJib3NlJyA9PiBcJHZlcmJvc2UsCiAgICAgICAgICAgICd3cml0ZS1k
ZXBlbmRlbmNpZXMnID0+IFwkd3JpdGVEZXBlbmRlbmNpZXMsCiAgICAgICAgICAgICdzdXBwbGVt
ZW50YWxEZXBlbmRlbmN5RmlsZT1zJyA9PiBcJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLAot
ICAgICAgICAgICAnYWRkaXRpb25hbElkbEZpbGVzTGlzdD1zJyA9PiBcJGFkZGl0aW9uYWxJZGxG
aWxlc0xpc3QpOworICAgICAgICAgICAnYWRkaXRpb25hbElkbEZpbGVzTGlzdD1zJyA9PiBcJGFk
ZGl0aW9uYWxJZGxGaWxlc0xpc3QsCisgICAgICAgICAgICdpZGxOZWVkc1JlYnVpbGRGaWxlPXMn
ID0+IFwkaWRsTmVlZHNSZWJ1aWxkRmlsZSk7CiAKIG15ICR0YXJnZXRJZGxGaWxlID0gJEFSR1Zb
MF07CiAKK2lmICgkaWRsTmVlZHNSZWJ1aWxkRmlsZSkgeworICAgIG9wZW4gRkgsICI8ICRpZGxO
ZWVkc1JlYnVpbGRGaWxlIiBvciBkaWUgIkNvdWxkbid0IG9wZW4gJGlkbE5lZWRzUmVidWlsZEZp
bGU6ICQhIjsKKyAgICB3aGlsZSAoPEZIPikgeworICAgICAgICBjaG9tcDsKKyAgICAgICAgaWYg
KC9eSURMRmlsZT0oLiopJC8pIHsKKyAgICAgICAgICAgICR0YXJnZXRJZGxGaWxlID0gJDE7Cisg
ICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIGNsb3NlIEZIOworfQorCiBk
aWUoJ011c3Qgc3BlY2lmeSBpbnB1dCBmaWxlLicpIHVubGVzcyBkZWZpbmVkKCR0YXJnZXRJZGxG
aWxlKTsKLWRpZSgnTXVzdCBzcGVjaWZ5IGdlbmVyYXRvcicpIHVubGVzcyBkZWZpbmVkKCRnZW5l
cmF0b3IpOworZGllKCdNdXN0IHNwZWNpZnkgZ2VuZXJhdG9yLicpIHVubGVzcyBkZWZpbmVkKCRn
ZW5lcmF0b3IpOwogZGllKCdNdXN0IHNwZWNpZnkgb3V0cHV0IGRpcmVjdG9yeS4nKSB1bmxlc3Mg
ZGVmaW5lZCgkb3V0cHV0RGlyZWN0b3J5KTsKIAogaWYgKCEkb3V0cHV0SGVhZGVyc0RpcmVjdG9y
eSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy91cGRhdGUt
aWRsLW5lZWRzLXJlYnVpbGQucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Vw
ZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2IzYzUyYzFkYjhlOWVlY2U2
NzIzNzliMjNlYjEzNzE1ODliNjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy91cGRhdGUtaWRsLW5lZWRzLXJlYnVpbGQucGwKQEAgLTAsMCArMSw3
MyBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjCisjIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyMgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyMgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisjCisKK3VzZSBzdHJpY3Q7CisKK3VzZSBGaWxlOjpCYXNlbmFtZTsKK3VzZSBHZXRvcHQ6
Okxvbmc7CisKK215ICRpZGxGaWxlOworbXkgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlOwor
CitHZXRPcHRpb25zKCdzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZT1zJyA9PiBcJHN1cHBsZW1l
bnRhbERlcGVuZGVuY3lGaWxlLAorICAgICAgICAgICAnaWRsRmlsZT1zJyA9PiBcJGlkbEZpbGUp
OworCitkaWUgIk11c3Qgc3BlY2lmeSBhbiBJREwgZmlsZS4iIHVubGVzcyAkaWRsRmlsZTsKK2Rp
ZSAiTXVzdCBzcGVjaWZ5IGEgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZS4iIHVubGVzcyAk
c3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGU7CisKKyMgVG91Y2hlcyB0aGUgLmlkbC1uZWVkcy1y
ZWJ1aWxkIG9mIHRoaXMgSURMLgordG91Y2goYmFzZW5hbWUoJGlkbEZpbGUpIC4gIi1uZWVkcy1y
ZWJ1aWxkIik7CisKKyMgVGhlIGZvcm1hdCBvZiBhIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGZp
bGU6CisjCisjIERPTVdpbmRvdy5pZGwgUC5pZGwgUS5pZGwgUi5pZGwKKyMgRG9jdW1lbnQuaWRs
IFMuaWRsCisjIEV2ZW50LmlkbAorIyAuLi4KKyMKKyMgVGhlIGFib3ZlIGluZGljYXRlcyB0aGF0
IERPTVdpbmRvdy5pZGwgaXMgc3VwcGxlbWVudGVkIGJ5IFAuaWRsLCBRLmlkbCBhbmQgUi5pZGws
CisjIERvY3VtZW50LmlkbCBpcyBzdXBwbGVtZW50ZWQgYnkgUy5pZGwsIGFuZCBFdmVudC5pZGwg
aXMgc3VwcGxlbWVudGVkIGJ5IG5vIElETHMuCisjIFRoZSBJREwgdGhhdCBzdXBwbGVtZW50cyBh
bm90aGVyIElETCAoZS5nLiBQLmlkbCkgbmV2ZXIgYXBwZWFycyBpbiB0aGUgZGVwZW5kZW5jeSBm
aWxlLgorb3BlbiBGSCwgIjwgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlIiBvciBkaWUgIkNv
dWxkbid0IG9wZW4gJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlOiAkISI7Cit3aGlsZSAoPEZI
PikgeworICAgIG15IEBjb2x1bW5zID0gc3BsaXQ7CisgICAgZm9yIChteSAkaW5kZXggPSAwOyAk
aW5kZXggPCBAY29sdW1uczsgJGluZGV4KyspIHsKKyAgICAgICAgaWYgKGJhc2VuYW1lKCRjb2x1
bW5zWyRpbmRleF0pIGVxIGJhc2VuYW1lKCRpZGxGaWxlKSkgeworICAgICAgICAgICAgIyBUb3Vj
aGVzIHRoZSAuaWRsLW5lZWRzLXJlYnVpbGQgb2YgdGhlIHN1cHBsZW1lbnRpbmcgSURMCisgICAg
ICAgICAgICAjIGlmIHRoZSAuaWRsLW5lZWRzLXJlYnVpbGQgb2YgdGhlIHN1cHBsZW1lbnRpbmcg
SURMIGlzIG9sZGVyIHRoYW4gdGhpcyBJREwuCisgICAgICAgICAgICBteSAkaWRsTmVlZHNSZWJ1
aWxkRmlsZSA9IGJhc2VuYW1lKCRjb2x1bW5zWzBdKSAuICItbmVlZHMtcmVidWlsZCI7CisgICAg
ICAgICAgICBpZiAoISAtZSAkaWRsTmVlZHNSZWJ1aWxkRmlsZSBvciAoc3RhdCAkaWRsTmVlZHNS
ZWJ1aWxkRmlsZSlbOV0gPD0gKHN0YXQgJGlkbEZpbGUpWzldKSB7CisgICAgICAgICAgICAgICAg
dG91Y2goJGlkbE5lZWRzUmVidWlsZEZpbGUpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorfQorY2xvc2UgRkg7CisKK3N1YiB0b3VjaAoreworICAgIG15ICRmaWxlID0gc2hpZnQ7
CisKKyAgICBvcGVuIEZILCAiPiAkZmlsZSIgb3IgZGllICJDb3VsZG4ndCBvcGVuICRmaWxlOiAk
ISI7CisgICAgbXkgJGJhc2VuYW1lID0gYmFzZW5hbWUoJGZpbGUpOworICAgIHByaW50IEZIICJU
aGlzIGZpbGUgaXMgdXNlZCBieSBidWlsZCBzY3JpcHRzIG9ubHkuIFRoZSB0aW1lc3RhbXAgb2Yg
dGhpcyBmaWxlIGRldGVybWluZXMgd2hldGhlciAke2Jhc2VuYW1lfS5pZGwgc2hvdWxkIGJlIHJl
YnVpbHQgb3Igbm90LlxuIjsKKyAgICBwcmludCBGSCAiSURMRmlsZT0kaWRsRmlsZVxuIjsKKyAg
ICBjbG9zZSBGSDsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124938</attachid>
            <date>2012-02-01 06:01:15 -0800</date>
            <delta_ts>2012-02-06 03:07:35 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-77510-20120201230114.patch</filename>
            <type>text/plain</type>
            <size>12027</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ0MjYxN2UzZGNkYWJj
YWRkNGUwM2NjZjI0ZDVmYTU2ZmNjYThjOS4uNTlkMmY3NjEyYzU0YjAzYTFlMGJjNWU2OGZkM2Fj
MDMxMDJlZjNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAyLTAxICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbiBBcHBsZVdlYktp
dCwgc3RvcCByZWJ1aWxkaW5nIElETHMgdGhhdCBuZWVkIG5vdCB0byBiZSByZWJ1aWx0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzUxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgaWYg
YW55IElETCBpcyB1cGRhdGVkLCBhbGwgSURMcyBhcmUgcmVidWlsdC4KKyAgICAgICAgVGhpcyBw
YXRjaCBzdG9wcyByZWJ1aWxkaW5nIElETHMgd2hpY2ggYXJlIG5vdCBtb2RpZmllZCBhbmQKKyAg
ICAgICAgd2hvc2Ugc3VwcGxlbWVudGFsIGRlcGVuZGVuY2llcyBhcmUgbm90IGNoYW5nZWQuCisK
KyAgICAgICAgVGhlIG5ldyBidWlsZCBmbG93IGlzIGFzIGZvbGxvd3M6CisKKyAgICAgICAgICAg
IHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5LnRtcCA6ICQoQUxMX0lETFMpCisgICAgICAgICAgICAg
ICAgcGVybCByZXNvbHZlLXN1cHBsZW1lbnRhbC5wbCAkKEFMTF9JRExTKQorCisgICAgICAgICAg
ICAlLmlkbC1uZWVkcy1yZWJ1aWxkIDogJS5pZGwgfCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeS50
bXAKKyAgICAgICAgICAgICAgICBwZXJsIHVwZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbCAkPCAk
QCAjIHVwZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbCB0b3VjaGVzICUuaWRsIGFuZCB0aGUgc3Vw
cGxlbWVudGluZyBJREwncyAuaWRsLW5lZWRzLXJlYnVpbGQgaWYgdGhlIC5pZGwtbmVlZHMtcmVi
dWlsZCBpcyBvbGRlciB0aGFuICUuaWRsCisKKyAgICAgICAgICAgIEpTJS5jcHAgOiAlLmlkbC1u
ZWVkcy1yZWJ1aWxkIHwgKi5pZGwtbmVlZHMtcmVidWlsZAorICAgICAgICAgICAgICAgIHBlcmwg
Z2VuZXJhdGUtYmluZGluZ3MucGwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kudG1wICQ8ICAgICMg
R2VuZXJhdGVzIEpTJS5jcHAKKworICAgICAgICBObyB0ZXN0cy4gSSBtYW51YWxseSBjb25maXJt
ZWQgdGhlIGZvbGxvd2luZ3M6CisgICAgICAgIC0gVG91Y2ggRWxlbWVudC5pZGwsIHRoZW4gb25s
eSBFbGVtZW50LmlkbCBpcyByZWJ1aWx0CisgICAgICAgIC0gVG91Y2ggRE9NV2luZG93LmlkbCwg
dGhlbiBvbmx5IERPTVdpbmRvdy5pZGwgaXMgcmVidWlsdAorICAgICAgICAtIFRvdWNoIERPTVdp
bmRvd1dlYkF1ZGlvLmlkbCwgdGhlbiBvbmx5IERPTVdpbmRvdy5pZGwgYW5kIERPTVdpbmRvd1dl
YkF1ZGlvLmlkbCBhcmUgcmVidWlsdAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTog
TW9kaWZpZWQgdGhlIGJ1aWxkIGZsb3cgYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGw6IE1vZGlmaWVkIHRvIHJlYWQgYW4g
SURMIGZpbGUgcGF0aCBmcm9tIC5pZGwtbmVlZHMtcmVidWlsZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3VwZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbDogQWRkZWQuCisgICAgICAgIFRv
dWNoZXMgJS5pZGwgYW5kIHRoZSBzdXBwbGVtZW50aW5nIElETCdzIC5pZGwtbmVlZHMtcmVidWls
ZCBpZiB0aGUgLmlkbC1uZWVkcy1yZWJ1aWxkCisgICAgICAgIGlzIG9sZGVyIHRoYW4gJS5pZGwu
CisgICAgICAgICh0b3VjaCk6CisKIDIwMTItMDEtMjkgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jk
b25AZ21haWwuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXNlIGRlY29kaW5nIHN3aXp6bGUg
b25seSBvbiBsaWJqcGVnLXR1cmJvIDEuMS45MCsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDY0YmU4M2Q2YzZhMTY4NDk1MGQxMGIzNzI3NGRkMDNjZTE5N2JlNmMuLjc5MGEwNzI4
MDZmMWY5ZmZhMTUyYTAzMTI5YzU2OTU0ZDQ0YTQ2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNTg0LDE1ICs1ODQsMjAgQEAgQklORElOR19JRExTID0gXAogRE9NX0NMQVNT
RVM9JChiYXNlbmFtZSAkKG5vdGRpciAkKEJJTkRJTkdfSURMUykpKQogCiBKU19ET01fSEVBREVS
Uz0kKGZpbHRlci1vdXQgSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggSlNFdmVudExpc3RlbmVy
LmggSlNFdmVudFRhcmdldC5oLCAkKERPTV9DTEFTU0VTOiU9SlMlLmgpKQorSlNfSURMX05FRURT
X1JFQlVJTERTPSQoSlNfRE9NX0hFQURFUlM6SlMlLmg9JS5pZGwtbmVlZHMtcmVidWlsZCkgSmF2
YVNjcmlwdENhbGxGcmFtZS5pZGwtbmVlZHMtcmVidWlsZAogCiBXRUJfRE9NX0hFQURFUlMgOj0K
IGlmZXEgKCQoZmluZHN0cmluZyBCVUlMRElOR19XWCwkKEZFQVRVUkVfREVGSU5FUykpLCBCVUlM
RElOR19XWCkKIFdFQl9ET01fSEVBREVSUyA6PSAkKGZpbHRlci1vdXQgV2ViRE9NWFNMVFByb2Nl
c3Nvci5oIFdlYkRPTUV2ZW50VGFyZ2V0LmgsICQoRE9NX0NMQVNTRVM6JT1XZWJET00lLmgpKQor
Q1BQX0lETF9ORUVEU19SRUJVSUxEUz0kKFdFQl9ET01fSEVBREVSUzpXZWJET00lLmg9JS5pZGwt
bmVlZHMtcmVidWlsZCkKIGVuZGlmICMgQlVJTERJTkdfV1gKIAogYWxsIDogXAogICAgICQoSlNf
RE9NX0hFQURFUlMpIFwKKyAgICAkKEpTX0lETF9ORUVEU19SRUJVSUxEUykgXAorICAgIFwKICAg
ICAkKFdFQl9ET01fSEVBREVSUykgXAorICAgICQoQ1BQX0lETF9ORUVEU19SRUJVSUxEUykgXAog
ICAgIFwKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUuaCBcCiAgICAgXApAQCAtOTIyLDIxICs5
MjcsMjIgQEAgSlNfQklORElOR1NfU0NSSVBUUyA9ICQoR0VORVJBVEVfU0NSSVBUUykgYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KIAogU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lf
RklMRSA9IC4vc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kudG1wCiBJRExfRklMRVNfVE1QID0gLi9p
ZGxfZmlsZXMudG1wCi1BRERJVElPTkFMX0lETFMgPSAkKFdlYkNvcmUpL2luc3BlY3Rvci9KYXZh
U2NyaXB0Q2FsbEZyYW1lLmlkbAogCiAjIFRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIGdldCBhIHNw
YWNlIGNoYXJhY3RlciBzdG9yZWQgaW4gYSB2YXJpYWJsZS4KICMgU2VlIDxodHRwOi8vYmxvZy5q
Z2Mub3JnLzIwMDcvMDYvZXNjYXBpbmctY29tbWEtYW5kLXNwYWNlLWluLWdudS1tYWtlLmh0bWw+
Lgogc3BhY2UgOj0KIHNwYWNlICs9CiAKLSQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkg
OiAkKFJFU09MVkVfU1VQUExFTUVOVEFMX1NDUklQVFMpICQoQklORElOR19JRExTKSAkKEFERElU
SU9OQUxfSURMUykKLQlwcmludGYgIiQoc3Vic3QgJChzcGFjZSksLCQocGF0c3Vic3QgJSwlXG4s
JChCSU5ESU5HX0lETFMpICQoQURESVRJT05BTF9JRExTKSkpIiA+ICQoSURMX0ZJTEVTX1RNUCkK
KyQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgOiAkKFJFU09MVkVfU1VQUExFTUVOVEFM
X1NDUklQVFMpICQoQklORElOR19JRExTKSAkKFdlYkNvcmUpL2luc3BlY3Rvci9KYXZhU2NyaXB0
Q2FsbEZyYW1lLmlkbAorCXByaW50ZiAiJChzdWJzdCAkKHNwYWNlKSwsJChwYXRzdWJzdCAlLCVc
biwkKEJJTkRJTkdfSURMUykgJChXZWJDb3JlKS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFt
ZS5pZGwpKSIgPiAkKElETF9GSUxFU19UTVApCiAJJChjYWxsIHJlc29sdmVfc3VwcGxlbWVudGFs
X3NjcmlwdCwgJChSRVNPTFZFX1NVUFBMRU1FTlRBTF9TQ1JJUFRTKSkgLS1kZWZpbmVzICIkKEZF
QVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NS
SVBUIiAtLWlkbEZpbGVzTGlzdCAkKElETF9GSUxFU19UTVApIC0tc3VwcGxlbWVudGFsRGVwZW5k
ZW5jeUZpbGUgJEAKIAlybSAtZiAkKElETF9GSUxFU19UTVApCiAKLUpTJS5oIDogJS5pZGwgJChK
U19CSU5ESU5HU19TQ1JJUFRTKSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpCi0JJChj
YWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoSlNfQklORElOR1NfU0NSSVBUUykpICQoSURMX0NPTU1P
Tl9BUkdTKSAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSAkKEFERElUSU9OQUxfSURMX0RF
RklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpTIC0tc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAkPAorJS5pZGwt
bmVlZHMtcmVidWlsZCA6ICUuaWRsICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy91cGRhdGUt
aWRsLW5lZWRzLXJlYnVpbGQucGwgfCAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpCisJ
cGVybCAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvdXBkYXRlLWlkbC1uZWVkcy1yZWJ1aWxk
LnBsIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5D
WV9GSUxFKSAtLWlkbEZpbGUgJDwKIAorSlMlLmggOiAlLmlkbC1uZWVkcy1yZWJ1aWxkICQoSlNf
QklORElOR1NfU0NSSVBUUykgfCAkKEpTX0lETF9ORUVEU19SRUJVSUxEUykKKwkkKGNhbGwgZ2Vu
ZXJhdG9yX3NjcmlwdCwgJChKU19CSU5ESU5HU19TQ1JJUFRTKSkgJChJRExfQ09NTU9OX0FSR1Mp
IC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykg
TEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSlMgLS1zdXBwbGVtZW50YWxEZXBlbmRl
bmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taWRsTmVlZHNSZWJ1aWxk
RmlsZSAkPAogCiAjIEluc3BlY3RvciBpbnRlcmZhY2VzIGdlbmVyYXRvcgogCkBAIC05NjIsOCAr
OTY4LDggQEAgSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCA6IEluamVjdGVkU2NyaXB0U291cmNlLmpz
CiBpZmVxICgkKGZpbmRzdHJpbmcgQlVJTERJTkdfV1gsJChGRUFUVVJFX0RFRklORVMpKSwgQlVJ
TERJTkdfV1gpCiBDUFBfQklORElOR1NfU0NSSVBUUyA9ICQoR0VORVJBVEVfU0NSSVBUUykgYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCiAKLVdlYkRPTSUuaCA6ICUuaWRsICQo
Q1BQX0JJTkRJTkdTX1NDUklQVFMpICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkKLQkk
KGNhbGwgZ2VuZXJhdG9yX3NjcmlwdCwgJChDUFBfQklORElOR1NfU0NSSVBUUykpICQoSURMX0NP
TU1PTl9BUkdTKSAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSAkKEFERElUSU9OQUxfSURM
X0RFRklORVMpIExBTkdVQUdFX0NQUCIgLS1nZW5lcmF0b3IgQ1BQIC0tc3VwcGxlbWVudGFsRGVw
ZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAkPAorV2ViRE9NJS5o
IDogJS5pZGwtbmVlZHMtcmVidWlsZCAkKENQUF9CSU5ESU5HU19TQ1JJUFRTKSB8ICQoQ1BQX0lE
TF9ORUVEU19SRUJVSUxEUykKKwkkKGNhbGwgZ2VuZXJhdG9yX3NjcmlwdCwgJChDUFBfQklORElO
R1NfU0NSSVBUUykpICQoSURMX0NPTU1PTl9BUkdTKSAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJ
TkVTKSAkKEFERElUSU9OQUxfSURMX0RFRklORVMpIExBTkdVQUdFX0NQUCIgLS1nZW5lcmF0b3Ig
Q1BQIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5D
WV9GSUxFKSAgLS1pZGxOZWVkc1JlYnVpbGRGaWxlICQ8CiBlbmRpZiAjIEJVSUxESU5HX1dYCiAK
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05NzMsOCArOTc5LDkgQEAgZW5kaWYgIyBC
VUlMRElOR19XWAogaWZlcSAoJChPUyksTUFDT1MpCiAKIE9CSkNfRE9NX0hFQURFUlM9JChmaWx0
ZXItb3V0IERPTURPTVdpbmRvdy5oIERPTURPTU1pbWVUeXBlLmggRE9NRE9NUGx1Z2luLmgsJChE
T01fQ0xBU1NFUzolPURPTSUuaCkpCitPQkpDX0lETF9ORUVEU19SRUJVSUxEUz0kKE9CSkNfRE9N
X0hFQURFUlM6RE9NJS5oPSUuaWRsLW5lZWRzLXJlYnVpbGQpCiAKLWFsbCA6ICQoT0JKQ19ET01f
SEVBREVSUykKK2FsbCA6ICQoT0JKQ19ET01fSEVBREVSUykgJChPQkpDX0lETF9ORUVEU19SRUJV
SUxEUykKIAogYWxsIDogQ2hhcnNldERhdGEuY3BwCiAKQEAgLTEwMDUsOCArMTAxMiw4IEBAIGVu
ZGlmICMgaW5zdGFsbGhkcnMKICMgT2JqZWN0aXZlLUMgYmluZGluZ3MKIAogRE9NX0JJTkRJTkdT
X1NDUklQVFMgPSAkKEdFTkVSQVRFX0JJTkRJTkdfU0NSSVBUUykgYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yT2JqQy5wbQotRE9NJS5oIDogJS5pZGwgJChET01fQklORElOR1NfU0NSSVBU
UykgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSBiaW5kaW5ncy9vYmpjL1B1YmxpY0RP
TUludGVyZmFjZXMuaAotCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKERPTV9CSU5ESU5HU19T
Q1JJUFRTKSkgJChJRExfQ09NTU9OX0FSR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMp
ICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNUSVZFX0MiIC0tZ2VuZXJh
dG9yIE9iakMgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBF
TkRFTkNZX0ZJTEUpICQ8CitET00lLmggOiAlLmlkbC1uZWVkcy1yZWJ1aWxkICQoRE9NX0JJTkRJ
TkdTX1NDUklQVFMpIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oIHwgJChPQkpD
X0lETF9ORUVEU19SRUJVSUxEUykKKwkkKGNhbGwgZ2VuZXJhdG9yX3NjcmlwdCwgJChET01fQklO
RElOR1NfU0NSSVBUUykpICQoSURMX0NPTU1PTl9BUkdTKSAtLWRlZmluZXMgIiQoRkVBVFVSRV9E
RUZJTkVTKSAkKEFERElUSU9OQUxfSURMX0RFRklORVMpIExBTkdVQUdFX09CSkVDVElWRV9DIiAt
LWdlbmVyYXRvciBPYmpDIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5U
QUxfREVQRU5ERU5DWV9GSUxFKSAtLWlkbE5lZWRzUmVidWlsZEZpbGUgJDwKIAogLWluY2x1ZGUg
JChPQkpDX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCmluZGV4IDVlMzg5NTYwOWQ2Mjc3
ODg3ZWY2ODU2OWFjMTQzMTY4YmY2OTY2YjguLjUzYzNlZjk4YTY3YTk5MzNiMzlmMDlmYzlhMDgz
OTJmMTNiOGE4NmEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Z2VuZXJhdGUtYmluZGluZ3MucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbApAQCAtNTAsNiArNTAsNyBAQCBteSAkd3JpdGVEZXBlbmRl
bmNpZXM7CiBteSAkdmVyYm9zZTsKIG15ICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKIG15
ICRhZGRpdGlvbmFsSWRsRmlsZXNMaXN0OworbXkgJGlkbE5lZWRzUmVidWlsZEZpbGU7CiAKIEdl
dE9wdGlvbnMoJ2luY2x1ZGU9c0AnID0+IFxAaWRsRGlyZWN0b3JpZXMsCiAgICAgICAgICAgICdv
dXRwdXREaXI9cycgPT4gXCRvdXRwdXREaXJlY3RvcnksCkBAIC02MiwxMiArNjMsMjUgQEAgR2V0
T3B0aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJlY3RvcmllcywKICAgICAgICAgICAgJ3Zl
cmJvc2UnID0+IFwkdmVyYm9zZSwKICAgICAgICAgICAgJ3dyaXRlLWRlcGVuZGVuY2llcycgPT4g
XCR3cml0ZURlcGVuZGVuY2llcywKICAgICAgICAgICAgJ3N1cHBsZW1lbnRhbERlcGVuZGVuY3lG
aWxlPXMnID0+IFwkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCi0gICAgICAgICAgICdhZGRp
dGlvbmFsSWRsRmlsZXNMaXN0PXMnID0+IFwkYWRkaXRpb25hbElkbEZpbGVzTGlzdCk7CisgICAg
ICAgICAgICdhZGRpdGlvbmFsSWRsRmlsZXNMaXN0PXMnID0+IFwkYWRkaXRpb25hbElkbEZpbGVz
TGlzdCwKKyAgICAgICAgICAgJ2lkbE5lZWRzUmVidWlsZEZpbGU9cycgPT4gXCRpZGxOZWVkc1Jl
YnVpbGRGaWxlKTsKIAogbXkgJHRhcmdldElkbEZpbGUgPSAkQVJHVlswXTsKIAoraWYgKCRpZGxO
ZWVkc1JlYnVpbGRGaWxlKSB7CisgICAgb3BlbiBGSCwgIjwgJGlkbE5lZWRzUmVidWlsZEZpbGUi
IG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiAkaWRsTmVlZHNSZWJ1aWxkRmlsZTogJCEiOworICAgIHdo
aWxlICg8Rkg+KSB7CisgICAgICAgIGNob21wOworICAgICAgICBpZiAoL15JRExGaWxlPSguKikk
LykgeworICAgICAgICAgICAgJHRhcmdldElkbEZpbGUgPSAkMTsKKyAgICAgICAgICAgIGxhc3Q7
CisgICAgICAgIH0KKyAgICB9CisgICAgY2xvc2UgRkg7Cit9CisKIGRpZSgnTXVzdCBzcGVjaWZ5
IGlucHV0IGZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHRhcmdldElkbEZpbGUpOwotZGllKCdNdXN0
IHNwZWNpZnkgZ2VuZXJhdG9yJykgdW5sZXNzIGRlZmluZWQoJGdlbmVyYXRvcik7CitkaWUoJ011
c3Qgc3BlY2lmeSBnZW5lcmF0b3IuJykgdW5sZXNzIGRlZmluZWQoJGdlbmVyYXRvcik7CiBkaWUo
J011c3Qgc3BlY2lmeSBvdXRwdXQgZGlyZWN0b3J5LicpIHVubGVzcyBkZWZpbmVkKCRvdXRwdXRE
aXJlY3RvcnkpOwogCiBpZiAoISRvdXRwdXRIZWFkZXJzRGlyZWN0b3J5KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3VwZGF0ZS1pZGwtbmVlZHMtcmVidWls
ZC5wbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdXBkYXRlLWlkbC1uZWVkcy1y
ZWJ1aWxkLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNmEyZjk2NDIyYWYyZGMwY2RkODJhMDRkMTAwMDM4YmFh
MjBlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3VwZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbApAQCAtMCwwICsxLDczIEBACisjIS91c3IvYmlu
L3BlcmwgLXcKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorIyBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyMKKwordXNlIHN0
cmljdDsKKwordXNlIEZpbGU6OkJhc2VuYW1lOwordXNlIEdldG9wdDo6TG9uZzsKKworbXkgJGlk
bEZpbGU7CitteSAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGU7CisKK0dldE9wdGlvbnMoJ3N1
cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlPXMnID0+IFwkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZp
bGUsCisgICAgICAgICAgICdpZGxGaWxlPXMnID0+IFwkaWRsRmlsZSk7CisKK2RpZSAiTXVzdCBz
cGVjaWZ5IGFuIElETCBmaWxlLiIgdW5sZXNzICRpZGxGaWxlOworZGllICJNdXN0IHNwZWNpZnkg
YSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxlLiIgdW5sZXNzICRzdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZTsKKworIyBUb3VjaGVzIHRoZSAuaWRsLW5lZWRzLXJlYnVpbGQgb2YgdGhpcyBJ
REwuCit0b3VjaChiYXNlbmFtZSgkaWRsRmlsZSkgLiAiLW5lZWRzLXJlYnVpbGQiKTsKKworIyBU
aGUgZm9ybWF0IG9mIGEgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZToKKyMKKyMgRE9NV2lu
ZG93LmlkbCBQLmlkbCBRLmlkbCBSLmlkbAorIyBEb2N1bWVudC5pZGwgUy5pZGwKKyMgRXZlbnQu
aWRsCisjIC4uLgorIworIyBUaGUgYWJvdmUgaW5kaWNhdGVzIHRoYXQgRE9NV2luZG93LmlkbCBp
cyBzdXBwbGVtZW50ZWQgYnkgUC5pZGwsIFEuaWRsIGFuZCBSLmlkbCwKKyMgRG9jdW1lbnQuaWRs
IGlzIHN1cHBsZW1lbnRlZCBieSBTLmlkbCwgYW5kIEV2ZW50LmlkbCBpcyBzdXBwbGVtZW50ZWQg
Ynkgbm8gSURMcy4KKyMgVGhlIElETCB0aGF0IHN1cHBsZW1lbnRzIGFub3RoZXIgSURMIChlLmcu
IFAuaWRsKSBuZXZlciBhcHBlYXJzIGluIHRoZSBkZXBlbmRlbmN5IGZpbGUuCitvcGVuIEZILCAi
PCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUiIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiAkc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGU6ICQhIjsKK3doaWxlICg8Rkg+KSB7CisgICAgbXkgQGNv
bHVtbnMgPSBzcGxpdDsKKyAgICBmb3IgKG15ICRpbmRleCA9IDE7ICRpbmRleCA8IEBjb2x1bW5z
OyAkaW5kZXgrKykgeworICAgICAgICBpZiAoYmFzZW5hbWUoJGNvbHVtbnNbJGluZGV4XSkgZXEg
YmFzZW5hbWUoJGlkbEZpbGUpKSB7CisgICAgICAgICAgICAjIFRvdWNoZXMgdGhlIC5pZGwtbmVl
ZHMtcmVidWlsZCBvZiB0aGUgc3VwcGxlbWVudGluZyBJREwKKyAgICAgICAgICAgICMgaWYgdGhl
IC5pZGwtbmVlZHMtcmVidWlsZCBvZiB0aGUgc3VwcGxlbWVudGluZyBJREwgaXMgb2xkZXIgdGhh
biB0aGlzIElETC4KKyAgICAgICAgICAgIG15ICRpZGxOZWVkc1JlYnVpbGRGaWxlID0gYmFzZW5h
bWUoJGNvbHVtbnNbMF0pIC4gIi1uZWVkcy1yZWJ1aWxkIjsKKyAgICAgICAgICAgIGlmICghIC1l
ICRpZGxOZWVkc1JlYnVpbGRGaWxlIG9yIChzdGF0ICRpZGxOZWVkc1JlYnVpbGRGaWxlKVs5XSA8
IChzdGF0ICRpZGxGaWxlKVs5XSkgeworICAgICAgICAgICAgICAgIHRvdWNoKCRpZGxOZWVkc1Jl
YnVpbGRGaWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KK2Nsb3NlIEZI
OworCitzdWIgdG91Y2gKK3sKKyAgICBteSAkZmlsZSA9IHNoaWZ0OworCisgICAgb3BlbiBGSCwg
Ij4gJGZpbGUiIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiAkZmlsZTogJCEiOworICAgIG15ICRiYXNl
bmFtZSA9IGJhc2VuYW1lKCRmaWxlKTsKKyAgICBwcmludCBGSCAiVGhpcyBmaWxlIGlzIHVzZWQg
YnkgYnVpbGQgc2NyaXB0cyBvbmx5LiBUaGUgdGltZXN0YW1wIG9mIHRoaXMgZmlsZSBkZXRlcm1p
bmVzIHdoZXRoZXIgJHtiYXNlbmFtZX0uaWRsIHNob3VsZCBiZSByZWJ1aWx0IG9yIG5vdC5cblxu
IjsKKyAgICBwcmludCBGSCAiSURMRmlsZT0kaWRsRmlsZVxuIjsKKyAgICBjbG9zZSBGSDsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125607</attachid>
            <date>2012-02-06 03:07:41 -0800</date>
            <delta_ts>2012-02-06 15:11:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77510-20120206200739.patch</filename>
            <type>text/plain</type>
            <size>22783</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQ2OWZkNTg5ZWY4N2M5
ZjVlNzc1ZDBhOWMwNWM2YzkzZjljNWI2Yi4uMjQxZWYzN2IzMWU0OTJmMmY3MjMzZWUzN2E1NjU0
MzZkMzRiYTE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTAyLTA2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbiBBcHBsZVdlYktp
dCwgc3RvcCByZWJ1aWxkaW5nIElETHMgdGhhdCBuZWVkIG5vdCB0byBiZSByZWJ1aWx0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzUxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgaWYg
YW55IElETCBmaWxlIGlzIHVwZGF0ZWQsIGFsbCBJREwgZmlsZXMgYXJlIHJlYnVpbHQuCisgICAg
ICAgIFRoaXMgcGF0Y2ggc3RvcHMgcmVidWlsZGluZyBJREwgZmlsZXMgd2hpY2ggYXJlIG5vdCBt
b2RpZmllZCBub3IKKyAgICAgICAgd2hvc2Ugc3VwcGxlbWVudGFsIGRlcGVuZGVuY2llcyBhcmUg
bm90IGNoYW5nZWQuCisKKyAgICAgICAgVGhlIG5ldyBidWlsZCBmbG93IGlzIGFzIGZvbGxvd3M6
CisKKyAgICAgICAgICAgIHN1cHBsZW1lbnRhbC5kZXAgOiAkKEFMTF9JRExTKQorICAgICAgICAg
ICAgICAgIHBlcmwgcmVzb2x2ZS1zdXBwbGVtZW50YWwucGwgLi4uCisKKyAgICAgICAgICAgICUu
aWRsLW5lZWRzLXJlYnVpbGQgOiAlLmlkbCBzdXBwbGVtZW50YWwuZGVwCisgICAgICAgICAgICAg
ICAgcGVybCB1cGRhdGUtaWRsLW5lZWRzLXJlYnVpbGQucGwgLi4uCisKKyAgICAgICAgICAgIEpT
JS5jcHAgOiAlLmlkbC1uZWVkcy1yZWJ1aWxkCisgICAgICAgICAgICAgICAgcGVybCBnZW5lcmF0
ZS1iaW5kaW5ncy5wbCAuLi4KKworICAgICAgICByZXNvbHZlLXN1cHBsZW1lbnRhbC5wbCBnZW5l
cmF0ZXMgdGhlIGZvbGxvd2luZyBzdXBwbGVtZW50YWwuZGVwLgorICAgICAgICBUaGUgbnVtYmVy
IGluICgpIGlzIHRoZSBsYXN0IGFjY2VzcyB0aW1lc3RhbXAgb2YgdGhlIGZpbGUuCisKKyAgICAg
ICAgICAgIEEuaWRsKDEyMDApCisgICAgICAgICAgICBCLmlkbCgxMDAwKSBCLXN1cHBsZW1lbnRh
bDEuaWRsKDgwMCkgQi1zdXBwbGVtZW50YWwyLmlkbCgxMjAwKQorICAgICAgICAgICAgQy5pZGwo
MTAwMCkKKworICAgICAgICB1cGRhdGUtaWRsLW5lZWRzLXJlYnVpbGQucGwgZm9yIFguaWRsIHRv
dWNoZXMgWC5pZGwtbmVlZHMtcmVidWlsZCwKKyAgICAgICAgaWYgWC5pZGwtbmVlZHMtcmVidWls
ZCBpcyBvbGRlciB0aGFuIFguaWRsIG9yIHRoZSBJREwgZmlsZXMgd2hpY2ggYXJlCisgICAgICAg
IHN1cHBsZW1lbnRpbmcgWC5pZGwuIEZvciBleGFtcGxlLCBpZiB0aGUgdGltZXN0YW1wcyBvZiBB
LmlkbC1uZWVkcy1yZWJ1aWxkLAorICAgICAgICBCLmlkbC1uZWVkcy1yZWJ1aWxkIGFuZCBDLmlk
bC1uZWVkcy1yZWJ1aWxkIGFyZSBhbGwgMTAwMCwgdGhlbiBBLmlkbC1uZWVkcy1yZWJ1aWxkCisg
ICAgICAgIGFuZCBCLmlkbC1uZWVkcy1yZWJ1aWxkIHdpbGwgYmUgdG91Y2hlZC4KKworICAgICAg
ICBFdmVuIGlmIG5vIElETCBmaWxlcyBhcmUgbW9kaWZpZWQsIHVwZGF0ZS1pZGwtbmVlZHMtcmVi
dWlsZC5wbCBjYW4gcnVuIGZvciBhbGwgSURMIGZpbGVzLAorICAgICAgICBidXQgZ2VuZXJhdGUt
YmluZGluZ3MucGwgd29uJ3QgcnVuLiBJZiBhbnkgSURMIGZpbGUgaXMgdXBkYXRlZCwgcmVzb2x2
ZS1zdXBwbGVtZW50YWwucGwKKyAgICAgICAgd2lsbCBydW4gb25jZSwgdXBkYXRlLWlkbC1uZWVk
cy1yZWJ1aWxkLnBsIHdpbGwgcnVuIGZvciBhbGwgSURMIGZpbGVzLCBhbmQKKyAgICAgICAgZ2Vu
ZXJhdGUtYmluZGluZ3MucGwgd2lsbCBydW4gZm9yIHRoZSBJREwgZmlsZXMgd2hpY2ggYXJlIG1v
ZGlmaWVkIG9yIHdob3NlCisgICAgICAgIGRlcGVuZGVuY2llcyBhcmUgY2hhbmdlZC4KKworICAg
ICAgICBObyB0ZXN0cy4gSSBtYW51YWxseSBjb25maXJtZWQgdGhlIGZvbGxvd2luZ3M6CisgICAg
ICAgIC0gVG91Y2ggRWxlbWVudC5pZGwsIHRoZW4gb25seSBFbGVtZW50LmlkbCBpcyByZWJ1aWx0
CisgICAgICAgIC0gVG91Y2ggRE9NV2luZG93LmlkbCwgdGhlbiBvbmx5IERPTVdpbmRvdy5pZGwg
aXMgcmVidWlsdAorICAgICAgICAtIFRvdWNoIERPTVdpbmRvd1dlYkF1ZGlvLmlkbCwgdGhlbiBv
bmx5IERPTVdpbmRvdy5pZGwgYW5kIERPTVdpbmRvd1dlYkF1ZGlvLmlkbCBhcmUgcmVidWlsdAor
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogTW9kaWZpZWQgdGhlIGJ1aWxkIGZsb3cg
YXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUt
YmluZGluZ3MucGw6IE1vZGlmaWVkIHRvIHJlYWQgYW4gSURMIGZpbGUgcGF0aCBmcm9tIC5pZGwt
bmVlZHMtcmVidWlsZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3VwZGF0ZS1pZGwtbmVl
ZHMtcmVidWlsZC5wbDogQWRkZWQuIFRvdWNoZXMgWC5pZGwtbmVlZHMtcmVidWlsZCBpZgorICAg
ICAgICB0aGUgWC5pZGwtbmVlZHMtcmVidWlsZCBpcyBvbGRlciB0aGFuIFguaWRsIG9yIHRoZSBJ
REwgZmlsZXMgd2hpY2ggYXJlIHN1cHBsZW1lbnRpbmcgWC5pZGwuCisgICAgICAgICh0b3VjaCk6
CisKIDIwMTItMDItMDUgIEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZmlsZSBNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZmE1OTViZjg2YjBhY2ViYjBlOTMzYjA0NTM1
NWY4MmEyZThkZjJiNi4uNDU4OWI5OGYxZjUzZmRmYTM2Yzg3ODU1YWNiYmY3MzYzZGNiZGYyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC01ODMsMTUgKzU4MywyMCBAQCBCSU5E
SU5HX0lETFMgPSBcCiBET01fQ0xBU1NFUz0kKGJhc2VuYW1lICQobm90ZGlyICQoQklORElOR19J
RExTKSkpCiAKIEpTX0RPTV9IRUFERVJTPSQoZmlsdGVyLW91dCBKU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCBKU0V2ZW50TGlzdGVuZXIuaCBKU0V2ZW50VGFyZ2V0LmgsICQoRE9NX0NMQVNTRVM6
JT1KUyUuaCkpCitKU19JRExfTkVFRFNfUkVCVUlMRFM9JChKU19ET01fSEVBREVSUzpKUyUuaD0l
LmlkbC1uZWVkcy1yZWJ1aWxkKSBKYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbC1uZWVkcy1yZWJ1aWxk
CiAKIFdFQl9ET01fSEVBREVSUyA6PQogaWZlcSAoJChmaW5kc3RyaW5nIEJVSUxESU5HX1dYLCQo
RkVBVFVSRV9ERUZJTkVTKSksIEJVSUxESU5HX1dYKQogV0VCX0RPTV9IRUFERVJTIDo9ICQoZmls
dGVyLW91dCBXZWJET01YU0xUUHJvY2Vzc29yLmggV2ViRE9NRXZlbnRUYXJnZXQuaCwgJChET01f
Q0xBU1NFUzolPVdlYkRPTSUuaCkpCitDUFBfSURMX05FRURTX1JFQlVJTERTPSQoV0VCX0RPTV9I
RUFERVJTOldlYkRPTSUuaD0lLmlkbC1uZWVkcy1yZWJ1aWxkKQogZW5kaWYgIyBCVUlMRElOR19X
WAogCiBhbGwgOiBcCiAgICAgJChKU19ET01fSEVBREVSUykgXAorICAgICQoSlNfSURMX05FRURT
X1JFQlVJTERTKSBcCisgICAgXAogICAgICQoV0VCX0RPTV9IRUFERVJTKSBcCisgICAgJChDUFBf
SURMX05FRURTX1JFQlVJTERTKSBcCiAgICAgXAogICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5o
IFwKICAgICBcCkBAIC05MTEsMjMgKzkxNiwyNCBAQCBJRExfQ09NTU9OX0FSR1MgPSAkKElETF9J
TkNMVURFUzolPS0taW5jbHVkZSAlKSAtLXdyaXRlLWRlcGVuZGVuY2llcyAtLW91dHB1dERpcgog
CiBKU19CSU5ESU5HU19TQ1JJUFRTID0gJChHRU5FUkFURV9TQ1JJUFRTKSBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQogCi1TVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFID0g
Li9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeS50bXAKK1NVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJ
TEUgPSAuL3N1cHBsZW1lbnRhbC5kZXAKIElETF9GSUxFU19UTVAgPSAuL2lkbF9maWxlcy50bXAK
LUFERElUSU9OQUxfSURMUyA9ICQoV2ViQ29yZSkvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJh
bWUuaWRsCiAKICMgVGhlIGZvbGxvd2luZyB0d28gbGluZXMgZ2V0IGEgc3BhY2UgY2hhcmFjdGVy
IHN0b3JlZCBpbiBhIHZhcmlhYmxlLgogIyBTZWUgPGh0dHA6Ly9ibG9nLmpnYy5vcmcvMjAwNy8w
Ni9lc2NhcGluZy1jb21tYS1hbmQtc3BhY2UtaW4tZ251LW1ha2UuaHRtbD4uCiBzcGFjZSA6PQog
c3BhY2UgKz0KIAotJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSA6ICQoUkVTT0xWRV9T
VVBQTEVNRU5UQUxfU0NSSVBUUykgJChCSU5ESU5HX0lETFMpICQoQURESVRJT05BTF9JRExTKQot
CXByaW50ZiAiJChzdWJzdCAkKHNwYWNlKSwsJChwYXRzdWJzdCAlLCVcbiwkKEJJTkRJTkdfSURM
UykgJChBRERJVElPTkFMX0lETFMpKSkiID4gJChJRExfRklMRVNfVE1QKQotCSQoY2FsbCByZXNv
bHZlX3N1cHBsZW1lbnRhbF9zY3JpcHQsICQoUkVTT0xWRV9TVVBQTEVNRU5UQUxfU0NSSVBUUykp
IC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykg
TEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlc0xpc3QgJChJRExfRklMRVNfVE1QKSAtLXN1
cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICRACiskKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJ
TEUpIDogJChSRVNPTFZFX1NVUFBMRU1FTlRBTF9TQ1JJUFRTKSAkKEJJTkRJTkdfSURMUykgJChX
ZWJDb3JlKS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwKKwlwcmludGYgIiQoc3Vi
c3QgJChzcGFjZSksLCQocGF0c3Vic3QgJSwlXG4sJChCSU5ESU5HX0lETFMpICQoV2ViQ29yZSkv
aW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsKSkiID4gJChJRExfRklMRVNfVE1QKQor
CSQoY2FsbCByZXNvbHZlX3N1cHBsZW1lbnRhbF9zY3JpcHQsICQoUkVTT0xWRV9TVVBQTEVNRU5U
QUxfU0NSSVBUUykpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9J
RExfREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlc0xpc3QgJChJRExfRklM
RVNfVE1QKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICRAIC0tbmV3QnVpbGRGbG93CiAJ
cm0gLWYgJChJRExfRklMRVNfVE1QKQogCi1KUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NS
SVBUUykgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKQotCSQoY2FsbCBnZW5lcmF0b3Jf
c2NyaXB0LCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZp
bmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFH
RV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBKUyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxl
ICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgJDwKKyUuaWRsLW5lZWRzLXJlYnVpbGQg
OiAlLmlkbCAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy91cGRhdGUtaWRsLW5lZWRzLXJlYnVpbGQucGwKKwlwZXJsICQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cy91cGRhdGUtaWRsLW5lZWRzLXJlYnVpbGQucGwgLS1zdXBwbGVtZW50
YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taWRsRmls
ZSAkPAogCitKUyUuaCA6ICUuaWRsLW5lZWRzLXJlYnVpbGQgJChKU19CSU5ESU5HU19TQ1JJUFRT
KQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpKSAkKElE
TF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFM
X0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBKUyAtLXN1cHBs
ZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1p
ZGxOZWVkc1JlYnVpbGRGaWxlICQ8IC0tbmV3QnVpbGRGbG93CiAKICMgSW5zcGVjdG9yIGludGVy
ZmFjZXMgZ2VuZXJhdG9yCiAKQEAgLTk1Myw4ICs5NTksOCBAQCBJbmplY3RlZFNjcmlwdFNvdXJj
ZS5oIDogSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKIGlmZXEgKCQoZmluZHN0cmluZyBCVUlMRElO
R19XWCwkKEZFQVRVUkVfREVGSU5FUykpLCBCVUlMRElOR19XWCkKIENQUF9CSU5ESU5HU19TQ1JJ
UFRTID0gJChHRU5FUkFURV9TQ1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JD
UFAucG0KIAotV2ViRE9NJS5oIDogJS5pZGwgJChDUFBfQklORElOR1NfU0NSSVBUUykgJChTVVBQ
TEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKQotCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKENQ
UF9CSU5ESU5HU19TQ1JJUFRTKSkgJChJRExfQ09NTU9OX0FSR1MpIC0tZGVmaW5lcyAiJChGRUFU
VVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfQ1BQIiAtLWdl
bmVyYXRvciBDUFAgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9E
RVBFTkRFTkNZX0ZJTEUpICQ8CitXZWJET00lLmggOiAlLmlkbC1uZWVkcy1yZWJ1aWxkICQoQ1BQ
X0JJTkRJTkdTX1NDUklQVFMpCisJJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoQ1BQX0JJTkRJ
TkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVG
SU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9DUFAiIC0tZ2VuZXJhdG9y
IENQUCAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVO
Q1lfRklMRSkgIC0taWRsTmVlZHNSZWJ1aWxkRmlsZSAkPCAtLW5ld0J1aWxkRmxvdwogZW5kaWYg
IyBCVUlMRElOR19XWAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTY0LDggKzk3
MCw5IEBAIGVuZGlmICMgQlVJTERJTkdfV1gKIGlmZXEgKCQoT1MpLE1BQ09TKQogCiBPQkpDX0RP
TV9IRUFERVJTPSQoZmlsdGVyLW91dCBET01ET01XaW5kb3cuaCBET01ET01NaW1lVHlwZS5oIERP
TURPTVBsdWdpbi5oLCQoRE9NX0NMQVNTRVM6JT1ET00lLmgpKQorT0JKQ19JRExfTkVFRFNfUkVC
VUlMRFM9JChPQkpDX0RPTV9IRUFERVJTOkRPTSUuaD0lLmlkbC1uZWVkcy1yZWJ1aWxkKQogCi1h
bGwgOiAkKE9CSkNfRE9NX0hFQURFUlMpCithbGwgOiAkKE9CSkNfRE9NX0hFQURFUlMpICQoT0JK
Q19JRExfTkVFRFNfUkVCVUlMRFMpCiAKIGFsbCA6IENoYXJzZXREYXRhLmNwcAogCkBAIC05OTYs
OCArMTAwMyw4IEBAIGVuZGlmICMgaW5zdGFsbGhkcnMKICMgT2JqZWN0aXZlLUMgYmluZGluZ3MK
IAogRE9NX0JJTkRJTkdTX1NDUklQVFMgPSAkKEdFTkVSQVRFX0JJTkRJTkdfU0NSSVBUUykgYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQotRE9NJS5oIDogJS5pZGwgJChET01f
QklORElOR1NfU0NSSVBUUykgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSBiaW5kaW5n
cy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAotCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAk
KERPTV9CSU5ESU5HU19TQ1JJUFRTKSkgJChJRExfQ09NTU9OX0FSR1MpIC0tZGVmaW5lcyAiJChG
RUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNU
SVZFX0MiIC0tZ2VuZXJhdG9yIE9iakMgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNV
UFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpICQ8CitET00lLmggOiAlLmlkbC1uZWVkcy1yZWJ1
aWxkICQoRE9NX0JJTkRJTkdTX1NDUklQVFMpIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJm
YWNlcy5oCisJJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoRE9NX0JJTkRJTkdTX1NDUklQVFMp
KSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJ
VElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5lcmF0b3IgT2Jq
QyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lf
RklMRSkgLS1pZGxOZWVkc1JlYnVpbGRGaWxlICQ8IC0tbmV3QnVpbGRGbG93CiAKIC1pbmNsdWRl
ICQoT0JKQ19ET01fSEVBREVSUzouaD0uZGVwKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAppbmRleCA1ZTM4OTU2MDlkNjI3
Nzg4N2VmNjg1NjlhYzE0MzE2OGJmNjk2NmI4Li41NTBiODk5NjM3ZmY0MDY3OTdjMzI1NmNkMjhm
Y2Q1YmE2ZDNjMjk1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L2dlbmVyYXRlLWJpbmRpbmdzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKQEAgLTUwLDYgKzUwLDggQEAgbXkgJHdyaXRlRGVwZW5k
ZW5jaWVzOwogbXkgJHZlcmJvc2U7CiBteSAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGU7CiBt
eSAkYWRkaXRpb25hbElkbEZpbGVzTGlzdDsKK215ICRpZGxOZWVkc1JlYnVpbGRGaWxlOworbXkg
JG5ld0J1aWxkRmxvdzsKIAogR2V0T3B0aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJlY3Rv
cmllcywKICAgICAgICAgICAgJ291dHB1dERpcj1zJyA9PiBcJG91dHB1dERpcmVjdG9yeSwKQEAg
LTYyLDEyICs2NCwyOCBAQCBHZXRPcHRpb25zKCdpbmNsdWRlPXNAJyA9PiBcQGlkbERpcmVjdG9y
aWVzLAogICAgICAgICAgICAndmVyYm9zZScgPT4gXCR2ZXJib3NlLAogICAgICAgICAgICAnd3Jp
dGUtZGVwZW5kZW5jaWVzJyA9PiBcJHdyaXRlRGVwZW5kZW5jaWVzLAogICAgICAgICAgICAnc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGU9cycgPT4gXCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5Rmls
ZSwKLSAgICAgICAgICAgJ2FkZGl0aW9uYWxJZGxGaWxlc0xpc3Q9cycgPT4gXCRhZGRpdGlvbmFs
SWRsRmlsZXNMaXN0KTsKKyAgICAgICAgICAgJ2FkZGl0aW9uYWxJZGxGaWxlc0xpc3Q9cycgPT4g
XCRhZGRpdGlvbmFsSWRsRmlsZXNMaXN0LAorICAgICAgICAgICAnaWRsTmVlZHNSZWJ1aWxkRmls
ZT1zJyA9PiBcJGlkbE5lZWRzUmVidWlsZEZpbGUsCisgICAgICAgICAgICMgRklYTUU6IEFmdGVy
IHN1cHBvcnRpbmcgdGhlIG5ldyBidWlsZCBmbG93IGluIGFsbCBidWlsZCBzeXN0ZW1zIChidWcg
NzY5NzApLAorICAgICAgICAgICAjIHdlIHNob3VsZCByZW1vdmUgdGhlIC0tbmV3QnVpbGRGbG93
IG9wdGlvbi4KKyAgICAgICAgICAgJ25ld0J1aWxkRmxvdycgPT4gXCRuZXdCdWlsZEZsb3cpOwog
CiBteSAkdGFyZ2V0SWRsRmlsZSA9ICRBUkdWWzBdOwogCitpZiAoJGlkbE5lZWRzUmVidWlsZEZp
bGUpIHsKKyAgICBvcGVuIEZILCAiPCIsICRpZGxOZWVkc1JlYnVpbGRGaWxlIG9yIGRpZSAiQ291
bGRuJ3Qgb3BlbiAkaWRsTmVlZHNSZWJ1aWxkRmlsZTogJCEiOworICAgIHdoaWxlICg8Rkg+KSB7
CisgICAgICAgIGNob21wOworICAgICAgICBpZiAoL15JRExGaWxlPSguKikkLykgeworICAgICAg
ICAgICAgJHRhcmdldElkbEZpbGUgPSAkMTsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0K
KyAgICB9CisgICAgY2xvc2UgRkg7Cit9CisKIGRpZSgnTXVzdCBzcGVjaWZ5IGlucHV0IGZpbGUu
JykgdW5sZXNzIGRlZmluZWQoJHRhcmdldElkbEZpbGUpOwotZGllKCdNdXN0IHNwZWNpZnkgZ2Vu
ZXJhdG9yJykgdW5sZXNzIGRlZmluZWQoJGdlbmVyYXRvcik7CitkaWUoJ011c3Qgc3BlY2lmeSBn
ZW5lcmF0b3IuJykgdW5sZXNzIGRlZmluZWQoJGdlbmVyYXRvcik7CiBkaWUoJ011c3Qgc3BlY2lm
eSBvdXRwdXQgZGlyZWN0b3J5LicpIHVubGVzcyBkZWZpbmVkKCRvdXRwdXREaXJlY3RvcnkpOwog
CiBpZiAoISRvdXRwdXRIZWFkZXJzRGlyZWN0b3J5KSB7CkBAIC04MiwyNSArMTAwLDU1IEBAIG15
ICR0YXJnZXRJbnRlcmZhY2VOYW1lID0gZmlsZXBhcnNlKGJhc2VuYW1lKCR0YXJnZXRJZGxGaWxl
KSwgIi5pZGwiKTsKIG15ICRpZGxGb3VuZCA9IDA7CiBteSBAc3VwcGxlbWVudGVkSWRsRmlsZXM7
CiBpZiAoJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlKSB7Ci0gICAgIyBUaGUgZm9ybWF0IG9m
IGEgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZToKLSAgICAjCi0gICAgIyBET01XaW5kb3cu
aWRsIFAuaWRsIFEuaWRsIFIuaWRsCi0gICAgIyBEb2N1bWVudC5pZGwgUy5pZGwKLSAgICAjIEV2
ZW50LmlkbAotICAgICMgLi4uCi0gICAgIwotICAgICMgVGhlIGFib3ZlIGluZGljYXRlcyB0aGF0
IERPTVdpbmRvdy5pZGwgaXMgc3VwcGxlbWVudGVkIGJ5IFAuaWRsLCBRLmlkbCBhbmQgUi5pZGws
Ci0gICAgIyBEb2N1bWVudC5pZGwgaXMgc3VwcGxlbWVudGVkIGJ5IFMuaWRsLCBhbmQgRXZlbnQu
aWRsIGlzIHN1cHBsZW1lbnRlZCBieSBubyBJRExzLgotICAgICMgVGhlIElETCB0aGF0IHN1cHBs
ZW1lbnRzIGFub3RoZXIgSURMIChlLmcuIFAuaWRsKSBuZXZlciBhcHBlYXJzIGluIHRoZSBkZXBl
bmRlbmN5IGZpbGUuCi0gICAgb3BlbiBGSCwgIjwgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxl
IiBvciBkaWUgIkNhbm5vdCBvcGVuICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZVxuIjsKLSAg
ICB3aGlsZSAobXkgJGxpbmUgPSA8Rkg+KSB7Ci0gICAgICAgIG15ICgkaWRsRmlsZSwgQGZvbGxv
d2luZ0lkbEZpbGVzKSA9IHNwbGl0KC9ccysvLCAkbGluZSk7Ci0gICAgICAgIGlmICgkaWRsRmls
ZSBhbmQgYmFzZW5hbWUoJGlkbEZpbGUpIGVxIGJhc2VuYW1lKCR0YXJnZXRJZGxGaWxlKSkgewot
ICAgICAgICAgICAgJGlkbEZvdW5kID0gMTsKLSAgICAgICAgICAgIEBzdXBwbGVtZW50ZWRJZGxG
aWxlcyA9IEBmb2xsb3dpbmdJZGxGaWxlczsKKyAgICAjIEZJWE1FOiBBZnRlciBzdXBwb3J0aW5n
IHRoZSBuZXcgYnVpbGQgZmxvdyBpbiBhbGwgYnVpbGQgc3lzdGVtcyAoYnVnIDc2OTcwKSwKKyAg
ICAjIHdlIHNob3VsZCByZW1vdmUgdGhpcyBpZiBzdGF0ZW1lbnQuCisgICAgaWYgKCRuZXdCdWls
ZEZsb3cpIHsKKyAgICAgICAgIyBUaGUgZm9ybWF0IG9mIGEgc3VwcGxlbWVudGFsIGRlcGVuZGVu
Y3kgZmlsZToKKyAgICAgICAgIworICAgICAgICAjIERPTVdpbmRvdy5pZGwoMTAwMCkgUC5pZGwo
ODAwKSBRLmlkbCgxMjAwKSBSLmlkbCgxMDAwKQorICAgICAgICAjIERvY3VtZW50LmlkbCgxMDAw
KSBTLmlkbCg4MDApCisgICAgICAgICMgRXZlbnQuaWRsKDEyMDApCisgICAgICAgICMgLi4uCisg
ICAgICAgICMKKyAgICAgICAgIyBUaGUgYWJvdmUgaW5kaWNhdGVzIHRoYXQgRE9NV2luZG93Lmlk
bCBpcyBzdXBwbGVtZW50ZWQgYnkgUC5pZGwsIFEuaWRsIGFuZCBSLmlkbCwKKyAgICAgICAgIyBE
b2N1bWVudC5pZGwgaXMgc3VwcGxlbWVudGVkIGJ5IFMuaWRsLCBhbmQgRXZlbnQuaWRsIGlzIHN1
cHBsZW1lbnRlZCBieSBubyBJRExzLgorICAgICAgICAjIFRoZSBJREwgdGhhdCBzdXBwbGVtZW50
cyBhbm90aGVyIElETCAoZS5nLiBQLmlkbCkgbmV2ZXIgYXBwZWFycyBpbiB0aGUgZGVwZW5kZW5j
eSBmaWxlLgorICAgICAgICAjIFRoZSBudW1iZXIgaW4gKCkgaXMgdGhlIGxhc3QgYWNjZXNzIHRp
bWVzdGFtcCBvZiB0aGUgZmlsZS4KKyAgICAgICAgb3BlbiBGSCwgIjwiLCAkc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUgb3IgZGllICJDYW5ub3Qgb3BlbiAkc3VwcGxlbWVudGFsRGVwZW5kZW5j
eUZpbGVcbiI7CisgICAgICAgIHdoaWxlIChteSAkbGluZSA9IDxGSD4pIHsKKyAgICAgICAgICAg
IG15ICgkaWRsRmlsZUVudHJ5LCBAc3VwcGxlbWVudGFsSWRsRmlsZUVudHJpZXMpID0gc3BsaXQo
L1xzKy8sICRsaW5lKTsKKyAgICAgICAgICAgIGRpZSAiVGhlIGZvcm1hdCBvZiBzdXBwbGVtZW50
YWwuZGVwIGlzIHdyb25nXG4iIHVubGVzcyAkaWRsRmlsZUVudHJ5ID1+IC9eKFteXChdKilcKFxk
K1wpJC87CisgICAgICAgICAgICBteSAkaWRsRmlsZSA9ICQxOworICAgICAgICAgICAgaWYgKGJh
c2VuYW1lKCRpZGxGaWxlKSBlcSBiYXNlbmFtZSgkdGFyZ2V0SWRsRmlsZSkpIHsKKyAgICAgICAg
ICAgICAgICAkaWRsRm91bmQgPSAxOworICAgICAgICAgICAgICAgIGZvciBteSAkc3VwcGxlbWVu
dGFsSWRsRmlsZUVudHJ5IChAc3VwcGxlbWVudGFsSWRsRmlsZUVudHJpZXMpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZGllICJUaGUgZm9ybWF0IG9mIHN1cHBsZW1lbnRhbC5kZXAgaXMgd3Jvbmdc
biIgdW5sZXNzICRzdXBwbGVtZW50YWxJZGxGaWxlRW50cnkgPX4gL14oW15cKF0qKVwoXGQrXCkk
LzsKKyAgICAgICAgICAgICAgICAgICAgcHVzaCBAc3VwcGxlbWVudGVkSWRsRmlsZXMsICQxOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjbG9z
ZSBGSDsKKyAgICB9IGVsc2UgeworICAgICAgICAjIFRoZSBmb3JtYXQgb2YgYSBzdXBwbGVtZW50
YWwgZGVwZW5kZW5jeSBmaWxlOgorICAgICAgICAjCisgICAgICAgICMgRE9NV2luZG93LmlkbCBQ
LmlkbCBRLmlkbCBSLmlkbAorICAgICAgICAjIERvY3VtZW50LmlkbCBTLmlkbAorICAgICAgICAj
IEV2ZW50LmlkbAorICAgICAgICAjIC4uLgorICAgICAgICAjCisgICAgICAgICMgVGhlIGFib3Zl
IGluZGljYXRlcyB0aGF0IERPTVdpbmRvdy5pZGwgaXMgc3VwcGxlbWVudGVkIGJ5IFAuaWRsLCBR
LmlkbCBhbmQgUi5pZGwsCisgICAgICAgICMgRG9jdW1lbnQuaWRsIGlzIHN1cHBsZW1lbnRlZCBi
eSBTLmlkbCwgYW5kIEV2ZW50LmlkbCBpcyBzdXBwbGVtZW50ZWQgYnkgbm8gSURMcy4KKyAgICAg
ICAgIyBUaGUgSURMIHRoYXQgc3VwcGxlbWVudHMgYW5vdGhlciBJREwgKGUuZy4gUC5pZGwpIG5l
dmVyIGFwcGVhcnMgaW4gdGhlIGRlcGVuZGVuY3kgZmlsZS4KKyAgICAgICAgb3BlbiBGSCwgIjwi
LCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgb3IgZGllICJDYW5ub3Qgb3BlbiAkc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGVcbiI7CisgICAgICAgIHdoaWxlIChteSAkbGluZSA9IDxGSD4p
IHsKKyAgICAgICAgICAgIG15ICgkaWRsRmlsZSwgQGZvbGxvd2luZ0lkbEZpbGVzKSA9IHNwbGl0
KC9ccysvLCAkbGluZSk7CisgICAgICAgICAgICBpZiAoJGlkbEZpbGUgYW5kIGJhc2VuYW1lKCRp
ZGxGaWxlKSBlcSBiYXNlbmFtZSgkdGFyZ2V0SWRsRmlsZSkpIHsKKyAgICAgICAgICAgICAgICAk
aWRsRm91bmQgPSAxOworICAgICAgICAgICAgICAgIEBzdXBwbGVtZW50ZWRJZGxGaWxlcyA9IEBm
b2xsb3dpbmdJZGxGaWxlczsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBjbG9z
ZSBGSDsKICAgICB9Ci0gICAgY2xvc2UgRkg7CiAKICAgICAjIFRoZSBmaWxlICRhZGRpdGlvbmFs
SWRsRmlsZXNMaXN0IGNvbnRhaW5zIG9uZSBJREwgZmlsZSBwZXIgbGluZToKICAgICAjIFAuaWRs
CkBAIC0xMTAsNyArMTU4LDcgQEAgaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSkgewog
ICAgICMgKGkuZS4gdGhleSBhcmUgbm90IGRlc2NyaWJlZCBpbiB0aGUgc3VwcGxlbWVudGFsIGRl
cGVuZGVuY3kgZmlsZSkKICAgICAjIGJ1dCBzaG91bGQgZ2VuZXJhdGUgLmggYW5kIC5jcHAgZmls
ZXMuCiAgICAgaWYgKCEkaWRsRm91bmQgYW5kICRhZGRpdGlvbmFsSWRsRmlsZXNMaXN0KSB7Ci0g
ICAgICAgIG9wZW4gRkgsICI8ICRhZGRpdGlvbmFsSWRsRmlsZXNMaXN0IiBvciBkaWUgIkNhbm5v
dCBvcGVuICRhZGRpdGlvbmFsSWRsRmlsZXNMaXN0XG4iOworICAgICAgICBvcGVuIEZILCAiPCIs
ICRhZGRpdGlvbmFsSWRsRmlsZXNMaXN0IG9yIGRpZSAiQ2Fubm90IG9wZW4gJGFkZGl0aW9uYWxJ
ZGxGaWxlc0xpc3RcbiI7CiAgICAgICAgIG15IEBpZGxGaWxlcyA9IDxGSD47CiAgICAgICAgIGNo
b21wKEBpZGxGaWxlcyk7CiAgICAgICAgICRpZGxGb3VuZCA9IGdyZXAgeyAkXyBhbmQgYmFzZW5h
bWUoJF8pIGVxIGJhc2VuYW1lKCR0YXJnZXRJZGxGaWxlKSB9IEBpZGxGaWxlczsKQEAgLTIwNywx
MSArMjU1LDExIEBAIHN1YiBnZW5lcmF0ZUVtcHR5SGVhZGVyQW5kQ3BwCiAgICAgJGNwcE5hbWUg
YXQgZXZlcnkgYnVpbGQuIFRoaXMgZmlsZSBtdXN0IG5vdCBiZSB0cmllZCB0byBjb21waWxlLgog
Ki8KICI7Ci0gICAgb3BlbiBGSCwgIj4gJHtvdXRwdXRIZWFkZXJzRGlyZWN0b3J5fS8ke2hlYWRl
ck5hbWV9IiBvciBkaWUgIkNhbm5vdCBvcGVuICRoZWFkZXJOYW1lXG4iOworICAgIG9wZW4gRkgs
ICI+IiwgIiR7b3V0cHV0SGVhZGVyc0RpcmVjdG9yeX0vJHtoZWFkZXJOYW1lfSIgb3IgZGllICJD
YW5ub3Qgb3BlbiAkaGVhZGVyTmFtZVxuIjsKICAgICBwcmludCBGSCAkY29udGVudHM7CiAgICAg
Y2xvc2UgRkg7CiAKLSAgICBvcGVuIEZILCAiPiAke291dHB1dERpcmVjdG9yeX0vJHtjcHBOYW1l
fSIgb3IgZGllICJDYW5ub3Qgb3BlbiAkY3BwTmFtZVxuIjsKKyAgICBvcGVuIEZILCAiPiIsICIk
e291dHB1dERpcmVjdG9yeX0vJHtjcHBOYW1lfSIgb3IgZGllICJDYW5ub3Qgb3BlbiAkY3BwTmFt
ZVxuIjsKICAgICBwcmludCBGSCAkY29udGVudHM7CiAgICAgY2xvc2UgRkg7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Jlc29sdmUtc3VwcGxlbWVudGFs
LnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9yZXNvbHZlLXN1cHBsZW1lbnRh
bC5wbAppbmRleCA5ZmUwZTY2MWNkZDUyY2Q3YjkyYjU1MTdjMDk4MzE2YmI4ZjEyYzYzLi42M2I5
MmE1NjBhNmFhNmEwYjQ4MTRiM2M4YmU2ZDcxNWM0NzI1NGFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Jlc29sdmUtc3VwcGxlbWVudGFsLnBsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcmVzb2x2ZS1zdXBwbGVtZW50YWwucGwKQEAg
LTMxLDEyICszMSwxNiBAQCBteSAkcHJlcHJvY2Vzc29yOwogbXkgJHZlcmJvc2U7CiBteSAkaWRs
RmlsZXNMaXN0OwogbXkgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlOworbXkgJG5ld0J1aWxk
RmxvdzsKIAogR2V0T3B0aW9ucygnZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAg
ICdwcmVwcm9jZXNzb3I9cycgPT4gXCRwcmVwcm9jZXNzb3IsCiAgICAgICAgICAgICd2ZXJib3Nl
JyA9PiBcJHZlcmJvc2UsCiAgICAgICAgICAgICdpZGxGaWxlc0xpc3Q9cycgPT4gXCRpZGxGaWxl
c0xpc3QsCi0gICAgICAgICAgICdzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZT1zJyA9PiBcJHN1
cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlKTsKKyAgICAgICAgICAgJ3N1cHBsZW1lbnRhbERlcGVu
ZGVuY3lGaWxlPXMnID0+IFwkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAgICAg
ICMgRklYTUU6IEFmdGVyIHN1cHBvcnRpbmcgdGhlIG5ldyBidWlsZCBmbG93IGluIGFsbCBidWls
ZCBzeXN0ZW1zIChidWcgNzY5NzApLAorICAgICAgICAgICAjIHdlIHNob3VsZCByZW1vdmUgdGhl
IC0tbmV3QnVpbGRGbG93IG9wdGlvbi4KKyAgICAgICAgICAgJ25ld0J1aWxkRmxvdycgPT4gXCRu
ZXdCdWlsZEZsb3cpOwogCiBkaWUoJ011c3Qgc3BlY2lmeSAjZGVmaW5lIG1hY3JvcyB1c2luZyAt
LWRlZmluZXMuJykgdW5sZXNzIGRlZmluZWQoJGRlZmluZXMpOwogZGllKCdNdXN0IHNwZWNpZnkg
YW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZS4nKSB1bmxl
c3MgZGVmaW5lZCgkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpOwpAQCAtNDYsNyArNTAsNyBA
QCBpZiAoJHZlcmJvc2UpIHsKICAgICBwcmludCAiUmVzb2x2aW5nIFtTdXBwbGVtZW50YWw9WFhY
XSBkZXBlbmRlbmNpZXMgaW4gYWxsIElETCBmaWxlcy5cbiI7CiB9CiAKLW9wZW4gRkgsICI8ICRp
ZGxGaWxlc0xpc3QiIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGlkbEZpbGVzTGlzdFxuIjsKK29wZW4g
RkgsICI8IiwgJGlkbEZpbGVzTGlzdCBvciBkaWUgIkNhbm5vdCBvcGVuICRpZGxGaWxlc0xpc3Rc
biI7CiBteSBAaWRsRmlsZXMgPSA8Rkg+OwogY2hvbXAoQGlkbEZpbGVzKTsKIGNsb3NlIEZIOwpA
QCAtNzcsMTkgKzgxLDUwIEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKGtleXMgJWRvY3VtZW50cykg
ewogICAgIH0KIH0KIAotIyBPdXRwdXRzIHRoZSBkZXBlbmRlbmN5LgotIyBUaGUgZm9ybWF0IG9m
IGEgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZToKLSMKLSMgRE9NV2luZG93LmlkbCBQLmlk
bCBRLmlkbCBSLmlkbAotIyBEb2N1bWVudC5pZGwgUy5pZGwKLSMgRXZlbnQuaWRsCi0jIC4uLgot
IwotIyBUaGUgYWJvdmUgaW5kaWNhdGVzIHRoYXQgRE9NV2luZG93LmlkbCBpcyBzdXBwbGVtZW50
ZWQgYnkgUC5pZGwsIFEuaWRsIGFuZCBSLmlkbCwKLSMgRG9jdW1lbnQuaWRsIGlzIHN1cHBsZW1l
bnRlZCBieSBTLmlkbCwgYW5kIEV2ZW50LmlkbCBpcyBzdXBwbGVtZW50ZWQgYnkgbm8gSURMcy4K
LSMgVGhlIElETCB0aGF0IHN1cHBsZW1lbnRzIGFub3RoZXIgSURMIChlLmcuIFAuaWRsKSBuZXZl
ciBhcHBlYXJzIGluIHRoZSBkZXBlbmRlbmN5IGZpbGUuCi1vcGVuIEZILCAiPiAkc3VwcGxlbWVu
dGFsRGVwZW5kZW5jeUZpbGUiIG9yIGRpZSAiQ2Fubm90IG9wZW4gJHN1cHBsZW1lbnRhbERlcGVu
ZGVuY3lGaWxlXG4iOwotZm9yZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVzdXBwbGVtZW50
YWxzKSB7Ci0gICAgcHJpbnQgRkggJGlkbEZpbGUsICIgQHskc3VwcGxlbWVudGFsc3skaWRsRmls
ZX19XG4iOworIyBGSVhNRTogQWZ0ZXIgc3VwcG9ydGluZyB0aGUgbmV3IGJ1aWxkIGZsb3cgaW4g
YWxsIGJ1aWxkIHN5c3RlbXMgKGJ1ZyA3Njk3MCksCisjIHdlIHNob3VsZCByZW1vdmUgdGhpcyBp
ZiBzdGF0ZW1lbnQuCitpZiAoJG5ld0J1aWxkRmxvdykgeworICAgICMgVGhlIGZvcm1hdCBvZiBh
IHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGU6CisgICAgIworICAgICMgRE9NV2luZG93Lmlk
bCgxMDAwKSBQLmlkbCg4MDApIFEuaWRsKDEyMDApIFIuaWRsKDEwMDApCisgICAgIyBEb2N1bWVu
dC5pZGwoMTAwMCkgUy5pZGwoODAwKQorICAgICMgRXZlbnQuaWRsKDEyMDApCisgICAgIyAuLi4K
KyAgICAjCisgICAgIyBUaGUgYWJvdmUgaW5kaWNhdGVzIHRoYXQgRE9NV2luZG93LmlkbCBpcyBz
dXBwbGVtZW50ZWQgYnkgUC5pZGwsIFEuaWRsIGFuZCBSLmlkbCwKKyAgICAjIERvY3VtZW50Lmlk
bCBpcyBzdXBwbGVtZW50ZWQgYnkgUy5pZGwsIGFuZCBFdmVudC5pZGwgaXMgc3VwcGxlbWVudGVk
IGJ5IG5vIElETHMuCisgICAgIyBUaGUgSURMIHRoYXQgc3VwcGxlbWVudHMgYW5vdGhlciBJREwg
KGUuZy4gUC5pZGwpIG5ldmVyIGFwcGVhcnMgaW4gdGhlIGRlcGVuZGVuY3kgZmlsZS4KKyAgICAj
IFRoZSBudW1iZXIgaW4gKCkgaXMgdGhlIGxhc3QgYWNjZXNzIHRpbWVzdGFtcCBvZiB0aGUgZmls
ZS4KKyAgICBvcGVuIEZILCAiPiIsICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSBvciBkaWUg
IkNhbm5vdCBvcGVuICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZVxuIjsKKyAgICBmb3JlYWNo
IG15ICRpZGxGaWxlIChzb3J0IGtleXMgJXN1cHBsZW1lbnRhbHMpIHsKKyAgICAgICAgcHJpbnQg
RkggJGlkbEZpbGUgLiAiKCIgLiB0aW1lc3RhbXAoJGlkbEZpbGUpIC4gIikiOworICAgICAgICBm
b3IgbXkgJHN1cHBsZW1lbnRhbElkbEZpbGUgKEB7JHN1cHBsZW1lbnRhbHN7JGlkbEZpbGV9fSkg
eworICAgICAgICAgICAgcHJpbnQgRkggIiAiIC4gJHN1cHBsZW1lbnRhbElkbEZpbGUgLiAiKCIg
LiB0aW1lc3RhbXAoJHN1cHBsZW1lbnRhbElkbEZpbGUpIC4gIikiOworICAgICAgICB9CisgICAg
ICAgIHByaW50IEZIICJcbiI7CisgICAgfQorICAgIGNsb3NlIEZIOworfSBlbHNlIHsKKyAgICAj
IFRoZSBmb3JtYXQgb2YgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxlOgorICAgICMKKyAg
ICAjIERPTVdpbmRvdy5pZGwgUC5pZGwgUS5pZGwgUi5pZGwKKyAgICAjIERvY3VtZW50LmlkbCBT
LmlkbAorICAgICMgRXZlbnQuaWRsCisgICAgIyAuLi4KKyAgICAjCisgICAgIyBUaGUgYWJvdmUg
aW5kaWNhdGVzIHRoYXQgRE9NV2luZG93LmlkbCBpcyBzdXBwbGVtZW50ZWQgYnkgUC5pZGwsIFEu
aWRsIGFuZCBSLmlkbCwKKyAgICAjIERvY3VtZW50LmlkbCBpcyBzdXBwbGVtZW50ZWQgYnkgUy5p
ZGwsIGFuZCBFdmVudC5pZGwgaXMgc3VwcGxlbWVudGVkIGJ5IG5vIElETHMuCisgICAgIyBUaGUg
SURMIHRoYXQgc3VwcGxlbWVudHMgYW5vdGhlciBJREwgKGUuZy4gUC5pZGwpIG5ldmVyIGFwcGVh
cnMgaW4gdGhlIGRlcGVuZGVuY3kgZmlsZS4KKyAgICBvcGVuIEZILCAiPiIsICRzdXBwbGVtZW50
YWxEZXBlbmRlbmN5RmlsZSBvciBkaWUgIkNhbm5vdCBvcGVuICRzdXBwbGVtZW50YWxEZXBlbmRl
bmN5RmlsZVxuIjsKKyAgICBmb3JlYWNoIG15ICRpZGxGaWxlIChzb3J0IGtleXMgJXN1cHBsZW1l
bnRhbHMpIHsKKyAgICAgICAgcHJpbnQgRkggJGlkbEZpbGUsICIgQHskc3VwcGxlbWVudGFsc3sk
aWRsRmlsZX19XG4iOworICAgIH0KKyAgICBjbG9zZSBGSDsKK30KKworc3ViIHRpbWVzdGFtcAor
eworICAgIG15ICRmaWxlID0gc2hpZnQ7CisgICAgcmV0dXJuIDAgaWYgISAtZSAkZmlsZTsKKyAg
ICByZXR1cm4gKHN0YXQgJGZpbGUpWzldOwogfQotY2xvc2UgRkg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3VwZGF0ZS1pZGwtbmVlZHMtcmVidWlsZC5wbCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdXBkYXRlLWlkbC1uZWVkcy1yZWJ1aWxk
LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVlZDVmZDVlMjVkNjA0ZTI0MmYzODE5ZjE0ZmU1YTg5YWQ0ZWNiM2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3VwZGF0
ZS1pZGwtbmVlZHMtcmVidWlsZC5wbApAQCAtMCwwICsxLDkwIEBACisjIS91c3IvYmluL3Blcmwg
LXcKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorIyBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyMKKwordXNlIHN0cmljdDsK
KwordXNlIEZpbGU6OkJhc2VuYW1lOwordXNlIEdldG9wdDo6TG9uZzsKKworbXkgJGlkbEZpbGU7
CitteSAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGU7CisKK0dldE9wdGlvbnMoJ3N1cHBsZW1l
bnRhbERlcGVuZGVuY3lGaWxlPXMnID0+IFwkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisg
ICAgICAgICAgICdpZGxGaWxlPXMnID0+IFwkaWRsRmlsZSk7CisKK2RpZSAiTXVzdCBzcGVjaWZ5
IGFuIElETCBmaWxlLiIgdW5sZXNzICRpZGxGaWxlOworZGllICJNdXN0IHNwZWNpZnkgYSBzdXBw
bGVtZW50YWwgZGVwZW5kZW5jeSBmaWxlLiIgdW5sZXNzICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5
RmlsZTsKKworIyBUb3VjaGVzIC5pZGwtbmVlZHMtcmVidWlsZCBpZiAuaWRsLW5lZWRzLXJlYnVp
bGQgaXMgb2xkZXIgdGhhbiB0aGlzIElETCBmaWxlLgorbXkgJGlkbE5lZWRzUmVidWlsZEZpbGUg
PSBiYXNlbmFtZSgkaWRsRmlsZSkgLiAiLW5lZWRzLXJlYnVpbGQiOworbXkgJHRpbWVTdGFtcE9m
SWRsTmVlZHNSZWJ1aWxkRmlsZSA9IHRpbWVzdGFtcCgkaWRsTmVlZHNSZWJ1aWxkRmlsZSk7Citp
ZiAoJHRpbWVTdGFtcE9mSWRsTmVlZHNSZWJ1aWxkRmlsZSA8IHRpbWVzdGFtcCgkaWRsRmlsZSkp
IHsKKyAgICB0b3VjaCgkaWRsTmVlZHNSZWJ1aWxkRmlsZSk7CisgICAgZXhpdDsKK30KKworCisj
IFRoZSBmb3JtYXQgb2YgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxlOgorIworIyBET01X
aW5kb3cuaWRsKDEwMDApIFAuaWRsKDgwMCkgUS5pZGwoMTIwMCkgUi5pZGwoMTAwMCkKKyMgRG9j
dW1lbnQuaWRsKDEwMDApIFMuaWRsKDgwMCkKKyMgRXZlbnQuaWRsKDEyMDApCisjIC4uLgorIwor
IyBUaGUgYWJvdmUgaW5kaWNhdGVzIHRoYXQgRE9NV2luZG93LmlkbCBpcyBzdXBwbGVtZW50ZWQg
YnkgUC5pZGwsIFEuaWRsIGFuZCBSLmlkbCwKKyMgRG9jdW1lbnQuaWRsIGlzIHN1cHBsZW1lbnRl
ZCBieSBTLmlkbCwgYW5kIEV2ZW50LmlkbCBpcyBzdXBwbGVtZW50ZWQgYnkgbm8gSURMcy4KKyMg
VGhlIElETCB0aGF0IHN1cHBsZW1lbnRzIGFub3RoZXIgSURMIChlLmcuIFAuaWRsKSBuZXZlciBh
cHBlYXJzIGluIHRoZSBkZXBlbmRlbmN5IGZpbGUuCisjIFRoZSBudW1iZXIgaW4gKCkgaXMgdGhl
IGxhc3QgYWNjZXNzIHRpbWVzdGFtcCBvZiB0aGUgZmlsZS4KK29wZW4gRkgsICI8IiwgJHN1cHBs
ZW1lbnRhbERlcGVuZGVuY3lGaWxlIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiAkc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGU6ICQhIjsKK3doaWxlIChteSAkbGluZSA9IDxGSD4pIHsKKyAgICBteSAo
JGlkbEZpbGVFbnRyeSwgQHN1cHBsZW1lbnRhbElkbEZpbGVFbnRyaWVzKSA9IHNwbGl0KC9ccysv
LCAkbGluZSk7CisgICAgZGllICJUaGUgZm9ybWF0IG9mIHN1cHBsZW1lbnRhbC5kZXAgaXMgd3Jv
bmdcbiIgdW5sZXNzICRpZGxGaWxlRW50cnkgPX4gL14oW15cKF0qKVwoKFxkKylcKSQvOworICAg
IG5leHQgaWYgKGJhc2VuYW1lKCQxKSBuZSBiYXNlbmFtZSgkaWRsRmlsZSkpOworICAgIG15ICR0
aW1lU3RhbXBPZklkbEZpbGUgPSAkMjsKKyAgICAjIFRvdWNoZXMgLmlkbC1uZWVkcy1yZWJ1aWxk
IGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBzdXBwbGVtZW50YWwgSURMIGZpbGUgd2hpY2ggaXMg
bmV3ZXIgdGhhbiB0aGlzIElETCBmaWxlLgorICAgIGZvciBteSAkc3VwcGxlbWVudGFsSWRsRmls
ZUVudHJ5IChAc3VwcGxlbWVudGFsSWRsRmlsZUVudHJpZXMpIHsKKyAgICAgICAgZGllICJUaGUg
Zm9ybWF0IG9mIHN1cHBsZW1lbnRhbC5kZXAgaXMgd3JvbmdcbiIgdW5sZXNzICRzdXBwbGVtZW50
YWxJZGxGaWxlRW50cnkgPX4gL14oPzpbXlwoXSopXCgoXGQrKVwpJC87CisgICAgICAgIG15ICR0
aW1lU3RhbXBPZlN1cHBsZW1lbnRhbElkbEZpbGUgPSAkMTsKKyAgICAgICAgaWYgKCR0aW1lU3Rh
bXBPZklkbE5lZWRzUmVidWlsZEZpbGUgPCAkdGltZVN0YW1wT2ZTdXBwbGVtZW50YWxJZGxGaWxl
KSB7CisgICAgICAgICAgICB0b3VjaCgkaWRsTmVlZHNSZWJ1aWxkRmlsZSk7CisgICAgICAgICAg
ICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIGxhc3Q7Cit9CitjbG9zZSBGSDsKKworc3Vi
IHRvdWNoCit7CisgICAgbXkgJGZpbGUgPSBzaGlmdDsKKworICAgIG9wZW4gRkgsICI+IiwgJGZp
bGUgb3IgZGllICJDb3VsZG4ndCBvcGVuICRmaWxlOiAkISI7CisgICAgbXkgJGJhc2VuYW1lID0g
YmFzZW5hbWUoJGZpbGUpOworICAgIHByaW50IEZIICJUaGlzIGZpbGUgaXMgdXNlZCBieSBidWls
ZCBzY3JpcHRzIG9ubHkuIFRoZSB0aW1lc3RhbXAgb2YgdGhpcyBmaWxlIGRldGVybWluZXMgd2hl
dGhlciAke2Jhc2VuYW1lfS5pZGwgc2hvdWxkIGJlIHJlYnVpbHQgb3Igbm90LlxuXG4iOworICAg
IHByaW50IEZIICJJRExGaWxlPSRpZGxGaWxlXG4iOworICAgIGNsb3NlIEZIOworfQorCitzdWIg
dGltZXN0YW1wCit7CisgICAgbXkgJGZpbGUgPSBzaGlmdDsKKyAgICByZXR1cm4gMCBpZiAhIC1l
ICRmaWxlOworICAgIHJldHVybiAoc3RhdCAkZmlsZSlbOV07Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>