<?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>85827</bug_id>
          
          <creation_ts>2012-05-07 14:12:20 -0700</creation_ts>
          <short_desc>[Qt] [WK2] Allow user to inject JS scripts when the page loads</short_desc>
          <delta_ts>2012-05-29 04:44:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</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>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87731</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Marcelo de Oliveira Filho">cmarcelo</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>ariya.hidayat</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>617927</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-07 14:12:20 -0700</bug_when>
    <thetext>The user of WebView can specify a list of JS scripts that will be loaded in the JS environment of the page. This allow the WebView user to manipulate the DOM. The WebView user can also take advantage of the existing (experimental) messaging feature to communicate between the injected script (that has access to the DOM) and its app environment (usually in QML).

This is related to bug 75099, but with two important simplifications: we inject the scripts in the web page JS environment instead of allowing creation of isolated JS worlds, and the API is simpler.

This feature together with messaging can cover many cases previously handled by manipulating the page via QWebElement directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617959</commentid>
    <comment_count>1</comment_count>
      <attachid>140595</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-07 14:41:12 -0700</bug_when>
    <thetext>Created attachment 140595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619434</commentid>
    <comment_count>2</comment_count>
      <attachid>140595</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-09 06:27:19 -0700</bug_when>
    <thetext>Comment on attachment 140595
Patch

I think this is just right from a functionality standpoint.
But since it&apos;s new API I&apos;d rather some of the API-folks help review it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619439</commentid>
    <comment_count>3</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-05-09 06:41:49 -0700</bug_when>
    <thetext>Nice! Though I think userScript is a better name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619526</commentid>
    <comment_count>4</comment_count>
      <attachid>140595</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-09 08:50:28 -0700</bug_when>
    <thetext>Comment on attachment 140595
Patch

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

&gt; Source/WebKit2/WebProcess/qt/QtBuiltinBundlePage.cpp:183
&gt; +        if (source.startsWith(QLatin1String(&quot;file:///&quot;)))
&gt; +            source = QUrl(source).toLocalFile();

It&apos;s better to use QUrl::isLocalFile rather than test for startsWith.
Also, using resources (qrc and the likes) for this is pretty popular so we should think about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619548</commentid>
    <comment_count>5</comment_count>
      <attachid>140595</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-09 09:08:28 -0700</bug_when>
    <thetext>Comment on attachment 140595
Patch

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

&gt; Source/WebKit2/WebProcess/qt/QtBuiltinBundlePage.cpp:182
&gt; +        if (source.startsWith(QLatin1String(&quot;file:///&quot;)))

I think we should only allow file:, data: and qrc, and not try to open the URL otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619803</commentid>
    <comment_count>6</comment_count>
      <attachid>140595</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-09 13:48:13 -0700</bug_when>
    <thetext>Comment on attachment 140595
Patch

Thanks for the feedback. I&apos;m working on a new version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621878</commentid>
    <comment_count>7</comment_count>
      <attachid>141470</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-11 12:34:54 -0700</bug_when>
    <thetext>Created attachment 141470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621880</commentid>
    <comment_count>8</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-11 12:35:50 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=141470) [details]
&gt; Patch

This updated version adds:

- Resource file support.
- More test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621905</commentid>
    <comment_count>9</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-11 12:55:40 -0700</bug_when>
    <thetext>This looks good to me, but I&apos;d rather more people take a look!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622101</commentid>
    <comment_count>10</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-05-11 16:30:08 -0700</bug_when>
    <thetext>Very cool, I like it! 

Would be nice to proto if we&apos;re able to run GM-scripts like this one:

  http://userscripts.org/scripts/review/109262

if we do 

  userScripts: [&quot;GM-functions.js&quot;, &quot;109262.js&quot;], 

where the former would use the messaging feature to implement (some of) the GM apis:

  http://wiki.greasespot.net/Greasemonkey_Manual:API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622111</commentid>
    <comment_count>11</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-05-11 16:39:41 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Would be nice to proto if we&apos;re able to run GM-scripts like this one:

Ah, never mind, I see bug 75099 is about enabling something like GM-scripts, with proper isolation, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627396</commentid>
    <comment_count>12</comment_count>
      <attachid>141470</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-05-17 23:42:27 -0700</bug_when>
    <thetext>Comment on attachment 141470
Patch

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

A few comments. I like the re-use of existing functionality :)

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:729
&gt; +        bool ok = false;
&gt; +        QString contents = readUserScript(url, ok);
&gt; +        if (!ok)
&gt; +            continue;
&gt; +        scripts.append(String(contents));

Wouldn&apos;t it be simpler to just return an empty string instead of the bool ok out parameter? An empty string isn&apos;t really worth appending to &quot;scripts&quot; I think :)

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:270
&gt; +    Q_PROPERTY(QList&lt;QUrl&gt; userScripts READ userScripts WRITE setUserScripts NOTIFY userScriptsChanged)

Is QList the correct type? Shouldn&apos;t this be implemented as a QML list property?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629055</commentid>
    <comment_count>13</comment_count>
      <attachid>143024</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-21 06:56:07 -0700</bug_when>
    <thetext>Created attachment 143024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629057</commentid>
    <comment_count>14</comment_count>
      <attachid>141470</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-21 06:57:37 -0700</bug_when>
    <thetext>Comment on attachment 141470
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:729
&gt;&gt; +        scripts.append(String(contents));
&gt; 
&gt; Wouldn&apos;t it be simpler to just return an empty string instead of the bool ok out parameter? An empty string isn&apos;t really worth appending to &quot;scripts&quot; I think :)

Fixed, also added a warning when this case happens.

&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:270
&gt;&gt; +    Q_PROPERTY(QList&lt;QUrl&gt; userScripts READ userScripts WRITE setUserScripts NOTIFY userScriptsChanged)
&gt; 
&gt; Is QList the correct type? Shouldn&apos;t this be implemented as a QML list property?

QQmlListProperty can only be used with lists of QObject pointers http://doc-snapshot.qt-project.org/5.0/qqmllistproperty.html. We use QUrl here as a value type, and it have implicit sharing happening in the backstage. This usage should be as fine as QStringList :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635858</commentid>
    <comment_count>15</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-29 04:22:58 -0700</bug_when>
    <thetext>Committed r118752: &lt;http://trac.webkit.org/changeset/118752&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635868</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 04:34:15 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 87731</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635884</commentid>
    <comment_count>17</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-29 04:44:41 -0700</bug_when>
    <thetext>Committed r118756: &lt;http://trac.webkit.org/changeset/118756&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140595</attachid>
            <date>2012-05-07 14:41:12 -0700</date>
            <delta_ts>2012-05-11 12:34:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85827-20120507184110.patch</filename>
            <type>text/plain</type>
            <size>19231</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDYwMWFjMDJkYTIzNTRk
YzkwYWM0MDhiOWMxMmVlODI1YTE1OGMzZi4uMzkwYjI0ZmZmMTkzZGFlM2MyN2I3ZmVlNmU1ZGY5
YWY1OWIyNmFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA1LTA3ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW1F0XSBbV0syXSBBbGxvdyB1c2VyIHRvIGluamVjdCBKUyBzY3JpcHRzIHdo
ZW4gdGhlIHBhZ2UgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1ODI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3JlYXRlIGEgbmV3IGV4cGVyaW1lbnRhbCBwcm9wZXJ0eSB0byBsaXN0IHRoZSBK
UyBzY3JpcHRzIHRoYXQgc2hvdWxkIGJlIGxvYWRlZAorICAgICAgICB3aGVuIGEgcGFnZSBpcyBs
b2FkZWQuIFRoZSBzY3JpcHRzIGFyZSBsb2FkZWQgaW4gdGhlIG5vcm1hbCBKUyBlbnZpcm9ubWVu
dCBvZiB0aGUKKyAgICAgICAgcGFnZS4KKworICAgICAgICBUb2dldGhlciB3aXRoIHRoZSBleHBl
cmltZW50YWwgbWVzc2FnaW5nIEFQSSB0aGlzIHByb3ZpZGVzIGEgd2F5IGZvciB0aGUKKyAgICAg
ICAgYXBwbGljYXRpb24gdG8gbWFuaXB1bGF0ZSB0aGUgRE9NIChieSBpbmplY3RpbmcgYSBzY3Jp
cHQgdGhhdCBkb2VzIHRoZQorICAgICAgICBtYW5pcHVsYXRpb24gYW5kIGNvbW11bmljYXRpbmcg
d2l0aCBpdCB2aWEgcG9zdE1lc3NhZ2UpLiBUaGlzIGNvdmVycyBzb21lIG9mIHRoZQorICAgICAg
ICB1c2UgY2FzZXMgb2YgUVdlYkVsZW1lbnQgaW4gb3VyIFdLMSBBUEkuLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpkaWRSZWxhdW5jaFByb2Nlc3MpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1By
aXZhdGU6OnVwZGF0ZVByZWxvYWRlZFNjcmlwdHMpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4
cGVyaW1lbnRhbDo6cHJlbG9hZGVkU2NyaXB0cyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RXhw
ZXJpbWVudGFsOjpzZXRQcmVsb2FkZWRTY3JpcHRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJlbG9hZGVkU2Ny
aXB0cy5xbWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvY29tbW9uL2FwcGVuZC1kb2N1bWVudC10aXRsZS5qczogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vY2hhbmdlLWRvY3VtZW50LXRpdGxl
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UXRXZWJDb250ZXh0OjpzZXRQcmVsb2FkZWRTY3JpcHRzKToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5oOgorICAg
ICAgICAoUXRXZWJDb250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1
bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0QnVpbHRpbkJ1bmRsZTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5kbGU6OmhhbmRsZVNldFByZWxv
YWRlZFNjcmlwdHMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0
L1F0QnVpbHRpbkJ1bmRsZS5oOgorICAgICAgICAoUXRCdWlsdGluQnVuZGxlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpRdEJ1aWx0aW5CdW5kbGVQYWdlOjpzZXRQcmVsb2FkZWRTY3JpcHRzKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlF0QnVpbHRpbkJ1bmRsZVBhZ2U6OnBhZ2VHcm91cCk6CisgICAgICAg
IChRdEJ1aWx0aW5CdW5kbGVQYWdlKToKKwogMjAxMi0wNS0wNyAgQWxleGlzIE1lbmFyZCAgPGFs
ZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFF0IGJ1aWxk
IGZpeCBpbiBEZWJ1Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwCmluZGV4IGIxYjQ2NTUyNjJlN2E3ZmFjZGQyMTU1OGE5YTdiM2U4NDBi
YWM5MDQuLmYzOGZmMGNlZGU0ODY5MmVlYTQ2ZDg3MGZlNWEyOGIxYWZiOTE2MWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAt
Mjg5LDYgKzI4OSw3IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZFJlbGF1bmNoUHJv
Y2VzcygpCiAKICAgICB3ZWJQYWdlUHJveHktPmRyYXdpbmdBcmVhKCktPnNldFNpemUodmlld1Np
emUoKSwgSW50U2l6ZSgpKTsKICAgICB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKyAgICB1cGRhdGVQ
cmVsb2FkZWRTY3JpcHRzKCk7CiB9CiAKIFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQcm94eT4gUVF1
aWNrV2ViVmlld1ByaXZhdGU6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQpAQCAtNTIyLDYgKzUy
MywxMSBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXROYXZpZ2F0b3JRdE9iamVjdEVu
YWJsZWQoYm9vbCBlbmFibGVkKQogICAgIGNvbnRleHQtPnNldE5hdmlnYXRvclF0T2JqZWN0RW5h
YmxlZCh3ZWJQYWdlUHJveHkuZ2V0KCksIGVuYWJsZWQpOwogfQogCit2b2lkIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjp1cGRhdGVQcmVsb2FkZWRTY3JpcHRzKCkKK3sKKyAgICBjb250ZXh0LT5zZXRQ
cmVsb2FkZWRTY3JpcHRzKHdlYlBhZ2VQcm94eS5nZXQoKSwgcHJlbG9hZGVkU2NyaXB0cyk7Cit9
CisKIFFQb2ludEYgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmNvbnRlbnRQb3MoKSBjb25zdAogewog
ICAgIFFfUShjb25zdCBRUXVpY2tXZWJWaWV3KTsKQEAgLTExNzEsNiArMTE3NywyMiBAQCB2b2lk
IFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldERldmljZVBpeGVsUmF0aW8oZG91YmxlIGRl
dmljZVBpeGVsUmF0aW8pCiAgICAgZW1pdCBkZXZpY2VQaXhlbFJhdGlvQ2hhbmdlZCgpOwogfQog
CitRU3RyaW5nTGlzdCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpwcmVsb2FkZWRTY3JpcHRz
KCkgY29uc3QKK3sKKyAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CisgICAgcmV0dXJuIGQt
PnByZWxvYWRlZFNjcmlwdHM7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6
c2V0UHJlbG9hZGVkU2NyaXB0cyhjb25zdCBRU3RyaW5nTGlzdCYgcHJlbG9hZGVkU2NyaXB0cykK
K3sKKyAgICBRX0QoUVF1aWNrV2ViVmlldyk7CisgICAgaWYgKGQtPnByZWxvYWRlZFNjcmlwdHMg
PT0gcHJlbG9hZGVkU2NyaXB0cykKKyAgICAgICAgcmV0dXJuOworICAgIGQtPnByZWxvYWRlZFNj
cmlwdHMgPSBwcmVsb2FkZWRTY3JpcHRzOworICAgIGQtPnVwZGF0ZVByZWxvYWRlZFNjcmlwdHMo
KTsKKyAgICBlbWl0IHByZWxvYWRlZFNjcmlwdHNDaGFuZ2VkKCk7Cit9CisKIFFRdWlja1VybFNj
aGVtZURlbGVnYXRlKiBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzY2hlbWVEZWxlZ2F0ZXNf
QXQoUURlY2xhcmF0aXZlTGlzdFByb3BlcnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiogcHJv
cGVydHksIGludCBpbmRleCkKIHsKICAgICBjb25zdCBRT2JqZWN0TGlzdCBjaGlsZHJlbiA9IHBy
b3BlcnR5LT5vYmplY3QtPmNoaWxkcmVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCA5MTZmMjI4MmQxNmUwZDdhYTQ3NjMy
NDhhN2U5MjJhNDM3YTYzOTZmLi40Y2E3YTI4MTcyMDRiN2U4MzdmOWQwMzVkODIzNjkwZjQwMWNh
YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wLmgKQEAgLTI2Niw2ICsyNjYsNyBAQCBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tX
ZWJWaWV3RXhwZXJpbWVudGFsIDogcHVibGljIFFPYmplY3QgewogICAgIFFfUFJPUEVSVFkoUURl
Y2xhcmF0aXZlTGlzdFByb3BlcnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiB1cmxTY2hlbWVE
ZWxlZ2F0ZXMgUkVBRCBzY2hlbWVEZWxlZ2F0ZXMpCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHVz
ZXJBZ2VudCBSRUFEIHVzZXJBZ2VudCBXUklURSBzZXRVc2VyQWdlbnQgTk9USUZZIHVzZXJBZ2Vu
dENoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShkb3VibGUgZGV2aWNlUGl4ZWxSYXRpbyBSRUFEIGRl
dmljZVBpeGVsUmF0aW8gV1JJVEUgc2V0RGV2aWNlUGl4ZWxSYXRpbyBOT1RJRlkgZGV2aWNlUGl4
ZWxSYXRpb0NoYW5nZWQpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nTGlzdCBwcmVsb2FkZWRTY3Jp
cHRzIFJFQUQgcHJlbG9hZGVkU2NyaXB0cyBXUklURSBzZXRQcmVsb2FkZWRTY3JpcHRzIE5PVElG
WSBwcmVsb2FkZWRTY3JpcHRzQ2hhbmdlZCkKICAgICBRX0VOVU1TKE5hdmlnYXRpb25SZXF1ZXN0
QWN0aW9uRXhwZXJpbWVudGFsKQogCiBwdWJsaWM6CkBAIC0yOTgsNiArMjk5LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFFTdHJpbmcmIHVzZXJBZ2VudCk7CiAgICAg
ZG91YmxlIGRldmljZVBpeGVsUmF0aW8oKSBjb25zdDsKICAgICB2b2lkIHNldERldmljZVBpeGVs
UmF0aW8oZG91YmxlKTsKKyAgICBRU3RyaW5nTGlzdCBwcmVsb2FkZWRTY3JpcHRzKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRQcmVsb2FkZWRTY3JpcHRzKGNvbnN0IFFTdHJpbmdMaXN0JiBwcmVsb2Fk
ZWRTY3JpcHRzKTsKIAogICAgIFFXZWJWaWV3cG9ydEluZm8qIHZpZXdwb3J0SW5mbygpOwogCkBA
IC0zNTAsNiArMzUzLDcgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgZGV2aWNlUGl4ZWxSYXRpb0No
YW5nZWQoKTsKICAgICB2b2lkIGVudGVyRnVsbFNjcmVlblJlcXVlc3RlZCgpOwogICAgIHZvaWQg
ZXhpdEZ1bGxTY3JlZW5SZXF1ZXN0ZWQoKTsKKyAgICB2b2lkIHByZWxvYWRlZFNjcmlwdHNDaGFu
Z2VkKCk7CiAKIHByaXZhdGU6CiAgICAgUVF1aWNrV2ViVmlldyogcV9wdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXgg
NDE3NjE4ZDBhNDFjYjI1NjFmYzExMjU0MzA2OTJkYzM0N2E3YjEzNS4uYzBlMWM0YWQxNTAzYjg4
NGI1OGZiMzc5YmNlNDcyODA2NzIxMDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtMTE5LDYgKzExOSw3IEBAIHB1
YmxpYzoKICAgICBib29sIHJlbmRlclRvT2Zmc2NyZWVuQnVmZmVyKCkgY29uc3QgeyByZXR1cm4g
bV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcjsgfQogICAgIGJvb2wgdHJhbnNwYXJlbnRCYWNrZ3Jv
dW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoYm9vbCk7
CisgICAgdm9pZCB1cGRhdGVQcmVsb2FkZWRTY3JpcHRzKCk7CiAKICAgICBRUG9pbnRGIGNvbnRl
bnRQb3MoKSBjb25zdDsKICAgICB2b2lkIHNldENvbnRlbnRQb3MoY29uc3QgUVBvaW50RiYpOwpA
QCAtMTg3LDYgKzE4OCw4IEBAIHByb3RlY3RlZDoKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyBhdHRyaWJ1dGVzOwogCisgICAgUVN0cmluZ0xpc3QgcHJlbG9hZGVkU2NyaXB0czsK
KwogICAgIGJvb2wgbV91c2VEZWZhdWx0Q29udGVudEl0ZW1TaXplOwogICAgIGJvb2wgbV9uYXZp
Z2F0b3JRdE9iamVjdEVuYWJsZWQ7CiAgICAgYm9vbCBtX3JlbmRlclRvT2Zmc2NyZWVuQnVmZmVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9XZWJWaWV3LnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy5wcm8KaW5kZXggNTczMDdmMDdhMGVlMWFmODFiY2U2NTkxNmMwZjE3
ODg3OWIwNDEzNC4uM2U0MTkxOTA3ZWVlNjI1NTExOTVjMGUxODM5NzNjMWUxNzU0M2UzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3LnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcucHJvCkBAIC0yNSw2ICsyNSw3IEBAIE9USEVSX0ZJTEVTICs9IFwKICAg
ICBXZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3MucW1sIFwKICAgICBXZWJWaWV3L3RzdF9sb2FkUHJv
Z3Jlc3NTaWduYWwucW1sIFwKICAgICBXZWJWaWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwgXAorICAg
IFdlYlZpZXcvdHN0X3ByZWxvYWRlZFNjcmlwdHMucW1sIFwKICAgICBXZWJWaWV3L3RzdF9wcm9w
ZXJ0aWVzLnFtbCBcCiAgICAgV2ViVmlldy90c3RfdGl0bGVDaGFuZ2VkLnFtbCBcCiAgICAgV2Vi
Vmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUucW1sIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJlbG9hZGVk
U2NyaXB0cy5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X3ByZWxvYWRlZFNjcmlwdHMucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMmU0YTg1
ZTc3OTQ1YTg3YTE1Mjk0MjcyNDc0ZTk2NDk2MGYwMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3By
ZWxvYWRlZFNjcmlwdHMucW1sCkBAIC0wLDAgKzEsNjQgQEAKK2ltcG9ydCBRdFF1aWNrIDIuMAor
aW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktpdC5l
eHBlcmltZW50YWwgMS4wCitpbXBvcnQgIi4uL2NvbW1vbiIKKworSXRlbSB7CisgICAgVGVzdFdl
YlZpZXcgeworICAgICAgICBpZDogd2ViVmlldworICAgICAgICB3aWR0aDogNDAwCisgICAgICAg
IGhlaWdodDogMzAwCisgICAgfQorCisgICAgVGVzdENhc2UgeworICAgICAgICBuYW1lOiAiV2Vi
Vmlld1ByZWxvYWRlZFNjcmlwdHMiCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9vbmVTY3JpcHQo
KSB7CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24v
dGVzdDEuaHRtbCIpOworICAgICAgICAgICAgd2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgp
OworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEiKTsKKwor
ICAgICAgICAgICAgd2ViVmlldy5leHBlcmltZW50YWwucHJlbG9hZGVkU2NyaXB0cyA9IFtRdC5y
ZXNvbHZlZFVybCgiLi4vY29tbW9uL2NoYW5nZS1kb2N1bWVudC10aXRsZS5qcyIpXTsKKyAgICAg
ICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIlRlc3QgcGFnZSAxIik7CisKKyAgICAgICAg
ICAgIHdlYlZpZXcucmVsb2FkKCk7CisgICAgICAgICAgICB3ZWJWaWV3LndhaXRGb3JMb2FkU3Vj
Y2VlZGVkKCk7CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJOZXcgdGl0bGUi
KTsKKworICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9u
L3Rlc3QyLmh0bWwiKTsKKyAgICAgICAgICAgIHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQo
KTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIk5ldyB0aXRsZSIpOworCisg
ICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5wcmVsb2FkZWRTY3JpcHRzID0gW107Cisg
ICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJOZXcgdGl0bGUiKTsKKworICAgICAg
ICAgICAgd2ViVmlldy5yZWxvYWQoKTsKKyAgICAgICAgICAgIHdlYlZpZXcud2FpdEZvckxvYWRT
dWNjZWVkZWQoKTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIlRlc3QgcGFn
ZSB3aXRoIGh1Z2UgbGluayBhcmVhIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0
ZXN0X3R3b1NjcmlwdHMoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVk
VXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIpOworICAgICAgICAgICAgd2ViVmlldy53YWl0Rm9y
TG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiVGVz
dCBwYWdlIDEiKTsKKworICAgICAgICAgICAgd2ViVmlldy5leHBlcmltZW50YWwucHJlbG9hZGVk
U2NyaXB0cyA9IFtRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2NoYW5nZS1kb2N1bWVudC10aXRs
ZS5qcyIpLCBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2FwcGVuZC1kb2N1bWVudC10aXRsZS5q
cyIpXTsKKyAgICAgICAgICAgIHdlYlZpZXcucmVsb2FkKCk7CisgICAgICAgICAgICB3ZWJWaWV3
LndhaXRGb3JMb2FkU3VjY2VlZGVkKCk7CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0
bGUsICJOZXcgdGl0bGUgd2l0aCBhcHBlbmRpeCIpOworCisgICAgICAgICAgICAvLyBNYWtlIHN1
cmUgd2UgY2FuIHJlbW92ZSBzY3JpcHRzIGZyb20gdGhlIHByZWxvYWQgbGlzdC4KKyAgICAgICAg
ICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnByZWxvYWRlZFNjcmlwdHMgPSBbUXQucmVzb2x2ZWRV
cmwoIi4uL2NvbW1vbi9hcHBlbmQtZG9jdW1lbnQtdGl0bGUuanMiKV07CisgICAgICAgICAgICB3
ZWJWaWV3LnJlbG9hZCgpOworICAgICAgICAgICAgd2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRl
ZCgpOworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEgd2l0
aCBhcHBlbmRpeCIpOworCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHNjcmlwdHMgYXJl
IGxvYWRlZCBpbiBvcmRlci4KKyAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnByZWxv
YWRlZFNjcmlwdHMgPSBbUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9hcHBlbmQtZG9jdW1lbnQt
dGl0bGUuanMiKSwgUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9jaGFuZ2UtZG9jdW1lbnQtdGl0
bGUuanMiKV07CisgICAgICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpOworICAgICAgICAgICAgd2Vi
Vmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3
LnRpdGxlLCAiTmV3IHRpdGxlIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9hcHBl
bmQtZG9jdW1lbnQtdGl0bGUuanMgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL2NvbW1vbi9hcHBlbmQtZG9jdW1lbnQtdGl0bGUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmI0YTJhNmYyMTk4YzJmNGE2Mzc1NGU5YWRlYmJiMDk0MzMzMmRhMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9u
L2FwcGVuZC1kb2N1bWVudC10aXRsZS5qcwpAQCAtMCwwICsxIEBACitkb2N1bWVudC50aXRsZSAr
PSAiIHdpdGggYXBwZW5kaXgiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vY2hhbmdlLWRvY3VtZW50LXRpdGxlLmpzIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vY2hh
bmdlLWRvY3VtZW50LXRpdGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYWU0NWMyMWYzYjZjZjJlNjZhMzc0
NTY3ZTA2NDUyYWU3NTZlMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9jaGFuZ2UtZG9jdW1lbnQtdGl0bGUu
anMKQEAgLTAsMCArMSBAQAorZG9jdW1lbnQudGl0bGUgPSAiTmV3IHRpdGxlIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHAKaW5kZXggMzBkNTljMmE0OGI4
NDZmYjAzMGYwYjc5YTU1MTEzN2NhMThlYzkzZC4uODdjYTRkMzA2NDZiOTA0ZDdkMzVmMzFjNzdk
ZDY3MzAxNjdiNTUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29u
dGV4dC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXS0FycmF5Lmg+CisjaW5j
bHVkZSA8V0tOdW1iZXIuaD4KICNpbmNsdWRlIDxXS1BhZ2UuaD4KICNpbmNsdWRlIDxXS1N0cmlu
Zy5oPgogI2luY2x1ZGUgPFdLVHlwZS5oPgpAQCAtMTQ3LDYgKzE0OCwyMSBAQCB2b2lkIFF0V2Vi
Q29udGV4dDo6cG9zdE1lc3NhZ2VUb05hdmlnYXRvclF0T2JqZWN0KFdlYlBhZ2VQcm94eSogd2Vi
UGFnZVByb3h5LCBjbwogICAgIG1fY29udGV4dC0+cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxl
KG1lc3NhZ2VOYW1lLCBib2R5LmdldCgpKTsKIH0KIAordm9pZCBRdFdlYkNvbnRleHQ6OnNldFBy
ZWxvYWRlZFNjcmlwdHMoV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHksIGNvbnN0IFFTdHJpbmdM
aXN0JiBzY3JpcHRzKQoreworICAgIHN0YXRpYyBTdHJpbmcgbWVzc2FnZU5hbWUoIlNldFByZWxv
YWRlZFNjcmlwdHMiKTsKKworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IGJvZHk7Cisg
ICAgYm9keS5hcHBlbmQod2ViUGFnZVByb3h5KTsKKyAgICBib2R5LmFwcGVuZChXZWJVSW50NjQ6
OmNyZWF0ZShzY3JpcHRzLnNpemUoKSkpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzY3Jp
cHRzLnNpemUoKTsgKytpKQorICAgICAgICBib2R5LmFwcGVuZChXZWJTdHJpbmc6OmNyZWF0ZShT
dHJpbmcoc2NyaXB0cy5hdChpKSkpKTsKKworICAgIFJlZlB0cjxJbW11dGFibGVBcnJheT4gYm9k
eU9iamVjdCA9IEltbXV0YWJsZUFycmF5OjphZG9wdChib2R5KTsKKyAgICBtX2NvbnRleHQtPnBv
c3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwgYm9keU9iamVjdC5nZXQoKSk7
Cit9CisKIFF0V2ViQ29udGV4dCogUXRXZWJDb250ZXh0Ojpjb250ZXh0QnlJRCh1aW50NjRfdCBp
ZCkKIHsKICAgICByZXR1cm4gY29udGV4dE1hcC5nZXQoaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViQ29udGV4dC5oCmluZGV4IGExZTEyZmYwZjhlMjBhOWRiOWI5ZTBlOGVl
ZTcyZjM1ZDVkODMyN2YuLjczZGViNjk4Nzg2YWUyMGI4OTFlNzdkNjI0NDI1MThjMTBlZDE4N2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmgKQEAgLTIxLDYg
KzIxLDcgQEAKICNpZm5kZWYgUXRXZWJDb250ZXh0X2gKICNkZWZpbmUgUXRXZWJDb250ZXh0X2gK
IAorI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5nTGlzdD4KICNpbmNsdWRlIDxRdEdsb2JhbD4KICNp
bmNsdWRlIDxXS0NvbnRleHQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0yOCwxMCAr
MjksNiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCi1RVF9CRUdJTl9OQU1FU1BBQ0UKLWNsYXNzIFFTdHJpbmc7Ci1RVF9FTkRfTkFNRVNQ
QUNFCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBQYWdlQ2xpZW50OwpAQCAtNTYsNiAr
NTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChX
ZWJQYWdlUHJveHkqLCBib29sKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9OYXZpZ2F0b3JRdE9i
amVjdChXZWJQYWdlUHJveHkqLCBjb25zdCBRU3RyaW5nJik7CisgICAgdm9pZCBzZXRQcmVsb2Fk
ZWRTY3JpcHRzKFdlYlBhZ2VQcm94eSosIGNvbnN0IFFTdHJpbmdMaXN0Jik7CiAKICAgICB1aW50
NjRfdCBjb250ZXh0SUQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRJRDsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZS5jcHAKaW5kZXggYTVh
NzVkMGMzYjE5YjlhOGVlMWMzMjdhNThmZmI4NDFjNzVkN2YyYy4uZDQ1M2NlZDE3MjMzYWViMDUy
MDE5ZWE0ZGZmMzVhM2M4ZGYyYWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvcXQvUXRCdWlsdGluQnVuZGxlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldL
UmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNpbmNsdWRlICJXS1N0cmluZ1F0
LmgiCisjaW5jbHVkZSA8UXRDb3JlL1FTdHJpbmc+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05NCw2ICs5NSw4IEBAIHZvaWQgUXRCdWlsdGlu
QnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBl
UmVmIG1lc3NhCiAgICAgICAgIGhhbmRsZU1lc3NhZ2VUb05hdmlnYXRvclF0T2JqZWN0KG1lc3Nh
Z2VCb2R5KTsKICAgICBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiU2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIikpCiAgICAgICAgIGhhbmRsZVNl
dE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChtZXNzYWdlQm9keSk7CisgICAgZWxzZSBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByZWxvYWRlZFNjcmlw
dHMiKSkKKyAgICAgICAgaGFuZGxlU2V0UHJlbG9hZGVkU2NyaXB0cyhtZXNzYWdlQm9keSk7CiB9
CiAKIHZvaWQgUXRCdWlsdGluQnVuZGxlOjpoYW5kbGVNZXNzYWdlVG9OYXZpZ2F0b3JRdE9iamVj
dChXS1R5cGVSZWYgbWVzc2FnZUJvZHkpCkBAIC0xMzQsNCArMTM3LDMxIEBAIHZvaWQgUXRCdWls
dGluQnVuZGxlOjpoYW5kbGVTZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoV0tUeXBlUmVmIG1l
c3NhZ2VCb2R5KQogICAgIGJ1bmRsZVBhZ2UtPnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChl
bmFibGVkKTsKIH0KIAordm9pZCBRdEJ1aWx0aW5CdW5kbGU6OmhhbmRsZVNldFByZWxvYWRlZFNj
cmlwdHMoV0tUeXBlUmVmIG1lc3NhZ2VCb2R5KQoreworICAgIEFTU0VSVChtZXNzYWdlQm9keSk7
CisgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0FycmF5R2V0VHlwZUlE
KCkpOworCisgICAgV0tBcnJheVJlZiBib2R5ID0gc3RhdGljX2Nhc3Q8V0tBcnJheVJlZj4obWVz
c2FnZUJvZHkpOworICAgIEFTU0VSVChXS0FycmF5R2V0U2l6ZShib2R5KSA+PSAyKTsKKyAgICBB
U1NFUlQoV0tHZXRUeXBlSUQoV0tBcnJheUdldEl0ZW1BdEluZGV4KGJvZHksIDApKSA9PSBXS0J1
bmRsZVBhZ2VHZXRUeXBlSUQoKSk7CisgICAgQVNTRVJUKFdLR2V0VHlwZUlEKFdLQXJyYXlHZXRJ
dGVtQXRJbmRleChib2R5LCAxKSkgPT0gV0tVSW50NjRHZXRUeXBlSUQoKSk7CisKKyAgICBXS0J1
bmRsZVBhZ2VSZWYgcGFnZSA9IHN0YXRpY19jYXN0PFdLQnVuZGxlUGFnZVJlZj4oV0tBcnJheUdl
dEl0ZW1BdEluZGV4KGJvZHksIDApKTsKKyAgICB1aW50NjRfdCBzY3JpcHRDb3VudCA9IFdLVUlu
dDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRl
eChib2R5LCAxKSkpOworCisgICAgUXRCdWlsdGluQnVuZGxlUGFnZSogYnVuZGxlUGFnZSA9IG1f
cGFnZXMuZ2V0KHBhZ2UpOworICAgIGlmICghYnVuZGxlUGFnZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQVNTRVJUKFdLQXJyYXlHZXRTaXplKGJvZHkpID09IDIgKyBzY3JpcHRDb3VudCk7Cisg
ICAgUVN0cmluZ0xpc3Qgc2NyaXB0czsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHNjcmlwdENv
dW50OyArK2kpIHsKKyAgICAgICAgV0tTdHJpbmdSZWYgc2NyaXB0ID0gc3RhdGljX2Nhc3Q8V0tT
dHJpbmdSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleChib2R5LCBpICsgMikpOworICAgICAgICBz
Y3JpcHRzLmFwcGVuZChXS1N0cmluZ0NvcHlRU3RyaW5nKHNjcmlwdCkpOworICAgIH0KKworICAg
IGJ1bmRsZVBhZ2UtPnNldFByZWxvYWRlZFNjcmlwdHMoc2NyaXB0cyk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9R
dEJ1aWx0aW5CdW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGlu
QnVuZGxlLmgKaW5kZXggNDk4ZmVjN2MyMjY2MmNjNGM1ZTAxN2JhMGIzMzc2NmJlNzNkZGRiNi4u
NTEwMDQ2OWU0YmM1NTllYTc3NjQ0N2RlZmNlMzRiZWI5NmNjYjhhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZS5oCkBAIC01Nyw2ICs1Nyw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVNZXNzYWdlVG9OYXZpZ2F0b3JRdE9i
amVjdChXS1R5cGVSZWYgbWVzc2FnZUJvZHkpOwogICAgIHZvaWQgaGFuZGxlU2V0TmF2aWdhdG9y
UXRPYmplY3RFbmFibGVkKFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CisgICAgdm9pZCBoYW5kbGVT
ZXRQcmVsb2FkZWRTY3JpcHRzKFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CiAKICAgICBIYXNoTWFw
PFdLQnVuZGxlUGFnZVJlZiwgT3duUHRyPFF0QnVpbHRpbkJ1bmRsZVBhZ2U+ID4gbV9wYWdlczsK
ICAgICBXS0J1bmRsZVJlZiBtX2J1bmRsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCmluZGV4IGMwMGE3M2MxOTY5YTNjZjg3
MzJiYWZhZWI5OWQ1NDhjYWJkOWE1YzQuLjBiMGM3NTM3OTUyZjAzNGM1OGRkMmIyMzMwOTNjNmQx
NzliMzdlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWls
dGluQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1
aWx0aW5CdW5kbGVQYWdlLmNwcApAQCAtMzAsMTIgKzMwLDE2IEBACiAjaW5jbHVkZSAiUXRCdWls
dGluQnVuZGxlLmgiCiAjaW5jbHVkZSAiV0tBcnJheS5oIgogI2luY2x1ZGUgIldLQnVuZGxlRnJh
bWUuaCIKKyNpbmNsdWRlICJXS0J1bmRsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXS0J1bmRsZVNj
cmlwdFdvcmxkLmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNsdWRlICJXS1N0cmlu
Zy5oIgogI2luY2x1ZGUgIldLU3RyaW5nUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldLU3RyaW5nUXQu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
ZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxRdENvcmUvUUZpbGU+CisjaW5jbHVkZSA8UXRDb3JlL1FV
cmw+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xNjgsNiArMTcyLDI2IEBAIHZvaWQgUXRC
dWlsdGluQnVuZGxlUGFnZTo6c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKICAgICBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKK3ZvaWQg
UXRCdWlsdGluQnVuZGxlUGFnZTo6c2V0UHJlbG9hZGVkU2NyaXB0cyhjb25zdCBRU3RyaW5nTGlz
dCYgc2NyaXB0cykKK3sKKyAgICBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIG5vcm1hbFdvcmxkID0g
V0tCdW5kbGVTY3JpcHRXb3JsZE5vcm1hbFdvcmxkKCk7CisgICAgV0tCdW5kbGVSZW1vdmVVc2Vy
U2NyaXB0cyhtX2J1bmRsZS0+dG9SZWYoKSwgcGFnZUdyb3VwKCksIG5vcm1hbFdvcmxkKTsKKwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2NyaXB0cy5zaXplKCk7ICsraSkgeworICAgICAgICBR
U3RyaW5nIHNvdXJjZSA9IHNjcmlwdHMuYXQoaSk7CisgICAgICAgIGlmIChzb3VyY2Uuc3RhcnRz
V2l0aChRTGF0aW4xU3RyaW5nKCJmaWxlOi8vLyIpKSkKKyAgICAgICAgICAgIHNvdXJjZSA9IFFV
cmwoc291cmNlKS50b0xvY2FsRmlsZSgpOworICAgICAgICBRRmlsZSBzb3VyY2VGaWxlKHNvdXJj
ZSk7CisgICAgICAgIGlmICghc291cmNlRmlsZS5vcGVuKFFJT0RldmljZTo6UmVhZE9ubHkgfCBR
SU9EZXZpY2U6OlRleHQpKSB7CisgICAgICAgICAgICBxV2FybmluZygiUVF1aWNrV2ViVmlldzog
Q291bGRuJ3Qgb3BlbiAnJXMnIGFzIHByZWxvYWRlZCBzY3JpcHQgZHVlIHRvIGVycm9yICclcyci
LCBxUHJpbnRhYmxlKHNvdXJjZSksIHFQcmludGFibGUoc291cmNlRmlsZS5lcnJvclN0cmluZygp
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgUVN0cmluZyBxQ29u
dGVudHMgPSBRU3RyaW5nOjpmcm9tVXRmOChzb3VyY2VGaWxlLnJlYWRBbGwoKSk7CisgICAgICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBjb250ZW50cyA9IFdLU3RyaW5nQ3JlYXRlV2l0aFFT
dHJpbmcocUNvbnRlbnRzKTsKKyAgICAgICAgV0tCdW5kbGVBZGRVc2VyU2NyaXB0KG1fYnVuZGxl
LT50b1JlZigpLCBwYWdlR3JvdXAoKSwgbm9ybWFsV29ybGQsIGNvbnRlbnRzLmdldCgpLCAwLCAw
LCAwLCBrV0tJbmplY3RBdERvY3VtZW50RW5kLCBrV0tJbmplY3RJblRvcEZyYW1lT25seSk7Cisg
ICAgfQorfQorCiB2b2lkIFF0QnVpbHRpbkJ1bmRsZVBhZ2U6OnJlZ2lzdGVyTmF2aWdhdG9yUXRP
YmplY3QoSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgc3RhdGljIEpTU3RyaW5n
UmVmIHBvc3RNZXNzYWdlTmFtZSA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJwb3N0
TWVzc2FnZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1
aWx0aW5CdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRp
bkJ1bmRsZVBhZ2UuaAppbmRleCAzZmZiM2YwMDg5MzNkY2RmODRiMWY0YmJlNjI4NWExMGQyZTFj
YTlmLi4wNWQ3ODY5MzE4YzJmNzllNTA5YzBkNzI5N2EyMGEyNWU4ZmEwMWE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTT2JqZWN0UmVmLmgiCiAjaW5jbHVkZSAiV0tCdW5k
bGVQYWdlLmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVTY3JpcHRXb3JsZC5oIgorI2luY2x1ZGUgPFFT
dHJpbmdMaXN0PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDEsNiArNDIsNyBAQCBwdWJs
aWM6CiAgICAgflF0QnVpbHRpbkJ1bmRsZVBhZ2UoKTsKIAogICAgIFdLQnVuZGxlUGFnZVJlZiBw
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CisgICAgV0tCdW5kbGVQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwKCkgY29uc3QgeyByZXR1cm4gV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKG1fcGFn
ZSk7IH0KIAogICAgIC8vIExvYWRlciBDbGllbnQuCiAgICAgc3RhdGljIHZvaWQgZGlkQ2xlYXJX
aW5kb3dGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLQnVuZGxl
U2NyaXB0V29ybGRSZWYsIGNvbnN0IHZvaWQqKTsKQEAgLTUzLDYgKzU1LDggQEAgcHVibGljOgog
ICAgIGJvb2wgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9uYXZp
Z2F0b3JRdE9iamVjdEVuYWJsZWQ7IH0KICAgICB2b2lkIHNldE5hdmlnYXRvclF0T2JqZWN0RW5h
YmxlZChib29sKTsKIAorICAgIHZvaWQgc2V0UHJlbG9hZGVkU2NyaXB0cyhjb25zdCBRU3RyaW5n
TGlzdCYpOworCiBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJOYXZpZ2F0b3JRdE9iamVjdChK
U0dsb2JhbENvbnRleHRSZWYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141470</attachid>
            <date>2012-05-11 12:34:54 -0700</date>
            <delta_ts>2012-05-21 06:57:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85827-20120511163457.patch</filename>
            <type>text/plain</type>
            <size>31137</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWVkZTRmNDU5YmE1YTc4
ZWY0MmQ0MmQxMGM4YTk3YTllMGEzZDMwNS4uZDQzMzAwMmY4NWI5MjM2OThmMjRjZTY2NDBiNDkw
ZDYwNGUxNzBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA1LTExICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW1F0XSBbV0syXSBBbGxvdyB1c2VyIHRvIGluamVjdCBKUyBzY3JpcHRzIHdo
ZW4gdGhlIHBhZ2UgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1ODI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3JlYXRlIGEgbmV3IGV4cGVyaW1lbnRhbCBwcm9wZXJ0eSB0byBsaXN0IFVSTHMg
b2YgSlMgc2NyaXB0cyB0aGF0IHNob3VsZCBiZQorICAgICAgICBsb2FkZWQgd2hlbiBhIHBhZ2Ug
aXMgbG9hZGVkLiBUaGVzZSBzY3JpcHRzIHdpbGwgcnVuIGluIHRoZSBub3JtYWwgSlMgZW52aXJv
bm1lbnQKKyAgICAgICAgb2YgdGhlIHBhZ2UuCisKKyAgICAgICAgVGhlIHN1cHBvcnRlZCBVUkwg
c2NoZW1lcyBhcmUgZmlsZTovLy8gYW5kIHFyYzovLy8uIFRoZSBzY3JpcHRzIGFyZSByZWFkIGZy
b20gdGhlCisgICAgICAgIFVJIHByb2Nlc3MgYW5kIHRyYW5zZmVyZWQgdG8gdGhlIFdlYiBwcm9j
ZXNzLgorCisgICAgICAgIFRvZ2V0aGVyIHdpdGggdGhlIGV4cGVyaW1lbnRhbCBtZXNzYWdpbmcg
QVBJIHRoaXMgcHJvdmlkZXMgYSB3YXkgZm9yIHRoZQorICAgICAgICBhcHBsaWNhdGlvbiB0byBt
YW5pcHVsYXRlIHRoZSBET00gKGJ5IGluamVjdGluZyBhIHNjcmlwdCB0aGF0IGRvZXMgdGhlCisg
ICAgICAgIG1hbmlwdWxhdGlvbiBhbmQgY29tbXVuaWNhdGluZyB3aXRoIGl0IHZpYSBwb3N0TWVz
c2FnZSkuIFRoaXMgY292ZXJzIHNvbWUgb2YgdGhlCisgICAgICAgIHVzZSBjYXNlcyBvZiBRV2Vi
RWxlbWVudCBpbiBvdXIgV0sxIEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZGlkUmVsYXVu
Y2hQcm9jZXNzKToKKyAgICAgICAgKHJlYWRVc2VyU2NyaXB0KToKKyAgICAgICAgKFFRdWlja1dl
YlZpZXdQcml2YXRlOjp1cGRhdGVVc2VyU2NyaXB0cyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3
RXhwZXJpbWVudGFsOjp1c2VyU2NyaXB0cyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RXhwZXJp
bWVudGFsOjpzZXRVc2VyU2NyaXB0cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cF9wLmg6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybzoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3VzZXJTY3JpcHRzLnFtbDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vYXBw
ZW5kLWRvY3VtZW50LXRpdGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9iaWctdXNlci1zY3JpcHQuanM6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2NoYW5nZS1kb2N1bWVu
dC10aXRsZS5qczogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9yZXNvdXJjZXMucXJjOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9X
ZWJQYWdlUHJveHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0VXNl
clNjcmlwdHMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L3F0L1dlYlBhZ2VRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFVzZXJTY3Jp
cHRzKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDUtMTEgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTE2MjA1KTogW0dU
S106IGJ1aWxkIG5vIGxvbmdlciBzdXBwb3J0cyB0aGluIGFyY2hpdmVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCAxNjdjNTBm
NmFiNWVhYjU1NzRkODgyYTAyODgzNDUxNWJiYzRjNGU4Li43MDNlYWI4MTU5MjQ5MWQzY2FlMWM4
Mzg1OTkxNmUzZWExMWMyMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0
ci5oPgogI2luY2x1ZGUgPFFEYXRlVGltZT4KKyNpbmNsdWRlIDxRdENvcmUvUUZpbGU+CiAjaW5j
bHVkZSA8UXRRbWwvUUpTVmFsdWU+CiAjaW5jbHVkZSA8V0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ci5oPgogI2luY2x1ZGUgPFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CkBAIC02Myw2ICs2NCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC00NTAsNiArNDUyLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZGlk
UmVsYXVuY2hQcm9jZXNzKCkKIAogICAgIHdlYlBhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKS0+c2V0
U2l6ZSh2aWV3U2l6ZSgpLCBJbnRTaXplKCkpOwogICAgIHVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwor
ICAgIHVwZGF0ZVVzZXJTY3JpcHRzKCk7CiB9CiAKIFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQcm94
eT4gUVF1aWNrV2ViVmlld1ByaXZhdGU6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQpAQCAtNjgz
LDYgKzY4Niw1MiBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXROYXZpZ2F0b3JRdE9i
amVjdEVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIGNvbnRleHQtPnNldE5hdmlnYXRvclF0T2Jq
ZWN0RW5hYmxlZCh3ZWJQYWdlUHJveHkuZ2V0KCksIGVuYWJsZWQpOwogfQogCitzdGF0aWMgUVN0
cmluZyByZWFkVXNlclNjcmlwdChjb25zdCBRVXJsJiB1cmwsIGJvb2wmIG9rKQoreworICAgIFFT
dHJpbmcgcGF0aDsKKyAgICBpZiAodXJsLmlzTG9jYWxGaWxlKCkpCisgICAgICAgIHBhdGggPSB1
cmwudG9Mb2NhbEZpbGUoKTsKKyAgICBlbHNlIGlmICh1cmwuc2NoZW1lKCkgPT0gUUxhdGluMVN0
cmluZygicXJjIikpCisgICAgICAgIHBhdGggPSBRU3RyaW5nTGl0ZXJhbCgiOiIpICsgdXJsLnBh
dGgoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgcVdhcm5pbmcoIlFRdWlja1dlYlZpZXc6IENvdWxk
bid0IG9wZW4gJyVzJyBhcyB1c2VyIHNjcmlwdCBiZWNhdXNlIG9ubHkgZmlsZTovLy8gYW5kIHFy
YzovLy8gVVJMcyBhcmUgc3VwcG9ydGVkLiIsIHFQcmludGFibGUodXJsLnRvU3RyaW5nKCkpKTsK
KyAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKKyAgICB9CisK
KyAgICBRRmlsZSBmaWxlKHBhdGgpOworICAgIGlmICghZmlsZS5vcGVuKFFJT0RldmljZTo6UmVh
ZE9ubHkgfCBRSU9EZXZpY2U6OlRleHQpKSB7CisgICAgICAgIHFXYXJuaW5nKCJRUXVpY2tXZWJW
aWV3OiBDb3VsZG4ndCBvcGVuICclcycgYXMgdXNlciBzY3JpcHQgZHVlIHRvIGVycm9yICclcyci
LCBxUHJpbnRhYmxlKHVybC50b1N0cmluZygpKSwgcVByaW50YWJsZShmaWxlLmVycm9yU3RyaW5n
KCkpKTsKKyAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKKyAg
ICB9CisKKyAgICBvayA9IHRydWU7CisgICAgcmV0dXJuIFFTdHJpbmc6OmZyb21VdGY4KGZpbGUu
cmVhZEFsbCgpKTsKK30KKwordm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlVXNlclNj
cmlwdHMoKQoreworICAgIFZlY3RvcjxTdHJpbmc+IHNjcmlwdHM7CisgICAgc2NyaXB0cy5yZXNl
cnZlQ2FwYWNpdHkodXNlclNjcmlwdHMuc2l6ZSgpKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCB1c2VyU2NyaXB0cy5zaXplKCk7ICsraSkgeworICAgICAgICBjb25zdCBRVXJsJiB1
cmwgPSB1c2VyU2NyaXB0cy5hdChpKTsKKyAgICAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKSB7Cisg
ICAgICAgICAgICBxV2FybmluZygiUVF1aWNrV2ViVmlldzogQ291bGRuJ3Qgb3BlbiAnJXMnIGFz
IHVzZXIgc2NyaXB0IGJlY2F1c2UgVVJMIGlzIGludmFsaWQuIiwgcVByaW50YWJsZSh1cmwudG9T
dHJpbmcoKSkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBi
b29sIG9rID0gZmFsc2U7CisgICAgICAgIFFTdHJpbmcgY29udGVudHMgPSByZWFkVXNlclNjcmlw
dCh1cmwsIG9rKTsKKyAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBzY3JpcHRzLmFwcGVuZChTdHJpbmcoY29udGVudHMpKTsKKyAgICB9CisKKyAgICB3ZWJQ
YWdlUHJveHktPnNldFVzZXJTY3JpcHRzKHNjcmlwdHMpOworfQorCiBRUG9pbnRGIFFRdWlja1dl
YlZpZXdQcml2YXRlOjpjb250ZW50UG9zKCkgY29uc3QKIHsKICAgICBRX1EoY29uc3QgUVF1aWNr
V2ViVmlldyk7CkBAIC0xMzMzLDYgKzEzODIsMjIgQEAgdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJp
bWVudGFsOjpldmFsdWF0ZUphdmFTY3JpcHQoY29uc3QgUVN0cmluZyYgc2NyaXB0LCBjb25zdAog
ICAgIGRfcHRyLT53ZWJQYWdlUHJveHkuZ2V0KCktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShz
Y3JpcHQsIFNjcmlwdFZhbHVlQ2FsbGJhY2s6OmNyZWF0ZShjbG9zdXJlLCBqYXZhU2NyaXB0Q2Fs
bGJhY2spKTsKIH0KIAorUUxpc3Q8UVVybD4gUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6dXNl
clNjcmlwdHMoKSBjb25zdAoreworICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICBy
ZXR1cm4gZC0+dXNlclNjcmlwdHM7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRh
bDo6c2V0VXNlclNjcmlwdHMoY29uc3QgUUxpc3Q8UVVybD4mIHVzZXJTY3JpcHRzKQoreworICAg
IFFfRChRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoZC0+dXNlclNjcmlwdHMgPT0gdXNlclNjcmlw
dHMpCisgICAgICAgIHJldHVybjsKKyAgICBkLT51c2VyU2NyaXB0cyA9IHVzZXJTY3JpcHRzOwor
ICAgIGQtPnVwZGF0ZVVzZXJTY3JpcHRzKCk7CisgICAgZW1pdCB1c2VyU2NyaXB0c0NoYW5nZWQo
KTsKK30KKwogUVF1aWNrVXJsU2NoZW1lRGVsZWdhdGUqIFFRdWlja1dlYlZpZXdFeHBlcmltZW50
YWw6OnNjaGVtZURlbGVnYXRlc19BdChRUW1sTGlzdFByb3BlcnR5PFFRdWlja1VybFNjaGVtZURl
bGVnYXRlPiogcHJvcGVydHksIGludCBpbmRleCkKIHsKICAgICBjb25zdCBRT2JqZWN0TGlzdCBj
aGlsZHJlbiA9IHByb3BlcnR5LT5vYmplY3QtPmNoaWxkcmVuKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCA0YmRkMGZiYmQz
ZTJiNTcyMmMyZTUyNmRjODI2ZGM2N2NjYTgwODVhLi5jYTg4NDMzMTQyZmYwNGYwM2Y0MTM2YWJh
NjBlYTA4ZTcwMWExMDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTI2Nyw2ICsyNjcsNyBAQCBjbGFzcyBRV0VCS0lUX0VY
UE9SVCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsIDogcHVibGljIFFPYmplY3QgewogICAgIFFf
UFJPUEVSVFkoUVFtbExpc3RQcm9wZXJ0eTxRUXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZT4gdXJsU2No
ZW1lRGVsZWdhdGVzIFJFQUQgc2NoZW1lRGVsZWdhdGVzKQogICAgIFFfUFJPUEVSVFkoUVN0cmlu
ZyB1c2VyQWdlbnQgUkVBRCB1c2VyQWdlbnQgV1JJVEUgc2V0VXNlckFnZW50IE5PVElGWSB1c2Vy
QWdlbnRDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoZG91YmxlIGRldmljZVBpeGVsUmF0aW8gUkVB
RCBkZXZpY2VQaXhlbFJhdGlvIFdSSVRFIHNldERldmljZVBpeGVsUmF0aW8gTk9USUZZIGRldmlj
ZVBpeGVsUmF0aW9DaGFuZ2VkKQorICAgIFFfUFJPUEVSVFkoUUxpc3Q8UVVybD4gdXNlclNjcmlw
dHMgUkVBRCB1c2VyU2NyaXB0cyBXUklURSBzZXRVc2VyU2NyaXB0cyBOT1RJRlkgdXNlclNjcmlw
dHNDaGFuZ2VkKQogICAgIFFfRU5VTVMoTmF2aWdhdGlvblJlcXVlc3RBY3Rpb25FeHBlcmltZW50
YWwpCiAKIHB1YmxpYzoKQEAgLTI5OSw2ICszMDAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRV
c2VyQWdlbnQoY29uc3QgUVN0cmluZyYgdXNlckFnZW50KTsKICAgICBkb3VibGUgZGV2aWNlUGl4
ZWxSYXRpbygpIGNvbnN0OwogICAgIHZvaWQgc2V0RGV2aWNlUGl4ZWxSYXRpbyhkb3VibGUpOwor
ICAgIFFMaXN0PFFVcmw+IHVzZXJTY3JpcHRzKCkgY29uc3Q7CisgICAgdm9pZCBzZXRVc2VyU2Ny
aXB0cyhjb25zdCBRTGlzdDxRVXJsPiYgdXNlclNjcmlwdHMpOwogCiAgICAgUVdlYlZpZXdwb3J0
SW5mbyogdmlld3BvcnRJbmZvKCk7CiAKQEAgLTM1Miw2ICszNTUsNyBAQCBRX1NJR05BTFM6CiAg
ICAgdm9pZCBkZXZpY2VQaXhlbFJhdGlvQ2hhbmdlZCgpOwogICAgIHZvaWQgZW50ZXJGdWxsU2Ny
ZWVuUmVxdWVzdGVkKCk7CiAgICAgdm9pZCBleGl0RnVsbFNjcmVlblJlcXVlc3RlZCgpOworICAg
IHZvaWQgdXNlclNjcmlwdHNDaGFuZ2VkKCk7CiAKIHByaXZhdGU6CiAgICAgUVF1aWNrV2ViVmll
dyogcV9wdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmgKaW5kZXggZGU2MmQzOWJiMzFmZTJhMDkzODUwOTNjNTczMjA0YjczMzgy
Nzk0ZC4uNWY5Nzg4N2JjY2EwOTY2MzZmY2I0MjY5ZDVkMzM3YWI3NGQ0MDg5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApA
QCAtMTI3LDYgKzEyNyw3IEBAIHB1YmxpYzoKICAgICBib29sIHJlbmRlclRvT2Zmc2NyZWVuQnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcjsgfQogICAgIGJv
b2wgdHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzZXROYXZpZ2F0b3JR
dE9iamVjdEVuYWJsZWQoYm9vbCk7CisgICAgdm9pZCB1cGRhdGVVc2VyU2NyaXB0cygpOwogCiAg
ICAgUVBvaW50RiBjb250ZW50UG9zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDb250ZW50UG9zKGNv
bnN0IFFQb2ludEYmKTsKQEAgLTE5NSw2ICsxOTYsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBXZWJD
b3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlczsKIAorICAgIFFMaXN0PFFVcmw+IHVz
ZXJTY3JpcHRzOworCiAgICAgYm9vbCBtX3VzZURlZmF1bHRDb250ZW50SXRlbVNpemU7CiAgICAg
Ym9vbCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZDsKICAgICBib29sIG1fcmVuZGVyVG9PZmZz
Y3JlZW5CdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybwppbmRleCA1NzMwN2YwN2EwZWUxYWY4MWJj
ZTY1OTE2YzBmMTc4ODc5YjA0MTM0Li5jMzRiZDNjMTFmM2Q3NGMyNGQ1ZTFhY2ZmY2ZmYmYwZjli
ZjUzN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL1dlYlZpZXcucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy5wcm8KQEAgLTI1LDcgKzI1LDEwIEBAIE9USEVSX0ZJ
TEVTICs9IFwKICAgICBXZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3MucW1sIFwKICAgICBXZWJWaWV3
L3RzdF9sb2FkUHJvZ3Jlc3NTaWduYWwucW1sIFwKICAgICBXZWJWaWV3L3RzdF9wcmVmZXJlbmNl
cy5xbWwgXAorICAgIFdlYlZpZXcvdHN0X3VzZXJTY3JpcHRzLnFtbCBcCiAgICAgV2ViVmlldy90
c3RfcHJvcGVydGllcy5xbWwgXAogICAgIFdlYlZpZXcvdHN0X3RpdGxlQ2hhbmdlZC5xbWwgXAog
ICAgIFdlYlZpZXcvdHN0X2FwcGxpY2F0aW9uU2NoZW1lLnFtbCBcCiAgICAgV2ViVmlldy90c3Rf
b3JpZ2luLnFtbAorCitSRVNPVVJDRVMgPSByZXNvdXJjZXMucXJjCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3Vz
ZXJTY3JpcHRzLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvV2ViVmlldy90c3RfdXNlclNjcmlwdHMucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMTVhY2EwNTNh
YWYwOWYwMDA3YjkwNzE4ZmM2MWVkYTIxNmFkZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3VzZXJT
Y3JpcHRzLnFtbApAQCAtMCwwICsxLDExMyBAQAoraW1wb3J0IFF0UXVpY2sgMi4wCitpbXBvcnQg
UXRUZXN0IDEuMAoraW1wb3J0IFF0V2ViS2l0IDMuMAoraW1wb3J0IFF0V2ViS2l0LmV4cGVyaW1l
bnRhbCAxLjAKK2ltcG9ydCAiLi4vY29tbW9uIgorCitJdGVtIHsKKyAgICBUZXN0V2ViVmlldyB7
CisgICAgICAgIGlkOiB3ZWJWaWV3CisgICAgICAgIHdpZHRoOiA0MDAKKyAgICAgICAgaGVpZ2h0
OiAzMDAKKyAgICB9CisKKyAgICBUZXN0V2ViVmlldyB7CisgICAgICAgIGlkOiB3ZWJWaWV3V2l0
aENvbmRpdGlvbmFsVXNlclNjcmlwdHMKKyAgICAgICAgd2lkdGg6IDQwMAorICAgICAgICBoZWln
aHQ6IDMwMAorCisgICAgICAgIG9uTmF2aWdhdGlvblJlcXVlc3RlZDogeworICAgICAgICAgICAg
dmFyIHVybFN0cmluZyA9IHJlcXVlc3QudXJsLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAo
dXJsU3RyaW5nLmluZGV4T2YoInRlc3QxLmh0bWwiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAg
ZXhwZXJpbWVudGFsLnVzZXJTY3JpcHRzID0gW1F0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vY2hh
bmdlLWRvY3VtZW50LXRpdGxlLmpzIildOworICAgICAgICAgICAgZWxzZSBpZiAodXJsU3RyaW5n
LmluZGV4T2YoInRlc3QyLmh0bWwiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgZXhwZXJpbWVu
dGFsLnVzZXJTY3JpcHRzID0gW1F0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vYXBwZW5kLWRvY3Vt
ZW50LXRpdGxlLmpzIildOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV4cGVy
aW1lbnRhbC51c2VyU2NyaXB0cyA9IFtdOworICAgICAgICB9CisgICAgfQorCisgICAgVGVzdENh
c2UgeworICAgICAgICBuYW1lOiAiV2ViVmlld1VzZXJTY3JpcHRzIgorCisgICAgICAgIGZ1bmN0
aW9uIGluaXQoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICIiOworICAgICAgICAgICAg
d2ViVmlldy5leHBlcmltZW50YWwudXNlclNjcmlwdHMgPSBbXTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHRlc3Rfb25lU2NyaXB0KCkgeworICAgICAgICAgICAgd2ViVmlldy51cmwg
PSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QxLmh0bWwiKTsKKyAgICAgICAgICAgIHdl
YlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmll
dy50aXRsZSwgIlRlc3QgcGFnZSAxIik7CisKKyAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVu
dGFsLnVzZXJTY3JpcHRzID0gW1F0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vY2hhbmdlLWRvY3Vt
ZW50LXRpdGxlLmpzIildOworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiVGVz
dCBwYWdlIDEiKTsKKworICAgICAgICAgICAgd2ViVmlldy5yZWxvYWQoKTsKKyAgICAgICAgICAg
IHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKTsKKyAgICAgICAgICAgIGNvbXBhcmUod2Vi
Vmlldy50aXRsZSwgIk5ldyB0aXRsZSIpOworCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0
LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDIuaHRtbCIpOworICAgICAgICAgICAgd2ViVmll
dy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRp
dGxlLCAiTmV3IHRpdGxlIik7CisKKyAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnVz
ZXJTY3JpcHRzID0gW107CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJOZXcg
dGl0bGUiKTsKKworICAgICAgICAgICAgd2ViVmlldy5yZWxvYWQoKTsKKyAgICAgICAgICAgIHdl
YlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmll
dy50aXRsZSwgIlRlc3QgcGFnZSB3aXRoIGh1Z2UgbGluayBhcmVhIik7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiB0ZXN0X3R3b1NjcmlwdHMoKSB7CisgICAgICAgICAgICB3ZWJWaWV3
LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIpOworICAgICAgICAg
ICAgd2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAgY29tcGFyZSh3
ZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEiKTsKKworICAgICAgICAgICAgd2ViVmlldy5leHBl
cmltZW50YWwudXNlclNjcmlwdHMgPSBbUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9jaGFuZ2Ut
ZG9jdW1lbnQtdGl0bGUuanMiKSwgUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9hcHBlbmQtZG9j
dW1lbnQtdGl0bGUuanMiKV07CisgICAgICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpOworICAgICAg
ICAgICAgd2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAgY29tcGFy
ZSh3ZWJWaWV3LnRpdGxlLCAiTmV3IHRpdGxlIHdpdGggYXBwZW5kaXgiKTsKKworICAgICAgICAg
ICAgLy8gTWFrZSBzdXJlIHdlIGNhbiByZW1vdmUgc2NyaXB0cyBmcm9tIHRoZSBwcmVsb2FkIGxp
c3QuCisgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC51c2VyU2NyaXB0cyA9IFtRdC5y
ZXNvbHZlZFVybCgiLi4vY29tbW9uL2FwcGVuZC1kb2N1bWVudC10aXRsZS5qcyIpXTsKKyAgICAg
ICAgICAgIHdlYlZpZXcucmVsb2FkKCk7CisgICAgICAgICAgICB3ZWJWaWV3LndhaXRGb3JMb2Fk
U3VjY2VlZGVkKCk7CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJUZXN0IHBh
Z2UgMSB3aXRoIGFwcGVuZGl4Iik7CisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgc2Ny
aXB0cyBhcmUgbG9hZGVkIGluIG9yZGVyLgorICAgICAgICAgICAgd2ViVmlldy5leHBlcmltZW50
YWwudXNlclNjcmlwdHMgPSBbUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9hcHBlbmQtZG9jdW1l
bnQtdGl0bGUuanMiKSwgUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9jaGFuZ2UtZG9jdW1lbnQt
dGl0bGUuanMiKV07CisgICAgICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpOworICAgICAgICAgICAg
d2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAgY29tcGFyZSh3ZWJW
aWV3LnRpdGxlLCAiTmV3IHRpdGxlIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0
ZXN0X3NldFVzZXJTY3JpcHRzQ29uZGl0aW9uYWxseSgpIHsKKyAgICAgICAgICAgIHdlYlZpZXdX
aXRoQ29uZGl0aW9uYWxVc2VyU2NyaXB0cy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9u
L3Rlc3QxLmh0bWwiKTsKKyAgICAgICAgICAgIHdlYlZpZXdXaXRoQ29uZGl0aW9uYWxVc2VyU2Ny
aXB0cy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3
V2l0aENvbmRpdGlvbmFsVXNlclNjcmlwdHMudGl0bGUsICJOZXcgdGl0bGUiKTsKKworICAgICAg
ICAgICAgd2ViVmlld1dpdGhDb25kaXRpb25hbFVzZXJTY3JpcHRzLnVybCA9IFF0LnJlc29sdmVk
VXJsKCIuLi9jb21tb24vdGVzdDIuaHRtbCIpOworICAgICAgICAgICAgd2ViVmlld1dpdGhDb25k
aXRpb25hbFVzZXJTY3JpcHRzLndhaXRGb3JMb2FkU3VjY2VlZGVkKCk7CisgICAgICAgICAgICBj
b21wYXJlKHdlYlZpZXdXaXRoQ29uZGl0aW9uYWxVc2VyU2NyaXB0cy50aXRsZSwgIlRlc3QgcGFn
ZSB3aXRoIGh1Z2UgbGluayBhcmVhIHdpdGggYXBwZW5kaXgiKTsKKworICAgICAgICAgICAgd2Vi
Vmlld1dpdGhDb25kaXRpb25hbFVzZXJTY3JpcHRzLnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9j
b21tb24vdGVzdDMuaHRtbCIpOworICAgICAgICAgICAgd2ViVmlld1dpdGhDb25kaXRpb25hbFVz
ZXJTY3JpcHRzLndhaXRGb3JMb2FkU3VjY2VlZGVkKCk7CisgICAgICAgICAgICBjb21wYXJlKHdl
YlZpZXdXaXRoQ29uZGl0aW9uYWxVc2VyU2NyaXB0cy50aXRsZSwgIlRlc3QgcGFnZSAzIik7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X2JpZ1NjcmlwdCgpIHsKKyAgICAgICAg
ICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnVzZXJTY3JpcHRzID0gW1F0LnJlc29sdmVkVXJsKCIu
Li9jb21tb24vYmlnLXVzZXItc2NyaXB0LmpzIildOworICAgICAgICAgICAgd2ViVmlldy51cmwg
PSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QxLmh0bWwiKTsKKyAgICAgICAgICAgIHdl
YlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmll
dy50aXRsZSwgIkJpZyB1c2VyIHNjcmlwdCBjaGFuZ2VkIHRpdGxlIik7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiB0ZXN0X2Zyb21SZXNvdXJjZUZpbGUoKSB7CisgICAgICAgICAgICB3
ZWJWaWV3LmV4cGVyaW1lbnRhbC51c2VyU2NyaXB0cyA9IFsicXJjOi8vL2NvbW1vbi9jaGFuZ2Ut
ZG9jdW1lbnQtdGl0bGUuanMiXTsKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2
ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIik7CisgICAgICAgICAgICB3ZWJWaWV3LndhaXRG
b3JMb2FkU3VjY2VlZGVkKCk7CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJO
ZXcgdGl0bGUiKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2FwcGVuZC1kb2N1bWVu
dC10aXRsZS5qcyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvY29tbW9uL2FwcGVuZC1kb2N1bWVudC10aXRsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjRhMmE2ZjIx
OThjMmY0YTYzNzU0ZTlhZGViYmIwOTQzMzMyZGEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vYXBwZW5kLWRv
Y3VtZW50LXRpdGxlLmpzCkBAIC0wLDAgKzEgQEAKK2RvY3VtZW50LnRpdGxlICs9ICIgd2l0aCBh
cHBlbmRpeCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL2NvbW1vbi9iaWctdXNlci1zY3JpcHQuanMgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9iaWctdXNlci1zY3JpcHQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTZlM2QyYjQ0ZGNkMTk0MWYxM2NhYTRiODZjMGE4ZjM3YWNkYmU2YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvY29tbW9uL2JpZy11c2VyLXNjcmlwdC5qcwpAQCAtMCwwICsxLDExMCBAQAorLy8gVXNl
ZCB0byBtYWtlIHN1cmUgc2VyaWFsaXphdGlvbiBvZiB1c2VyIHNjcmlwdHMgYmV0d2VlbiBVSSBw
cm9jZXNzIGFuZCBXZWIgcHJvY2VzcyBjYW4gaGFuZGxlIGZpbGVzIGJpZ2dlcgorLy8gdGhhbiB0
aGUgbWF4aW11bSBtZXNzYWdlIHNpemUgZGVmaW5lZCBpbiBDb25uZWN0aW9uWFhYIGNsYXNzZXMu
CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworZG9jdW1lbnQudGl0bGUgPSAiQmlnIHVzZXIg
c2NyaXB0IGNoYW5nZWQgdGl0bGUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vY2hhbmdlLWRvY3VtZW50LXRpdGxlLmpz
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24v
Y2hhbmdlLWRvY3VtZW50LXRpdGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYWU0NWMyMWYzYjZjZjJlNjZh
Mzc0NTY3ZTA2NDUyYWU3NTZlMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9jaGFuZ2UtZG9jdW1lbnQtdGl0
bGUuanMKQEAgLTAsMCArMSBAQAorZG9jdW1lbnQudGl0bGUgPSAiTmV3IHRpdGxlIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcmVz
b3VyY2VzLnFyYyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvcmVzb3VyY2VzLnFyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjk2YWFhYzEwMThmY2FmMzczY2NlODgzN2I3
MDgwMDdlN2JhZjAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9yZXNvdXJjZXMucXJjCkBAIC0wLDAgKzEsNSBAQAorPFJD
Qz4KKyAgICA8cXJlc291cmNlIHByZWZpeD0iLyI+CisgICAgICAgIDxmaWxlPmNvbW1vbi9jaGFu
Z2UtZG9jdW1lbnQtdGl0bGUuanM8L2ZpbGU+CisgICAgPC9xcmVzb3VyY2U+Cis8L1JDQz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlZjMzMWZjN2Q3MzViNzIy
YzViMWJmMWMxMTc4NWY4MDdlMWM1ODRkLi5kMWUwYTgyYWZkNjU4Yzk5M2MyZjc5NzJhZjFmMDg2
YzBiZjZiOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0z
MzIsNiArMzMyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXV0aGVudGljYXRpb25SZXF1aXJlZFJl
cXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29uc3Qg
U3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNz
d29yZCk7CiAgICAgdm9pZCBjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblJlcXVlc3QoY29uc3QgU3Ry
aW5nJiBob3N0bmFtZSwgYm9vbCYgaWdub3JlRXJyb3JzKTsKICAgICB2b2lkIHByb3h5QXV0aGVu
dGljYXRpb25SZXF1aXJlZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgdWludDE2X3Qg
cG9ydCwgY29uc3QgU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwg
U3RyaW5nJiBwYXNzd29yZCk7CisgICAgdm9pZCBzZXRVc2VyU2NyaXB0cyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYpOwogI2VuZGlmIC8vIFBMQVRGT1JNKFFUKS4KIAogI2lmIFBMQVRGT1JNKFFUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAKaW5kZXgg
YWUzYzRhYWI2N2FkMTMzOGM1N2UxMGFlN2M5ZjBiNmRlNDM0MmZjYy4uNWNhZmFkNTljNjg5YzM4
MjQ2NGI4MDcxOTA0YjA1MjllNzVlNWJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwCkBAIC0xMDIsNiArMTAyLDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZW5kQXBwbGljYXRpb25TY2hlbWVSZXBseShjb25zdCBRUXVpY2tOZXR3b3JrUmVw
bHkqIHJlcGx5KQogICAgIH0KIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldFVzZXJTY3JpcHRz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzY3JpcHRzKQoreworICAgIHByb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlclNjcmlwdHMoc2NyaXB0cyksIG1fcGFnZUlEKTsKK30K
KwogI2lmIFBMVUdJTl9BUkNISVRFQ1RVUkUoWDExKQogdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0
ZVBsdWdpbkNvbnRhaW5lcih1aW50NjRfdCYgd2luZG93SUQpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBkMThjNDAxYmY0ZjI1N2RlYzVhZmFj
NmJiOTIwZjJhOTAyMzIwNThjLi42ZTU2YTk5Y2U0NzdjMDNiMjY2OGM2Zjc5NzI3OGM3NjhmMGFh
YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTUyMCw2ICs1MjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlckFwcGxpY2F0aW9uU2No
ZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKICAgICB2b2lkIGFwcGxpY2F0aW9uU2NoZW1lUmVw
bHkoY29uc3QgUXROZXR3b3JrUmVwbHlEYXRhJik7CiAgICAgdm9pZCByZWNlaXZlZEFwcGxpY2F0
aW9uU2NoZW1lUmVxdWVzdChjb25zdCBRTmV0d29ya1JlcXVlc3QmLCBRdE5ldHdvcmtSZXBseSop
OworICAgIHZvaWQgc2V0VXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICNlbmRp
ZgogICAgIHZvaWQgd2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50Jik7CiAjaWYgRU5BQkxF
KEdFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA4MzgxZjI2MDNiMmE1MTMxMTZmNDY0YTIz
Y2FiZDdlMzFmYjBkZGYzLi41YjRhNzFjNzQ2N2I2NzJlMTdkOTM5MTNhNjdmMGIzMDMzY2E0ZmRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtNjgsNiArNjgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICNp
ZiBQTEFURk9STShRVCkKICAgICBBcHBsaWNhdGlvblNjaGVtZVJlcGx5KFdlYktpdDo6UXROZXR3
b3JrUmVwbHlEYXRhIHJlcGx5KQogICAgIFJlZ2lzdGVyQXBwbGljYXRpb25TY2hlbWUoV1RGOjpT
dHJpbmcgc2NoZW1lKQorICAgIFNldFVzZXJTY3JpcHRzKFdURjo6VmVjdG9yPFdURjo6U3RyaW5n
PiBzY3JpcHQpCiAjZW5kaWYKIAogICAgIFN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQ
YWdlUXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VR
dC5jcHAKaW5kZXggNzE4MGE4Yzg4MzYwNjlkNzY4ZGNmMDk3MTYxNTZhMGJiNTY2MDRiZC4uNDE3
MGY1NWMzNGM2NWU3YTljNTRmMzk0ODE1ZGI5NTA1ZDAwZTRkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAKQEAgLTMyLDEwICsz
MiwxMiBAQAogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9ET01X
cmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91
cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTQx
MSw0ICs0MTMsMTMgQEAgdm9pZCBXZWJQYWdlOjphcHBsaWNhdGlvblNjaGVtZVJlcGx5KGNvbnN0
IFF0TmV0d29ya1JlcGx5RGF0YSYgcmVwbHlEYXRhKQogICAgIG5ldHdvcmtSZXBseS0+ZmluYWxp
emUoKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRVc2VyU2NyaXB0cyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgc2NyaXB0cykKK3sKKyAgICAvLyBUaGlzIHdvcmtzIGJlY2F1c2Ugd2Uga2VlcCBhbiB1
bmlxdWUgcGFnZSBncm91cCBmb3IgZWFjaCBQYWdlLgorICAgIFBhZ2VHcm91cCogcGFnZUdyb3Vw
ID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAodGhpcy0+cGFnZUdyb3VwKCktPmlkZW50aWZpZXIoKSk7
CisgICAgcGFnZUdyb3VwLT5yZW1vdmVVc2VyU2NyaXB0c0Zyb21Xb3JsZChtYWluVGhyZWFkTm9y
bWFsV29ybGQoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNjcmlwdHMuc2l6ZSgp
OyArK2kpCisgICAgICAgIHBhZ2VHcm91cC0+YWRkVXNlclNjcmlwdFRvV29ybGQobWFpblRocmVh
ZE5vcm1hbFdvcmxkKCksIHNjcmlwdHMuYXQoaSksIEtVUkwoKSwgbnVsbHB0ciwgbnVsbHB0ciwg
SW5qZWN0QXREb2N1bWVudEVuZCwgSW5qZWN0SW5Ub3BGcmFtZU9ubHkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143024</attachid>
            <date>2012-05-21 06:56:07 -0700</date>
            <delta_ts>2012-05-29 00:58:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85827-20120521105606.patch</filename>
            <type>text/plain</type>
            <size>31054</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3Nzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2ViYzgyNDhjYmRmYjA5
ZGE1OWY5MzQzZGVhODk1N2VlZGQ2ZjMxZi4uMmQzMDJlYTM5NWRiNzE5YTc1YzY3ODBlMjU2ZmRi
NDMyNjg3ZTJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA1LTIxICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW1F0XSBbV0syXSBBbGxvdyB1c2VyIHRvIGluamVjdCBKUyBzY3JpcHRzIHdo
ZW4gdGhlIHBhZ2UgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1ODI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3JlYXRlIGEgbmV3IGV4cGVyaW1lbnRhbCBwcm9wZXJ0eSB0byBsaXN0IFVSTHMg
b2YgSlMgc2NyaXB0cyB0aGF0IHNob3VsZCBiZQorICAgICAgICBsb2FkZWQgd2hlbiBhIHBhZ2Ug
aXMgbG9hZGVkLiBUaGVzZSBzY3JpcHRzIHdpbGwgcnVuIGluIHRoZSBub3JtYWwgSlMgZW52aXJv
bm1lbnQKKyAgICAgICAgb2YgdGhlIHBhZ2UuCisKKyAgICAgICAgVGhlIHN1cHBvcnRlZCBVUkwg
c2NoZW1lcyBhcmUgZmlsZTovLy8gYW5kIHFyYzovLy8uIFRoZSBzY3JpcHRzIGFyZSByZWFkIGZy
b20gdGhlCisgICAgICAgIFVJIHByb2Nlc3MgYW5kIHRyYW5zZmVyZWQgdG8gdGhlIFdlYiBwcm9j
ZXNzLgorCisgICAgICAgIFRvZ2V0aGVyIHdpdGggdGhlIGV4cGVyaW1lbnRhbCBtZXNzYWdpbmcg
QVBJIHRoaXMgcHJvdmlkZXMgYSB3YXkgZm9yIHRoZQorICAgICAgICBhcHBsaWNhdGlvbiB0byBt
YW5pcHVsYXRlIHRoZSBET00gKGJ5IGluamVjdGluZyBhIHNjcmlwdCB0aGF0IGRvZXMgdGhlCisg
ICAgICAgIG1hbmlwdWxhdGlvbiBhbmQgY29tbXVuaWNhdGluZyB3aXRoIGl0IHZpYSBwb3N0TWVz
c2FnZSkuIFRoaXMgY292ZXJzIHNvbWUgb2YgdGhlCisgICAgICAgIHVzZSBjYXNlcyBvZiBRV2Vi
RWxlbWVudCBpbiBvdXIgV0sxIEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZGlkUmVsYXVu
Y2hQcm9jZXNzKToKKyAgICAgICAgKHJlYWRVc2VyU2NyaXB0KToKKyAgICAgICAgKFFRdWlja1dl
YlZpZXdQcml2YXRlOjp1cGRhdGVVc2VyU2NyaXB0cyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3
RXhwZXJpbWVudGFsOjp1c2VyU2NyaXB0cyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RXhwZXJp
bWVudGFsOjpzZXRVc2VyU2NyaXB0cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cF9wLmg6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybzoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3VzZXJTY3JpcHRzLnFtbDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vYXBw
ZW5kLWRvY3VtZW50LXRpdGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9iaWctdXNlci1zY3JpcHQuanM6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2NoYW5nZS1kb2N1bWVu
dC10aXRsZS5qczogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9yZXNvdXJjZXMucXJjOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9X
ZWJQYWdlUHJveHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0VXNl
clNjcmlwdHMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L3F0L1dlYlBhZ2VRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFVzZXJTY3Jp
cHRzKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDUtMjAgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBHQ2FuY2VsbGFi
bGUgcGFyYW1ldGVyIHRvIGFsbCBtZXRob2RzIHVzaW5nIGdpbyBhc3luYyBwYXR0ZXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRl
eCA5MzU4NDIxNDY0MDZlMzRlMzllY2E0ODI1NWNhYjI5NmY3NWI3YzQ1Li44OTg1NzY2ODJjYTZj
ZTUzMmRhNTExN2QxMzI5MTQxZjlmZTg3YWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U1JldGFpblB0ci5oPgogI2luY2x1ZGUgPFFEYXRlVGltZT4KKyNpbmNsdWRlIDxRdENvcmUvUUZp
bGU+CiAjaW5jbHVkZSA8UXRRbWwvUUpTVmFsdWU+CiAjaW5jbHVkZSA8V0tPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CkBAIC02
MSw2ICs2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC00NDksNiArNDUxLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6ZGlkUmVsYXVuY2hQcm9jZXNzKCkKIAogICAgIHdlYlBhZ2VQcm94eS0+ZHJhd2luZ0Fy
ZWEoKS0+c2V0U2l6ZSh2aWV3U2l6ZSgpLCBJbnRTaXplKCkpOwogICAgIHVwZGF0ZVZpZXdwb3J0
U2l6ZSgpOworICAgIHVwZGF0ZVVzZXJTY3JpcHRzKCk7CiB9CiAKIFBhc3NPd25QdHI8RHJhd2lu
Z0FyZWFQcm94eT4gUVF1aWNrV2ViVmlld1ByaXZhdGU6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHko
KQpAQCAtNjczLDYgKzY3Niw1MiBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXROYXZp
Z2F0b3JRdE9iamVjdEVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIGNvbnRleHQtPnNldE5hdmln
YXRvclF0T2JqZWN0RW5hYmxlZCh3ZWJQYWdlUHJveHkuZ2V0KCksIGVuYWJsZWQpOwogfQogCitz
dGF0aWMgUVN0cmluZyByZWFkVXNlclNjcmlwdChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgUVN0
cmluZyBwYXRoOworICAgIGlmICh1cmwuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgcGF0aCA9IHVy
bC50b0xvY2FsRmlsZSgpOworICAgIGVsc2UgaWYgKHVybC5zY2hlbWUoKSA9PSBRTGF0aW4xU3Ry
aW5nKCJxcmMiKSkKKyAgICAgICAgcGF0aCA9IFFTdHJpbmdMaXRlcmFsKCI6IikgKyB1cmwucGF0
aCgpOworICAgIGVsc2UgeworICAgICAgICBxV2FybmluZygiUVF1aWNrV2ViVmlldzogQ291bGRu
J3Qgb3BlbiAnJXMnIGFzIHVzZXIgc2NyaXB0IGJlY2F1c2Ugb25seSBmaWxlOi8vLyBhbmQgcXJj
Oi8vLyBVUkxzIGFyZSBzdXBwb3J0ZWQuIiwgcVByaW50YWJsZSh1cmwudG9TdHJpbmcoKSkpOwor
ICAgICAgICByZXR1cm4gUVN0cmluZygpOworICAgIH0KKworICAgIFFGaWxlIGZpbGUocGF0aCk7
CisgICAgaWYgKCFmaWxlLm9wZW4oUUlPRGV2aWNlOjpSZWFkT25seSB8IFFJT0RldmljZTo6VGV4
dCkpIHsKKyAgICAgICAgcVdhcm5pbmcoIlFRdWlja1dlYlZpZXc6IENvdWxkbid0IG9wZW4gJyVz
JyBhcyB1c2VyIHNjcmlwdCBkdWUgdG8gZXJyb3IgJyVzJy4iLCBxUHJpbnRhYmxlKHVybC50b1N0
cmluZygpKSwgcVByaW50YWJsZShmaWxlLmVycm9yU3RyaW5nKCkpKTsKKyAgICAgICAgcmV0dXJu
IFFTdHJpbmcoKTsKKyAgICB9CisKKyAgICBRU3RyaW5nIGNvbnRlbnRzID0gUVN0cmluZzo6ZnJv
bVV0ZjgoZmlsZS5yZWFkQWxsKCkpOworICAgIGlmIChjb250ZW50cy5pc0VtcHR5KCkpCisgICAg
ICAgIHFXYXJuaW5nKCJRUXVpY2tXZWJWaWV3OiBJZ25vcmluZyAnJXMnIGFzIHVzZXIgc2NyaXB0
IGJlY2F1c2UgZmlsZSBpcyBlbXB0eS4iLCBxUHJpbnRhYmxlKHVybC50b1N0cmluZygpKSk7CisK
KyAgICByZXR1cm4gY29udGVudHM7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnVw
ZGF0ZVVzZXJTY3JpcHRzKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBzY3JpcHRzOworICAgIHNj
cmlwdHMucmVzZXJ2ZUNhcGFjaXR5KHVzZXJTY3JpcHRzLnNpemUoKSk7CisKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgdXNlclNjcmlwdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29u
c3QgUVVybCYgdXJsID0gdXNlclNjcmlwdHMuYXQoaSk7CisgICAgICAgIGlmICghdXJsLmlzVmFs
aWQoKSkgeworICAgICAgICAgICAgcVdhcm5pbmcoIlFRdWlja1dlYlZpZXc6IENvdWxkbid0IG9w
ZW4gJyVzJyBhcyB1c2VyIHNjcmlwdCBiZWNhdXNlIFVSTCBpcyBpbnZhbGlkLiIsIHFQcmludGFi
bGUodXJsLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisK
KyAgICAgICAgUVN0cmluZyBjb250ZW50cyA9IHJlYWRVc2VyU2NyaXB0KHVybCk7CisgICAgICAg
IGlmIChjb250ZW50cy5pc0VtcHR5KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
c2NyaXB0cy5hcHBlbmQoU3RyaW5nKGNvbnRlbnRzKSk7CisgICAgfQorCisgICAgd2ViUGFnZVBy
b3h5LT5zZXRVc2VyU2NyaXB0cyhzY3JpcHRzKTsKK30KKwogUVBvaW50RiBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6Y29udGVudFBvcygpIGNvbnN0CiB7CiAgICAgUV9RKGNvbnN0IFFRdWlja1dlYlZp
ZXcpOwpAQCAtMTMwNyw2ICsxMzU2LDIyIEBAIHZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRh
bDo6ZXZhbHVhdGVKYXZhU2NyaXB0KGNvbnN0IFFTdHJpbmcmIHNjcmlwdCwgY29uc3QKICAgICBk
X3B0ci0+d2ViUGFnZVByb3h5LmdldCgpLT5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoc2NyaXB0
LCBTY3JpcHRWYWx1ZUNhbGxiYWNrOjpjcmVhdGUoY2xvc3VyZSwgamF2YVNjcmlwdENhbGxiYWNr
KSk7CiB9CiAKK1FMaXN0PFFVcmw+IFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnVzZXJTY3Jp
cHRzKCkgY29uc3QKK3sKKyAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CisgICAgcmV0dXJu
IGQtPnVzZXJTY3JpcHRzOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNl
dFVzZXJTY3JpcHRzKGNvbnN0IFFMaXN0PFFVcmw+JiB1c2VyU2NyaXB0cykKK3sKKyAgICBRX0Qo
UVF1aWNrV2ViVmlldyk7CisgICAgaWYgKGQtPnVzZXJTY3JpcHRzID09IHVzZXJTY3JpcHRzKQor
ICAgICAgICByZXR1cm47CisgICAgZC0+dXNlclNjcmlwdHMgPSB1c2VyU2NyaXB0czsKKyAgICBk
LT51cGRhdGVVc2VyU2NyaXB0cygpOworICAgIGVtaXQgdXNlclNjcmlwdHNDaGFuZ2VkKCk7Cit9
CisKIFFRdWlja1VybFNjaGVtZURlbGVnYXRlKiBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpz
Y2hlbWVEZWxlZ2F0ZXNfQXQoUVFtbExpc3RQcm9wZXJ0eTxRUXVpY2tVcmxTY2hlbWVEZWxlZ2F0
ZT4qIHByb3BlcnR5LCBpbnQgaW5kZXgpCiB7CiAgICAgY29uc3QgUU9iamVjdExpc3QgY2hpbGRy
ZW4gPSBwcm9wZXJ0eS0+b2JqZWN0LT5jaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggNzczZjczNWE5Y2M5MjAw
MmM2MjZjNjYyNmM0ZGMwMTlhZjllMWRlYS4uNDU4Yzk2NzI1NDUyZjY0ZGZlZWQwZTYxNjQ4YjE4
MDI1M2NhMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcC5oCkBAIC0yNzAsNiArMjcwLDcgQEAgY2xhc3MgUVdFQktJVF9FWFBPUlQg
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX1BST1BF
UlRZKFFRbWxMaXN0UHJvcGVydHk8UVF1aWNrVXJsU2NoZW1lRGVsZWdhdGU+IHVybFNjaGVtZURl
bGVnYXRlcyBSRUFEIHNjaGVtZURlbGVnYXRlcykKICAgICBRX1BST1BFUlRZKFFTdHJpbmcgdXNl
ckFnZW50IFJFQUQgdXNlckFnZW50IFdSSVRFIHNldFVzZXJBZ2VudCBOT1RJRlkgdXNlckFnZW50
Q2hhbmdlZCkKICAgICBRX1BST1BFUlRZKGRvdWJsZSBkZXZpY2VQaXhlbFJhdGlvIFJFQUQgZGV2
aWNlUGl4ZWxSYXRpbyBXUklURSBzZXREZXZpY2VQaXhlbFJhdGlvIE5PVElGWSBkZXZpY2VQaXhl
bFJhdGlvQ2hhbmdlZCkKKyAgICBRX1BST1BFUlRZKFFMaXN0PFFVcmw+IHVzZXJTY3JpcHRzIFJF
QUQgdXNlclNjcmlwdHMgV1JJVEUgc2V0VXNlclNjcmlwdHMgTk9USUZZIHVzZXJTY3JpcHRzQ2hh
bmdlZCkKICAgICBRX0VOVU1TKE5hdmlnYXRpb25SZXF1ZXN0QWN0aW9uRXhwZXJpbWVudGFsKQog
CiBwdWJsaWM6CkBAIC0zMDIsNiArMzAzLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlckFn
ZW50KGNvbnN0IFFTdHJpbmcmIHVzZXJBZ2VudCk7CiAgICAgZG91YmxlIGRldmljZVBpeGVsUmF0
aW8oKSBjb25zdDsKICAgICB2b2lkIHNldERldmljZVBpeGVsUmF0aW8oZG91YmxlKTsKKyAgICBR
TGlzdDxRVXJsPiB1c2VyU2NyaXB0cygpIGNvbnN0OworICAgIHZvaWQgc2V0VXNlclNjcmlwdHMo
Y29uc3QgUUxpc3Q8UVVybD4mIHVzZXJTY3JpcHRzKTsKIAogICAgIFFXZWJLaXRUZXN0KiB0ZXN0
KCk7CiAKQEAgLTM1NSw2ICszNTgsNyBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBkZXZpY2VQaXhl
bFJhdGlvQ2hhbmdlZCgpOwogICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuUmVxdWVzdGVkKCk7CiAg
ICAgdm9pZCBleGl0RnVsbFNjcmVlblJlcXVlc3RlZCgpOworICAgIHZvaWQgdXNlclNjcmlwdHND
aGFuZ2VkKCk7CiAKIHByaXZhdGU6CiAgICAgUVF1aWNrV2ViVmlldyogcV9wdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5k
ZXggZWJkMDZlM2VhNDc2NzQzNjIxYTI2Y2EwNDQ2NjZkOGFiZjQ4OGMzZS4uNzNhNDU3YWM1ODkw
OTFlODY1NmM2MDY3MWNlYjgwZjI0MDdkYjRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtMTI2LDYgKzEyNiw3IEBA
IHB1YmxpYzoKICAgICBib29sIHJlbmRlclRvT2Zmc2NyZWVuQnVmZmVyKCkgY29uc3QgeyByZXR1
cm4gbV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcjsgfQogICAgIGJvb2wgdHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoYm9v
bCk7CisgICAgdm9pZCB1cGRhdGVVc2VyU2NyaXB0cygpOwogCiAgICAgUVBvaW50RiBjb250ZW50
UG9zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDb250ZW50UG9zKGNvbnN0IFFQb2ludEYmKTsKQEAg
LTE5NCw2ICsxOTUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJp
YnV0ZXMgYXR0cmlidXRlczsKIAorICAgIFFMaXN0PFFVcmw+IHVzZXJTY3JpcHRzOworCiAgICAg
Ym9vbCBtX3VzZURlZmF1bHRDb250ZW50SXRlbVNpemU7CiAgICAgYm9vbCBtX25hdmlnYXRvclF0
T2JqZWN0RW5hYmxlZDsKICAgICBib29sIG1fcmVuZGVyVG9PZmZzY3JlZW5CdWZmZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dl
YlZpZXcucHJvIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9XZWJWaWV3LnBybwppbmRleCA1Y2M2ZjM1ZjUzZDQzMWFlMzNlOTQzNjE0NTFjNmE2MmM0OWVj
NzZhLi5mZDk0MGQ0M2QyYjhlMTk4Zjk0M2IyYjZlYTc5ZmU3MmIzYjhmMmMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcu
cHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
V2ViVmlldy5wcm8KQEAgLTE2LDMgKzE2LDUgQEAgREVGSU5FUyArPSBJTVBPUlRfRElSPVwiXFxc
IiQke1JPT1RfQlVJTERfRElSfSQke1FNQUtFX0RJUl9TRVB9aW1wb3J0c1xcXCJcIgogT1RIRVJf
RklMRVMgKz0gXAogICAgIFdlYlZpZXcvKiBcCiAgICAgY29tbW9uLyoKKworUkVTT1VSQ0VTID0g
cmVzb3VyY2VzLnFyYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF91c2VyU2NyaXB0cy5xbWwgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3VzZXJTY3Jp
cHRzLnFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZDE1YWNhMDUzYWFmMDlmMDAwN2I5MDcxOGZjNjFlZGEyMTZh
ZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF91c2VyU2NyaXB0cy5xbWwKQEAgLTAsMCArMSwxMTMg
QEAKK2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktp
dCAzLjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMS4wCitpbXBvcnQgIi4uL2NvbW1v
biIKKworSXRlbSB7CisgICAgVGVzdFdlYlZpZXcgeworICAgICAgICBpZDogd2ViVmlldworICAg
ICAgICB3aWR0aDogNDAwCisgICAgICAgIGhlaWdodDogMzAwCisgICAgfQorCisgICAgVGVzdFdl
YlZpZXcgeworICAgICAgICBpZDogd2ViVmlld1dpdGhDb25kaXRpb25hbFVzZXJTY3JpcHRzCisg
ICAgICAgIHdpZHRoOiA0MDAKKyAgICAgICAgaGVpZ2h0OiAzMDAKKworICAgICAgICBvbk5hdmln
YXRpb25SZXF1ZXN0ZWQ6IHsKKyAgICAgICAgICAgIHZhciB1cmxTdHJpbmcgPSByZXF1ZXN0LnVy
bC50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKHVybFN0cmluZy5pbmRleE9mKCJ0ZXN0MS5o
dG1sIikgIT09IC0xKQorICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbC51c2VyU2NyaXB0cyA9
IFtRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2NoYW5nZS1kb2N1bWVudC10aXRsZS5qcyIpXTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKHVybFN0cmluZy5pbmRleE9mKCJ0ZXN0Mi5odG1sIikgIT09
IC0xKQorICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbC51c2VyU2NyaXB0cyA9IFtRdC5yZXNv
bHZlZFVybCgiLi4vY29tbW9uL2FwcGVuZC1kb2N1bWVudC10aXRsZS5qcyIpXTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBleHBlcmltZW50YWwudXNlclNjcmlwdHMgPSBbXTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIFRlc3RDYXNlIHsKKyAgICAgICAgbmFtZTogIldlYlZp
ZXdVc2VyU2NyaXB0cyIKKworICAgICAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICAgICAg
d2ViVmlldy51cmwgPSAiIjsKKyAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnVzZXJT
Y3JpcHRzID0gW107CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X29uZVNjcmlw
dCgpIHsKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1v
bi90ZXN0MS5odG1sIik7CisgICAgICAgICAgICB3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVk
KCk7CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJUZXN0IHBhZ2UgMSIpOwor
CisgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC51c2VyU2NyaXB0cyA9IFtRdC5yZXNv
bHZlZFVybCgiLi4vY29tbW9uL2NoYW5nZS1kb2N1bWVudC10aXRsZS5qcyIpXTsKKyAgICAgICAg
ICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIlRlc3QgcGFnZSAxIik7CisKKyAgICAgICAgICAg
IHdlYlZpZXcucmVsb2FkKCk7CisgICAgICAgICAgICB3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2Vl
ZGVkKCk7CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJOZXcgdGl0bGUiKTsK
KworICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rl
c3QyLmh0bWwiKTsKKyAgICAgICAgICAgIHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKTsK
KyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIk5ldyB0aXRsZSIpOworCisgICAg
ICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC51c2VyU2NyaXB0cyA9IFtdOworICAgICAgICAg
ICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiTmV3IHRpdGxlIik7CisKKyAgICAgICAgICAgIHdl
YlZpZXcucmVsb2FkKCk7CisgICAgICAgICAgICB3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVk
KCk7CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJUZXN0IHBhZ2Ugd2l0aCBo
dWdlIGxpbmsgYXJlYSIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF90d29T
Y3JpcHRzKCkgeworICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4v
Y29tbW9uL3Rlc3QxLmh0bWwiKTsKKyAgICAgICAgICAgIHdlYlZpZXcud2FpdEZvckxvYWRTdWNj
ZWVkZWQoKTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIlRlc3QgcGFnZSAx
Iik7CisKKyAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnVzZXJTY3JpcHRzID0gW1F0
LnJlc29sdmVkVXJsKCIuLi9jb21tb24vY2hhbmdlLWRvY3VtZW50LXRpdGxlLmpzIiksIFF0LnJl
c29sdmVkVXJsKCIuLi9jb21tb24vYXBwZW5kLWRvY3VtZW50LXRpdGxlLmpzIildOworICAgICAg
ICAgICAgd2ViVmlldy5yZWxvYWQoKTsKKyAgICAgICAgICAgIHdlYlZpZXcud2FpdEZvckxvYWRT
dWNjZWVkZWQoKTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIk5ldyB0aXRs
ZSB3aXRoIGFwcGVuZGl4Iik7CisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBjYW4gcmVt
b3ZlIHNjcmlwdHMgZnJvbSB0aGUgcHJlbG9hZCBsaXN0LgorICAgICAgICAgICAgd2ViVmlldy5l
eHBlcmltZW50YWwudXNlclNjcmlwdHMgPSBbUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9hcHBl
bmQtZG9jdW1lbnQtdGl0bGUuanMiKV07CisgICAgICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpOwor
ICAgICAgICAgICAgd2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAg
Y29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEgd2l0aCBhcHBlbmRpeCIpOworCisg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHNjcmlwdHMgYXJlIGxvYWRlZCBpbiBvcmRlci4K
KyAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnVzZXJTY3JpcHRzID0gW1F0LnJlc29s
dmVkVXJsKCIuLi9jb21tb24vYXBwZW5kLWRvY3VtZW50LXRpdGxlLmpzIiksIFF0LnJlc29sdmVk
VXJsKCIuLi9jb21tb24vY2hhbmdlLWRvY3VtZW50LXRpdGxlLmpzIildOworICAgICAgICAgICAg
d2ViVmlldy5yZWxvYWQoKTsKKyAgICAgICAgICAgIHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVk
ZWQoKTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIk5ldyB0aXRsZSIpOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9zZXRVc2VyU2NyaXB0c0NvbmRpdGlv
bmFsbHkoKSB7CisgICAgICAgICAgICB3ZWJWaWV3V2l0aENvbmRpdGlvbmFsVXNlclNjcmlwdHMu
dXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIik7CisgICAgICAgICAg
ICB3ZWJWaWV3V2l0aENvbmRpdGlvbmFsVXNlclNjcmlwdHMud2FpdEZvckxvYWRTdWNjZWVkZWQo
KTsKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlld1dpdGhDb25kaXRpb25hbFVzZXJTY3JpcHRz
LnRpdGxlLCAiTmV3IHRpdGxlIik7CisKKyAgICAgICAgICAgIHdlYlZpZXdXaXRoQ29uZGl0aW9u
YWxVc2VyU2NyaXB0cy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QyLmh0bWwi
KTsKKyAgICAgICAgICAgIHdlYlZpZXdXaXRoQ29uZGl0aW9uYWxVc2VyU2NyaXB0cy53YWl0Rm9y
TG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3V2l0aENvbmRpdGlv
bmFsVXNlclNjcmlwdHMudGl0bGUsICJUZXN0IHBhZ2Ugd2l0aCBodWdlIGxpbmsgYXJlYSB3aXRo
IGFwcGVuZGl4Iik7CisKKyAgICAgICAgICAgIHdlYlZpZXdXaXRoQ29uZGl0aW9uYWxVc2VyU2Ny
aXB0cy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QzLmh0bWwiKTsKKyAgICAg
ICAgICAgIHdlYlZpZXdXaXRoQ29uZGl0aW9uYWxVc2VyU2NyaXB0cy53YWl0Rm9yTG9hZFN1Y2Nl
ZWRlZCgpOworICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3V2l0aENvbmRpdGlvbmFsVXNlclNj
cmlwdHMudGl0bGUsICJUZXN0IHBhZ2UgMyIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gdGVzdF9iaWdTY3JpcHQoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC51
c2VyU2NyaXB0cyA9IFtRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2JpZy11c2VyLXNjcmlwdC5q
cyIpXTsKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1v
bi90ZXN0MS5odG1sIik7CisgICAgICAgICAgICB3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVk
KCk7CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJCaWcgdXNlciBzY3JpcHQg
Y2hhbmdlZCB0aXRsZSIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9mcm9t
UmVzb3VyY2VGaWxlKCkgeworICAgICAgICAgICAgd2ViVmlldy5leHBlcmltZW50YWwudXNlclNj
cmlwdHMgPSBbInFyYzovLy9jb21tb24vY2hhbmdlLWRvY3VtZW50LXRpdGxlLmpzIl07CisgICAg
ICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRt
bCIpOworICAgICAgICAgICAgd2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpOworICAgICAg
ICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiTmV3IHRpdGxlIik7CisgICAgICAgIH0KKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL2NvbW1vbi9hcHBlbmQtZG9jdW1lbnQtdGl0bGUuanMgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9hcHBlbmQtZG9jdW1lbnQt
dGl0bGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI0YTJhNmYyMTk4YzJmNGE2Mzc1NGU5YWRlYmJiMDk0MzMz
MmRhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvY29tbW9uL2FwcGVuZC1kb2N1bWVudC10aXRsZS5qcwpAQCAtMCwwICsx
IEBACitkb2N1bWVudC50aXRsZSArPSAiIHdpdGggYXBwZW5kaXgiOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vYmlnLXVz
ZXItc2NyaXB0LmpzIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9jb21tb24vYmlnLXVzZXItc2NyaXB0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ZTNkMmI0NGRjZDE5
NDFmMTNjYWE0Yjg2YzBhOGYzN2FjZGJlNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9iaWctdXNlci1zY3Jp
cHQuanMKQEAgLTAsMCArMSwxMTAgQEAKKy8vIFVzZWQgdG8gbWFrZSBzdXJlIHNlcmlhbGl6YXRp
b24gb2YgdXNlciBzY3JpcHRzIGJldHdlZW4gVUkgcHJvY2VzcyBhbmQgV2ViIHByb2Nlc3MgY2Fu
IGhhbmRsZSBmaWxlcyBiaWdnZXIKKy8vIHRoYW4gdGhlIG1heGltdW0gbWVzc2FnZSBzaXplIGRl
ZmluZWQgaW4gQ29ubmVjdGlvblhYWCBjbGFzc2VzLgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKK2RvY3VtZW50LnRpdGxlID0gIkJpZyB1c2VyIHNjcmlwdCBjaGFuZ2VkIHRpdGxlIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
Y29tbW9uL2NoYW5nZS1kb2N1bWVudC10aXRsZS5qcyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2NoYW5nZS1kb2N1bWVudC10aXRsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZGFlNDVjMjFmM2I2Y2YyZTY2YTM3NDU2N2UwNjQ1MmFlNzU2ZTI1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9jb21tb24vY2hhbmdlLWRvY3VtZW50LXRpdGxlLmpzCkBAIC0wLDAgKzEgQEAKK2RvY3Vt
ZW50LnRpdGxlID0gIk5ldyB0aXRsZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3Jlc291cmNlcy5xcmMgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3Jlc291cmNlcy5xcmMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTY5NmFhYWMxMDE4ZmNhZjM3M2NjZTg4MzdiNzA4MDA3ZTdiYWYwMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcmVz
b3VyY2VzLnFyYwpAQCAtMCwwICsxLDUgQEAKKzxSQ0M+CisgICAgPHFyZXNvdXJjZSBwcmVmaXg9
Ii8iPgorICAgICAgICA8ZmlsZT5jb21tb24vY2hhbmdlLWRvY3VtZW50LXRpdGxlLmpzPC9maWxl
PgorICAgIDwvcXJlc291cmNlPgorPC9SQ0M+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKaW5kZXggNzJkNDY5NTkwYzhmYWJlYjAyMzM4NWQ3ZWEyZTA2ZDlkYzUwYWExMC4u
OTVlNmMxMzM5NDNjZjRjMGMxMDJlZTI2NjBmODlmZDFkZTUzZTI4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzM2LDYgKzMzNiw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGF1dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5h
bWUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIGNvbnN0IFN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUs
IFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpOwogICAgIHZvaWQgY2VydGlmaWNh
dGVWZXJpZmljYXRpb25SZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5hbWUsIGJvb2wmIGlnbm9y
ZUVycm9ycyk7CiAgICAgdm9pZCBwcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNv
bnN0IFN0cmluZyYgaG9zdG5hbWUsIHVpbnQxNl90IHBvcnQsIGNvbnN0IFN0cmluZyYgcHJlZmls
bGVkVXNlcm5hbWUsIFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpOworICAgIHZv
aWQgc2V0VXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICNlbmRpZiAvLyBQTEFU
Rk9STShRVCkuCiAKICNpZiBQTEFURk9STShRVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwCmluZGV4IGFlM2M0YWFiNjdhZDEzMzhjNTdlMTBhZTdj
OWYwYjZkZTQzNDJmY2MuLjVjYWZhZDU5YzY4OWMzODI0NjRiODA3MTkwNGIwNTI5ZTc1ZTViZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcApA
QCAtMTAyLDYgKzEwMiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZEFwcGxpY2F0aW9uU2No
ZW1lUmVwbHkoY29uc3QgUVF1aWNrTmV0d29ya1JlcGx5KiByZXBseSkKICAgICB9CiB9CiAKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzZXRVc2VyU2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2Ny
aXB0cykKK3sKKyAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFVzZXJT
Y3JpcHRzKHNjcmlwdHMpLCBtX3BhZ2VJRCk7Cit9CisKICNpZiBQTFVHSU5fQVJDSElURUNUVVJF
KFgxMSkKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVQbHVnaW5Db250YWluZXIodWludDY0X3Qm
IHdpbmRvd0lEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKaW5kZXggMzg1YjlmMGQ2ZWIyNDIzMGI4MDFjZDhlNDI1ZTEwZmU2NzgxNDYwZC4uMjM4NDQ4
OTVhYTRmMGRkN2FhMThhOTBjMTkwMDI1NTZlMTQ5ZjAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC01MjMsNiArNTIzLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVnaXN0ZXJBcHBsaWNhdGlvblNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7
CiAgICAgdm9pZCBhcHBsaWNhdGlvblNjaGVtZVJlcGx5KGNvbnN0IFF0TmV0d29ya1JlcGx5RGF0
YSYpOwogICAgIHZvaWQgcmVjZWl2ZWRBcHBsaWNhdGlvblNjaGVtZVJlcXVlc3QoY29uc3QgUU5l
dHdvcmtSZXF1ZXN0JiwgUXROZXR3b3JrUmVwbHkqKTsKKyAgICB2b2lkIHNldFVzZXJTY3JpcHRz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAjZW5kaWYKICAgICB2b2lkIHdoZWVsRXZlbnQoY29u
c3QgV2ViV2hlZWxFdmVudCYpOwogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggNGJhYjhhYzQyZDE1NWM3OTEyNTQyNDViMTI3MTVhNDA1NDZmY2M5Ny4uODk5YTJhOTUy
MjY3N2FiMmZkNWZmNjU5YjZjOWQ1N2NjM2QwMGRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTY4LDYgKzY4
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgQXBwbGlj
YXRpb25TY2hlbWVSZXBseShXZWJLaXQ6OlF0TmV0d29ya1JlcGx5RGF0YSByZXBseSkKICAgICBS
ZWdpc3RlckFwcGxpY2F0aW9uU2NoZW1lKFdURjo6U3RyaW5nIHNjaGVtZSkKKyAgICBTZXRVc2Vy
U2NyaXB0cyhXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4gc2NyaXB0KQogI2VuZGlmCiAKICAgICBT
dG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCmluZGV4IDcxODBhOGM4ODM2MDY5
ZDc2OGRjZjA5NzE2MTU2YTBiYjU2NjA0YmQuLjQxNzBmNTVjMzRjNjVlN2E5YzU0ZjM5NDgxNWRi
OTUwNWQwMGU0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9xdC9XZWJQYWdlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9xdC9XZWJQYWdlUXQuY3BwCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpbmNsdWRlICJXZWJFdmVu
dC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NV3JhcHBlcldvcmxkLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC00MTEsNCArNDEzLDEzIEBAIHZvaWQgV2ViUGFn
ZTo6YXBwbGljYXRpb25TY2hlbWVSZXBseShjb25zdCBRdE5ldHdvcmtSZXBseURhdGEmIHJlcGx5
RGF0YSkKICAgICBuZXR3b3JrUmVwbHktPmZpbmFsaXplKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6
c2V0VXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNjcmlwdHMpCit7CisgICAgLy8g
VGhpcyB3b3JrcyBiZWNhdXNlIHdlIGtlZXAgYW4gdW5pcXVlIHBhZ2UgZ3JvdXAgZm9yIGVhY2gg
UGFnZS4KKyAgICBQYWdlR3JvdXAqIHBhZ2VHcm91cCA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHRo
aXMtPnBhZ2VHcm91cCgpLT5pZGVudGlmaWVyKCkpOworICAgIHBhZ2VHcm91cC0+cmVtb3ZlVXNl
clNjcmlwdHNGcm9tV29ybGQobWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzY3JpcHRzLnNpemUoKTsgKytpKQorICAgICAgICBwYWdlR3JvdXAt
PmFkZFVzZXJTY3JpcHRUb1dvcmxkKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBzY3JpcHRzLmF0
KGkpLCBLVVJMKCksIG51bGxwdHIsIG51bGxwdHIsIEluamVjdEF0RG9jdW1lbnRFbmQsIEluamVj
dEluVG9wRnJhbWVPbmx5KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="149487"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>