<?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>39490</bug_id>
          
          <creation_ts>2010-05-21 08:23:37 -0700</creation_ts>
          <short_desc>Indexed Database component is missing IDBObjectStoreRequest interface</short_desc>
          <delta_ts>2010-05-26 08:39:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dev.w3.org/2006/webapi/WebSimpleDB/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrei Popescu">andreip</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>228924</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-21 08:23:37 -0700</bug_when>
    <thetext>Indexed Database component is missing IDBObjectStoreRequest interface. Patch coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228951</commentid>
    <comment_count>1</comment_count>
      <attachid>56716</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-21 09:38:21 -0700</bug_when>
    <thetext>Created attachment 56716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228956</commentid>
    <comment_count>2</comment_count>
      <attachid>56718</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-21 09:42:45 -0700</bug_when>
    <thetext>Created attachment 56718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228989</commentid>
    <comment_count>3</comment_count>
      <attachid>56718</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-21 10:30:43 -0700</bug_when>
    <thetext>Comment on attachment 56718
Patch

WebCore/storage/IDBObjectStoreRequest.idl:43
 +          readonly attribute DOMString keyPath;
add a fixme for indexNames + check for it in a layout test that documents the failure (otherwise it&apos;s too easy for things like this to slip through the cracks)

WebCore/storage/IDBObjectStoreRequest.h:37
 +  #include &lt;wtf/UnusedParam.h&gt;
You aren&apos;t using this.

WebCore/storage/IDBObjectStoreRequest.h:59
 +      RefPtr&lt;IDBObjectStore&gt; m_store;
I&apos;d name this m_objectStore.  (I had been naming stuff m_idbObjectStore, but I guess that&apos;s a bit excessive.)

WebCore/storage/IDBObjectStoreRequest.h:49
 +      ~IDBObjectStoreRequest() { }
I&apos;d put a newline after this...and I think a lot of classes do

WebCore/storage/IDBObjectStoreRequest.cpp:49
 +  IDBObjectStoreRequest::IDBObjectStoreRequest(PassRefPtr&lt;IDBObjectStore&gt; idbStore) : m_store(idbStore)
Put  : m_objectStore(objectStore) on the next line

WebCore/storage/IDBObjectStoreRequest.h:54
 +      IDBObjectStoreRequest();
Why do you need this?

WebCore/storage/IDBObjectStoreRequest.cpp:45
 +  IDBObjectStoreRequest::IDBObjectStoreRequest()
I&apos;ve been putting all of these first in the file.  I know it&apos;s out of order from what&apos;s in the .h, but it&apos;s kind of convention in a lot of the files (including the other IDB ones).

WebCore/storage/IDBObjectStoreRequest.h:57
 +      String m_name;
This data should be in the shared IDBObjectStore.h file and not here.  This class should only have the m_objectStore variable.

WebCore/storage/IDBObjectStoreRequest.cpp:35
 +  String IDBObjectStoreRequest::name() const
These could have been inline it seems...but either way, they should be in IDBObjectStore not ...Request.

WebCore/storage/IDBObjectStore.h:42
 +      // TODO: Implement.
FIXME

And you&apos;ll need to do it in this patch actually.

WebCore/storage/IDBObjectStoreRequest.idl:36
 +          [Custom] IDBRequest get(in any key);
Avoid custom functions at all cost.

This should work as is for JSC because it makes it a SerializedScriptValue.  As for V8, I thought there was some attribute you could add that hints it should be a serialized script value.  If not, you should add it.  Most changes to the code generator are easier than you might guess.

WebCore/bindings/js/JSIDBObjectStoreRequestCustom.cpp:44
 +  JSC::JSValue JSIDBObjectStoreRequest::remove(JSC::ExecState* exec, const JSC::ArgList&amp; args)
None of this stuff should be necessary.
WebCore/ChangeLog:12
 +          * DerivedSources.cpp:
You forgot VIsual Studio.  ...and Android and CMake (which I forgot previously..but we should start updating).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228993</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-21 10:34:46 -0700</bug_when>
    <thetext>Oh yeah!  And you need layout tests.  (Or at least to solemnly swear to add them as soon as it&apos;s possible to do so.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229807</commentid>
    <comment_count>5</comment_count>
      <attachid>56902</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-24 10:47:05 -0700</bug_when>
    <thetext>Created attachment 56902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229810</commentid>
    <comment_count>6</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-24 10:55:51 -0700</bug_when>
    <thetext>Thanks for the review Jeremy!

(In reply to comment #3)
&gt; (From update of attachment 56718 [details])
&gt; WebCore/storage/IDBObjectStoreRequest.idl:43
&gt;  +          readonly attribute DOMString keyPath;
&gt; add a fixme for indexNames + check for it in a layout test that documents the failure (otherwise it&apos;s too easy for things like this to slip through the cracks)
&gt;

Added FIXME.

As for the layout tests, I would need to have IndexedDatabase::open() actually working and returning a valid IDBDatabase object. This is because object stores are created via IDBDatabase::createObjectStore(). Right now,  IndexedDatabase::open() just invokes the onerror handler. I know you are working on an implementation of this method, so I will wait until you check it in and then rebase this change. For now, I would be grateful if you could have a look at the rest of the code.

 
&gt; WebCore/storage/IDBObjectStoreRequest.h:37
&gt;  +  #include &lt;wtf/UnusedParam.h&gt;
&gt; You aren&apos;t using this.
&gt; 

Removed.

&gt; WebCore/storage/IDBObjectStoreRequest.h:59
&gt;  +      RefPtr&lt;IDBObjectStore&gt; m_store;
&gt; I&apos;d name this m_objectStore.  (I had been naming stuff m_idbObjectStore, but I guess that&apos;s a bit excessive.)
&gt;

Done.
 
&gt; WebCore/storage/IDBObjectStoreRequest.h:49
&gt;  +      ~IDBObjectStoreRequest() { }
&gt; I&apos;d put a newline after this...and I think a lot of classes do
&gt;

Done.
 
&gt; WebCore/storage/IDBObjectStoreRequest.cpp:49
&gt;  +  IDBObjectStoreRequest::IDBObjectStoreRequest(PassRefPtr&lt;IDBObjectStore&gt; idbStore) : m_store(idbStore)
&gt; Put  : m_objectStore(objectStore) on the next line
&gt; 

Done.

&gt; WebCore/storage/IDBObjectStoreRequest.h:54
&gt;  +      IDBObjectStoreRequest();
&gt; Why do you need this?
&gt;

I don&apos;t. Removed.
 
&gt; WebCore/storage/IDBObjectStoreRequest.cpp:45
&gt;  +  IDBObjectStoreRequest::IDBObjectStoreRequest()
&gt; I&apos;ve been putting all of these first in the file.  I know it&apos;s out of order from what&apos;s in the .h, but it&apos;s kind of convention in a lot of the files (including the other IDB ones).
&gt;

Moved to the top.
 
&gt; WebCore/storage/IDBObjectStoreRequest.h:57
&gt;  +      String m_name;
&gt; This data should be in the shared IDBObjectStore.h file and not here.  This class should only have the m_objectStore variable.
&gt;

Moved.
 
&gt; WebCore/storage/IDBObjectStoreRequest.cpp:35
&gt;  +  String IDBObjectStoreRequest::name() const
&gt; These could have been inline it seems...but either way, they should be in IDBObjectStore not ...Request.
&gt;

Done, and they&apos;re inline.
 
&gt; WebCore/storage/IDBObjectStore.h:42
&gt;  +      // TODO: Implement.
&gt; FIXME
&gt; 

Fixed.

&gt; 
&gt; WebCore/storage/IDBObjectStoreRequest.idl:36
&gt;  +          [Custom] IDBRequest get(in any key);
&gt; Avoid custom functions at all cost.
&gt;

Avoided.
 
&gt; This should work as is for JSC because it makes it a SerializedScriptValue.  As for V8, I thought there was some attribute you could add that hints it should be a serialized script value.  If not, you should add it.  Most changes to the code generator are easier than you might guess.
&gt;

Yep, used SerializedScriptValue and got rid of [Custom]. Thanks for the tip.
 
&gt; WebCore/bindings/js/JSIDBObjectStoreRequestCustom.cpp:44
&gt;  +  JSC::JSValue JSIDBObjectStoreRequest::remove(JSC::ExecState* exec, const JSC::ArgList&amp; args)
&gt; None of this stuff should be necessary.

Removed.

&gt; WebCore/ChangeLog:12
&gt;  +          * DerivedSources.cpp:
&gt; You forgot VIsual Studio.  ...and Android and CMake (which I forgot previously..but we should start updating).

Added.


So my plan is to:

- Wait for your change to implement IndexedDatabase::open()
- Update my change and implement IDBDatabase::createObjectStore() and add layout tests.
- While I am waiting, I will look into adding a &apos;weak pointer&apos; to the ScriptExecutionContext to be used by IDBRequest, as discussed.

How does this sound?

Thanks,
Andrei</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230245</commentid>
    <comment_count>7</comment_count>
      <attachid>56902</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-25 06:42:12 -0700</bug_when>
    <thetext>Comment on attachment 56902
Patch

WebCore/storage/IDBAny.h:84
 +  
extra new line

WebCore/storage/IDBObjectStore.cpp:28
 +  #include &quot;config.h&quot;
new line between */ and this

WebCore/storage/IDBObjectStore.cpp:2
 +   * Copyright (C) 2010 Google Inc. All rights reserved.
For new files, lets use this: http://webkit.org/coding/bsd-license.html

WebCore/storage/IDBObjectStore.h:2
 +   * Copyright (C) 2010 Google Inc. All rights reserved.
ditto

WebCore/storage/IDBObjectStore.h:39
 +  // This class is shared by IDBObjectStoreRequest (async) and IDBObjectStoreSync (sync).
not sure if this is necessary.  We document this relationship for IndexedDatabase so, if anything, maybe we should point the reader in that direction?

WebCore/storage/IDBObjectStore.h:44
 +          return adoptRef(new IDBObjectStore);
It doesn&apos;t matter, but () seems prettier maybe?  (In some cases, () implies that it should be 0 initialized so it seems like a good habit?)

WebCore/storage/IDBObjectStore.h:46
 +      virtual ~IDBObjectStore() { }
Don&apos;t think this needs to be virtual.  (If you copied this from elsewhere, you can probably change it there too if you want.)

WebCore/storage/IDBObjectStoreRequest.cpp:2
 +   * Copyright (C) 2010 Google Inc. All rights reserved.
ditto...ditto

WebCore/storage/IDBObjectStoreRequest.cpp:41
 +      : m_objectStore(idbStore)
Nit, order the variables the same in the constructor and the class

WebCore/storage/IDBObjectStoreRequest.h:64
 +      PassRefPtr&lt;IDBRequest&gt; addOrModify(PassRefPtr&lt;SerializedScriptValue&gt; value, PassRefPtr&lt;SerializedScriptValue&gt; key);
Will it compile if you make &quot;0&quot; a default value for the key parameter?

WebCore/storage/IDBObjectStoreRequest.idl:37
 +          IDBRequest add(in SerializedScriptValue value, in [Optional] SerializedScriptValue key);
Oh, so optional does work now.  Cool!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230246</commentid>
    <comment_count>8</comment_count>
      <attachid>56902</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-25 06:45:45 -0700</bug_when>
    <thetext>Comment on attachment 56902
Patch

Your plan looks good.  In fact, now that I look at this, I guess it might make the most sense for you to put this in as is and then hook it up in a subsequent patch.  It&apos;s your choice to do so if you want.

r=me (if you fix the nits)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230252</commentid>
    <comment_count>9</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-25 06:57:51 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 56902 [details])
&gt; Your plan looks good.  In fact, now that I look at this, I guess it might make the most sense for you to put this in as is and then hook it up in a subsequent patch.  It&apos;s your choice to do so if you want.
&gt; 
&gt; r=me (if you fix the nits)

Thanks, I will fix the nits and re-upload. Still not a committer yet so you will have to help me land this :)

Andrei</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230348</commentid>
    <comment_count>10</comment_count>
      <attachid>57028</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-25 10:54:48 -0700</bug_when>
    <thetext>Created attachment 57028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230361</commentid>
    <comment_count>11</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-25 11:02:42 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 56902 [details])
&gt; WebCore/storage/IDBAny.h:84
&gt;  +  
&gt; extra new line
&gt; 

Removed.

&gt; WebCore/storage/IDBObjectStore.cpp:28
&gt;  +  #include &quot;config.h&quot;
&gt; new line between */ and this
&gt;

Added.
 
&gt; WebCore/storage/IDBObjectStore.cpp:2
&gt;  +   * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; For new files, lets use this: http://webkit.org/coding/bsd-license.html
&gt;

Hmm, there was a 3rd clause in my license, otherwise it was the same. Removed.

 
&gt; WebCore/storage/IDBObjectStore.h:2
&gt;  +   * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; ditto
&gt; 
&gt; WebCore/storage/IDBObjectStore.h:39
&gt;  +  // This class is shared by IDBObjectStoreRequest (async) and IDBObjectStoreSync (sync).
&gt; not sure if this is necessary.  We document this relationship for IndexedDatabase so, if anything, maybe we should point the reader in that direction?
&gt;

I removed it, not sure the comment added any value.
 
&gt; WebCore/storage/IDBObjectStore.h:44
&gt;  +          return adoptRef(new IDBObjectStore);
&gt; It doesn&apos;t matter, but () seems prettier maybe?  (In some cases, () implies that it should be 0 initialized so it seems like a good habit?)
&gt;

Ok.
 
&gt; WebCore/storage/IDBObjectStore.h:46
&gt;  +      virtual ~IDBObjectStore() { }
&gt; Don&apos;t think this needs to be virtual.  (If you copied this from elsewhere, you can probably change it there too if you want.)
&gt; 
&gt; WebCore/storage/IDBObjectStoreRequest.cpp:2
&gt;  +   * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; ditto...ditto
&gt; 
&gt; WebCore/storage/IDBObjectStoreRequest.cpp:41
&gt;  +      : m_objectStore(idbStore)
&gt; Nit, order the variables the same in the constructor and the class
&gt;


Hmm, but they are in order already...objectStore is first in the header. Or am I misunderstanding you?

 
&gt; WebCore/storage/IDBObjectStoreRequest.h:64
&gt;  +      PassRefPtr&lt;IDBRequest&gt; addOrModify(PassRefPtr&lt;SerializedScriptValue&gt; value, PassRefPtr&lt;SerializedScriptValue&gt; key);
&gt; Will it compile if you make &quot;0&quot; a default value for the key parameter?
&gt; 

Yes, done.

Thanks,
Andrei</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230632</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-26 02:51:33 -0700</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230720</commentid>
    <comment_count>13</comment_count>
      <attachid>57098</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-26 08:30:19 -0700</bug_when>
    <thetext>Created attachment 57098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230721</commentid>
    <comment_count>14</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-26 08:31:11 -0700</bug_when>
    <thetext>Ok, I rebased the patch against TOT, this should land w/o any conflicts. Also fixes the linking error introduced in the other patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230724</commentid>
    <comment_count>15</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-26 08:39:56 -0700</bug_when>
    <thetext>Committed r60240: &lt;http://trac.webkit.org/changeset/60240&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56716</attachid>
            <date>2010-05-21 09:38:21 -0700</date>
            <delta_ts>2010-05-21 09:42:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39490-20100521173819.patch</filename>
            <type>text/plain</type>
            <size>30061</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiA1OTkzMCkKKysrIFdlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNiArMTczLDcgQEAKICNpbmNsdWRlICJK
U0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAiCiAjaW5jbHVkZSAiSlNJREJFcnJvckV2ZW50LmNwcCIK
ICNpbmNsdWRlICJKU0lEQkV2ZW50LmNwcCIKKyNpbmNsdWRlICJKU0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5jcHAiCiAjaW5jbHVkZSAiSlNJREJSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQlN1
Y2Nlc3NFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuY3BwIgpJbmRleDogV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBJ
REJEYXRhYmFzZVJlcXVlc3QgXAogICAgIElEQkVycm9yRXZlbnQgXAogICAgIElEQkV2ZW50IFwK
KyAgICBJREJPYmplY3RTdG9yZVJlcXVlc3QgXAogICAgIElEQlJlcXVlc3QgXAogICAgIElEQlN1
Y2Nlc3NFdmVudCBcCiAgICAgSW1hZ2VEYXRhIFwKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUu
YW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNTk5MzAp
CisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUyLDYgKzI0
NTIsNyBAQCBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJl
cXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRXJyb3JFdmVudC5pZGwgXAogCVdlYkNv
cmUvc3RvcmFnZS9JREJFdmVudC5pZGwgXAorCVdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9y
ZVJlcXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5pZGwgXAogCVdlYkNv
cmUvc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSW5kZXhl
ZERhdGFiYXNlUmVxdWVzdC5pZGwKQEAgLTI0NjEsNiArMjQ2Miw3IEBAIHdlYmNvcmVfY3BwZmxh
Z3MgKz0gXAogCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNJ
REJSZXF1ZXN0Q3VzdG9tLmNwcCBcCisgICAgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQk9iamVj
dFN0b3JlUmVxdWVzdEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwIFwK
IAlXZWJDb3JlL3N0b3JhZ2UvSURCQW55LmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFj
a3MuY3BwIFwKQEAgLTI0NzUsNiArMjQ3NywxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvc3RvcmFnZS9JREJFcnJvckV2ZW50LmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVu
dC5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5oIFwKKyAgICBXZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmUuY3BwIFwKKyAgICBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuaCBcCisgICAgV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgXAor
ICAgIFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaCBcCiAJV2ViQ29yZS9z
dG9yYWdlL0lEQlJlcXVlc3QuY3BwIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oIFwK
IAlXZWJDb3JlL3N0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dl
YkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24g
NTk5MzApCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjI5LDYg
KzIyOSw3IEBACiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsJywK
ICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQuaWRsJywKICAgICAgICAgICAgICdz
dG9yYWdlL0lEQkV2ZW50LmlkbCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9y
ZVJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAg
ICAgICAgICAgICdzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5pZGwnLAogICAgICAgICAgICAgJ3N0
b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwnLApAQCAtNzYyLDYgKzc2Myw3IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MU2VsZWN0RWxlbWVu
dEN1c3RvbS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0
b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhJREJPYmplY3RTdG9y
ZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVk
U2NyaXB0SG9zdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEluc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEphdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwJywKQEAgLTMzNTMsNiAr
MzM1NSwxMCBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRXZlbnQuaCcsCiAgICAgICAgICAg
ICAnc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJF
cnJvckV2ZW50LmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwJywK
KyAgICAgICAgICAgICdzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgnLAorICAgICAgICAgICAgJ3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9J
REJPYmplY3RTdG9yZVJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0
LmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0LmgnLAogICAgICAgICAgICAg
J3N0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNwcCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDU5OTMwKQorKysg
V2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtNDQ5LDYgKzQ0OSw3IEBAIElE
TF9CSU5ESU5HUyArPSBcCiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKICAg
ICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuaWRsIFwKICAgICBzdG9yYWdlL0lEQkV2ZW50LmlkbCBc
CisgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lE
QlJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5pZGwgXAogICAgIHN0
b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwgXApJbmRleDogV2ViQ29yZS9XZWJDb3Jl
LnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA1OTkzMCkK
KysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIzMzEsNiArMjMzMSw4
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVMKICAgICAgICAgc3Rv
cmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVu
dC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJFdmVudC5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJP
YmplY3RTdG9yZS5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaCBc
CiAgICAgICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJTdWNj
ZXNzRXZlbnQuaCBcCiAgICAgICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmggXApAQCAtMjM0
NCw2ICsyMzQ2LDggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOREVYRURfREFUQUJBUwog
ICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAgXAogICAgICAgICBzdG9yYWdl
L0lEQkVycm9yRXZlbnQuY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJFdmVudC5jcHAgXAorICAg
ICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHAgXAog
ICAgICAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lu
ZGV4ZWREYXRhYmFzZS5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDU5OTMwKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQyMjUsNiArNDIyNSwxMSBAQAog
CQlCNUMxMTIzQjEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNUMxMTIz
OTEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAgKi87IH07
CiAJCUI1QzExMjNDMTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNUMxMTIz
QTEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5oICovOyB9Owog
CQlCNUQzNjAxQTExMkY4QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVEMzYwMTkxMTJGOEI1NjAw
NDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCAqLzsgfTsKKwkJQjY3MTg4NzcxMUE2RDhFODAw
OEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEI2NzE4ODc1MTFBNkQ4RTgwMDhGN0RCQiAvKiBJREJPYmplY3RT
dG9yZS5jcHAgKi87IH07CisJCUI2NzE4ODc4MTFBNkQ4RTgwMDhGN0RCQiAvKiBJREJPYmplY3RT
dG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjY3
MTg4NzYxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmggKi87IH07CisJCUI2NzE4
ODdDMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjY3MTg4N0ExMUE2RDhGNDAw
OEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgKi87IH07CisJCUI2NzE4ODdEMTFB
NkQ4RjQwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2NzE4ODdCMTFBNkQ4RjQwMDhGN0RCQiAv
KiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCAqLzsgfTsKKwkJQjY3MTg4ODMxMUE2RDlEQjAwOEY3
REJCIC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2NzE4ODgyMTFBNkQ5REIwMDhGN0RCQiAv
KiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdEN1c3RvbS5jcHAgKi87IH07CiAJCUI3MUZFNkRGMTEw
OTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI3NzZENDNBMTEwNDUyNUQwMEJFQjBFQyAvKiBQcmludENv
bnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCNzc2RDQzRDExMDQ1Mjc1MDBCRUIwRUMgLyogUHJpbnRDb250ZXh0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI3NzZENDNDMTEwNDUyNzUwMEJF
QjBFQyAvKiBQcmludENvbnRleHQuY3BwICovOyB9OwogCQlCQzAwRjAwNDBFMEExODU1MDBGRDA0
RTMgLyogRE9NRmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCAqLzsgfTsKQEAgLTk2
ODQsNiArOTY4OSwxMiBAQAogCQlCNUMxMTIzOTEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNh
Y3Rpb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjVDMTEyM0ExMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMVHJhbnNhY3Rpb25Db29y
ZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNUQzNjAxOTExMkY4QjU2
MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYXRhYmFzZUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUI2NzE4ODc1MTFBNkQ4RTgwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJPYmplY3RTdG9yZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NzE4ODc2MTFBNkQ4RTgwMDhGN0RCQiAvKiBJREJPYmpl
Y3RTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJPYmplY3RTdG9y
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNjcxODg3QTExQTZEOEY0MDA4RjdE
QkIgLyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUI2NzE4ODdCMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJl
cXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NzE4ODdFMTFBNkQ5MDIw
MDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IElEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUI2NzE4ODgyMTFBNkQ5REIwMDhGN0RCQiAvKiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdEN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQk9iamVj
dFN0b3JlUmVxdWVzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI3
NzZENDNBMTEwNDUyNUQwMEJFQjBFQyAvKiBQcmludENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJpbnRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUI3NzZENDNDMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpbnRDb250ZXh0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZp
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRmlsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA5NTIsNiArMTA5NjMsMTEgQEAKIAkJMUFFODJFQzkw
Q0FBRTE3NzAwMjIzN0FFIC8qIHN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCUI2NzE4ODdFMTFBNkQ5MDIwMDhGN0RCQiAvKiBJREJPYmplY3RT
dG9yZVJlcXVlc3QuaWRsICovLAorCQkJCUI2NzE4ODdBMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJP
YmplY3RTdG9yZVJlcXVlc3QuY3BwICovLAorCQkJCUI2NzE4ODdCMTFBNkQ4RjQwMDhGN0RCQiAv
KiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCAqLywKKwkJCQlCNjcxODg3NTExQTZEOEU4MDA4RjdE
QkIgLyogSURCT2JqZWN0U3RvcmUuY3BwICovLAorCQkJCUI2NzE4ODc2MTFBNkQ4RTgwMDhGN0RC
QiAvKiBJREJPYmplY3RTdG9yZS5oICovLAogCQkJCUI1QjVEQzY3MTE5QkIzRDUwMDJBODc5MCAv
KiBBYnN0cmFjdERhdGFiYXNlLmNwcCAqLywKIAkJCQlCNUI1REM2ODExOUJCM0Q1MDAyQTg3OTAg
LyogQWJzdHJhY3REYXRhYmFzZS5oICovLAogCQkJCTUxNDE4NUVEMENENjVGMDQwMDc2M0M5OSAv
KiBDaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAgKi8sCkBAIC0xNTM3Miw2ICsxNTM4OCw3IEBACiAJ
CQkJQkMxN0Y5NjUwQjY0RUJCODAwNEE2NUNCIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20u
Y3BwICovLAogCQkJCUFCNENCNEVBMEI4QkRBM0QwMDlGNDBCMCAvKiBKU0hUTUxTZWxlY3RFbGVt
ZW50Q3VzdG9tLmggKi8sCiAJCQkJQzU2QzkxNEQxMTlEODQ5ODAwREU0Q0Q5IC8qIEpTSURCQW55
Q3VzdG9tLmNwcCAqLywKKwkJCQlCNjcxODg4MjExQTZEOURCMDA4RjdEQkIgLyogSlNJREJPYmpl
Y3RTdG9yZVJlcXVlc3RDdXN0b20uY3BwICovLAogCQkJCUE3RDAzMThEMEU5MzU0MDMwMEUyNEFD
RCAvKiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8sCiAJCQkJN0EwRTc2RDQxMEJGMDUwNzAwQTAy
NzZFIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCAqLywKIAkJCQk3QTc0RUNCQzEw
MTgzOURBMDBCRjkzOUUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwICovLApA
QCAtMTkyODYsNiArMTkzMDMsOCBAQAogCQkJCTU5QTg1RUE0MTE5RDY4RUMwMERFRjFFRiAvKiBE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUE4NjAwODExOURB
RkExMDBERUYxRUYgLyogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRTNGQUEwOTExQTM2QkYxMDA1NzY2MjQgLyogQ3Jvc3NUaHJlYWRUYXNrLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlCNjcxODg3ODExQTZEOEU4MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUI2NzE4ODdEMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmpl
Y3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjE1NzEsNiArMjE1OTAsOSBAQAog
CQkJCTUxMzI3RDYxMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlBODVFQTIxMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9u
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8q
IEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCNjcxODg3
NzExQTZEOEU4MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQjY3MTg4N0MxMUE2RDhGNDAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCNjcxODg4MzExQTZEOURCMDA4RjdEQkIgLyogSlNJREJPYmpl
Y3RTdG9yZVJlcXVlc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSURCT2JqZWN0U3RvcmVSZXF1ZXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCT2JqZWN0U3RvcmVSZXF1ZXN0Q3VzdG9tLmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJREJPYmplY3RTdG9yZVJlcXVl
c3RDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2luY2x1ZGUgIkpTSURCT2JqZWN0
U3RvcmVSZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorCisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSlNDOjpKU1ZhbHVlIEpT
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IEpTQzo6QXJnTGlzdCYgYXJncykKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQuCisgICAgVU5V
U0VEX1BBUkFNKGV4ZWMpOworICAgIFVOVVNFRF9QQVJBTShhcmdzKTsKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCitKU0M6OkpTVmFsdWUgSlNJ
REJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZE9yTW9kaWZ5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBj
b25zdCBKU0M6OkFyZ0xpc3QmIGFyZ3MpCit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50LgorICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBVTlVTRURfUEFSQU0oYXJncyk7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU1ZhbHVl
IEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojptb2RpZnkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IEpTQzo6QXJnTGlzdCYgYXJncykKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQuCisgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFVOVVNFRF9QQVJBTShhcmdzKTsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCitKU0M6OkpTVmFsdWUg
SlNJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SlNDOjpBcmdMaXN0JiBhcmdzKQoreworICAgIC8vIFRPRE86IGltcGxlbWVudC4KKyAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CisgICAgVU5VU0VEX1BBUkFNKGFyZ3MpOworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0lE
Qk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6
OkFyZ0xpc3QmIGFyZ3MpCit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50LgorICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKKyAgICBVTlVTRURfUEFSQU0oYXJncyk7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCT2JqZWN0U3RvcmVSZXF1ZXN0Q3VzdG9tLmNw
cApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCT2JqZWN0U3RvcmVSZXF1ZXN0Q3VzdG9tLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQk9iamVjdFN0b3JlUmVx
dWVzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOElEQk9iamVjdFN0b3JlUmVxdWVzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CisjaW5jbHVkZSAiVjhJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKKworI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOElEQk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3Zl
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICAvLyBUT0RPOiBpbXBs
ZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmFk
ZE9yTW9kaWZ5Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICAvLyBU
T0RPOiBpbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdjg6OlVu
ZGVmaW5lZCgpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJREJPYmplY3RTdG9yZVJl
cXVlc3Q6Om1vZGlmeUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAg
Ly8gVE9ETzogaW1wbGVtZW50LgorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHY4
OjpVbmRlZmluZWQoKTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjphZGRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAg
IC8vIFRPRE86IGltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2
ODo6VW5kZWZpbmVkKCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOElEQk9iamVjdFN0
b3JlUmVxdWVzdDo6Z2V0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAg
ICAvLyBUT0RPOiBpbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3Jl
LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIklEQk9iamVjdFN0b3JlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBGSVhNRTogV3JpdGUuCisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCT2JqZWN0U3RvcmVfaAor
I2RlZmluZSBJREJPYmplY3RTdG9yZV9oCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisK
KyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisv
LyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJREJPYmplY3RTdG9yZVJlcXVlc3QgKGFzeW5jKSBh
bmQgSURCT2JqZWN0U3RvcmVTeW5jIChzeW5jKS4KK2NsYXNzIElEQk9iamVjdFN0b3JlIDogcHVi
bGljIFRocmVhZFNhZmVTaGFyZWQ8SURCT2JqZWN0U3RvcmU+IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5JREJPYmplY3RTdG9yZSgpIHsgfQorICAgIC8vIFRPRE86IEltcGxlbWVudC4KK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJPYmplY3RT
dG9yZV9oCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitTdHJpbmcgSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpuYW1lKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9uYW1lOworfQorCitTdHJpbmcgSURCT2JqZWN0U3RvcmVSZXF1ZXN0
OjprZXlQYXRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlQYXRoOworfQorCitJREJPYmpl
Y3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdCgpCit7Cit9CisKK0lEQk9iamVj
dFN0b3JlUmVxdWVzdDo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0KFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmU+IGlkYlN0b3JlKSA6IG1fc3RvcmUoaWRiU3RvcmUpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBXZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBD
b21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBJREJPYmplY3RTdG9yZVJlcXVlc3RfaAorI2RlZmluZSBJREJPYmplY3RTdG9y
ZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Vu
dXNlZFBhcmFtLmg+CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBJREJPYmplY3RTdG9yZVJlcXVlc3QgOiBwdWJsaWMgUmVmQ291
bnRlZDxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlPiBpZGJPYmplY3RTdG9yZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SURCT2JqZWN0U3RvcmVSZXF1ZXN0KGlkYk9iamVjdFN0b3JlKSk7CisgICAgfQorICAgIH5JREJP
YmplY3RTdG9yZVJlcXVlc3QoKSB7IH0KKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OworICAgIFN0
cmluZyBrZXlQYXRoKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgSURCT2JqZWN0U3RvcmVSZXF1
ZXN0KCk7CisgICAgZXhwbGljaXQgSURCT2JqZWN0U3RvcmVSZXF1ZXN0KFBhc3NSZWZQdHI8SURC
T2JqZWN0U3RvcmU+KTsKKworICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5nIG1fa2V5UGF0
aDsKKyAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmU+IG1fc3RvcmU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURCRGF0YWJhc2VSZXF1ZXN0X2gK
KwoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAg
IENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKKyAgICBdIElEQk9iamVjdFN0b3JlUmVxdWVz
dCB7CisgICAgICAgIFtDdXN0b21dIElEQlJlcXVlc3QgZ2V0KGluIGFueSBrZXkpOworICAgICAg
ICBbQ3VzdG9tXSBJREJSZXF1ZXN0IGFkZChpbiBhbnkgdmFsdWUsIGluIG9wdGlvbmFsIGFueSBr
ZXkpOworICAgICAgICBbQ3VzdG9tXSBJREJSZXF1ZXN0IG1vZGlmeShpbiBhbnkgdmFsdWUsIGlu
IG9wdGlvbmFsIGFueSBrZXkpOworICAgICAgICBbQ3VzdG9tXSBJREJSZXF1ZXN0IGFkZE9yTW9k
aWZ5KGluIGFueSB2YWx1ZSwgaW4gb3B0aW9uYWwgYW55IGtleSk7CisgICAgICAgIFtDdXN0b21d
IElEQlJlcXVlc3QgcmVtb3ZlKGluIGFueSBrZXkpOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBrZXlQYXRoOworICAgIH07Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56718</attachid>
            <date>2010-05-21 09:42:45 -0700</date>
            <delta_ts>2010-05-24 10:46:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39490-20100521174243.patch</filename>
            <type>text/plain</type>
            <size>32197</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTkzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDUtMjEgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluZGV4ZWQgRGF0YWJhc2UgY29tcG9uZW50IGlzIG1pc3NpbmcgSURCT2JqZWN0U3RvcmVSZXF1
ZXN0IGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzk0OTAKKworICAgICAgICBBZGRpbmcgSURMIGFuZCBzdHViIGltcGxlbWVudGF0aW9u
IGZvciBJREJPYmplY3RTdG9yZVJlcXVlc3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBpbmRl
eGVkIGRhdGFiYXNlIGlzbid0IHlldCB0ZXN0YWJsZS4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJREJPYmplY3RTdG9yZVJl
cXVlc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJPYmplY3RTdG9yZVJl
cXVlc3Q6OmFkZE9yTW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJPYmplY3RTdG9yZVJlcXVl
c3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0lEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJREJPYmplY3RTdG9yZVJlcXVlc3RD
dXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4SURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpyZW1vdmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOElEQk9iamVjdFN0b3Jl
UmVxdWVzdDo6YWRkT3JNb2RpZnlDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6bW9kaWZ5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhJ
REJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXRDYWxsYmFjayk6CisgICAgICAgICogc3RvcmFnZS9J
REJPYmplY3RTdG9yZS5jcHA6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6fklEQk9iamVj
dFN0b3JlKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpuYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6a2V5UGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdCk6
CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6On5JREJPYmplY3RTdG9yZVJlcXVlc3QpOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDogQWRkZWQuCisKIDIw
MTAtMDUtMjEgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiA1
OTkzMCkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzMsNiArMTczLDcgQEAKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAiCiAjaW5j
bHVkZSAiSlNJREJFcnJvckV2ZW50LmNwcCIKICNpbmNsdWRlICJKU0lEQkV2ZW50LmNwcCIKKyNp
bmNsdWRlICJKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAiCiAjaW5jbHVkZSAiSlNJREJSZXF1
ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQlN1Y2Nlc3NFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNJ
bWFnZURhdGEuY3BwIgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNTk5MzApCisrKyBX
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYs
NyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBJREJEYXRhYmFzZVJlcXVlc3QgXAogICAgIElEQkVy
cm9yRXZlbnQgXAogICAgIElEQkV2ZW50IFwKKyAgICBJREJPYmplY3RTdG9yZVJlcXVlc3QgXAog
ICAgIElEQlJlcXVlc3QgXAogICAgIElEQlN1Y2Nlc3NFdmVudCBcCiAgICAgSW1hZ2VEYXRhIFwK
SW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDUyLDYgKzI0NTIsNyBAQCBJRExfQklORElOR1MgKz0gXAogCVdl
YkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2Uv
SURCRXJyb3JFdmVudC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5pZGwgXAorCVdl
YkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0b3Jh
Z2UvSURCUmVxdWVzdC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuaWRs
IFwKIAlXZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKQEAgLTI0NjEs
NiArMjQ2Miw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCiB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNJREJSZXF1ZXN0Q3VzdG9tLmNwcCBcCisgICAgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0lEQk9iamVjdFN0b3JlUmVxdWVzdEN1c3RvbS5jcHAgXAogCVdl
YkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCQW55LmggXAog
CVdlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuY3BwIFwKQEAgLTI0NzUsNiArMjQ3NywxMCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFcnJvckV2ZW50Lmgg
XAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJF
dmVudC5oIFwKKyAgICBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwIFwKKyAgICBX
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaCBcCisgICAgV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgXAorICAgIFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZVJlcXVlc3QuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIFwKIAlXZWJD
b3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCU3VjY2Vzc0V2
ZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lw
aQkod29ya2luZyBjb3B5KQpAQCAtMjI5LDYgKzIyOSw3IEBACiAgICAgICAgICAgICAnc3RvcmFn
ZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9y
RXZlbnQuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkV2ZW50LmlkbCcsCisgICAgICAg
ICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdz
dG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlN1Y2Nlc3NF
dmVudC5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5p
ZGwnLApAQCAtNzYyLDYgKzc2Myw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhJREJPYmplY3RTdG9yZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEphdmFTY3JpcHRDYWxsRnJh
bWVDdXN0b20uY3BwJywKQEAgLTMzNTMsNiArMzM1NSwxMCBAQAogICAgICAgICAgICAgJ3N0b3Jh
Z2UvSURCRXZlbnQuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9JREJFcnJvckV2ZW50LmgnLAorICAgICAgICAgICAgJ3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNw
cCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaCcsCiAgICAg
ICAgICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNwcCcs
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5wcmkJKHJldmlzaW9uIDU5OTMwKQorKysgV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBj
b3B5KQpAQCAtNDQ5LDYgKzQ0OSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgc3RvcmFnZS9J
REJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuaWRsIFwK
ICAgICBzdG9yYWdlL0lEQkV2ZW50LmlkbCBcCisgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZVJl
cXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQlJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lE
QlN1Y2Nlc3NFdmVudC5pZGwgXAogICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5p
ZGwgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUucHJvCShyZXZpc2lvbiA1OTkzMCkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtp
bmcgY29weSkKQEAgLTIzMzEsNiArMjMzMSw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVMKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaCBcCiAg
ICAgICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJFdmVu
dC5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oIFwKKyAgICAgICAgc3RvcmFn
ZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5o
IFwKICAgICAgICAgc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuaCBcCiAgICAgICAgIHN0b3JhZ2Uv
SW5kZXhlZERhdGFiYXNlLmggXApAQCAtMjM0NCw2ICsyMzQ2LDggQEAgY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX0lOREVYRURfREFUQUJBUwogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVx
dWVzdC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwIFwKICAgICAgICAg
c3RvcmFnZS9JREJFdmVudC5jcHAgXAorICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNw
cCBcCisgICAgICAgIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCBcCiAgICAgICAg
IHN0b3JhZ2UvSURCUmVxdWVzdC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVu
dC5jcHAgXAogICAgICAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5jcHAgXApJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDU5OTMwKQor
KysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTQyMjUsNiArNDIyNSwxMSBAQAogCQlCNUMxMTIzQjEwMkI2QzQ2MDAwOTY1NzggLyog
U1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCNUMxMTIzOTEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNh
Y3Rpb25Db29yZGluYXRvci5jcHAgKi87IH07CiAJCUI1QzExMjNDMTAyQjZDNDYwMDA5NjU3OCAv
KiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCNUMxMTIzQTEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNh
Y3Rpb25Db29yZGluYXRvci5oICovOyB9OwogCQlCNUQzNjAxQTExMkY4QjU2MDA0OERFQTggLyog
RGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjVEMzYwMTkxMTJGOEI1NjAwNDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCAq
LzsgfTsKKwkJQjY3MTg4NzcxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2NzE4ODc1MTFB
NkQ4RTgwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZS5jcHAgKi87IH07CisJCUI2NzE4ODc4MTFB
NkQ4RTgwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjY3MTg4NzYxMUE2RDhFODAwOEY3REJCIC8qIElEQk9i
amVjdFN0b3JlLmggKi87IH07CisJCUI2NzE4ODdDMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmpl
Y3RTdG9yZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjY3MTg4N0ExMUE2RDhGNDAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVz
dC5jcHAgKi87IH07CisJCUI2NzE4ODdEMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9y
ZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI2NzE4ODdCMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCAqLzsg
fTsKKwkJQjY3MTg4ODMxMUE2RDlEQjAwOEY3REJCIC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI2NzE4ODgyMTFBNkQ5REIwMDhGN0RCQiAvKiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdEN1c3Rv
bS5jcHAgKi87IH07CiAJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI3NzZENDNB
MTEwNDUyNUQwMEJFQjBFQyAvKiBQcmludENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCNzc2RDQzRDExMDQ1Mjc1MDBCRUIwRUMgLyog
UHJpbnRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEI3NzZENDNDMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3BwICovOyB9
OwogCQlCQzAwRjAwNDBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUz
IC8qIERPTUZpbGUuaCAqLzsgfTsKQEAgLTk2ODQsNiArOTY4OSwxMiBAQAogCQlCNUMxMTIzOTEw
MkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjVDMTEyM0ExMDJCNkM0NjAwMDk2NTc4
IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCNUQzNjAxOTExMkY4QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhYmFzZUNhbGxiYWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NzE4ODc1MTFBNkQ4RTgwMDhGN0RCQiAvKiBJ
REJPYmplY3RTdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
REJPYmplY3RTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NzE4ODc2
MTFBNkQ4RTgwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJREJPYmplY3RTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCNjcxODg3QTExQTZEOEY0MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQk9iamVjdFN0b3JlUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NzE4ODdCMTFBNkQ4RjQw
MDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSURCT2JqZWN0U3RvcmVSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUI2NzE4ODdFMTFBNkQ5MDIwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVl
c3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IElEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NzE4ODgyMTFBNkQ5REIwMDhGN0RCQiAv
KiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI3NzZENDNBMTEwNDUyNUQwMEJFQjBFQyAvKiBQcmlu
dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpbnRDb250ZXh0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI3NzZENDNDMTEwNDUyNzUwMEJFQjBF
QyAvKiBQcmludENvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUHJpbnRDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMEVG
RkUwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NRmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA5NTIs
NiArMTA5NjMsMTEgQEAKIAkJMUFFODJFQzkwQ0FBRTE3NzAwMjIzN0FFIC8qIHN0b3JhZ2UgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUI2NzE4ODdFMTFB
NkQ5MDIwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsICovLAorCQkJCUI2NzE4
ODdBMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwICovLAorCQkJ
CUI2NzE4ODdCMTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCAqLywK
KwkJCQlCNjcxODg3NTExQTZEOEU4MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmUuY3BwICovLAor
CQkJCUI2NzE4ODc2MTFBNkQ4RTgwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZS5oICovLAogCQkJ
CUI1QjVEQzY3MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFjdERhdGFiYXNlLmNwcCAqLywKIAkJ
CQlCNUI1REM2ODExOUJCM0Q1MDAyQTg3OTAgLyogQWJzdHJhY3REYXRhYmFzZS5oICovLAogCQkJ
CTUxNDE4NUVEMENENjVGMDQwMDc2M0M5OSAvKiBDaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAgKi8s
CkBAIC0xNTM3Miw2ICsxNTM4OCw3IEBACiAJCQkJQkMxN0Y5NjUwQjY0RUJCODAwNEE2NUNCIC8q
IEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUFCNENCNEVBMEI4QkRBM0Qw
MDlGNDBCMCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmggKi8sCiAJCQkJQzU2QzkxNEQx
MTlEODQ5ODAwREU0Q0Q5IC8qIEpTSURCQW55Q3VzdG9tLmNwcCAqLywKKwkJCQlCNjcxODg4MjEx
QTZEOURCMDA4RjdEQkIgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3RDdXN0b20uY3BwICovLAog
CQkJCUE3RDAzMThEMEU5MzU0MDMwMEUyNEFDRCAvKiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8s
CiAJCQkJN0EwRTc2RDQxMEJGMDUwNzAwQTAyNzZFIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcCAqLywKIAkJCQk3QTc0RUNCQzEwMTgzOURBMDBCRjkzOUUgLyogSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwICovLApAQCAtMTkyODYsNiArMTkzMDMsOCBAQAogCQkJCTU5
QTg1RUE0MTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1OUE4NjAwODExOURBRkExMDBERUYxRUYgLyogSlNEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTNGQUEwOTExQTM2QkYxMDA1NzY2MjQg
LyogQ3Jvc3NUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlCNjcxODg3ODExQTZEOEU4
MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCUI2NzE4ODdE
MTFBNkQ4RjQwMDhGN0RCQiAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjE1NzEsNiArMjE1OTAsOSBAQAogCQkJCTUxMzI3RDYxMTFBMzNBMkIwMDRGOUQ2NSAv
KiBTaW5rRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTlBODVFQTIxMTlENjhEOTAw
REVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCNjcxODg3NzExQTZEOEU4MDA4RjdEQkIgLyogSURCT2JqZWN0
U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjY3MTg4N0MxMUE2RDhGNDAwOEY3REJCIC8q
IElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCNjcxODg4MzEx
QTZEOURCMDA4RjdEQkIgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3RDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCT2JqZWN0U3RvcmVSZXF1
ZXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNJREJPYmplY3RTdG9yZVJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorI2luY2x1ZGUgIkpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCisjaW5jbHVkZSA8
d3RmL1VudXNlZFBhcmFtLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworSlNDOjpKU1ZhbHVlIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6QXJnTGlzdCYgYXJncykKK3sKKyAgICAv
LyBUT0RPOiBpbXBsZW1lbnQuCisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFVOVVNFRF9Q
QVJBTShhcmdzKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOworfQorCitKU0M6OkpTVmFsdWUgSlNJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZE9yTW9k
aWZ5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OkFyZ0xpc3QmIGFyZ3MpCit7Cisg
ICAgLy8gVE9ETzogaW1wbGVtZW50LgorICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBVTlVT
RURfUEFSQU0oYXJncyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKK30KKworSlNDOjpKU1ZhbHVlIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojptb2Rp
ZnkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6QXJnTGlzdCYgYXJncykKK3sKKyAg
ICAvLyBUT0RPOiBpbXBsZW1lbnQuCisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFVOVVNF
RF9QQVJBTShhcmdzKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworfQorCitKU0M6OkpTVmFsdWUgSlNJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZChK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpBcmdMaXN0JiBhcmdzKQoreworICAgIC8v
IFRPRE86IGltcGxlbWVudC4KKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVU5VU0VEX1BB
UkFNKGFyZ3MpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0KEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OkFyZ0xpc3QmIGFyZ3MpCit7CisgICAgLy8gVE9E
TzogaW1wbGVtZW50LgorICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBVTlVTRURfUEFSQU0o
YXJncyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURC
T2JqZWN0U3RvcmVSZXF1ZXN0Q3VzdG9tLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRh
YmxlCiAgICsgKgoKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCT2JqZWN0
U3RvcmVSZXF1ZXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOElEQk9iamVjdFN0b3JlUmVxdWVzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQk9iamVjdFN0b3JlUmVxdWVzdEN1c3Rv
bS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisjaW5jbHVkZSAiVjhJREJPYmplY3RTdG9yZVJl
cXVlc3QuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVjhQcm94
eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOElE
Qk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3ZlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZE9yTW9kaWZ5Q2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQuCisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworfQorCit2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhJREJPYmplY3RTdG9yZVJlcXVlc3Q6Om1vZGlmeUNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50LgorICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKK30KKwordjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjphZGRDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIC8vIFRPRE86IGltcGxlbWVudC4KKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Cit9CisKK3Y4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOElEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0Q2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQuCisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKSW5k
ZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCisKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBGSVhN
RTogV3JpdGUuCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmUuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAq
CgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgSURCT2JqZWN0U3RvcmVfaAorI2RlZmluZSBJREJPYmplY3RTdG9yZV9oCisKKyNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJREJP
YmplY3RTdG9yZVJlcXVlc3QgKGFzeW5jKSBhbmQgSURCT2JqZWN0U3RvcmVTeW5jIChzeW5jKS4K
K2NsYXNzIElEQk9iamVjdFN0b3JlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCT2JqZWN0
U3RvcmU+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5JREJPYmplY3RTdG9yZSgpIHsgfQorICAg
IC8vIFRPRE86IEltcGxlbWVudC4KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCisKKyNlbmRpZiAvLyBJREJPYmplY3RTdG9yZV9oCisKClByb3BlcnR5IGNoYW5nZXMgb246
IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4
ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgiCisKKyNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgSURCT2JqZWN0
U3RvcmVSZXF1ZXN0OjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uYW1lOworfQorCitT
dHJpbmcgSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjprZXlQYXRoKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9rZXlQYXRoOworfQorCitJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3Jl
UmVxdWVzdCgpCit7Cit9CisKK0lEQk9iamVjdFN0b3JlUmVxdWVzdDo6SURCT2JqZWN0U3RvcmVS
ZXF1ZXN0KFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGlkYlN0b3JlKSA6IG1fc3RvcmUoaWRi
U3RvcmUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJs
ZQogICArICoKCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJPYmplY3RTdG9yZVJlcXVl
c3RfaAorI2RlZmluZSBJREJPYmplY3RTdG9yZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiSURCT2Jq
ZWN0U3RvcmUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisKKyNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJPYmplY3RT
dG9yZVJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IGNy
ZWF0ZShQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBpZGJPYmplY3RTdG9yZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCT2JqZWN0U3RvcmVSZXF1ZXN0KGlkYk9iamVj
dFN0b3JlKSk7CisgICAgfQorICAgIH5JREJPYmplY3RTdG9yZVJlcXVlc3QoKSB7IH0KKyAgICBT
dHJpbmcgbmFtZSgpIGNvbnN0OworICAgIFN0cmluZyBrZXlQYXRoKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgSURCT2JqZWN0U3RvcmVSZXF1ZXN0KCk7CisgICAgZXhwbGljaXQgSURCT2JqZWN0
U3RvcmVSZXF1ZXN0KFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+KTsKKworICAgIFN0cmluZyBt
X25hbWU7CisgICAgU3RyaW5nIG1fa2V5UGF0aDsKKyAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmU+
IG1fc3RvcmU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5k
aWYgLy8gSURCRGF0YWJhc2VSZXF1ZXN0X2gKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4
ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsK
KworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UK
KyAgICBdIElEQk9iamVjdFN0b3JlUmVxdWVzdCB7CisgICAgICAgIFtDdXN0b21dIElEQlJlcXVl
c3QgZ2V0KGluIGFueSBrZXkpOworICAgICAgICBbQ3VzdG9tXSBJREJSZXF1ZXN0IGFkZChpbiBh
bnkgdmFsdWUsIGluIG9wdGlvbmFsIGFueSBrZXkpOworICAgICAgICBbQ3VzdG9tXSBJREJSZXF1
ZXN0IG1vZGlmeShpbiBhbnkgdmFsdWUsIGluIG9wdGlvbmFsIGFueSBrZXkpOworICAgICAgICBb
Q3VzdG9tXSBJREJSZXF1ZXN0IGFkZE9yTW9kaWZ5KGluIGFueSB2YWx1ZSwgaW4gb3B0aW9uYWwg
YW55IGtleSk7CisgICAgICAgIFtDdXN0b21dIElEQlJlcXVlc3QgcmVtb3ZlKGluIGFueSBrZXkp
OworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBrZXlQYXRoOworICAgIH07Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56902</attachid>
            <date>2010-05-24 10:47:05 -0700</date>
            <delta_ts>2010-05-25 10:54:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39490-20100524184702.patch</filename>
            <type>text/plain</type>
            <size>37930</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTkzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDUtMjEgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluZGV4ZWQgRGF0YWJhc2UgY29tcG9uZW50IGlzIG1pc3NpbmcgSURCT2JqZWN0U3RvcmVSZXF1
ZXN0IGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzk0OTAKKworICAgICAgICBBZGRpbmcgSURMIGFuZCBzdHViIGltcGxlbWVudGF0aW9u
IGZvciBJREJPYmplY3RTdG9yZVJlcXVlc3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBpbmRl
eGVkIGRhdGFiYXNlIGlzbid0IHlldCB0ZXN0YWJsZS4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJREJPYmplY3RTdG9yZVJl
cXVlc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJPYmplY3RTdG9yZVJl
cXVlc3Q6OmFkZE9yTW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJPYmplY3RTdG9yZVJlcXVl
c3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0lEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJREJPYmplY3RTdG9yZVJlcXVlc3RD
dXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4SURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpyZW1vdmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOElEQk9iamVjdFN0b3Jl
UmVxdWVzdDo6YWRkT3JNb2RpZnlDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6bW9kaWZ5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhJ
REJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXRDYWxsYmFjayk6CisgICAgICAgICogc3RvcmFnZS9J
REJPYmplY3RTdG9yZS5jcHA6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6fklEQk9iamVj
dFN0b3JlKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpuYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6a2V5UGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdCk6
CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6On5JREJPYmplY3RTdG9yZVJlcXVlc3QpOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDogQWRkZWQuCisKIDIw
MTAtMDUtMjEgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNTk5MzApCisr
KyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMTQsNiArMzE0LDE2
IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIHN0b3JhZ2UvRGF0YWJhc2UuaWRsCiAgICAg
c3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbAogICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmlk
bAorICAgIHN0b3JhZ2UvSURCQW55LmlkbAorICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5p
ZGwKKyAgICBzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAorICAgIHN0b3JhZ2UvSURC
RGF0YWJhc2VSZXF1ZXN0LmlkbAorICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5pZGwKKyAgICBz
dG9yYWdlL0lEQkV2ZW50LmlkbAorICAgIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0Lmlk
bAorICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5pZGwKKyAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVu
dC5pZGwKKyAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsCiAgICAgc3RvcmFn
ZS9TUUxFcnJvci5pZGwKICAgICBzdG9yYWdlL1NRTFJlc3VsdFNldC5pZGwKICAgICBzdG9yYWdl
L1NRTFJlc3VsdFNldFJvd0xpc3QuaWRsCkBAIC0xMzM3LDYgKzEzNDcsMTggQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIHN0b3JhZ2UvRGF0YWJhc2VUcmFja2VyLmNwcAogICAgIHN0b3JhZ2Uv
TG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2FsU3RvcmFnZVRocmVhZC5jcHAK
KyAgICBzdG9yYWdlL0lEQkFueS5jcHAKKyAgICBzdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAorICAg
IHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcAorICAgIHN0b3JhZ2UvSURCRXZlbnQuY3Bw
CisgICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcAorICAgIHN0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuY3BwCisgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCisgICAgc3RvcmFn
ZS9JREJSZXF1ZXN0LmNwcAorICAgIHN0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNwcAorICAgIHN0
b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmNwcAorICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1w
bC5jcHAKKyAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCiAgICAgc3RvcmFn
ZS9PcmlnaW5RdW90YU1hbmFnZXIuY3BwCiAgICAgc3RvcmFnZS9PcmlnaW5Vc2FnZVJlY29yZC5j
cHAKICAgICBzdG9yYWdlL1NRTFJlc3VsdFNldC5jcHAKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZp
c2lvbiA1OTkzMCkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzMsNiArMTczLDcgQEAKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAi
CiAjaW5jbHVkZSAiSlNJREJFcnJvckV2ZW50LmNwcCIKICNpbmNsdWRlICJKU0lEQkV2ZW50LmNw
cCIKKyNpbmNsdWRlICJKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAiCiAjaW5jbHVkZSAiSlNJ
REJSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQlN1Y2Nlc3NFdmVudC5jcHAiCiAjaW5jbHVk
ZSAiSlNJbWFnZURhdGEuY3BwIgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNTk5MzAp
CisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2
ICsyMTYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBJREJEYXRhYmFzZVJlcXVlc3QgXAogICAg
IElEQkVycm9yRXZlbnQgXAogICAgIElEQkV2ZW50IFwKKyAgICBJREJPYmplY3RTdG9yZVJlcXVl
c3QgXAogICAgIElEQlJlcXVlc3QgXAogICAgIElEQlN1Y2Nlc3NFdmVudCBcCiAgICAgSW1hZ2VE
YXRhIFwKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUyLDYgKzI0NTIsNyBAQCBJRExfQklORElOR1MgKz0g
XAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0
b3JhZ2UvSURCRXJyb3JFdmVudC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5pZGwg
XAorCVdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsIFwKIAlXZWJDb3Jl
L3N0b3JhZ2UvSURCUmVxdWVzdC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNzRXZl
bnQuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKQEAg
LTI0NzUsNiArMjQ3NiwxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3RvcmFn
ZS9JREJFcnJvckV2ZW50LmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5jcHAgXAogCVdl
YkNvcmUvc3RvcmFnZS9JREJFdmVudC5oIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuY3BwIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaCBcCisJV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgXAorCVdlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZVJlcXVlc3QuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIFwK
IAlXZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCU3Vj
Y2Vzc0V2ZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL1dlYkNv
cmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjI5LDYgKzIyOSw3IEBACiAgICAgICAgICAgICAn
c3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lE
QkVycm9yRXZlbnQuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkV2ZW50LmlkbCcsCisg
ICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsJywKICAgICAgICAg
ICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlN1
Y2Nlc3NFdmVudC5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVx
dWVzdC5pZGwnLApAQCAtMzM1Myw2ICszMzU0LDEwIEBACiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJFdmVudC5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwJywKICAg
ICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQuaCcsCisgICAgICAgICAgICAnc3RvcmFn
ZS9JREJPYmplY3RTdG9yZS5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwJywK
KyAgICAgICAgICAgICdzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oJywKICAgICAgICAg
ICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlJl
cXVlc3QuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuY3BwJywKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBy
aQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkp
CkBAIC00NDksNiArNDQ5LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBzdG9yYWdlL0lEQkRh
dGFiYXNlUmVxdWVzdC5pZGwgXAogICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5pZGwgXAogICAg
IHN0b3JhZ2UvSURCRXZlbnQuaWRsIFwKKyAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVz
dC5pZGwgXAogICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5pZGwgXAogICAgIHN0b3JhZ2UvSURCU3Vj
Y2Vzc0V2ZW50LmlkbCBcCiAgICAgc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbCBc
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5wcm8JKHJldmlzaW9uIDU5OTMwKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBj
b3B5KQpAQCAtMjMzMSw2ICsyMzMxLDggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOREVY
RURfREFUQUJBUwogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oIFwKICAgICAg
ICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmggXAogICAgICAgICBzdG9yYWdlL0lEQkV2ZW50Lmgg
XAorICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmggXAorICAgICAgICBzdG9yYWdlL0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJSZXF1ZXN0LmggXAog
ICAgICAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5oIFwKICAgICAgICAgc3RvcmFnZS9JbmRl
eGVkRGF0YWJhc2UuaCBcCkBAIC0yMzQ0LDYgKzIzNDYsOCBAQCBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0
LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAgXAogICAgICAgICBzdG9y
YWdlL0lEQkV2ZW50LmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwIFwK
KyAgICAgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIFwKICAgICAgICAgc3Rv
cmFnZS9JREJSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNw
cCBcCiAgICAgICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmNwcCBcCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDU5OTMwKQorKysgV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzgzNjQsNiAr
MzgzNjQsNjIgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdf
SW50ZXJuYWx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJ
Pg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJ
Lz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJ
CQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJ
CVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJSZXF1ZXN0LmNwcCINCiAJCQkJ
CT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTQzNzk3LDYgKzQzODUzLDU0IEBACiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3Jh
Z2VcSURCQW55LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2UuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJEYXRhYmFzZVJl
cXVlc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxJREJFdmVudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkVycm9yRXZlbnQuY3BwIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Rv
cmFnZVxJREJPYmplY3RTdG9yZS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dG9yYWdlXElEQlJlcXVlc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJTdWNjZXNzRXZlbnQuY3BwIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJ
bmRleGVkRGF0YWJhc2UuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJbmRleGVkRGF0YWJhc2VJbXBsLmNwcCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2Vc
SW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2FsU3RvcmFnZVRhc2suY3BwIg0K
IAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiA1OTkzMCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MjI1LDYgKzQyMjUsMTIgQEAK
IAkJQjVDMTEyM0IxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVDMTEy
MzkxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwICovOyB9
OwogCQlCNUMxMTIzQzEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVDMTEy
M0ExMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCAqLzsgfTsK
IAkJQjVEMzYwMUExMTJGOEI1NjAwNDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1RDM2MDE5MTEyRjhCNTYw
MDQ4REVBOCAvKiBEYXRhYmFzZUNhbGxiYWNrLmggKi87IH07CisJCUI2NDZBNDkxMTFBQUNDQjQw
MEUxNDU3RSAvKiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjQ2QTQ4RjExQUFDQ0I0MDBFMTQ1N0UgLyog
SlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwICovOyB9OworCQlCNjQ2QTQ5MjExQUFDQ0I0MDBF
MTQ1N0UgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2NDZBNDkwMTFBQUNDQjQwMEUxNDU3RSAvKiBKU0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5oICovOyB9OworCQlCNjcxODg3NzExQTZEOEU4MDA4RjdEQkIg
LyogSURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjY3MTg4NzUxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmNw
cCAqLzsgfTsKKwkJQjY3MTg4NzgxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjcxODg3NjEx
QTZEOEU4MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmUuaCAqLzsgfTsKKwkJQjY3MTg4N0MxMUE2
RDhGNDAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjcxODg3QTExQTZEOEY0MDA4RjdEQkIg
LyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJQjY3MTg4N0QxMUE2RDhGNDAw
OEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjY3MTg4N0IxMUE2RDhGNDAwOEY3REJCIC8qIElEQk9i
amVjdFN0b3JlUmVxdWVzdC5oICovOyB9OwogCQlCNzFGRTZERjExMDkxQ0IzMDBEQUVGNzcgLyog
UHJpbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCNzc2RDQzQTExMDQ1MjVEMDBCRUIwRUMgLyogUHJpbnRDb250ZXh0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjc3NkQ0M0QxMTA0NTI3
NTAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCNzc2RDQzQzExMDQ1Mjc1MDBCRUIwRUMgLyogUHJpbnRDb250
ZXh0LmNwcCAqLzsgfTsKIAkJQkMwMEYwMDQwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDBFRkZFMEUw
QTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLmggKi87IH07CkBAIC05Njg0LDYgKzk2OTAsMTMgQEAK
IAkJQjVDMTEyMzkxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1FMVHJhbnNhY3Rpb25D
b29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1QzExMjNBMTAy
QjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjVEMzYwMTkxMTJGOEI1NjAwNDhERUE4IC8qIERhdGFi
YXNlQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VD
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNjQ2QTQ4RjExQUFDQ0I0
MDBFMTQ1N0UgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCNjQ2QTQ5MDExQUFDQ0I0MDBFMTQ1N0UgLyogSlNJREJP
YmplY3RTdG9yZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
REJPYmplY3RTdG9yZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjY3
MTg4NzUxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQk9iamVjdFN0b3JlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjY3MTg4NzYxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0
b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQk9iamVjdFN0b3JlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NzE4ODdBMTFBNkQ4RjQwMDhGN0RCQiAv
KiBJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQjY3MTg4N0IxMUE2RDhGNDAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJPYmplY3RTdG9yZVJlcXVl
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjY3MTg4N0UxMUE2RDkwMjAwOEY3
REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Qjc3NkQ0M0ExMTA0NTI1RDAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQcmludENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjc3NkQ0M0MxMTA0NTI3NTAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmludENvbnRleHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwRUZGRTBFMEExODU1MDBGRDA0RTMgLyogRE9N
RmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01GaWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk1Miw2ICsxMDk2NSwxMSBAQAogCQkxQUU4MkVD
OTBDQUFFMTc3MDAyMjM3QUUgLyogc3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJQjY3MTg4N0UxMUE2RDkwMjAwOEY3REJCIC8qIElEQk9iamVj
dFN0b3JlUmVxdWVzdC5pZGwgKi8sCisJCQkJQjY3MTg4N0ExMUE2RDhGNDAwOEY3REJCIC8qIElE
Qk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgKi8sCisJCQkJQjY3MTg4N0IxMUE2RDhGNDAwOEY3REJC
IC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5oICovLAorCQkJCUI2NzE4ODc1MTFBNkQ4RTgwMDhG
N0RCQiAvKiBJREJPYmplY3RTdG9yZS5jcHAgKi8sCisJCQkJQjY3MTg4NzYxMUE2RDhFODAwOEY3
REJCIC8qIElEQk9iamVjdFN0b3JlLmggKi8sCiAJCQkJQjVCNURDNjcxMTlCQjNENTAwMkE4Nzkw
IC8qIEFic3RyYWN0RGF0YWJhc2UuY3BwICovLAogCQkJCUI1QjVEQzY4MTE5QkIzRDUwMDJBODc5
MCAvKiBBYnN0cmFjdERhdGFiYXNlLmggKi8sCiAJCQkJNTE0MTg1RUQwQ0Q2NUYwNDAwNzYzQzk5
IC8qIENoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCAqLywKQEAgLTE0MzI3LDYgKzE0MzQ1LDggQEAK
IAkJQTgzQjc5MTUwQ0NCMDA3ODAwMEIwODI1IC8qIFN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUI2NDZBNDhGMTFBQUNDQjQwMEUxNDU3RSAv
KiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgKi8sCisJCQkJQjY0NkE0OTAxMUFBQ0NCNDAw
RTE0NTdFIC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggKi8sCiAJCQkJMUFFODJGOEQwQ0FB
RkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuY3BwICovLAogCQkJCTFBRTgyRjhFMENBQUZBOUQw
MDIyMzdBRSAvKiBKU0RhdGFiYXNlLmggKi8sCiAJCQkJQzU2QzkxOTgxMTlEOTE1MzAwREU0Q0Q5
IC8qIEpTSURCQW55LmNwcCAqLywKQEAgLTE5Mjg2LDYgKzE5MzA2LDkgQEAKIAkJCQk1OUE4NUVB
NDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTlBODYwMDgxMTlEQUZBMTAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUzRkFBMDkxMUEzNkJGMTAwNTc2NjI0IC8qIENy
b3NzVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjY3MTg4NzgxMUE2RDhFODAwOEY3
REJCIC8qIElEQk9iamVjdFN0b3JlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCNjcxODg3RDExQTZE
OEY0MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlCNjQ2QTQ5MjExQUFDQ0I0MDBFMTQ1N0UgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjE1NzEsNiArMjE1OTQsOSBAQAogCQkJCTUxMzI3RDYxMTFBMzNB
MkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTlBODVF
QTIxMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRp
b25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCNjcxODg3NzExQTZEOEU4MDA4RjdEQkIg
LyogSURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjY3MTg4N0MxMUE2RDhG
NDAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlCNjQ2QTQ5MTExQUFDQ0I0MDBFMTQ1N0UgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9t
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNw
cAkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsOCArMzYsMTAgQEAKIAogI2luY2x1ZGUgIklEQkFu
eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIklEQk9iamVj
dFN0b3JlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJKU0lEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkpTSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKQEAgLTU1LDYgKzU3LDggQEAgSlNWYWx1
ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VSZXF1ZXN0VHlwZToKICAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkRhdGFiYXNlUmVx
dWVzdCgpKTsKKyAgICBjYXNlIElEQkFueTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0VHlwZToKKyAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYk9iamVjdFN0
b3JlUmVxdWVzdCgpKTsKICAgICBjYXNlIElEQkFueTo6SW5kZXhlZERhdGFiYXNlUmVxdWVzdFR5
cGU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRiQW55LT5pbmRl
eGVkRGF0YWJhc2VSZXF1ZXN0KCkpOwogICAgIGNhc2UgSURCQW55OjpTZXJpYWxpemVkU2NyaXB0
VmFsdWVUeXBlOgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55
Q3VzdG9tLmNwcAkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOElEQkFueUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKIAog
I2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlY4SURCRGF0YWJh
c2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiVjhJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJWOEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTAsNiArNTEsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJBbnkqIGltcGwp
CiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgY2FzZSBJREJBbnk6OklEQkRh
dGFiYXNlUmVxdWVzdFR5cGU6CiAgICAgICAgIHJldHVybiB0b1Y4KGltcGwtPmlkYkRhdGFiYXNl
UmVxdWVzdCgpKTsKKyAgICBjYXNlIElEQkFueTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0VHlwZToK
KyAgICAgICAgcmV0dXJuIHRvVjgoaW1wbC0+aWRiT2JqZWN0U3RvcmVSZXF1ZXN0KCkpOwogICAg
IGNhc2UgSURCQW55OjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlwZToKICAgICAgICAgcmV0dXJu
IHRvVjgoaW1wbC0+aW5kZXhlZERhdGFiYXNlUmVxdWVzdCgpKTsKICAgICBjYXNlIElEQkFueTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlVHlwZToKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJBbnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCShyZXZpc2lvbiA1
OTkzMCkKKysrIFdlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJ
REJEYXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCiAKQEAgLTU3LDYgKzU4LDEyIEBAIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VSZXF1ZXN0PiBJREJBbnk6OmkKICAgICByZXR1cm4gbV9pZGJEYXRhYmFzZVJlcXVlc3Q7CiB9
CiAKK1Bhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0PiBJREJBbnk6OmlkYk9iamVjdFN0
b3JlUmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBJREJPYmplY3RTdG9yZVJlcXVl
c3RUeXBlKTsKKyAgICByZXR1cm4gbV9pZGJPYmplY3RTdG9yZVJlcXVlc3Q7Cit9CisKIFBhc3NS
ZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gSURCQW55OjppbmRleGVkRGF0YWJhc2VSZXF1
ZXN0KCkKIHsKICAgICBBU1NFUlQobV90eXBlID09IEluZGV4ZWREYXRhYmFzZVJlcXVlc3RUeXBl
KTsKQEAgLTczLDYgKzgwLDE2IEBAIHZvaWQgSURCQW55OjpzZXQoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZVIKIHsKICAgICBtX3R5cGUgPSBJREJEYXRhYmFzZVJlcXVlc3RUeXBlOwogICAgIG1faWRi
RGF0YWJhc2VSZXF1ZXN0ID0gdmFsdWU7CisgICAgbV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSAw
OworICAgIG1faW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IDA7CisgICAgbV9zZXJpYWxpemVkU2Ny
aXB0VmFsdWUgPSAwOworfQorCit2b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmVSZXF1ZXN0PiB2YWx1ZSkKK3sKKyAgICBtX3R5cGUgPSBJREJPYmplY3RTdG9yZVJlcXVl
c3RUeXBlOworICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsKKyAgICBtX2lkYk9iamVjdFN0
b3JlUmVxdWVzdCA9IHZhbHVlOwogICAgIG1faW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IDA7CiAg
ICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOwogfQpAQCAtODEsNiArOTgsNyBAQCB2b2lk
IElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiCiB7CiAgICAgbV90eXBlID0gSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdFR5cGU7CiAgICAgbV9pZGJEYXRhYmFzZVJlcXVlc3QgPSAwOwor
ICAgIG1faWRiT2JqZWN0U3RvcmVSZXF1ZXN0ID0gMDsKICAgICBtX2luZGV4ZWREYXRhYmFzZVJl
cXVlc3QgPSB2YWx1ZTsKICAgICBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA9IDA7CiB9CkBAIC04
OSw2ICsxMDcsNyBAQCB2b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjCiB7
CiAgICAgbV90eXBlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlVHlwZTsKICAgICBtX2lkYkRhdGFi
YXNlUmVxdWVzdCA9IDA7CisgICAgbV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSAwOwogICAgIG1f
aW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IDA7CiAgICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUg
PSB2YWx1ZTsKIH0KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJBbnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgJKHJldmlzaW9uIDU5OTMwKQorKysgV2ViQ29yZS9z
dG9yYWdlL0lEQkFueS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQkRhdGFiYXNlUmVxdWVzdDsKK2NsYXNzIElEQk9iamVj
dFN0b3JlUmVxdWVzdDsKIGNsYXNzIEluZGV4ZWREYXRhYmFzZVJlcXVlc3Q7CiBjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiAKQEAgLTQ5LDYgKzUwLDcgQEAgcHVibGljOgogICAgIGVudW0g
VHlwZSB7CiAgICAgICAgIFVuZGVmaW5lZFR5cGUgPSAwLAogICAgICAgICBJREJEYXRhYmFzZVJl
cXVlc3RUeXBlLAorICAgICAgICBJREJPYmplY3RTdG9yZVJlcXVlc3RUeXBlLAogICAgICAgICBJ
bmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlwZSwKICAgICAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVl
VHlwZQogICAgIH07CkBAIC01NiwxMCArNTgsMTIgQEAgcHVibGljOgogICAgIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiAgICAgUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJl
cXVlc3Q+IGlkYkRhdGFiYXNlUmVxdWVzdCgpOworICAgIFBhc3NSZWZQdHI8SURCT2JqZWN0U3Rv
cmVSZXF1ZXN0PiBpZGJPYmplY3RTdG9yZVJlcXVlc3QoKTsKICAgICBQYXNzUmVmUHRyPEluZGV4
ZWREYXRhYmFzZVJlcXVlc3Q+IGluZGV4ZWREYXRhYmFzZVJlcXVlc3QoKTsKICAgICBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVlKCk7CiAKICAg
ICB2b2lkIHNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4pOworICAgIHZvaWQgc2V0
KFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQoUGFzc1Jl
ZlB0cjxJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKIApAQCAtNzAsMTIgKzc0LDE0IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBPbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHNob3VsZCBldmVyIGJlIGluIHVzZSBh
dCBhbnkgZ2l2ZW4gdGltZS4KICAgICBSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiBtX2lkYkRh
dGFiYXNlUmVxdWVzdDsKKyAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0PiBtX2lkYk9i
amVjdFN0b3JlUmVxdWVzdDsKICAgICBSZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gbV9p
bmRleGVkRGF0YWJhc2VSZXF1ZXN0OwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CisKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2VuZGlmIC8vIElEQkFu
eV9oCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgor
CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Ly8gRklYTUU6IFdyaXRlLgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxl
CiAgICsgKgoKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIElEQk9iamVjdFN0b3JlX2gKKyNkZWZpbmUgSURCT2JqZWN0U3RvcmVf
aAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
Lmg+CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCisvLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJREJPYmplY3RTdG9yZVJlcXVlc3QgKGFz
eW5jKSBhbmQgSURCT2JqZWN0U3RvcmVTeW5jIChzeW5jKS4KK2NsYXNzIElEQk9iamVjdFN0b3Jl
IDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCT2JqZWN0U3RvcmU+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gY3JlYXRlKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCT2JqZWN0U3RvcmUpOworICAgIH0KKyAgICB2aXJ0
dWFsIH5JREJPYmplY3RTdG9yZSgpIHsgfQorCisgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJl
dHVybiBtX25hbWU7IH0KKyAgICBTdHJpbmcga2V5UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5
UGF0aDsgfQorCitwcml2YXRlOgorICAgIElEQk9iamVjdFN0b3JlKCkgeyB9CisKKyAgICBTdHJp
bmcgbV9uYW1lOworICAgIFN0cmluZyBtX2tleVBhdGg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURCT2JqZWN0U3RvcmVfaAorCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZVJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZVJlcXVlc3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
KyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKKwor
I2luY2x1ZGUgIklEQkFueS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
KyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvVW51c2Vk
UGFyYW0uaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0lEQk9iamVjdFN0b3JlUmVxdWVzdDo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+
IGlkYlN0b3JlKSAKKyAgICA6IG1fb2JqZWN0U3RvcmUoaWRiU3RvcmUpCisgICAgLCBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKK3sKKyAgICBtX3RoaXMgPSBJREJBbnk6OmNyZWF0
ZSgpOworICAgIG1fdGhpcy0+c2V0KHRoaXMpOworfQorCitTdHJpbmcgSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0OjpuYW1lKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9vYmplY3RTdG9yZSk7CisgICAg
cmV0dXJuIG1fb2JqZWN0U3RvcmUtPm5hbWUoKTsKK30KKworU3RyaW5nIElEQk9iamVjdFN0b3Jl
UmVxdWVzdDo6a2V5UGF0aCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fb2JqZWN0U3RvcmUpOwor
ICAgIHJldHVybiBtX29iamVjdFN0b3JlLT5rZXlQYXRoKCk7Cit9CisKK1Bhc3NSZWZQdHI8SURC
UmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXQoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IGtleSkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgVU5VU0VE
X1BBUkFNKGtleSk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4g
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjphZGQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHZhbHVlKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICBVTlVTRURfUEFSQU0o
dmFsdWUpOworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6YWRkKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2
YWx1ZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGtleSkKK3sKKyAgICAvLyBG
SVhNRTogaW1wbGVtZW50CisgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKKyAgICBVTlVTRURfUEFS
QU0oa2V5KTsKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJP
YmplY3RTdG9yZVJlcXVlc3Q6Om1vZGlmeShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIFVOVVNFRF9QQVJBTSh2
YWx1ZSk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0Ojptb2RpZnkoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHZhbHVlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5KQoreworICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOworICAgIFVOVVNFRF9Q
QVJBTShrZXkpOworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
Qk9iamVjdFN0b3JlUmVxdWVzdDo6YWRkT3JNb2RpZnkoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5KQor
eworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOworICAg
IFVOVVNFRF9QQVJBTShrZXkpOworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6YWRkT3JNb2RpZnkoUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAg
ICBVTlVTRURfUEFSQU0odmFsdWUpOworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3ZlKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBrZXkpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIFVO
VVNFRF9QQVJBTShrZXkpOworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKClByb3BlcnR5IGNoYW5n
ZXMgb246IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZVJlcXVlc3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZVJlcXVlc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgSURCT2JqZWN0U3RvcmVSZXF1ZXN0X2gKKyNkZWZpbmUgSURCT2JqZWN0U3RvcmVSZXF1ZXN0
X2gKKworI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCisjaW5jbHVkZSAiSURCUmVxdWVzdC5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQkFueTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CisKK2NsYXNzIElEQk9iamVjdFN0b3JlUmVxdWVzdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPElEQk9iamVjdFN0b3JlUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGlkYk9iamVjdFN0
b3JlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJPYmplY3RTdG9yZVJl
cXVlc3QoY29udGV4dCwgaWRiT2JqZWN0U3RvcmUpKTsKKyAgICB9CisgICAgfklEQk9iamVjdFN0
b3JlUmVxdWVzdCgpIHsgfQorCisgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsKKyAgICBTdHJpbmcg
a2V5UGF0aCgpIGNvbnN0OworCisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXQoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGtleSk7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBhZGQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKTsKKyAgICBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkpOworICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gbW9kaWZ5KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiB2YWx1ZSk7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBtb2RpZnkoUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4ga2V5KTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZE9yTW9kaWZ5KFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSk7CisgICAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBhZGRPck1vZGlmeShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
dmFsdWUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkpOworICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gcmVtb3ZlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBrZXkpOworCitwcml2YXRlOgorICAgIElEQk9iamVjdFN0b3JlUmVxdWVzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4pOworCisgICAgUmVmUHRy
PElEQk9iamVjdFN0b3JlPiBtX29iamVjdFN0b3JlOworICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRp
b25Db250ZXh0PiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisgICAgUmVmUHRyPElEQkFueT4g
bV90aGlzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlm
IC8vIElEQkRhdGFiYXNlUmVxdWVzdF9oCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVj
dXRhYmxlCiAgICsgKgoKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVl
c3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVl
c3QuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisK
KyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisg
ICAgXSBJREJPYmplY3RTdG9yZVJlcXVlc3QgeworICAgICAgICBJREJSZXF1ZXN0IGdldChpbiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUga2V5KTsKKyAgICAgICAgSURCUmVxdWVzdCBhZGQoaW4gU2Vy
aWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlLCBpbiBbT3B0aW9uYWxdIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSBrZXkpOworICAgICAgICBJREJSZXF1ZXN0IG1vZGlmeShpbiBTZXJpYWxpemVkU2NyaXB0
VmFsdWUgdmFsdWUsIGluIFtPcHRpb25hbF0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGtleSk7Cisg
ICAgICAgIElEQlJlcXVlc3QgYWRkT3JNb2RpZnkoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZh
bHVlLCBpbiBbT3B0aW9uYWxdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBrZXkpOworICAgICAgICBJ
REJSZXF1ZXN0IHJlbW92ZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUga2V5KTsKKworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcga2V5UGF0aDsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBpbmRleE5h
bWVzIHByb3BlcnR5LgorICAgIH07Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57028</attachid>
            <date>2010-05-25 10:54:48 -0700</date>
            <delta_ts>2010-05-26 08:30:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39490-20100525185445.patch</filename>
            <type>text/plain</type>
            <size>35917</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTkzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDUtMjEgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluZGV4ZWQgRGF0YWJhc2UgY29tcG9uZW50IGlzIG1pc3NpbmcgSURCT2JqZWN0U3RvcmVSZXF1
ZXN0IGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzk0OTAKKworICAgICAgICBBZGRpbmcgSURMIGFuZCBzdHViIGltcGxlbWVudGF0aW9u
IGZvciBJREJPYmplY3RTdG9yZVJlcXVlc3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBpbmRl
eGVkIGRhdGFiYXNlIGlzbid0IHlldCB0ZXN0YWJsZS4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJREJPYmplY3RTdG9yZVJl
cXVlc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJPYmplY3RTdG9yZVJl
cXVlc3Q6OmFkZE9yTW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJPYmplY3RTdG9yZVJlcXVl
c3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0lEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJREJPYmplY3RTdG9yZVJlcXVlc3RD
dXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4SURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpyZW1vdmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOElEQk9iamVjdFN0b3Jl
UmVxdWVzdDo6YWRkT3JNb2RpZnlDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6bW9kaWZ5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhJ
REJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXRDYWxsYmFjayk6CisgICAgICAgICogc3RvcmFnZS9J
REJPYmplY3RTdG9yZS5jcHA6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6fklEQk9iamVj
dFN0b3JlKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpuYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6a2V5UGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdCk6
CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6On5JREJPYmplY3RTdG9yZVJlcXVlc3QpOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDogQWRkZWQuCisKIDIw
MTAtMDUtMjEgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNTk5MzApCisr
KyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMTQsNiArMzE0LDE2
IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIHN0b3JhZ2UvRGF0YWJhc2UuaWRsCiAgICAg
c3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbAogICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmlk
bAorICAgIHN0b3JhZ2UvSURCQW55LmlkbAorICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5p
ZGwKKyAgICBzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAorICAgIHN0b3JhZ2UvSURC
RGF0YWJhc2VSZXF1ZXN0LmlkbAorICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5pZGwKKyAgICBz
dG9yYWdlL0lEQkV2ZW50LmlkbAorICAgIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0Lmlk
bAorICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5pZGwKKyAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVu
dC5pZGwKKyAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsCiAgICAgc3RvcmFn
ZS9TUUxFcnJvci5pZGwKICAgICBzdG9yYWdlL1NRTFJlc3VsdFNldC5pZGwKICAgICBzdG9yYWdl
L1NRTFJlc3VsdFNldFJvd0xpc3QuaWRsCkBAIC0xMzM3LDYgKzEzNDcsMTggQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIHN0b3JhZ2UvRGF0YWJhc2VUcmFja2VyLmNwcAogICAgIHN0b3JhZ2Uv
TG9jYWxTdG9yYWdlVGFzay5jcHAKICAgICBzdG9yYWdlL0xvY2FsU3RvcmFnZVRocmVhZC5jcHAK
KyAgICBzdG9yYWdlL0lEQkFueS5jcHAKKyAgICBzdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAorICAg
IHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcAorICAgIHN0b3JhZ2UvSURCRXZlbnQuY3Bw
CisgICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcAorICAgIHN0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuY3BwCisgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCisgICAgc3RvcmFn
ZS9JREJSZXF1ZXN0LmNwcAorICAgIHN0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNwcAorICAgIHN0
b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmNwcAorICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1w
bC5jcHAKKyAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCiAgICAgc3RvcmFn
ZS9PcmlnaW5RdW90YU1hbmFnZXIuY3BwCiAgICAgc3RvcmFnZS9PcmlnaW5Vc2FnZVJlY29yZC5j
cHAKICAgICBzdG9yYWdlL1NRTFJlc3VsdFNldC5jcHAKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZp
c2lvbiA1OTkzMCkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzMsNiArMTczLDcgQEAKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAi
CiAjaW5jbHVkZSAiSlNJREJFcnJvckV2ZW50LmNwcCIKICNpbmNsdWRlICJKU0lEQkV2ZW50LmNw
cCIKKyNpbmNsdWRlICJKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAiCiAjaW5jbHVkZSAiSlNJ
REJSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQlN1Y2Nlc3NFdmVudC5jcHAiCiAjaW5jbHVk
ZSAiSlNJbWFnZURhdGEuY3BwIgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNTk5MzAp
CisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2
ICsyMTYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBJREJEYXRhYmFzZVJlcXVlc3QgXAogICAg
IElEQkVycm9yRXZlbnQgXAogICAgIElEQkV2ZW50IFwKKyAgICBJREJPYmplY3RTdG9yZVJlcXVl
c3QgXAogICAgIElEQlJlcXVlc3QgXAogICAgIElEQlN1Y2Nlc3NFdmVudCBcCiAgICAgSW1hZ2VE
YXRhIFwKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUyLDYgKzI0NTIsNyBAQCBJRExfQklORElOR1MgKz0g
XAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0
b3JhZ2UvSURCRXJyb3JFdmVudC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5pZGwg
XAorCVdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsIFwKIAlXZWJDb3Jl
L3N0b3JhZ2UvSURCUmVxdWVzdC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNzRXZl
bnQuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKQEAg
LTI0NzUsNiArMjQ3NiwxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3RvcmFn
ZS9JREJFcnJvckV2ZW50LmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5jcHAgXAogCVdl
YkNvcmUvc3RvcmFnZS9JREJFdmVudC5oIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuY3BwIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaCBcCisJV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgXAorCVdlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZVJlcXVlc3QuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIFwK
IAlXZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCU3Vj
Y2Vzc0V2ZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL1dlYkNv
cmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjI5LDYgKzIyOSw3IEBACiAgICAgICAgICAgICAn
c3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lE
QkVycm9yRXZlbnQuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkV2ZW50LmlkbCcsCisg
ICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsJywKICAgICAgICAg
ICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlN1
Y2Nlc3NFdmVudC5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVx
dWVzdC5pZGwnLApAQCAtMzM1Myw2ICszMzU0LDEwIEBACiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJFdmVudC5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwJywKICAg
ICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQuaCcsCisgICAgICAgICAgICAnc3RvcmFn
ZS9JREJPYmplY3RTdG9yZS5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwJywK
KyAgICAgICAgICAgICdzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oJywKICAgICAgICAg
ICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQlJl
cXVlc3QuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuY3BwJywKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBy
aQkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkp
CkBAIC00NDksNiArNDQ5LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBzdG9yYWdlL0lEQkRh
dGFiYXNlUmVxdWVzdC5pZGwgXAogICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5pZGwgXAogICAg
IHN0b3JhZ2UvSURCRXZlbnQuaWRsIFwKKyAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVz
dC5pZGwgXAogICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5pZGwgXAogICAgIHN0b3JhZ2UvSURCU3Vj
Y2Vzc0V2ZW50LmlkbCBcCiAgICAgc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbCBc
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5wcm8JKHJldmlzaW9uIDU5OTMwKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBj
b3B5KQpAQCAtMjMzMSw2ICsyMzMxLDggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOREVY
RURfREFUQUJBUwogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oIFwKICAgICAg
ICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmggXAogICAgICAgICBzdG9yYWdlL0lEQkV2ZW50Lmgg
XAorICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmggXAorICAgICAgICBzdG9yYWdlL0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJSZXF1ZXN0LmggXAog
ICAgICAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5oIFwKICAgICAgICAgc3RvcmFnZS9JbmRl
eGVkRGF0YWJhc2UuaCBcCkBAIC0yMzQ0LDYgKzIzNDYsOCBAQCBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0
LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAgXAogICAgICAgICBzdG9y
YWdlL0lEQkV2ZW50LmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwIFwK
KyAgICAgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIFwKICAgICAgICAgc3Rv
cmFnZS9JREJSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNw
cCBcCiAgICAgICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmNwcCBcCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDU5OTMwKQorKysgV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzgzNjQsNiAr
MzgzNjQsNjIgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdf
SW50ZXJuYWx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJ
Pg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJ
Lz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJ
CQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJ
CVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJSZXF1ZXN0LmNwcCINCiAJCQkJ
CT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTQzNzk3LDYgKzQzODUzLDU0IEBACiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3Jh
Z2VcSURCQW55LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2UuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJEYXRhYmFzZVJl
cXVlc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxJREJFdmVudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkVycm9yRXZlbnQuY3BwIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Rv
cmFnZVxJREJPYmplY3RTdG9yZS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dG9yYWdlXElEQlJlcXVlc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJTdWNjZXNzRXZlbnQuY3BwIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJ
bmRleGVkRGF0YWJhc2UuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJbmRleGVkRGF0YWJhc2VJbXBsLmNwcCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2Vc
SW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXExvY2FsU3RvcmFnZVRhc2suY3BwIg0K
IAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiA1OTkzMCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MjI1LDYgKzQyMjUsMTIgQEAK
IAkJQjVDMTEyM0IxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVDMTEy
MzkxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwICovOyB9
OwogCQlCNUMxMTIzQzEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVDMTEy
M0ExMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCAqLzsgfTsK
IAkJQjVEMzYwMUExMTJGOEI1NjAwNDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1RDM2MDE5MTEyRjhCNTYw
MDQ4REVBOCAvKiBEYXRhYmFzZUNhbGxiYWNrLmggKi87IH07CisJCUI2NDZBNDkxMTFBQUNDQjQw
MEUxNDU3RSAvKiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjQ2QTQ4RjExQUFDQ0I0MDBFMTQ1N0UgLyog
SlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwICovOyB9OworCQlCNjQ2QTQ5MjExQUFDQ0I0MDBF
MTQ1N0UgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2NDZBNDkwMTFBQUNDQjQwMEUxNDU3RSAvKiBKU0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5oICovOyB9OworCQlCNjcxODg3NzExQTZEOEU4MDA4RjdEQkIg
LyogSURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjY3MTg4NzUxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmNw
cCAqLzsgfTsKKwkJQjY3MTg4NzgxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjcxODg3NjEx
QTZEOEU4MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmUuaCAqLzsgfTsKKwkJQjY3MTg4N0MxMUE2
RDhGNDAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjcxODg3QTExQTZEOEY0MDA4RjdEQkIg
LyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJQjY3MTg4N0QxMUE2RDhGNDAw
OEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjY3MTg4N0IxMUE2RDhGNDAwOEY3REJCIC8qIElEQk9i
amVjdFN0b3JlUmVxdWVzdC5oICovOyB9OwogCQlCNzFGRTZERjExMDkxQ0IzMDBEQUVGNzcgLyog
UHJpbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCNzc2RDQzQTExMDQ1MjVEMDBCRUIwRUMgLyogUHJpbnRDb250ZXh0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjc3NkQ0M0QxMTA0NTI3
NTAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCNzc2RDQzQzExMDQ1Mjc1MDBCRUIwRUMgLyogUHJpbnRDb250
ZXh0LmNwcCAqLzsgfTsKIAkJQkMwMEYwMDQwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDBFRkZFMEUw
QTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLmggKi87IH07CkBAIC05Njg0LDYgKzk2OTAsMTMgQEAK
IAkJQjVDMTEyMzkxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1FMVHJhbnNhY3Rpb25D
b29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1QzExMjNBMTAy
QjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjVEMzYwMTkxMTJGOEI1NjAwNDhERUE4IC8qIERhdGFi
YXNlQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VD
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNjQ2QTQ4RjExQUFDQ0I0
MDBFMTQ1N0UgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCNjQ2QTQ5MDExQUFDQ0I0MDBFMTQ1N0UgLyogSlNJREJP
YmplY3RTdG9yZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
REJPYmplY3RTdG9yZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjY3
MTg4NzUxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQk9iamVjdFN0b3JlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjY3MTg4NzYxMUE2RDhFODAwOEY3REJCIC8qIElEQk9iamVjdFN0
b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQk9iamVjdFN0b3JlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NzE4ODdBMTFBNkQ4RjQwMDhGN0RCQiAv
KiBJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQjY3MTg4N0IxMUE2RDhGNDAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJPYmplY3RTdG9yZVJlcXVl
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjY3MTg4N0UxMUE2RDkwMjAwOEY3
REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Qjc3NkQ0M0ExMTA0NTI1RDAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQcmludENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjc3NkQ0M0MxMTA0NTI3NTAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmludENvbnRleHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwRUZGRTBFMEExODU1MDBGRDA0RTMgLyogRE9N
RmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01GaWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk1Miw2ICsxMDk2NSwxMSBAQAogCQkxQUU4MkVD
OTBDQUFFMTc3MDAyMjM3QUUgLyogc3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJQjY3MTg4N0UxMUE2RDkwMjAwOEY3REJCIC8qIElEQk9iamVj
dFN0b3JlUmVxdWVzdC5pZGwgKi8sCisJCQkJQjY3MTg4N0ExMUE2RDhGNDAwOEY3REJCIC8qIElE
Qk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgKi8sCisJCQkJQjY3MTg4N0IxMUE2RDhGNDAwOEY3REJC
IC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5oICovLAorCQkJCUI2NzE4ODc1MTFBNkQ4RTgwMDhG
N0RCQiAvKiBJREJPYmplY3RTdG9yZS5jcHAgKi8sCisJCQkJQjY3MTg4NzYxMUE2RDhFODAwOEY3
REJCIC8qIElEQk9iamVjdFN0b3JlLmggKi8sCiAJCQkJQjVCNURDNjcxMTlCQjNENTAwMkE4Nzkw
IC8qIEFic3RyYWN0RGF0YWJhc2UuY3BwICovLAogCQkJCUI1QjVEQzY4MTE5QkIzRDUwMDJBODc5
MCAvKiBBYnN0cmFjdERhdGFiYXNlLmggKi8sCiAJCQkJNTE0MTg1RUQwQ0Q2NUYwNDAwNzYzQzk5
IC8qIENoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCAqLywKQEAgLTE0MzI3LDYgKzE0MzQ1LDggQEAK
IAkJQTgzQjc5MTUwQ0NCMDA3ODAwMEIwODI1IC8qIFN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUI2NDZBNDhGMTFBQUNDQjQwMEUxNDU3RSAv
KiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgKi8sCisJCQkJQjY0NkE0OTAxMUFBQ0NCNDAw
RTE0NTdFIC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggKi8sCiAJCQkJMUFFODJGOEQwQ0FB
RkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuY3BwICovLAogCQkJCTFBRTgyRjhFMENBQUZBOUQw
MDIyMzdBRSAvKiBKU0RhdGFiYXNlLmggKi8sCiAJCQkJQzU2QzkxOTgxMTlEOTE1MzAwREU0Q0Q5
IC8qIEpTSURCQW55LmNwcCAqLywKQEAgLTE5Mjg2LDYgKzE5MzA2LDkgQEAKIAkJCQk1OUE4NUVB
NDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTlBODYwMDgxMTlEQUZBMTAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUzRkFBMDkxMUEzNkJGMTAwNTc2NjI0IC8qIENy
b3NzVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjY3MTg4NzgxMUE2RDhFODAwOEY3
REJCIC8qIElEQk9iamVjdFN0b3JlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCNjcxODg3RDExQTZE
OEY0MDA4RjdEQkIgLyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlCNjQ2QTQ5MjExQUFDQ0I0MDBFMTQ1N0UgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjE1NzEsNiArMjE1OTQsOSBAQAogCQkJCTUxMzI3RDYxMTFBMzNB
MkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTlBODVF
QTIxMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRp
b25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCNjcxODg3NzExQTZEOEU4MDA4RjdEQkIg
LyogSURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjY3MTg4N0MxMUE2RDhG
NDAwOEY3REJCIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlCNjQ2QTQ5MTExQUFDQ0I0MDBFMTQ1N0UgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9t
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNw
cAkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsOCArMzYsMTAgQEAKIAogI2luY2x1ZGUgIklEQkFu
eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIklEQk9iamVj
dFN0b3JlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJKU0lEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkpTSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKQEAgLTU1LDYgKzU3LDggQEAgSlNWYWx1
ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VSZXF1ZXN0VHlwZToKICAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkRhdGFiYXNlUmVx
dWVzdCgpKTsKKyAgICBjYXNlIElEQkFueTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0VHlwZToKKyAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYk9iamVjdFN0
b3JlUmVxdWVzdCgpKTsKICAgICBjYXNlIElEQkFueTo6SW5kZXhlZERhdGFiYXNlUmVxdWVzdFR5
cGU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRiQW55LT5pbmRl
eGVkRGF0YWJhc2VSZXF1ZXN0KCkpOwogICAgIGNhc2UgSURCQW55OjpTZXJpYWxpemVkU2NyaXB0
VmFsdWVUeXBlOgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55
Q3VzdG9tLmNwcAkocmV2aXNpb24gNTk5MzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOElEQkFueUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKIAog
I2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlY4SURCRGF0YWJh
c2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiVjhJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJWOEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTAsNiArNTEsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJBbnkqIGltcGwp
CiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgY2FzZSBJREJBbnk6OklEQkRh
dGFiYXNlUmVxdWVzdFR5cGU6CiAgICAgICAgIHJldHVybiB0b1Y4KGltcGwtPmlkYkRhdGFiYXNl
UmVxdWVzdCgpKTsKKyAgICBjYXNlIElEQkFueTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0VHlwZToK
KyAgICAgICAgcmV0dXJuIHRvVjgoaW1wbC0+aWRiT2JqZWN0U3RvcmVSZXF1ZXN0KCkpOwogICAg
IGNhc2UgSURCQW55OjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlwZToKICAgICAgICAgcmV0dXJu
IHRvVjgoaW1wbC0+aW5kZXhlZERhdGFiYXNlUmVxdWVzdCgpKTsKICAgICBjYXNlIElEQkFueTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlVHlwZToKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJBbnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCShyZXZpc2lvbiA1
OTkzMCkKKysrIFdlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJ
REJEYXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCiAKQEAgLTU3LDYgKzU4LDEyIEBAIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VSZXF1ZXN0PiBJREJBbnk6OmkKICAgICByZXR1cm4gbV9pZGJEYXRhYmFzZVJlcXVlc3Q7CiB9
CiAKK1Bhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0PiBJREJBbnk6OmlkYk9iamVjdFN0
b3JlUmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBJREJPYmplY3RTdG9yZVJlcXVl
c3RUeXBlKTsKKyAgICByZXR1cm4gbV9pZGJPYmplY3RTdG9yZVJlcXVlc3Q7Cit9CisKIFBhc3NS
ZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gSURCQW55OjppbmRleGVkRGF0YWJhc2VSZXF1
ZXN0KCkKIHsKICAgICBBU1NFUlQobV90eXBlID09IEluZGV4ZWREYXRhYmFzZVJlcXVlc3RUeXBl
KTsKQEAgLTczLDYgKzgwLDE2IEBAIHZvaWQgSURCQW55OjpzZXQoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZVIKIHsKICAgICBtX3R5cGUgPSBJREJEYXRhYmFzZVJlcXVlc3RUeXBlOwogICAgIG1faWRi
RGF0YWJhc2VSZXF1ZXN0ID0gdmFsdWU7CisgICAgbV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSAw
OworICAgIG1faW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IDA7CisgICAgbV9zZXJpYWxpemVkU2Ny
aXB0VmFsdWUgPSAwOworfQorCit2b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmVSZXF1ZXN0PiB2YWx1ZSkKK3sKKyAgICBtX3R5cGUgPSBJREJPYmplY3RTdG9yZVJlcXVl
c3RUeXBlOworICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsKKyAgICBtX2lkYk9iamVjdFN0
b3JlUmVxdWVzdCA9IHZhbHVlOwogICAgIG1faW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IDA7CiAg
ICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOwogfQpAQCAtODEsNiArOTgsNyBAQCB2b2lk
IElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiCiB7CiAgICAgbV90eXBlID0gSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdFR5cGU7CiAgICAgbV9pZGJEYXRhYmFzZVJlcXVlc3QgPSAwOwor
ICAgIG1faWRiT2JqZWN0U3RvcmVSZXF1ZXN0ID0gMDsKICAgICBtX2luZGV4ZWREYXRhYmFzZVJl
cXVlc3QgPSB2YWx1ZTsKICAgICBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA9IDA7CiB9CkBAIC04
OSw2ICsxMDcsNyBAQCB2b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjCiB7
CiAgICAgbV90eXBlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlVHlwZTsKICAgICBtX2lkYkRhdGFi
YXNlUmVxdWVzdCA9IDA7CisgICAgbV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSAwOwogICAgIG1f
aW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IDA7CiAgICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUg
PSB2YWx1ZTsKIH0KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJBbnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgJKHJldmlzaW9uIDU5OTMwKQorKysgV2ViQ29yZS9z
dG9yYWdlL0lEQkFueS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQkRhdGFiYXNlUmVxdWVzdDsKK2NsYXNzIElEQk9iamVj
dFN0b3JlUmVxdWVzdDsKIGNsYXNzIEluZGV4ZWREYXRhYmFzZVJlcXVlc3Q7CiBjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiAKQEAgLTQ5LDYgKzUwLDcgQEAgcHVibGljOgogICAgIGVudW0g
VHlwZSB7CiAgICAgICAgIFVuZGVmaW5lZFR5cGUgPSAwLAogICAgICAgICBJREJEYXRhYmFzZVJl
cXVlc3RUeXBlLAorICAgICAgICBJREJPYmplY3RTdG9yZVJlcXVlc3RUeXBlLAogICAgICAgICBJ
bmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlwZSwKICAgICAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVl
VHlwZQogICAgIH07CkBAIC01NiwxMCArNTgsMTIgQEAgcHVibGljOgogICAgIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiAgICAgUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJl
cXVlc3Q+IGlkYkRhdGFiYXNlUmVxdWVzdCgpOworICAgIFBhc3NSZWZQdHI8SURCT2JqZWN0U3Rv
cmVSZXF1ZXN0PiBpZGJPYmplY3RTdG9yZVJlcXVlc3QoKTsKICAgICBQYXNzUmVmUHRyPEluZGV4
ZWREYXRhYmFzZVJlcXVlc3Q+IGluZGV4ZWREYXRhYmFzZVJlcXVlc3QoKTsKICAgICBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVlKCk7CiAKICAg
ICB2b2lkIHNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4pOworICAgIHZvaWQgc2V0
KFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQoUGFzc1Jl
ZlB0cjxJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKIApAQCAtNzAsNiArNzQsNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gT25seSBvbmUgb2YgdGhlIGZvbGxvd2luZyBzaG91bGQgZXZlciBiZSBpbiB1c2UgYXQg
YW55IGdpdmVuIHRpbWUuCiAgICAgUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gbV9pZGJEYXRh
YmFzZVJlcXVlc3Q7CisgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlUmVxdWVzdD4gbV9pZGJPYmpl
Y3RTdG9yZVJlcXVlc3Q7CiAgICAgUmVmUHRyPEluZGV4ZWREYXRhYmFzZVJlcXVlc3Q+IG1faW5k
ZXhlZERhdGFiYXNlUmVxdWVzdDsKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBt
X3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIH07CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9y
ZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBGSVhNRTogV3JpdGUuCisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQor
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3Bw
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURC
T2JqZWN0U3RvcmVfaAorI2RlZmluZSBJREJPYmplY3RTdG9yZV9oCisKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQk9iamVj
dFN0b3JlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCT2JqZWN0U3RvcmU+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gY3JlYXRlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCT2JqZWN0U3RvcmUoKSk7CisgICAgfQor
ICAgIHZpcnR1YWwgfklEQk9iamVjdFN0b3JlKCkgeyB9CisKKyAgICBTdHJpbmcgbmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIFN0cmluZyBrZXlQYXRoKCkgY29uc3QgeyByZXR1
cm4gbV9rZXlQYXRoOyB9CisKK3ByaXZhdGU6CisgICAgSURCT2JqZWN0U3RvcmUoKSB7IH0KKwor
ICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5nIG1fa2V5UGF0aDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJPYmplY3RTdG9yZV9oCisK
ClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJJREJBbnkuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVk
ZSA8d3RmL1VudXNlZFBhcmFtLmg+CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0
b3JlUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlPiBpZGJTdG9yZSkgCisgICAgOiBtX29iamVjdFN0b3JlKGlkYlN0b3JlKQor
ICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCit7CisgICAgbV90aGlzID0g
SURCQW55OjpjcmVhdGUoKTsKKyAgICBtX3RoaXMtPnNldCh0aGlzKTsKK30KKworU3RyaW5nIElE
Qk9iamVjdFN0b3JlUmVxdWVzdDo6bmFtZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fb2JqZWN0
U3RvcmUpOworICAgIHJldHVybiBtX29iamVjdFN0b3JlLT5uYW1lKCk7Cit9CisKK1N0cmluZyBJ
REJPYmplY3RTdG9yZVJlcXVlc3Q6OmtleVBhdGgoKSBjb25zdAoreworICAgIEFTU0VSVChtX29i
amVjdFN0b3JlKTsKKyAgICByZXR1cm4gbV9vYmplY3RTdG9yZS0+a2V5UGF0aCgpOworfQorCitQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVu
dAorICAgIFVOVVNFRF9QQVJBTShrZXkpOworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6YWRkKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGtleSkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgVU5VU0VEX1BBUkFNKHZhbHVl
KTsKKyAgICBVTlVTRURfUEFSQU0oa2V5KTsKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6Om1vZGlmeShQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBrZXkpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIFVOVVNFRF9QQVJBTSh2
YWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjphZGRPck1vZGlmeShQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBrZXkpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIFVOVVNF
RF9QQVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CisgICAgcmV0dXJuIDA7Cit9
CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmUo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGtleSkKK3sKKyAgICAvLyBGSVhNRTog
aW1wbGVtZW50CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CisgICAgcmV0dXJuIDA7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBX
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJPYmplY3RTdG9yZVJlcXVlc3RfaAorI2RlZmlu
ZSBJREJPYmplY3RTdG9yZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIK
KyNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURCQW55OworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKKworY2xhc3MgSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8SURCT2JqZWN0U3RvcmVSZXF1ZXN0
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJP
YmplY3RTdG9yZT4gaWRiT2JqZWN0U3RvcmUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IElEQk9iamVjdFN0b3JlUmVxdWVzdChjb250ZXh0LCBpZGJPYmplY3RTdG9yZSkpOwor
ICAgIH0KKyAgICB+SURCT2JqZWN0U3RvcmVSZXF1ZXN0KCkgeyB9CisKKyAgICBTdHJpbmcgbmFt
ZSgpIGNvbnN0OworICAgIFN0cmluZyBrZXlQYXRoKCkgY29uc3Q7CisKKyAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IGdldChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5KTsK
KyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkgPSAw
KTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG1vZGlmeShQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBr
ZXkgPSAwKTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZE9yTW9kaWZ5KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IGtleSA9IDApOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcmVtb3ZlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkpOworCitwcml2YXRlOgorICAgIElE
Qk9iamVjdFN0b3JlUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJPYmplY3RTdG9yZT4pOworCisgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBtX29iamVjdFN0
b3JlOworICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CisgICAgUmVmUHRyPElEQkFueT4gbV90aGlzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8vIElEQkRhdGFiYXNlUmVxdWVzdF9oCisK
ClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVl
c3QuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IFdlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBJREJPYmplY3RTdG9y
ZVJlcXVlc3QgeworICAgICAgICBJREJSZXF1ZXN0IGdldChpbiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUga2V5KTsKKyAgICAgICAgSURCUmVxdWVzdCBhZGQoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVl
IHZhbHVlLCBpbiBbT3B0aW9uYWxdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBrZXkpOworICAgICAg
ICBJREJSZXF1ZXN0IG1vZGlmeShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWUsIGluIFtP
cHRpb25hbF0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGtleSk7CisgICAgICAgIElEQlJlcXVlc3Qg
YWRkT3JNb2RpZnkoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlLCBpbiBbT3B0aW9uYWxd
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBrZXkpOworICAgICAgICBJREJSZXF1ZXN0IHJlbW92ZShp
biBTZXJpYWxpemVkU2NyaXB0VmFsdWUga2V5KTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
a2V5UGF0aDsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBpbmRleE5hbWVzIHByb3BlcnR5LgorICAg
IH07Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57098</attachid>
            <date>2010-05-26 08:30:19 -0700</date>
            <delta_ts>2010-05-26 08:38:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39490-20100526163017.patch</filename>
            <type>text/plain</type>
            <size>35049</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDIzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDUtMjYgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluZGV4ZWQgRGF0YWJhc2UgY29tcG9uZW50IGlzIG1pc3NpbmcgSURCT2JqZWN0U3RvcmVSZXF1
ZXN0IGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzk0OTAKKworICAgICAgICBBZGRpbmcgSURMIGFuZCBzdHViIGltcGxlbWVudGF0aW9u
IGZvciBJREJPYmplY3RTdG9yZVJlcXVlc3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBpbmRl
eGVkIGRhdGFiYXNlIGlzbid0IHlldCB0ZXN0YWJsZS4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJREJPYmplY3RTdG9yZVJl
cXVlc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJPYmplY3RTdG9yZVJl
cXVlc3Q6OmFkZE9yTW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJPYmplY3RTdG9yZVJlcXVl
c3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0lEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJREJPYmplY3RTdG9yZVJlcXVlc3RD
dXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4SURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpyZW1vdmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOElEQk9iamVjdFN0b3Jl
UmVxdWVzdDo6YWRkT3JNb2RpZnlDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6bW9kaWZ5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhJ
REJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXRDYWxsYmFjayk6CisgICAgICAgICogc3RvcmFnZS9J
REJPYmplY3RTdG9yZS5jcHA6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6fklEQk9iamVj
dFN0b3JlKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpuYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6a2V5UGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdCk6
CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6On5JREJPYmplY3RTdG9yZVJlcXVlc3QpOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDogQWRkZWQuCisKIDIw
MTAtMDUtMjYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNjAyMzEpCisrKyBXZWJD
b3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMjcsNiArMzI3LDcgQEAgU0VU
KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsCiAg
ICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmlkbAogICAgIHN0b3JhZ2UvSURCRXZlbnQuaWRsCisg
ICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCiAgICAgc3RvcmFnZS9JREJSZXF1
ZXN0LmlkbAogICAgIHN0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmlkbAogICAgIHN0b3JhZ2UvSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKQEAgLTEzNjUsNiArMTM2Niw4IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwCiAgICAgc3RvcmFnZS9JREJF
dmVudC5jcHAKICAgICBzdG9yYWdlL0lEQlJlcXVlc3QuY3BwCisgICAgc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZS5jcHAKKyAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKICAgICBz
dG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5jcHAKICAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5j
cHAKICAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwCkluZGV4OiBXZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAkocmV2aXNpb24gNjAyMzEpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCw3IEBACiAjaW5jbHVkZSAiSlNJREJEYXRhYmFzZVJlcXVl
c3QuY3BwIgogI2luY2x1ZGUgIkpTSURCRXJyb3JFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNJREJF
dmVudC5jcHAiCisjaW5jbHVkZSAiSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIgogI2luY2x1
ZGUgIkpTSURCUmVxdWVzdC5jcHAiCiAjaW5jbHVkZSAiSlNJREJTdWNjZXNzRXZlbnQuY3BwIgog
I2luY2x1ZGUgIkpTSW1hZ2VEYXRhLmNwcCIKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9u
IDYwMjMxKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTcsNiArMjE3LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgSURCRGF0YWJhc2VSZXF1ZXN0
IFwKICAgICBJREJFcnJvckV2ZW50IFwKICAgICBJREJFdmVudCBcCisgICAgSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0IFwKICAgICBJREJSZXF1ZXN0IFwKICAgICBJREJTdWNjZXNzRXZlbnQgXAogICAg
IEltYWdlRGF0YSBcCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDYwMjMxKQorKysgV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMjQ2Niw2ICsyNDY2LDcgQEAgSURMX0JJTkRJ
TkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCBcCiAJV2Vi
Q29yZS9zdG9yYWdlL0lEQkVycm9yRXZlbnQuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRXZl
bnQuaWRsIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbCBcCiAJ
V2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCU3Vj
Y2Vzc0V2ZW50LmlkbCBcCiAJV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3Qu
aWRsCkBAIC0yNDkwLDYgKzI0OTEsMTAgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L3N0b3JhZ2UvSURCRXJyb3JFdmVudC5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRXZlbnQuY3Bw
IFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRXZlbnQuaCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQk9i
amVjdFN0b3JlLmNwcCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmggXAorCVdl
YkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIFwKKwlXZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0
LmNwcCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaCBcCiAJV2ViQ29yZS9zdG9yYWdl
L0lEQlN1Y2Nlc3NFdmVudC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDYwMjMxKQorKysgV2ViQ29y
ZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsNyBAQAogICAgICAg
ICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJFcnJvckV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJFdmVudC5p
ZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbCcsCiAg
ICAgICAgICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0LmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFn
ZS9JREJTdWNjZXNzRXZlbnQuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0luZGV4ZWREYXRh
YmFzZVJlcXVlc3QuaWRsJywKQEAgLTMzNjEsNiArMzM2MiwxMCBAQAogICAgICAgICAgICAgJ3N0
b3JhZ2UvSURCRXZlbnQuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJFcnJvckV2ZW50LmNw
cCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJFcnJvckV2ZW50LmgnLAorICAgICAgICAgICAg
J3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQk9i
amVjdFN0b3JlLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0
LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaCcsCiAg
ICAgICAgICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFn
ZS9JREJSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNw
cCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5wcmkJKHJldmlzaW9uIDYwMjMxKQorKysgV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtNDUwLDYgKzQ1MCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgc3RvcmFn
ZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuaWRs
IFwKICAgICBzdG9yYWdlL0lEQkV2ZW50LmlkbCBcCisgICAgc3RvcmFnZS9JREJPYmplY3RTdG9y
ZVJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQlJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdl
L0lEQlN1Y2Nlc3NFdmVudC5pZGwgXAogICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVz
dC5pZGwgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUucHJvCShyZXZpc2lvbiA2MDIzMSkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdv
cmtpbmcgY29weSkKQEAgLTIzMzgsNiArMjMzOCw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVMKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaCBc
CiAgICAgICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJF
dmVudC5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oIFwKKyAgICAgICAgc3Rv
cmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCUmVxdWVz
dC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuaCBcCiAgICAgICAgIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlLmggXApAQCAtMjM1MSw2ICsyMzUzLDggQEAgY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX0lOREVYRURfREFUQUJBUwogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNl
UmVxdWVzdC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwIFwKICAgICAg
ICAgc3RvcmFnZS9JREJFdmVudC5jcHAgXAorICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3Jl
LmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCBcCiAgICAg
ICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NF
dmVudC5jcHAgXAogICAgICAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5jcHAgXApJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2MDIzMSkKKysrIFdl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTM4
NTU2LDYgKzM4NTU2LDYyIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCINCisJCQkJCT4NCisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRv
b2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9
IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
KwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMy
Ig0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9v
bA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
CT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
CS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxl
DQorCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCINCisJCQkJCT4NCisJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1
dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCUmVxdWVzdC5jcHAi
DQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00Mzk4OSw2ICs0NDA0NSw1
NCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxzdG9yYWdlXElEQkFueS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkRhdGFiYXNlLmNwcCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0
YWJhc2VSZXF1ZXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRXZlbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJFcnJvckV2ZW50
LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcSURCT2JqZWN0U3RvcmUuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJPYmplY3RTdG9yZVJlcXVl
c3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cc3RvcmFnZVxJREJSZXF1ZXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCU3VjY2Vzc0V2ZW50LmNwcCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0
b3JhZ2VcSW5kZXhlZERhdGFiYXNlLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dG9yYWdlXEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxMb2NhbFN0b3JhZ2VUYXNr
LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjAyMzEpCisrKyBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDIyOSw2ICs0MjI5
LDEzIEBACiAJCUI1QzExMjNCMTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI1QzExMjM5MTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNw
cCAqLzsgfTsKIAkJQjVDMTEyM0MxMDJCNkM0NjAwMDk2NTc4IC8qIFNRTFRyYW5zYWN0aW9uQ29v
cmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI1QzExMjNBMTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgg
Ki87IH07CiAJCUI1RDM2MDFBMTEyRjhCNTYwMDQ4REVBOCAvKiBEYXRhYmFzZUNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNUQzNjAxOTEx
MkY4QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oICovOyB9OworCQlCNjI3RkIyRDEx
QUQ3NDM1MDBFOTdCNzIgLyogSURCRGF0YWJhc2VJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEFEMkE5MTFBQzE2MzEwMDhDRjJGQiAvKiBJ
REJEYXRhYmFzZUltcGwuY3BwICovOyB9OworCQlCNjY5M0VFQjExQUQ2M0U2MDAzRjI3NzAgLyog
SURCT2JqZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjY2OTNFRTcxMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlLmNwcCAq
LzsgfTsKKwkJQjY2OTNFRUMxMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjY5M0VFODExQUQ2
M0U2MDAzRjI3NzAgLyogSURCT2JqZWN0U3RvcmUuaCAqLzsgfTsKKwkJQjY2OTNFRUQxMUFENjNF
NjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjY5M0VFOTExQUQ2M0U2MDAzRjI3NzAgLyog
SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJQjY2OTNFRUUxMUFENjNFNjAwM0Yy
NzcwIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjY2OTNFRUExMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVj
dFN0b3JlUmVxdWVzdC5oICovOyB9OworCQlCNjY5M0VGMjExQUQ2NDg2MDAzRjI3NzAgLyogSlNJ
REJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjY2OTNFRjAxMUFENjQ4NjAwM0YyNzcwIC8qIEpTSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJQjY2OTNFRjMxMUFENjQ4NjAwM0YyNzcwIC8qIEpTSURC
T2JqZWN0U3RvcmVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCNjY5M0VGMTExQUQ2NDg2MDAzRjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJl
cXVlc3QuaCAqLzsgfTsKIAkJQjcxRkU2REYxMTA5MUNCMzAwREFFRjc3IC8qIFByaW50Q29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjc3NkQ0
M0ExMTA0NTI1RDAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUI3MzRCMTgxMTE5Qjk5MTEwMDY1ODdCRCAv
KiBGb250VHJhbnNjb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCNzM0QjE4MDExOUI5OTExMDA2NTg3QkQgLyogRm9udFRyYW5zY29kZXIuY3Bw
ICovOyB9OwogCQlCNzM0QjE4MzExOUI5OTFEMDA2NTg3QkQgLyogRm9udFRyYW5zY29kZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI3MzRCMTgyMTE5
Qjk5MUQwMDY1ODdCRCAvKiBGb250VHJhbnNjb2Rlci5oICovOyB9OwpAQCAtOTY5Nyw2ICs5NzA0
LDEzIEBACiAJCUI1QzExMjM5MTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNRTFRyYW5z
YWN0aW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNUMx
MTIzQTEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1RDM2MDE5MTEyRjhCNTYwMDQ4REVBOCAv
KiBEYXRhYmFzZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERh
dGFiYXNlQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjY2OTNFRTcx
MUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElEQk9iamVjdFN0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQjY2OTNFRTgxMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQk9iamVjdFN0b3JlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI2NjkzRUU5MTFBRDYzRTYwMDNGMjc3MCAvKiBJREJP
YmplY3RTdG9yZVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQjY2OTNFRUExMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJPYmplY3RTdG9yZVJlcXVlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjY2OTNFRUYxMUFENjNGNjAwM0YyNzcwIC8q
IElEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjY2OTNF
RjAxMUFENjQ4NjAwM0YyNzcwIC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjY2OTNFRjExMUFENjQ4NjAwM0YyNzcw
IC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUI3MzRCMTgwMTE5Qjk5MTEwMDY1ODdCRCAvKiBGb250VHJhbnNjb2Rlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGb250VHJhbnNjb2Rlci5jcHA7IHBh
dGggPSB0cmFuc2NvZGVyL0ZvbnRUcmFuc2NvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjczNEIxODIxMTlCOTkxRDAwNjU4N0JEIC8qIEZvbnRUcmFuc2NvZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZvbnRUcmFuc2NvZGVyLmg7IHBhdGggPSB0
cmFuc2NvZGVyL0ZvbnRUcmFuc2NvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUI3NzZENDNBMTEwNDUyNUQwMEJFQjBFQyAvKiBQcmludENvbnRleHQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpbnRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMDk3Myw2ICsxMDk4NywxMSBAQAogCQkxQUU4MkVDOTBDQUFFMTc3MDAyMjM3
QUUgLyogc3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJQjY2OTNFRUYxMUFENjNGNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5p
ZGwgKi8sCisJCQkJQjY2OTNFRTcxMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlLmNw
cCAqLywKKwkJCQlCNjY5M0VFODExQUQ2M0U2MDAzRjI3NzAgLyogSURCT2JqZWN0U3RvcmUuaCAq
LywKKwkJCQlCNjY5M0VFOTExQUQ2M0U2MDAzRjI3NzAgLyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0
LmNwcCAqLywKKwkJCQlCNjY5M0VFQTExQUQ2M0U2MDAzRjI3NzAgLyogSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0LmggKi8sCiAJCQkJQjVCNURDNjcxMTlCQjNENTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0
YWJhc2UuY3BwICovLAogCQkJCUI1QjVEQzY4MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFjdERh
dGFiYXNlLmggKi8sCiAJCQkJNTE0MTg1RUQwQ0Q2NUYwNDAwNzYzQzk5IC8qIENoYW5nZVZlcnNp
b25XcmFwcGVyLmNwcCAqLywKQEAgLTE0MzcyLDYgKzE0MzkxLDggQEAKIAkJCQlDNTZDOTE5RDEx
OUQ5MTgxMDBERTRDRDkgLyogSlNJREJFcnJvckV2ZW50LmggKi8sCiAJCQkJQzU2QzkxOUUxMTlE
OTE4MTAwREU0Q0Q5IC8qIEpTSURCRXZlbnQuY3BwICovLAogCQkJCUM1NkM5MTlGMTE5RDkxODEw
MERFNENEOSAvKiBKU0lEQkV2ZW50LmggKi8sCisJCQkJQjY2OTNFRjAxMUFENjQ4NjAwM0YyNzcw
IC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCAqLywKKwkJCQlCNjY5M0VGMTExQUQ2NDg2
MDAzRjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCAqLywKIAkJCQlDNUY0RjQwNDEx
OTMwNkFDMDBGREZBREQgLyogSlNJREJSZXF1ZXN0LmNwcCAqLywKIAkJCQlDNUY0RjQwNTExOTMw
NkFDMDBGREZBREQgLyogSlNJREJSZXF1ZXN0LmggKi8sCiAJCQkJQzU2QzkxQTQxMTlEOTE4NzAw
REU0Q0Q5IC8qIEpTSURCU3VjY2Vzc0V2ZW50LmNwcCAqLywKQEAgLTE5MzMyLDYgKzE5MzUzLDkg
QEAKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8qIFpvb21Nb2Rl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlCNjY5M0VFQzExQUQ2M0U2MDAzRjI3NzAgLyogSURCT2Jq
ZWN0U3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCUI2NjkzRUVFMTFBRDYzRTYwMDNGMjc3MCAv
KiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUI2NjkzRUYzMTFB
RDY0ODYwMDNGMjc3MCAvKiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yMTYyMSw2ICsyMTY0NSwxMCBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAv
KiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBD
RjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3REQ0RDg2MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUI2NjkzRUVCMTFBRDYzRTYwMDNGMjc3MCAvKiBJREJPYmplY3RTdG9yZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlCNjY5M0VFRDExQUQ2M0U2MDAzRjI3NzAgLyogSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUI2NjkzRUYyMTFBRDY0ODYwMDNGMjc3
MCAvKiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCNjI3
RkIyRDExQUQ3NDM1MDBFOTdCNzIgLyogSURCRGF0YWJhc2VJbXBsLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAJKHJldmlzaW9uIDYw
MjMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDggKzM2LDEwIEBACiAKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPYmplY3RTdG9yZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSlNJREJE
YXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkpTSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oIgogCkBAIC01NSw2ICs1Nyw4IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmEKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAg
Y2FzZSBJREJBbnk6OklEQkRhdGFiYXNlUmVxdWVzdFR5cGU6CiAgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRiQW55LT5pZGJEYXRhYmFzZVJlcXVlc3QoKSk7CisgICAg
Y2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlUmVxdWVzdFR5cGU6CisgICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRiQW55LT5pZGJPYmplY3RTdG9yZVJlcXVlc3QoKSk7
CiAgICAgY2FzZSBJREJBbnk6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3RUeXBlOgogICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aW5kZXhlZERhdGFiYXNlUmVx
dWVzdCgpKTsKICAgICBjYXNlIElEQkFueTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlVHlwZToKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAJKHJl
dmlzaW9uIDYwMjMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0
b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAKICNpbmNsdWRlICJTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJWOElEQkRhdGFiYXNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlY4SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVjhJbmRleGVk
RGF0YWJhc2VSZXF1ZXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDYgKzUxLDgg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSURCQW55KiBpbXBsKQogICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIGNhc2UgSURCQW55OjpJREJEYXRhYmFzZVJlcXVlc3RU
eXBlOgogICAgICAgICByZXR1cm4gdG9WOChpbXBsLT5pZGJEYXRhYmFzZVJlcXVlc3QoKSk7Cisg
ICAgY2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlUmVxdWVzdFR5cGU6CisgICAgICAgIHJldHVy
biB0b1Y4KGltcGwtPmlkYk9iamVjdFN0b3JlUmVxdWVzdCgpKTsKICAgICBjYXNlIElEQkFueTo6
SW5kZXhlZERhdGFiYXNlUmVxdWVzdFR5cGU6CiAgICAgICAgIHJldHVybiB0b1Y4KGltcGwtPmlu
ZGV4ZWREYXRhYmFzZVJlcXVlc3QoKSk7CiAgICAgY2FzZSBJREJBbnk6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZVR5cGU6CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcAkocmV2aXNpb24gNjAyMzEpCisrKyBXZWJD
b3JlL3N0b3JhZ2UvSURCQW55LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgogCkBAIC01Nyw2ICs1OCwxMiBAQCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gSURC
QW55OjppCiAgICAgcmV0dXJuIG1faWRiRGF0YWJhc2VSZXF1ZXN0OwogfQogCitQYXNzUmVmUHRy
PElEQk9iamVjdFN0b3JlUmVxdWVzdD4gSURCQW55OjppZGJPYmplY3RTdG9yZVJlcXVlc3QoKQor
eworICAgIEFTU0VSVChtX3R5cGUgPT0gSURCT2JqZWN0U3RvcmVSZXF1ZXN0VHlwZSk7CisgICAg
cmV0dXJuIG1faWRiT2JqZWN0U3RvcmVSZXF1ZXN0OworfQorCiBQYXNzUmVmUHRyPEluZGV4ZWRE
YXRhYmFzZVJlcXVlc3Q+IElEQkFueTo6aW5kZXhlZERhdGFiYXNlUmVxdWVzdCgpCiB7CiAgICAg
QVNTRVJUKG1fdHlwZSA9PSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlwZSk7CkBAIC03Myw2ICs4
MCwxNiBAQCB2b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VSCiB7CiAgICAg
bV90eXBlID0gSURCRGF0YWJhc2VSZXF1ZXN0VHlwZTsKICAgICBtX2lkYkRhdGFiYXNlUmVxdWVz
dCA9IHZhbHVlOworICAgIG1faWRiT2JqZWN0U3RvcmVSZXF1ZXN0ID0gMDsKKyAgICBtX2luZGV4
ZWREYXRhYmFzZVJlcXVlc3QgPSAwOworICAgIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlID0gMDsK
K30KKwordm9pZCBJREJBbnk6OnNldChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlUmVxdWVzdD4g
dmFsdWUpCit7CisgICAgbV90eXBlID0gSURCT2JqZWN0U3RvcmVSZXF1ZXN0VHlwZTsKKyAgICBt
X2lkYkRhdGFiYXNlUmVxdWVzdCA9IDA7CisgICAgbV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSB2
YWx1ZTsKICAgICBtX2luZGV4ZWREYXRhYmFzZVJlcXVlc3QgPSAwOwogICAgIG1fc2VyaWFsaXpl
ZFNjcmlwdFZhbHVlID0gMDsKIH0KQEAgLTgxLDYgKzk4LDcgQEAgdm9pZCBJREJBbnk6OnNldChQ
YXNzUmVmUHRyPEluZGV4ZWREYXRhYgogewogICAgIG1fdHlwZSA9IEluZGV4ZWREYXRhYmFzZVJl
cXVlc3RUeXBlOwogICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsKKyAgICBtX2lkYk9iamVj
dFN0b3JlUmVxdWVzdCA9IDA7CiAgICAgbV9pbmRleGVkRGF0YWJhc2VSZXF1ZXN0ID0gdmFsdWU7
CiAgICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOwogfQpAQCAtODksNiArMTA3LDcgQEAg
dm9pZCBJREJBbnk6OnNldChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTYwogewogICAgIG1fdHlwZSA9
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZVR5cGU7CiAgICAgbV9pZGJEYXRhYmFzZVJlcXVlc3QgPSAw
OworICAgIG1faWRiT2JqZWN0U3RvcmVSZXF1ZXN0ID0gMDsKICAgICBtX2luZGV4ZWREYXRhYmFz
ZVJlcXVlc3QgPSAwOwogICAgIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlID0gdmFsdWU7CiB9Cklu
ZGV4OiBXZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9y
YWdlL0lEQkFueS5oCShyZXZpc2lvbiA2MDIzMSkKKysrIFdlYkNvcmUvc3RvcmFnZS9JREJBbnku
aAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBJREJEYXRhYmFzZVJlcXVlc3Q7CitjbGFzcyBJREJPYmplY3RTdG9yZVJlcXVlc3Q7
CiBjbGFzcyBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwogCkBAIC00OSw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICBlbnVtIFR5cGUgewogICAgICAg
ICBVbmRlZmluZWRUeXBlID0gMCwKICAgICAgICAgSURCRGF0YWJhc2VSZXF1ZXN0VHlwZSwKKyAg
ICAgICAgSURCT2JqZWN0U3RvcmVSZXF1ZXN0VHlwZSwKICAgICAgICAgSW5kZXhlZERhdGFiYXNl
UmVxdWVzdFR5cGUsCiAgICAgICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZVR5cGUKICAgICB9OwpA
QCAtNTYsMTAgKzU4LDEyIEBAIHB1YmxpYzoKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KIAogICAgIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiBpZGJEYXRh
YmFzZVJlcXVlc3QoKTsKKyAgICBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlUmVxdWVzdD4gaWRi
T2JqZWN0U3RvcmVSZXF1ZXN0KCk7CiAgICAgUGFzc1JlZlB0cjxJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0PiBpbmRleGVkRGF0YWJhc2VSZXF1ZXN0KCk7CiAgICAgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOwogCiAgICAgdm9pZCBzZXQoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+KTsKKyAgICB2b2lkIHNldChQYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlUmVxdWVzdD4pOwogICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SW5kZXhlZERh
dGFiYXNlUmVxdWVzdD4pOwogICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPik7CiAKQEAgLTcwLDYgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE9ubHkgb25l
IG9mIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGV2ZXIgYmUgaW4gdXNlIGF0IGFueSBnaXZlbiB0aW1l
LgogICAgIFJlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IG1faWRiRGF0YWJhc2VSZXF1ZXN0Owor
ICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IG1faWRiT2JqZWN0U3RvcmVSZXF1ZXN0
OwogICAgIFJlZlB0cjxJbmRleGVkRGF0YWJhc2VSZXF1ZXN0PiBtX2luZGV4ZWREYXRhYmFzZVJl
cXVlc3Q7CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9zZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CiB9OwpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJ
REJPYmplY3RTdG9yZS5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworLy8gRklYTUU6IFdyaXRlLgorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwpJbmRleDogV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
SURCT2JqZWN0U3RvcmVfaAorI2RlZmluZSBJREJPYmplY3RTdG9yZV9oCisKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQk9i
amVjdFN0b3JlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCT2JqZWN0U3RvcmU+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gY3JlYXRlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCT2JqZWN0U3RvcmUoKSk7CisgICAg
fQorICAgIHZpcnR1YWwgfklEQk9iamVjdFN0b3JlKCkgeyB9CisKKyAgICBTdHJpbmcgbmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIFN0cmluZyBrZXlQYXRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9rZXlQYXRoOyB9CisKK3ByaXZhdGU6CisgICAgSURCT2JqZWN0U3RvcmUoKSB7IH0K
KworICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5nIG1fa2V5UGF0aDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJPYmplY3RTdG9yZV9o
CisKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIklEQk9iamVjdFN0b3JlUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiSURCQW55LmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpJREJPYmplY3RTdG9yZVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gaWRiU3RvcmUpIAorICAgIDogbV9v
YmplY3RTdG9yZShpZGJTdG9yZSkKKyAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250
ZXh0KQoreworICAgIG1fdGhpcyA9IElEQkFueTo6Y3JlYXRlKCk7CisgICAgbV90aGlzLT5zZXQo
dGhpcyk7Cit9CisKK1N0cmluZyBJREJPYmplY3RTdG9yZVJlcXVlc3Q6Om5hbWUoKSBjb25zdAor
eworICAgIEFTU0VSVChtX29iamVjdFN0b3JlKTsKKyAgICByZXR1cm4gbV9vYmplY3RTdG9yZS0+
bmFtZSgpOworfQorCitTdHJpbmcgSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjprZXlQYXRoKCkgY29u
c3QKK3sKKyAgICBBU1NFUlQobV9vYmplY3RTdG9yZSk7CisgICAgcmV0dXJuIG1fb2JqZWN0U3Rv
cmUtPmtleVBhdGgoKTsKK30KKworUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9y
ZVJlcXVlc3Q6OmdldChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5KQorewor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICBVTlVTRURfUEFSQU0oa2V5KTsKKyAgICByZXR1
cm4gMDsKK30KKworUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6
OmFkZChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAor
ICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CisgICAgcmV0
dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0
Ojptb2RpZnkoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5KQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShrZXkpOworICAg
IHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVx
dWVzdDo6YWRkT3JNb2RpZnkoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVl
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5KQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShr
ZXkpOworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlUmVxdWVzdDo6cmVtb3ZlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBr
ZXkpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIFVOVVNFRF9QQVJBTShrZXkpOwor
ICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IElEQk9iamVjdFN0b3JlUmVxdWVzdF9oCisjZGVmaW5lIElEQk9iamVjdFN0b3JlUmVxdWVzdF9o
CisKKyNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgorI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
KyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBJREJBbnk7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOworCitjbGFzcyBJREJPYmplY3RTdG9yZVJlcXVlc3QgOiBwdWJsaWMg
UmVmQ291bnRlZDxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBpZGJPYmplY3RTdG9y
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCT2JqZWN0U3RvcmVSZXF1
ZXN0KGNvbnRleHQsIGlkYk9iamVjdFN0b3JlKSk7CisgICAgfQorICAgIH5JREJPYmplY3RTdG9y
ZVJlcXVlc3QoKSB7IH0KKworICAgIFN0cmluZyBuYW1lKCkgY29uc3Q7CisgICAgU3RyaW5nIGtl
eVBhdGgoKSBjb25zdDsKKworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gYWRkKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGtleSA9IDApOworICAgIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gbW9kaWZ5KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGtleSA9IDApOworICAgIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gYWRkT3JNb2RpZnkoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHZhbHVlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5ID0gMCk7CisgICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiByZW1vdmUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IGtleSk7CisKK3ByaXZhdGU6CisgICAgSURCT2JqZWN0U3RvcmVSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPik7CisKKyAgICBS
ZWZQdHI8SURCT2JqZWN0U3RvcmU+IG1fb2JqZWN0U3RvcmU7CisgICAgUmVmUHRyPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ+IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKyAgICBSZWZQdHI8SURC
QW55PiBtX3RoaXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisj
ZW5kaWYgLy8gSURCRGF0YWJhc2VSZXF1ZXN0X2gKKwpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK21vZHVsZSBzdG9yYWdlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRp
dGlvbmFsPUlOREVYRURfREFUQUJBU0UKKyAgICBdIElEQk9iamVjdFN0b3JlUmVxdWVzdCB7Cisg
ICAgICAgIElEQlJlcXVlc3QgZ2V0KGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBrZXkpOworICAg
ICAgICBJREJSZXF1ZXN0IGFkZChpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWUsIGluIFtP
cHRpb25hbF0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGtleSk7CisgICAgICAgIElEQlJlcXVlc3Qg
bW9kaWZ5KGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBTZXJp
YWxpemVkU2NyaXB0VmFsdWUga2V5KTsKKyAgICAgICAgSURCUmVxdWVzdCBhZGRPck1vZGlmeShp
biBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWUsIGluIFtPcHRpb25hbF0gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIGtleSk7CisgICAgICAgIElEQlJlcXVlc3QgcmVtb3ZlKGluIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBrZXkpOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bmFtZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBrZXlQYXRoOworICAg
ICAgICAvLyBGSVhNRTogYWRkIGluZGV4TmFtZXMgcHJvcGVydHkuCisgICAgfTsKK30K
</data>
<flag name="review"
          id="41619"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>