<?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>85326</bug_id>
          
          <creation_ts>2012-05-01 17:28:07 -0700</creation_ts>
          <short_desc>WebIDL: overloaded methods prevent number -&gt; string conversion</short_desc>
          <delta_ts>2012-10-11 08:03:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
    
    <cc>haraken</cc>
    
    <cc>ian</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>613817</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-01 17:28:07 -0700</bug_when>
    <thetext>(From e-mail sent to kentaro@ and abarth@)

Here&apos;s the situation:
We have an API that previously took a number as it&apos;s 2nd parameter, and we&apos;d like to change it to accept a string, as per the latest IndexedDB spec.

So I changed this:
        IDBTransaction transaction(in DOMStringList storeNames, in unsigned short mode)
            raises (IDBDatabaseException);
        IDBTransaction transaction(in DOMString[] storeNames, in unsigned short mode)
            raises (IDBDatabaseException);
        IDBTransaction transaction(in DOMString storeName, in unsigned short mode)
            raises (IDBDatabaseException);
to this:

        IDBTransaction transaction(in DOMStringList storeNames, in DOMString mode)
            raises (IDBDatabaseException);
        IDBTransaction transaction(in DOMString[] storeNames, in DOMString mode)
            raises (IDBDatabaseException);
        IDBTransaction transaction(in DOMString storeName, in DOMString mode)
            raises (IDBDatabaseException);

Figuring I&apos;d still catch the numeric values, that they&apos;d be converted to strings... i.e. that if someone passed in 0, that I&apos;d get the string &quot;0&quot;.

But it looks like the IDL compiler is generating code to pick the right callback that checks arg[1]-&gt;IsObject(), and when someone passes in a number, it&apos;s not an object so none of the callbacks are called:
    if ((args.Length() == 2 &amp;&amp; (args[0]-&gt;IsNull() || V8DOMStringList::HasInstance(args[0])) &amp;&amp; (args[1]-&gt;IsNull() || args[1]-&gt;IsUndefined() || args[1]-&gt;IsString() || args[1]-&gt;IsObject())))
        return transaction1Callback(args);
    if ((args.Length() == 2 &amp;&amp; (args[0]-&gt;IsNull() || args[0]-&gt;IsArray()) &amp;&amp; (args[1]-&gt;IsNull() || args[1]-&gt;IsUndefined() || args[1]-&gt;IsString() || args[1]-&gt;IsObject())))
        return transaction2Callback(args);
    if ((args.Length() == 2 &amp;&amp; (args[0]-&gt;IsNull() || args[0]-&gt;IsUndefined() || args[0]-&gt;IsString() || args[0]-&gt;IsObject()) &amp;&amp; (args[1]-&gt;IsNull() || args[1]-&gt;IsUndefined() || args[1]-&gt;IsString() || args[1]-&gt;IsObject())))
        return transaction3Callback(args);

Oddly, we made a very similar change to a nearby function, (setVersion) changing an unsigned short to a string, but there is no overload... so the generated code calls     STRING_TO_V8PARAMETER_EXCEPTION_BLOCK without any checks.

So this means that the conversion from number to string works for non-overloaded functions, but not for overloaded functions. 

it seems like for this very specific case, we could simply add IsNumber() as another check in the overload checks, (around line 1288 in CodeGeneratorV8) but I don&apos;t know what the repercussions would be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613818</commentid>
    <comment_count>1</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-01 17:28:50 -0700</bug_when>
    <thetext>[leaving unassigned because I&apos;m pretty new to WebKit and not quite ready to dive into both JavaScriptCore *and* V8, but maybe in a few weeks when I&apos;m more up to speed]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673758</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-19 12:02:59 -0700</bug_when>
    <thetext>In lieu of implementing http://dev.w3.org/2006/webapi/WebIDL/#dfn-overload-resolution-algorithm we could:

* Enable StrictTypeChecking as a parameter attribute
* Mark existing overload DOMString parameters with [StrictTypeChecking]
* Change (using V8 as example) GenerateParametersCheckExpression:

old:
        if ($codeGenerator-&gt;IsStringType($type)) {
            push(@andExpression, &quot;(${value}-&gt;IsNull() || ${value}-&gt;IsUndefined() || ${value}-&gt;IsString() || ${value}-&gt;IsObject())&quot;);

new:
        if ($codeGenerator-&gt;IsStringType($type)) {
            if ($parameter-&gt;extendedAttributes-&gt;{&quot;StrictTypeChecking&quot;}) {
                push(@andExpression, &quot;(${value}-&gt;IsNull() || ${value}-&gt;IsUndefined() || ${value}-&gt;IsString() || ${value}-&gt;IsObject())&quot;);

This would get us the &quot;anything can coerce to DOMString&quot; behavior that non-overloaded methods have. This isn&apos;t urgent - we work around this in IndexedDB by having duplicate overloads for e.g. numbers and strings; it just multiplies the number of overloads in the IDL and impl which is a maintenance issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726913</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-24 12:23:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; * Enable StrictTypeChecking as a parameter attribute
&gt; * Mark existing overload DOMString parameters with [StrictTypeChecking]

This may be necessary even if the full overloading algorithm from the spec is implemented, as there are legacy interfaces that are ambiguous overloads in WebIDL, e.g.:

./html/canvas/CanvasRenderingContext2D.idl:
 void setStrokeColor(DOMString color, float alpha)
 void setStrokeColor(float grayLevel, float alpha)

./html/canvas/CanvasRenderingContext2D.idl:
 void setFillColor(DOMString color, float alpha)
 void setFillColor(float grayLevel, float alpha)

./html/canvas/CanvasRenderingContext2D.idl:
 void setShadow(float width, float height, float blur, DOMString color, float alpha)
 void setShadow(float width, float height, float blur, float grayLevel, float alpha)

... and possibly:
 ./xml/XMLHttpRequest.idl: void send(...)

Otherwise, it looks like all the overloads in WebCore IDLs involving DOMString can be disambiguated based on earlier arguments, or are intentional to work around this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726935</commentid>
    <comment_count>4</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-09-24 12:54:56 -0700</bug_when>
    <thetext>Is it possible to just drop those? They&apos;re not specced and I don&apos;t believe anyone else implements them...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738230</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-09 15:05:33 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Is it possible to just drop those? They&apos;re not specced and I don&apos;t believe anyone else implements them...

I tried digging through the history to see where these came from, but wasn&apos;t able to go back far enough. They certainly look legacy, but did get documented at least here: https://developer.mozilla.org/en-US/docs/DOM/CanvasRenderingContext2D#WebKit-specific_methods

Definitely seems worthwhile to try and get usage numbers for them. But that&apos;s getting off topic...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738295</commentid>
    <comment_count>6</comment_count>
      <attachid>167870</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-09 16:07:25 -0700</bug_when>
    <thetext>Created attachment 167870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738296</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-09 16:08:13 -0700</bug_when>
    <thetext>Plausible patch. Not high priority, but we were failing a W3C test case because of this:

http://w3c-test.org/webapps/IndexedDB/tests/submissions/Opera/list_ordering.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738336</commentid>
    <comment_count>8</comment_count>
      <attachid>167870</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-09 16:56:14 -0700</bug_when>
    <thetext>Comment on attachment 167870
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Enable legacy behavior of only matching undefined/null/string/object(and not number,
&gt; +        boolean, etc) via the StrictTypeChecking attribute.

Ideally we want to kill the legacy behavior, but it looks reasonable to land this patch first.

&gt; Source/WebCore/Modules/indexeddb/IDBCursor.cpp:303
&gt; +    // FIXME: Remove legacy constants. http://webkit.org/b/85315

Nit: Also let&apos;s add &quot;this is not thread-safe&quot;.

&gt; Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:344
&gt; +    // FIXME: Remove legacy constants. http://webkit.org/b/85315

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738424</commentid>
    <comment_count>9</comment_count>
      <attachid>167870</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-09 18:49:14 -0700</bug_when>
    <thetext>Comment on attachment 167870
Patch

Attachment 167870 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14252007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739034</commentid>
    <comment_count>10</comment_count>
      <attachid>168018</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-10 09:47:12 -0700</bug_when>
    <thetext>Created attachment 168018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739037</commentid>
    <comment_count>11</comment_count>
      <attachid>168018</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-10 09:48:13 -0700</bug_when>
    <thetext>Comment on attachment 168018
Patch

Fail was due to misplacing the unused arguments check in the JSC code generator. Re-uploaded, will wait for the bots to report green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739983</commentid>
    <comment_count>12</comment_count>
      <attachid>168018</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 08:03:43 -0700</bug_when>
    <thetext>Comment on attachment 168018
Patch

Clearing flags on attachment: 168018

Committed r131063: &lt;http://trac.webkit.org/changeset/131063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739984</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 08:03:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167870</attachid>
            <date>2012-10-09 16:07:25 -0700</date>
            <delta_ts>2012-10-10 09:47:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85326-20121009160625.patch</filename>
            <type>text/plain</type>
            <size>49898</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIwYmQzOWY3NGY0NDY0
NmQ1NTM1Mzk4OWM2ZmEwZDBlNWY1ZjZhYS4uYmYxNThjOTljZjMxMzU3YjY1MTdhN2U3OWUxZmM1
ODhiYjU4YzA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTEwLTA5ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViSURMOiBvdmVybG9h
ZGVkIG1ldGhvZHMgcHJldmVudCBudW1iZXIgLT4gc3RyaW5nIGNvbnZlcnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MzI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgZGVmYXVsdCBi
ZWhhdmlvciBmb3Igb3ZlcmxvYWRlZCBtZXRob2RzIG1hdGNoaW5nIERPTVN0cmluZyBhcmd1bWVu
dHMgbWF0Y2ggdGhlCisgICAgICAgIGRlZmF1bHQgYmVoYXZpb3IgZm9yIG5vbi1vdmVybG9hZGVk
IG1ldGhvZHMsIHdoaWNoIG1vcmUgY2xvc2VseSBtYXRjaGVzIHRoZSBXZWJJREwgc3BlYy4KKyAg
ICAgICAgRW5hYmxlIGxlZ2FjeSBiZWhhdmlvciBvZiBvbmx5IG1hdGNoaW5nIHVuZGVmaW5lZC9u
dWxsL3N0cmluZy9vYmplY3QoYW5kIG5vdCBudW1iZXIsCisgICAgICAgIGJvb2xlYW4sIGV0Yykg
dmlhIHRoZSBTdHJpY3RUeXBlQ2hlY2tpbmcgYXR0cmlidXRlLgorCisgICAgICAgIFRlc3RzOiBz
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLmh0bWwKKyAgICAgICAgICAgICAgIHN0
b3JhZ2UvaW5kZXhlZGRiL2xlZ2FjeS1jb25zdGFudHMuaHRtbAorICAgICAgICAgICAgICAgLi4u
IGFuZCBydW4tYmluZGluZ3MtdGVzdHMKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0
aW9uKTogSGFuZGxlICIwIi4uLiI0IiBhcyBzdHJpbmdpZmllZCBsZWdhY3kgY29uc3RhbnRzLgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDogUmVtb3ZlIHJlZHVuZGFudCBvdmVybG9hZHMu
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOiBSZW1vdmUgcmVk
dW5kYW50IG92ZXJsb2Fkcy4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5oOgorICAgICAgICAoSURCRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmlkbDogUmVtb3ZlIHJlZHVuZGFudCBvdmVybG9hZHMuCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwOiBSZW1vdmUgcmVkdW5kYW50IG92ZXJsb2Fk
cy4KKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJJbmRleC5oOiBSZW1vdmUgcmVkdW5kYW50IG92ZXJsb2Fkcy4KKyAgICAgICAgKElE
QkluZGV4KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGw6IFJlbW92
ZSByZWR1bmRhbnQgb3ZlcmxvYWRzLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlLmNwcDogUmVtb3ZlIHJlZHVuZGFudCBvdmVybG9hZHMuCisgICAgICAgIChXZWJD
b3JlOjpJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuaDogUmVtb3ZlIHJlZHVuZGFudCBvdmVybG9hZHMuCisgICAg
ICAgIChJREJPYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuaWRsOiBSZW1vdmUgcmVkdW5kYW50IG92ZXJsb2Fkcy4KKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbjo6c3RyaW5nVG9Nb2RlKTogSGFuZGxlICIwIi4uLiI0IiBhcyBzdHJpbmdpZmll
ZCBsZWdhY3kgY29uc3RhbnRzLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
IENoZWNrIGZvciBTdHJpY3RUeXBlQ2hlY2tpbmcgYXR0cmlidXRlLgorICAgICAgICAoR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2tFeHByZXNzaW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbTogRGl0dG8uCisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnND
aGVja0V4cHJlc3Npb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwOiBSZWJhc2VsaW5lZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDExKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6IEFkZGVkIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIHRvIERPTVN0cmluZyBvdmVybG9hZHMsCisgICAgICAgIHBsdXMg
YSBuZXcgRE9NU3RyaW5nIG92ZXJsb2FkIHcvbyBpdC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDogUmViYXNlbGluZWQuCisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDExQ2FsbGJhY2spOgorICAgICAg
ICAoVGVzdE9ialY4SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJu
YWw6Om92ZXJsb2FkZWRNZXRob2RDYWxsYmFjayk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbDogVGFnIGxlZ2FjeSBvdmVybG9hZHMgd2l0aCBbU3Ry
aWN0VHlwZUNoZWNraW5nXS4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsOiBEaXR0
by4KKwogMjAxMi0xMC0wOCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgSW5saW5lIGxvZ2ljYWxIZWlnaHRGb3JSb3dTaXppbmcgdG8gc2hhdmUgYW5vdGhlciAyLTMl
IG9mZiByb2JvaG9ybmV0J3MgcmVzaXplY29sLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4IDQxYzM4ODdmY2Y1NGRiYTQ4OGQ0N2Qw
ODdlNTVmZDFiOTAxZmM1ODEuLjVlMTEwOWU2NTQ1ZDVjMmI4MWZmZjdlMmZlZTQzZmU3YzZkNDRk
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJ
REJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTY3Jp
cHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI4OCw3ICsyODksNyBAQCBQYXNzUmVmUHRyPElEQk9iamVj
dFN0b3JlPiBJREJDdXJzb3I6OmVmZmVjdGl2ZU9iamVjdFN0b3JlKCkKICAgICByZXR1cm4gaW5k
ZXgtPm9iamVjdFN0b3JlKCk7CiB9CiAKLUlEQkN1cnNvcjo6RGlyZWN0aW9uIElEQkN1cnNvcjo6
c3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIEV4Y2VwdGlv
bkNvZGUmIGVjKQorSURCQ3Vyc29yOjpEaXJlY3Rpb24gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVj
dGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKGRpcmVjdGlvblN0cmlu
ZyA9PSBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSkKICAgICAgICAgcmV0dXJuIElEQkN1cnNv
cjo6TkVYVDsKQEAgLTI5OSw2ICszMDAsMTMgQEAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gSURCQ3Vy
c29yOjpzdHJpbmdUb0RpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZywKICAg
ICBpZiAoZGlyZWN0aW9uU3RyaW5nID09IElEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSgp
KQogICAgICAgICByZXR1cm4gSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FURTsKIAorICAgIC8v
IEZJWE1FOiBSZW1vdmUgbGVnYWN5IGNvbnN0YW50cy4gaHR0cDovL3dlYmtpdC5vcmcvYi84NTMx
NQorICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJ
TGl0ZXJhbCgiTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5D
dXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSBcIm5leHRcIiwgXCJuZXh0dW5pcXVlXCIsIFwi
cHJldlwiLCBvciBcInByZXZ1bmlxdWVcIi4iKSkpOworICAgIGlmIChkaXJlY3Rpb25TdHJpbmcg
PT0gIjAiIHx8IGRpcmVjdGlvblN0cmluZyA9PSAiMSIgfHwgZGlyZWN0aW9uU3RyaW5nID09ICIy
IiB8fCBkaXJlY3Rpb25TdHJpbmcgPT0gIjMiKSB7CisgICAgICAgIGNvbnRleHQtPmFkZENvbnNv
bGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdl
TGV2ZWwsIGNvbnNvbGVNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PElEQkN1
cnNvcjo6RGlyZWN0aW9uPihJREJDdXJzb3I6Ok5FWFQgKyAoZGlyZWN0aW9uU3RyaW5nWzBdIC0g
JzAnKSk7CisgICAgfQorCiAgICAgZWMgPSBOQVRJVkVfVFlQRV9FUlI7CiAgICAgcmV0dXJuIElE
QkN1cnNvcjo6TkVYVDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmgKaW5kZXggOWE5NTE0NzU3ODZlYjdhMzNjZTdmZjMyNTA3YzU5ZDEzN2JjNzRhMy4u
YTA1NzY4NjA4ZWJkY2E2OTc4OWMwOTUyMzE2NmUyZDVjNjY5YWU1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblByZXYoKTsKICAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBkaXJlY3Rpb25QcmV2VW5pcXVlKCk7CiAKLSAg
ICBzdGF0aWMgSURCQ3Vyc29yOjpEaXJlY3Rpb24gc3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3Ry
aW5nJiBtb2RlU3RyaW5nLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIElEQkN1cnNvcjo6
RGlyZWN0aW9uIHN0cmluZ1RvRGlyZWN0aW9uKGNvbnN0IFN0cmluZyYgbW9kZVN0cmluZywgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBkaXJlY3Rpb25Ub1N0cmluZyh1bnNpZ25lZCBzaG9ydCBtb2RlLCBFeGNl
cHRpb25Db2RlJik7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3I+IGNyZWF0ZShQ
YXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBEaXJlY3Rpb24sIElEQlJlcXVl
c3QqLCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCAxNmUxYzBkN2NkMjMx
NzczZWUxNzIxZTM3MjQ1ZTc2OGZlNGZhMTczLi4yYzkxZDcyZjdlZGZjMjZiMmM0MjMzNmM3NTlk
OGU0ZmNhNTlhMDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2UuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbj4gSURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgSURCVHJhbnNhY3Rpb246Ok1vZGUg
bW9kZSA9IElEQlRyYW5zYWN0aW9uOjpzdHJpbmdUb01vZGUobW9kZVN0cmluZywgZWMpOworICAg
IElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUgPSBJREJUcmFuc2FjdGlvbjo6c3RyaW5nVG9Nb2Rl
KG1vZGVTdHJpbmcsIGNvbnRleHQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCkBAIC0yNjIsMjUgKzI2Miw2IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQkRh
dGFiYXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250CiAgICAgcmV0
dXJuIHRyYW5zYWN0aW9uKGNvbnRleHQsIHN0b3JlTmFtZXMsIG1vZGUsIGVjKTsKIH0KIAotUGFz
c1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgc3RvcmVOYW1lLCB1bnNpZ25l
ZCBzaG9ydCBtb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBSZWZQdHI8RE9NU3RyaW5n
TGlzdD4gc3RvcmVOYW1lcyA9IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOwotICAgIHN0b3JlTmFt
ZXMtPmFwcGVuZChzdG9yZU5hbWUpOwotICAgIHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCBz
dG9yZU5hbWVzLCBtb2RlLCBlYyk7Ci19Ci0KLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElE
QkRhdGFiYXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHBycFN0b3JlTmFtZXMsIHVuc2lnbmVkIHNob3J0IG1v
ZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIEZJWE1FOiBJcyB0aGlzIHRocmVhZC1z
YWZlPwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFT
Q0lJTGl0ZXJhbCgiTnVtZXJpYyB0cmFuc2FjdGlvbiBtb2RlcyBhcmUgZGVwcmVjYXRlZCBpbiBJ
REJEYXRhYmFzZS50cmFuc2FjdGlvbi4gVXNlIFwicmVhZG9ubHlcIiBvciBcInJlYWR3cml0ZVwi
LiIpKSk7Ci0gICAgY29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UpOwotICAg
IEF0b21pY1N0cmluZyBtb2RlU3RyaW5nID0gSURCVHJhbnNhY3Rpb246Om1vZGVUb1N0cmluZyhJ
REJUcmFuc2FjdGlvbjo6TW9kZShtb2RlKSwgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0
dXJuIDA7Ci0KLSAgICByZXR1cm4gdHJhbnNhY3Rpb24oY29udGV4dCwgcHJwU3RvcmVOYW1lcywg
bW9kZVN0cmluZywgZWMpOwotfQotCiB2b2lkIElEQkRhdGFiYXNlOjpmb3JjZUNsb3NlKCkKIHsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5oCmluZGV4IDNmMWRhMGJjMzBkNWYwNDc1ZWE5M2Y4MjE5NjA1
N2M4MTVlYWFlZDEuLmI4YmExOTQ1MDBiMjk3NGNlODcwNGI2NGRiNGZkZjk3MjJiYzkzOTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAt
NjcsOCArNjcsNiBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gY3Jl
YXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBEaWN0aW9uYXJ5JiwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCBjb25z
dCBTdHJpbmcmIG1vZGUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBtb2RlLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4sIHVuc2lnbmVkIHNob3J0IG1vZGUsIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1l
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVz
dD4gc2V0VmVyc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiB2ZXJz
aW9uLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBjbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsCmluZGV4IGQyNTNlNGRmN2Ey
YzI2MzY3NzA4YTE4MGE4NzZhZWMzMWRkMjUyMGIuLjQ4ZjFmMWM4ODdjYTVlODdmNzc2NDExZGI4
NzgxYjBjMTVlOTIzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5pZGwKQEAgLTUyLDE0ICs1Miw2IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAg
ICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRy
YW5zYWN0aW9uKGluIERPTVN0cmluZyBzdG9yZU5hbWUsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNO
dWxsU3RyaW5nXSBET01TdHJpbmcgbW9kZSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOwogCi0gICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlc2Ugd2hlbiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMjYgaXMgZml4ZWQuCi0gICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJUcmFuc2FjdGlvbiB0cmFu
c2FjdGlvbihpbiBET01TdHJpbmdMaXN0IHN0b3JlTmFtZXMsIGluIHVuc2lnbmVkIHNob3J0IG1v
ZGUpCi0gICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0
aW9uKGluIERPTVN0cmluZ1tdIHN0b3JlTmFtZXMsIGluIHVuc2lnbmVkIHNob3J0IG1vZGUpCi0g
ICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKGlu
IERPTVN0cmluZyBzdG9yZU5hbWUsIGluIHVuc2lnbmVkIHNob3J0IG1vZGUpCi0gICAgICAgICAg
ICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLQogICAgICAgICB2b2lkIGNsb3NlKCk7
CiAKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKaW5kZXggMDdmOGU0OTVmNDgyZTYxZDdiMDc2
ZjVlYjIwMzlhMGJkNmE0NzU3Yy4uZjEyMjUwMDU4N2MzMGE0MjEzYjVkZDU5Zjg0Y2RiZTNkODc1
Y2Y4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNw
cApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJ
REJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKLSNpbmNsdWRlICJTY3Jp
cHRDYWxsU3RhY2suaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MCw3ICs2OSw3IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRp
b246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQot
ICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9E
aXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5nLCBlYyk7CisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24g
ZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihkaXJlY3Rpb25TdHJpbmcs
IGNvbnRleHQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC04MSwx
OCArODAsNiBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhcwogICAgIHJldHVybiByZXF1ZXN0Owog
fQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdl
LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIElE
Ql9UUkFDRSgiSURCSW5kZXg6Om9wZW5DdXJzb3IiKTsKLSAgICAvLyBGSVhNRTogSXMgdGhpcyB0
aHJlYWQtc2FmZT8KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsIChBU0NJSUxpdGVyYWwoIk51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRl
ZCBpbiBJREJJbmRleC5vcGVuQ3Vyc29yLiBVc2UgXCJuZXh0XCIsIFwibmV4dHVuaXF1ZVwiLCBc
InByZXZcIiwgb3IgXCJwcmV2dW5pcXVlXCIuIikpKTsKLSAgICBjb250ZXh0LT5hZGRDb25zb2xl
TWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxl
dmVsLCBjb25zb2xlTWVzc2FnZSk7Ci0gICAgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcg
PSBJREJDdXJzb3I6OmRpcmVjdGlvblRvU3RyaW5nKGRpcmVjdGlvbiwgZWMpOwotICAgIGlmIChl
YykKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5
UmFuZ2UsIGRpcmVjdGlvblN0cmluZywgZWMpOwotfQotCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCS2V5PiBrZXksIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4OjpvcGVuQ3Vyc29yIik7CkBAIC0x
MDIsMTUgKzg5LDYgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbkN1cnNv
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXMKICAgICByZXR1cm4gb3BlbkN1
cnNvcihjb250ZXh0LCBrZXlSYW5nZS5yZWxlYXNlKCksIGRpcmVjdGlvbiwgZWMpOwogfQogCi1Q
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgSURCX1RSQUNFKCJJREJJbmRl
eDo6b3BlbkN1cnNvciIpOwotICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJL
ZXlSYW5nZTo6b25seShrZXksIGVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLnJlbGVhc2UoKSwgZGlyZWN0
aW9uLCBlYyk7Ci19Ci0KIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmNvdW50KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtl
eVJhbmdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4Ojpj
b3VudCIpOwpAQCAtMTQ4LDcgKzEyNiw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5k
ZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKICAgICAg
ICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSOwog
ICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0
aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihkaXJlY3Rpb25TdHJpbmcsIGVjKTsK
KyAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBJREJDdXJzb3I6OnN0cmluZ1Rv
RGlyZWN0aW9uKGRpcmVjdGlvblN0cmluZywgY29udGV4dCwgZWMpOwogICAgIGlmIChlYykKICAg
ICAgICAgcmV0dXJuIDA7CiAKQEAgLTE1OSwxOCArMTM3LDYgQEAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJJbmRleDo6b3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LAogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
QkluZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24s
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIElEQl9UUkFDRSgiSURCSW5kZXg6Om9wZW5LZXlD
dXJzb3IiKTsKLSAgICAvLyBGSVhNRTogSXMgdGhpcyB0aHJlYWQtc2FmZT8KLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIk51bWVy
aWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuS2V5Q3Vy
c29yLiBVc2UgXCJuZXh0XCIsIFwibmV4dHVuaXF1ZVwiLCBcInByZXZcIiwgb3IgXCJwcmV2dW5p
cXVlXCIuIikpKTsKLSAgICBjb250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSk7
Ci0gICAgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcgPSBJREJDdXJzb3I6OmRpcmVjdGlv
blRvU3RyaW5nKGRpcmVjdGlvbiwgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIG9wZW5LZXlDdXJzb3IoY29udGV4dCwga2V5UmFuZ2UsIGRpcmVjdGlvblN0
cmluZywgZWMpOwotfQotCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuS2V5
Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5
PiBrZXksIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBJREJfVFJBQ0UoIklEQkluZGV4OjpvcGVuS2V5Q3Vyc29yIik7CkBAIC0xODAsMTUgKzE0Niw2
IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKICAgICByZXR1cm4gb3BlbktleUN1cnNvcihjb250
ZXh0LCBrZXlSYW5nZS5yZWxlYXNlKCksIGRpcmVjdGlvbiwgZWMpOwogfQogCi1QYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIHVuc2lnbmVkIHNob3J0IGRpcmVj
dGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgSURCX1RSQUNFKCJJREJJbmRleDo6b3Bl
bktleUN1cnNvciIpOwotICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlS
YW5nZTo6b25seShrZXksIGVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwotICAg
IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLnJlbGVhc2UoKSwgZGlyZWN0
aW9uLCBlYyk7Ci19Ci0KIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4OjpnZXQiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCmluZGV4IDNlMjYwNzBhOWU3
NzI2YzgxOTc0MjcyYjAxNjM2YmQyNWQ1ZDFkNDEuLmUxMGMzNmQyMmI5NWI4Yjg0OTA5MTYyM2Q4
ZGUyM2Y5YTg3NTFlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkluZGV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
SW5kZXguaApAQCAtNjQsOCArNjQsNiBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQ
dHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNv
bnRleHQsIGtleSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsgfQogICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9u
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29y
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QktleT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRleHQsIHN0YXRpY19jYXN0
PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNl
cHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CkBAIC03
NSw4ICs3Myw2IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlD
dXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+
IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5LZXlDdXJzb3IoY29udGV4dCwg
a2V5LCBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPElEQktleVJhbmdlPiwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24s
IEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlDdXJz
b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCS2V5PiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7CiAK
ICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJL
ZXk+LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJJbmRleC5pZGwKaW5kZXggNzc4OTIzNmExNGM3NzhjZDNjMGUzMDEwYjU1NDBiYzI4ZGY3
ZWU0OC4uZWVkMTcxNWYyYWRjMGRhMDAxN2NhZWFlYjFkYjhjNDM0NmU1ZDdlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbApAQCAtNDQsMTcgKzQ0
LDYgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIElEQktleSBrZXksIGluIFtPcHRp
b25hbF0gRE9NU3RyaW5nIGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOwogCi0gICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlc2Ugd2hlbgotICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMjYgaXMg
Zml4ZWQuCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1
ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRp
b25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQotICAgICAgICAgICAgcmFpc2VzIChJREJE
YXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gSURCS2V5IGtleSwgaW4gW09wdGlvbmFsXSB1
bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCi0gICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNl
RXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElE
QlJlcXVlc3Qgb3BlbktleUN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlPyByYW5nZSwg
aW4gW09wdGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCi0gICAgICAgICAgICByYWlz
ZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbktleUN1cnNvcihpbiBJREJLZXkga2V5LCBpbiBb
T3B0aW9uYWxdIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKLSAgICAgICAgICAgIHJhaXNlcyAo
SURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICAKICAgICAgICAgW0NhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0KGluIElEQktleVJhbmdlPyBrZXkpCiAg
ICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0KGluIElEQktleSBrZXkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZS5jcHAKaW5kZXggNjRiNGRkNzc2MjQxNmVjYTMyNjQzOWEwZWRhNjU3N2FjMTFmMGUwYS4uMWNl
OTQ5MjVlYmU5MTk3Njc5YjBjZDI3M2U1NjdkMDQwYmM5ZTUwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtNDEsNyAr
NDEsNiBAQAogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCVHJhY2luZy5o
IgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNr
LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1Vu
dXNlZFBhcmFtLmg+CiAKQEAgLTQ5OCw3ICs0OTcsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eAogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpUUkFOU0FDVElPTl9JTkFDVElW
RV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBJREJDdXJzb3I6OkRpcmVjdGlv
biBkaXJlY3Rpb24gPSBJREJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKGRpcmVjdGlvblN0cmlu
ZywgZWMpOworICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6
c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5nLCBjb250ZXh0LCBlYyk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNTA5LDE4ICs1MDgsNiBAQCBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleAogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBJREJfVFJBQ0Uo
IklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yIik7Ci0gICAgLy8gRklYTUU6IElzIHRoaXMgdGhy
ZWFkLXNhZmU/Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdl
LCAoQVNDSUlMaXRlcmFsKCJOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQg
aW4gSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4gVXNlIFwibmV4dFwiLCBcIm5leHR1bmlxdWVc
IiwgXCJwcmV2XCIsIG9yIFwicHJldnVuaXF1ZVwiLiIpKSk7Ci0gICAgY29udGV4dC0+YWRkQ29u
c29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3Nh
Z2VMZXZlbCwgY29uc29sZU1lc3NhZ2UpOwotICAgIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3Ry
aW5nID0gSURCQ3Vyc29yOjpkaXJlY3Rpb25Ub1N0cmluZyhkaXJlY3Rpb24sIGVjKTsKLSAgICBp
ZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQs
IHJhbmdlLCBkaXJlY3Rpb25TdHJpbmcsIGVjKTsKLX0KLQogUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6b3BlbkN1
cnNvciIpOwpAQCAtNTMwLDE1ICs1MTcsNiBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9i
amVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAogICAg
IHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLnJlbGVhc2UoKSwgZGlyZWN0aW9u
LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6Om9wZW5D
dXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+
IGtleSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yIik7Ci0gICAgUmVmUHRyPElE
QktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGtleSwgZWMpOwotICAgIGlm
IChlYykKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwg
a2V5UmFuZ2UucmVsZWFzZSgpLCBkaXJlY3Rpb24sIGVjKTsKLX0KLQogUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmNvdW50Iik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaAppbmRleCA0ODc1NjNk
MmE5ZDZkMWU2ZTUxMWU0ZWZhNTY5OTZkZjIzN2JiMjc3Li4yYThjZmNmOTdmNjAwMDQ3ZDMzZGI1
NGYyMzFhODIyYWRjYTc2M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKQEAgLTcyLDggKzcyLDYgQEAgcHVibGljOgogICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgY29uc3QgU3RyaW5nJiBkaXJl
Y3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIHJh
bmdlLCBkaXJlY3Rpb24sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6Tm9ybWFsVGFz
aywgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgY29uc3QgU3RyaW5nJiBk
aXJlY3Rpb24sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgY29uc3QgU3RyaW5nJiBkaXJl
Y3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5D
dXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1
bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCS2V5PiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7CiAK
ICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwKaW5kZXggMzI4ODVhODNjNTUwMmNmMzk4MmQ1N2I1
MjQzNGQyZWRiZjA3NGUzNS4uZmM4NTM3ZDI5NDk5M2Q2YTcyNWIwYWYxN2EwOTg1YjczZjgyNGRk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlLmlkbApAQCAtNTMsMTIgKzUzLDYgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGlu
IElEQktleSBrZXksIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGRpcmVjdGlvbikKICAgICAgICAg
ICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogCi0gICAgICAgIC8vIEZJWE1FOiBy
ZW1vdmUgdGhlc2Ugd2hlbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODUzMjYgaXMgZml4ZWQuCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2Us
IGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQotICAgICAgICAgICAgcmFp
c2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gSURCS2V5IGtleSwgaW4gW09w
dGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCi0gICAgICAgICAgICByYWlzZXMgKElE
QkRhdGFiYXNlRXhjZXB0aW9uKTsKLQogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0
cmluZ1tdIGtleVBhdGgsIGluIFtPcHRpb25hbF0gRGljdGlvbmFyeSBvcHRpb25zKQogICAgICAg
ICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJJbmRleCBjcmVhdGVJbmRleChpbiBET01TdHJpbmcg
bmFtZSwgaW4gRE9NU3RyaW5nIGtleVBhdGgsIGluIFtPcHRpb25hbF0gRGljdGlvbmFyeSBvcHRp
b25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uY3BwCmluZGV4IDMwYTg5ODI0N2QwMzBlZjYyNDVjMmQ5ZmVkYmEyZTE2YzczMDAwOGQu
LjhhN2VlYzY5NDkxODEzNDgzMmM5NGViMTQ5MjUyNGYxOWQ4MTczNTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURC
UGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgogI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKKyNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
MzIsMTMgKzMzMywyMSBAQCBib29sIElEQlRyYW5zYWN0aW9uOjpoYXNQZW5kaW5nQWN0aXZpdHko
KSBjb25zdAogICAgIHJldHVybiBtX2hhc1BlbmRpbmdBY3Rpdml0eSB8fCBBY3RpdmVET01PYmpl
Y3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpOwogfQogCi1JREJUcmFuc2FjdGlvbjo6TW9kZSBJREJU
cmFuc2FjdGlvbjo6c3RyaW5nVG9Nb2RlKGNvbnN0IFN0cmluZyYgbW9kZVN0cmluZywgRXhjZXB0
aW9uQ29kZSYgZWMpCitJREJUcmFuc2FjdGlvbjo6TW9kZSBJREJUcmFuc2FjdGlvbjo6c3RyaW5n
VG9Nb2RlKGNvbnN0IFN0cmluZyYgbW9kZVN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1vZGVTdHJpbmcuaXNOdWxs
KCkKICAgICAgICAgfHwgbW9kZVN0cmluZyA9PSBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5
KCkpCiAgICAgICAgIHJldHVybiBJREJUcmFuc2FjdGlvbjo6UkVBRF9PTkxZOwogICAgIGlmICht
b2RlU3RyaW5nID09IElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlKCkpCiAgICAgICAgIHJl
dHVybiBJREJUcmFuc2FjdGlvbjo6UkVBRF9XUklURTsKKworICAgIC8vIEZJWE1FOiBSZW1vdmUg
bGVnYWN5IGNvbnN0YW50cy4gaHR0cDovL3dlYmtpdC5vcmcvYi84NTMxNQorICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiTnVtZXJp
YyB0cmFuc2FjdGlvbiBtb2RlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJEYXRhYmFzZS50cmFuc2Fj
dGlvbi4gVXNlIFwicmVhZG9ubHlcIiBvciBcInJlYWR3cml0ZVwiLiIpKSk7CisgICAgaWYgKG1v
ZGVTdHJpbmcgPT0gIjAiIHx8IG1vZGVTdHJpbmcgPT0gIjEiKSB7CisgICAgICAgIGNvbnRleHQt
PmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5p
bmdNZXNzYWdlTGV2ZWwsIGNvbnNvbGVNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PElEQlRyYW5zYWN0aW9uOjpNb2RlPihJREJUcmFuc2FjdGlvbjo6UkVBRF9PTkxZICsgKG1v
ZGVTdHJpbmdbMF0gLSAnMCcpKTsKKyAgICB9CisKICAgICBlYyA9IE5BVElWRV9UWVBFX0VSUjsK
ICAgICByZXR1cm4gSURCVHJhbnNhY3Rpb246OlJFQURfT05MWTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDljM2MzMmI0
N2M3YTRhMWQ5YTI5ZjY0ZWYyYThjNGQ3MWQ4NjQzZDguLjIyNTNlZWRkOGI5MWJmNGQ2MDliMDA2
NGE4OTYwMDJlZDgyN2RhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IEF0b21pY1N0cmluZyYgbW9kZVJlYWRPbmx5TGVnYWN5KCk7CiAgICAgc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgbW9kZVJlYWRXcml0ZUxlZ2FjeSgpOwogCi0gICAgc3RhdGlj
IE1vZGUgc3RyaW5nVG9Nb2RlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBz
dGF0aWMgTW9kZSBzdHJpbmdUb01vZGUoY29uc3QgU3RyaW5nJiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBt
b2RlVG9TdHJpbmcoTW9kZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiBiYWNrZW5kKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGU4NmFjY2QwZmZjOTA2
OTY5NGM3NjM1ZWEyOGM5ODE0ZGRlZTUzMmIuLmI1ODg0NDY5ZTc5MDI4NjFmMDBkN2Y2M2NhZmM1
Y2NlNTI1ODBhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCkBAIC0xMjc0LDExICsxMjc0LDE0IEBAIHN1YiBHZW5lcmF0ZVBh
cmFtZXRlcnNDaGVja0V4cHJlc3Npb24KICAgICAgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoJHBhcmFtZXRlci0+dHlwZSk7CiAKICAgICAgICAgIyBPbmx5IERPTVN0
cmluZyBvciB3cmFwcGVyIHR5cGVzIGFyZSBjaGVja2VkLgotICAgICAgICAjIEZvciBET01TdHJp
bmcsIE51bGwsIFVuZGVmaW5lZCBhbmQgYW55IE9iamVjdCBhcmUgYWNjZXB0ZWQgdG9vLCBhcwot
ICAgICAgICAjIHRoZXNlIGFyZSBhY2NlcHRhYmxlIHZhbHVlcyBmb3IgYSBET01TdHJpbmcgYXJn
dW1lbnQgKGFueSBPYmplY3QgY2FuCi0gICAgICAgICMgYmUgY29udmVydGVkIHRvIGEgc3RyaW5n
IHZpYSAudG9TdHJpbmcpLgorICAgICAgICAjIEZvciBET01TdHJpbmcgd2l0aCBTdHJpY3RUeXBl
Q2hlY2tpbmcgb25seSBOdWxsLCBVbmRlZmluZWQgYW5kIE9iamVjdAorICAgICAgICAjIGFyZSBh
Y2NlcHRlZCBmb3IgY29tcGF0aWJpbGl0eS4gT3RoZXJ3aXNlLCBubyByZXN0cmljdGlvbnMgYXJl
IG1hZGUgdG8KKyAgICAgICAgIyBtYXRjaCB0aGUgbm9uLW92ZXJsb2FkZWQgYmVoYXZpb3IuCisg
ICAgICAgICMgRklYTUU6IEltcGxlbWVudCBXZWJJREwgb3ZlcmxvYWQgcmVzb2x1dGlvbiBhbGdv
cml0aG0uCiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSkg
ewotICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS5pc1VuZGVmaW5l
ZE9yTnVsbCgpIHx8ICR7dmFsdWV9LmlzU3RyaW5nKCkgfHwgJHt2YWx1ZX0uaXNPYmplY3QoKSki
KTsKKyAgICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3Ry
aWN0VHlwZUNoZWNraW5nIn0pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9u
LCAiKCR7dmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxsKCkgfHwgJHt2YWx1ZX0uaXNTdHJpbmcoKSB8
fCAke3ZhbHVlfS5pc09iamVjdCgpKSIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgJHVz
ZWRBcmd1bWVudHN7JHBhcmFtZXRlckluZGV4fSA9IDE7CiAgICAgICAgIH0gZWxzaWYgKCRwYXJh
bWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsYmFjayJ9KSB7CiAgICAgICAgICAgICAj
IEZvciBDYWxsYmFja3Mgb25seSBjaGVja3MgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3Igb2JqZWN0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQppbmRleCAyNjFhOGIwNzFkN2Y3NjUxYjkwZTAxYjg2MGQwZGI3ZDg1MDk4ZGQzLi5jNDQy
M2NiOTVjNDQ5Yzc4ODViZWFhNWZhOGVmY2NkMDE5YjY1NzE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTM3NiwxMSAr
MTM3NiwxNCBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2tFeHByZXNzaW9uCiAgICAgICAg
IG15ICR0eXBlID0gR2V0VHlwZUZyb21TaWduYXR1cmUoJHBhcmFtZXRlcik7CiAKICAgICAgICAg
IyBPbmx5IERPTVN0cmluZyBvciB3cmFwcGVyIHR5cGVzIGFyZSBjaGVja2VkLgotICAgICAgICAj
IEZvciBET01TdHJpbmcsIE51bGwsIFVuZGVmaW5lZCBhbmQgYW55IE9iamVjdCBhcmUgYWNjZXB0
ZWQgdG9vLCBhcwotICAgICAgICAjIHRoZXNlIGFyZSBhY2NlcHRhYmxlIHZhbHVlcyBmb3IgYSBE
T01TdHJpbmcgYXJndW1lbnQgKGFueSBPYmplY3QgY2FuCi0gICAgICAgICMgYmUgY29udmVydGVk
IHRvIGEgc3RyaW5nIHZpYSAudG9TdHJpbmcpLgorICAgICAgICAjIEZvciBET01TdHJpbmcgd2l0
aCBTdHJpY3RUeXBlQ2hlY2tpbmcgb25seSBOdWxsLCBVbmRlZmluZWQgYW5kIE9iamVjdAorICAg
ICAgICAjIGFyZSBhY2NlcHRlZCBmb3IgY29tcGF0aWJpbGl0eS4gT3RoZXJ3aXNlLCBubyByZXN0
cmljdGlvbnMgYXJlIG1hZGUgdG8KKyAgICAgICAgIyBtYXRjaCB0aGUgbm9uLW92ZXJsb2FkZWQg
YmVoYXZpb3IuCisgICAgICAgICMgRklYTUU6IEltcGxlbWVudCBXZWJJREwgb3ZlcmxvYWQgcmVz
b2x1dGlvbiBhbGdvcml0aG0uCiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdU
eXBlKCR0eXBlKSkgewotICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVl
fS0+SXNOdWxsKCkgfHwgJHt2YWx1ZX0tPklzVW5kZWZpbmVkKCkgfHwgJHt2YWx1ZX0tPklzU3Ry
aW5nKCkgfHwgJHt2YWx1ZX0tPklzT2JqZWN0KCkpIik7CisgICAgICAgICAgICBpZiAoJHBhcmFt
ZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7CisgICAg
ICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS0+SXNOdWxsKCkgfHwg
JHt2YWx1ZX0tPklzVW5kZWZpbmVkKCkgfHwgJHt2YWx1ZX0tPklzU3RyaW5nKCkgfHwgJHt2YWx1
ZX0tPklzT2JqZWN0KCkpIik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzaWYgKCRwYXJh
bWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsYmFjayJ9KSB7CiAgICAgICAgICAgICAj
IEZvciBDYWxsYmFja3Mgb25seSBjaGVja3MgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3Igb2JqZWN0
LgogICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS0+SXNOdWxsKCkg
fHwgJHt2YWx1ZX0tPklzRnVuY3Rpb24oKSkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggYWRjYTEyOTNjNTdj
Y2YwNWMyNWNkMTJjMjZiNmY1NmJiNWE2ODY1My4uNDM1MTM0NjFmZDBhMmJkMmNlNTg0ZjI5NWU3
MjNhZWVmYjU4NDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTIyODMsNiArMjI4MywyMyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QxMAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDExKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRo
aXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8
SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0T2JqOjpzX2luZm8pOworICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CisgICAgY29uc3QgU3Ry
aW5nJiBzdHJBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5k
ZWZpbmVkKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4
ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsK
KyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChzdHJBcmcp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBzaXplX3QgYXJnc0NvdW50ID0gZXhl
Yy0+YXJndW1lbnRDb3VudCgpOwpAQCAtMjMwOCw2ICsyMzI1LDggQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qo
RXhlY1N0YXQKICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDkoZXhlYyk7CiAgICAgaWYgKChhcmdzQ291bnQgPT0gMSAmJiAoYXJnMC5pc09i
amVjdCgpICYmIGlzSlNBcnJheShhcmcwKSkpKQogICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTAoZXhlYyk7CisgICAgaWYgKGFyZ3NDb3Vu
dCA9PSAxKQorICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kMTEoZXhlYyk7CiAgICAgaWYgKGFyZ3NDb3VudCA8IDEpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDc0ODQ1YTdlZGUzMGU0
MWIyM2JiN2YwYzJiYTQ1MTA1ODc1NjhhYzguLjRlNzUxMWY1YmFhNmRlYWIzN2E5NWVmOWVmYjMw
NzMzMjE2MGJlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwKQEAgLTE3Miw5ICsxNzIsOSBAQCBtb2R1bGUgdGVzdCB7CiAKICNpZiBk
ZWZpbmVkKFRFU1RJTkdfVjgpIHx8IGRlZmluZWQoVEVTVElOR19KUykKICAgICAgICAgLy8gT3Zl
cmxvYWRzCi0gICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0T2JqPyBvYmpB
cmcsIGluIERPTVN0cmluZyBzdHJBcmcpOworICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRo
b2QoaW4gVGVzdE9iaj8gb2JqQXJnLCBpbiBbU3RyaWN0VHlwZUNoZWNraW5nXSBET01TdHJpbmcg
c3RyQXJnKTsKICAgICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIFRlc3RPYmo/IG9i
akFyZywgaW4gW09wdGlvbmFsXSBsb25nIGxvbmdBcmcpOwotICAgICAgICB2b2lkICAgIG92ZXJs
b2FkZWRNZXRob2QoaW4gRE9NU3RyaW5nIHN0ckFyZyk7CisgICAgICAgIHZvaWQgICAgb3Zlcmxv
YWRlZE1ldGhvZChpbiBbU3RyaWN0VHlwZUNoZWNraW5nXSBET01TdHJpbmcgc3RyQXJnKTsKICAg
ICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIGxvbmcgbG9uZ0FyZyk7CiAgICAgICAg
IHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBbQ2FsbGJhY2tdIFRlc3RDYWxsYmFjayBjYWxs
YmFjayk7CiAgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBET01TdHJpbmdMaXN0
PyBsaXN0QXJnKTsKQEAgLTE4Miw2ICsxODIsNyBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIHZv
aWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0T2JqIG9iakFyZyk7CiAgICAgICAgIHZvaWQg
ICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBET01TdHJpbmdbXSBhcnJheUFyZyk7CiAgICAgICAgIHZv
aWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBzZXF1ZW5jZTx1bnNpZ25lZCBsb25nPiBhcnJheUFy
Zyk7CisgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBET01TdHJpbmcgc3RyQXJn
KTsKICNlbmRpZgogCiAgICAgICAgIC8vIENsYXNzIG1ldGhvZHMgd2l0aGluIEphdmFTY3JpcHQg
KGxpa2Ugd2hhdCdzIHVzZWQgZm9yIElEQktleVJhbmdlKS4KQEAgLTE5MSw3ICsxOTIsNyBAQCBt
b2R1bGUgdGVzdCB7CiAKICAgICAgICAgLy8gU3RhdGljIG1ldGhvZCB3aXRoIGNvbmRpdGlvbmFs
IG9uIG92ZXJsb2FkZWQgbWV0aG9kcwogICAgICAgICBbQ29uZGl0aW9uYWw9Q29uZGl0aW9uMV0g
c3RhdGljIHZvaWQgb3ZlcmxvYWRlZE1ldGhvZDEoaW4gbG9uZyBhcmcpOwotICAgICAgICBbQ29u
ZGl0aW9uYWw9Q29uZGl0aW9uMV0gc3RhdGljIHZvaWQgb3ZlcmxvYWRlZE1ldGhvZDEoaW4gRE9N
U3RyaW5nIHR5cGUpOworICAgICAgICBbQ29uZGl0aW9uYWw9Q29uZGl0aW9uMV0gc3RhdGljIHZv
aWQgb3ZlcmxvYWRlZE1ldGhvZDEoaW4gW1N0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nIHR5
cGUpOwogCiAgICAgICAgIHZvaWQgY2xhc3NNZXRob2RXaXRoQ2xhbXAoaW4gW0NsYW1wXSB1bnNp
Z25lZCBzaG9ydCBvYmpBcmdzU2hvcnQsIGluIFtDbGFtcF0gdW5zaWduZWQgbG9uZyBvYmpBcmdz
TG9uZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggNTFkMGMzMTBiOTM2YWY2OGJhMTA0OGQzZTY5ODkzYzQz
MzEzNjY2My4uYTA2NGNlM2Q0ODZlMjRhMmI3ZGE1MDFiM2RjYjA1ZGI2NDBkZmM3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAKQEAgLTE2MTksNiArMTYxOSwxNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG92ZXJsb2FkZWRNZXRob2QxMENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogICAg
IHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG92ZXJsb2FkZWRNZXRob2QxMUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7
CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0aG9kMTEiKTsKKyAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBpbXAtPm92ZXJsb2FkZWRN
ZXRob2Qoc3RyQXJnKTsKKyAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKK30KKwogc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2FkZWRN
ZXRob2QiKTsKQEAgLTE2NDIsNiArMTY1Myw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gb3ZlcmxvYWRlZE1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAg
ICAgICAgIHJldHVybiBvdmVybG9hZGVkTWV0aG9kOUNhbGxiYWNrKGFyZ3MpOwogICAgIGlmICgo
YXJncy5MZW5ndGgoKSA9PSAxICYmIChhcmdzWzBdLT5Jc0FycmF5KCkpKSkKICAgICAgICAgcmV0
dXJuIG92ZXJsb2FkZWRNZXRob2QxMENhbGxiYWNrKGFyZ3MpOworICAgIGlmIChhcmdzLkxlbmd0
aCgpID09IDEpCisgICAgICAgIHJldHVybiBvdmVybG9hZGVkTWV0aG9kMTFDYWxsYmFjayhhcmdz
KTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoMCwgYXJncy5HZXRJc29sYXRlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKaW5kZXggYTg1Njk0
ODdhNjVhNWEwMzk2ODM4YTIyZWZlMGU1MTIzMWUzMmU3Zi4uNTRjYWNkMTMxZDYyNWU2OTY0ZDNi
YTcyYzBkOWI2ZDliOTRmN2I5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCkBAIC0xNTYsMTIgKzE1NiwxMiBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgZmlsbFRleHQoaW4gRE9NU3RyaW5nIHRleHQs
IGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIFtPcHRpb25hbF0gZmxvYXQgbWF4V2lkdGgpOwog
ICAgICAgICB2b2lkIHN0cm9rZVRleHQoaW4gRE9NU3RyaW5nIHRleHQsIGluIGZsb2F0IHgsIGlu
IGZsb2F0IHksIGluIFtPcHRpb25hbF0gZmxvYXQgbWF4V2lkdGgpOwogCi0gICAgICAgIHZvaWQg
c2V0U3Ryb2tlQ29sb3IoaW4gRE9NU3RyaW5nIGNvbG9yLCBpbiBbT3B0aW9uYWxdIGZsb2F0IGFs
cGhhKTsKKyAgICAgICAgdm9pZCBzZXRTdHJva2VDb2xvcihpbiBbU3RyaWN0VHlwZUNoZWNraW5n
XSBET01TdHJpbmcgY29sb3IsIGluIFtPcHRpb25hbF0gZmxvYXQgYWxwaGEpOwogICAgICAgICB2
b2lkIHNldFN0cm9rZUNvbG9yKGluIGZsb2F0IGdyYXlMZXZlbCwgaW4gW09wdGlvbmFsXSBmbG9h
dCBhbHBoYSk7CiAgICAgICAgIHZvaWQgc2V0U3Ryb2tlQ29sb3IoaW4gZmxvYXQgciwgaW4gZmxv
YXQgZywgaW4gZmxvYXQgYiwgaW4gZmxvYXQgYSk7CiAgICAgICAgIHZvaWQgc2V0U3Ryb2tlQ29s
b3IoaW4gZmxvYXQgYywgaW4gZmxvYXQgbSwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgaywgaW4gZmxv
YXQgYSk7CiAKLSAgICAgICAgdm9pZCBzZXRGaWxsQ29sb3IoaW4gRE9NU3RyaW5nIGNvbG9yLCBp
biBbT3B0aW9uYWxdIGZsb2F0IGFscGhhKTsKKyAgICAgICAgdm9pZCBzZXRGaWxsQ29sb3IoaW4g
W1N0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nIGNvbG9yLCBpbiBbT3B0aW9uYWxdIGZsb2F0
IGFscGhhKTsKICAgICAgICAgdm9pZCBzZXRGaWxsQ29sb3IoaW4gZmxvYXQgZ3JheUxldmVsLCBp
biBbT3B0aW9uYWxdIGZsb2F0IGFscGhhKTsKICAgICAgICAgdm9pZCBzZXRGaWxsQ29sb3IoaW4g
ZmxvYXQgciwgaW4gZmxvYXQgZywgaW4gZmxvYXQgYiwgaW4gZmxvYXQgYSk7CiAgICAgICAgIHZv
aWQgc2V0RmlsbENvbG9yKGluIGZsb2F0IGMsIGluIGZsb2F0IG0sIGluIGZsb2F0IHksIGluIGZs
b2F0IGssIGluIGZsb2F0IGEpOwpAQCAtMTk4LDcgKzE5OCw3IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGZsb2F0IGR4LCBpbiBb
T3B0aW9uYWxdIGZsb2F0IGR5LCBpbiBbT3B0aW9uYWxdIGZsb2F0IGR3LCBpbiBbT3B0aW9uYWxd
IGZsb2F0IGRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0g
RE9NU3RyaW5nIGNvbXBvc2l0ZU9wZXJhdGlvbik7CiAKLSAgICAgICAgdm9pZCBzZXRTaGFkb3co
aW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCwgaW4gZmxvYXQgYmx1ciwgaW4gW09wdGlv
bmFsXSBET01TdHJpbmcgY29sb3IsIGluIFtPcHRpb25hbF0gZmxvYXQgYWxwaGEpOworICAgICAg
ICB2b2lkIHNldFNoYWRvdyhpbiBmbG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0LCBpbiBmbG9h
dCBibHVyLCBpbiBbT3B0aW9uYWwsIFN0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nIGNvbG9y
LCBpbiBbT3B0aW9uYWxdIGZsb2F0IGFscGhhKTsKICAgICAgICAgdm9pZCBzZXRTaGFkb3coaW4g
ZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCwgaW4gZmxvYXQgYmx1ciwgaW4gZmxvYXQgZ3Jh
eUxldmVsLCBpbiBbT3B0aW9uYWxdIGZsb2F0IGFscGhhKTsKICAgICAgICAgdm9pZCBzZXRTaGFk
b3coaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCwgaW4gZmxvYXQgYmx1ciwgaW4gZmxv
YXQgciwgaW4gZmxvYXQgZywgaW4gZmxvYXQgYiwgaW4gZmxvYXQgYSk7CiAgICAgICAgIHZvaWQg
c2V0U2hhZG93KGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQsIGluIGZsb2F0IGJsdXIs
IGluIGZsb2F0IGMsIGluIGZsb2F0IG0sIGluIGZsb2F0IHksIGluIGZsb2F0IGssIGluIGZsb2F0
IGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKaW5kZXggYzk1NTdiM2E0ZDhl
ZTNiNGMzZDhhY2JmYTdjNTZkMzZjZjI3NzI1YS4uNWNmODkwMjkxYmQyZmJjNDBhZGFkYzZjYmQ4
NjZmYTk1NWQwMWZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC03
Nyw3ICs3Nyw3IEBAIG1vZHVsZSB4bWwgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2VuZChpbiBEb2N1bWVudCBkYXRhKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgc2VuZChp
biBET01TdHJpbmcgZGF0YSkKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBzZW5kKGluIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIERPTVN0cmluZyBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2VuZChpbiBET01Gb3JtRGF0YSBkYXRhKQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWNjODgzNTFlNzZlZWJj
NmVkOWYzMzE5YWY2NTM5YzcwYjUwYjExZi4uYmYyODgyOWJkZDNkNDhmN2M4NmM0ZDg4OWVlNzA5
MjFlY2NhY2Q1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEwLTA5ICBKb3NodWEgQmVs
bCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViSURMOiBvdmVybG9hZGVkIG1l
dGhvZHMgcHJldmVudCBudW1iZXIgLT4gc3RyaW5nIGNvbnZlcnNpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MzI2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCBleHBlY3RhdGlvbnMgLSBu
ZXcgKG1vcmUgZ2VuZXJpYykgY29uc29sZSB3YXJuaW5ncy4KKworICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2xlZ2FjeS1jb25zdGFudHMtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTEwLTA4
ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIHJlc3VsdHMu
aHRtbCBhbmQgZ2FyZGVuLW8tbWF0aWMgYXJlIGlnbm9yaW5nIElNQUdFIGZhaWx1cmVzIHdoZW4g
ZXhwZWN0ZWQgdG8gRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAppbmRleCA5NDdkYTYzYjgwMDg3
ZGJiNWQyNzUzYmRjMzQxOTIzMmM1MTVhZDQ3Li5jNDgwYzRkMzgwODQ4MzA5ZTU3YjY3NTI5MDM4
NzdjN2ZhZTIxZDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
dXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dApAQCAtMSwyOCArMSwyOCBAQAog
Q09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQg
YW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVh
ZC4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNh
dGVkIGluIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVl
IiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGly
ZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29y
LiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09O
U09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4g
SURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJl
diIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24g
dmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IuIFVzZSAi
bmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1F
U1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJPYmpl
Y3RTdG9yZS5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3Ig
InByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMg
YXJlIGRlcHJlY2F0ZWQgaW4gSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4gVXNlICJuZXh0Iiwg
Im5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNPTEUgTUVTU0FHRTog
TnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQk9iamVjdFN0b3Jl
Lm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVu
aXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVw
cmVjYXRlZCBpbiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVu
aXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmlj
IGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgub3BlbkN1cnNvci4g
VXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNP
TEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElE
QkluZGV4Lm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAi
cHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBh
cmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVu
aXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmlj
IGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgub3BlbkN1cnNvci4g
VXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNP
TEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElE
QkluZGV4Lm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAi
cHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBh
cmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVu
aXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmlj
IGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgub3BlbkN1cnNvci4g
VXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNP
TEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElE
QkluZGV4Lm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAi
cHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBh
cmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4
dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1l
cmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgub3BlbktleUN1
cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4K
LUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVk
IGluIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInBy
ZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9u
IHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuS2V5Q3Vyc29yLiBVc2UgIm5l
eHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNT
QUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgu
b3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2
dW5pcXVlIi4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBk
ZXByZWNhdGVkIGluIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5p
cXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMg
ZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuS2V5Q3Vyc29y
LiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09O
U09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4g
SURCSW5kZXgub3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIs
IG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFs
dWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAi
bmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1F
U1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vy
c29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwg
b3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1
ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJu
ZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVT
U0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJz
b3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBv
ciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVl
cyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5l
eHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNT
QUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNv
ciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9y
ICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVz
IGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4
dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NB
R0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29y
IGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3Ig
InByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMg
YXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0
IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FH
RTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3Ig
YW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAi
cHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBh
cmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQi
LCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdF
OiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBh
bmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJw
cmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFy
ZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIs
ICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6
IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFu
ZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInBy
ZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJl
IGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0Iiwg
Im5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTog
TnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5k
IG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJl
dnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUg
ZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAi
bmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBO
dW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQg
b3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2
dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBk
ZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJu
ZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51
bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBv
cGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1
bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRl
cHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5l
eHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVt
ZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9w
ZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVu
aXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVw
cmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4
dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1l
cmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3Bl
bktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5p
cXVlIi4KIFZhbGlkYXRlIHRoZSBvdmVybG9hZHMgb2YgSURCT2JqZWN0U3RvcmUub3BlbkN1cnNv
cigpLCBJREJJbmRleC5vcGVuQ3Vyc29yKCkgYW5kIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKS4K
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbGVnYWN5LWNvbnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLWV4cGVjdGVkLnR4dAppbmRleCBk
NDYwNzAxMWEzZGYwOGIyNzFjYjVhOTIxYzhlMjc0MTM3ODIxNTRkLi40YTViOTI1NjdlMzhjZWEw
NTMxYzdlZmJmNDgzNmVkMDAwYjU1YmZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLWV4cGVjdGVkLnR4dApAQCAtMSwx
NyArMSwxNyBAQAogQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBu
b24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIg
ZXZlbnQgaW5zdGVhZC4KIENPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyB0cmFuc2FjdGlvbiBtb2Rl
cyBhcmUgZGVwcmVjYXRlZCBpbiBJREJEYXRhYmFzZS50cmFuc2FjdGlvbi4gVXNlICJyZWFkb25s
eSIgb3IgInJlYWR3cml0ZSIuCiBDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgdHJhbnNhY3Rpb24g
bW9kZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCRGF0YWJhc2UudHJhbnNhY3Rpb24uIFVzZSAicmVh
ZG9ubHkiIG9yICJyZWFkd3JpdGUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlv
biB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4gVXNl
ICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNPTEUg
TUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQk9i
amVjdFN0b3JlLm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBv
ciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVl
cyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5l
eHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNT
QUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNv
ciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9y
ICJwcmV2dW5pcXVlIi4KIENPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyB0cmFuc2FjdGlvbiBtb2Rl
cyBhcmUgZGVwcmVjYXRlZCBpbiBJREJEYXRhYmFzZS50cmFuc2FjdGlvbi4gVXNlICJyZWFkb25s
eSIgb3IgInJlYWR3cml0ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZh
bHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yLiBVc2UgIm5l
eHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNT
QUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCT2JqZWN0
U3RvcmUub3BlbkN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJw
cmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFy
ZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIs
ICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6
IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFu
ZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInBy
ZXZ1bmlxdWUiLgogQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIHRyYW5zYWN0aW9uIG1vZGVzIGFy
ZSBkZXByZWNhdGVkIGluIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uLiBVc2UgInJlYWRvbmx5IiBv
ciAicmVhZHdyaXRlIi4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVz
IGFyZSBkZXByZWNhdGVkIGluIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IuIFVzZSAibmV4dCIs
ICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6
IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJPYmplY3RTdG9y
ZS5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1
bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRl
cHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5l
eHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVt
ZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9w
ZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVu
aXF1ZSIuCiBDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgdHJhbnNhY3Rpb24gbW9kZXMgYXJlIGRl
cHJlY2F0ZWQgaW4gSURCRGF0YWJhc2UudHJhbnNhY3Rpb24uIFVzZSAicmVhZG9ubHkiIG9yICJy
ZWFkd3JpdGUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJl
IGRlcHJlY2F0ZWQgaW4gSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4gVXNlICJuZXh0IiwgIm5l
eHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNPTEUgTUVTU0FHRTogTnVt
ZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQk9iamVjdFN0b3JlLm9w
ZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1
ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVj
YXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVu
aXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmlj
IGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3Blbktl
eUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVl
Ii4KIFRlc3QgdGhhdCBsZWdhY3kgZGlyZWN0aW9uL21vZGUgY29uc3RhbnRzIHdvcmsKIAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168018</attachid>
            <date>2012-10-10 09:47:12 -0700</date>
            <delta_ts>2012-10-11 08:03:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85326-20121010094612.patch</filename>
            <type>text/plain</type>
            <size>50129</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjljMWI0NzUwZTdmZGNl
NTVkNDZjZmIwNTFiMzFlZTFlNjcyN2ZlOS4uZGZiN2Q2ZDM5NzdhZTNlODQwZTZhY2IwMjE3NmQx
ZmRiNmZlNzVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTEwLTA5ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViSURMOiBvdmVybG9h
ZGVkIG1ldGhvZHMgcHJldmVudCBudW1iZXIgLT4gc3RyaW5nIGNvbnZlcnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MzI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgS2VudGFybyBIYXJhLgorCisgICAgICAgIE1ha2UgdGhlIGRlZmF1bHQgYmVo
YXZpb3IgZm9yIG92ZXJsb2FkZWQgbWV0aG9kcyBtYXRjaGluZyBET01TdHJpbmcgYXJndW1lbnRz
IG1hdGNoIHRoZQorICAgICAgICBkZWZhdWx0IGJlaGF2aW9yIGZvciBub24tb3ZlcmxvYWRlZCBt
ZXRob2RzLCB3aGljaCBtb3JlIGNsb3NlbHkgbWF0Y2hlcyB0aGUgV2ViSURMIHNwZWMuCisgICAg
ICAgIEVuYWJsZSBsZWdhY3kgYmVoYXZpb3Igb2Ygb25seSBtYXRjaGluZyB1bmRlZmluZWQvbnVs
bC9zdHJpbmcvb2JqZWN0KGFuZCBub3QgbnVtYmVyLAorICAgICAgICBib29sZWFuLCBldGMpIHZp
YSB0aGUgU3RyaWN0VHlwZUNoZWNraW5nIGF0dHJpYnV0ZS4KKworICAgICAgICBUZXN0czogc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sCisgICAgICAgICAgICAgICBzdG9y
YWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLmh0bWwKKyAgICAgICAgICAgICAgIC4uLiBh
bmQgcnVuLWJpbmRpbmdzLXRlc3RzCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlv
bik6IEhhbmRsZSAiMCIuLi4iNCIgYXMgc3RyaW5naWZpZWQgbGVnYWN5IGNvbnN0YW50cy4KKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6IFJlbW92ZSByZWR1bmRhbnQgb3ZlcmxvYWRzLgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uKTogUmVtb3ZlIHJlZHVu
ZGFudCBvdmVybG9hZHMuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2Uu
aDoKKyAgICAgICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5pZGw6IFJlbW92ZSByZWR1bmRhbnQgb3ZlcmxvYWRzLgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDogUmVtb3ZlIHJlZHVuZGFudCBvdmVybG9hZHMu
CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJD
b3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCSW5kZXguaDogUmVtb3ZlIHJlZHVuZGFudCBvdmVybG9hZHMuCisgICAgICAgIChJREJJ
bmRleCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsOiBSZW1vdmUg
cmVkdW5kYW50IG92ZXJsb2Fkcy4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5jcHA6IFJlbW92ZSByZWR1bmRhbnQgb3ZlcmxvYWRzLgorICAgICAgICAoV2ViQ29y
ZTo6SURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmg6IFJlbW92ZSByZWR1bmRhbnQgb3ZlcmxvYWRzLgorICAgICAg
ICAoSURCT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlLmlkbDogUmVtb3ZlIHJlZHVuZGFudCBvdmVybG9hZHMuCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb246OnN0cmluZ1RvTW9kZSk6IEhhbmRsZSAiMCIuLi4iNCIgYXMgc3RyaW5naWZpZWQg
bGVnYWN5IGNvbnN0YW50cy4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBD
aGVjayBmb3IgU3RyaWN0VHlwZUNoZWNraW5nIGF0dHJpYnV0ZS4KKyAgICAgICAgKEdlbmVyYXRl
UGFyYW1ldGVyc0NoZWNrRXhwcmVzc2lvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG06IERpdHRvLgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hl
Y2tFeHByZXNzaW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcDogUmViYXNlbGluZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCBbU3Ry
aWN0VHlwZUNoZWNraW5nXSB0byBET01TdHJpbmcgb3ZlcmxvYWRzLAorICAgICAgICBwbHVzIGEg
bmV3IERPTVN0cmluZyBvdmVybG9hZCB3L28gaXQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6IFJlYmFzZWxpbmVkLgorICAgICAgICAoV2ViQ29yZTo6
VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QxMUNhbGxiYWNrKToKKyAgICAgICAg
KFRlc3RPYmpWOEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFs
OjpvdmVybG9hZGVkTWV0aG9kQ2FsbGJhY2spOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6IFRhZyBsZWdhY3kgb3ZlcmxvYWRzIHdpdGggW1N0cmlj
dFR5cGVDaGVja2luZ10uCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbDogRGl0dG8u
CisKIDIwMTItMTAtMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFN1Yi1maWVsZHMgaW4gaW5wdXRbdHlwZT10aW1lXSBzaG91bGQgbm90IGJlIGZvY3VzYWJs
ZSBpZiB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgb3IgcmVhZC1vbmx5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCA0MWMzODg3ZmNmNTRkYmE0
ODhkNDdkMDg3ZTU1ZmQxYjkwMWZjNTgxLi5kYzMzZWMyZmIyMmFjMzM5NDhhZjkzZDU0ODU0YzY4
Y2U2NTNkODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiSURCVHJhY2luZy5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCisjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yODgsNyArMjg5LDcgQEAgUGFzc1JlZlB0cjxJ
REJPYmplY3RTdG9yZT4gSURCQ3Vyc29yOjplZmZlY3RpdmVPYmplY3RTdG9yZSgpCiAgICAgcmV0
dXJuIGluZGV4LT5vYmplY3RTdG9yZSgpOwogfQogCi1JREJDdXJzb3I6OkRpcmVjdGlvbiBJREJD
dXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBF
eGNlcHRpb25Db2RlJiBlYykKK0lEQkN1cnNvcjo6RGlyZWN0aW9uIElEQkN1cnNvcjo6c3RyaW5n
VG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChkaXJlY3Rp
b25TdHJpbmcgPT0gSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCkpCiAgICAgICAgIHJldHVybiBJ
REJDdXJzb3I6Ok5FWFQ7CkBAIC0yOTksNiArMzAwLDE0IEBAIElEQkN1cnNvcjo6RGlyZWN0aW9u
IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJp
bmcsCiAgICAgaWYgKGRpcmVjdGlvblN0cmluZyA9PSBJREJDdXJzb3I6OmRpcmVjdGlvblByZXZV
bmlxdWUoKSkKICAgICAgICAgcmV0dXJuIElEQkN1cnNvcjo6UFJFVl9OT19EVVBMSUNBVEU7CiAK
KyAgICAvLyBGSVhNRTogUmVtb3ZlIGxlZ2FjeSBjb25zdGFudHMuIGh0dHA6Ly93ZWJraXQub3Jn
L2IvODUzMTUKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgdGhyZWFkLXNhZmUuCisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJO
dW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQg
b3BlbktleUN1cnNvci4gVXNlIFwibmV4dFwiLCBcIm5leHR1bmlxdWVcIiwgXCJwcmV2XCIsIG9y
IFwicHJldnVuaXF1ZVwiLiIpKSk7CisgICAgaWYgKGRpcmVjdGlvblN0cmluZyA9PSAiMCIgfHwg
ZGlyZWN0aW9uU3RyaW5nID09ICIxIiB8fCBkaXJlY3Rpb25TdHJpbmcgPT0gIjIiIHx8IGRpcmVj
dGlvblN0cmluZyA9PSAiMyIpIHsKKyAgICAgICAgY29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2Uo
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgY29u
c29sZU1lc3NhZ2UpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SURCQ3Vyc29yOjpEaXJl
Y3Rpb24+KElEQkN1cnNvcjo6TkVYVCArIChkaXJlY3Rpb25TdHJpbmdbMF0gLSAnMCcpKTsKKyAg
ICB9CisKICAgICBlYyA9IE5BVElWRV9UWVBFX0VSUjsKICAgICByZXR1cm4gSURCQ3Vyc29yOjpO
RVhUOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApp
bmRleCA5YTk1MTQ3NTc4NmViN2EzM2NlN2ZmMzI1MDdjNTlkMTM3YmM3NGEzLi5hMDU3Njg2MDhl
YmRjYTY5Nzg5YzA5NTIzMTY2ZTJkNWM2NjlhZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZGlyZWN0aW9uUHJldigpOwogICAgIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblByZXZVbmlxdWUoKTsKIAotICAgIHN0YXRpYyBJ
REJDdXJzb3I6OkRpcmVjdGlvbiBzdHJpbmdUb0RpcmVjdGlvbihjb25zdCBTdHJpbmcmIG1vZGVT
dHJpbmcsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgSURCQ3Vyc29yOjpEaXJlY3Rpb24g
c3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBtb2RlU3RyaW5nLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIGRpcmVjdGlvblRvU3RyaW5nKHVuc2lnbmVkIHNob3J0IG1vZGUsIEV4Y2VwdGlvbkNvZGUm
KTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvcj4gY3JlYXRlKFBhc3NSZWZQdHI8
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIERpcmVjdGlvbiwgSURCUmVxdWVzdCosIElEQkFu
eSogc291cmNlLCBJREJUcmFuc2FjdGlvbiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDE2ZTFjMGQ3Y2QyMzE3NzNlZTE3MjFl
MzcyNDVlNzY4ZmU0ZmExNzMuLjJjOTFkNzJmN2VkZmMyNmIyYzQyMzM2Yzc1OWQ4ZTRmY2E1OWEw
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5jcHAKQEAgLTIzMiw3ICsyMzIsNyBAQCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJE
YXRhYmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udAogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlID0gSURC
VHJhbnNhY3Rpb246OnN0cmluZ1RvTW9kZShtb2RlU3RyaW5nLCBlYyk7CisgICAgSURCVHJhbnNh
Y3Rpb246Ok1vZGUgbW9kZSA9IElEQlRyYW5zYWN0aW9uOjpzdHJpbmdUb01vZGUobW9kZVN0cmlu
ZywgY29udGV4dCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTI2
MiwyNSArMjYyLDYgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCRGF0YWJhc2U6OnRy
YW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnQKICAgICByZXR1cm4gdHJhbnNh
Y3Rpb24oY29udGV4dCwgc3RvcmVOYW1lcywgbW9kZSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uPiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIHVuc2lnbmVkIHNob3J0IG1v
ZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdG9y
ZU5hbWVzID0gRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCk7Ci0gICAgc3RvcmVOYW1lcy0+YXBwZW5k
KHN0b3JlTmFtZSk7Ci0gICAgcmV0dXJuIHRyYW5zYWN0aW9uKGNvbnRleHQsIHN0b3JlTmFtZXMs
IG1vZGUsIGVjKTsKLX0KLQotUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCRGF0YWJhc2U6
OnRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gcHJwU3RvcmVOYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gRklYTUU6IElzIHRoaXMgdGhyZWFkLXNhZmU/Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFs
KCJOdW1lcmljIHRyYW5zYWN0aW9uIG1vZGVzIGFyZSBkZXByZWNhdGVkIGluIElEQkRhdGFiYXNl
LnRyYW5zYWN0aW9uLiBVc2UgXCJyZWFkb25seVwiIG9yIFwicmVhZHdyaXRlXCIuIikpKTsKLSAg
ICBjb250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSk7Ci0gICAgQXRvbWljU3Ry
aW5nIG1vZGVTdHJpbmcgPSBJREJUcmFuc2FjdGlvbjo6bW9kZVRvU3RyaW5nKElEQlRyYW5zYWN0
aW9uOjpNb2RlKG1vZGUpLCBlYyk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKLQot
ICAgIHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCBwcnBTdG9yZU5hbWVzLCBtb2RlU3RyaW5n
LCBlYyk7Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2U6OmZvcmNlQ2xvc2UoKQogewogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmgKaW5kZXggM2YxZGEwYmMzMGQ1ZjA0NzVlYTkzZjgyMTk2MDU3YzgxNWVhYWVk
MS4uYjhiYTE5NDUwMGIyOTc0Y2U4NzA0YjY0ZGI0ZmRmOTcyMmJjOTM5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC02Nyw4ICs2Nyw2
IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBjcmVhdGVPYmplY3RT
dG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IERpY3Rpb25hcnkmLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4sIGNvbnN0IFN0cmluZyYg
bW9kZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRy
YW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIG1vZGUsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxET01T
dHJpbmdMaXN0PiwgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBzZXRWZXJz
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIGNsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwKaW5kZXggZDI1M2U0ZGY3YTJjMjYzNjc3MDhh
MTgwYTg3NmFlYzMxZGQyNTIwYi4uNDhmMWYxYzg4N2NhNWU4N2Y3NzY0MTFkYjg3ODFiMGMxNWU5
MjMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlLmlkbApAQCAtNTIsMTQgKzUyLDYgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24o
aW4gRE9NU3RyaW5nIHN0b3JlTmFtZSwgaW4gW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmdd
IERPTVN0cmluZyBtb2RlKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlv
bik7CiAKLSAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGVzZSB3aGVuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTMyNiBpcyBmaXhlZC4KLSAgICAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKGlu
IERPTVN0cmluZ0xpc3Qgc3RvcmVOYW1lcywgaW4gdW5zaWduZWQgc2hvcnQgbW9kZSkKLSAgICAg
ICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24oaW4gRE9N
U3RyaW5nW10gc3RvcmVOYW1lcywgaW4gdW5zaWduZWQgc2hvcnQgbW9kZSkKLSAgICAgICAgICAg
IHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24oaW4gRE9NU3RyaW5n
IHN0b3JlTmFtZSwgaW4gdW5zaWduZWQgc2hvcnQgbW9kZSkKLSAgICAgICAgICAgIHJhaXNlcyAo
SURCRGF0YWJhc2VFeGNlcHRpb24pOwotCiAgICAgICAgIHZvaWQgY2xvc2UoKTsKIAogICAgICAg
ICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4LmNwcAppbmRleCAwN2Y4ZTQ5NWY0ODJlNjFkN2IwNzZmNWViMjAzOWEw
YmQ2YTQ3NTdjLi5mMTIyNTAwNTg3YzMwYTQyMTNiNWRkNTlmODRjZGJlM2Q4NzVjZjgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCkBAIC0zNyw3
ICszNyw2IEBACiAjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlRyYWNpbmcu
aCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
ay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcgKzY5LDcgQEAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXMKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNB
Q1RJT05fSU5BQ1RJVkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgSURCQ3Vy
c29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihk
aXJlY3Rpb25TdHJpbmcsIGVjKTsKKyAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rpb24g
PSBJREJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKGRpcmVjdGlvblN0cmluZywgY29udGV4dCwg
ZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTgxLDE4ICs4MCw2IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgSURCX1RSQUNFKCJJ
REJJbmRleDo6b3BlbkN1cnNvciIpOwotICAgIC8vIEZJWE1FOiBJcyB0aGlzIHRocmVhZC1zYWZl
PwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJ
TGl0ZXJhbCgiTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQklu
ZGV4Lm9wZW5DdXJzb3IuIFVzZSBcIm5leHRcIiwgXCJuZXh0dW5pcXVlXCIsIFwicHJldlwiLCBv
ciBcInByZXZ1bmlxdWVcIi4iKSkpOwotICAgIGNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIGNvbnNv
bGVNZXNzYWdlKTsKLSAgICBjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZyA9IElEQkN1cnNv
cjo6ZGlyZWN0aW9uVG9TdHJpbmcoZGlyZWN0aW9uLCBlYyk7Ci0gICAgaWYgKGVjKQotICAgICAg
ICByZXR1cm4gMDsKLSAgICByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXlSYW5nZSwgZGly
ZWN0aW9uU3RyaW5nLCBlYyk7Ci19Ci0KIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6
Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJ
REJLZXk+IGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIElEQl9UUkFDRSgiSURCSW5kZXg6Om9wZW5DdXJzb3IiKTsKQEAgLTEwMiwxNSArODks
NiBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhcwogICAgIHJldHVybiBvcGVuQ3Vyc29yKGNvbnRl
eHQsIGtleVJhbmdlLnJlbGVhc2UoKSwgZGlyZWN0aW9uLCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBJREJfVFJBQ0UoIklEQkluZGV4OjpvcGVuQ3Vy
c29yIik7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpv
bmx5KGtleSwgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IG9wZW5DdXJzb3IoY29udGV4dCwga2V5UmFuZ2UucmVsZWFzZSgpLCBkaXJlY3Rpb24sIGVjKTsK
LX0KLQogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Y291bnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9UUkFDRSgiSURCSW5kZXg6OmNvdW50Iik7CkBA
IC0xNDgsNyArMTI2LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3Blbktl
eUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAogICAgICAgICBlYyA9IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KLSAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBJREJD
dXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKGRpcmVjdGlvblN0cmluZywgZWMpOworICAgIElEQkN1
cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24o
ZGlyZWN0aW9uU3RyaW5nLCBjb250ZXh0LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm4gMDsKIApAQCAtMTU5LDE4ICsxMzcsNiBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQklu
ZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCiAgICAg
cmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9w
ZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgRXhjZXB0aW9u
Q29kZSYgZWMpCi17Ci0gICAgSURCX1RSQUNFKCJJREJJbmRleDo6b3BlbktleUN1cnNvciIpOwot
ICAgIC8vIEZJWE1FOiBJcyB0aGlzIHRocmVhZC1zYWZlPwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiTnVtZXJpYyBkaXJlY3Rp
b24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IuIFVzZSBc
Im5leHRcIiwgXCJuZXh0dW5pcXVlXCIsIFwicHJldlwiLCBvciBcInByZXZ1bmlxdWVcIi4iKSkp
OwotICAgIGNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIGNvbnNvbGVNZXNzYWdlKTsKLSAgICBjb25z
dCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZyA9IElEQkN1cnNvcjo6ZGlyZWN0aW9uVG9TdHJpbmco
ZGlyZWN0aW9uLCBlYyk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gb3BlbktleUN1cnNvcihjb250ZXh0LCBrZXlSYW5nZSwgZGlyZWN0aW9uU3RyaW5nLCBlYyk7
Ci19Ci0KIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgY29u
c3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9UUkFD
RSgiSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IiKTsKQEAgLTE4MCwxNSArMTQ2LDYgQEAgUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LAogICAgIHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRleHQsIGtleVJh
bmdlLnJlbGVhc2UoKSwgZGlyZWN0aW9uLCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBFeGNl
cHRpb25Db2RlJiBlYykKLXsKLSAgICBJREJfVFJBQ0UoIklEQkluZGV4OjpvcGVuS2V5Q3Vyc29y
Iik7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5
KGtleSwgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG9w
ZW5LZXlDdXJzb3IoY29udGV4dCwga2V5UmFuZ2UucmVsZWFzZSgpLCBkaXJlY3Rpb24sIGVjKTsK
LX0KLQogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Z2V0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIElEQl9UUkFDRSgiSURCSW5kZXg6OmdldCIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKaW5kZXggM2UyNjA3MGE5ZTc3MjZjODE5NzQy
NzJiMDE2MzZiZDI1ZDVkMWQ0MS4uZTEwYzM2ZDIyYjk1YjhiODQ5MDkxNjIzZDhkZTIzZjlhODc1
MWU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCkBA
IC02NCw4ICs2NCw2IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5D
dXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+
IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5
LCBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlv
bkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBk
aXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9w
ZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRp
b25Db2RlJiBlYykgeyByZXR1cm4gY291bnQoY29udGV4dCwgc3RhdGljX2Nhc3Q8SURCS2V5UmFu
Z2UqPigwKSwgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTc1LDggKzczLDYg
QEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNl
cHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3BlbktleUN1cnNvcihjb250ZXh0LCBrZXksIElEQkN1
cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7IH0KICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9u
Q29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
b3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+
LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2Vw
dGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkluZGV4LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
LmlkbAppbmRleCA3Nzg5MjM2YTE0Yzc3OGNkM2MwZTMwMTBiNTU0MGJjMjhkZjdlZTQ4Li5lZWQx
NzE1ZjJhZGMwZGEwMDE3Y2FlYWViMWRiOGM0MzQ2ZTVkN2VhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsCkBAIC00NCwxNyArNDQsNiBAQCBtb2R1
bGUgc3RvcmFnZSB7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJ
REJSZXF1ZXN0IG9wZW5LZXlDdXJzb3IoaW4gSURCS2V5IGtleSwgaW4gW09wdGlvbmFsXSBET01T
dHJpbmcgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlv
bik7CiAKLSAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGVzZSB3aGVuCi0gICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTMyNiBpcyBmaXhlZC4KLSAg
ICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1
cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlPyByYW5nZSwgaW4gW09wdGlvbmFsXSB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24pCi0gICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhj
ZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJl
cXVlc3Qgb3BlbkN1cnNvcihpbiBJREJLZXkga2V5LCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIHNo
b3J0IGRpcmVjdGlvbikKLSAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24p
OwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBv
cGVuS2V5Q3Vyc29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2U/IHJhbmdlLCBpbiBbT3B0aW9u
YWxdIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKLSAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0
YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIElEQktleSBrZXksIGluIFtPcHRpb25hbF0g
dW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQotICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFz
ZUV4Y2VwdGlvbik7Ci0gICAgICAgIAogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5UmFuZ2U/IGtleSkKICAgICAgICAgICAg
IHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5IGtleSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRl
eCA2NGI0ZGQ3NzYyNDE2ZWNhMzI2NDM5YTBlZGE2NTc3YWMxMWYwZTBhLi4xY2U5NDkyNWViZTkx
OTc2NzliMGNkMjczZTU2N2QwNDBiYzllNTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAj
aW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5jbHVk
ZSAiSURCVHJhbnNhY3Rpb24uaCIKLSNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNs
dWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0u
aD4KIApAQCAtNDk4LDcgKzQ5Nyw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0
U3RvcmU6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4CiAgICAgICAg
IGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUjsKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlv
biA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5nLCBlYyk7Cisg
ICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0Rp
cmVjdGlvbihkaXJlY3Rpb25TdHJpbmcsIGNvbnRleHQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiAwOwogCkBAIC01MDksMTggKzUwOCw2IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4CiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IElEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBk
aXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIElEQl9UUkFDRSgiSURCT2JqZWN0
U3RvcmU6Om9wZW5DdXJzb3IiKTsKLSAgICAvLyBGSVhNRTogSXMgdGhpcyB0aHJlYWQtc2FmZT8K
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxp
dGVyYWwoIk51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJPYmpl
Y3RTdG9yZS5vcGVuQ3Vyc29yLiBVc2UgXCJuZXh0XCIsIFwibmV4dHVuaXF1ZVwiLCBcInByZXZc
Iiwgb3IgXCJwcmV2dW5pcXVlXCIuIikpKTsKLSAgICBjb250ZXh0LT5hZGRDb25zb2xlTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBj
b25zb2xlTWVzc2FnZSk7Ci0gICAgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcgPSBJREJD
dXJzb3I6OmRpcmVjdGlvblRvU3RyaW5nKGRpcmVjdGlvbiwgZWMpOwotICAgIGlmIChlYykKLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwgcmFuZ2UsIGRp
cmVjdGlvblN0cmluZywgZWMpOwotfQotCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NS
ZWZQdHI8SURCS2V5PiBrZXksIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yIik7CkBA
IC01MzAsMTUgKzUxNyw2IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6
Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4CiAgICAgcmV0dXJuIG9w
ZW5DdXJzb3IoY29udGV4dCwga2V5UmFuZ2UucmVsZWFzZSgpLCBkaXJlY3Rpb24sIGVjKTsKIH0K
IAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIElEQl9UUkFD
RSgiSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IiKTsKLSAgICBSZWZQdHI8SURCS2V5UmFuZ2U+
IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoa2V5LCBlYyk7Ci0gICAgaWYgKGVjKQotICAg
ICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXlSYW5nZS5y
ZWxlYXNlKCksIGRpcmVjdGlvbiwgZWMpOwotfQotCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
Qk9iamVjdFN0b3JlOjpjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
UmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURC
X1RSQUNFKCJJREJPYmplY3RTdG9yZTo6Y291bnQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCmluZGV4IDQ4NzU2M2QyYTlkNmQxZTZl
NTExZTRlZmE1Njk5NmRmMjM3YmIyNzcuLjJhOGNmY2Y5N2Y2MDAwNDdkMzNkYjU0ZjIzMWE4MjJh
ZGNhNzYzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9iamVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuaApAQCAtNzIsOCArNzIsNiBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwgcmFuZ2UsIGRpcmVj
dGlvbiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpOb3JtYWxUYXNrLCBlYyk7IH0K
ICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNo
b3J0IGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+
LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdl
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIEV4Y2Vw
dGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9iamVjdFN0b3JlLmlkbAppbmRleCAzMjg4NWE4M2M1NTAyY2YzOTgyZDU3YjUyNDM0ZDJlZGJm
MDc0ZTM1Li5mYzg1MzdkMjk0OTkzZDZhNzI1YjBhZjE3YTA5ODViNzNmODI0ZGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRs
CkBAIC01MywxMiArNTMsNiBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gSURCS2V5IGtl
eSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2Vz
IChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAKLSAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGVz
ZSB3aGVuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTMyNiBpcyBm
aXhlZC4KLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVl
c3Qgb3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlPyByYW5nZSwgaW4gW09wdGlv
bmFsXSB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCi0gICAgICAgICAgICByYWlzZXMgKElEQkRh
dGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNvcihpbiBJREJLZXkga2V5LCBpbiBbT3B0aW9uYWxdIHVu
c2lnbmVkIHNob3J0IGRpcmVjdGlvbikKLSAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VF
eGNlcHRpb24pOwotCiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJ
REJJbmRleCBjcmVhdGVJbmRleChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nW10ga2V5
UGF0aCwgaW4gW09wdGlvbmFsXSBEaWN0aW9uYXJ5IG9wdGlvbnMpCiAgICAgICAgICAgICByYWlz
ZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQkluZGV4IGNyZWF0ZUluZGV4KGluIERPTVN0cmluZyBuYW1lLCBpbiBE
T01TdHJpbmcga2V5UGF0aCwgaW4gW09wdGlvbmFsXSBEaWN0aW9uYXJ5IG9wdGlvbnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAK
aW5kZXggMzBhODk4MjQ3ZDAzMGVmNjI0NWMyZDlmZWRiYTJlMTZjNzMwMDA4ZC4uYmFiOWRiNjNi
NDllMDhmZTIzNWQyY2UyZDZmMzI5ZmE0NGE5YWEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJQZW5kaW5nVHJh
bnNhY3Rpb25Nb25pdG9yLmgiCiAjaW5jbHVkZSAiSURCVHJhY2luZy5oIgorI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzMiwxMyArMzMz
LDIyIEBAIGJvb2wgSURCVHJhbnNhY3Rpb246Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faGFzUGVuZGluZ0FjdGl2aXR5IHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVu
ZGluZ0FjdGl2aXR5KCk7CiB9CiAKLUlEQlRyYW5zYWN0aW9uOjpNb2RlIElEQlRyYW5zYWN0aW9u
OjpzdHJpbmdUb01vZGUoY29uc3QgU3RyaW5nJiBtb2RlU3RyaW5nLCBFeGNlcHRpb25Db2RlJiBl
YykKK0lEQlRyYW5zYWN0aW9uOjpNb2RlIElEQlRyYW5zYWN0aW9uOjpzdHJpbmdUb01vZGUoY29u
c3QgU3RyaW5nJiBtb2RlU3RyaW5nLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobW9kZVN0cmluZy5pc051bGwoKQogICAgICAg
ICB8fCBtb2RlU3RyaW5nID09IElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZE9ubHkoKSkKICAgICAg
ICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uOjpSRUFEX09OTFk7CiAgICAgaWYgKG1vZGVTdHJpbmcg
PT0gSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3JpdGUoKSkKICAgICAgICAgcmV0dXJuIElEQlRy
YW5zYWN0aW9uOjpSRUFEX1dSSVRFOworCisgICAgLy8gRklYTUU6IFJlbW92ZSBsZWdhY3kgY29u
c3RhbnRzLiBodHRwOi8vd2Via2l0Lm9yZy9iLzg1MzE1CisgICAgLy8gRklYTUU6IFRoaXMgaXMg
bm90IHRocmVhZC1zYWZlLgorICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xl
TWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiTnVtZXJpYyB0cmFuc2FjdGlvbiBtb2RlcyBhcmUgZGVw
cmVjYXRlZCBpbiBJREJEYXRhYmFzZS50cmFuc2FjdGlvbi4gVXNlIFwicmVhZG9ubHlcIiBvciBc
InJlYWR3cml0ZVwiLiIpKSk7CisgICAgaWYgKG1vZGVTdHJpbmcgPT0gIjAiIHx8IG1vZGVTdHJp
bmcgPT0gIjEiKSB7CisgICAgICAgIGNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIGNvbnNvbGVNZXNz
YWdlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uOjpNb2RlPihJ
REJUcmFuc2FjdGlvbjo6UkVBRF9PTkxZICsgKG1vZGVTdHJpbmdbMF0gLSAnMCcpKTsKKyAgICB9
CisKICAgICBlYyA9IE5BVElWRV9UWVBFX0VSUjsKICAgICByZXR1cm4gSURCVHJhbnNhY3Rpb246
OlJFQURfT05MWTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5oCmluZGV4IDljM2MzMmI0N2M3YTRhMWQ5YTI5ZjY0ZWYyYThjNGQ3MWQ4
NjQzZDguLjIyNTNlZWRkOGI5MWJmNGQ2MDliMDA2NGE4OTYwMDJlZDgyN2RhODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAt
NjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbW9k
ZVJlYWRPbmx5TGVnYWN5KCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbW9kZVJl
YWRXcml0ZUxlZ2FjeSgpOwogCi0gICAgc3RhdGljIE1vZGUgc3RyaW5nVG9Nb2RlKGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgTW9kZSBzdHJpbmdUb01vZGUoY29u
c3QgU3RyaW5nJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtb2RlVG9TdHJpbmcoTW9kZSwgRXhjZXB0aW9u
Q29kZSYpOwogCiAgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBiYWNrZW5kKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IGU4NmFjY2QwZmZjOTA2OTY5NGM3NjM1ZWEyOGM5ODE0ZGRlZTUzMmIu
LmUyMTk1ODIwZTIyZTFiZjg5NGY1OWFhOTM2N2MzOTQwYzllY2NlYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xMjc0
LDEyICsxMjc0LDE1IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVja0V4cHJlc3Npb24KICAg
ICAgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHBhcmFtZXRlci0+
dHlwZSk7CiAKICAgICAgICAgIyBPbmx5IERPTVN0cmluZyBvciB3cmFwcGVyIHR5cGVzIGFyZSBj
aGVja2VkLgotICAgICAgICAjIEZvciBET01TdHJpbmcsIE51bGwsIFVuZGVmaW5lZCBhbmQgYW55
IE9iamVjdCBhcmUgYWNjZXB0ZWQgdG9vLCBhcwotICAgICAgICAjIHRoZXNlIGFyZSBhY2NlcHRh
YmxlIHZhbHVlcyBmb3IgYSBET01TdHJpbmcgYXJndW1lbnQgKGFueSBPYmplY3QgY2FuCi0gICAg
ICAgICMgYmUgY29udmVydGVkIHRvIGEgc3RyaW5nIHZpYSAudG9TdHJpbmcpLgorICAgICAgICAj
IEZvciBET01TdHJpbmcgd2l0aCBTdHJpY3RUeXBlQ2hlY2tpbmcgb25seSBOdWxsLCBVbmRlZmlu
ZWQgYW5kIE9iamVjdAorICAgICAgICAjIGFyZSBhY2NlcHRlZCBmb3IgY29tcGF0aWJpbGl0eS4g
T3RoZXJ3aXNlLCBubyByZXN0cmljdGlvbnMgYXJlIG1hZGUgdG8KKyAgICAgICAgIyBtYXRjaCB0
aGUgbm9uLW92ZXJsb2FkZWQgYmVoYXZpb3IuCisgICAgICAgICMgRklYTUU6IEltcGxlbWVudCBX
ZWJJREwgb3ZlcmxvYWQgcmVzb2x1dGlvbiBhbGdvcml0aG0uCiAgICAgICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSkgewotICAgICAgICAgICAgcHVzaChAYW5kRXhw
cmVzc2lvbiwgIigke3ZhbHVlfS5pc1VuZGVmaW5lZE9yTnVsbCgpIHx8ICR7dmFsdWV9LmlzU3Ry
aW5nKCkgfHwgJHt2YWx1ZX0uaXNPYmplY3QoKSkiKTsKLSAgICAgICAgICAgICR1c2VkQXJndW1l
bnRzeyRwYXJhbWV0ZXJJbmRleH0gPSAxOworICAgICAgICAgICAgaWYgKCRwYXJhbWV0ZXItPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkgeworICAgICAgICAgICAg
ICAgIHB1c2goQGFuZEV4cHJlc3Npb24sICIoJHt2YWx1ZX0uaXNVbmRlZmluZWRPck51bGwoKSB8
fCAke3ZhbHVlfS5pc1N0cmluZygpIHx8ICR7dmFsdWV9LmlzT2JqZWN0KCkpIik7CisgICAgICAg
ICAgICAgICAgJHVzZWRBcmd1bWVudHN7JHBhcmFtZXRlckluZGV4fSA9IDE7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0gZWxzaWYgKCRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
YWxsYmFjayJ9KSB7CiAgICAgICAgICAgICAjIEZvciBDYWxsYmFja3Mgb25seSBjaGVja3MgaWYg
dGhlIHZhbHVlIGlzIG51bGwgb3Igb2JqZWN0LgogICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVz
c2lvbiwgIigke3ZhbHVlfS5pc051bGwoKSB8fCAke3ZhbHVlfS5pc0Z1bmN0aW9uKCkpIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CmluZGV4IDI2MWE4YjA3MWQ3Zjc2NTFiOTBlMDFiODYwZDBkYjdkODUwOThkZDMuLmM0NDIzY2I5
NWM0NDljNzg4NWJlYWE1ZmE4ZWZjY2QwMTliNjU3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xMzc2LDExICsxMzc2
LDE0IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVja0V4cHJlc3Npb24KICAgICAgICAgbXkg
JHR5cGUgPSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgkcGFyYW1ldGVyKTsKIAogICAgICAgICAjIE9u
bHkgRE9NU3RyaW5nIG9yIHdyYXBwZXIgdHlwZXMgYXJlIGNoZWNrZWQuCi0gICAgICAgICMgRm9y
IERPTVN0cmluZywgTnVsbCwgVW5kZWZpbmVkIGFuZCBhbnkgT2JqZWN0IGFyZSBhY2NlcHRlZCB0
b28sIGFzCi0gICAgICAgICMgdGhlc2UgYXJlIGFjY2VwdGFibGUgdmFsdWVzIGZvciBhIERPTVN0
cmluZyBhcmd1bWVudCAoYW55IE9iamVjdCBjYW4KLSAgICAgICAgIyBiZSBjb252ZXJ0ZWQgdG8g
YSBzdHJpbmcgdmlhIC50b1N0cmluZykuCisgICAgICAgICMgRm9yIERPTVN0cmluZyB3aXRoIFN0
cmljdFR5cGVDaGVja2luZyBvbmx5IE51bGwsIFVuZGVmaW5lZCBhbmQgT2JqZWN0CisgICAgICAg
ICMgYXJlIGFjY2VwdGVkIGZvciBjb21wYXRpYmlsaXR5LiBPdGhlcndpc2UsIG5vIHJlc3RyaWN0
aW9ucyBhcmUgbWFkZSB0bworICAgICAgICAjIG1hdGNoIHRoZSBub24tb3ZlcmxvYWRlZCBiZWhh
dmlvci4KKyAgICAgICAgIyBGSVhNRTogSW1wbGVtZW50IFdlYklETCBvdmVybG9hZCByZXNvbHV0
aW9uIGFsZ29yaXRobS4KICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUo
JHR5cGUpKSB7Ci0gICAgICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LT5J
c051bGwoKSB8fCAke3ZhbHVlfS0+SXNVbmRlZmluZWQoKSB8fCAke3ZhbHVlfS0+SXNTdHJpbmco
KSB8fCAke3ZhbHVlfS0+SXNPYmplY3QoKSkiKTsKKyAgICAgICAgICAgIGlmICgkcGFyYW1ldGVy
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0pIHsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LT5Jc051bGwoKSB8fCAke3Zh
bHVlfS0+SXNVbmRlZmluZWQoKSB8fCAke3ZhbHVlfS0+SXNTdHJpbmcoKSB8fCAke3ZhbHVlfS0+
SXNPYmplY3QoKSkiKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNpZiAoJHBhcmFtZXRl
ci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKICAgICAgICAgICAgICMgRm9y
IENhbGxiYWNrcyBvbmx5IGNoZWNrcyBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciBvYmplY3QuCiAg
ICAgICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LT5Jc051bGwoKSB8fCAk
e3ZhbHVlfS0+SXNGdW5jdGlvbigpKSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBhZGNhMTI5M2M1N2NjZjA1
YzI1Y2QxMmMyNmI2ZjU2YmI1YTY4NjUzLi40MzUxMzQ2MWZkMGEyYmQyY2U1ODRmMjk1ZTcyM2Fl
ZWZiNTg0OGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMjI4Myw2ICsyMjgzLDIzIEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDEwCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTEoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIGlmICghdGhpc1Zh
bHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rl
c3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7CisgICAgVGVzdE9iaiogaW1wbCA9
IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKKyAgICBjb25zdCBTdHJpbmcm
IHN0ckFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOworICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKHN0ckFyZyk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKwogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QoRXhlY1N0YXRlKiBleGVjKQogewogICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5h
cmd1bWVudENvdW50KCk7CkBAIC0yMzA4LDYgKzIzMjUsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChFeGVj
U3RhdAogICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kOShleGVjKTsKICAgICBpZiAoKGFyZ3NDb3VudCA9PSAxICYmIChhcmcwLmlzT2JqZWN0
KCkgJiYgaXNKU0FycmF5KGFyZzApKSkpCiAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMChleGVjKTsKKyAgICBpZiAoYXJnc0NvdW50ID09
IDEpCisgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QxMShleGVjKTsKICAgICBpZiAoYXJnc0NvdW50IDwgMSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggNzQ4NDVhN2VkZTMwZTQxYjIz
YmI3ZjBjMmJhNDUxMDU4NzU2OGFjOC4uNGU3NTExZjViYWE2ZGVhYjM3YTk1ZWY5ZWZiMzA3MzMy
MTYwYmUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbApAQCAtMTcyLDkgKzE3Miw5IEBAIG1vZHVsZSB0ZXN0IHsKIAogI2lmIGRlZmlu
ZWQoVEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNUSU5HX0pTKQogICAgICAgICAvLyBPdmVybG9h
ZHMKLSAgICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIFRlc3RPYmo/IG9iakFyZywg
aW4gRE9NU3RyaW5nIHN0ckFyZyk7CisgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChp
biBUZXN0T2JqPyBvYmpBcmcsIGluIFtTdHJpY3RUeXBlQ2hlY2tpbmddIERPTVN0cmluZyBzdHJB
cmcpOwogICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gVGVzdE9iaj8gb2JqQXJn
LCBpbiBbT3B0aW9uYWxdIGxvbmcgbG9uZ0FyZyk7Ci0gICAgICAgIHZvaWQgICAgb3ZlcmxvYWRl
ZE1ldGhvZChpbiBET01TdHJpbmcgc3RyQXJnKTsKKyAgICAgICAgdm9pZCAgICBvdmVybG9hZGVk
TWV0aG9kKGluIFtTdHJpY3RUeXBlQ2hlY2tpbmddIERPTVN0cmluZyBzdHJBcmcpOwogICAgICAg
ICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gbG9uZyBsb25nQXJnKTsKICAgICAgICAgdm9p
ZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIFtDYWxsYmFja10gVGVzdENhbGxiYWNrIGNhbGxiYWNr
KTsKICAgICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIERPTVN0cmluZ0xpc3Q/IGxp
c3RBcmcpOwpAQCAtMTgyLDYgKzE4Miw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgdm9pZCAg
ICBvdmVybG9hZGVkTWV0aG9kKGluIFRlc3RPYmogb2JqQXJnKTsKICAgICAgICAgdm9pZCAgICBv
dmVybG9hZGVkTWV0aG9kKGluIERPTVN0cmluZ1tdIGFycmF5QXJnKTsKICAgICAgICAgdm9pZCAg
ICBvdmVybG9hZGVkTWV0aG9kKGluIHNlcXVlbmNlPHVuc2lnbmVkIGxvbmc+IGFycmF5QXJnKTsK
KyAgICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIERPTVN0cmluZyBzdHJBcmcpOwog
I2VuZGlmCiAKICAgICAgICAgLy8gQ2xhc3MgbWV0aG9kcyB3aXRoaW4gSmF2YVNjcmlwdCAobGlr
ZSB3aGF0J3MgdXNlZCBmb3IgSURCS2V5UmFuZ2UpLgpAQCAtMTkxLDcgKzE5Miw3IEBAIG1vZHVs
ZSB0ZXN0IHsKIAogICAgICAgICAvLyBTdGF0aWMgbWV0aG9kIHdpdGggY29uZGl0aW9uYWwgb24g
b3ZlcmxvYWRlZCBtZXRob2RzCiAgICAgICAgIFtDb25kaXRpb25hbD1Db25kaXRpb24xXSBzdGF0
aWMgdm9pZCBvdmVybG9hZGVkTWV0aG9kMShpbiBsb25nIGFyZyk7Ci0gICAgICAgIFtDb25kaXRp
b25hbD1Db25kaXRpb24xXSBzdGF0aWMgdm9pZCBvdmVybG9hZGVkTWV0aG9kMShpbiBET01TdHJp
bmcgdHlwZSk7CisgICAgICAgIFtDb25kaXRpb25hbD1Db25kaXRpb24xXSBzdGF0aWMgdm9pZCBv
dmVybG9hZGVkTWV0aG9kMShpbiBbU3RyaWN0VHlwZUNoZWNraW5nXSBET01TdHJpbmcgdHlwZSk7
CiAKICAgICAgICAgdm9pZCBjbGFzc01ldGhvZFdpdGhDbGFtcChpbiBbQ2xhbXBdIHVuc2lnbmVk
IHNob3J0IG9iakFyZ3NTaG9ydCwgaW4gW0NsYW1wXSB1bnNpZ25lZCBsb25nIG9iakFyZ3NMb25n
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcAppbmRleCA1MWQwYzMxMGI5MzZhZjY4YmExMDQ4ZDNlNjk4OTNjNDMzMTM2
NjYzLi5hMDY0Y2UzZDQ4NmUyNGEyYjdkYTUwMWIzZGNiMDVkYjY0MGRmYzcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNw
cApAQCAtMTYxOSw2ICsxNjE5LDE3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3Zl
cmxvYWRlZE1ldGhvZDEwQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3Zl
cmxvYWRlZE1ldGhvZDExQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2FkZWRNZXRob2QxMSIpOworICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQ
VElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhv
ZChzdHJBcmcpOworICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOworfQorCiBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoub3ZlcmxvYWRlZE1ldGhv
ZCIpOwpAQCAtMTY0Miw2ICsxNjUzLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBv
dmVybG9hZGVkTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAg
ICAgcmV0dXJuIG92ZXJsb2FkZWRNZXRob2Q5Q2FsbGJhY2soYXJncyk7CiAgICAgaWYgKChhcmdz
Lkxlbmd0aCgpID09IDEgJiYgKGFyZ3NbMF0tPklzQXJyYXkoKSkpKQogICAgICAgICByZXR1cm4g
b3ZlcmxvYWRlZE1ldGhvZDEwQ2FsbGJhY2soYXJncyk7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PT0gMSkKKyAgICAgICAgcmV0dXJuIG92ZXJsb2FkZWRNZXRob2QxMUNhbGxiYWNrKGFyZ3MpOwog
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIHJldHVybiB0aHJvd1R5cGVF
cnJvcigwLCBhcmdzLkdldElzb2xhdGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAppbmRleCBhODU2OTQ4N2E2
NWE1YTAzOTY4MzhhMjJlZmUwZTUxMjMxZTMyZTdmLi41NGNhY2QxMzFkNjI1ZTY5NjRkM2JhNzJj
MGQ5YjZkOWI5NGY3Yjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKQEAgLTE1NiwxMiArMTU2LDEyIEBAIG1v
ZHVsZSBodG1sIHsKICAgICAgICAgdm9pZCBmaWxsVGV4dChpbiBET01TdHJpbmcgdGV4dCwgaW4g
ZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gW09wdGlvbmFsXSBmbG9hdCBtYXhXaWR0aCk7CiAgICAg
ICAgIHZvaWQgc3Ryb2tlVGV4dChpbiBET01TdHJpbmcgdGV4dCwgaW4gZmxvYXQgeCwgaW4gZmxv
YXQgeSwgaW4gW09wdGlvbmFsXSBmbG9hdCBtYXhXaWR0aCk7CiAKLSAgICAgICAgdm9pZCBzZXRT
dHJva2VDb2xvcihpbiBET01TdHJpbmcgY29sb3IsIGluIFtPcHRpb25hbF0gZmxvYXQgYWxwaGEp
OworICAgICAgICB2b2lkIHNldFN0cm9rZUNvbG9yKGluIFtTdHJpY3RUeXBlQ2hlY2tpbmddIERP
TVN0cmluZyBjb2xvciwgaW4gW09wdGlvbmFsXSBmbG9hdCBhbHBoYSk7CiAgICAgICAgIHZvaWQg
c2V0U3Ryb2tlQ29sb3IoaW4gZmxvYXQgZ3JheUxldmVsLCBpbiBbT3B0aW9uYWxdIGZsb2F0IGFs
cGhhKTsKICAgICAgICAgdm9pZCBzZXRTdHJva2VDb2xvcihpbiBmbG9hdCByLCBpbiBmbG9hdCBn
LCBpbiBmbG9hdCBiLCBpbiBmbG9hdCBhKTsKICAgICAgICAgdm9pZCBzZXRTdHJva2VDb2xvcihp
biBmbG9hdCBjLCBpbiBmbG9hdCBtLCBpbiBmbG9hdCB5LCBpbiBmbG9hdCBrLCBpbiBmbG9hdCBh
KTsKIAotICAgICAgICB2b2lkIHNldEZpbGxDb2xvcihpbiBET01TdHJpbmcgY29sb3IsIGluIFtP
cHRpb25hbF0gZmxvYXQgYWxwaGEpOworICAgICAgICB2b2lkIHNldEZpbGxDb2xvcihpbiBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBET01TdHJpbmcgY29sb3IsIGluIFtPcHRpb25hbF0gZmxvYXQgYWxw
aGEpOwogICAgICAgICB2b2lkIHNldEZpbGxDb2xvcihpbiBmbG9hdCBncmF5TGV2ZWwsIGluIFtP
cHRpb25hbF0gZmxvYXQgYWxwaGEpOwogICAgICAgICB2b2lkIHNldEZpbGxDb2xvcihpbiBmbG9h
dCByLCBpbiBmbG9hdCBnLCBpbiBmbG9hdCBiLCBpbiBmbG9hdCBhKTsKICAgICAgICAgdm9pZCBz
ZXRGaWxsQ29sb3IoaW4gZmxvYXQgYywgaW4gZmxvYXQgbSwgaW4gZmxvYXQgeSwgaW4gZmxvYXQg
aywgaW4gZmxvYXQgYSk7CkBAIC0xOTgsNyArMTk4LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gZmxvYXQgZHgsIGluIFtPcHRp
b25hbF0gZmxvYXQgZHksIGluIFtPcHRpb25hbF0gZmxvYXQgZHcsIGluIFtPcHRpb25hbF0gZmxv
YXQgZGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBET01T
dHJpbmcgY29tcG9zaXRlT3BlcmF0aW9uKTsKIAotICAgICAgICB2b2lkIHNldFNoYWRvdyhpbiBm
bG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0LCBpbiBmbG9hdCBibHVyLCBpbiBbT3B0aW9uYWxd
IERPTVN0cmluZyBjb2xvciwgaW4gW09wdGlvbmFsXSBmbG9hdCBhbHBoYSk7CisgICAgICAgIHZv
aWQgc2V0U2hhZG93KGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQsIGluIGZsb2F0IGJs
dXIsIGluIFtPcHRpb25hbCwgU3RyaWN0VHlwZUNoZWNraW5nXSBET01TdHJpbmcgY29sb3IsIGlu
IFtPcHRpb25hbF0gZmxvYXQgYWxwaGEpOwogICAgICAgICB2b2lkIHNldFNoYWRvdyhpbiBmbG9h
dCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0LCBpbiBmbG9hdCBibHVyLCBpbiBmbG9hdCBncmF5TGV2
ZWwsIGluIFtPcHRpb25hbF0gZmxvYXQgYWxwaGEpOwogICAgICAgICB2b2lkIHNldFNoYWRvdyhp
biBmbG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0LCBpbiBmbG9hdCBibHVyLCBpbiBmbG9hdCBy
LCBpbiBmbG9hdCBnLCBpbiBmbG9hdCBiLCBpbiBmbG9hdCBhKTsKICAgICAgICAgdm9pZCBzZXRT
aGFkb3coaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCwgaW4gZmxvYXQgYmx1ciwgaW4g
ZmxvYXQgYywgaW4gZmxvYXQgbSwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgaywgaW4gZmxvYXQgYSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCBjOTU1N2IzYTRkOGVlM2I0
YzNkOGFjYmZhN2M1NmQzNmNmMjc3MjVhLi41Y2Y4OTAyOTFiZDJmYmM0MGFkYWRjNmNiZDg2NmZh
OTU1ZDAxZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKQEAgLTc3LDcg
Kzc3LDcgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZW5kKGluIERvY3VtZW50IGRhdGEpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBzZW5kKGluIERP
TVN0cmluZyBkYXRhKQorICAgICAgICBbQ3VzdG9tXSB2b2lkIHNlbmQoaW4gW1N0cmljdFR5cGVD
aGVja2luZ10gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZW5kKGluIERPTUZvcm1EYXRhIGRhdGEpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOWNkZGYzNjY3ZTQzYTVlMzg4
NTllOTQwM2Q5MTUxMzlmNzRjMTAwLi5lZDE0NzRiZDRhNGQ1YWQ3ZjRhNzdkNTQyZTYxNjQ1ZmU0
YTg4MDRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAtMDkgIEpvc2h1YSBCZWxsICA8
anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWJJREw6IG92ZXJsb2FkZWQgbWV0aG9k
cyBwcmV2ZW50IG51bWJlciAtPiBzdHJpbmcgY29udmVyc2lvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMjYKKworICAgICAgICBSZXZpZXdlZCBi
eSBLZW50YXJvIEhhcmEuCisKKyAgICAgICAgVXBkYXRlZCBleHBlY3RhdGlvbnMgLSBuZXcgKG1v
cmUgZ2VuZXJpYykgY29uc29sZSB3YXJuaW5ncy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2xlZ2FjeS1jb25zdGFudHMtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTEwLTA5ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTdWItZmllbGRzIGluIGlu
cHV0W3R5cGU9dGltZV0gc2hvdWxkIG5vdCBiZSBmb2N1c2FibGUgaWYgdGhlIGlucHV0IGlzIGRp
c2FibGVkIG9yIHJlYWQtb25seQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAppbmRleCA5NDdkYTYzYjgw
MDg3ZGJiNWQyNzUzYmRjMzQxOTIzMmM1MTVhZDQ3Li5jNDgwYzRkMzgwODQ4MzA5ZTU3YjY3NTI5
MDM4NzdjN2ZhZTIxZDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dApAQCAtMSwyOCArMSwyOCBA
QAogQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRh
cmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5z
dGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXBy
ZWNhdGVkIGluIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5p
cXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMg
ZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vy
c29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgot
Q09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQg
aW4gSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAi
cHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rp
b24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IuIFVz
ZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xF
IE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJP
YmplY3RTdG9yZS5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwg
b3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1
ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4gVXNlICJuZXh0
IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNPTEUgTUVTU0FH
RTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQk9iamVjdFN0
b3JlLm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJl
dnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUg
ZGVwcmVjYXRlZCBpbiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4
dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1l
cmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgub3BlbkN1cnNv
ci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNP
TlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGlu
IElEQkluZGV4Lm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBv
ciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVl
cyBhcmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4
dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1l
cmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgub3BlbkN1cnNv
ci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNP
TlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGlu
IElEQkluZGV4Lm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBv
ciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVl
cyBhcmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4
dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1l
cmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgub3BlbkN1cnNv
ci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNP
TlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGlu
IElEQkluZGV4Lm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBv
ciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVl
cyBhcmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAi
bmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBNRVNTQUdFOiBO
dW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5kZXgub3Blbktl
eUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVl
Ii4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNh
dGVkIGluIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwg
InByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0
aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuS2V5Q3Vyc29yLiBVc2Ug
Im5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBN
RVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCSW5k
ZXgub3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJw
cmV2dW5pcXVlIi4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFy
ZSBkZXByZWNhdGVkIGluIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0
dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVy
aWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJJbmRleC5vcGVuS2V5Q3Vy
c29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgot
Q09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQg
aW4gSURCSW5kZXgub3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJl
diIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24g
dmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVz
ZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xF
IE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVu
Q3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2
Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2
YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNl
ICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUg
TUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5D
dXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYi
LCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZh
bHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2Ug
Im5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBN
RVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1
cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIs
IG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFs
dWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAi
bmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1F
U1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vy
c29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwg
b3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1
ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJu
ZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVT
U0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJz
b3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBv
ciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVl
cyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5l
eHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNT
QUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNv
ciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9y
ICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVz
IGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4
dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NB
R0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29y
IGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3Ig
InByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMg
YXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0
IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FH
RTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3Ig
YW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAi
cHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBh
cmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQi
LCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdF
OiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBh
bmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJw
cmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFy
ZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIs
ICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6
IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFu
ZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInBy
ZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJl
IGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0Iiwg
Im5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTog
TnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5k
IG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJl
dnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUg
ZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAi
bmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBO
dW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQg
b3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2
dW5pcXVlIi4KIFZhbGlkYXRlIHRoZSBvdmVybG9hZHMgb2YgSURCT2JqZWN0U3RvcmUub3BlbkN1
cnNvcigpLCBJREJJbmRleC5vcGVuQ3Vyc29yKCkgYW5kIElEQkluZGV4Lm9wZW5LZXlDdXJzb3Io
KS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbGVnYWN5LWNvbnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLWV4cGVjdGVkLnR4dAppbmRl
eCBkNDYwNzAxMWEzZGYwOGIyNzFjYjVhOTIxYzhlMjc0MTM3ODIxNTRkLi40YTViOTI1NjdlMzhj
ZWEwNTMxYzdlZmJmNDgzNmVkMDAwYjU1YmZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLWV4cGVjdGVkLnR4dApAQCAt
MSwxNyArMSwxNyBAQAogQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBp
cyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRl
ZCIgZXZlbnQgaW5zdGVhZC4KIENPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyB0cmFuc2FjdGlvbiBt
b2RlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJEYXRhYmFzZS50cmFuc2FjdGlvbi4gVXNlICJyZWFk
b25seSIgb3IgInJlYWR3cml0ZSIuCiBDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgdHJhbnNhY3Rp
b24gbW9kZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCRGF0YWJhc2UudHJhbnNhY3Rpb24uIFVzZSAi
cmVhZG9ubHkiIG9yICJyZWFkd3JpdGUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVj
dGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4g
VXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNP
TEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElE
Qk9iamVjdFN0b3JlLm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYi
LCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZh
bHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2Ug
Im5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBN
RVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1
cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIs
IG9yICJwcmV2dW5pcXVlIi4KIENPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyB0cmFuc2FjdGlvbiBt
b2RlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJEYXRhYmFzZS50cmFuc2FjdGlvbi4gVXNlICJyZWFk
b25seSIgb3IgInJlYWR3cml0ZSIuCi1DT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9u
IHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yLiBVc2Ug
Im5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgotQ09OU09MRSBN
RVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCT2Jq
ZWN0U3RvcmUub3BlbkN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9y
ICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVz
IGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4
dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCitDT05TT0xFIE1FU1NB
R0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29y
IGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3Ig
InByZXZ1bmlxdWUiLgogQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIHRyYW5zYWN0aW9uIG1vZGVz
IGFyZSBkZXByZWNhdGVkIGluIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uLiBVc2UgInJlYWRvbmx5
IiBvciAicmVhZHdyaXRlIi4KLUNPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFs
dWVzIGFyZSBkZXByZWNhdGVkIGluIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IuIFVzZSAibmV4
dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCi1DT05TT0xFIE1FU1NB
R0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJPYmplY3RT
dG9yZS5vcGVuQ3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInBy
ZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJl
IGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0Iiwg
Im5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KK0NPTlNPTEUgTUVTU0FHRTog
TnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5k
IG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJl
dnVuaXF1ZSIuCiBDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgdHJhbnNhY3Rpb24gbW9kZXMgYXJl
IGRlcHJlY2F0ZWQgaW4gSURCRGF0YWJhc2UudHJhbnNhY3Rpb24uIFVzZSAicmVhZG9ubHkiIG9y
ICJyZWFkd3JpdGUiLgotQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMg
YXJlIGRlcHJlY2F0ZWQgaW4gSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvci4gVXNlICJuZXh0Iiwg
Im5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KLUNPTlNPTEUgTUVTU0FHRTog
TnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIElEQk9iamVjdFN0b3Jl
Lm9wZW5DdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVu
aXF1ZSIuCitDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVw
cmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4
dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgorQ09OU09MRSBNRVNTQUdFOiBOdW1l
cmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3Bl
bktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5p
cXVlIi4KIFRlc3QgdGhhdCBsZWdhY3kgZGlyZWN0aW9uL21vZGUgY29uc3RhbnRzIHdvcmsKIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>