<?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>232844</bug_id>
          
          <creation_ts>2021-11-08 13:21:21 -0800</creation_ts>
          <short_desc>[GPU Process] [Filters 21/23] Add the encoding/decoding for Filter and FilterEffect</short_desc>
          <delta_ts>2021-12-05 21:50:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>ujwal.koneru</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1812796</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-08 13:21:21 -0800</bug_when>
    <thetext>This will make it possible to transfer the Filter and FilterEffects data from WebProcess to GPUProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815202</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-15 13:24:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/85426351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820482</commentid>
    <comment_count>2</comment_count>
      <attachid>445978</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-04 22:45:59 -0800</bug_when>
    <thetext>Created attachment 445978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820484</commentid>
    <comment_count>3</comment_count>
      <attachid>445979</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-04 23:33:19 -0800</bug_when>
    <thetext>Created attachment 445979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820486</commentid>
    <comment_count>4</comment_count>
      <attachid>445981</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-05 00:20:42 -0800</bug_when>
    <thetext>Created attachment 445981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820487</commentid>
    <comment_count>5</comment_count>
      <attachid>445982</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-05 01:00:21 -0800</bug_when>
    <thetext>Created attachment 445982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820488</commentid>
    <comment_count>6</comment_count>
      <attachid>445983</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-05 01:18:38 -0800</bug_when>
    <thetext>Created attachment 445983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820502</commentid>
    <comment_count>7</comment_count>
      <attachid>445983</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-05 11:32:08 -0800</bug_when>
    <thetext>Comment on attachment 445983
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FEColorMatrix.h:99
&gt; +template&lt;&gt; struct EnumTraits&lt;WebCore::ColorMatrixType&gt; {

Nit - we should consider making ColorMatrixType an `enum class : uint8_t`, perhaps in a separate patch.

&gt; Source/WebCore/platform/graphics/filters/FEComponentTransfer.h:179
&gt; +        WebCore::ComponentTransferType,

We should consider making ComponentTransferType an enum class as well (in a followup).

&gt; Source/WebCore/platform/graphics/filters/FEComposite.h:137
&gt; +        WebCore::CompositeOperationType,

(Ditto for CompositeOperationType)

&gt; Source/WebCore/platform/graphics/filters/FEMerge.h:43
&gt; +    unsigned m_numberOfEffectInputs;

Nit - let&apos;s make this initialize to `{ 0 };`

&gt; Source/WebCore/platform/graphics/filters/Filter.h:79
&gt; +    using FilterFunction::FilterFunction;

Is this necessary? I don&apos;t see any nested `FilterFunction` symbol defined in the `FilterFunction` class (or a separate namespace called `FilterFunction`)

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:229
&gt; +    auto sendResult = sendSync(Messages::RemoteRenderingBackend::GetFilteredImageForImageBuffer(imageBuffer, IPC::FilterReference { filter }), Messages::RemoteRenderingBackend::GetFilteredImageForImageBuffer::Reply(handle), renderingBackendIdentifier(), 1_s);

I&apos;m a little surprised that this actually works, given that RRB only receives stream messages. Did you mean to use sendSyncToStream() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820514</commentid>
    <comment_count>8</comment_count>
      <attachid>445983</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-05 20:14:00 -0800</bug_when>
    <thetext>Comment on attachment 445983
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/filters/FEMerge.h:43
&gt;&gt; +    unsigned m_numberOfEffectInputs;
&gt; 
&gt; Nit - let&apos;s make this initialize to `{ 0 };`

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/filters/Filter.h:79
&gt;&gt; +    using FilterFunction::FilterFunction;
&gt; 
&gt; Is this necessary? I don&apos;t see any nested `FilterFunction` symbol defined in the `FilterFunction` class (or a separate namespace called `FilterFunction`)

This defines a new constructor for the Filter class which will be called from the new CSSFilter constructor:

CSSFilter::CSSFilter(Vector&lt;Ref&lt;FilterFunction&gt;&gt;&amp;&amp; functions)
    : Filter(Type::CSSFilter)
    , m_functions(WTFMove(functions))
{
}

Instead of writing

Filter::Filter(Type filterType)
    : FilterFunction(filterType)
{
}

we can just write 

using FilterFunction::FilterFunction;

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:229
&gt;&gt; +    auto sendResult = sendSync(Messages::RemoteRenderingBackend::GetFilteredImageForImageBuffer(imageBuffer, IPC::FilterReference { filter }), Messages::RemoteRenderingBackend::GetFilteredImageForImageBuffer::Reply(handle), renderingBackendIdentifier(), 1_s);
&gt; 
&gt; I&apos;m a little surprised that this actually works, given that RRB only receives stream messages. Did you mean to use sendSyncToStream() instead?

You are right. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820515</commentid>
    <comment_count>9</comment_count>
      <attachid>445992</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-05 20:27:30 -0800</bug_when>
    <thetext>Created attachment 445992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820522</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-05 21:49:59 -0800</bug_when>
    <thetext>Committed r286538 (244870@main): &lt;https://commits.webkit.org/244870@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445992.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445978</attachid>
            <date>2021-12-04 22:45:59 -0800</date>
            <delta_ts>2021-12-04 23:47:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232844-20211204224558.patch</filename>
            <type>text/plain</type>
            <size>122374</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI3Mjk5NTM4MGYwNjk3
NGRlMDdjYjhhYzU4MzRjNWEzNzNlZTE5ZC4uOWEzYmMzMDBiMmRmMGJmZWViYmVhNzA0NmI2NDBk
YjUyMDhjNzdkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAyMS0xMi0wNCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmlsdGVyRWZmZWN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgdGhlIGVuY29kaW5nIGFuZCBkZWNvZGluZyBmb3IgdGhlIEZpbHRlckVmZmVjdCBhbmQg
dGhlCisgICAgICAgIEZpbHRlciBvYmplY3RzLiBCZWNhdXNlIHRoZXNlIG9iamVjdHMgaGF2ZSBz
dXBlci1jbGFzc2VzLCB3ZSBhcmUgZ29pbmcKKyAgICAgICAgdG8gZG8gdGhlIGVuY29kaW5nIGFu
ZCBkZWNvZGluZyB0aHJvdWdoIGEgbmV3IElQQyBjbGFzcyBjYWxsZWQKKyAgICAgICAgRmlsdGVy
UmVmZXJlbmNlLgorCisgICAgICAgIFRoZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2YgdGhlc2Ug
Y2xhc3NlcyB3aWxsIGJlIG5lZWRlZCBpbiB0d28gY2FzZXM6CisKKyAgICAgICAgMSkgRGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcigpCisgICAgICAgIDIpIFJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmZpbHRlcmVkSW1hZ2UoKQorCisgICAgICAgIEEgZmV3IHRo
aW5ncyBoYXZlIG5vdCBiZSBkb25lIHRoaXMgcGF0Y2ggeWV0OgorCisgICAgICAgIDEpIExpZ2h0
U291cmNlIGhhcyBub3QgYmVlbiBlbmNvZGVkL2RlY29kZWQKKyAgICAgICAgMikgRkVMaWdodGlu
ZyBjbGFzc2VzIGhhdmUgbm90IGJlZW4gZW5jb2RlZC9kZWNvZGVkCisgICAgICAgIDMpIEZFSW1h
Z2UgaGFzIG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorICAgICAgICA0KSBTVkdGaWx0ZXIgaGFz
IG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3Qg
Y2hhbmdlIGFueSBiZWhhdmlvciBldmVuIGlmIHRoZSBHUFUgUHJvY2VzcyBmb3IgRE9NCisgICAg
ICAgIHJlbmRlcmluZyBpcyBlbmFibGVkLiBUaGUgc291cmNlSW1hZ2UgZm9yIHRoZSBmaWx0ZXIg
YW5kIHRoZSBmaWx0ZXIgaW1hZ2UKKyAgICAgICAgbmVlZCB0byBiZSBvZiB0eXBlIG9mIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkgdG8gdGhpcyBjb2RlIHRvIGJlIGNhbGxlZC4KKworICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1IYW5kbGU6OnNhZmVDb3B5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6c2l6ZU9mSXRlbUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OmlzRHJhd2luZ0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Omlz
SW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbVR5cGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6YXBw
bHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZElt
YWdlQnVmZmVyOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0
b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcjo6c291cmNlSW1hZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6c291cmNlSW1hZ2VSZWN0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcjo6Z2xvYmFsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVk
SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OnJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlckltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGRUJsZW5kOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmRlY29kZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbjo6ZGVj
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFQ29tcG9zaXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RkVDb21wb3NpdGU6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbnZvbHZlTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb252b2x2ZU1hdHJpeDo6ZGVj
b2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRURpZmZ1c2VMaWdodGluZzo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGRURpc3BsYWNlbWVudE1hcDo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6CisgICAgICAgIChXZWJDb3JlOjpG
RURyb3BTaGFkb3c6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFk
b3c6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29k
Lmg6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RkVGbG9vZDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1
cjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oOgor
ICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZFTGlnaHRpbmc6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRU1lcmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdlOjpGRU1lcmdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdlOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5Lmg6CisgICAgICAg
IChXZWJDb3JlOjpGRU1vcnBob2xvZ3k6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGRU1vcnBob2xvZ3k6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU9mZnNldC5oOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpGRU9mZnNldDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oOgorICAgICAgICAoV2Vi
Q29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVR1cmJ1bGVuY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXI6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyOjpzZXRDbGlwT3BlcmF0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZpbHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6Q1NTRmlsdGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckZp
bHRlcnM6OmFwcGx5RmlsdGVyRWZmZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291
cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTWVyZ2VFbGVtZW50OjpidWlsZCBj
b25zdCk6CisKIDIwMjEtMTItMDMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSAoUkVHUkVTU0lPTiByMjg1NTk3KTogRml4IFNWR0Zp
bHRlciBjbGFtcGluZyBjYWxjdWxhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4Nzc2OTE0OTc2YjJhOTJmNzZk
ZDg3NjExZDI4MWEwMjhiMTM3NDk1Li5kOTNlYzA0MTZiNTlhNDJkMjdkYzhiZDM3NjZiMjdmYmU3
MDhkNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEyLTA0ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gQWRkIHRo
ZSBlbmNvZGluZy9kZWNvZGluZyBmb3IgRmlsdGVyIGFuZCBGaWx0ZXJFZmZlY3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRG
aWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvRmlsdGVyUmVmZXJlbmNlLmg6IEFkZGVkLgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZl
cmVuY2U6OkZpbHRlclJlZmVyZW5jZSk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6
dGFrZUZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlRmlsdGVy
RWZmZWN0KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZl
Y3QpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZVNWR0ZpbHRlcik6Cisg
ICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlU1ZHRmlsdGVyKToKKyAgICAgICAg
KElQQzo6RmlsdGVyUmVmZXJlbmNlOjplbmNvZGVDU1NGaWx0ZXIpOgorICAgICAgICAoSVBDOjpG
aWx0ZXJSZWZlcmVuY2U6OmRlY29kZUNTU0ZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJl
ZmVyZW5jZTo6ZW5jb2RlRmlsdGVyKToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpk
ZWNvZGVGaWx0ZXIpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2Jl
X2ZvcndhcmRfZGVjbGFyZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmdldEZpbHRlcmVkSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorCiAyMDIxLTEyLTAzICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFdlYiBjb250
ZW50IHByb2Nlc3Mgc29tZXRpbWVzIGNyYXNoZXMgdW5kZXIgV2ViUGFnZTo6cG9zaXRpb25JbmZv
cm1hdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNTVhMDkwYjYyOWNmNDdjMTczMDNhZjJkNDBmOTc5ZmIwMTcwMTMxYi4u
OGEyYTkzMzhmNDAwOGZjZDA5MTgyOGUxYTdjMDAzZjY4NjNmOTNmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIzMyw3ICsx
MjMzLDcgQEAKIAkJNDMxMDdCRTIxOENDMTlERTAwQ0MxOEU4IC8qIFNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMx
MDdCRTExOENDMTlERTAwQ0MxOEU4IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5oICovOyB9Owog
CQk0MzJEM0ZFODE4QTg2NTg0MDBEN0RDMDMgLyogU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9u
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMyRDNG
RTcxOEE4NjU4NDAwRDdEQzAzIC8qIFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCAqLzsg
fTsKIAkJNDM1OEU4N0QxMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4
N0IxMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oICovOyB9Owot
CQk0MzU4RTg4MTEzNjBBMzE3MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg3RjEzNjBBMzE3MDBFNDc0
OEMgLyogRkVEcm9wU2hhZG93LmggKi87IH07CisJCTQzNThFODgxMTM2MEEzMTcwMEU0NzQ4QyAv
KiBGRURyb3BTaGFkb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzNThFODdGMTM2MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MzU4RTg4NjEzNjBB
MzNCMDBFNDc0OEMgLyogU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4ODMxMzYwQTMzQjAwRTQ3NDhDIC8q
IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJNDM2NzA4QzExMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFJlbmRlclNWR0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MzY3MDg4MjEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHQmxvY2su
aCAqLzsgfTsKIAkJNDM2NzA4QzMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4
ODQxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5oICovOyB9OwpAQCAtMjMw
MSw2ICsyMzAxLDEwIEBACiAJCTcyMTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0
eU93bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NUVFNTM2MDIyM0IyQTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMUI0OTc0MjUxMkJBM0Iw
MEZFOUQzQiAvKiBJbWFnZUJpdG1hcEJhY2tpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyMUI0OTcwMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFnZUJp
dG1hcEJhY2tpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3MjI4M0YwRTIzMEIyNjhDMDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNG
MjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyNDY5NjNCMjc1QzVGQTYwMEE5
MTU2QSAvKiBDU1NGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNTNGQjgzMjEzQjFCQjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjQ2OTYzRDI3NUM2
MTQ0MDBBOTE1NkEgLyogRmlsdGVyRWZmZWN0VmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjE0QjlCNzI3NDQ1OEZBMDAzQkU2REYgLyogRmls
dGVyRWZmZWN0VmVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNzI0Njk2M0UyNzVDNjE2NzAwQTkxNTZBIC8qIEZpbHRlckltYWdlVmVjdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MkI0RUY3
QzI3NEVFMzdGMDAyOTNDMkYgLyogRmlsdGVySW1hZ2VWZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjQ2OTYzRjI3NUM2NDdCMDBBOTE1
NkEgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0NjFERDNEMUM1MDBFOTJEQTMgLyogU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxl
bmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJ
CTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFG
RkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRl
Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2Jz
ZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMjcyMCwzNSArMjcyNCwzNSBAQAogCQk4NDMwMEJENjEyMEM5QUFDMDAyMTk1NEEgLyogU1ZH
UGF0aFN0cmluZ1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODQzMDBCRDUxMjBDOUFBQzAwMjE5NTRBIC8qIFNWR1BhdGhTdHJpbmdTb3VyY2Uu
aCAqLzsgfTsKIAkJODQzMDBCRDgxMjBDOUFENDAwMjE5NTRBIC8qIFNWR1BhdGhTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MzAwQkQ3MTIw
QzlBRDQwMDIxOTU0QSAvKiBTVkdQYXRoU291cmNlLmggKi87IH07CiAJCTg0NUU3MkY4MEZEMjYx
RUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0NUU3MkY3MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NDVFNzJGQzBGRDI2
MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDVFNzJGQTBGRDI2MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmgg
Ki87IH07CisJCTg0NUU3MkZDMEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NUU3MkZBMEZEMjYyMzkw
MEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NDY1MEU3RTIzODdBRDdEMDA2MjY2RTIgLyogTWVkaWFRdWVyeUxp
c3RFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ2NTBFN0MyMzg3QUQ3QzAwNjI2NkUyIC8qIE1lZGlhUXVlcnlMaXN0RXZlbnQuaCAqLzsgfTsK
IAkJODQ3MzBENzcxMjQ4RjBCMzAwRDNBOUM5IC8qIERpc3RhbnRMaWdodFNvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUExMjQ4RjBC
MzAwRDNBOUM5IC8qIERpc3RhbnRMaWdodFNvdXJjZS5oICovOyB9OwotCQk4NDczMEQ3OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFQ29u
dm9sdmVNYXRyaXguaCAqLzsgfTsKLQkJODQ3MzBEN0IxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlm
ZnVzZUxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDczMEQ1RTEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuaCAqLzsg
fTsKLQkJODQ3MzBEN0QxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2MDEyNDhG
MEIzMDBEM0E5QzkgLyogRkVEaXNwbGFjZW1lbnRNYXAuaCAqLzsgfTsKLQkJODQ3MzBEN0YxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzMwRDYyMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29kLmggKi87
IH07Ci0JCTg0NzMwRDgxMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUxpZ2h0aW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2NDEyNDhGMEIzMDBE
M0E5QzkgLyogRkVMaWdodGluZy5oICovOyB9OwotCQk4NDczMEQ4MzEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVNZXJnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ3MzBENjYxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuaCAqLzsgfTsKLQkJODQ3MzBE
ODUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjgxMjQ4RjBCMzAwRDNBOUM5IC8qIEZF
TW9ycGhvbG9neS5oICovOyB9OwotCQk4NDczMEQ4NzEyNDhGMEIzMDBEM0E5QzkgLyogRkVPZmZz
ZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMw
RDZBMTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oICovOyB9OwotCQk4NDczMEQ4OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2QzEyNDhGMEIzMDBEM0E5QzkgLyogRkVT
cGVjdWxhckxpZ2h0aW5nLmggKi87IH07Ci0JCTg0NzMwRDhCMTI0OEYwQjMwMEQzQTlDOSAvKiBG
RVRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
NzMwRDZFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRpbGUuaCAqLzsgfTsKLQkJODQ3MzBEOEQxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFVHVyYnVsZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFVHVyYnVs
ZW5jZS5oICovOyB9OwotCQk4NDczMEQ5MTEyNDhGMEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc0
MTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oICovOyB9OworCQk4NDczMEQ3OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFQ29u
dm9sdmVNYXRyaXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk4NDczMEQ3QjEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDVFMTI0
OEYwQjMwMEQzQTlDOSAvKiBGRURpZmZ1c2VMaWdodGluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDdEMTI0OEYwQjMwMEQzQTlDOSAv
KiBGRURpc3BsYWNlbWVudE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3MzBENjAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFw
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3
MzBEN0YxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDYyMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZs
b29kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
ODQ3MzBEODExMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY0MTI0OEYwQjMwMEQzQTlDOSAv
KiBGRUxpZ2h0aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJODQ3MzBEODMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY2MTI0OEYwQjMwMEQz
QTlDOSAvKiBGRU1lcmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJODQ3MzBEODUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjgxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9m
ZnNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3
MzBENkExMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3MzBEODkxMjQ4RjBCMzAwRDNBOUM5IC8q
IEZFU3BlY3VsYXJMaWdodGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3MzBENkMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3VsYXJMaWdodGlu
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0
NzMwRDhCMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDZFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRp
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4
NDczMEQ4RDEyNDhGMEIzMDBEM0E5QzkgLyogRkVUdXJidWxlbmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3MDEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVUdXJidWxlbmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJODQ3MzBEOTExMjQ4RjBCMzAwRDNBOUM5IC8qIExpZ2h0U291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NDEyNDhG
MEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDczMEQ5MjEyNDhGMEIzMDBEM0E5QzkgLyogUG9pbnRM
aWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ3MzBENzUxMjQ4RjBCMzAwRDNBOUM5IC8qIFBvaW50TGlnaHRTb3VyY2UuaCAqLzsgfTsK
IAkJODQ3MzBEOTMxMjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzYxMjQ4RjBCMzAw
RDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDc2QzlFNjExREY2QTBCMDA1
NTVCMDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFNDExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyLmggKi87IH07CiAJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBT
VkdQYXRoQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODQ3NkM5RTgxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggKi87IH07
CiAJCTg0NzZDOUVDMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkw
MDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCAqLzsgfTsKIAkJODQ3NkM5RjAxMURGNkE1ODAw
NTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2Vy
LmggKi87IH07Ci0JCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMx
MDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggKi87IH07CisJCTg0ODAxOTU1MTA4
QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1
c3NpYW5CbHVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODQ4MkI3NDYxMTk4QzM1NDAwQkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ0MkJCRjgxMTk0QzlE
MzAwRDQ5NDY5IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovOyB9OwogCQk4NDgyQjc1MjExOThDQjZC
MDBCRkIwMDUgLyogSlNIYXNoQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODJCNzUwMTE5OENCNkIwMEJGQjAwNSAvKiBKU0hhc2hD
aGFuZ2VFdmVudC5oICovOyB9OwogCQk4NDg1MjI3QzExOTAxNjJDMDA2RURDN0YgLyogSlNTVkdI
S2VybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0ODUyMjc4MTE5MDE2MkMwMDZFREM3RiAvKiBKU1NWR0hLZXJuRWxlbWVudC5oICovOyB9
OwogCQk4NDg1MjI3RTExOTAxNjJDMDA2RURDN0YgLyogSlNTVkdWS2VybkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODUyMjdBMTE5MDE2
MkMwMDZFREM3RiAvKiBKU1NWR1ZLZXJuRWxlbWVudC5oICovOyB9OwogCQk4NDg1MjI4QjExOTAx
NzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDg1MjI4ODExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktl
cm5FbGVtZW50LmggKi87IH07Ci0JCTg0QTgxRjNFMEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VB
bHBoYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRB
ODFGM0MwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggKi87IH07Ci0JCTg0QTgxRjQy
MEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUY0MDBGQzdFMDI3MDA5NTUzMDAgLyogU291
cmNlR3JhcGhpYy5oICovOyB9OworCQk4NEE4MUYzRTBGQzdERkYwMDA5NTUzMDAgLyogU291cmNl
QWxwaGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
QTgxRjNDMEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VBbHBoYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMw
MCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NEE4MUY0MDBGQzdFMDI3MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0QjM0OUEy
MjJGODZFNzUwMEQ0N0JDRiAvKiBFdmVudFRhcmdldENvbmNyZXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEIzNDlBMDIyRjg2RTc0MDBENDdCQ0Yg
LyogRXZlbnRUYXJnZXRDb25jcmV0ZS5oICovOyB9OwogCQk4NEI2Qjk3ODEyMEYxM0U1MDBCOEVG
QUYgLyogU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0QjZCOTc2MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2Vn
TGlzdFNvdXJjZS5oICovOyB9OwogCQk4NEM1QjJGQjEyMTZEQzgxMDA4OEI1M0EgLyogU1ZHUGF0
aFRyYXZlcnNhbFN0YXRlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODRDNUIyRjkxMjE2REM4MTAwODhCNTNBIC8qIFNWR1BhdGhUcmF2ZXJz
YWxTdGF0ZUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTM1MTAsMTAgKzM1MTQsMTAgQEAKIAkJQTc0MEI1
QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzkxNEM5MzQ4NDAwQzhGNUJG
IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oICovOyB9OwogCQlBNzQwQjVBNzE0QzkzNUFGMDBBNzdG
QTQgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFs
U2V0dGluZ3MuY3BwICovOyB9OwogCQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTc1
RThCODkwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgxMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJs
ZW5kLmggKi87IH07Ci0JCUE3NUU4QjhCMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4
MzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5oICovOyB9OwotCQlBNzVFOEI4RDBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgfTsKLQkJQTc1RThCOEYwRTFERTJENjAwN0YyNDgx
IC8qIEZFQ29tcG9zaXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLzsgfTsK
KwkJQTc1RThCODkwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgxMEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUJsZW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJQTc1RThCOEIwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgzMEUxREUyRDYw
MDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc1RThCOEQwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9u
ZW50VHJhbnNmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc1RThCOEYw
RTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21w
b3NpdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzZFNUY3RjEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RTVGN0UxMzVF
MERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzc5NzkxQTBENkI5RDBDMDAzODUx
QjkgLyogSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzc5NzkxNDBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3OTc5MjkwRDZCOUU2
NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEu
aCAqLzsgfTsKQEAgLTM4NjUsNyArMzg2OSw3IEBACiAJCUIyMjJGNjlEMEFCNzcxQjgwMDIyRUZB
RCAvKiBKU1NWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyMjJGNjlCMEFCNzcxQjgwMDIyRUZBRCAvKiBKU1NWR0VsZW1lbnQuaCAqLzsg
fTsKIAkJQjIyMzYyMjkwQzNBRjA0QTAwMDhDQTlCIC8qIEpTU1ZHVGV4dFBhdGhFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIzNjIyNzBD
M0FGMDRBMDAwOENBOUIgLyogSlNTVkdUZXh0UGF0aEVsZW1lbnQuaCAqLzsgfTsKIAkJQjIzNTQw
RjMwRDAwNzgyRTAwMjM4MkZBIC8qIFN0cmluZ1RydW5jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIzNTQwRjEwRDAwNzgyRTAwMjM4MkZBIC8q
IFN0cmluZ1RydW5jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUIyNTU5OTg1MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdGRUltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OThFQjBEMDBE
OEI5MDBCQjgyNUMgLyogU1ZHRkVJbWFnZS5oICovOyB9OworCQlCMjU1OTk4NTBEMDBEOEJBMDBC
QjgyNUMgLyogU1ZHRkVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjI1NTk4RUIwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjU1OTlBNDBE
MDBEOEJBMDBCQjgyNUMgLyogU1ZHSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OTBDMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdJbWFnZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyNTU5
OUE1MEQwMEQ4QkEwMEJCODI1QyAvKiBFbXB0eUNsaWVudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OTBEMEQwMEQ4QjkwMEJCODI1QyAvKiBF
bXB0eUNsaWVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCMjc1MzU2NTBCMDUzODE0MDAyQ0U2NEYgLyogUERGRG9jdW1lbnRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1MzcwQjA1
MzgxNDAwMkNFNjRGIC8qIFBERkRvY3VtZW50SW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzM2ODAsNiArMzM2ODQsNyBAQAogCQkJCUFB
MjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ0NzZCREIxREZDQUMwMzAwNjkwRTIzIC8qIENT
U0RlZmVycmVkUGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjQ2OTYzQjI3NUM1RkE2MDBB
OTE1NkEgLyogQ1NTRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGQkIwQzVCODE3QkJENjI5
MDAzRDM2NzcgLyogQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2
NEI0RDYwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODBFNkNGRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTM0MTg4LDggKzM0MTkzLDEwIEBACiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3
RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhDOTI1MUEwRkNDN0M0QTAwNDgw
REVDIC8qIEZpbHRlckVmZmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI2Q0RFMjAyNzU5NzM1
MDAwQTQ0NUIyIC8qIEZpbHRlckVmZmVjdEdlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3
MjQ2OTYzRDI3NUM2MTQ0MDBBOTE1NkEgLyogRmlsdGVyRWZmZWN0VmVjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3MkI4QjAzNTI3NTM0Mzg2MDBGNzUyQUEgLyogRmlsdGVyRnVuY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTcyQjhCMDM2Mjc1MzQ0MTQwMEY3NTJBQSAvKiBGaWx0ZXJJbWFn
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI0Njk2M0UyNzVDNjE2NzAwQTkxNTZBIC8qIEZpbHRl
ckltYWdlVmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUVDRUI2RTE0OTk3OTBEMDBDREQz
QTQgLyogRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUVDRUI3MDE0OTk3
OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcy
QzAwRDkxMjk2MTlGODAwNUM5NTc1IC8qIEZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKQEAg
LTM3MTgyLDYgKzM3MTg5LDcgQEAKIAkJCQlCMjIyN0E5MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
UG9seWdvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk0MEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdQb2x5bGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk3
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAq
LywKKwkJCQk3MjQ2OTYzRjI3NUM2NDdCMDBBOTE1NkEgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NURDQzUyODIyNDA3QjIwMDBDMjZFMzIgLyog
U1ZHUHJpbWl0aXZlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzIxNDQzMzMyMjNFQzhCMDAw
RjEyRkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjE0NDMzNDIyM0VD
OTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVy
LmgKaW5kZXggNzUwZGI0ZWU4OTE2NjBmYTRiZWNlYmM0NDQ3YzY4NWNlNWM0ODQ4MS4uMmZkNDIy
OWI3MTI3ZjA0OTBkNDJkNTQxZTE0NGFkNmE5ZDhlMWZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtMTQ2
LDcgKzE0Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgICAgIGNvbnN0X2Nhc3Q8Q29uY3JldGVJbWFnZUJ1ZmZlciY+KCp0aGlzKS5mbHVzaERyYXdp
bmdDb250ZXh0KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gZmlsdGVyLmFwcGx5KHRoaXMpOwor
ICAgICAgICBhdXRvIHJlc3VsdCA9IGZpbHRlci5hcHBseSh0aGlzLCB7IHsgfSwgbG9naWNhbFNp
emUoKSB9KTsKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAKaW5kZXggZTM3YjcxNTU3MTQwNjBiZmViN2FkYjAxODlmYWJlZGY3OWYxNjgx
NC4uMmNiYmNjNTY2M2ZlNTg4MDdkMTAzNjA2ZjViNTFhMGZmOGU1NjJkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBA
IC02MzEsOSArNjMxLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFn
ZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlLCBjb25zdAogICAgIEltYWdlQnVmZmVy
OjpkcmF3Q29uc3VtaW5nKFdURk1vdmUoaW1hZ2UpLCAqdGhpcywgZGVzdGluYXRpb24sIHNvdXJj
ZSwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIEZpbHRlciYgZmlsdGVyKQordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBzb3Vy
Y2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYgZmlsdGVy
KQogewotICAgIGF1dG8gcmVzdWx0ID0gZmlsdGVyLmFwcGx5KHNvdXJjZUltYWdlKTsKKyAgICBh
dXRvIHJlc3VsdCA9IGZpbHRlci5hcHBseShzb3VyY2VJbWFnZSwgc291cmNlSW1hZ2VSZWN0KTsK
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAzZDhkM2E3
MTI1M2UzNjMwZjhkOTVjZGRkNDA5NmJiNjQyMjg5YmY5Li4zMmVhMmVkMTQ1MWM1NGI0Y2RlODEz
MGE0OTM3ZTdkNTMyMDE2YTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtNDUyLDcgKzQ1Miw3IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihSZWZQdHI8SW1h
Z2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgPSB7IH0pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3
Q29uc3VtaW5nSW1hZ2VCdWZmZXIoUmVmUHRyPEltYWdlQnVmZmVyPiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBGaWx0ZXImKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVj
dCwgRmlsdGVyJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2Um
LCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdC5jcHAKaW5kZXggZTYxNWE3YmQ2ZDRhNzA4NTVhZjA5ZmVhMGMzOWQ1ODIwMzlk
ZmU5Yy4uZDliMGVkZGMyNjhjMjk1YjczZDliNjYxZWU4YzE1NmRiYTNkYjk3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3QuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgogI2luY2x1ZGUg
IkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CkBAIC0yNDMsNiArMjQ0LDggQEAgdm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5k
KEl0ZW1IYW5kbGUgaXRlbSkKICAgICAgICAgcmV0dXJuIGFwcGVuZDxCZWdpbkNsaXBUb0RyYXdp
bmdDb21tYW5kcz4oaXRlbS5nZXQ8QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHM+KCkpOwogICAg
IGNhc2UgSXRlbVR5cGU6OkVuZENsaXBUb0RyYXdpbmdDb21tYW5kczoKICAgICAgICAgcmV0dXJu
IGFwcGVuZDxFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM+KGl0ZW0uZ2V0PEVuZENsaXBUb0RyYXdp
bmdDb21tYW5kcz4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZm
ZXI6CisgICAgICAgIHJldHVybiBhcHBlbmQ8RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI+KGl0ZW0u
Z2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
R2x5cGhzOgogICAgICAgICByZXR1cm4gYXBwZW5kPERyYXdHbHlwaHM+KGl0ZW0uZ2V0PERyYXdH
bHlwaHM+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggZTgwNTA5ZWNjYTA1ZDJj
YzhlZDEwNjYwNzA0MWY1Y2NjYzNlMzc5NC4uNDAyNWUwNjkyZGM1YTE1ZTk3MzY5NTgwMzMzZjZm
YTNiOWJmYmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5j
cHAKQEAgLTExNCw2ICsxMTQsOSBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFu
ZHM6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIGdldDxEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm47CkBAIC0yNTYsNiArMjU5LDkgQEAgdm9pZCBJdGVtSGFuZGxl
OjpkZXN0cm95KCkKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDoKICAgICAgICAgZ2V0PENs
aXBQYXRoPigpLn5DbGlwUGF0aCgpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIGdldDxEcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcj4oKS5+RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdQYXRoOgogICAgICAgICBnZXQ8RHJhd0Zv
Y3VzUmluZ1BhdGg+KCkufkRyYXdGb2N1c1JpbmdQYXRoKCk7CiAgICAgICAgIHJldHVybjsKQEAg
LTQ5MSw2ICs0OTcsOCBAQCBib29sIEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1UeXBlIGl0ZW1U
eXBlLCBJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAogICAgICAgICByZXR1cm4gY29weUlu
dG88Q2xpcE91dFRvUGF0aD4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6
OkNsaXBQYXRoOgogICAgICAgICByZXR1cm4gY29weUludG88Q2xpcFBhdGg+KGl0ZW1PZmZzZXQs
ICp0aGlzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKKyAg
ICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPihpdGVtT2Zmc2V0
LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1BhdGg6CiAgICAgICAg
IHJldHVybiBjb3B5SW50bzxEcmF3Rm9jdXNSaW5nUGF0aD4oaXRlbU9mZnNldCwgKnRoaXMpOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdSZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCBiZGVjNjU0YjUyYmQ0NmQ2MzljYTJlOWFlYWI5
ZDYxZTg2M2RjMzg1Li5kZmExZTc0ZmIyNDg2YzM0YTA5YzFmYTFiYTJjYmRlNzQ5MDA0ZGRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC04MCw2ICs4MCw4
IEBAIHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAg
ICAgcmV0dXJuIHNpemVvZihCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyk7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOgogICAgICAgICByZXR1cm4gc2l6ZW9m
KEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyk7CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRl
cmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBzaXplb2YoRHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXIpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAgICAgICAgIHJldHVybiBz
aXplb2YoRHJhd0dseXBocyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgpA
QCAtMjE2LDYgKzIxOCw3IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBlKQogICAg
IGNhc2UgSXRlbVR5cGU6OkNsZWFyUmVjdDoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0Zv
ckRvY3VtZW50TWFya2VyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxpcHNlOgorICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdGb2N1c1JpbmdQYXRoOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdSZWN0
czoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgpAQCAtMzIyLDYgKzMyNSw3IEBAIGJv
b2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0
ZW5hdGVDVE06CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjoK
ICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6
CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdQYXR0ZXJuOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXgg
ODA4NDRlOGI5ZGYwNTVlNWExNmMzNjdjZTJiZjI5MGE5M2NlNjM3Mi4uOTFmM2Y1ZjUyODhiYzdl
YjJkYWQ2ZTQyZGRmYjNkYmYxOTgwYzc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5oCkBAIC01Miw2ICs1Miw3IEBAIGVudW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90
IHsKICAgICBDbGlwUGF0aCwKICAgICBCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcywKICAgICBF
bmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMsCisgICAgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIsCiAg
ICAgRHJhd0dseXBocywKICAgICBEcmF3SW1hZ2VCdWZmZXIsCiAgICAgRHJhd05hdGl2ZUltYWdl
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDcyZmM2ZDFhNzM0NDYx
NDI1ZjBjZTU2N2Y2YjgwYzA0NzIyYzBhYTEuLjA5ZjJiNTdjNjRhOGQyMWUyOTY1MWVhZjU3YzFj
Nzc3OTc3ODZmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCiAKICNpbmNsdWRlICJE
aXNwbGF5TGlzdFJlcGxheWVyLmgiCisjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiRm9u
dENhc2NhZGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyLmgiCkBAIC0yOTksNiArMzAwLDMwIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMmIGl0CiAgICAg
cmV0dXJuIHRzOwogfQogCitEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6RHJhd0ZpbHRlcmVkSW1h
Z2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJj
ZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRl
ciYgZmlsdGVyKQorICAgIDogbV9zb3VyY2VJbWFnZUlkZW50aWZpZXIoc291cmNlSW1hZ2VJZGVu
dGlmaWVyKQorICAgICwgbV9zb3VyY2VJbWFnZVJlY3Qoc291cmNlSW1hZ2VSZWN0KQorICAgICwg
bV9maWx0ZXIoZmlsdGVyKQoreworfQorCitOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIERy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAorewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIERyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFdlYkNvcmU6OkltYWdlQnVmZmVy
KiBzb3VyY2VJbWFnZSkKK3sKKyAgICBjb250ZXh0LmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNv
dXJjZUltYWdlLCBtX3NvdXJjZUltYWdlUmVjdCwgbV9maWx0ZXIpOworfQorCitzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0ZpbHRlcmVkSW1h
Z2VCdWZmZXImIGl0ZW0pCit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtaW1hZ2UtaWRl
bnRpZmllciIsIGl0ZW0uc291cmNlSW1hZ2VJZGVudGlmaWVyKCkpOworICAgIHRzLmR1bXBQcm9w
ZXJ0eSgic291cmNlLWltYWdlLXJlY3QiLCBpdGVtLnNvdXJjZUltYWdlUmVjdCgpKTsKKyAgICBy
ZXR1cm4gdHM7Cit9CisKIERyYXdHbHlwaHM6OkRyYXdHbHlwaHMoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGZvbnRJZGVudGlmaWVyLCBWZWN0b3I8R2x5cGhCdWZmZXJHbHlwaCwgMTI4PiYm
IGdseXBocywgVmVjdG9yPEdseXBoQnVmZmVyQWR2YW5jZSwgMTI4PiYmIGFkdmFuY2VzLCBjb25z
dCBGbG9hdFJlY3QmIGJvdW5kcywgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRT
bW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiAgICAgOiBtX2ZvbnRJZGVudGlmaWVyKGZvbnRJ
ZGVudGlmaWVyKQogICAgICwgbV9nbHlwaHMoV1RGTW92ZShnbHlwaHMpKQpAQCAtMTA1OSw2ICsx
MDg0LDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0
ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6IHRzIDw8ICJjbGlwLXBh
dGgiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5k
czogdHMgPDwgImJlZ2luLWNsaXAtdG8tZHJhd2luZy1jb21tYW5kczoiOyBicmVhazsKICAgICBj
YXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM6IHRzIDw8ICJlbmQtY2xpcC10
by1kcmF3aW5nLWNvbW1hbmRzIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRl
cmVkSW1hZ2VCdWZmZXI6IHRzIDw8ICJkcmF3LWZpbHRlcmVkLWltYWdlLWJ1ZmZlciI7IGJyZWFr
OwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6IHRzIDw8ICJkcmF3LWdseXBocyI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjogdHMgPDwgImRyYXctaW1h
Z2UtYnVmZmVyIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOiB0
cyA8PCAiZHJhdy1uYXRpdmUtaW1hZ2UiOyBicmVhazsKQEAgLTExNzgsNiArMTIwNCw5IEBAIFRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAg
ICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM6CiAgICAgICAgIHRzIDw8
IGl0ZW0uZ2V0PEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcz4oKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIHRzIDw8
IGl0ZW0uZ2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigpOworICAgICAgICBicmVhazsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxEcmF3
R2x5cGhzPigpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
CmluZGV4IGUxNGE0Mjk5M2EwZjJhZmRiMmY0YjE2YTBhYWJmOTVlZTE0ZGIzN2UuLjgzNWIwMTJk
NWZjMGI0OTYwNGVmM2FlYWJmNTExYWE2MWNiM2UyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaApAQCAtOTEyLDYgKzkxMiwyOSBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBt
X2Rlc3RpbmF0aW9uOwogfTsKIAorY2xhc3MgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6
RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5s
aW5lSXRlbSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVt
ID0gdHJ1ZTsKKworICAgIFdFQkNPUkVfRVhQT1JUIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0
ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50
aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImKTsKKworICAg
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUltYWdlSWRlbnRpZmllcjsgfQorICAg
IEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUltYWdl
UmVjdDsgfQorCisgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGlj
c0NvbnRleHQmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5KEdyYXBoaWNz
Q29udGV4dCYsIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSk7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gc3RkOjpu
dWxsb3B0OyB9CisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0
IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2VSZWN0OyB9CisK
K3ByaXZhdGU6CisgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+
IG1fc291cmNlSW1hZ2VJZGVudGlmaWVyOworICAgIEZsb2F0UmVjdCBtX3NvdXJjZUltYWdlUmVj
dDsKKyAgICBSZWY8RmlsdGVyPiBtX2ZpbHRlcjsKK307CisKIGNsYXNzIERyYXdHbHlwaHMgewog
cHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlw
ZTo6RHJhd0dseXBoczsKQEAgLTI0MDUsNiArMjQyOCw3IEBAIHVzaW5nIERpc3BsYXlMaXN0SXRl
bSA9IHN0ZDo6dmFyaWFudAogICAgICwgQ29uY2F0ZW5hdGVDVE0KICAgICAsIERyYXdEb3RzRm9y
RG9jdW1lbnRNYXJrZXIKICAgICAsIERyYXdFbGxpcHNlCisgICAgLCBEcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcgogICAgICwgRHJhd0ZvY3VzUmluZ1BhdGgKICAgICAsIERyYXdGb2N1c1JpbmdSZWN0
cwogICAgICwgRHJhd0dseXBocwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwCmluZGV4IDJmZDQzZjk5YWUzNTRhZGFkNzNiZDg1ZjE0ZmY1ZWMwYmU0ZmQ5ODQuLmQ4Yjhm
Y2EzOTNhZjYzNmRmYjg0Zjg0NzA1NzVjY2FmYzlhNzNlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTE0NCw2ICsxNDQsMjQgQEAgdm9pZCBSZWNvcmRl
cjo6c2V0TWl0ZXJMaW1pdChmbG9hdCBtaXRlckxpbWl0KQogICAgIHJlY29yZFNldE1pdGVyTGlt
aXQobWl0ZXJMaW1pdCk7CiB9CiAKK3ZvaWQgUmVjb3JkZXI6OmRyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFn
ZVJlY3QsIEZpbHRlciYgZmlsdGVyKQoreworICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbUlmTmVj
ZXNzYXJ5KCk7CisKKyAgICBpZiAoIXNvdXJjZUltYWdlKSB7CisgICAgICAgIHJlY29yZERyYXdG
aWx0ZXJlZEltYWdlQnVmZmVyKHsgfSwgc291cmNlSW1hZ2VSZWN0LCBmaWx0ZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFjYW5EcmF3SW1hZ2VCdWZmZXIoKnNvdXJjZUlt
YWdlKSkgeworICAgICAgICBHcmFwaGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVy
KHNvdXJjZUltYWdlLCBzb3VyY2VJbWFnZVJlY3QsIGZpbHRlcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICByZWNvcmRSZXNvdXJjZVVzZSgqc291cmNlSW1hZ2UpOworICAgIHJlY29y
ZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNvdXJjZUltYWdlLT5yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIoKSwgc291cmNlSW1hZ2VSZWN0LCBmaWx0ZXIpOworfQorCiB2b2lkIFJlY29yZGVy
OjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGds
eXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5
cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9v
dGhpbmdNb2RlKQogewogICAgIG1fZHJhd0dseXBoc1JlY29yZGVyLmRyYXdHbHlwaHMoZm9udCwg
Z2x5cGhzLCBhZHZhbmNlcywgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDlhNDAxNDM2N2RiMWVm
NDNiOGE1OWU1MGUzZDQ3MTBmOTNlMDNlYmYuLjAyYWU1NzA2MTJlMzRiODIzZjYwNzRiZmVmZGUz
NjBlZWU4N2U2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAt
ODgsNiArODgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZENsaXBQYXRo
KGNvbnN0IFBhdGgmLCBXaW5kUnVsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmRCZWdp
bkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRW5kQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVjb3JkRHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCos
IGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBv
aW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVjb3JkRHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHJlY29yZERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpID0gMDsKQEAgLTIyNCw2ICsyMjUsOCBAQCBwcml2YXRlOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgYXBwbHlGaWxsUGF0dGVybigpIGZpbmFsOwogI2VuZGlmCiAKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVy
KiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYp
IGZpbmFsOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQm
LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5z
aWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgRm9udFNtb290
aGluZ01vZGUpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0dseXBoc0FuZENh
Y2hlRm9udChjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IEdseXBo
QnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFu
Y2hvciwgRm9udFNtb290aGluZ01vZGUpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlcklt
cGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAppbmRleCBhNWUyZDNiMjA5ODVlM2VmOTQxYTMyMzU3
NTZlMjgwZWFjZDUxNjNjLi4zMDM0MDgxMGFkZjZkYzk5Y2Y2MjhhMTI1ZTlkNDZkZThhOGE4N2U3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKQEAg
LTIwOCw2ICsyMDgsMTEgQEAgdm9pZCBSZWNvcmRlckltcGw6OnJlY29yZEVuZENsaXBUb0RyYXdp
bmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQogICAgIGFwcGVuZDxFbmRD
bGlwVG9EcmF3aW5nQ29tbWFuZHM+KGRlc3RpbmF0aW9uKTsKIH0KIAordm9pZCBSZWNvcmRlcklt
cGw6OnJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVj
dCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZpbHRlcikKK3sKKyAgICBhcHBlbmQ8RHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXI+KHNvdXJjZUltYWdlSWRlbnRpZmllciwgc291cmNlSW1hZ2VSZWN0
LCBmaWx0ZXIpOworfQorCiB2b2lkIFJlY29yZGVySW1wbDo6cmVjb3JkRHJhd0dseXBocyhjb25z
dCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMsIGNvbnN0IEdseXBo
QnVmZmVyQWR2YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50
JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgbW9kZSkKIHsKICAgICBhcHBlbmQ8RHJh
d0dseXBocz4oZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywgY291bnQsIGxvY2FsQW5jaG9yLCBtb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKaW5kZXggM2U2
ZDA5MDI2OTA0NmYxYjEyNGEzOWMxZTEyMTEwMGIzMjcyNjBjNS4uMjllNzI3NGYxNzVkYThhNjI3
OTMzOGVkZTM0ODM0MmIyZTg1NTRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXJJbXBsLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlY29y
ZENsaXBQYXRoKGNvbnN0IFBhdGgmLCBXaW5kUnVsZSkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRC
ZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRW5kQ2xpcFRvRHJh
d2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pIGZpbmFsOworICAgIHZv
aWQgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd0ds
eXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IEdseXBoQnVm
ZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hv
ciwgRm9udFNtb290aGluZ01vZGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlQnVm
ZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdOYXRpdmVJ
bWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBG
bG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaApp
bmRleCA4ODljNmY3YjE3NGIyMDY5Y2Q5YzNmOGEyYTUxNjU5ODU4OGZlMzMxLi5lNWRmMjE5MmE5
Y2MwMTc3YzdhYTFhMDMxZDE2YzZmMmE0Y2Y4ZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaApAQCAtMzAsMTEgKzMwLDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVCbGVuZCA6IHB1YmxpYyBGaWx0ZXJFZmZl
Y3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVCbGVuZD4gY3JlYXRlKEJsZW5kTW9kZSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUJsZW5kPiBjcmVhdGUoQmxlbmRNb2Rl
KTsKIAogICAgIEJsZW5kTW9kZSBibGVuZE1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0K
ICAgICBib29sIHNldEJsZW5kTW9kZShCbGVuZE1vZGUpOwogCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUJsZW5kPj4gZGVjb2RlKERlY29k
ZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUJsZW5kKEJsZW5kTW9kZSk7CiAKQEAgLTQ4LDYgKzUx
LDIzIEBAIHByaXZhdGU6CiAgICAgQmxlbmRNb2RlIG1fbW9kZTsKIH07CiAKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIEZFQmxlbmQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgbV9tb2RlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
Pgorc3RkOjpvcHRpb25hbDxSZWY8RkVCbGVuZD4+IEZFQmxlbmQ6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8QmxlbmRNb2RlPiBtb2RlOworICAgIGRlY29k
ZXIgPj4gbW9kZTsKKyAgICBpZiAoIW1vZGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICByZXR1cm4gRkVCbGVuZDo6Y3JlYXRlKCptb2RlKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVCbGVu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbG9yTWF0cml4LmgKaW5kZXggYTQzMTI1YjUzMTU2MmM2M2E5NTI4NDdjOGY5MDQ0OWM5
NGY3ZTg1Yi4uMjAyNDAxOTNlNTQwYmMyMGVmYjk0Njc0YjZhMDA0N2Q2OGIyMjM0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0
cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bG9yTWF0cml4LmgKQEAgLTM3LDcgKzM3LDcgQEAgZW51bSBDb2xvck1hdHJpeFR5cGUgewogCiBj
bGFzcyBGRUNvbG9yTWF0cml4IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxGRUNvbG9yTWF0cml4PiBjcmVhdGUoQ29sb3JNYXRyaXhUeXBlLCBWZWN0b3I8
ZmxvYXQ+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVDb2xvck1hdHJpeD4g
Y3JlYXRlKENvbG9yTWF0cml4VHlwZSwgVmVjdG9yPGZsb2F0PiYmKTsKIAogICAgIENvbG9yTWF0
cml4VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBzZXRUeXBl
KENvbG9yTWF0cml4VHlwZSk7CkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBjYWxjdWxhdGVIdWVSb3RhdGVDb21wb25lbnRzKGZsb2F0KiBjb21wb25lbnRzLCBmbG9h
dCB2YWx1ZSk7CiAgICAgc3RhdGljIFZlY3RvcjxmbG9hdD4gbm9ybWFsaXplZEZsb2F0cyhjb25z
dCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUNvbG9yTWF0cml4Pj4gZGVjb2RlKERlY29kZXIm
KTsKKwogcHJpdmF0ZToKICAgICBGRUNvbG9yTWF0cml4KENvbG9yTWF0cml4VHlwZSwgVmVjdG9y
PGZsb2F0PiYmKTsKIApAQCAtNjYsNiArNjksNDUgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Zmxv
YXQ+IG1fdmFsdWVzOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVDb2xv
ck1hdHJpeDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBtX3R5cGU7CisgICAgZW5jb2RlciA8PCBtX3ZhbHVlczsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFQ29sb3JNYXRyaXg+PiBGRUNvbG9yTWF0cml4
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbG9yTWF0
cml4VHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Zmxv
YXQ+PiB2YWx1ZXM7CisgICAgZGVjb2RlciA+PiB2YWx1ZXM7CisgICAgaWYgKCF2YWx1ZXMpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVDb2xvck1hdHJpeDo6
Y3JlYXRlKCp0eXBlLCBXVEZNb3ZlKCp2YWx1ZXMpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpDb2xvck1hdHJpeFR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAorICAgICAgICBXZWJDb3JlOjpDb2xvck1hdHJpeFR5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6
RkVDT0xPUk1BVFJJWF9UWVBFX1VOS05PV04sCisgICAgICAgIFdlYkNvcmU6OkZFQ09MT1JNQVRS
SVhfVFlQRV9NQVRSSVgsCisgICAgICAgIFdlYkNvcmU6OkZFQ09MT1JNQVRSSVhfVFlQRV9TQVRV
UkFURSwKKyAgICAgICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX0hVRVJPVEFURSwKKyAg
ICAgICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRPQUxQSEEKKyAgICA+
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklM
VEVSX0VGRkVDVChGRUNvbG9yTWF0cml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaAppbmRl
eCBjY2FmNDU5YjAzZTNmMGU0ZTYwOWJhZjM5Mjc0MTEwNzU1YWZhMjM3Li4wNDlkNGYyMDZiOGI0
NjE2NjhiNzAyNDhlN2UwYjU0ZTUxNTlmNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIu
aApAQCAtNDgsMTcgKzQ4LDIzIEBAIHN0cnVjdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIHsK
ICAgICBmbG9hdCBvZmZzZXQgeyAwIH07CiAKICAgICBWZWN0b3I8ZmxvYXQ+IHRhYmxlVmFsdWVz
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCiBjbGFzcyBG
RUNvbXBvbmVudFRyYW5zZmVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxGRUNvbXBvbmVudFRyYW5zZmVyPiBjcmVhdGUoY29uc3QgQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbiYgcmVkRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYg
Z3JlZW5GdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29u
c3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmPEZFQ29tcG9uZW50VHJhbnNmZXI+IGNyZWF0ZShjb25zdCBDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uJiBncmVlbkZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5j
LCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBhbHBoYUZ1bmMpOwogCiAgICAgQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbiByZWRGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVk
RnVuY3Rpb247IH0KICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIGdyZWVuRnVuY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2dyZWVuRnVuY3Rpb247IH0KICAgICBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uIGJsdWVGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYmx1ZUZ1bmN0aW9uOyB9
CiAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBhbHBoYUZ1bmN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9hbHBoYUZ1bmN0aW9uOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFQ29tcG9uZW50VHJhbnNmZXI+PiBkZWNvZGUoRGVj
b2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQ29tcG9uZW50VHJhbnNmZXIoY29uc3QgQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbiYgZ3JlZW5GdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVu
YywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKIApAQCAtNzYs
NiArODIsMTExIEBAIHByaXZhdGU6CiAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBtX2Fs
cGhhRnVuY3Rpb247CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IHR5cGU7CisgICAgZW5jb2RlciA8PCBzbG9wZTsKKyAgICBlbmNvZGVyIDw8
IGludGVyY2VwdDsKKyAgICBlbmNvZGVyIDw8IGFtcGxpdHVkZTsKKyAgICBlbmNvZGVyIDw8IGV4
cG9uZW50OworICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgIGVuY29kZXIgPDwgdGFibGVWYWx1
ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPENvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb24+IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb246OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJUeXBl
PiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzbG9wZTsKKyAg
ICBkZWNvZGVyID4+IHNsb3BlOworICAgIGlmICghc2xvcGUpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBpbnRlcmNlcHQ7CisgICAgZGVj
b2RlciA+PiBpbnRlcmNlcHQ7CisgICAgaWYgKCFpbnRlcmNlcHQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBhbXBsaXR1ZGU7CisgICAg
ZGVjb2RlciA+PiBhbXBsaXR1ZGU7CisgICAgaWYgKCFhbXBsaXR1ZGUpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBleHBvbmVudDsKKyAg
ICBkZWNvZGVyID4+IGV4cG9uZW50OworICAgIGlmICghZXhwb25lbnQpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvZmZzZXQ7CisgICAg
ZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgaWYgKCFvZmZzZXQpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxmbG9hdD4+IHRhYmxlVmFsdWVz
OworICAgIGRlY29kZXIgPj4gdGFibGVWYWx1ZXM7CisgICAgaWYgKCF0YWJsZVZhbHVlcykKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgKnR5cGUsICpzbG9w
ZSwgKmludGVyY2VwdCwgKmFtcGxpdHVkZSwgKmV4cG9uZW50LCAqb2Zmc2V0LCBXVEZNb3ZlKCp0
YWJsZVZhbHVlcykgfSB9OworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUNv
bXBvbmVudFRyYW5zZmVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IG1fcmVkRnVuY3Rpb247CisgICAgZW5jb2RlciA8PCBtX2dyZWVuRnVuY3Rpb247
CisgICAgZW5jb2RlciA8PCBtX2JsdWVGdW5jdGlvbjsKKyAgICBlbmNvZGVyIDw8IG1fYWxwaGFG
dW5jdGlvbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVm
PEZFQ29tcG9uZW50VHJhbnNmZXI+PiBGRUNvbXBvbmVudFRyYW5zZmVyOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b24+IHJlZEZ1bmN0aW9uOworICAgIGRlY29kZXIgPj4gcmVkRnVuY3Rpb247CisgICAgaWYgKCFy
ZWRGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4gZ3JlZW5GdW5jdGlvbjsKKyAgICBkZWNv
ZGVyID4+IGdyZWVuRnVuY3Rpb247CisgICAgaWYgKCFncmVlbkZ1bmN0aW9uKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uPiBibHVlRnVuY3Rpb247CisgICAgZGVjb2RlciA+PiBibHVlRnVuY3Rpb247Cisg
ICAgaWYgKCFibHVlRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IGFscGhhRnVuY3Rpb247
CisgICAgZGVjb2RlciA+PiBhbHBoYUZ1bmN0aW9uOworICAgIGlmICghYWxwaGFGdW5jdGlvbikK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRUNvbXBvbmVudFRy
YW5zZmVyOjpjcmVhdGUoKnJlZEZ1bmN0aW9uLCAqZ3JlZW5GdW5jdGlvbiwgKmJsdWVGdW5jdGlv
biwgKmFscGhhRnVuY3Rpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbXBv
bmVudFRyYW5zZmVyVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OkNvbXBvbmVudFRyYW5zZmVyVHlwZSwKKworICAgICAgICBXZWJDb3JlOjpG
RUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfVU5LTk9XTiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01Q
T05FTlRUUkFOU0ZFUl9UWVBFX0lERU5USVRZLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPTkVO
VFRSQU5TRkVSX1RZUEVfVEFCTEUsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNG
RVJfVFlQRV9ESVNDUkVURSwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9U
WVBFX0xJTkVBUiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0dB
TU1BCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb21wb25lbnRUcmFuc2ZlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAppbmRl
eCA1M2FlMGQ2YTI2NGUyMGFmNjY1OGNmZWFmOThhNzQ3MmQ2YzhmZmZmLi5jNDA4MzQwYWFkY2Mz
ZjllYTFmMmU5ZDhiNmFiOWQzNTMxNzQ2MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCkBAIC00MCw3ICs0MCw3
IEBAIGVudW0gQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSB7CiAKIGNsYXNzIEZFQ29tcG9zaXRlIDog
cHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRUNvbXBvc2l0
ZT4gY3JlYXRlKGNvbnN0IENvbXBvc2l0ZU9wZXJhdGlvblR5cGUmLCBmbG9hdCBrMSwgZmxvYXQg
azIsIGZsb2F0IGszLCBmbG9hdCBrNCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxG
RUNvbXBvc2l0ZT4gY3JlYXRlKGNvbnN0IENvbXBvc2l0ZU9wZXJhdGlvblR5cGUmLCBmbG9hdCBr
MSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCk7CiAKICAgICBDb21wb3NpdGVPcGVyYXRp
b25UeXBlIG9wZXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGJvb2wgc2V0
T3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdGlvblR5cGUpOwpAQCAtNTcsNiArNTcsOSBAQCBwdWJs
aWM6CiAgICAgZmxvYXQgazQoKSBjb25zdCB7IHJldHVybiBtX2s0OyB9CiAgICAgYm9vbCBzZXRL
NChmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVmPEZFQ29tcG9zaXRlPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAg
ICBGRUNvbXBvc2l0ZShjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiwgZmxvYXQgazEsIGZs
b2F0IGsyLCBmbG9hdCBrMywgZmxvYXQgazQpOwogCkBAIC04NCw2ICs4Nyw2NiBAQCBwcml2YXRl
OgogICAgIGZsb2F0IG1fazQ7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBG
RUNvbXBvc2l0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBtX3R5cGU7CisgICAgZW5jb2RlciA8PCBtX2sxOworICAgIGVuY29kZXIgPDwgbV9rMjsK
KyAgICBlbmNvZGVyIDw8IG1fazM7CisgICAgZW5jb2RlciA8PCBtX2s0OworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVDb21wb3NpdGU+PiBGRUNvbXBv
c2l0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxDb21w
b3NpdGVPcGVyYXRpb25UeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBpZiAo
IXR5cGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFs
PGZsb2F0PiBrMTsKKyAgICBkZWNvZGVyID4+IGsxOworICAgIGlmICghazEpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrMjsKKyAgICBk
ZWNvZGVyID4+IGsyOworICAgIGlmICghazIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrMzsKKyAgICBkZWNvZGVyID4+IGszOworICAg
IGlmICghazMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBrNDsKKyAgICBkZWNvZGVyID4+IGs0OworICAgIGlmICghazQpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVDb21wb3NpdGU6OmNyZWF0ZSgq
dHlwZSwgKmsxLCAqazIsICprMywgKms0KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpDb21wb3NpdGVPcGVyYXRpb25UeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0aW9uVHlwZSwKKworICAgICAgICBX
ZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9VTktOT1dOLAorICAgICAgICBXZWJDb3JlOjpG
RUNPTVBPU0lURV9PUEVSQVRPUl9PVkVSLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9P
UEVSQVRPUl9JTiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFUT1JfT1VULAor
ICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9BVE9QLAorICAgICAgICBXZWJD
b3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9YT1IsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9T
SVRFX09QRVJBVE9SX0FSSVRITUVUSUMsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09Q
RVJBVE9SX0xJR0hURVIKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbXBvc2l0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJp
eC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZl
TWF0cml4LmgKaW5kZXggZTFhMTljY2Y0YzQzMDM3OTQzYTM1ZDhmMTRjMTc2NTVhNWJlZWJmMy4u
NzU0MWYzZTRlZGE4YTNkNzlhNzQyZWNiMDBlYzRkZDU0ZTc3MjQxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZl
TWF0cml4LmgKQEAgLTM4LDcgKzM4LDcgQEAgZW51bSBjbGFzcyBFZGdlTW9kZVR5cGUgewogCiBj
bGFzcyBGRUNvbnZvbHZlTWF0cml4IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxGRUNvbnZvbHZlTWF0cml4PiBjcmVhdGUoY29uc3QgSW50U2l6ZSYga2Vy
bmVsU2l6ZSwgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywgY29uc3QgSW50UG9pbnQmIHRhcmdl
dE9mZnNldCwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50JiBrZXJuZWxVbml0TGVuZ3Ro
LCBib29sIHByZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIGtlcm5lbE1hdHJpeCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUNvbnZvbHZlTWF0cml4PiBjcmVhdGUo
Y29uc3QgSW50U2l6ZSYga2VybmVsU2l6ZSwgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywgY29u
c3QgSW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50
JiBrZXJuZWxVbml0TGVuZ3RoLCBib29sIHByZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9h
dD4mIGtlcm5lbE1hdHJpeCk7CiAKICAgICBJbnRTaXplIGtlcm5lbFNpemUoKSBjb25zdCB7IHJl
dHVybiBtX2tlcm5lbFNpemU7IH0KICAgICB2b2lkIHNldEtlcm5lbFNpemUoY29uc3QgSW50U2l6
ZSYpOwpAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBwcmVzZXJ2ZUFscGhhKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFscGhhOyB9CiAgICAgYm9vbCBzZXRQcmVzZXJ2ZUFs
cGhhKGJvb2wpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFJlZjxGRUNvbnZvbHZlTWF0cml4Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0
ZToKICAgICBGRUNvbnZvbHZlTWF0cml4KGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUsIGZsb2F0
IGRpdmlzb3IsIGZsb2F0IGJpYXMsIGNvbnN0IEludFBvaW50JiB0YXJnZXRPZmZzZXQsIEVkZ2VN
b2RlVHlwZSwgY29uc3QgRmxvYXRQb2ludCYga2VybmVsVW5pdExlbmd0aCwgYm9vbCBwcmVzZXJ2
ZUFscGhhLCBjb25zdCBWZWN0b3I8ZmxvYXQ+JiBrZXJuZWxNYXRyaXgpOwogCkBAIC04Myw2ICs4
Niw4MCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxmbG9hdD4gbV9rZXJuZWxNYXRyaXg7CiB9Owog
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUNvbnZvbHZlTWF0cml4OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fa2VybmVsU2l6ZTsK
KyAgICBlbmNvZGVyIDw8IG1fZGl2aXNvcjsKKyAgICBlbmNvZGVyIDw8IG1fYmlhczsKKyAgICBl
bmNvZGVyIDw8IG1fdGFyZ2V0T2Zmc2V0OworICAgIGVuY29kZXIgPDwgbV9lZGdlTW9kZTsKKyAg
ICBlbmNvZGVyIDw8IG1fa2VybmVsVW5pdExlbmd0aDsKKyAgICBlbmNvZGVyIDw8IG1fcHJlc2Vy
dmVBbHBoYTsKKyAgICBlbmNvZGVyIDw8IG1fa2VybmVsTWF0cml4OworfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVDb252b2x2ZU1hdHJpeD4+IEZFQ29u
dm9sdmVNYXRyaXg6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4ga2VybmVsU2l6ZTsKKyAgICBkZWNvZGVyID4+IGtlcm5lbFNpemU7CisgICAg
aWYgKCFrZXJuZWxTaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gZGl2aXNvcjsKKyAgICBkZWNvZGVyID4+IGRpdmlzb3I7CisgICAg
aWYgKCFkaXZpc29yKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxmbG9hdD4gYmlhczsKKyAgICBkZWNvZGVyID4+IGJpYXM7CisgICAgaWYgKCFiaWFz
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxJbnRQ
b2ludD4gdGFyZ2V0T2Zmc2V0OworICAgIGRlY29kZXIgPj4gdGFyZ2V0T2Zmc2V0OworICAgIGlm
ICghdGFyZ2V0T2Zmc2V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3Rk
OjpvcHRpb25hbDxFZGdlTW9kZVR5cGU+IGVkZ2VNb2RlOworICAgIGRlY29kZXIgPj4gZWRnZU1v
ZGU7CisgICAgaWYgKCFlZGdlTW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4ga2VybmVsVW5pdExlbmd0aDsKKyAgICBkZWNv
ZGVyID4+IGtlcm5lbFVuaXRMZW5ndGg7CisgICAgaWYgKCFrZXJuZWxVbml0TGVuZ3RoKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBwcmVz
ZXJ2ZUFscGhhOworICAgIGRlY29kZXIgPj4gcHJlc2VydmVBbHBoYTsKKyAgICBpZiAoIWtlcm5l
bFVuaXRMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxmbG9hdD4+IGtlcm5lbE1hdHJpeDsKKyAgICBkZWNvZGVyID4+IGtlcm5l
bE1hdHJpeDsKKyAgICBpZiAoIWtlcm5lbE1hdHJpeCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHJldHVybiBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGUoKmtlcm5lbFNpemUs
ICpkaXZpc29yLCAqYmlhcywgKnRhcmdldE9mZnNldCwgKmVkZ2VNb2RlLCAqa2VybmVsVW5pdExl
bmd0aCwgKnByZXNlcnZlQWxwaGEsIFdURk1vdmUoKmtlcm5lbE1hdHJpeCkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OkVkZ2VNb2RlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZSwKKworICAgICAgICBX
ZWJDb3JlOjpFZGdlTW9kZVR5cGU6OlVua25vd24sCisgICAgICAgIFdlYkNvcmU6OkVkZ2VNb2Rl
VHlwZTo6RHVwbGljYXRlLAorICAgICAgICBXZWJDb3JlOjpFZGdlTW9kZVR5cGU6OldyYXAsCisg
ICAgICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZTo6Tm9uZQorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29u
dm9sdmVNYXRyaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKaW5kZXggMzAyNGQ2NTIxYjM5ZDQy
Y2E0YTIwZTc1NzdkOTQxNDFmZWYyMDFhNy4uYTJkMTI1OGUzYWQ2N2M1YjliNGZhYzJkNDVjMjIx
ODlhNjhkMDhkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaApAQCAtMzcsMTAgKzM3LDE4IEBA
IHB1YmxpYzoKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
VEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOwogCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFRGlm
ZnVzZUxpZ2h0aW5nPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRURpZmZ1
c2VMaWdodGluZyhjb25zdCBDb2xvciYgbGlnaHRpbmdDb2xvciwgZmxvYXQgc3VyZmFjZVNjYWxl
LCBmbG9hdCBkaWZmdXNlQ29uc3RhbnQsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhYLCBmbG9hdCBr
ZXJuZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNlPiYmKTsKIH07CiAKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRURpZmZ1c2VMaWdodGluZz4+IEZFRGlm
ZnVzZUxpZ2h0aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4gRkVM
aWdodGluZzo6ZGVjb2RlPERlY29kZXIsIEZFRGlmZnVzZUxpZ2h0aW5nPihkZWNvZGVyKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoRkVEaWZmdXNlTGlnaHRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKaW5kZXgg
NTNiMDlkNGQ2NjhjN2UyM2EzMDJkMWQzMmRmMmM4ZTg4ODE1MTliYS4uMzgyNmFhY2NiZjI3Y2Nj
MjgxZGE3ZTc0MWIxNDVlYzAwZmVhZDUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaApAQCAt
MzcsNyArMzcsNyBAQCBlbnVtIENoYW5uZWxTZWxlY3RvclR5cGUgewogCiBjbGFzcyBGRURpc3Bs
YWNlbWVudE1hcCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8RkVEaXNwbGFjZW1lbnRNYXA+IGNyZWF0ZShDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVs
U2VsZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQgc2Nh
bGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVEaXNwbGFjZW1lbnRNYXA+IGNy
ZWF0ZShDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5uZWxTZWxlY3Rv
clR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQgc2NhbGUpOwogCiAgICAgQ2hhbm5lbFNlbGVj
dG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV94Q2hhbm5lbFNlbGVj
dG9yOyB9CiAgICAgYm9vbCBzZXRYQ2hhbm5lbFNlbGVjdG9yKGNvbnN0IENoYW5uZWxTZWxlY3Rv
clR5cGUpOwpAQCAtNDgsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgc2NhbGUoKSBjb25z
dCB7IHJldHVybiBtX3NjYWxlOyB9CiAgICAgYm9vbCBzZXRTY2FsZShmbG9hdCk7CiAKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFRGlzcGxh
Y2VtZW50TWFwPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRURpc3BsYWNl
bWVudE1hcChDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5uZWxTZWxl
Y3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQpOwogCkBAIC02NSw2ICs2OCw1MSBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fc2NhbGU7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBGRURpc3BsYWNlbWVudE1hcDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCBtX3hDaGFubmVsU2VsZWN0b3I7CisgICAgZW5jb2RlciA8PCBt
X3lDaGFubmVsU2VsZWN0b3I7CisgICAgZW5jb2RlciA8PCBtX3NjYWxlOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVEaXNwbGFjZW1lbnRNYXA+PiBG
RURpc3BsYWNlbWVudE1hcDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpv
cHRpb25hbDxDaGFubmVsU2VsZWN0b3JUeXBlPiB4Q2hhbm5lbFNlbGVjdG9yOworICAgIGRlY29k
ZXIgPj4geENoYW5uZWxTZWxlY3RvcjsKKyAgICBpZiAoIXhDaGFubmVsU2VsZWN0b3IpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPENoYW5uZWxTZWxl
Y3RvclR5cGU+IHlDaGFubmVsU2VsZWN0b3I7CisgICAgZGVjb2RlciA+PiB5Q2hhbm5lbFNlbGVj
dG9yOworICAgIGlmICgheUNoYW5uZWxTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNjYWxlOworICAgIGRlY29kZXIgPj4g
c2NhbGU7CisgICAgaWYgKCFzY2FsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBGRURpc3BsYWNlbWVudE1hcDo6Y3JlYXRlKCp4Q2hhbm5lbFNlbGVjdG9yLCAq
eUNoYW5uZWxTZWxlY3RvciwgKnNjYWxlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpDaGFubmVsU2VsZWN0b3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgV2ViQ29yZTo6Q2hhbm5lbFNlbGVjdG9yVHlwZSwKKworICAgICAgICBXZWJDb3Jl
OjpDSEFOTkVMX1VOS05PV04sCisgICAgICAgIFdlYkNvcmU6OkNIQU5ORUxfUiwKKyAgICAgICAg
V2ViQ29yZTo6Q0hBTk5FTF9HLAorICAgICAgICBXZWJDb3JlOjpDSEFOTkVMX0IsCisgICAgICAg
IFdlYkNvcmU6OkNIQU5ORUxfQQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFRGlzcGxhY2VtZW50TWFwKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURy
b3BTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
cm9wU2hhZG93LmgKaW5kZXggNThmNmU3OTZjNzkzOTE2YTExNmQyNDZhNDE1NTQ4ZmU0NjZkMDcz
Yy4uNGJmZDYwODQ4YjFhODI0NzI4ODRhYmJkMDgyNGI3YTc2ZWQwZDQxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRv
dy5oCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEZF
RHJvcFNoYWRvdyA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8RkVEcm9wU2hhZG93PiBjcmVhdGUoZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgs
IGZsb2F0IGR5LCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVEcm9wU2hhZG93PiBjcmVhdGUoZmxv
YXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgsIGZsb2F0IGR5LCBjb25zdCBDb2xvciYgc2hh
ZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkpOwogCiAgICAgZmxvYXQgc3RkRGV2aWF0aW9u
WCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RkWDsgfQogICAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uWChm
bG9hdCBzdGRYKSB7IG1fc3RkWCA9IHN0ZFg7IH0KQEAgLTQ3LDYgKzQ3LDkgQEAgcHVibGljOgog
ICAgIGZsb2F0IHNoYWRvd09wYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3NoYWRvd09wYWNpdHk7
IH0KICAgICB2b2lkIHNldFNoYWRvd09wYWNpdHkoZmxvYXQgc2hhZG93T3BhY2l0eSkgeyBtX3No
YWRvd09wYWNpdHkgPSBzaGFkb3dPcGFjaXR5OyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFRHJvcFNoYWRvdz4+IGRlY29kZShEZWNv
ZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVEcm9wU2hhZG93KGZsb2F0IHN0ZFgsIGZsb2F0IHN0
ZFksIGZsb2F0IGR4LCBmbG9hdCBkeSwgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yLCBmbG9hdCBz
aGFkb3dPcGFjaXR5KTsKIApAQCAtNjUsNyArNjgsNTQgQEAgcHJpdmF0ZToKICAgICBDb2xvciBt
X3NoYWRvd0NvbG9yOwogICAgIGZsb2F0IG1fc2hhZG93T3BhY2l0eTsKIH07Ci0gICAgCisKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFRHJvcFNoYWRvdzo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3N0ZFg7CisgICAgZW5jb2RlciA8
PCBtX3N0ZFk7CisgICAgZW5jb2RlciA8PCBtX2R4OworICAgIGVuY29kZXIgPDwgbV9keTsKKyAg
ICBlbmNvZGVyIDw8IG1fc2hhZG93Q29sb3I7CisgICAgZW5jb2RlciA8PCBtX3NoYWRvd09wYWNp
dHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRURy
b3BTaGFkb3c+PiBGRURyb3BTaGFkb3c6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN0ZFg7CisgICAgZGVjb2RlciA+PiBzdGRYOworICAgIGlm
ICghc3RkWCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9u
YWw8ZmxvYXQ+IHN0ZFk7CisgICAgZGVjb2RlciA+PiBzdGRZOworICAgIGlmICghc3RkWSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR4
OworICAgIGRlY29kZXIgPj4gZHg7CisgICAgaWYgKCFkeCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR5OworICAgIGRlY29kZXIgPj4g
ZHk7CisgICAgaWYgKCFkeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0
ZDo6b3B0aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOworICAgIGRlY29kZXIgPj4gc2hhZG93Q29s
b3I7CisgICAgaWYgKCFzaGFkb3dDb2xvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNoYWRvd09wYWNpdHk7CisgICAgZGVjb2RlciA+
PiBzaGFkb3dPcGFjaXR5OworICAgIGlmICghc2hhZG93T3BhY2l0eSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRURyb3BTaGFkb3c6OmNyZWF0ZSgqc3RkWCwg
KnN0ZFksICpkeCwgKmR5LCAqc2hhZG93Q29sb3IsICpzaGFkb3dPcGFjaXR5KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZF
Q1QoRkVEcm9wU2hhZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCA4ZmMxZDk3YTgzMjE2NjAyOWZiZWY5OTI1YzJlNWY3
YWM2NzEyODc0Li4wYTY1YzY4MjM0MTBlZWZiZTA4ZTY2OTM3ODA4ZTFhOTdhZTRmNmI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
aApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFRmxvb2Qg
OiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFRmxvb2Q+
IGNyZWF0ZShjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5KTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFRmxvb2Q+IGNyZWF0ZShjb25zdCBDb2xvciYg
Zmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5KTsKIAogICAgIGNvbnN0IENvbG9yJiBmbG9v
ZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9mbG9vZENvbG9yOyB9CiAgICAgYm9vbCBzZXRGbG9v
ZENvbG9yKGNvbnN0IENvbG9yJik7CkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldE9wZXJhdGluZ0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgb3Zl
cnJpZGUgeyB9CiAjZW5kaWYKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxSZWY8RkVGbG9vZD4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6
CiAgICAgRkVGbG9vZChjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5
KTsKIApAQCAtNTYsNiArNTksMjkgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2Zsb29kT3BhY2l0
eTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFRmxvb2Q6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9mbG9vZENvbG9yOwor
ICAgIGVuY29kZXIgPDwgbV9mbG9vZE9wYWNpdHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRUZsb29kPj4gRkVGbG9vZDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxDb2xvcj4gZmxvb2RDb2xvcjsKKyAgICBk
ZWNvZGVyID4+IGZsb29kQ29sb3I7CisgICAgaWYgKCFmbG9vZENvbG9yKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZmxvb2RPcGFjaXR5
OworICAgIGRlY29kZXIgPj4gZmxvb2RPcGFjaXR5OworICAgIGlmICghZmxvb2RPcGFjaXR5KQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFRmxvb2Q6OmNyZWF0
ZSgqZmxvb2RDb2xvciwgKmZsb29kT3BhY2l0eSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFRmxvb2QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3Np
YW5CbHVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmgKaW5kZXggODcxODUzZGY0OTEyMDQ0Nzg5OGM4YmI1MjVmYjQwNGRmZDVmMzE1
OS4uOTU2N2EyZjA0YmNlOTIwNTVhMzdlNmNiNWNkMDhhZjRlZTdhMjJmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lh
bkJsdXIuaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZF
R2F1c3NpYW5CbHVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxGRUdhdXNzaWFuQmx1cj4gY3JlYXRlKGZsb2F0IHgsIGZsb2F0IHksIEVkZ2VNb2RlVHlw
ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUdhdXNzaWFuQmx1cj4gY3JlYXRl
KGZsb2F0IHgsIGZsb2F0IHksIEVkZ2VNb2RlVHlwZSk7CiAKICAgICBmbG9hdCBzdGREZXZpYXRp
b25YKCkgY29uc3QgeyByZXR1cm4gbV9zdGRYOyB9CiAgICAgdm9pZCBzZXRTdGREZXZpYXRpb25Y
KGZsb2F0KTsKQEAgLTQ0LDYgKzQ0LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBJbnRTaXplIGNh
bGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShGbG9hdFNpemUgc3RkRGV2aWF0aW9uKTsKICAgICBz
dGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVPdXRzZXRTaXplKEZsb2F0U2l6ZSBzdGREZXZpYXRpb24p
OwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJl
ZjxGRUdhdXNzaWFuQmx1cj4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVH
YXVzc2lhbkJsdXIoZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVUeXBlKTsKIApAQCAtNjIsNiAr
NjUsMzUgQEAgcHJpdmF0ZToKICAgICBFZGdlTW9kZVR5cGUgbV9lZGdlTW9kZTsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFR2F1c3NpYW5CbHVyOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fc3RkWDsKKyAgICBlbmNvZGVy
IDw8IG1fc3RkWTsKKyAgICBlbmNvZGVyIDw8IG1fZWRnZU1vZGU7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRUdhdXNzaWFuQmx1cj4+IEZFR2F1c3Np
YW5CbHVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBzdGRYOworICAgIGRlY29kZXIgPj4gc3RkWDsKKyAgICBpZiAoIXN0ZFgpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzdGRZOwor
ICAgIGRlY29kZXIgPj4gc3RkWTsKKyAgICBpZiAoIXN0ZFkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEVkZ2VNb2RlVHlwZT4gZWRnZU1vZGU7Cisg
ICAgZGVjb2RlciA+PiBlZGdlTW9kZTsKKyAgICBpZiAoIWVkZ2VNb2RlKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFR2F1c3NpYW5CbHVyOjpjcmVhdGUoKnN0
ZFgsICpzdGRZLCAqZWRnZU1vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUdhdXNzaWFuQmx1cikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGlu
Zy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5n
LmgKaW5kZXggZGUwYjM4NmExMWM3MTU4YzUzOGJjYjRhODAyYzdjOGNmMGI1Njg3Mi4uMzFjMmFh
YWJkM2M1YjE4YzBkY2I2MDIxOTg5YjFhMGIxNmQ3NzEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKQEAgLTU1LDYg
KzU1LDkgQEAgcHVibGljOgogCiAgICAgY29uc3QgTGlnaHRTb3VyY2UmIGxpZ2h0U291cmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9saWdodFNvdXJjZS5nZXQoKTsgfQogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXIsIGNsYXNzIENsYXNzTmFtZT4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPENs
YXNzTmFtZT4+IGRlY29kZShEZWNvZGVyJik7CisKIHByb3RlY3RlZDoKICAgICBGRUxpZ2h0aW5n
KFR5cGUsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZs
b2F0IGRpZmZ1c2VDb25zdGFudCwgZmxvYXQgc3BlY3VsYXJDb25zdGFudCwgZmxvYXQgc3BlY3Vs
YXJFeHBvbmVudCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5n
dGhZLCBSZWY8TGlnaHRTb3VyY2U+JiYpOwogCkBAIC03Nyw0ICs4MCw1OSBAQCBwcm90ZWN0ZWQ6
CiAgICAgUmVmPExpZ2h0U291cmNlPiBtX2xpZ2h0U291cmNlOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgRkVMaWdodGluZzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2xpZ2h0aW5nQ29sb3I7CisgICAgZW5jb2RlciA8PCBt
X3N1cmZhY2VTY2FsZTsKKyAgICBlbmNvZGVyIDw8IG1fZGlmZnVzZUNvbnN0YW50OworICAgIGVu
Y29kZXIgPDwgbV9zcGVjdWxhckNvbnN0YW50OworICAgIGVuY29kZXIgPDwgbV9zcGVjdWxhckV4
cG9uZW50OworICAgIGVuY29kZXIgPDwgbV9rZXJuZWxVbml0TGVuZ3RoWDsKKyAgICBlbmNvZGVy
IDw8IG1fa2VybmVsVW5pdExlbmd0aFk7CisgICAgLy8gRklYTUU6IGVuY29kZSBtX2xpZ2h0U291
cmNlLgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyLCBjbGFzcyBDbGFzc05hbWU+CitzdGQ6
Om9wdGlvbmFsPFJlZjxDbGFzc05hbWU+PiBGRUxpZ2h0aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbG9yPiBsaWdodGluZ0NvbG9yOworICAgIGRl
Y29kZXIgPj4gbGlnaHRpbmdDb2xvcjsKKyAgICBpZiAoIWxpZ2h0aW5nQ29sb3IpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzdXJmYWNl
U2NhbGU7CisgICAgZGVjb2RlciA+PiBzdXJmYWNlU2NhbGU7CisgICAgaWYgKCFzdXJmYWNlU2Nh
bGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBkaWZmdXNlQ29uc3RhbnQ7CisgICAgZGVjb2RlciA+PiBkaWZmdXNlQ29uc3RhbnQ7Cisg
ICAgaWYgKCFkaWZmdXNlQ29uc3RhbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzcGVjdWxhckNvbnN0YW50OworICAgIGRlY29kZXIg
Pj4gc3BlY3VsYXJDb25zdGFudDsKKyAgICBpZiAoIXNwZWN1bGFyQ29uc3RhbnQpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzcGVjdWxh
ckV4cG9uZW50OworICAgIGRlY29kZXIgPj4gc3BlY3VsYXJFeHBvbmVudDsKKyAgICBpZiAoIXNw
ZWN1bGFyRXhwb25lbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGZsb2F0PiBrZXJuZWxVbml0TGVuZ3RoWDsKKyAgICBkZWNvZGVyID4+IGtlcm5l
bFVuaXRMZW5ndGhYOworICAgIGlmICgha2VybmVsVW5pdExlbmd0aFgpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrZXJuZWxVbml0TGVu
Z3RoWTsKKyAgICBkZWNvZGVyID4+IGtlcm5lbFVuaXRMZW5ndGhZOworICAgIGlmICgha2VybmVs
VW5pdExlbmd0aFkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAvLyBGSVhN
RTogZGVjb2RlIG1fbGlnaHRTb3VyY2UuCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKaW5kZXggOTIzZDNlOWU1ZmFmZDBlMDQ3ODNm
MzBmZGExODdhYTZhMmI2NzY1OS4uOTU5YjQ4YWJlMDg2ODE2YzM1OGUzYzg2NDlhMTkzYmIwY2Vl
ZWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwCkBAIC0yOSwxMyArMjksMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1SZWY8RkVNZXJnZT4gRkVNZXJnZTo6Y3JlYXRlKCkKK1JlZjxGRU1lcmdlPiBGRU1lcmdl
OjpjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZFZmZlY3RJbnB1dHMpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRkVNZXJnZSgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRU1lcmdl
KG51bWJlck9mRWZmZWN0SW5wdXRzKSk7CiB9CiAKLUZFTWVyZ2U6OkZFTWVyZ2UoKQorRkVNZXJn
ZTo6RkVNZXJnZSh1bnNpZ25lZCBudW1iZXJPZkVmZmVjdElucHV0cykKICAgICA6IEZpbHRlckVm
ZmVjdChGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFTWVyZ2UpCisgICAgLCBtX251bWJlck9mRWZmZWN0
SW5wdXRzKG51bWJlck9mRWZmZWN0SW5wdXRzKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCmluZGV4IDY0ZWQ0YTc3YjFl
MDczZTBjNjFkZDU1M2YwMDgyMGIxZjBmYjY3MTguLjgzYjBmMWY0NDVmZGExODc3YzFmNzM5ZTEx
YWY3NmZmODhhOTU2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNZXJnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNZXJnZS5oCkBAIC0yOCwxNiArMjgsMzggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBGRU1lcmdlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxGRU1lcmdlPiBjcmVhdGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPEZFTWVyZ2U+IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkVmZmVjdElucHV0cyk7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZF
TWVyZ2U+PiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIEZFTWVyZ2UoKTsKKyAg
ICBGRU1lcmdlKHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5wdXRzKTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJp
ZGU7CisKKyAgICB1bnNpZ25lZCBtX251bWJlck9mRWZmZWN0SW5wdXRzOwogfTsKIAordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVNZXJnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX251bWJlck9mRWZmZWN0SW5wdXRzOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVNZXJnZT4+IEZFTWVy
Z2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IG51bWJlck9mRWZmZWN0SW5wdXRzOworICAgIGRlY29kZXIgPj4gbnVtYmVyT2ZFZmZlY3RJ
bnB1dHM7CisgICAgaWYgKCFudW1iZXJPZkVmZmVjdElucHV0cykKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRU1lcmdlOjpjcmVhdGUoKm51bWJlck9mRWZmZWN0
SW5wdXRzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVNZXJnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCmluZGV4IDIyYTE1MjEx
ZGZhMTZmYmQyMGY4YTBjMTAzYmZiMDczZjgyMTQwY2IuLjgyNWJlOWU0ZGU3OTdkNjYzMTg3NmNl
OTFhM2VlOWE3YTNkZDZiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtMzQsNyArMzQsNyBAQCBlbnVt
IGNsYXNzIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgewogCiBjbGFzcyBGRU1vcnBob2xvZ3kgOiBw
dWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFTW9ycGhvbG9n
eT4gY3JlYXRlKE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJh
ZGl1c1kpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVNb3JwaG9sb2d5PiBjcmVh
dGUoTW9ycGhvbG9neU9wZXJhdG9yVHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7
CiAKICAgICBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIG1vcnBob2xvZ3lPcGVyYXRvcigpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGJvb2wgc2V0TW9ycGhvbG9neU9wZXJhdG9yKE1vcnBo
b2xvZ3lPcGVyYXRvclR5cGUpOwpAQCAtNDUsNiArNDUsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQg
cmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQogICAgIGJvb2wgc2V0UmFkaXVz
WShmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVmPEZFTW9ycGhvbG9neT4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAg
ICAgRkVNb3JwaG9sb2d5KE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1c1gsIGZs
b2F0IHJhZGl1c1kpOwogCkBAIC02MSw2ICs2NCw0OSBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1f
cmFkaXVzWTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFTW9ycGhvbG9n
eTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3R5
cGU7CisgICAgZW5jb2RlciA8PCBtX3JhZGl1c1g7CisgICAgZW5jb2RlciA8PCBtX3JhZGl1c1k7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRU1vcnBo
b2xvZ3k+PiBGRU1vcnBob2xvZ3k6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0
ZDo6b3B0aW9uYWw8TW9ycGhvbG9neU9wZXJhdG9yVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+
IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gcmFkaXVzWDsKKyAgICBkZWNvZGVyID4+IHJhZGl1c1g7
CisgICAgaWYgKCFyYWRpdXNYKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxmbG9hdD4gcmFkaXVzWTsKKyAgICBkZWNvZGVyID4+IHJhZGl1c1k7Cisg
ICAgaWYgKCFyYWRpdXNZKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0
dXJuIEZFTW9ycGhvbG9neTo6Y3JlYXRlKCp0eXBlLCAqcmFkaXVzWCwgKnJhZGl1c1kpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpNb3JwaG9sb2d5
T3BlcmF0b3JUeXBlLAorCisgICAgICAgIFdlYkNvcmU6Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGU6
OlVua25vd24sCisgICAgICAgIFdlYkNvcmU6Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGU6OkVyb2Rl
LAorICAgICAgICBXZWJDb3JlOjpNb3JwaG9sb2d5T3BlcmF0b3JUeXBlOjpEaWxhdGUKKyAgICA+
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklM
VEVSX0VGRkVDVChGRU1vcnBob2xvZ3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKaW5kZXggMTBlYjMzYzk0Zjk4YjdkY2EzNjc1
MWM2Zjg4ZjE2OTgxNjU5OTBmOC4uNmJhMTdmZWZmNjIxNDdjOTc1ZmM3ZTU4ZTZmZjMwNDQzNTEz
NGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU9mZnNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuaApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZFT2Zmc2V0IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxGRU9mZnNldD4gY3JlYXRlKGZsb2F0IGR4LCBmbG9hdCBkeSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxGRU9mZnNldD4gY3JlYXRlKGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAK
ICAgICBmbG9hdCBkeCgpIGNvbnN0IHsgcmV0dXJuIG1fZHg7IH0KICAgICB2b2lkIHNldER4KGZs
b2F0KTsKQEAgLTM2LDYgKzM2LDkgQEAgcHVibGljOgogICAgIGZsb2F0IGR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9keTsgfQogICAgIHZvaWQgc2V0RHkoZmxvYXQpOwogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRU9mZnNldD4+IGRlY29kZShE
ZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVPZmZzZXQoZmxvYXQgZHgsIGZsb2F0IGR5KTsK
IApAQCAtNTEsNiArNTQsMjkgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2R5OwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVPZmZzZXQ6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9keDsKKyAgICBlbmNvZGVyIDw8IG1fZHk7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRU9mZnNl
dD4+IEZFT2Zmc2V0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBkeDsKKyAgICBkZWNvZGVyID4+IGR4OworICAgIGlmICghZHgpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkeTsKKyAg
ICBkZWNvZGVyID4+IGR5OworICAgIGlmICghZHkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4gRkVPZmZzZXQ6OmNyZWF0ZSgqZHgsICpkeSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNU
KEZFT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKaW5kZXggNWM3ZTgxY2UzMDQ3MjFh
ZTgxYjE0MzY0NGI3NjM4OWI3MzE5OTMzZC4uOGE2ZmM0YjAzNjA3NzA4OGVkYWUyMzNmZjQ3ZmFk
Y2I0NTkzZTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCkBAIC0zOCwxMCArMzgsMTgg
QEAgcHVibGljOgogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVT
cGVjdWxhckxpZ2h0aW5nPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRVNw
ZWN1bGFyTGlnaHRpbmcoY29uc3QgQ29sb3ImIGxpZ2h0aW5nQ29sb3IsIGZsb2F0IHN1cmZhY2VT
Y2FsZSwgZmxvYXQgc3BlY3VsYXJDb25zdGFudCwgZmxvYXQgc3BlY3VsYXJFeHBvbmVudCwgZmxv
YXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZLCBSZWY8TGlnaHRT
b3VyY2U+JiYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8
UmVmPEZFU3BlY3VsYXJMaWdodGluZz4+IEZFU3BlY3VsYXJMaWdodGluZzo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIEZFTGlnaHRpbmc6OmRlY29kZTxEZWNvZGVyLCBG
RVNwZWN1bGFyTGlnaHRpbmc+KGRlY29kZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRVNwZWN1bGFyTGlnaHRp
bmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRp
bGUuaAppbmRleCBmYjI2NTNhZjgyM2U3M2VmYTJhYTk1NjhkNmI2NTE4Y2ZmNmM5MDRhLi43ZDM5
Nzk4NTc4ODFkYTcyNTc0MWJiOTllMGNhNjRjNDQ0YTgwMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKQEAgLTI4LDcgKzI4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgRkVUaWxlIDogcHVibGljIEZpbHRl
ckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRVRpbGU+IGNyZWF0ZSgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVUaWxlPiBjcmVhdGUoKTsKIAogcHJpdmF0ZToK
ICAgICBGRVRpbGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCmluZGV4IDE3NWZmZjc0MjgyNmZjYWMyMmNkZjNi
ODM2ZDJjOWI5NzA4MDEwOTYuLmI4ZTkzYmMwMWIyNWI0MjkwYzRhMTU0MzllZWFjNDcyMGY0ODll
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUdXJidWxlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVR1cmJ1bGVuY2UuaApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIGNsYXNzIFR1cmJ1bGVu
Y2VUeXBlIHsKIAogY2xhc3MgRkVUdXJidWxlbmNlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRVR1cmJ1bGVuY2U+IGNyZWF0ZShUdXJidWxlbmNlVHlw
ZSwgZmxvYXQgYmFzZUZyZXF1ZW5jeVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0
YXZlcywgZmxvYXQgc2VlZCwgYm9vbCBzdGl0Y2hUaWxlcyk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxGRVR1cmJ1bGVuY2U+IGNyZWF0ZShUdXJidWxlbmNlVHlwZSwgZmxvYXQgYmFz
ZUZyZXF1ZW5jeVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0YXZlcywgZmxvYXQg
c2VlZCwgYm9vbCBzdGl0Y2hUaWxlcyk7CiAKICAgICBUdXJidWxlbmNlVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBzZXRUeXBlKFR1cmJ1bGVuY2VUeXBlKTsK
QEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgogICAgIGJvb2wgc3RpdGNoVGlsZXMoKSBjb25zdCB7
IHJldHVybiBtX3N0aXRjaFRpbGVzOyB9CiAgICAgYm9vbCBzZXRTdGl0Y2hUaWxlcyhib29sKTsK
IAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8
RkVUdXJidWxlbmNlPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRVR1cmJ1
bGVuY2UoVHVyYnVsZW5jZVR5cGUsIGZsb2F0IGJhc2VGcmVxdWVuY3lYLCBmbG9hdCBiYXNlRnJl
cXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0IHNlZWQsIGJvb2wgc3RpdGNoVGlsZXMpOwog
CkBAIC03NCw2ICs3Nyw2NyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zdGl0Y2hUaWxlczsKIH07
CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFVHVyYnVsZW5jZTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3R5cGU7CisgICAgZW5j
b2RlciA8PCBtX2Jhc2VGcmVxdWVuY3lYOworICAgIGVuY29kZXIgPDwgbV9iYXNlRnJlcXVlbmN5
WTsKKyAgICBlbmNvZGVyIDw8IG1fbnVtT2N0YXZlczsKKyAgICBlbmNvZGVyIDw8IG1fc2VlZDsK
KyAgICBlbmNvZGVyIDw8IG1fc3RpdGNoVGlsZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRVR1cmJ1bGVuY2U+PiBGRVR1cmJ1bGVuY2U6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8VHVyYnVsZW5jZVR5cGU+
IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGJhc2VGcmVxdWVu
Y3lYOworICAgIGRlY29kZXIgPj4gYmFzZUZyZXF1ZW5jeVg7CisgICAgaWYgKCFiYXNlRnJlcXVl
bmN5WCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
ZmxvYXQ+IGJhc2VGcmVxdWVuY3lZOworICAgIGRlY29kZXIgPj4gYmFzZUZyZXF1ZW5jeVk7Cisg
ICAgaWYgKCFiYXNlRnJlcXVlbmN5WSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBudW1PY3RhdmVzOworICAgIGRlY29kZXIgPj4gbnVtT2N0
YXZlczsKKyAgICBpZiAoIW51bU9jdGF2ZXMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzZWVkOworICAgIGRlY29kZXIgPj4gc2VlZDsK
KyAgICBpZiAoIXNlZWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IHN0aXRjaFRpbGVzOworICAgIGRlY29kZXIgPj4gc3RpdGNoVGlsZXM7
CisgICAgaWYgKCFzdGl0Y2hUaWxlcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBGRVR1cmJ1bGVuY2U6OmNyZWF0ZSgqdHlwZSwgKmJhc2VGcmVxdWVuY3lYLCAq
YmFzZUZyZXF1ZW5jeVksICpudW1PY3RhdmVzLCAqc2VlZCwgKnN0aXRjaFRpbGVzKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpUdXJidWxlbmNlVHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlLAorCisg
ICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlOjpVbmtub3duLAorICAgICAgICBXZWJDb3Jl
OjpUdXJidWxlbmNlVHlwZTo6RnJhY3RhbE5vaXNlLAorICAgICAgICBXZWJDb3JlOjpUdXJidWxl
bmNlVHlwZTo6VHVyYnVsZW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFVHVyYnVsZW5jZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNwcApp
bmRleCA1MmRjMzVkNmQ2MWQzODgzNWQ0MGNlNjMzZGUwNmY2NjQ1M2VkMWViLi41Nzk5YTAzNjVl
MTUwZjM0NTdlZGJhMTIyZTk5OWFlZmI4NmU0MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwCkBAIC05OCw5ICs5OCwxMCBA
QCBib29sIEZpbHRlcjo6Y2xhbXBGaWx0ZXJSZWdpb25JZk5lZWRlZCgpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLVJlZlB0cjxGaWx0ZXJJbWFnZT4gRmlsdGVyOjphcHBseShJbWFnZUJ1ZmZlciog
c291cmNlSW1hZ2UpCitSZWZQdHI8RmlsdGVySW1hZ2U+IEZpbHRlcjo6YXBwbHkoSW1hZ2VCdWZm
ZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCkKIHsKICAg
ICBzZXRTb3VyY2VJbWFnZShzb3VyY2VJbWFnZSk7CisgICAgc2V0U291cmNlSW1hZ2VSZWN0KHNv
dXJjZUltYWdlUmVjdCk7CiAKICAgICBhdXRvIHJlc3VsdCA9IGFwcGx5KCk7CiAgICAgaWYgKCFy
ZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXIuaAppbmRleCBjYTFkOTUzNGM3ZjhiMTgwNmQ4MWE1ZDIwMjdmOGM0OTJhZTIyODNhLi5j
MzNlZDA4MjhiMTNhYTc2MTJjMTRhM2M4MzZmMWRlYTkxODIwOGVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKQEAgLTU1LDYgKzU1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U291cmNlSW1hZ2UoUmVmUHRyPEltYWdlQnVmZmVy
PiYmIHNvdXJjZUltYWdlKSB7IG1fc291cmNlSW1hZ2UgPSBXVEZNb3ZlKHNvdXJjZUltYWdlKTsg
fQogCiAgICAgQ2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9j
bGlwT3BlcmF0aW9uOyB9CisgICAgdm9pZCBzZXRDbGlwT3BlcmF0aW9uKENsaXBPcGVyYXRpb24g
Y2xpcE9wZXJhdGlvbikgeyBtX2NsaXBPcGVyYXRpb24gPSBjbGlwT3BlcmF0aW9uOyB9CiAKICAg
ICB2aXJ0dWFsIEZsb2F0U2l6ZSByZXNvbHZlZFNpemUoY29uc3QgRmxvYXRTaXplJiBzaXplKSBj
b25zdCB7IHJldHVybiBzaXplOyB9CiAKQEAgLTcyLDkgKzczLDEwIEBAIHB1YmxpYzoKICAgICBi
b29sIGNsYW1wRmlsdGVyUmVnaW9uSWZOZWVkZWQoKTsKICAgICAKICAgICB2aXJ0dWFsIFJlZlB0
cjxGaWx0ZXJJbWFnZT4gYXBwbHkoKSA9IDA7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEZp
bHRlckltYWdlPiBhcHBseShJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UpOworICAgIFdFQkNPUkVf
RVhQT1JUIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCk7CiAKIHByb3RlY3RlZDoKKyAgICB1
c2luZyBGaWx0ZXJGdW5jdGlvbjo6RmlsdGVyRnVuY3Rpb247CiAgICAgRmlsdGVyKEZpbHRlcjo6
VHlwZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9w
ZXJhdGlvbiA9IENsaXBPcGVyYXRpb246OkludGVyc2VjdCk7CiAgICAgRmlsdGVyKEZpbHRlcjo6
VHlwZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9u
LCBDbGlwT3BlcmF0aW9uID0gQ2xpcE9wZXJhdGlvbjo6SW50ZXJzZWN0KTsKIApAQCAtOTEsMyAr
OTMsMTYgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RmlsdGVy
OjpDbGlwT3BlcmF0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgV2ViQ29yZTo6RmlsdGVyOjpDbGlwT3BlcmF0aW9uLAorCisgICAgICAgIFdlYkNvcmU6OkZp
bHRlcjo6Q2xpcE9wZXJhdGlvbjo6SW50ZXJzZWN0LAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXI6
OkNsaXBPcGVyYXRpb246OlVuaXRlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3Vy
Y2VHcmFwaGljLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUdyYXBoaWMuaAppbmRleCBhNzM4YTdkMDI2ZDg4ZmRkNDgxZmZhOTA3MzBhYmZlMjVhNWM2
NjdiLi4zMDMzZGIwMjEwZDNlMWYxMjNiNGI5YjVkNzkzNWIxYWM4NGQwYjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdy
YXBoaWMuaApAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNv
dXJjZUdyYXBoaWMgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzogICAgICAgIAotICAg
IHN0YXRpYyBSZWY8U291cmNlR3JhcGhpYz4gY3JlYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxTb3VyY2VHcmFwaGljPiBjcmVhdGUoKTsKIAogICAgIHN0YXRpYyBBdG9tU3Ry
aW5nIGVmZmVjdE5hbWUoKSB7IHJldHVybiBGaWx0ZXJFZmZlY3Q6OnNvdXJjZUdyYXBoaWNOYW1l
KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRleCBjOTE5ZDk4
MDU0M2I3ODlmNWI5ZTU5ZTlhMjYxNWNhNzkwZTdmYmRkLi5hOTc4YjlhZWYwZWJiMGFiYTM1NzAw
OGVlYWI1MzdjZTVjMjA1MTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Q1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNw
cApAQCAtNTIsNiArNTIsMTEgQEAgUmVmUHRyPENTU0ZpbHRlcj4gQ1NTRmlsdGVyOjpjcmVhdGUo
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgb3BlcmF0aW9ucywgUmVuZGVyaW4KICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NGaWx0ZXIocmVuZGVyaW5nTW9kZSwgc2NhbGVGYWN0b3IsIGNsaXBP
cGVyYXRpb24sIGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscywgaGFzRmlsdGVyVGhhdFNob3VsZEJl
UmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW4pKTsKIH0KIAorUmVmUHRyPENTU0ZpbHRlcj4gQ1NT
RmlsdGVyOjpjcmVhdGUoVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiYgZnVuY3Rpb25zKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRmlsdGVyKFdURk1vdmUoZnVuY3Rpb25zKSkp
OworfQorCiBDU1NGaWx0ZXI6OkNTU0ZpbHRlcihSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IGZsb2F0IHNjYWxlRmFjdG9yLCBDbGlwT3BlcmF0aW9uIGNsaXBPcGVyYXRpb24sIGJvb2wgaGFz
RmlsdGVyVGhhdE1vdmVzUGl4ZWxzLCBib29sIGhhc0ZpbHRlclRoYXRTaG91bGRCZVJlc3RyaWN0
ZWRCeVNlY3VyaXR5T3JpZ2luKQogICAgIDogRmlsdGVyKEZpbHRlcjo6VHlwZTo6Q1NTRmlsdGVy
LCByZW5kZXJpbmdNb2RlLCBGbG9hdFNpemUgeyBzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IgfSwg
Y2xpcE9wZXJhdGlvbikKICAgICAsIG1faGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxzKGhhc0ZpbHRl
clRoYXRNb3Zlc1BpeGVscykKQEAgLTU5LDYgKzY0LDEyIEBAIENTU0ZpbHRlcjo6Q1NTRmlsdGVy
KFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgc2NhbGVGYWN0b3IsIENsaXBPcGVy
YXRpCiB7CiB9CiAKK0NTU0ZpbHRlcjo6Q1NTRmlsdGVyKFZlY3RvcjxSZWY8RmlsdGVyRnVuY3Rp
b24+PiYmIGZ1bmN0aW9ucykKKyAgICA6IEZpbHRlcihUeXBlOjpDU1NGaWx0ZXIpCisgICAgLCBt
X2Z1bmN0aW9ucyhXVEZNb3ZlKGZ1bmN0aW9ucykpCit7Cit9CisKIHN0YXRpYyBSZWZQdHI8Rmls
dGVyRWZmZWN0PiBjcmVhdGVCbHVyRWZmZWN0KGNvbnN0IEJsdXJGaWx0ZXJPcGVyYXRpb24mIGJs
dXJPcGVyYXRpb24sIEZpbHRlcjo6Q2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0aW9uKQogewogICAg
IGZsb2F0IHN0ZERldmlhdGlvbiA9IGZsb2F0VmFsdWVGb3JMZW5ndGgoYmx1ck9wZXJhdGlvbi5z
dGREZXZpYXRpb24oKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Q1NTRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKaW5kZXgg
NzNhNGU4N2E4ZjU1ZGE4MjJiODJlOWRlOTMyNjJkNWQ4NzhlMjc0ZC4uOTkyMTc3ZmYwNGQ4ODFk
NmMwMmE0YTY3ZjAyMjFlZWJlYWYxNGMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NTU0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0
ZXIuaApAQCAtNDMsNiArNDMsOSBAQCBjbGFzcyBDU1NGaWx0ZXIgZmluYWwgOiBwdWJsaWMgRmls
dGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmUHRyPENTU0ZpbHRlcj4gY3JlYXRlKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmLCBSZW5kZXJp
bmdNb2RlLCBmbG9hdCBzY2FsZUZhY3RvciA9IDEsIENsaXBPcGVyYXRpb24gPSBDbGlwT3BlcmF0
aW9uOjpJbnRlcnNlY3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8Q1NTRmls
dGVyPiBjcmVhdGUoVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiYpOworCisgICAgY29uc3Qg
VmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiBmdW5jdGlvbnMoKSBjb25zdCB7IHJldHVybiBt
X2Z1bmN0aW9uczsgfQogCiAgICAgdm9pZCBzZXRTb3VyY2VJbWFnZVJlY3QoY29uc3QgRmxvYXRS
ZWN0Jik7CiAgICAgYm9vbCBidWlsZEZpbHRlckZ1bmN0aW9ucyhSZW5kZXJFbGVtZW50JiwgY29u
c3QgRmlsdGVyT3BlcmF0aW9ucyYpOwpAQCAtNjIsNiArNjUsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgQ1NTRmlsdGVyKFJlbmRlcmluZ01vZGUsIGZsb2F0IHNjYWxlRmFjdG9yLCBDbGlw
T3BlcmF0aW9uLCBib29sIGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscywgYm9vbCBoYXNGaWx0ZXJU
aGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9yaWdpbik7CisgICAgQ1NTRmlsdGVyKFZl
Y3RvcjxSZWY8RmlsdGVyRnVuY3Rpb24+PiYmKTsKIAogI2lmIFVTRShDT1JFX0lNQUdFKQogICAg
IGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlcnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKaW5kZXggYWU3MTIy
NDRmOWM4NDJkMTg3NmIyMDk5YTZjM2M5MDc3NzJhYzBkMS4uY2FkZmY0MTY2M2Q5ZmNlY2FkNWM0
NWI1Zjg3NDc5MzBkYjgwMzIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyRmlsdGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyRmlsdGVycy5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIFJlbmRlckxheWVy
RmlsdGVyczo6YXBwbHlGaWx0ZXJFZmZlY3QoR3JhcGhpY3NDb250ZXh0JiBkZXN0aW5hdGlvbkNv
bnRleHQpCiAKICAgICBhdXRvJiBmaWx0ZXIgPSAqbV9maWx0ZXI7CiAKLSAgICBkZXN0aW5hdGlv
bkNvbnRleHQuZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIobV9zb3VyY2VJbWFnZS5nZXQoKSwgZmls
dGVyKTsKKyAgICBkZXN0aW5hdGlvbkNvbnRleHQuZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIobV9z
b3VyY2VJbWFnZS5nZXQoKSwgZmlsdGVyLnNvdXJjZUltYWdlUmVjdCgpLCBmaWx0ZXIpOwogICAg
IGZpbHRlci5jbGVhckludGVybWVkaWF0ZVJlc3VsdHMoKTsKIAogICAgIExPR19XSVRIX1NUUkVB
TShGaWx0ZXJzLCBzdHJlYW0gPDwgIlJlbmRlckxheWVyRmlsdGVycyAiIDw8IHRoaXMgPDwgIiBh
cHBseUZpbHRlckVmZmVjdCBkb25lXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKaW5kZXggYjAzMGMwZjY2
NTYxNTFjMTExYTIxZTk5ZDMwMDEyMjEzNjZmNDA1ZC4uNmI2MWIyYzg2NjVkM2YzYWIxMjEwODFh
OTBkNzA2ZjM4YTAwN2YzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKQEAgLTIxNSw3ICsyMTUsNyBAQCB2
b2lkIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNvdXJjZShSZW5kZXJFbGVt
ZW50JiByZW5kZXJlciwgR3JhcGhpYwogCiAgICAgaWYgKCFmaWx0ZXJEYXRhLmJvdW5kYXJpZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGZpbHRlckRhdGEuc3RhdGUgPSBGaWx0ZXJEYXRhOjpCdWls
dDsKLSAgICAgICAgY29udGV4dC0+ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoZmlsdGVyRGF0YS5z
b3VyY2VHcmFwaGljQnVmZmVyLmdldCgpLCAqZmlsdGVyRGF0YS5maWx0ZXIpOworICAgICAgICBj
b250ZXh0LT5kcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihmaWx0ZXJEYXRhLnNvdXJjZUdyYXBoaWNC
dWZmZXIuZ2V0KCksIGZpbHRlckRhdGEuZHJhd2luZ1JlZ2lvbiwgKmZpbHRlckRhdGEuZmlsdGVy
KTsKICAgICB9CiAKICAgICBmaWx0ZXJEYXRhLnNvdXJjZUdyYXBoaWNCdWZmZXIgPSBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAKaW5kZXggZmI0OTNlNTlk
ZDgyYmM2OWFkNzkxYjM3NWNlOGE4MjkyY2Q3YzgxZi4uODU3MzM3YmMzYzkwNzU1YjVjZjhkMWFi
MTFjYThlZmQzMGMzNjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVy
Z2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQu
Y3BwCkBAIC02MSw3ICs2MSw3IEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFTWVyZ2VFbGVt
ZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyJiBmaWx0ZXJCdWlsZGVyKSBjCiAgICAgaWYgKG1l
cmdlSW5wdXRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRv
IGVmZmVjdCA9IEZFTWVyZ2U6OmNyZWF0ZSgpOworICAgIGF1dG8gZWZmZWN0ID0gRkVNZXJnZTo6
Y3JlYXRlKG1lcmdlSW5wdXRzLnNpemUoKSk7CiAgICAgZWZmZWN0LT5pbnB1dEVmZmVjdHMoKSA9
IFdURk1vdmUobWVyZ2VJbnB1dHMpOwogICAgIHJldHVybiBlZmZlY3Q7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAKaW5kZXggYWRhNTRkNDE4YTBiNjAyNTQ2YjE3ZTU3YzY2ZGQwY2Q2
OTAzMGQxMy4uNWUyM2RkMmFmZjI4ZmVhNDk3OWQ2OWNmYWUzYWQ0ODlmY2E2ZWViMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMjIwLDYgKzIyMCwyMyBAQCB2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbgogICAgIGRyYXdpbmdDb250ZXh0KCkuY2xpcFRvSW1hZ2VCdWZmZXIoKm1h
c2tJbWFnZUJ1ZmZlciwgZGVzdGluYXRpb24pOwogfQogCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVj
dCYgc291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVyZW5jZSBmaWx0ZXJSZWZlcmVuY2Up
Cit7CisgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBzb3VyY2VJbWFnZTsKKworICAgIGlmIChzb3Vy
Y2VJbWFnZUlkZW50aWZpZXIpIHsKKyAgICAgICAgc291cmNlSW1hZ2UgPSByZXNvdXJjZUNhY2hl
KCkuY2FjaGVkSW1hZ2VCdWZmZXIoeyAqc291cmNlSW1hZ2VJZGVudGlmaWVyLCBtX3dlYlByb2Nl
c3NJZGVudGlmaWVyIH0pOworICAgICAgICBpZiAoIXNvdXJjZUltYWdlKSB7CisgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGF1dG8gZmlsdGVyID0gZmlsdGVyUmVmZXJlbmNlLnRha2VGaWx0ZXIoKTsK
KworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNv
dXJjZUltYWdlSWRlbnRpZmllciwgc291cmNlSW1hZ2VSZWN0LCBXVEZNb3ZlKGZpbHRlcikpLCBz
b3VyY2VJbWFnZS5nZXQoKSk7Cit9CisKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
ZHJhd0dseXBocyhEaXNwbGF5TGlzdDo6RHJhd0dseXBocyYmIGl0ZW0pCiB7CiAgICAgYXV0byBm
b250SWRlbnRpZmllciA9IGl0ZW0uZm9udElkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5oCmluZGV4IDU5ODJjYmFlYjg3ZTY2MGM1YmFiNzdhNmQ3YTI5NTcwMzU3YmJmOWYuLjY5
NmQ2Y2IxNjI3Njk5MGViNGVjMDc4MmM0MGQzZDdiMGE4MDk2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIuaApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRmls
dGVyUmVmZXJlbmNlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKQEAgLTc3LDYgKzgxLDcgQEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5D
bGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJik7CiAgICAgdm9pZCBlbmRD
bGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlv
bik7CiAgICAgdm9pZCBkcmF3R2x5cGhzKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhz
JiYpOworICAgIHZvaWQgZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIElQQzo6RmlsdGVyUmVm
ZXJlbmNlKTsKICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogICAgIHZvaWQgZHJhd05h
dGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CiAgICAgdm9pZCBkcmF3UGF0
dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2Fn
ZXMuaW4KaW5kZXggNWMxNDA5M2EzYjlhYmEwYTFiZTcyMDY4N2VmYjQ2NjhiNTk1YTM2MS4uMDlj
NDA5N2RlYmViMzQzMWM4ZWYyODQ0ZTdhZjk1MmY0ODVlYWM5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KQEAgLTQ3LDYgKzQ3LDcgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAg
QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMoV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9u
LCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkKICAgICBFbmRDbGlw
VG9EcmF3aW5nQ29tbWFuZHMoV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9uKQogICAgIERy
YXdHbHlwaHMoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMgaXRlbSkKKyAgICBEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3Qg
c291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVyZW5jZSBmaWx0ZXIpCiAgICAgRHJhd0lt
YWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZl
cklkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvblJlY3QsIFdlYkNvcmU6
OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMg
b3B0aW9ucykKICAgICBEcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwg
V2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3JjUmVjdCwg
c3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCiAgICAgRHJhd1Bh
dHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RS
ZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGlsZVJlY3QsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm0sIFdlYkNvcmU6OkZsb2F0UG9pbnQgcGhhc2UsIFdlYkNvcmU6OkZsb2F0U2l6
ZSBzcGFjaW5nLCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBmY2M3MmJmMjBhMmZiMmM2Yjk5YmEwZWU2Zjgy
MDZhNGNhYjZmZmMwLi5iMGRmNTM0MzQ0OTc4MmZhNGNlMzFiY2YzMzJkOGZjNWJjYzhiMTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJGaWx0ZXJSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCIKQEAgLTMxOCw2ICszMTksMzMgQEAgdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZl
cldpdGhRdWFsaWZpZWRJZGVudGkKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRs
ZSkpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldEZpbHRlcmVkSW1hZ2VG
b3JJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSVBD
OjpGaWx0ZXJSZWZlcmVuY2UmJiBmaWx0ZXJSZWZlcmVuY2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGZpbHRlciA9IGZpbHRl
clJlZmVyZW5jZS50YWtlRmlsdGVyKCk7CisKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBo
YW5kbGU7CisgICAgWyZdKCkgeworICAgICAgICBhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0pOworICAgICAgICBpZiAo
IWltYWdlQnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvIGltYWdlID0g
aW1hZ2VCdWZmZXItPmZpbHRlcmVkSW1hZ2UoZmlsdGVyKTsKKyAgICAgICAgaWYgKCFpbWFnZSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBpbWFnZVNpemUgPSBpbWFnZS0+c2l6
ZSgpOworICAgICAgICBhdXRvIGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVh
YmxlKEludFNpemUoaW1hZ2VTaXplKSwgeyBpbWFnZUJ1ZmZlci0+Y29sb3JTcGFjZSgpIH0pOwor
ICAgICAgICBpZiAoIWJpdG1hcCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBj
b250ZXh0ID0gYml0bWFwLT5jcmVhdGVHcmFwaGljc0NvbnRleHQoKTsKKyAgICAgICAgaWYgKCFj
b250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2Uo
KmltYWdlLCBGbG9hdFBvaW50KCkpOworICAgICAgICBiaXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5k
bGUpOworICAgIH0oKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZSkpOwor
fQorCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIG5hdGl2ZUltYWdlUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIC8vIEltbWVkaWF0ZWx5
IHR1cm4gdGhlIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciAod2hpY2ggaXMgZXJyb3ItcHJv
bmUpIHRvIGEgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKaW5kZXggOTg5YmM5MzBmNDg2ZTFjNmRlN2QxNjZhNDM0YWI1ZWUwNmFjOWVmNS4u
ZTM1NzE1ZGQxN2ZlZTY0MzQ1YjIyNjJkNjhjZWJlYTRkNzRhYjk5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oCkBAIC01OCw2ICs1OCwxMCBAQCBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29s
OwogCiB9CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRmlsdGVyUmVmZXJlbmNlOworfQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKQEAg
LTEwOCw2ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RGF0YVVSTEZvckltYWdlQnVm
ZmVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5
LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24sIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYpOwogICAgIHZv
aWQgZ2V0RGF0YUZvckltYWdlQnVmZmVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsKICAgICB2
b2lkIGdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiYpPiYmKTsKKyAgICB2b2lkIGdl
dEZpbHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIElQQzo6RmlsdGVyUmVmZXJlbmNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFn
ZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYp
OwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
bWVzc2FnZXMuaW4KaW5kZXggYTE0MmY0ODk2NmY1YzQ5NzU5NDU2NTQ3NzJjNzljMzE5NzZmNTNk
Yy4uZTdjMWJmYTY3ZjQzM2NmNDRjOGUxYzJlZjg5YzNlNjZhNjlmOWQ4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTMxLDYgKzMxLDcgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgR2V0
RGF0YVVSTEZvckltYWdlQnVmZmVyKFN0cmluZyBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IHF1YWxpdHksIGVudW06dWludDhfdCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24gcHJl
c2VydmVSZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoU3RyaW5nIHVybFN0cmluZykgU3luY2hyb25v
dXMKICAgICBHZXREYXRhRm9ySW1hZ2VCdWZmZXIoU3RyaW5nIG1pbWVUeXBlLCBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgLT4gKFZlY3Rvcjx1aW50OF90PiBkYXRhKSBT
eW5jaHJvbm91cwogICAgIEdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyKFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlciwgZW51bTp1aW50OF90IFdl
YkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24pIC0+IChXZWJLaXQ6
OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSkgU3luY2hyb25vdXMgTm90U3RyZWFtRW5j
b2RhYmxlUmVwbHkKKyAgICBHZXRGaWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXIoV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVyLCBJUEM6OkZpbHRlclJlZmVy
ZW5jZSBmaWx0ZXIpIC0+IChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSkg
U3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlUmVwbHkKICAgICBDYWNoZU5hdGl2ZUltYWdl
KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSBOb3RTdHJl
YW1FbmNvZGFibGUKICAgICBDYWNoZUZvbnQoSVBDOjpGb250UmVmZXJlbmNlIGZvbnQpIE5vdFN0
cmVhbUVuY29kYWJsZQogICAgIERlbGV0ZUFsbEZvbnRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQyZDg3NWI3YTk0ODBlNTZh
NmUzZjljMzBiNzZmYTQ2MzY3Yzg1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oCkBAIC0wLDAgKzEsNDA4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NTU0ZpbHRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRkVCbGVuZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVDb2xvck1hdHJp
eC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVDb21wb25lbnRUcmFuc2Zlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRkVDb21wb3NpdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFQ29udm9sdmVNYXRy
aXguaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFRGlmZnVzZUxpZ2h0aW5nLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GRURpc3BsYWNlbWVudE1hcC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVEcm9wU2hh
ZG93Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUZsb29kLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
RUdhdXNzaWFuQmx1ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVNZXJnZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRkVNb3JwaG9sb2d5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRU9mZnNldC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRkVTcGVjdWxhckxpZ2h0aW5nLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GRVRpbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFVHVyYnVsZW5jZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRmlsdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXJFZmZlY3RWZWN0b3Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NWR0ZFSW1hZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NW
R0ZpbHRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU291cmNlQWxwaGEuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NvdXJjZUdyYXBoaWMuaD4KKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIEZpbHRl
clJlZmVyZW5jZSB7CitwdWJsaWM6CisgICAgRmlsdGVyUmVmZXJlbmNlKFJlZjxXZWJDb3JlOjpG
aWx0ZXI+JiYgZmlsdGVyKQorICAgICAgICA6IG1fZmlsdGVyKFdURk1vdmUoZmlsdGVyKSkKKyAg
ICB7CisgICAgfQorCisgICAgUmVmPFdlYkNvcmU6OkZpbHRlcj4gdGFrZUZpbHRlcigpIHsgcmV0
dXJuIFdURk1vdmUobV9maWx0ZXIpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8RmlsdGVyUmVmZXJlbmNlPiBkZWNvZGUoRGVjb2RlciYpOwor
Citwcml2YXRlOgorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29k
ZUZpbHRlckVmZmVjdChjb25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZlY3QmLCBFbmNvZGVyJik7Cisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q+IGRlY29kZUZpbHRlckVmZmVjdChEZWNvZGVyJiwgV2ViQ29yZTo6RmlsdGVyRnVuY3Rp
b246OlR5cGUpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5j
b2RlU1ZHRmlsdGVyKGNvbnN0IFdlYkNvcmU6OlNWR0ZpbHRlciYsIEVuY29kZXImKTsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OlNWR0ZpbHRlcj4g
ZGVjb2RlU1ZHRmlsdGVyKERlY29kZXImKTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHN0YXRpYyB2b2lkIGVuY29kZUNTU0ZpbHRlcihjb25zdCBXZWJDb3JlOjpDU1NGaWx0ZXImLCBF
bmNvZGVyJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJD
b3JlOjpDU1NGaWx0ZXI+IGRlY29kZUNTU0ZpbHRlcihEZWNvZGVyJik7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGVGaWx0ZXIoY29uc3QgV2ViQ29yZTo6
RmlsdGVyJiwgRW5jb2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBS
ZWZQdHI8V2ViQ29yZTo6RmlsdGVyPiBkZWNvZGVGaWx0ZXIoRGVjb2RlciYsIFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpUeXBlKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
UmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gZGVjb2RlRmlsdGVyKERlY29kZXImKTsKKworICAgIFJl
ZjxXZWJDb3JlOjpGaWx0ZXI+IG1fZmlsdGVyOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXJFZmZlY3QoY29uc3QgV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0JiBlZmZlY3QsIEVuY29kZXImIGVuY29kZXIpCit7CisgICAgZW5jb2Rl
ciA8PCBlZmZlY3QuZmlsdGVyVHlwZSgpOworICAgIGVuY29kZXIgPDwgZWZmZWN0Lm9wZXJhdGlu
Z0NvbG9yU3BhY2UoKTsKKworICAgIHN3aXRjaCAoZWZmZWN0LmZpbHRlclR5cGUoKSkgeworICAg
IGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUJsZW5kOgorICAgICAgICBkb3du
Y2FzdDxXZWJDb3JlOjpGRUJsZW5kPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb2xvck1h
dHJpeDoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVDb2xvck1hdHJpeD4oZWZmZWN0KS5l
bmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXI6CisgICAgICAgIGRvd25jYXN0PFdl
YkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNv
bXBvc2l0ZToKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVDb21wb3NpdGU+KGVmZmVjdCku
ZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6Rmls
dGVyRWZmZWN0OjpUeXBlOjpGRUNvbnZvbHZlTWF0cml4OgorICAgICAgICBkb3duY2FzdDxXZWJD
b3JlOjpGRUNvbnZvbHZlTWF0cml4PihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaWZmdXNl
TGlnaHRpbmc6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nPihl
ZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaXNwbGFjZW1lbnRNYXA6CisgICAgICAgIGRvd25j
YXN0PFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6
RkVEcm9wU2hhZG93OgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRURyb3BTaGFkb3c+KGVm
ZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUZsb29kOgorICAgICAgICBkb3duY2FzdDxXZWJDb3Jl
OjpGRUZsb29kPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVHYXVzc2lhbkJsdXI6CisgICAg
ICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyPihlZmZlY3QpLmVuY29kZShlbmNv
ZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
VHlwZTo6RkVJbWFnZToKKyAgICAgICAgLy8gRklYTUU6IGVuY29kZSBGRUltYWdlLgorICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1lcmdl
OgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRU1lcmdlPihlZmZlY3QpLmVuY29kZShlbmNv
ZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
VHlwZTo6RkVNb3JwaG9sb2d5OgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRU1vcnBob2xv
Z3k+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug
V2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU9mZnNldDoKKyAgICAgICAgZG93bmNhc3Q8
V2ViQ29yZTo6RkVPZmZzZXQ+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVNwZWN1bGFyTGln
aHRpbmc6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZz4oZWZm
ZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVGlsZToKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVUdXJidWxlbmNlOgorICAgICAgICBkb3du
Y2FzdDxXZWJDb3JlOjpGRVR1cmJ1bGVuY2U+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpTb3Vy
Y2VBbHBoYToKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3Jh
cGhpYzoKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitSZWZQdHI8
V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVj
dChEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSBmaWx0ZXJU
eXBlKQoreworICAgIGlmICghKGZpbHRlclR5cGUgPj0gV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246
OlR5cGU6OkZFRmlyc3QgJiYgZmlsdGVyVHlwZSA8PSBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6
VHlwZTo6RkVMYXN0KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZT4gb3BlcmF0aW5nQ29sb3JTcGFjZTsK
KyAgICBkZWNvZGVyID4+IG9wZXJhdGluZ0NvbG9yU3BhY2U7CisgICAgaWYgKCFvcGVyYXRpbmdD
b2xvclNwYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0ZDo6b3B0aW9uYWw8
UmVmPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4+IGVmZmVjdDsKKworICAgIHN3aXRjaCAoZmlsdGVy
VHlwZSkgeworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUJsZW5kOgor
ICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRUJsZW5kOjpkZWNvZGUoZGVjb2Rlcik7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29s
b3JNYXRyaXg6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmRlY29k
ZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVm
ZmVjdDo6VHlwZTo6RkVDb21wb25lbnRUcmFuc2ZlcjoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29y
ZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsK
KworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvc2l0ZToKKyAg
ICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVDb21wb3NpdGU6OmRlY29kZShkZWNvZGVyKTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVD
b252b2x2ZU1hdHJpeDoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVDb252b2x2ZU1hdHJp
eDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRURpZmZ1c2VMaWdodGluZzoKKyAgICAgICAgZWZmZWN0ID0g
V2ViQ29yZTo6RkVEaWZmdXNlTGlnaHRpbmc6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJl
YWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaXNwbGFjZW1l
bnRNYXA6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpkZWNv
ZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OlR5cGU6OkZFRHJvcFNoYWRvdzoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVE
cm9wU2hhZG93OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRmxvb2Q6CisgICAgICAgIGVmZmVjdCA9IFdl
YkNvcmU6OkZFRmxvb2Q6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBj
YXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVHYXVzc2lhbkJsdXI6CisgICAgICAg
IGVmZmVjdCA9IFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpkZWNvZGUoZGVjb2Rlcik7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFSW1h
Z2U6CisgICAgICAgIC8vIEZJWE1FOiBkZWNvZGUgRkVJbWFnZS4KKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVNZXJnZToKKyAgICAgICAg
ZWZmZWN0ID0gV2ViQ29yZTo6RkVNZXJnZTo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1vcnBob2xvZ3k6
CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZGVjb2RlKGRlY29kZXIp
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBl
OjpGRU9mZnNldDoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVPZmZzZXQ6OmRlY29kZShk
ZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVTcGVjdWxhckxpZ2h0aW5nOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpG
RVNwZWN1bGFyTGlnaHRpbmc6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVUaWxlOgorICAgICAgICBlZmZl
Y3QgPSBXZWJDb3JlOjpGRVRpbGU6OmNyZWF0ZSgpOworICAgICAgICBicmVhazsKKworICAgIGNh
c2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVR1cmJ1bGVuY2U6CisgICAgICAgIGVm
ZmVjdCA9IFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VHcmFw
aGljOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpjcmVhdGUoKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6
U291cmNlQWxwaGE6CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQorCisgICAgaWYgKGVmZmVjdCkgeworICAgICAgICAoKmVmZmVjdCktPnNldE9wZXJh
dGluZ0NvbG9yU3BhY2UoKm9wZXJhdGluZ0NvbG9yU3BhY2UpOworICAgICAgICByZXR1cm4geyAo
KmVmZmVjdCkucHRyKCkgfTsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVTVkdGaWx0
ZXIoY29uc3QgV2ViQ29yZTo6U1ZHRmlsdGVyJiBmaWx0ZXIsIEVuY29kZXImIGVuY29kZXIpCit7
CisgICAgLy8gRklYTUU6IEVuY29kZSB0aGUgU1ZHRmlsdGVyLgorfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorUmVmUHRyPFdlYkNvcmU6OlNWR0ZpbHRlcj4gRmlsdGVyUmVmZXJlbmNlOjpk
ZWNvZGVTVkdGaWx0ZXIoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICAvLyBGSVhNRTogRGVjb2Rl
IHRoZSBTVkdGaWx0ZXIuCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlQ1NTRmlsdGVyKGNvbnN0IFdl
YkNvcmU6OkNTU0ZpbHRlciYgZmlsdGVyLCBFbmNvZGVyJiBlbmNvZGVyKQoreworICAgIGVuY29k
ZXIgPDwgZmlsdGVyLmZ1bmN0aW9ucygpLnNpemUoKTsKKworICAgIGZvciAoYXV0byYgZnVuY3Rp
b24gOiBmaWx0ZXIuZnVuY3Rpb25zKCkpIHsKKyAgICAgICAgaWYgKGlzPFdlYkNvcmU6OlNWR0Zp
bHRlcj4oZnVuY3Rpb24pKSB7CisgICAgICAgICAgICBlbmNvZGVGaWx0ZXIoZG93bmNhc3Q8V2Vi
Q29yZTo6U1ZHRmlsdGVyPihmdW5jdGlvbi5nZXQoKSksIGVuY29kZXIpOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXM8V2ViQ29yZTo6RmlsdGVyRWZm
ZWN0PihmdW5jdGlvbikpCisgICAgICAgICAgICBlbmNvZGVGaWx0ZXJFZmZlY3QoZG93bmNhc3Q8
V2ViQ29yZTo6RmlsdGVyRWZmZWN0PihmdW5jdGlvbi5nZXQoKSksIGVuY29kZXIpOworICAgIH0K
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpDU1NGaWx0ZXI+
IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlQ1NTRmlsdGVyKERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IHNpemU7CisgICAgZGVjb2RlciA+PiBzaXplOworICAg
IGlmICghc2l6ZSB8fCAhKnNpemUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgVmVj
dG9yPFJlZjxXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbj4+IGZ1bmN0aW9uczsKKworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU+IGZpbHRlclR5cGU7CisgICAgICAgIGRlY29kZXIg
Pj4gZmlsdGVyVHlwZTsKKyAgICAgICAgaWYgKCFmaWx0ZXJUeXBlKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICAgICAgaWYgKCpmaWx0ZXJUeXBlID09IFdlYkNvcmU6OkZpbHRl
ckZ1bmN0aW9uOjpUeXBlOjpTVkdGaWx0ZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGZpbHRl
ciA9IGRlY29kZUZpbHRlcihkZWNvZGVyLCAqZmlsdGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAg
ICBmdW5jdGlvbnMuYXBwZW5kKGZpbHRlci5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICB9CisKKyAgICAgICAgYXV0byBlZmZlY3QgPSBkZWNvZGVGaWx0ZXJFZmZlY3Qo
ZGVjb2RlciwgKmZpbHRlclR5cGUpOworICAgICAgICBpZiAoIWVmZmVjdCkKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgICAgIGZ1bmN0aW9ucy5hcHBlbmQoZWZmZWN0LnJlbGVh
c2VOb25OdWxsKCkpOworICAgIH0KKworICAgIHJldHVybiBXZWJDb3JlOjpDU1NGaWx0ZXI6OmNy
ZWF0ZShXVEZNb3ZlKGZ1bmN0aW9ucykpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
dm9pZCBGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZUZpbHRlcihjb25zdCBXZWJDb3JlOjpGaWx0ZXIm
IGZpbHRlciwgRW5jb2RlciYgZW5jb2RlcikKK3sKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5maWx0
ZXJUeXBlKCk7CisgICAgZW5jb2RlciA8PCBmaWx0ZXIucmVuZGVyaW5nTW9kZSgpOworICAgIGVu
Y29kZXIgPDwgZmlsdGVyLmZpbHRlclNjYWxlKCk7CisgICAgZW5jb2RlciA8PCBmaWx0ZXIuY2xp
cE9wZXJhdGlvbigpOworICAgIGVuY29kZXIgPDwgZmlsdGVyLmZpbHRlclJlZ2lvbigpOworCisg
ICAgaWYgKGlzPFdlYkNvcmU6OkNTU0ZpbHRlcj4oZmlsdGVyKSkKKyAgICAgICAgZW5jb2RlQ1NT
RmlsdGVyKGRvd25jYXN0PFdlYkNvcmU6OkNTU0ZpbHRlcj4oZmlsdGVyKSwgZW5jb2Rlcik7Cisg
ICAgZWxzZSBpZiAoaXM8V2ViQ29yZTo6U1ZHRmlsdGVyPihmaWx0ZXIpKQorICAgICAgICBlbmNv
ZGVTVkdGaWx0ZXIoZG93bmNhc3Q8V2ViQ29yZTo6U1ZHRmlsdGVyPihmaWx0ZXIpLCBlbmNvZGVy
KTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpGaWx0ZXI+
IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlRmlsdGVyKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6
OkZpbHRlckZ1bmN0aW9uOjpUeXBlIGZpbHRlclR5cGUpCit7CisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlPiByZW5kZXJpbmdNb2RlOworICAgIGRlY29kZXIgPj4gcmVu
ZGVyaW5nTW9kZTsKKyAgICBpZiAoIXJlbmRlcmluZ01vZGUpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IGZpbHRlclNjYWxl
OworICAgIGRlY29kZXIgPj4gZmlsdGVyU2NhbGU7CisgICAgaWYgKCFmaWx0ZXJTY2FsZSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRl
cjo6Q2xpcE9wZXJhdGlvbj4gY2xpcE9wZXJhdGlvbjsKKyAgICBkZWNvZGVyID4+IGNsaXBPcGVy
YXRpb247CisgICAgaWYgKCFjbGlwT3BlcmF0aW9uKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBmaWx0ZXJSZWdpb247Cisg
ICAgZGVjb2RlciA+PiBmaWx0ZXJSZWdpb247CisgICAgaWYgKCFmaWx0ZXJSZWdpb24pCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgUmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gZmlsdGVy
OworCisgICAgaWYgKGZpbHRlclR5cGUgPT0gV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6
OkNTU0ZpbHRlcikKKyAgICAgICAgZmlsdGVyID0gZGVjb2RlQ1NTRmlsdGVyKGRlY29kZXIpOwor
ICAgIGVsc2UgaWYgKGZpbHRlclR5cGUgPT0gV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6
OlNWR0ZpbHRlcikKKyAgICAgICAgZmlsdGVyID0gZGVjb2RlU1ZHRmlsdGVyKGRlY29kZXIpOwor
ICAgIAorICAgIGlmIChmaWx0ZXIpIHsKKyAgICAgICAgZmlsdGVyLT5zZXRSZW5kZXJpbmdNb2Rl
KCpyZW5kZXJpbmdNb2RlKTsKKyAgICAgICAgZmlsdGVyLT5zZXRGaWx0ZXJTY2FsZSgqZmlsdGVy
U2NhbGUpOworICAgICAgICBmaWx0ZXItPnNldENsaXBPcGVyYXRpb24oKmNsaXBPcGVyYXRpb24p
OworICAgICAgICBmaWx0ZXItPnNldEZpbHRlclJlZ2lvbigqZmlsdGVyUmVnaW9uKTsKKyAgICB9
CisKKyAgICByZXR1cm4gZmlsdGVyOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorUmVm
UHRyPFdlYkNvcmU6OkZpbHRlcj4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXIoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9u
OjpUeXBlPiBmaWx0ZXJUeXBlOworICAgIGRlY29kZXIgPj4gZmlsdGVyVHlwZTsKKyAgICBpZiAo
IWZpbHRlclR5cGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGRlY29k
ZUZpbHRlcihkZWNvZGVyLCAqZmlsdGVyVHlwZSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlRmlsdGVyKG1fZmlsdGVyLCBlbmNvZGVyKTsKK30KKwordGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8RmlsdGVyUmVmZXJlbmNlPiBGaWx0ZXJSZWZl
cmVuY2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChhdXRvIGZpbHRlciA9
IGRlY29kZUZpbHRlcihkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIHsgZmlsdGVyLnJlbGVhc2VO
b25OdWxsKCkgfTsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCit9IC8vIG5hbWVzcGFj
ZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDJjODM5
YTllOWJjZDhlOWYxMjFkZjg5MzBmZjQyZmM2MGNiMjdkMGYuLjA5MzBjZjkxN2JhNzkwZTU3NWQ4
NGI5NjllYWMwNTgxZjUyZjUxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQpAQCAtMjY2LDYgKzI2Niw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3
YXJkX2RlY2xhcmVkKCk6CiAgICAgcmV0dXJuIGZyb3plbnNldChbCiAgICAgICAgICdDVlBpeGVs
QnVmZmVyUmVmJywKICAgICAgICAgJ0lQQzo6RGF0YVJlZmVyZW5jZScsCisgICAgICAgICdJUEM6
OkZpbHRlclJlZmVyZW5jZScsCiAgICAgICAgICdJUEM6OkZvbnRSZWZlcmVuY2UnLAogICAgICAg
ICAnSVBDOjpTZW1hcGhvcmUnLAogICAgICAgICAnTWFjaFNlbmRSaWdodCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxOTIwNjllY2I3
ZWI3MDViMDM0ZDgwOWI1NzcyNTM5MDAwMDFhZDY0Li5mYmM0YmJjNGNhYTJhMTk2Y2NiOWY1NGI0
ZjhlYTQ0MjZkOTZkZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQ5NDgsNiArNDk0OCw3IEBACiAJCTcyMDM0NDlBMjZBNkM0NEMw
MDBBNUY1NCAvKiBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
bm90b25pY09iamVjdElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzIwMzQ0OUIyNkE2QzQ3NjAwMEE1RjU0IC8qIFJlbmRlcmluZ1VwZGF0ZUlELmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlcmluZ1VwZGF0ZUlELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyNDY5NjNBMjc1QjdFNjcwMEE5MTU2QSAvKiBG
aWx0ZXJSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsdGVyUmVmZXJlbmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNkQ1NkREMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1v
dGVSZXNvdXJjZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2Fj
aGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZERTI1M0E2NDgxMDAw
MkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNv
dXJjZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM0MjQwNzg1
N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTc0NjMsNiArNzQ2NCw3IEBACiAJCQkJQkMwMzJEOUUxMEY0MzdEMTAwNThDMTVBIC8q
IERlY29kZXIuaCAqLywKIAkJCQlCQzAzMkQ5RjEwRjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5j
cHAgKi8sCiAJCQkJQkMwMzJEQTAxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuaCAqLywKKwkJ
CQk3MjQ2OTYzQTI3NUI3RTY3MDBBOTE1NkEgLyogRmlsdGVyUmVmZXJlbmNlLmggKi8sCiAJCQkJ
OUJEOEFCNDkyNTgyMEU1MjAwNTM4NkY4IC8qIEZvbnRSZWZlcmVuY2UuaCAqLywKIAkJCQk0MTUx
RTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFSZWZlcmVuY2UuaCAqLywKIAkJCQlDMENF
NzJBQzEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCmluZGV4IDk0MjFkZDIzOGNiNmVjNjNm
ZTFjMDdkNDczNjFjYjBiNjVmZjQwY2IuLjMyYTM0MmRiZmJkZmE3ZjBjMzliYzYzNmE0NzkyMDMx
YWUxNzc0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1
ZGUgIkZpbHRlclJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KQEAgLTE5NCw2ICsxOTUsMTEgQEAgdm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5k
cyhjb25zdCBGbG9hdFIKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoZGVzdGluYXRpb24pKTsKIH0KIAordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFn
ZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZp
bHRlcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpE
cmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZUlkZW50aWZpZXIsIHNvdXJjZUltYWdl
UmVjdCwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UoUmVmPEZpbHRlcj4geyBmaWx0ZXIgfSkpKTsKK30K
Kwogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdHbHlwaHMo
Y29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBH
bHlwaEJ1ZmZlckFkdmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQ
b2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIG1vZGUpCiB7CiAgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0dseXBocyhEaXNwbGF5TGlz
dDo6RHJhd0dseXBocyB7IGZvbnQsIGdseXBocywgYWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hv
ciwgbW9kZSB9KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaApp
bmRleCA3MWZkYjYzZGY0YWM4NDk3NDcyMzI2OWI3ZjAzZDk5N2I4MTM5ODlkLi42Zjc4MDlkNWVl
ZTMwMmQyMjE5MzZjYTA1M2I4NzM5NGNiYTQ3ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5LmgKQEAgLTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlY29yZENsaXBQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmLCBXZWJDb3JlOjpXaW5kUnVsZSkg
ZmluYWw7CiAgICAgdm9pZCByZWNvcmRCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24pIGZpbmFsOworICAgIHZvaWQgcmVj
b3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIFdlYkNvcmU6OkZpbHRlciYpIGZpbmFsOwog
ICAgIHZvaWQgcmVjb3JkRHJhd0dseXBocyhjb25zdCBXZWJDb3JlOjpGb250JiwgY29uc3QgV2Vi
Q29yZTo6R2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IFdlYkNvcmU6OkdseXBoQnVmZmVyQWR2YW5j
ZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhbEFuY2hv
ciwgV2ViQ29yZTo6Rm9udFNtb290aGluZ01vZGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJh
d0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdOYXRpdmVJbWFnZShXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApp
bmRleCAwOTU1N2E3NWIwZWQ0ZTEwZjU2YmI0ODllZjAzZDc4YmVjM2ZiYWUwLi45ZjNhZDEzNjI2
MmE5MmZlZDUwYWY1MmI1ZDIxNDI5MzlhM2I0MjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaApAQCAtMTk4LDYgKzE5OCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBiaXRt
YXAtPmNyZWF0ZUltYWdlKCk7CiAgICAgfQogCisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBm
aWx0ZXJlZEltYWdlKFdlYkNvcmU6OkZpbHRlciYgZmlsdGVyKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgaWYgKFVOTElLRUxZKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCisgICAg
ICAgICAgICByZXR1cm4geyB9OworICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAg
ICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+Z2V0RmlsdGVyZWRJbWFn
ZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgZmlsdGVyKTsKKyAgICB9CisKICAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBX
ZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgZGVzdGluYXRpb25Gb3JtYXQsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoVU5M
SUtFTFkoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCAyY2Q1MzFjMTk2MTcyMmE3ZTE3ZGZkNzEzMDAz
ZWRhYTQ3M2M3YmYwLi41MDI1YTk1ZTRkYzhkZDMxYTJmYjE1YjE4ZjU3NTBhNTUyODc1MTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0yMjMsNiArMjIz
LDIyIEBAIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Z2V0U2hhcmVhYmxlQml0bWFwKFJlbmRlcmluCiAgICAgcmV0dXJuIFNoYXJlYWJsZUJpdG1h
cDo6Y3JlYXRlKGhhbmRsZSk7CiB9CiAKK1JlZlB0cjxJbWFnZT4gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpnZXRGaWx0ZXJlZEltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
bWFnZUJ1ZmZlciwgRmlsdGVyJiBmaWx0ZXIpCit7CisgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUgaGFuZGxlOworICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpHZXRGaWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXIoaW1hZ2VC
dWZmZXIsIElQQzo6RmlsdGVyUmVmZXJlbmNlIHsgZmlsdGVyIH0pLCBNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6R2V0RmlsdGVyZWRJbWFnZUZvckltYWdlQnVmZmVyOjpSZXBseSho
YW5kbGUpLCByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCAxX3MpOworICAgIEFTU0VSVF9V
TlVTRUQoc2VuZFJlc3VsdCwgc2VuZFJlc3VsdCk7CisKKyAgICBpZiAoaGFuZGxlLmlzTnVsbCgp
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBiaXRtYXAgPSBTaGFyZWFibGVCaXRt
YXA6OmNyZWF0ZShoYW5kbGUpOworICAgIGlmICghYml0bWFwKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgcmV0dXJuIGJpdG1hcC0+Y3JlYXRlSW1hZ2UoKTsKK30KKwogdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBzZW5kVG9TdHJlYW0oTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OkNhY2hlTmF0aXZlSW1hZ2UoaGFuZGxlLCByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmlu
ZGV4IDA5Yzg5MTA3YWQ5N2RiYTQxYmJjMzIxMDNiYWNhZDI5YzAxMmUyYTYuLjMwZTE2MzFlOGY5
NjdjMDU5NDA2NzIxMWY4MWMzYWZhOTBkNjc5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuaApAQCAtNDcsNiArNDcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U7CitjbGFzcyBGaWx0ZXI7CiBjbGFzcyBGbG9hdFNp
emU7CiBjbGFzcyBQaXhlbEJ1ZmZlcjsKIApAQCAtOTIsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIGdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9u
LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFZlY3Rvcjx1aW50
OF90PiBnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpv
cHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZ2V0U2hhcmVhYmxlQml0bWFwKFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNv
bHV0aW9uKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGdldEZpbHRlcmVkSW1hZ2UoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWx0ZXImKTsKICAg
ICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVGb250
KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7Cg==
</data>
<flag name="commit-queue"
          id="471299"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445979</attachid>
            <date>2021-12-04 23:33:19 -0800</date>
            <delta_ts>2021-12-05 00:41:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232844-20211204233318.patch</filename>
            <type>text/plain</type>
            <size>124266</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI3Mjk5NTM4MGYwNjk3
NGRlMDdjYjhhYzU4MzRjNWEzNzNlZTE5ZC4uOWEzYmMzMDBiMmRmMGJmZWViYmVhNzA0NmI2NDBk
YjUyMDhjNzdkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAyMS0xMi0wNCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmlsdGVyRWZmZWN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgdGhlIGVuY29kaW5nIGFuZCBkZWNvZGluZyBmb3IgdGhlIEZpbHRlckVmZmVjdCBhbmQg
dGhlCisgICAgICAgIEZpbHRlciBvYmplY3RzLiBCZWNhdXNlIHRoZXNlIG9iamVjdHMgaGF2ZSBz
dXBlci1jbGFzc2VzLCB3ZSBhcmUgZ29pbmcKKyAgICAgICAgdG8gZG8gdGhlIGVuY29kaW5nIGFu
ZCBkZWNvZGluZyB0aHJvdWdoIGEgbmV3IElQQyBjbGFzcyBjYWxsZWQKKyAgICAgICAgRmlsdGVy
UmVmZXJlbmNlLgorCisgICAgICAgIFRoZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2YgdGhlc2Ug
Y2xhc3NlcyB3aWxsIGJlIG5lZWRlZCBpbiB0d28gY2FzZXM6CisKKyAgICAgICAgMSkgRGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcigpCisgICAgICAgIDIpIFJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmZpbHRlcmVkSW1hZ2UoKQorCisgICAgICAgIEEgZmV3IHRo
aW5ncyBoYXZlIG5vdCBiZSBkb25lIHRoaXMgcGF0Y2ggeWV0OgorCisgICAgICAgIDEpIExpZ2h0
U291cmNlIGhhcyBub3QgYmVlbiBlbmNvZGVkL2RlY29kZWQKKyAgICAgICAgMikgRkVMaWdodGlu
ZyBjbGFzc2VzIGhhdmUgbm90IGJlZW4gZW5jb2RlZC9kZWNvZGVkCisgICAgICAgIDMpIEZFSW1h
Z2UgaGFzIG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorICAgICAgICA0KSBTVkdGaWx0ZXIgaGFz
IG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3Qg
Y2hhbmdlIGFueSBiZWhhdmlvciBldmVuIGlmIHRoZSBHUFUgUHJvY2VzcyBmb3IgRE9NCisgICAg
ICAgIHJlbmRlcmluZyBpcyBlbmFibGVkLiBUaGUgc291cmNlSW1hZ2UgZm9yIHRoZSBmaWx0ZXIg
YW5kIHRoZSBmaWx0ZXIgaW1hZ2UKKyAgICAgICAgbmVlZCB0byBiZSBvZiB0eXBlIG9mIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkgdG8gdGhpcyBjb2RlIHRvIGJlIGNhbGxlZC4KKworICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1IYW5kbGU6OnNhZmVDb3B5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6c2l6ZU9mSXRlbUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OmlzRHJhd2luZ0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Omlz
SW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbVR5cGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6YXBw
bHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZElt
YWdlQnVmZmVyOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0
b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcjo6c291cmNlSW1hZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6c291cmNlSW1hZ2VSZWN0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcjo6Z2xvYmFsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVk
SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OnJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlckltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGRUJsZW5kOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmRlY29kZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbjo6ZGVj
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFQ29tcG9zaXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RkVDb21wb3NpdGU6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbnZvbHZlTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb252b2x2ZU1hdHJpeDo6ZGVj
b2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRURpZmZ1c2VMaWdodGluZzo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGRURpc3BsYWNlbWVudE1hcDo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6CisgICAgICAgIChXZWJDb3JlOjpG
RURyb3BTaGFkb3c6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFk
b3c6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29k
Lmg6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RkVGbG9vZDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1
cjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oOgor
ICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZFTGlnaHRpbmc6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRU1lcmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdlOjpGRU1lcmdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdlOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5Lmg6CisgICAgICAg
IChXZWJDb3JlOjpGRU1vcnBob2xvZ3k6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGRU1vcnBob2xvZ3k6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU9mZnNldC5oOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpGRU9mZnNldDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oOgorICAgICAgICAoV2Vi
Q29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVR1cmJ1bGVuY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXI6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyOjpzZXRDbGlwT3BlcmF0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZpbHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6Q1NTRmlsdGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckZp
bHRlcnM6OmFwcGx5RmlsdGVyRWZmZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291
cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTWVyZ2VFbGVtZW50OjpidWlsZCBj
b25zdCk6CisKIDIwMjEtMTItMDMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSAoUkVHUkVTU0lPTiByMjg1NTk3KTogRml4IFNWR0Zp
bHRlciBjbGFtcGluZyBjYWxjdWxhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4Nzc2OTE0OTc2YjJhOTJmNzZk
ZDg3NjExZDI4MWEwMjhiMTM3NDk1Li5kOTNlYzA0MTZiNTlhNDJkMjdkYzhiZDM3NjZiMjdmYmU3
MDhkNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEyLTA0ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gQWRkIHRo
ZSBlbmNvZGluZy9kZWNvZGluZyBmb3IgRmlsdGVyIGFuZCBGaWx0ZXJFZmZlY3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRG
aWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvRmlsdGVyUmVmZXJlbmNlLmg6IEFkZGVkLgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZl
cmVuY2U6OkZpbHRlclJlZmVyZW5jZSk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6
dGFrZUZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlRmlsdGVy
RWZmZWN0KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZl
Y3QpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZVNWR0ZpbHRlcik6Cisg
ICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlU1ZHRmlsdGVyKToKKyAgICAgICAg
KElQQzo6RmlsdGVyUmVmZXJlbmNlOjplbmNvZGVDU1NGaWx0ZXIpOgorICAgICAgICAoSVBDOjpG
aWx0ZXJSZWZlcmVuY2U6OmRlY29kZUNTU0ZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJl
ZmVyZW5jZTo6ZW5jb2RlRmlsdGVyKToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpk
ZWNvZGVGaWx0ZXIpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2Jl
X2ZvcndhcmRfZGVjbGFyZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmdldEZpbHRlcmVkSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorCiAyMDIxLTEyLTAzICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFdlYiBjb250
ZW50IHByb2Nlc3Mgc29tZXRpbWVzIGNyYXNoZXMgdW5kZXIgV2ViUGFnZTo6cG9zaXRpb25JbmZv
cm1hdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNTVhMDkwYjYyOWNmNDdjMTczMDNhZjJkNDBmOTc5ZmIwMTcwMTMxYi4u
OGEyYTkzMzhmNDAwOGZjZDA5MTgyOGUxYTdjMDAzZjY4NjNmOTNmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIzMyw3ICsx
MjMzLDcgQEAKIAkJNDMxMDdCRTIxOENDMTlERTAwQ0MxOEU4IC8qIFNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMx
MDdCRTExOENDMTlERTAwQ0MxOEU4IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5oICovOyB9Owog
CQk0MzJEM0ZFODE4QTg2NTg0MDBEN0RDMDMgLyogU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9u
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMyRDNG
RTcxOEE4NjU4NDAwRDdEQzAzIC8qIFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCAqLzsg
fTsKIAkJNDM1OEU4N0QxMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4
N0IxMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oICovOyB9Owot
CQk0MzU4RTg4MTEzNjBBMzE3MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg3RjEzNjBBMzE3MDBFNDc0
OEMgLyogRkVEcm9wU2hhZG93LmggKi87IH07CisJCTQzNThFODgxMTM2MEEzMTcwMEU0NzQ4QyAv
KiBGRURyb3BTaGFkb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzNThFODdGMTM2MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MzU4RTg4NjEzNjBB
MzNCMDBFNDc0OEMgLyogU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4ODMxMzYwQTMzQjAwRTQ3NDhDIC8q
IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJNDM2NzA4QzExMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFJlbmRlclNWR0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MzY3MDg4MjEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHQmxvY2su
aCAqLzsgfTsKIAkJNDM2NzA4QzMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4
ODQxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5oICovOyB9OwpAQCAtMjMw
MSw2ICsyMzAxLDEwIEBACiAJCTcyMTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0
eU93bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NUVFNTM2MDIyM0IyQTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMUI0OTc0MjUxMkJBM0Iw
MEZFOUQzQiAvKiBJbWFnZUJpdG1hcEJhY2tpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyMUI0OTcwMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFnZUJp
dG1hcEJhY2tpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3MjI4M0YwRTIzMEIyNjhDMDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNG
MjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyNDY5NjNCMjc1QzVGQTYwMEE5
MTU2QSAvKiBDU1NGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNTNGQjgzMjEzQjFCQjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjQ2OTYzRDI3NUM2
MTQ0MDBBOTE1NkEgLyogRmlsdGVyRWZmZWN0VmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjE0QjlCNzI3NDQ1OEZBMDAzQkU2REYgLyogRmls
dGVyRWZmZWN0VmVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNzI0Njk2M0UyNzVDNjE2NzAwQTkxNTZBIC8qIEZpbHRlckltYWdlVmVjdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MkI0RUY3
QzI3NEVFMzdGMDAyOTNDMkYgLyogRmlsdGVySW1hZ2VWZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjQ2OTYzRjI3NUM2NDdCMDBBOTE1
NkEgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0NjFERDNEMUM1MDBFOTJEQTMgLyogU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxl
bmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJ
CTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFG
RkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRl
Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2Jz
ZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMjcyMCwzNSArMjcyNCwzNSBAQAogCQk4NDMwMEJENjEyMEM5QUFDMDAyMTk1NEEgLyogU1ZH
UGF0aFN0cmluZ1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODQzMDBCRDUxMjBDOUFBQzAwMjE5NTRBIC8qIFNWR1BhdGhTdHJpbmdTb3VyY2Uu
aCAqLzsgfTsKIAkJODQzMDBCRDgxMjBDOUFENDAwMjE5NTRBIC8qIFNWR1BhdGhTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MzAwQkQ3MTIw
QzlBRDQwMDIxOTU0QSAvKiBTVkdQYXRoU291cmNlLmggKi87IH07CiAJCTg0NUU3MkY4MEZEMjYx
RUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0NUU3MkY3MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NDVFNzJGQzBGRDI2
MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDVFNzJGQTBGRDI2MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmgg
Ki87IH07CisJCTg0NUU3MkZDMEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NUU3MkZBMEZEMjYyMzkw
MEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NDY1MEU3RTIzODdBRDdEMDA2MjY2RTIgLyogTWVkaWFRdWVyeUxp
c3RFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ2NTBFN0MyMzg3QUQ3QzAwNjI2NkUyIC8qIE1lZGlhUXVlcnlMaXN0RXZlbnQuaCAqLzsgfTsK
IAkJODQ3MzBENzcxMjQ4RjBCMzAwRDNBOUM5IC8qIERpc3RhbnRMaWdodFNvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUExMjQ4RjBC
MzAwRDNBOUM5IC8qIERpc3RhbnRMaWdodFNvdXJjZS5oICovOyB9OwotCQk4NDczMEQ3OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFQ29u
dm9sdmVNYXRyaXguaCAqLzsgfTsKLQkJODQ3MzBEN0IxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlm
ZnVzZUxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDczMEQ1RTEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuaCAqLzsg
fTsKLQkJODQ3MzBEN0QxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2MDEyNDhG
MEIzMDBEM0E5QzkgLyogRkVEaXNwbGFjZW1lbnRNYXAuaCAqLzsgfTsKLQkJODQ3MzBEN0YxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzMwRDYyMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29kLmggKi87
IH07Ci0JCTg0NzMwRDgxMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUxpZ2h0aW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2NDEyNDhGMEIzMDBE
M0E5QzkgLyogRkVMaWdodGluZy5oICovOyB9OwotCQk4NDczMEQ4MzEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVNZXJnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ3MzBENjYxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuaCAqLzsgfTsKLQkJODQ3MzBE
ODUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjgxMjQ4RjBCMzAwRDNBOUM5IC8qIEZF
TW9ycGhvbG9neS5oICovOyB9OwotCQk4NDczMEQ4NzEyNDhGMEIzMDBEM0E5QzkgLyogRkVPZmZz
ZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMw
RDZBMTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oICovOyB9OwotCQk4NDczMEQ4OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2QzEyNDhGMEIzMDBEM0E5QzkgLyogRkVT
cGVjdWxhckxpZ2h0aW5nLmggKi87IH07Ci0JCTg0NzMwRDhCMTI0OEYwQjMwMEQzQTlDOSAvKiBG
RVRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
NzMwRDZFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRpbGUuaCAqLzsgfTsKLQkJODQ3MzBEOEQxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFVHVyYnVsZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFVHVyYnVs
ZW5jZS5oICovOyB9OwotCQk4NDczMEQ5MTEyNDhGMEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc0
MTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oICovOyB9OworCQk4NDczMEQ3OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFQ29u
dm9sdmVNYXRyaXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk4NDczMEQ3QjEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDVFMTI0
OEYwQjMwMEQzQTlDOSAvKiBGRURpZmZ1c2VMaWdodGluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDdEMTI0OEYwQjMwMEQzQTlDOSAv
KiBGRURpc3BsYWNlbWVudE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3MzBENjAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFw
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3
MzBEN0YxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDYyMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZs
b29kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
ODQ3MzBEODExMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY0MTI0OEYwQjMwMEQzQTlDOSAv
KiBGRUxpZ2h0aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJODQ3MzBEODMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY2MTI0OEYwQjMwMEQz
QTlDOSAvKiBGRU1lcmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJODQ3MzBEODUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjgxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9m
ZnNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3
MzBENkExMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3MzBEODkxMjQ4RjBCMzAwRDNBOUM5IC8q
IEZFU3BlY3VsYXJMaWdodGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3MzBENkMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3VsYXJMaWdodGlu
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0
NzMwRDhCMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDZFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRp
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4
NDczMEQ4RDEyNDhGMEIzMDBEM0E5QzkgLyogRkVUdXJidWxlbmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3MDEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVUdXJidWxlbmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJODQ3MzBEOTExMjQ4RjBCMzAwRDNBOUM5IC8qIExpZ2h0U291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NDEyNDhG
MEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDczMEQ5MjEyNDhGMEIzMDBEM0E5QzkgLyogUG9pbnRM
aWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ3MzBENzUxMjQ4RjBCMzAwRDNBOUM5IC8qIFBvaW50TGlnaHRTb3VyY2UuaCAqLzsgfTsK
IAkJODQ3MzBEOTMxMjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzYxMjQ4RjBCMzAw
RDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDc2QzlFNjExREY2QTBCMDA1
NTVCMDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFNDExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyLmggKi87IH07CiAJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBT
VkdQYXRoQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODQ3NkM5RTgxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggKi87IH07
CiAJCTg0NzZDOUVDMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkw
MDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCAqLzsgfTsKIAkJODQ3NkM5RjAxMURGNkE1ODAw
NTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2Vy
LmggKi87IH07Ci0JCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMx
MDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggKi87IH07CisJCTg0ODAxOTU1MTA4
QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1
c3NpYW5CbHVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODQ4MkI3NDYxMTk4QzM1NDAwQkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ0MkJCRjgxMTk0QzlE
MzAwRDQ5NDY5IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovOyB9OwogCQk4NDgyQjc1MjExOThDQjZC
MDBCRkIwMDUgLyogSlNIYXNoQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODJCNzUwMTE5OENCNkIwMEJGQjAwNSAvKiBKU0hhc2hD
aGFuZ2VFdmVudC5oICovOyB9OwogCQk4NDg1MjI3QzExOTAxNjJDMDA2RURDN0YgLyogSlNTVkdI
S2VybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0ODUyMjc4MTE5MDE2MkMwMDZFREM3RiAvKiBKU1NWR0hLZXJuRWxlbWVudC5oICovOyB9
OwogCQk4NDg1MjI3RTExOTAxNjJDMDA2RURDN0YgLyogSlNTVkdWS2VybkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODUyMjdBMTE5MDE2
MkMwMDZFREM3RiAvKiBKU1NWR1ZLZXJuRWxlbWVudC5oICovOyB9OwogCQk4NDg1MjI4QjExOTAx
NzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDg1MjI4ODExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktl
cm5FbGVtZW50LmggKi87IH07Ci0JCTg0QTgxRjNFMEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VB
bHBoYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRB
ODFGM0MwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggKi87IH07Ci0JCTg0QTgxRjQy
MEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUY0MDBGQzdFMDI3MDA5NTUzMDAgLyogU291
cmNlR3JhcGhpYy5oICovOyB9OworCQk4NEE4MUYzRTBGQzdERkYwMDA5NTUzMDAgLyogU291cmNl
QWxwaGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
QTgxRjNDMEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VBbHBoYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMw
MCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NEE4MUY0MDBGQzdFMDI3MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0QjM0OUEy
MjJGODZFNzUwMEQ0N0JDRiAvKiBFdmVudFRhcmdldENvbmNyZXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEIzNDlBMDIyRjg2RTc0MDBENDdCQ0Yg
LyogRXZlbnRUYXJnZXRDb25jcmV0ZS5oICovOyB9OwogCQk4NEI2Qjk3ODEyMEYxM0U1MDBCOEVG
QUYgLyogU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0QjZCOTc2MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2Vn
TGlzdFNvdXJjZS5oICovOyB9OwogCQk4NEM1QjJGQjEyMTZEQzgxMDA4OEI1M0EgLyogU1ZHUGF0
aFRyYXZlcnNhbFN0YXRlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODRDNUIyRjkxMjE2REM4MTAwODhCNTNBIC8qIFNWR1BhdGhUcmF2ZXJz
YWxTdGF0ZUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTM1MTAsMTAgKzM1MTQsMTAgQEAKIAkJQTc0MEI1
QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzkxNEM5MzQ4NDAwQzhGNUJG
IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oICovOyB9OwogCQlBNzQwQjVBNzE0QzkzNUFGMDBBNzdG
QTQgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFs
U2V0dGluZ3MuY3BwICovOyB9OwogCQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTc1
RThCODkwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgxMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJs
ZW5kLmggKi87IH07Ci0JCUE3NUU4QjhCMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4
MzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5oICovOyB9OwotCQlBNzVFOEI4RDBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgfTsKLQkJQTc1RThCOEYwRTFERTJENjAwN0YyNDgx
IC8qIEZFQ29tcG9zaXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLzsgfTsK
KwkJQTc1RThCODkwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgxMEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUJsZW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJQTc1RThCOEIwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgzMEUxREUyRDYw
MDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc1RThCOEQwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9u
ZW50VHJhbnNmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc1RThCOEYw
RTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21w
b3NpdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzZFNUY3RjEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RTVGN0UxMzVF
MERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzc5NzkxQTBENkI5RDBDMDAzODUx
QjkgLyogSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzc5NzkxNDBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3OTc5MjkwRDZCOUU2
NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEu
aCAqLzsgfTsKQEAgLTM4NjUsNyArMzg2OSw3IEBACiAJCUIyMjJGNjlEMEFCNzcxQjgwMDIyRUZB
RCAvKiBKU1NWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyMjJGNjlCMEFCNzcxQjgwMDIyRUZBRCAvKiBKU1NWR0VsZW1lbnQuaCAqLzsg
fTsKIAkJQjIyMzYyMjkwQzNBRjA0QTAwMDhDQTlCIC8qIEpTU1ZHVGV4dFBhdGhFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIzNjIyNzBD
M0FGMDRBMDAwOENBOUIgLyogSlNTVkdUZXh0UGF0aEVsZW1lbnQuaCAqLzsgfTsKIAkJQjIzNTQw
RjMwRDAwNzgyRTAwMjM4MkZBIC8qIFN0cmluZ1RydW5jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIzNTQwRjEwRDAwNzgyRTAwMjM4MkZBIC8q
IFN0cmluZ1RydW5jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUIyNTU5OTg1MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdGRUltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OThFQjBEMDBE
OEI5MDBCQjgyNUMgLyogU1ZHRkVJbWFnZS5oICovOyB9OworCQlCMjU1OTk4NTBEMDBEOEJBMDBC
QjgyNUMgLyogU1ZHRkVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjI1NTk4RUIwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjU1OTlBNDBE
MDBEOEJBMDBCQjgyNUMgLyogU1ZHSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OTBDMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdJbWFnZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyNTU5
OUE1MEQwMEQ4QkEwMEJCODI1QyAvKiBFbXB0eUNsaWVudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OTBEMEQwMEQ4QjkwMEJCODI1QyAvKiBF
bXB0eUNsaWVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCMjc1MzU2NTBCMDUzODE0MDAyQ0U2NEYgLyogUERGRG9jdW1lbnRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI3NTM1MzcwQjA1
MzgxNDAwMkNFNjRGIC8qIFBERkRvY3VtZW50SW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzM2ODAsNiArMzM2ODQsNyBAQAogCQkJCUFB
MjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ0NzZCREIxREZDQUMwMzAwNjkwRTIzIC8qIENT
U0RlZmVycmVkUGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjQ2OTYzQjI3NUM1RkE2MDBB
OTE1NkEgLyogQ1NTRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGQkIwQzVCODE3QkJENjI5
MDAzRDM2NzcgLyogQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2
NEI0RDYwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODBFNkNGRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTM0MTg4LDggKzM0MTkzLDEwIEBACiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3
RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhDOTI1MUEwRkNDN0M0QTAwNDgw
REVDIC8qIEZpbHRlckVmZmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI2Q0RFMjAyNzU5NzM1
MDAwQTQ0NUIyIC8qIEZpbHRlckVmZmVjdEdlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3
MjQ2OTYzRDI3NUM2MTQ0MDBBOTE1NkEgLyogRmlsdGVyRWZmZWN0VmVjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3MkI4QjAzNTI3NTM0Mzg2MDBGNzUyQUEgLyogRmlsdGVyRnVuY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTcyQjhCMDM2Mjc1MzQ0MTQwMEY3NTJBQSAvKiBGaWx0ZXJJbWFn
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI0Njk2M0UyNzVDNjE2NzAwQTkxNTZBIC8qIEZpbHRl
ckltYWdlVmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUVDRUI2RTE0OTk3OTBEMDBDREQz
QTQgLyogRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUVDRUI3MDE0OTk3
OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcy
QzAwRDkxMjk2MTlGODAwNUM5NTc1IC8qIEZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKQEAg
LTM3MTgyLDYgKzM3MTg5LDcgQEAKIAkJCQlCMjIyN0E5MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
UG9seWdvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk0MEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdQb2x5bGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk3
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAq
LywKKwkJCQk3MjQ2OTYzRjI3NUM2NDdCMDBBOTE1NkEgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NURDQzUyODIyNDA3QjIwMDBDMjZFMzIgLyog
U1ZHUHJpbWl0aXZlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzIxNDQzMzMyMjNFQzhCMDAw
RjEyRkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjE0NDMzNDIyM0VD
OTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVy
LmgKaW5kZXggNzUwZGI0ZWU4OTE2NjBmYTRiZWNlYmM0NDQ3YzY4NWNlNWM0ODQ4MS4uMmZkNDIy
OWI3MTI3ZjA0OTBkNDJkNTQxZTE0NGFkNmE5ZDhlMWZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtMTQ2
LDcgKzE0Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgICAgIGNvbnN0X2Nhc3Q8Q29uY3JldGVJbWFnZUJ1ZmZlciY+KCp0aGlzKS5mbHVzaERyYXdp
bmdDb250ZXh0KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gZmlsdGVyLmFwcGx5KHRoaXMpOwor
ICAgICAgICBhdXRvIHJlc3VsdCA9IGZpbHRlci5hcHBseSh0aGlzLCB7IHsgfSwgbG9naWNhbFNp
emUoKSB9KTsKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAKaW5kZXggZTM3YjcxNTU3MTQwNjBiZmViN2FkYjAxODlmYWJlZGY3OWYxNjgx
NC4uMmNiYmNjNTY2M2ZlNTg4MDdkMTAzNjA2ZjViNTFhMGZmOGU1NjJkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBA
IC02MzEsOSArNjMxLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFn
ZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlLCBjb25zdAogICAgIEltYWdlQnVmZmVy
OjpkcmF3Q29uc3VtaW5nKFdURk1vdmUoaW1hZ2UpLCAqdGhpcywgZGVzdGluYXRpb24sIHNvdXJj
ZSwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIEZpbHRlciYgZmlsdGVyKQordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBzb3Vy
Y2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYgZmlsdGVy
KQogewotICAgIGF1dG8gcmVzdWx0ID0gZmlsdGVyLmFwcGx5KHNvdXJjZUltYWdlKTsKKyAgICBh
dXRvIHJlc3VsdCA9IGZpbHRlci5hcHBseShzb3VyY2VJbWFnZSwgc291cmNlSW1hZ2VSZWN0KTsK
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAzZDhkM2E3
MTI1M2UzNjMwZjhkOTVjZGRkNDA5NmJiNjQyMjg5YmY5Li4zMmVhMmVkMTQ1MWM1NGI0Y2RlODEz
MGE0OTM3ZTdkNTMyMDE2YTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtNDUyLDcgKzQ1Miw3IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihSZWZQdHI8SW1h
Z2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgPSB7IH0pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3
Q29uc3VtaW5nSW1hZ2VCdWZmZXIoUmVmUHRyPEltYWdlQnVmZmVyPiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBGaWx0ZXImKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVj
dCwgRmlsdGVyJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2Um
LCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdC5jcHAKaW5kZXggZTYxNWE3YmQ2ZDRhNzA4NTVhZjA5ZmVhMGMzOWQ1ODIwMzlk
ZmU5Yy4uZDliMGVkZGMyNjhjMjk1YjczZDliNjYxZWU4YzE1NmRiYTNkYjk3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3QuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtcy5oIgogI2luY2x1ZGUg
IkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CkBAIC0yNDMsNiArMjQ0LDggQEAgdm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5k
KEl0ZW1IYW5kbGUgaXRlbSkKICAgICAgICAgcmV0dXJuIGFwcGVuZDxCZWdpbkNsaXBUb0RyYXdp
bmdDb21tYW5kcz4oaXRlbS5nZXQ8QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHM+KCkpOwogICAg
IGNhc2UgSXRlbVR5cGU6OkVuZENsaXBUb0RyYXdpbmdDb21tYW5kczoKICAgICAgICAgcmV0dXJu
IGFwcGVuZDxFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM+KGl0ZW0uZ2V0PEVuZENsaXBUb0RyYXdp
bmdDb21tYW5kcz4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZm
ZXI6CisgICAgICAgIHJldHVybiBhcHBlbmQ8RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI+KGl0ZW0u
Z2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
R2x5cGhzOgogICAgICAgICByZXR1cm4gYXBwZW5kPERyYXdHbHlwaHM+KGl0ZW0uZ2V0PERyYXdH
bHlwaHM+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggZTgwNTA5ZWNjYTA1ZDJj
YzhlZDEwNjYwNzA0MWY1Y2NjYzNlMzc5NC4uNDAyNWUwNjkyZGM1YTE1ZTk3MzY5NTgwMzMzZjZm
YTNiOWJmYmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5j
cHAKQEAgLTExNCw2ICsxMTQsOSBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFu
ZHM6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIGdldDxEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm47CkBAIC0yNTYsNiArMjU5LDkgQEAgdm9pZCBJdGVtSGFuZGxl
OjpkZXN0cm95KCkKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDoKICAgICAgICAgZ2V0PENs
aXBQYXRoPigpLn5DbGlwUGF0aCgpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIGdldDxEcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcj4oKS5+RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdQYXRoOgogICAgICAgICBnZXQ8RHJhd0Zv
Y3VzUmluZ1BhdGg+KCkufkRyYXdGb2N1c1JpbmdQYXRoKCk7CiAgICAgICAgIHJldHVybjsKQEAg
LTQ5MSw2ICs0OTcsOCBAQCBib29sIEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1UeXBlIGl0ZW1U
eXBlLCBJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAogICAgICAgICByZXR1cm4gY29weUlu
dG88Q2xpcE91dFRvUGF0aD4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6
OkNsaXBQYXRoOgogICAgICAgICByZXR1cm4gY29weUludG88Q2xpcFBhdGg+KGl0ZW1PZmZzZXQs
ICp0aGlzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKKyAg
ICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPihpdGVtT2Zmc2V0
LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1BhdGg6CiAgICAgICAg
IHJldHVybiBjb3B5SW50bzxEcmF3Rm9jdXNSaW5nUGF0aD4oaXRlbU9mZnNldCwgKnRoaXMpOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdSZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCBiZGVjNjU0YjUyYmQ0NmQ2MzljYTJlOWFlYWI5
ZDYxZTg2M2RjMzg1Li5kZmExZTc0ZmIyNDg2YzM0YTA5YzFmYTFiYTJjYmRlNzQ5MDA0ZGRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC04MCw2ICs4MCw4
IEBAIHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAg
ICAgcmV0dXJuIHNpemVvZihCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyk7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOgogICAgICAgICByZXR1cm4gc2l6ZW9m
KEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyk7CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRl
cmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBzaXplb2YoRHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXIpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAgICAgICAgIHJldHVybiBz
aXplb2YoRHJhd0dseXBocyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgpA
QCAtMjE2LDYgKzIxOCw3IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBlKQogICAg
IGNhc2UgSXRlbVR5cGU6OkNsZWFyUmVjdDoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0Zv
ckRvY3VtZW50TWFya2VyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxpcHNlOgorICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdGb2N1c1JpbmdQYXRoOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdSZWN0
czoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgpAQCAtMzIyLDYgKzMyNSw3IEBAIGJv
b2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0
ZW5hdGVDVE06CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjoK
ICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6
CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdQYXR0ZXJuOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXgg
ODA4NDRlOGI5ZGYwNTVlNWExNmMzNjdjZTJiZjI5MGE5M2NlNjM3Mi4uOTFmM2Y1ZjUyODhiYzdl
YjJkYWQ2ZTQyZGRmYjNkYmYxOTgwYzc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5oCkBAIC01Miw2ICs1Miw3IEBAIGVudW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90
IHsKICAgICBDbGlwUGF0aCwKICAgICBCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcywKICAgICBF
bmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMsCisgICAgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIsCiAg
ICAgRHJhd0dseXBocywKICAgICBEcmF3SW1hZ2VCdWZmZXIsCiAgICAgRHJhd05hdGl2ZUltYWdl
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDcyZmM2ZDFhNzM0NDYx
NDI1ZjBjZTU2N2Y2YjgwYzA0NzIyYzBhYTEuLjA5ZjJiNTdjNjRhOGQyMWUyOTY1MWVhZjU3YzFj
Nzc3OTc3ODZmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCiAKICNpbmNsdWRlICJE
aXNwbGF5TGlzdFJlcGxheWVyLmgiCisjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiRm9u
dENhc2NhZGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyLmgiCkBAIC0yOTksNiArMzAwLDMwIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMmIGl0CiAgICAg
cmV0dXJuIHRzOwogfQogCitEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6RHJhd0ZpbHRlcmVkSW1h
Z2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJj
ZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRl
ciYgZmlsdGVyKQorICAgIDogbV9zb3VyY2VJbWFnZUlkZW50aWZpZXIoc291cmNlSW1hZ2VJZGVu
dGlmaWVyKQorICAgICwgbV9zb3VyY2VJbWFnZVJlY3Qoc291cmNlSW1hZ2VSZWN0KQorICAgICwg
bV9maWx0ZXIoZmlsdGVyKQoreworfQorCitOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIERy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAorewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIERyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFdlYkNvcmU6OkltYWdlQnVmZmVy
KiBzb3VyY2VJbWFnZSkKK3sKKyAgICBjb250ZXh0LmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNv
dXJjZUltYWdlLCBtX3NvdXJjZUltYWdlUmVjdCwgbV9maWx0ZXIpOworfQorCitzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0ZpbHRlcmVkSW1h
Z2VCdWZmZXImIGl0ZW0pCit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtaW1hZ2UtaWRl
bnRpZmllciIsIGl0ZW0uc291cmNlSW1hZ2VJZGVudGlmaWVyKCkpOworICAgIHRzLmR1bXBQcm9w
ZXJ0eSgic291cmNlLWltYWdlLXJlY3QiLCBpdGVtLnNvdXJjZUltYWdlUmVjdCgpKTsKKyAgICBy
ZXR1cm4gdHM7Cit9CisKIERyYXdHbHlwaHM6OkRyYXdHbHlwaHMoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGZvbnRJZGVudGlmaWVyLCBWZWN0b3I8R2x5cGhCdWZmZXJHbHlwaCwgMTI4PiYm
IGdseXBocywgVmVjdG9yPEdseXBoQnVmZmVyQWR2YW5jZSwgMTI4PiYmIGFkdmFuY2VzLCBjb25z
dCBGbG9hdFJlY3QmIGJvdW5kcywgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRT
bW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiAgICAgOiBtX2ZvbnRJZGVudGlmaWVyKGZvbnRJ
ZGVudGlmaWVyKQogICAgICwgbV9nbHlwaHMoV1RGTW92ZShnbHlwaHMpKQpAQCAtMTA1OSw2ICsx
MDg0LDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0
ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6IHRzIDw8ICJjbGlwLXBh
dGgiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5k
czogdHMgPDwgImJlZ2luLWNsaXAtdG8tZHJhd2luZy1jb21tYW5kczoiOyBicmVhazsKICAgICBj
YXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM6IHRzIDw8ICJlbmQtY2xpcC10
by1kcmF3aW5nLWNvbW1hbmRzIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRl
cmVkSW1hZ2VCdWZmZXI6IHRzIDw8ICJkcmF3LWZpbHRlcmVkLWltYWdlLWJ1ZmZlciI7IGJyZWFr
OwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6IHRzIDw8ICJkcmF3LWdseXBocyI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjogdHMgPDwgImRyYXctaW1h
Z2UtYnVmZmVyIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOiB0
cyA8PCAiZHJhdy1uYXRpdmUtaW1hZ2UiOyBicmVhazsKQEAgLTExNzgsNiArMTIwNCw5IEBAIFRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAg
ICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM6CiAgICAgICAgIHRzIDw8
IGl0ZW0uZ2V0PEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcz4oKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIHRzIDw8
IGl0ZW0uZ2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigpOworICAgICAgICBicmVhazsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxEcmF3
R2x5cGhzPigpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
CmluZGV4IGUxNGE0Mjk5M2EwZjJhZmRiMmY0YjE2YTBhYWJmOTVlZTE0ZGIzN2UuLjgzNWIwMTJk
NWZjMGI0OTYwNGVmM2FlYWJmNTExYWE2MWNiM2UyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaApAQCAtOTEyLDYgKzkxMiwyOSBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBt
X2Rlc3RpbmF0aW9uOwogfTsKIAorY2xhc3MgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6
RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5s
aW5lSXRlbSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVt
ID0gdHJ1ZTsKKworICAgIFdFQkNPUkVfRVhQT1JUIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0
ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50
aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImKTsKKworICAg
IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUltYWdlSWRlbnRpZmllcjsgfQorICAg
IEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUltYWdl
UmVjdDsgfQorCisgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGlj
c0NvbnRleHQmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5KEdyYXBoaWNz
Q29udGV4dCYsIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSk7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gc3RkOjpu
dWxsb3B0OyB9CisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0
IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2VSZWN0OyB9CisK
K3ByaXZhdGU6CisgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+
IG1fc291cmNlSW1hZ2VJZGVudGlmaWVyOworICAgIEZsb2F0UmVjdCBtX3NvdXJjZUltYWdlUmVj
dDsKKyAgICBSZWY8RmlsdGVyPiBtX2ZpbHRlcjsKK307CisKIGNsYXNzIERyYXdHbHlwaHMgewog
cHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlw
ZTo6RHJhd0dseXBoczsKQEAgLTI0MDUsNiArMjQyOCw3IEBAIHVzaW5nIERpc3BsYXlMaXN0SXRl
bSA9IHN0ZDo6dmFyaWFudAogICAgICwgQ29uY2F0ZW5hdGVDVE0KICAgICAsIERyYXdEb3RzRm9y
RG9jdW1lbnRNYXJrZXIKICAgICAsIERyYXdFbGxpcHNlCisgICAgLCBEcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcgogICAgICwgRHJhd0ZvY3VzUmluZ1BhdGgKICAgICAsIERyYXdGb2N1c1JpbmdSZWN0
cwogICAgICwgRHJhd0dseXBocwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwCmluZGV4IDJmZDQzZjk5YWUzNTRhZGFkNzNiZDg1ZjE0ZmY1ZWMwYmU0ZmQ5ODQuLmQ4Yjhm
Y2EzOTNhZjYzNmRmYjg0Zjg0NzA1NzVjY2FmYzlhNzNlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTE0NCw2ICsxNDQsMjQgQEAgdm9pZCBSZWNvcmRl
cjo6c2V0TWl0ZXJMaW1pdChmbG9hdCBtaXRlckxpbWl0KQogICAgIHJlY29yZFNldE1pdGVyTGlt
aXQobWl0ZXJMaW1pdCk7CiB9CiAKK3ZvaWQgUmVjb3JkZXI6OmRyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFn
ZVJlY3QsIEZpbHRlciYgZmlsdGVyKQoreworICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbUlmTmVj
ZXNzYXJ5KCk7CisKKyAgICBpZiAoIXNvdXJjZUltYWdlKSB7CisgICAgICAgIHJlY29yZERyYXdG
aWx0ZXJlZEltYWdlQnVmZmVyKHsgfSwgc291cmNlSW1hZ2VSZWN0LCBmaWx0ZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFjYW5EcmF3SW1hZ2VCdWZmZXIoKnNvdXJjZUlt
YWdlKSkgeworICAgICAgICBHcmFwaGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVy
KHNvdXJjZUltYWdlLCBzb3VyY2VJbWFnZVJlY3QsIGZpbHRlcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICByZWNvcmRSZXNvdXJjZVVzZSgqc291cmNlSW1hZ2UpOworICAgIHJlY29y
ZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNvdXJjZUltYWdlLT5yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIoKSwgc291cmNlSW1hZ2VSZWN0LCBmaWx0ZXIpOworfQorCiB2b2lkIFJlY29yZGVy
OjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGds
eXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5
cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9v
dGhpbmdNb2RlKQogewogICAgIG1fZHJhd0dseXBoc1JlY29yZGVyLmRyYXdHbHlwaHMoZm9udCwg
Z2x5cGhzLCBhZHZhbmNlcywgbnVtR2x5cGhzLCBzdGFydFBvaW50LCBzbW9vdGhpbmdNb2RlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDlhNDAxNDM2N2RiMWVm
NDNiOGE1OWU1MGUzZDQ3MTBmOTNlMDNlYmYuLjAyYWU1NzA2MTJlMzRiODIzZjYwNzRiZmVmZGUz
NjBlZWU4N2U2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAt
ODgsNiArODgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZENsaXBQYXRo
KGNvbnN0IFBhdGgmLCBXaW5kUnVsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmRCZWdp
bkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRW5kQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVjb3JkRHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCos
IGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBv
aW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVjb3JkRHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHJlY29yZERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpID0gMDsKQEAgLTIyNCw2ICsyMjUsOCBAQCBwcml2YXRlOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgYXBwbHlGaWxsUGF0dGVybigpIGZpbmFsOwogI2VuZGlmCiAKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVy
KiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYp
IGZpbmFsOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQm
LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5z
aWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgRm9udFNtb290
aGluZ01vZGUpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0dseXBoc0FuZENh
Y2hlRm9udChjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IEdseXBo
QnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFu
Y2hvciwgRm9udFNtb290aGluZ01vZGUpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlcklt
cGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAppbmRleCBhNWUyZDNiMjA5ODVlM2VmOTQxYTMyMzU3
NTZlMjgwZWFjZDUxNjNjLi4zMDM0MDgxMGFkZjZkYzk5Y2Y2MjhhMTI1ZTlkNDZkZThhOGE4N2U3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKQEAg
LTIwOCw2ICsyMDgsMTEgQEAgdm9pZCBSZWNvcmRlckltcGw6OnJlY29yZEVuZENsaXBUb0RyYXdp
bmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQogICAgIGFwcGVuZDxFbmRD
bGlwVG9EcmF3aW5nQ29tbWFuZHM+KGRlc3RpbmF0aW9uKTsKIH0KIAordm9pZCBSZWNvcmRlcklt
cGw6OnJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVj
dCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZpbHRlcikKK3sKKyAgICBhcHBlbmQ8RHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXI+KHNvdXJjZUltYWdlSWRlbnRpZmllciwgc291cmNlSW1hZ2VSZWN0
LCBmaWx0ZXIpOworfQorCiB2b2lkIFJlY29yZGVySW1wbDo6cmVjb3JkRHJhd0dseXBocyhjb25z
dCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMsIGNvbnN0IEdseXBo
QnVmZmVyQWR2YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50
JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgbW9kZSkKIHsKICAgICBhcHBlbmQ8RHJh
d0dseXBocz4oZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywgY291bnQsIGxvY2FsQW5jaG9yLCBtb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKaW5kZXggM2U2
ZDA5MDI2OTA0NmYxYjEyNGEzOWMxZTEyMTEwMGIzMjcyNjBjNS4uMjllNzI3NGYxNzVkYThhNjI3
OTMzOGVkZTM0ODM0MmIyZTg1NTRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXJJbXBsLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlY29y
ZENsaXBQYXRoKGNvbnN0IFBhdGgmLCBXaW5kUnVsZSkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRC
ZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRW5kQ2xpcFRvRHJh
d2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pIGZpbmFsOworICAgIHZv
aWQgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd0ds
eXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IEdseXBoQnVm
ZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hv
ciwgRm9udFNtb290aGluZ01vZGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlQnVm
ZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdOYXRpdmVJ
bWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBG
bG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaApp
bmRleCA4ODljNmY3YjE3NGIyMDY5Y2Q5YzNmOGEyYTUxNjU5ODU4OGZlMzMxLi5lNWRmMjE5MmE5
Y2MwMTc3YzdhYTFhMDMxZDE2YzZmMmE0Y2Y4ZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaApAQCAtMzAsMTEgKzMwLDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVCbGVuZCA6IHB1YmxpYyBGaWx0ZXJFZmZl
Y3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVCbGVuZD4gY3JlYXRlKEJsZW5kTW9kZSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUJsZW5kPiBjcmVhdGUoQmxlbmRNb2Rl
KTsKIAogICAgIEJsZW5kTW9kZSBibGVuZE1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0K
ICAgICBib29sIHNldEJsZW5kTW9kZShCbGVuZE1vZGUpOwogCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUJsZW5kPj4gZGVjb2RlKERlY29k
ZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUJsZW5kKEJsZW5kTW9kZSk7CiAKQEAgLTQ4LDYgKzUx
LDIzIEBAIHByaXZhdGU6CiAgICAgQmxlbmRNb2RlIG1fbW9kZTsKIH07CiAKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIEZFQmxlbmQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgbV9tb2RlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
Pgorc3RkOjpvcHRpb25hbDxSZWY8RkVCbGVuZD4+IEZFQmxlbmQ6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8QmxlbmRNb2RlPiBtb2RlOworICAgIGRlY29k
ZXIgPj4gbW9kZTsKKyAgICBpZiAoIW1vZGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICByZXR1cm4gRkVCbGVuZDo6Y3JlYXRlKCptb2RlKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVCbGVu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbG9yTWF0cml4LmgKaW5kZXggYTQzMTI1YjUzMTU2MmM2M2E5NTI4NDdjOGY5MDQ0OWM5
NGY3ZTg1Yi4uMjAyNDAxOTNlNTQwYmMyMGVmYjk0Njc0YjZhMDA0N2Q2OGIyMjM0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0
cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bG9yTWF0cml4LmgKQEAgLTM3LDcgKzM3LDcgQEAgZW51bSBDb2xvck1hdHJpeFR5cGUgewogCiBj
bGFzcyBGRUNvbG9yTWF0cml4IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxGRUNvbG9yTWF0cml4PiBjcmVhdGUoQ29sb3JNYXRyaXhUeXBlLCBWZWN0b3I8
ZmxvYXQ+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVDb2xvck1hdHJpeD4g
Y3JlYXRlKENvbG9yTWF0cml4VHlwZSwgVmVjdG9yPGZsb2F0PiYmKTsKIAogICAgIENvbG9yTWF0
cml4VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBzZXRUeXBl
KENvbG9yTWF0cml4VHlwZSk7CkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBjYWxjdWxhdGVIdWVSb3RhdGVDb21wb25lbnRzKGZsb2F0KiBjb21wb25lbnRzLCBmbG9h
dCB2YWx1ZSk7CiAgICAgc3RhdGljIFZlY3RvcjxmbG9hdD4gbm9ybWFsaXplZEZsb2F0cyhjb25z
dCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUNvbG9yTWF0cml4Pj4gZGVjb2RlKERlY29kZXIm
KTsKKwogcHJpdmF0ZToKICAgICBGRUNvbG9yTWF0cml4KENvbG9yTWF0cml4VHlwZSwgVmVjdG9y
PGZsb2F0PiYmKTsKIApAQCAtNjYsNiArNjksNDUgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Zmxv
YXQ+IG1fdmFsdWVzOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVDb2xv
ck1hdHJpeDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBtX3R5cGU7CisgICAgZW5jb2RlciA8PCBtX3ZhbHVlczsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFQ29sb3JNYXRyaXg+PiBGRUNvbG9yTWF0cml4
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbG9yTWF0
cml4VHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Zmxv
YXQ+PiB2YWx1ZXM7CisgICAgZGVjb2RlciA+PiB2YWx1ZXM7CisgICAgaWYgKCF2YWx1ZXMpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVDb2xvck1hdHJpeDo6
Y3JlYXRlKCp0eXBlLCBXVEZNb3ZlKCp2YWx1ZXMpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpDb2xvck1hdHJpeFR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAorICAgICAgICBXZWJDb3JlOjpDb2xvck1hdHJpeFR5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6
RkVDT0xPUk1BVFJJWF9UWVBFX1VOS05PV04sCisgICAgICAgIFdlYkNvcmU6OkZFQ09MT1JNQVRS
SVhfVFlQRV9NQVRSSVgsCisgICAgICAgIFdlYkNvcmU6OkZFQ09MT1JNQVRSSVhfVFlQRV9TQVRV
UkFURSwKKyAgICAgICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX0hVRVJPVEFURSwKKyAg
ICAgICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRPQUxQSEEKKyAgICA+
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklM
VEVSX0VGRkVDVChGRUNvbG9yTWF0cml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaAppbmRl
eCBjY2FmNDU5YjAzZTNmMGU0ZTYwOWJhZjM5Mjc0MTEwNzU1YWZhMjM3Li4wNDlkNGYyMDZiOGI0
NjE2NjhiNzAyNDhlN2UwYjU0ZTUxNTlmNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIu
aApAQCAtNDgsMTcgKzQ4LDIzIEBAIHN0cnVjdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIHsK
ICAgICBmbG9hdCBvZmZzZXQgeyAwIH07CiAKICAgICBWZWN0b3I8ZmxvYXQ+IHRhYmxlVmFsdWVz
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCiBjbGFzcyBG
RUNvbXBvbmVudFRyYW5zZmVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxGRUNvbXBvbmVudFRyYW5zZmVyPiBjcmVhdGUoY29uc3QgQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbiYgcmVkRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYg
Z3JlZW5GdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29u
c3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmPEZFQ29tcG9uZW50VHJhbnNmZXI+IGNyZWF0ZShjb25zdCBDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uJiBncmVlbkZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5j
LCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBhbHBoYUZ1bmMpOwogCiAgICAgQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbiByZWRGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVk
RnVuY3Rpb247IH0KICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIGdyZWVuRnVuY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2dyZWVuRnVuY3Rpb247IH0KICAgICBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uIGJsdWVGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYmx1ZUZ1bmN0aW9uOyB9
CiAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBhbHBoYUZ1bmN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9hbHBoYUZ1bmN0aW9uOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFQ29tcG9uZW50VHJhbnNmZXI+PiBkZWNvZGUoRGVj
b2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQ29tcG9uZW50VHJhbnNmZXIoY29uc3QgQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbiYgZ3JlZW5GdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVu
YywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKIApAQCAtNzYs
NiArODIsMTExIEBAIHByaXZhdGU6CiAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBtX2Fs
cGhhRnVuY3Rpb247CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IHR5cGU7CisgICAgZW5jb2RlciA8PCBzbG9wZTsKKyAgICBlbmNvZGVyIDw8
IGludGVyY2VwdDsKKyAgICBlbmNvZGVyIDw8IGFtcGxpdHVkZTsKKyAgICBlbmNvZGVyIDw8IGV4
cG9uZW50OworICAgIGVuY29kZXIgPDwgb2Zmc2V0OworICAgIGVuY29kZXIgPDwgdGFibGVWYWx1
ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPENvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb24+IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb246OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJUeXBl
PiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzbG9wZTsKKyAg
ICBkZWNvZGVyID4+IHNsb3BlOworICAgIGlmICghc2xvcGUpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBpbnRlcmNlcHQ7CisgICAgZGVj
b2RlciA+PiBpbnRlcmNlcHQ7CisgICAgaWYgKCFpbnRlcmNlcHQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBhbXBsaXR1ZGU7CisgICAg
ZGVjb2RlciA+PiBhbXBsaXR1ZGU7CisgICAgaWYgKCFhbXBsaXR1ZGUpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBleHBvbmVudDsKKyAg
ICBkZWNvZGVyID4+IGV4cG9uZW50OworICAgIGlmICghZXhwb25lbnQpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvZmZzZXQ7CisgICAg
ZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgaWYgKCFvZmZzZXQpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxmbG9hdD4+IHRhYmxlVmFsdWVz
OworICAgIGRlY29kZXIgPj4gdGFibGVWYWx1ZXM7CisgICAgaWYgKCF0YWJsZVZhbHVlcykKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgKnR5cGUsICpzbG9w
ZSwgKmludGVyY2VwdCwgKmFtcGxpdHVkZSwgKmV4cG9uZW50LCAqb2Zmc2V0LCBXVEZNb3ZlKCp0
YWJsZVZhbHVlcykgfSB9OworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUNv
bXBvbmVudFRyYW5zZmVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IG1fcmVkRnVuY3Rpb247CisgICAgZW5jb2RlciA8PCBtX2dyZWVuRnVuY3Rpb247
CisgICAgZW5jb2RlciA8PCBtX2JsdWVGdW5jdGlvbjsKKyAgICBlbmNvZGVyIDw8IG1fYWxwaGFG
dW5jdGlvbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVm
PEZFQ29tcG9uZW50VHJhbnNmZXI+PiBGRUNvbXBvbmVudFRyYW5zZmVyOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b24+IHJlZEZ1bmN0aW9uOworICAgIGRlY29kZXIgPj4gcmVkRnVuY3Rpb247CisgICAgaWYgKCFy
ZWRGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4gZ3JlZW5GdW5jdGlvbjsKKyAgICBkZWNv
ZGVyID4+IGdyZWVuRnVuY3Rpb247CisgICAgaWYgKCFncmVlbkZ1bmN0aW9uKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uPiBibHVlRnVuY3Rpb247CisgICAgZGVjb2RlciA+PiBibHVlRnVuY3Rpb247Cisg
ICAgaWYgKCFibHVlRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IGFscGhhRnVuY3Rpb247
CisgICAgZGVjb2RlciA+PiBhbHBoYUZ1bmN0aW9uOworICAgIGlmICghYWxwaGFGdW5jdGlvbikK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRUNvbXBvbmVudFRy
YW5zZmVyOjpjcmVhdGUoKnJlZEZ1bmN0aW9uLCAqZ3JlZW5GdW5jdGlvbiwgKmJsdWVGdW5jdGlv
biwgKmFscGhhRnVuY3Rpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbXBv
bmVudFRyYW5zZmVyVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OkNvbXBvbmVudFRyYW5zZmVyVHlwZSwKKworICAgICAgICBXZWJDb3JlOjpG
RUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfVU5LTk9XTiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01Q
T05FTlRUUkFOU0ZFUl9UWVBFX0lERU5USVRZLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPTkVO
VFRSQU5TRkVSX1RZUEVfVEFCTEUsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNG
RVJfVFlQRV9ESVNDUkVURSwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9U
WVBFX0xJTkVBUiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0dB
TU1BCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb21wb25lbnRUcmFuc2ZlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAppbmRl
eCA1M2FlMGQ2YTI2NGUyMGFmNjY1OGNmZWFmOThhNzQ3MmQ2YzhmZmZmLi5jNDA4MzQwYWFkY2Mz
ZjllYTFmMmU5ZDhiNmFiOWQzNTMxNzQ2MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCkBAIC00MCw3ICs0MCw3
IEBAIGVudW0gQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSB7CiAKIGNsYXNzIEZFQ29tcG9zaXRlIDog
cHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRUNvbXBvc2l0
ZT4gY3JlYXRlKGNvbnN0IENvbXBvc2l0ZU9wZXJhdGlvblR5cGUmLCBmbG9hdCBrMSwgZmxvYXQg
azIsIGZsb2F0IGszLCBmbG9hdCBrNCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxG
RUNvbXBvc2l0ZT4gY3JlYXRlKGNvbnN0IENvbXBvc2l0ZU9wZXJhdGlvblR5cGUmLCBmbG9hdCBr
MSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCk7CiAKICAgICBDb21wb3NpdGVPcGVyYXRp
b25UeXBlIG9wZXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGJvb2wgc2V0
T3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdGlvblR5cGUpOwpAQCAtNTcsNiArNTcsOSBAQCBwdWJs
aWM6CiAgICAgZmxvYXQgazQoKSBjb25zdCB7IHJldHVybiBtX2s0OyB9CiAgICAgYm9vbCBzZXRL
NChmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVmPEZFQ29tcG9zaXRlPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAg
ICBGRUNvbXBvc2l0ZShjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiwgZmxvYXQgazEsIGZs
b2F0IGsyLCBmbG9hdCBrMywgZmxvYXQgazQpOwogCkBAIC04NCw2ICs4Nyw2NiBAQCBwcml2YXRl
OgogICAgIGZsb2F0IG1fazQ7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBG
RUNvbXBvc2l0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBtX3R5cGU7CisgICAgZW5jb2RlciA8PCBtX2sxOworICAgIGVuY29kZXIgPDwgbV9rMjsK
KyAgICBlbmNvZGVyIDw8IG1fazM7CisgICAgZW5jb2RlciA8PCBtX2s0OworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVDb21wb3NpdGU+PiBGRUNvbXBv
c2l0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxDb21w
b3NpdGVPcGVyYXRpb25UeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBpZiAo
IXR5cGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFs
PGZsb2F0PiBrMTsKKyAgICBkZWNvZGVyID4+IGsxOworICAgIGlmICghazEpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrMjsKKyAgICBk
ZWNvZGVyID4+IGsyOworICAgIGlmICghazIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrMzsKKyAgICBkZWNvZGVyID4+IGszOworICAg
IGlmICghazMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBrNDsKKyAgICBkZWNvZGVyID4+IGs0OworICAgIGlmICghazQpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVDb21wb3NpdGU6OmNyZWF0ZSgq
dHlwZSwgKmsxLCAqazIsICprMywgKms0KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpDb21wb3NpdGVPcGVyYXRpb25UeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0aW9uVHlwZSwKKworICAgICAgICBX
ZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9VTktOT1dOLAorICAgICAgICBXZWJDb3JlOjpG
RUNPTVBPU0lURV9PUEVSQVRPUl9PVkVSLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9P
UEVSQVRPUl9JTiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFUT1JfT1VULAor
ICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9BVE9QLAorICAgICAgICBXZWJD
b3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9YT1IsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9T
SVRFX09QRVJBVE9SX0FSSVRITUVUSUMsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09Q
RVJBVE9SX0xJR0hURVIKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbXBvc2l0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJp
eC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZl
TWF0cml4LmgKaW5kZXggZTFhMTljY2Y0YzQzMDM3OTQzYTM1ZDhmMTRjMTc2NTVhNWJlZWJmMy4u
NzU0MWYzZTRlZGE4YTNkNzlhNzQyZWNiMDBlYzRkZDU0ZTc3MjQxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZl
TWF0cml4LmgKQEAgLTM4LDcgKzM4LDcgQEAgZW51bSBjbGFzcyBFZGdlTW9kZVR5cGUgewogCiBj
bGFzcyBGRUNvbnZvbHZlTWF0cml4IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxGRUNvbnZvbHZlTWF0cml4PiBjcmVhdGUoY29uc3QgSW50U2l6ZSYga2Vy
bmVsU2l6ZSwgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywgY29uc3QgSW50UG9pbnQmIHRhcmdl
dE9mZnNldCwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50JiBrZXJuZWxVbml0TGVuZ3Ro
LCBib29sIHByZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIGtlcm5lbE1hdHJpeCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUNvbnZvbHZlTWF0cml4PiBjcmVhdGUo
Y29uc3QgSW50U2l6ZSYga2VybmVsU2l6ZSwgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywgY29u
c3QgSW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50
JiBrZXJuZWxVbml0TGVuZ3RoLCBib29sIHByZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9h
dD4mIGtlcm5lbE1hdHJpeCk7CiAKICAgICBJbnRTaXplIGtlcm5lbFNpemUoKSBjb25zdCB7IHJl
dHVybiBtX2tlcm5lbFNpemU7IH0KICAgICB2b2lkIHNldEtlcm5lbFNpemUoY29uc3QgSW50U2l6
ZSYpOwpAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBwcmVzZXJ2ZUFscGhhKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFscGhhOyB9CiAgICAgYm9vbCBzZXRQcmVzZXJ2ZUFs
cGhhKGJvb2wpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFJlZjxGRUNvbnZvbHZlTWF0cml4Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0
ZToKICAgICBGRUNvbnZvbHZlTWF0cml4KGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUsIGZsb2F0
IGRpdmlzb3IsIGZsb2F0IGJpYXMsIGNvbnN0IEludFBvaW50JiB0YXJnZXRPZmZzZXQsIEVkZ2VN
b2RlVHlwZSwgY29uc3QgRmxvYXRQb2ludCYga2VybmVsVW5pdExlbmd0aCwgYm9vbCBwcmVzZXJ2
ZUFscGhhLCBjb25zdCBWZWN0b3I8ZmxvYXQ+JiBrZXJuZWxNYXRyaXgpOwogCkBAIC04Myw2ICs4
Niw4MCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxmbG9hdD4gbV9rZXJuZWxNYXRyaXg7CiB9Owog
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUNvbnZvbHZlTWF0cml4OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fa2VybmVsU2l6ZTsK
KyAgICBlbmNvZGVyIDw8IG1fZGl2aXNvcjsKKyAgICBlbmNvZGVyIDw8IG1fYmlhczsKKyAgICBl
bmNvZGVyIDw8IG1fdGFyZ2V0T2Zmc2V0OworICAgIGVuY29kZXIgPDwgbV9lZGdlTW9kZTsKKyAg
ICBlbmNvZGVyIDw8IG1fa2VybmVsVW5pdExlbmd0aDsKKyAgICBlbmNvZGVyIDw8IG1fcHJlc2Vy
dmVBbHBoYTsKKyAgICBlbmNvZGVyIDw8IG1fa2VybmVsTWF0cml4OworfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVDb252b2x2ZU1hdHJpeD4+IEZFQ29u
dm9sdmVNYXRyaXg6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4ga2VybmVsU2l6ZTsKKyAgICBkZWNvZGVyID4+IGtlcm5lbFNpemU7CisgICAg
aWYgKCFrZXJuZWxTaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gZGl2aXNvcjsKKyAgICBkZWNvZGVyID4+IGRpdmlzb3I7CisgICAg
aWYgKCFkaXZpc29yKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxmbG9hdD4gYmlhczsKKyAgICBkZWNvZGVyID4+IGJpYXM7CisgICAgaWYgKCFiaWFz
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxJbnRQ
b2ludD4gdGFyZ2V0T2Zmc2V0OworICAgIGRlY29kZXIgPj4gdGFyZ2V0T2Zmc2V0OworICAgIGlm
ICghdGFyZ2V0T2Zmc2V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3Rk
OjpvcHRpb25hbDxFZGdlTW9kZVR5cGU+IGVkZ2VNb2RlOworICAgIGRlY29kZXIgPj4gZWRnZU1v
ZGU7CisgICAgaWYgKCFlZGdlTW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4ga2VybmVsVW5pdExlbmd0aDsKKyAgICBkZWNv
ZGVyID4+IGtlcm5lbFVuaXRMZW5ndGg7CisgICAgaWYgKCFrZXJuZWxVbml0TGVuZ3RoKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBwcmVz
ZXJ2ZUFscGhhOworICAgIGRlY29kZXIgPj4gcHJlc2VydmVBbHBoYTsKKyAgICBpZiAoIWtlcm5l
bFVuaXRMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxmbG9hdD4+IGtlcm5lbE1hdHJpeDsKKyAgICBkZWNvZGVyID4+IGtlcm5l
bE1hdHJpeDsKKyAgICBpZiAoIWtlcm5lbE1hdHJpeCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHJldHVybiBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGUoKmtlcm5lbFNpemUs
ICpkaXZpc29yLCAqYmlhcywgKnRhcmdldE9mZnNldCwgKmVkZ2VNb2RlLCAqa2VybmVsVW5pdExl
bmd0aCwgKnByZXNlcnZlQWxwaGEsIFdURk1vdmUoKmtlcm5lbE1hdHJpeCkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OkVkZ2VNb2RlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZSwKKworICAgICAgICBX
ZWJDb3JlOjpFZGdlTW9kZVR5cGU6OlVua25vd24sCisgICAgICAgIFdlYkNvcmU6OkVkZ2VNb2Rl
VHlwZTo6RHVwbGljYXRlLAorICAgICAgICBXZWJDb3JlOjpFZGdlTW9kZVR5cGU6OldyYXAsCisg
ICAgICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZTo6Tm9uZQorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29u
dm9sdmVNYXRyaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKaW5kZXggMzAyNGQ2NTIxYjM5ZDQy
Y2E0YTIwZTc1NzdkOTQxNDFmZWYyMDFhNy4uYTJkMTI1OGUzYWQ2N2M1YjliNGZhYzJkNDVjMjIx
ODlhNjhkMDhkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaApAQCAtMzcsMTAgKzM3LDE4IEBA
IHB1YmxpYzoKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
VEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOwogCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFRGlm
ZnVzZUxpZ2h0aW5nPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRURpZmZ1
c2VMaWdodGluZyhjb25zdCBDb2xvciYgbGlnaHRpbmdDb2xvciwgZmxvYXQgc3VyZmFjZVNjYWxl
LCBmbG9hdCBkaWZmdXNlQ29uc3RhbnQsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhYLCBmbG9hdCBr
ZXJuZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNlPiYmKTsKIH07CiAKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRURpZmZ1c2VMaWdodGluZz4+IEZFRGlm
ZnVzZUxpZ2h0aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4gRkVM
aWdodGluZzo6ZGVjb2RlPERlY29kZXIsIEZFRGlmZnVzZUxpZ2h0aW5nPihkZWNvZGVyKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoRkVEaWZmdXNlTGlnaHRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKaW5kZXgg
NTNiMDlkNGQ2NjhjN2UyM2EzMDJkMWQzMmRmMmM4ZTg4ODE1MTliYS4uMzgyNmFhY2NiZjI3Y2Nj
MjgxZGE3ZTc0MWIxNDVlYzAwZmVhZDUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaApAQCAt
MzcsNyArMzcsNyBAQCBlbnVtIENoYW5uZWxTZWxlY3RvclR5cGUgewogCiBjbGFzcyBGRURpc3Bs
YWNlbWVudE1hcCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8RkVEaXNwbGFjZW1lbnRNYXA+IGNyZWF0ZShDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVs
U2VsZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQgc2Nh
bGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVEaXNwbGFjZW1lbnRNYXA+IGNy
ZWF0ZShDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5uZWxTZWxlY3Rv
clR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQgc2NhbGUpOwogCiAgICAgQ2hhbm5lbFNlbGVj
dG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV94Q2hhbm5lbFNlbGVj
dG9yOyB9CiAgICAgYm9vbCBzZXRYQ2hhbm5lbFNlbGVjdG9yKGNvbnN0IENoYW5uZWxTZWxlY3Rv
clR5cGUpOwpAQCAtNDgsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgc2NhbGUoKSBjb25z
dCB7IHJldHVybiBtX3NjYWxlOyB9CiAgICAgYm9vbCBzZXRTY2FsZShmbG9hdCk7CiAKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFRGlzcGxh
Y2VtZW50TWFwPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRURpc3BsYWNl
bWVudE1hcChDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5uZWxTZWxl
Y3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQpOwogCkBAIC02NSw2ICs2OCw1MSBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fc2NhbGU7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBGRURpc3BsYWNlbWVudE1hcDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCBtX3hDaGFubmVsU2VsZWN0b3I7CisgICAgZW5jb2RlciA8PCBt
X3lDaGFubmVsU2VsZWN0b3I7CisgICAgZW5jb2RlciA8PCBtX3NjYWxlOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVEaXNwbGFjZW1lbnRNYXA+PiBG
RURpc3BsYWNlbWVudE1hcDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpv
cHRpb25hbDxDaGFubmVsU2VsZWN0b3JUeXBlPiB4Q2hhbm5lbFNlbGVjdG9yOworICAgIGRlY29k
ZXIgPj4geENoYW5uZWxTZWxlY3RvcjsKKyAgICBpZiAoIXhDaGFubmVsU2VsZWN0b3IpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPENoYW5uZWxTZWxl
Y3RvclR5cGU+IHlDaGFubmVsU2VsZWN0b3I7CisgICAgZGVjb2RlciA+PiB5Q2hhbm5lbFNlbGVj
dG9yOworICAgIGlmICgheUNoYW5uZWxTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNjYWxlOworICAgIGRlY29kZXIgPj4g
c2NhbGU7CisgICAgaWYgKCFzY2FsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBGRURpc3BsYWNlbWVudE1hcDo6Y3JlYXRlKCp4Q2hhbm5lbFNlbGVjdG9yLCAq
eUNoYW5uZWxTZWxlY3RvciwgKnNjYWxlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpDaGFubmVsU2VsZWN0b3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgV2ViQ29yZTo6Q2hhbm5lbFNlbGVjdG9yVHlwZSwKKworICAgICAgICBXZWJDb3Jl
OjpDSEFOTkVMX1VOS05PV04sCisgICAgICAgIFdlYkNvcmU6OkNIQU5ORUxfUiwKKyAgICAgICAg
V2ViQ29yZTo6Q0hBTk5FTF9HLAorICAgICAgICBXZWJDb3JlOjpDSEFOTkVMX0IsCisgICAgICAg
IFdlYkNvcmU6OkNIQU5ORUxfQQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFRGlzcGxhY2VtZW50TWFwKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURy
b3BTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
cm9wU2hhZG93LmgKaW5kZXggNThmNmU3OTZjNzkzOTE2YTExNmQyNDZhNDE1NTQ4ZmU0NjZkMDcz
Yy4uNGJmZDYwODQ4YjFhODI0NzI4ODRhYmJkMDgyNGI3YTc2ZWQwZDQxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRv
dy5oCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEZF
RHJvcFNoYWRvdyA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8RkVEcm9wU2hhZG93PiBjcmVhdGUoZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgs
IGZsb2F0IGR5LCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVEcm9wU2hhZG93PiBjcmVhdGUoZmxv
YXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgsIGZsb2F0IGR5LCBjb25zdCBDb2xvciYgc2hh
ZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkpOwogCiAgICAgZmxvYXQgc3RkRGV2aWF0aW9u
WCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RkWDsgfQogICAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uWChm
bG9hdCBzdGRYKSB7IG1fc3RkWCA9IHN0ZFg7IH0KQEAgLTQ3LDYgKzQ3LDkgQEAgcHVibGljOgog
ICAgIGZsb2F0IHNoYWRvd09wYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3NoYWRvd09wYWNpdHk7
IH0KICAgICB2b2lkIHNldFNoYWRvd09wYWNpdHkoZmxvYXQgc2hhZG93T3BhY2l0eSkgeyBtX3No
YWRvd09wYWNpdHkgPSBzaGFkb3dPcGFjaXR5OyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFRHJvcFNoYWRvdz4+IGRlY29kZShEZWNv
ZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVEcm9wU2hhZG93KGZsb2F0IHN0ZFgsIGZsb2F0IHN0
ZFksIGZsb2F0IGR4LCBmbG9hdCBkeSwgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yLCBmbG9hdCBz
aGFkb3dPcGFjaXR5KTsKIApAQCAtNjUsNyArNjgsNTQgQEAgcHJpdmF0ZToKICAgICBDb2xvciBt
X3NoYWRvd0NvbG9yOwogICAgIGZsb2F0IG1fc2hhZG93T3BhY2l0eTsKIH07Ci0gICAgCisKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFRHJvcFNoYWRvdzo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3N0ZFg7CisgICAgZW5jb2RlciA8
PCBtX3N0ZFk7CisgICAgZW5jb2RlciA8PCBtX2R4OworICAgIGVuY29kZXIgPDwgbV9keTsKKyAg
ICBlbmNvZGVyIDw8IG1fc2hhZG93Q29sb3I7CisgICAgZW5jb2RlciA8PCBtX3NoYWRvd09wYWNp
dHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRURy
b3BTaGFkb3c+PiBGRURyb3BTaGFkb3c6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN0ZFg7CisgICAgZGVjb2RlciA+PiBzdGRYOworICAgIGlm
ICghc3RkWCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9u
YWw8ZmxvYXQ+IHN0ZFk7CisgICAgZGVjb2RlciA+PiBzdGRZOworICAgIGlmICghc3RkWSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR4
OworICAgIGRlY29kZXIgPj4gZHg7CisgICAgaWYgKCFkeCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR5OworICAgIGRlY29kZXIgPj4g
ZHk7CisgICAgaWYgKCFkeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0
ZDo6b3B0aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOworICAgIGRlY29kZXIgPj4gc2hhZG93Q29s
b3I7CisgICAgaWYgKCFzaGFkb3dDb2xvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNoYWRvd09wYWNpdHk7CisgICAgZGVjb2RlciA+
PiBzaGFkb3dPcGFjaXR5OworICAgIGlmICghc2hhZG93T3BhY2l0eSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRURyb3BTaGFkb3c6OmNyZWF0ZSgqc3RkWCwg
KnN0ZFksICpkeCwgKmR5LCAqc2hhZG93Q29sb3IsICpzaGFkb3dPcGFjaXR5KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZF
Q1QoRkVEcm9wU2hhZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCA4ZmMxZDk3YTgzMjE2NjAyOWZiZWY5OTI1YzJlNWY3
YWM2NzEyODc0Li4wYTY1YzY4MjM0MTBlZWZiZTA4ZTY2OTM3ODA4ZTFhOTdhZTRmNmI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
aApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFRmxvb2Qg
OiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFRmxvb2Q+
IGNyZWF0ZShjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5KTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFRmxvb2Q+IGNyZWF0ZShjb25zdCBDb2xvciYg
Zmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5KTsKIAogICAgIGNvbnN0IENvbG9yJiBmbG9v
ZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9mbG9vZENvbG9yOyB9CiAgICAgYm9vbCBzZXRGbG9v
ZENvbG9yKGNvbnN0IENvbG9yJik7CkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldE9wZXJhdGluZ0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgb3Zl
cnJpZGUgeyB9CiAjZW5kaWYKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxSZWY8RkVGbG9vZD4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6
CiAgICAgRkVGbG9vZChjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5
KTsKIApAQCAtNTYsNiArNTksMjkgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2Zsb29kT3BhY2l0
eTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFRmxvb2Q6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9mbG9vZENvbG9yOwor
ICAgIGVuY29kZXIgPDwgbV9mbG9vZE9wYWNpdHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRUZsb29kPj4gRkVGbG9vZDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxDb2xvcj4gZmxvb2RDb2xvcjsKKyAgICBk
ZWNvZGVyID4+IGZsb29kQ29sb3I7CisgICAgaWYgKCFmbG9vZENvbG9yKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZmxvb2RPcGFjaXR5
OworICAgIGRlY29kZXIgPj4gZmxvb2RPcGFjaXR5OworICAgIGlmICghZmxvb2RPcGFjaXR5KQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFRmxvb2Q6OmNyZWF0
ZSgqZmxvb2RDb2xvciwgKmZsb29kT3BhY2l0eSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFRmxvb2QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3Np
YW5CbHVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmgKaW5kZXggODcxODUzZGY0OTEyMDQ0Nzg5OGM4YmI1MjVmYjQwNGRmZDVmMzE1
OS4uOTU2N2EyZjA0YmNlOTIwNTVhMzdlNmNiNWNkMDhhZjRlZTdhMjJmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lh
bkJsdXIuaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZF
R2F1c3NpYW5CbHVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxGRUdhdXNzaWFuQmx1cj4gY3JlYXRlKGZsb2F0IHgsIGZsb2F0IHksIEVkZ2VNb2RlVHlw
ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUdhdXNzaWFuQmx1cj4gY3JlYXRl
KGZsb2F0IHgsIGZsb2F0IHksIEVkZ2VNb2RlVHlwZSk7CiAKICAgICBmbG9hdCBzdGREZXZpYXRp
b25YKCkgY29uc3QgeyByZXR1cm4gbV9zdGRYOyB9CiAgICAgdm9pZCBzZXRTdGREZXZpYXRpb25Y
KGZsb2F0KTsKQEAgLTQ0LDYgKzQ0LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBJbnRTaXplIGNh
bGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShGbG9hdFNpemUgc3RkRGV2aWF0aW9uKTsKICAgICBz
dGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVPdXRzZXRTaXplKEZsb2F0U2l6ZSBzdGREZXZpYXRpb24p
OwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJl
ZjxGRUdhdXNzaWFuQmx1cj4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVH
YXVzc2lhbkJsdXIoZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVUeXBlKTsKIApAQCAtNjIsNiAr
NjUsMzUgQEAgcHJpdmF0ZToKICAgICBFZGdlTW9kZVR5cGUgbV9lZGdlTW9kZTsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFR2F1c3NpYW5CbHVyOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fc3RkWDsKKyAgICBlbmNvZGVy
IDw8IG1fc3RkWTsKKyAgICBlbmNvZGVyIDw8IG1fZWRnZU1vZGU7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRUdhdXNzaWFuQmx1cj4+IEZFR2F1c3Np
YW5CbHVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBzdGRYOworICAgIGRlY29kZXIgPj4gc3RkWDsKKyAgICBpZiAoIXN0ZFgpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzdGRZOwor
ICAgIGRlY29kZXIgPj4gc3RkWTsKKyAgICBpZiAoIXN0ZFkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEVkZ2VNb2RlVHlwZT4gZWRnZU1vZGU7Cisg
ICAgZGVjb2RlciA+PiBlZGdlTW9kZTsKKyAgICBpZiAoIWVkZ2VNb2RlKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFR2F1c3NpYW5CbHVyOjpjcmVhdGUoKnN0
ZFgsICpzdGRZLCAqZWRnZU1vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUdhdXNzaWFuQmx1cikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGlu
Zy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5n
LmgKaW5kZXggZGUwYjM4NmExMWM3MTU4YzUzOGJjYjRhODAyYzdjOGNmMGI1Njg3Mi4uMzFjMmFh
YWJkM2M1YjE4YzBkY2I2MDIxOTg5YjFhMGIxNmQ3NzEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKQEAgLTU1LDYg
KzU1LDkgQEAgcHVibGljOgogCiAgICAgY29uc3QgTGlnaHRTb3VyY2UmIGxpZ2h0U291cmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9saWdodFNvdXJjZS5nZXQoKTsgfQogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXIsIGNsYXNzIENsYXNzTmFtZT4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPENs
YXNzTmFtZT4+IGRlY29kZShEZWNvZGVyJik7CisKIHByb3RlY3RlZDoKICAgICBGRUxpZ2h0aW5n
KFR5cGUsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZs
b2F0IGRpZmZ1c2VDb25zdGFudCwgZmxvYXQgc3BlY3VsYXJDb25zdGFudCwgZmxvYXQgc3BlY3Vs
YXJFeHBvbmVudCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5n
dGhZLCBSZWY8TGlnaHRTb3VyY2U+JiYpOwogCkBAIC03Nyw0ICs4MCw1OSBAQCBwcm90ZWN0ZWQ6
CiAgICAgUmVmPExpZ2h0U291cmNlPiBtX2xpZ2h0U291cmNlOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgRkVMaWdodGluZzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2xpZ2h0aW5nQ29sb3I7CisgICAgZW5jb2RlciA8PCBt
X3N1cmZhY2VTY2FsZTsKKyAgICBlbmNvZGVyIDw8IG1fZGlmZnVzZUNvbnN0YW50OworICAgIGVu
Y29kZXIgPDwgbV9zcGVjdWxhckNvbnN0YW50OworICAgIGVuY29kZXIgPDwgbV9zcGVjdWxhckV4
cG9uZW50OworICAgIGVuY29kZXIgPDwgbV9rZXJuZWxVbml0TGVuZ3RoWDsKKyAgICBlbmNvZGVy
IDw8IG1fa2VybmVsVW5pdExlbmd0aFk7CisgICAgLy8gRklYTUU6IGVuY29kZSBtX2xpZ2h0U291
cmNlLgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyLCBjbGFzcyBDbGFzc05hbWU+CitzdGQ6
Om9wdGlvbmFsPFJlZjxDbGFzc05hbWU+PiBGRUxpZ2h0aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbG9yPiBsaWdodGluZ0NvbG9yOworICAgIGRl
Y29kZXIgPj4gbGlnaHRpbmdDb2xvcjsKKyAgICBpZiAoIWxpZ2h0aW5nQ29sb3IpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzdXJmYWNl
U2NhbGU7CisgICAgZGVjb2RlciA+PiBzdXJmYWNlU2NhbGU7CisgICAgaWYgKCFzdXJmYWNlU2Nh
bGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBkaWZmdXNlQ29uc3RhbnQ7CisgICAgZGVjb2RlciA+PiBkaWZmdXNlQ29uc3RhbnQ7Cisg
ICAgaWYgKCFkaWZmdXNlQ29uc3RhbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzcGVjdWxhckNvbnN0YW50OworICAgIGRlY29kZXIg
Pj4gc3BlY3VsYXJDb25zdGFudDsKKyAgICBpZiAoIXNwZWN1bGFyQ29uc3RhbnQpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzcGVjdWxh
ckV4cG9uZW50OworICAgIGRlY29kZXIgPj4gc3BlY3VsYXJFeHBvbmVudDsKKyAgICBpZiAoIXNw
ZWN1bGFyRXhwb25lbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGZsb2F0PiBrZXJuZWxVbml0TGVuZ3RoWDsKKyAgICBkZWNvZGVyID4+IGtlcm5l
bFVuaXRMZW5ndGhYOworICAgIGlmICgha2VybmVsVW5pdExlbmd0aFgpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrZXJuZWxVbml0TGVu
Z3RoWTsKKyAgICBkZWNvZGVyID4+IGtlcm5lbFVuaXRMZW5ndGhZOworICAgIGlmICgha2VybmVs
VW5pdExlbmd0aFkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAvLyBGSVhN
RTogZGVjb2RlIG1fbGlnaHRTb3VyY2UuCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKaW5kZXggOTIzZDNlOWU1ZmFmZDBlMDQ3ODNm
MzBmZGExODdhYTZhMmI2NzY1OS4uOTU5YjQ4YWJlMDg2ODE2YzM1OGUzYzg2NDlhMTkzYmIwY2Vl
ZWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwCkBAIC0yOSwxMyArMjksMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1SZWY8RkVNZXJnZT4gRkVNZXJnZTo6Y3JlYXRlKCkKK1JlZjxGRU1lcmdlPiBGRU1lcmdl
OjpjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZFZmZlY3RJbnB1dHMpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRkVNZXJnZSgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRU1lcmdl
KG51bWJlck9mRWZmZWN0SW5wdXRzKSk7CiB9CiAKLUZFTWVyZ2U6OkZFTWVyZ2UoKQorRkVNZXJn
ZTo6RkVNZXJnZSh1bnNpZ25lZCBudW1iZXJPZkVmZmVjdElucHV0cykKICAgICA6IEZpbHRlckVm
ZmVjdChGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFTWVyZ2UpCisgICAgLCBtX251bWJlck9mRWZmZWN0
SW5wdXRzKG51bWJlck9mRWZmZWN0SW5wdXRzKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCmluZGV4IDY0ZWQ0YTc3YjFl
MDczZTBjNjFkZDU1M2YwMDgyMGIxZjBmYjY3MTguLjgzYjBmMWY0NDVmZGExODc3YzFmNzM5ZTEx
YWY3NmZmODhhOTU2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNZXJnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNZXJnZS5oCkBAIC0yOCwxNiArMjgsMzggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBGRU1lcmdlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxGRU1lcmdlPiBjcmVhdGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPEZFTWVyZ2U+IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkVmZmVjdElucHV0cyk7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZF
TWVyZ2U+PiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIEZFTWVyZ2UoKTsKKyAg
ICBGRU1lcmdlKHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5wdXRzKTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJp
ZGU7CisKKyAgICB1bnNpZ25lZCBtX251bWJlck9mRWZmZWN0SW5wdXRzOwogfTsKIAordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVNZXJnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX251bWJlck9mRWZmZWN0SW5wdXRzOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVNZXJnZT4+IEZFTWVy
Z2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IG51bWJlck9mRWZmZWN0SW5wdXRzOworICAgIGRlY29kZXIgPj4gbnVtYmVyT2ZFZmZlY3RJ
bnB1dHM7CisgICAgaWYgKCFudW1iZXJPZkVmZmVjdElucHV0cykKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRU1lcmdlOjpjcmVhdGUoKm51bWJlck9mRWZmZWN0
SW5wdXRzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVNZXJnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCmluZGV4IDIyYTE1MjEx
ZGZhMTZmYmQyMGY4YTBjMTAzYmZiMDczZjgyMTQwY2IuLjgyNWJlOWU0ZGU3OTdkNjYzMTg3NmNl
OTFhM2VlOWE3YTNkZDZiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtMzQsNyArMzQsNyBAQCBlbnVt
IGNsYXNzIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgewogCiBjbGFzcyBGRU1vcnBob2xvZ3kgOiBw
dWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFTW9ycGhvbG9n
eT4gY3JlYXRlKE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJh
ZGl1c1kpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVNb3JwaG9sb2d5PiBjcmVh
dGUoTW9ycGhvbG9neU9wZXJhdG9yVHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7
CiAKICAgICBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIG1vcnBob2xvZ3lPcGVyYXRvcigpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGJvb2wgc2V0TW9ycGhvbG9neU9wZXJhdG9yKE1vcnBo
b2xvZ3lPcGVyYXRvclR5cGUpOwpAQCAtNDUsNiArNDUsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQg
cmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQogICAgIGJvb2wgc2V0UmFkaXVz
WShmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVmPEZFTW9ycGhvbG9neT4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAg
ICAgRkVNb3JwaG9sb2d5KE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1c1gsIGZs
b2F0IHJhZGl1c1kpOwogCkBAIC02MSw2ICs2NCw0OSBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1f
cmFkaXVzWTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFTW9ycGhvbG9n
eTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3R5
cGU7CisgICAgZW5jb2RlciA8PCBtX3JhZGl1c1g7CisgICAgZW5jb2RlciA8PCBtX3JhZGl1c1k7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRU1vcnBo
b2xvZ3k+PiBGRU1vcnBob2xvZ3k6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0
ZDo6b3B0aW9uYWw8TW9ycGhvbG9neU9wZXJhdG9yVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+
IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gcmFkaXVzWDsKKyAgICBkZWNvZGVyID4+IHJhZGl1c1g7
CisgICAgaWYgKCFyYWRpdXNYKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxmbG9hdD4gcmFkaXVzWTsKKyAgICBkZWNvZGVyID4+IHJhZGl1c1k7Cisg
ICAgaWYgKCFyYWRpdXNZKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0
dXJuIEZFTW9ycGhvbG9neTo6Y3JlYXRlKCp0eXBlLCAqcmFkaXVzWCwgKnJhZGl1c1kpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpNb3JwaG9sb2d5
T3BlcmF0b3JUeXBlLAorCisgICAgICAgIFdlYkNvcmU6Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGU6
OlVua25vd24sCisgICAgICAgIFdlYkNvcmU6Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGU6OkVyb2Rl
LAorICAgICAgICBXZWJDb3JlOjpNb3JwaG9sb2d5T3BlcmF0b3JUeXBlOjpEaWxhdGUKKyAgICA+
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklM
VEVSX0VGRkVDVChGRU1vcnBob2xvZ3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKaW5kZXggMTBlYjMzYzk0Zjk4YjdkY2EzNjc1
MWM2Zjg4ZjE2OTgxNjU5OTBmOC4uNmJhMTdmZWZmNjIxNDdjOTc1ZmM3ZTU4ZTZmZjMwNDQzNTEz
NGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU9mZnNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuaApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZFT2Zmc2V0IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxGRU9mZnNldD4gY3JlYXRlKGZsb2F0IGR4LCBmbG9hdCBkeSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxGRU9mZnNldD4gY3JlYXRlKGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAK
ICAgICBmbG9hdCBkeCgpIGNvbnN0IHsgcmV0dXJuIG1fZHg7IH0KICAgICB2b2lkIHNldER4KGZs
b2F0KTsKQEAgLTM2LDYgKzM2LDkgQEAgcHVibGljOgogICAgIGZsb2F0IGR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9keTsgfQogICAgIHZvaWQgc2V0RHkoZmxvYXQpOwogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRU9mZnNldD4+IGRlY29kZShE
ZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVPZmZzZXQoZmxvYXQgZHgsIGZsb2F0IGR5KTsK
IApAQCAtNTEsNiArNTQsMjkgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2R5OwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVPZmZzZXQ6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9keDsKKyAgICBlbmNvZGVyIDw8IG1fZHk7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRU9mZnNl
dD4+IEZFT2Zmc2V0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBkeDsKKyAgICBkZWNvZGVyID4+IGR4OworICAgIGlmICghZHgpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkeTsKKyAg
ICBkZWNvZGVyID4+IGR5OworICAgIGlmICghZHkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4gRkVPZmZzZXQ6OmNyZWF0ZSgqZHgsICpkeSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNU
KEZFT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKaW5kZXggNWM3ZTgxY2UzMDQ3MjFh
ZTgxYjE0MzY0NGI3NjM4OWI3MzE5OTMzZC4uOGE2ZmM0YjAzNjA3NzA4OGVkYWUyMzNmZjQ3ZmFk
Y2I0NTkzZTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCkBAIC0zOCwxMCArMzgsMTgg
QEAgcHVibGljOgogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVT
cGVjdWxhckxpZ2h0aW5nPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRVNw
ZWN1bGFyTGlnaHRpbmcoY29uc3QgQ29sb3ImIGxpZ2h0aW5nQ29sb3IsIGZsb2F0IHN1cmZhY2VT
Y2FsZSwgZmxvYXQgc3BlY3VsYXJDb25zdGFudCwgZmxvYXQgc3BlY3VsYXJFeHBvbmVudCwgZmxv
YXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZLCBSZWY8TGlnaHRT
b3VyY2U+JiYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8
UmVmPEZFU3BlY3VsYXJMaWdodGluZz4+IEZFU3BlY3VsYXJMaWdodGluZzo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIEZFTGlnaHRpbmc6OmRlY29kZTxEZWNvZGVyLCBG
RVNwZWN1bGFyTGlnaHRpbmc+KGRlY29kZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRVNwZWN1bGFyTGlnaHRp
bmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRp
bGUuaAppbmRleCBmYjI2NTNhZjgyM2U3M2VmYTJhYTk1NjhkNmI2NTE4Y2ZmNmM5MDRhLi43ZDM5
Nzk4NTc4ODFkYTcyNTc0MWJiOTllMGNhNjRjNDQ0YTgwMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKQEAgLTI4LDcgKzI4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgRkVUaWxlIDogcHVibGljIEZpbHRl
ckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRVRpbGU+IGNyZWF0ZSgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVUaWxlPiBjcmVhdGUoKTsKIAogcHJpdmF0ZToK
ICAgICBGRVRpbGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCmluZGV4IDE3NWZmZjc0MjgyNmZjYWMyMmNkZjNi
ODM2ZDJjOWI5NzA4MDEwOTYuLmI4ZTkzYmMwMWIyNWI0MjkwYzRhMTU0MzllZWFjNDcyMGY0ODll
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUdXJidWxlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVR1cmJ1bGVuY2UuaApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIGNsYXNzIFR1cmJ1bGVu
Y2VUeXBlIHsKIAogY2xhc3MgRkVUdXJidWxlbmNlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRVR1cmJ1bGVuY2U+IGNyZWF0ZShUdXJidWxlbmNlVHlw
ZSwgZmxvYXQgYmFzZUZyZXF1ZW5jeVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0
YXZlcywgZmxvYXQgc2VlZCwgYm9vbCBzdGl0Y2hUaWxlcyk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxGRVR1cmJ1bGVuY2U+IGNyZWF0ZShUdXJidWxlbmNlVHlwZSwgZmxvYXQgYmFz
ZUZyZXF1ZW5jeVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0YXZlcywgZmxvYXQg
c2VlZCwgYm9vbCBzdGl0Y2hUaWxlcyk7CiAKICAgICBUdXJidWxlbmNlVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBzZXRUeXBlKFR1cmJ1bGVuY2VUeXBlKTsK
QEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgogICAgIGJvb2wgc3RpdGNoVGlsZXMoKSBjb25zdCB7
IHJldHVybiBtX3N0aXRjaFRpbGVzOyB9CiAgICAgYm9vbCBzZXRTdGl0Y2hUaWxlcyhib29sKTsK
IAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8
RkVUdXJidWxlbmNlPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRVR1cmJ1
bGVuY2UoVHVyYnVsZW5jZVR5cGUsIGZsb2F0IGJhc2VGcmVxdWVuY3lYLCBmbG9hdCBiYXNlRnJl
cXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0IHNlZWQsIGJvb2wgc3RpdGNoVGlsZXMpOwog
CkBAIC03NCw2ICs3Nyw2NyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zdGl0Y2hUaWxlczsKIH07
CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFVHVyYnVsZW5jZTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3R5cGU7CisgICAgZW5j
b2RlciA8PCBtX2Jhc2VGcmVxdWVuY3lYOworICAgIGVuY29kZXIgPDwgbV9iYXNlRnJlcXVlbmN5
WTsKKyAgICBlbmNvZGVyIDw8IG1fbnVtT2N0YXZlczsKKyAgICBlbmNvZGVyIDw8IG1fc2VlZDsK
KyAgICBlbmNvZGVyIDw8IG1fc3RpdGNoVGlsZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRVR1cmJ1bGVuY2U+PiBGRVR1cmJ1bGVuY2U6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8VHVyYnVsZW5jZVR5cGU+
IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGJhc2VGcmVxdWVu
Y3lYOworICAgIGRlY29kZXIgPj4gYmFzZUZyZXF1ZW5jeVg7CisgICAgaWYgKCFiYXNlRnJlcXVl
bmN5WCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
ZmxvYXQ+IGJhc2VGcmVxdWVuY3lZOworICAgIGRlY29kZXIgPj4gYmFzZUZyZXF1ZW5jeVk7Cisg
ICAgaWYgKCFiYXNlRnJlcXVlbmN5WSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBudW1PY3RhdmVzOworICAgIGRlY29kZXIgPj4gbnVtT2N0
YXZlczsKKyAgICBpZiAoIW51bU9jdGF2ZXMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzZWVkOworICAgIGRlY29kZXIgPj4gc2VlZDsK
KyAgICBpZiAoIXNlZWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IHN0aXRjaFRpbGVzOworICAgIGRlY29kZXIgPj4gc3RpdGNoVGlsZXM7
CisgICAgaWYgKCFzdGl0Y2hUaWxlcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBGRVR1cmJ1bGVuY2U6OmNyZWF0ZSgqdHlwZSwgKmJhc2VGcmVxdWVuY3lYLCAq
YmFzZUZyZXF1ZW5jeVksICpudW1PY3RhdmVzLCAqc2VlZCwgKnN0aXRjaFRpbGVzKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpUdXJidWxlbmNlVHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlLAorCisg
ICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlOjpVbmtub3duLAorICAgICAgICBXZWJDb3Jl
OjpUdXJidWxlbmNlVHlwZTo6RnJhY3RhbE5vaXNlLAorICAgICAgICBXZWJDb3JlOjpUdXJidWxl
bmNlVHlwZTo6VHVyYnVsZW5jZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFVHVyYnVsZW5jZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNwcApp
bmRleCA1MmRjMzVkNmQ2MWQzODgzNWQ0MGNlNjMzZGUwNmY2NjQ1M2VkMWViLi41Nzk5YTAzNjVl
MTUwZjM0NTdlZGJhMTIyZTk5OWFlZmI4NmU0MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwCkBAIC05OCw5ICs5OCwxMCBA
QCBib29sIEZpbHRlcjo6Y2xhbXBGaWx0ZXJSZWdpb25JZk5lZWRlZCgpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLVJlZlB0cjxGaWx0ZXJJbWFnZT4gRmlsdGVyOjphcHBseShJbWFnZUJ1ZmZlciog
c291cmNlSW1hZ2UpCitSZWZQdHI8RmlsdGVySW1hZ2U+IEZpbHRlcjo6YXBwbHkoSW1hZ2VCdWZm
ZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCkKIHsKICAg
ICBzZXRTb3VyY2VJbWFnZShzb3VyY2VJbWFnZSk7CisgICAgc2V0U291cmNlSW1hZ2VSZWN0KHNv
dXJjZUltYWdlUmVjdCk7CiAKICAgICBhdXRvIHJlc3VsdCA9IGFwcGx5KCk7CiAgICAgaWYgKCFy
ZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXIuaAppbmRleCBjYTFkOTUzNGM3ZjhiMTgwNmQ4MWE1ZDIwMjdmOGM0OTJhZTIyODNhLi5j
MzNlZDA4MjhiMTNhYTc2MTJjMTRhM2M4MzZmMWRlYTkxODIwOGVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKQEAgLTU1LDYgKzU1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U291cmNlSW1hZ2UoUmVmUHRyPEltYWdlQnVmZmVy
PiYmIHNvdXJjZUltYWdlKSB7IG1fc291cmNlSW1hZ2UgPSBXVEZNb3ZlKHNvdXJjZUltYWdlKTsg
fQogCiAgICAgQ2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9j
bGlwT3BlcmF0aW9uOyB9CisgICAgdm9pZCBzZXRDbGlwT3BlcmF0aW9uKENsaXBPcGVyYXRpb24g
Y2xpcE9wZXJhdGlvbikgeyBtX2NsaXBPcGVyYXRpb24gPSBjbGlwT3BlcmF0aW9uOyB9CiAKICAg
ICB2aXJ0dWFsIEZsb2F0U2l6ZSByZXNvbHZlZFNpemUoY29uc3QgRmxvYXRTaXplJiBzaXplKSBj
b25zdCB7IHJldHVybiBzaXplOyB9CiAKQEAgLTcyLDkgKzczLDEwIEBAIHB1YmxpYzoKICAgICBi
b29sIGNsYW1wRmlsdGVyUmVnaW9uSWZOZWVkZWQoKTsKICAgICAKICAgICB2aXJ0dWFsIFJlZlB0
cjxGaWx0ZXJJbWFnZT4gYXBwbHkoKSA9IDA7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEZp
bHRlckltYWdlPiBhcHBseShJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UpOworICAgIFdFQkNPUkVf
RVhQT1JUIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCk7CiAKIHByb3RlY3RlZDoKKyAgICB1
c2luZyBGaWx0ZXJGdW5jdGlvbjo6RmlsdGVyRnVuY3Rpb247CiAgICAgRmlsdGVyKEZpbHRlcjo6
VHlwZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9w
ZXJhdGlvbiA9IENsaXBPcGVyYXRpb246OkludGVyc2VjdCk7CiAgICAgRmlsdGVyKEZpbHRlcjo6
VHlwZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9u
LCBDbGlwT3BlcmF0aW9uID0gQ2xpcE9wZXJhdGlvbjo6SW50ZXJzZWN0KTsKIApAQCAtOTEsMyAr
OTMsMTYgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RmlsdGVy
OjpDbGlwT3BlcmF0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgV2ViQ29yZTo6RmlsdGVyOjpDbGlwT3BlcmF0aW9uLAorCisgICAgICAgIFdlYkNvcmU6OkZp
bHRlcjo6Q2xpcE9wZXJhdGlvbjo6SW50ZXJzZWN0LAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXI6
OkNsaXBPcGVyYXRpb246OlVuaXRlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3Vy
Y2VHcmFwaGljLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUdyYXBoaWMuaAppbmRleCBhNzM4YTdkMDI2ZDg4ZmRkNDgxZmZhOTA3MzBhYmZlMjVhNWM2
NjdiLi4zMDMzZGIwMjEwZDNlMWYxMjNiNGI5YjVkNzkzNWIxYWM4NGQwYjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdy
YXBoaWMuaApAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNv
dXJjZUdyYXBoaWMgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzogICAgICAgIAotICAg
IHN0YXRpYyBSZWY8U291cmNlR3JhcGhpYz4gY3JlYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxTb3VyY2VHcmFwaGljPiBjcmVhdGUoKTsKIAogICAgIHN0YXRpYyBBdG9tU3Ry
aW5nIGVmZmVjdE5hbWUoKSB7IHJldHVybiBGaWx0ZXJFZmZlY3Q6OnNvdXJjZUdyYXBoaWNOYW1l
KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRleCBjOTE5ZDk4
MDU0M2I3ODlmNWI5ZTU5ZTlhMjYxNWNhNzkwZTdmYmRkLi5hOTc4YjlhZWYwZWJiMGFiYTM1NzAw
OGVlYWI1MzdjZTVjMjA1MTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Q1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNw
cApAQCAtNTIsNiArNTIsMTEgQEAgUmVmUHRyPENTU0ZpbHRlcj4gQ1NTRmlsdGVyOjpjcmVhdGUo
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgb3BlcmF0aW9ucywgUmVuZGVyaW4KICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NGaWx0ZXIocmVuZGVyaW5nTW9kZSwgc2NhbGVGYWN0b3IsIGNsaXBP
cGVyYXRpb24sIGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscywgaGFzRmlsdGVyVGhhdFNob3VsZEJl
UmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW4pKTsKIH0KIAorUmVmUHRyPENTU0ZpbHRlcj4gQ1NT
RmlsdGVyOjpjcmVhdGUoVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiYgZnVuY3Rpb25zKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRmlsdGVyKFdURk1vdmUoZnVuY3Rpb25zKSkp
OworfQorCiBDU1NGaWx0ZXI6OkNTU0ZpbHRlcihSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IGZsb2F0IHNjYWxlRmFjdG9yLCBDbGlwT3BlcmF0aW9uIGNsaXBPcGVyYXRpb24sIGJvb2wgaGFz
RmlsdGVyVGhhdE1vdmVzUGl4ZWxzLCBib29sIGhhc0ZpbHRlclRoYXRTaG91bGRCZVJlc3RyaWN0
ZWRCeVNlY3VyaXR5T3JpZ2luKQogICAgIDogRmlsdGVyKEZpbHRlcjo6VHlwZTo6Q1NTRmlsdGVy
LCByZW5kZXJpbmdNb2RlLCBGbG9hdFNpemUgeyBzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IgfSwg
Y2xpcE9wZXJhdGlvbikKICAgICAsIG1faGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxzKGhhc0ZpbHRl
clRoYXRNb3Zlc1BpeGVscykKQEAgLTU5LDYgKzY0LDEyIEBAIENTU0ZpbHRlcjo6Q1NTRmlsdGVy
KFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgc2NhbGVGYWN0b3IsIENsaXBPcGVy
YXRpCiB7CiB9CiAKK0NTU0ZpbHRlcjo6Q1NTRmlsdGVyKFZlY3RvcjxSZWY8RmlsdGVyRnVuY3Rp
b24+PiYmIGZ1bmN0aW9ucykKKyAgICA6IEZpbHRlcihUeXBlOjpDU1NGaWx0ZXIpCisgICAgLCBt
X2Z1bmN0aW9ucyhXVEZNb3ZlKGZ1bmN0aW9ucykpCit7Cit9CisKIHN0YXRpYyBSZWZQdHI8Rmls
dGVyRWZmZWN0PiBjcmVhdGVCbHVyRWZmZWN0KGNvbnN0IEJsdXJGaWx0ZXJPcGVyYXRpb24mIGJs
dXJPcGVyYXRpb24sIEZpbHRlcjo6Q2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0aW9uKQogewogICAg
IGZsb2F0IHN0ZERldmlhdGlvbiA9IGZsb2F0VmFsdWVGb3JMZW5ndGgoYmx1ck9wZXJhdGlvbi5z
dGREZXZpYXRpb24oKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Q1NTRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKaW5kZXgg
NzNhNGU4N2E4ZjU1ZGE4MjJiODJlOWRlOTMyNjJkNWQ4NzhlMjc0ZC4uOTkyMTc3ZmYwNGQ4ODFk
NmMwMmE0YTY3ZjAyMjFlZWJlYWYxNGMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NTU0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0
ZXIuaApAQCAtNDMsNiArNDMsOSBAQCBjbGFzcyBDU1NGaWx0ZXIgZmluYWwgOiBwdWJsaWMgRmls
dGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmUHRyPENTU0ZpbHRlcj4gY3JlYXRlKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmLCBSZW5kZXJp
bmdNb2RlLCBmbG9hdCBzY2FsZUZhY3RvciA9IDEsIENsaXBPcGVyYXRpb24gPSBDbGlwT3BlcmF0
aW9uOjpJbnRlcnNlY3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8Q1NTRmls
dGVyPiBjcmVhdGUoVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiYpOworCisgICAgY29uc3Qg
VmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiBmdW5jdGlvbnMoKSBjb25zdCB7IHJldHVybiBt
X2Z1bmN0aW9uczsgfQogCiAgICAgdm9pZCBzZXRTb3VyY2VJbWFnZVJlY3QoY29uc3QgRmxvYXRS
ZWN0Jik7CiAgICAgYm9vbCBidWlsZEZpbHRlckZ1bmN0aW9ucyhSZW5kZXJFbGVtZW50JiwgY29u
c3QgRmlsdGVyT3BlcmF0aW9ucyYpOwpAQCAtNjIsNiArNjUsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgQ1NTRmlsdGVyKFJlbmRlcmluZ01vZGUsIGZsb2F0IHNjYWxlRmFjdG9yLCBDbGlw
T3BlcmF0aW9uLCBib29sIGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscywgYm9vbCBoYXNGaWx0ZXJU
aGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9yaWdpbik7CisgICAgQ1NTRmlsdGVyKFZl
Y3RvcjxSZWY8RmlsdGVyRnVuY3Rpb24+PiYmKTsKIAogI2lmIFVTRShDT1JFX0lNQUdFKQogICAg
IGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlcnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKaW5kZXggYWU3MTIy
NDRmOWM4NDJkMTg3NmIyMDk5YTZjM2M5MDc3NzJhYzBkMS4uY2FkZmY0MTY2M2Q5ZmNlY2FkNWM0
NWI1Zjg3NDc5MzBkYjgwMzIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyRmlsdGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyRmlsdGVycy5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIFJlbmRlckxheWVy
RmlsdGVyczo6YXBwbHlGaWx0ZXJFZmZlY3QoR3JhcGhpY3NDb250ZXh0JiBkZXN0aW5hdGlvbkNv
bnRleHQpCiAKICAgICBhdXRvJiBmaWx0ZXIgPSAqbV9maWx0ZXI7CiAKLSAgICBkZXN0aW5hdGlv
bkNvbnRleHQuZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIobV9zb3VyY2VJbWFnZS5nZXQoKSwgZmls
dGVyKTsKKyAgICBkZXN0aW5hdGlvbkNvbnRleHQuZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIobV9z
b3VyY2VJbWFnZS5nZXQoKSwgZmlsdGVyLnNvdXJjZUltYWdlUmVjdCgpLCBmaWx0ZXIpOwogICAg
IGZpbHRlci5jbGVhckludGVybWVkaWF0ZVJlc3VsdHMoKTsKIAogICAgIExPR19XSVRIX1NUUkVB
TShGaWx0ZXJzLCBzdHJlYW0gPDwgIlJlbmRlckxheWVyRmlsdGVycyAiIDw8IHRoaXMgPDwgIiBh
cHBseUZpbHRlckVmZmVjdCBkb25lXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKaW5kZXggYjAzMGMwZjY2
NTYxNTFjMTExYTIxZTk5ZDMwMDEyMjEzNjZmNDA1ZC4uNmI2MWIyYzg2NjVkM2YzYWIxMjEwODFh
OTBkNzA2ZjM4YTAwN2YzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKQEAgLTIxNSw3ICsyMTUsNyBAQCB2
b2lkIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNvdXJjZShSZW5kZXJFbGVt
ZW50JiByZW5kZXJlciwgR3JhcGhpYwogCiAgICAgaWYgKCFmaWx0ZXJEYXRhLmJvdW5kYXJpZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGZpbHRlckRhdGEuc3RhdGUgPSBGaWx0ZXJEYXRhOjpCdWls
dDsKLSAgICAgICAgY29udGV4dC0+ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoZmlsdGVyRGF0YS5z
b3VyY2VHcmFwaGljQnVmZmVyLmdldCgpLCAqZmlsdGVyRGF0YS5maWx0ZXIpOworICAgICAgICBj
b250ZXh0LT5kcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihmaWx0ZXJEYXRhLnNvdXJjZUdyYXBoaWNC
dWZmZXIuZ2V0KCksIGZpbHRlckRhdGEuZHJhd2luZ1JlZ2lvbiwgKmZpbHRlckRhdGEuZmlsdGVy
KTsKICAgICB9CiAKICAgICBmaWx0ZXJEYXRhLnNvdXJjZUdyYXBoaWNCdWZmZXIgPSBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAKaW5kZXggZmI0OTNlNTlk
ZDgyYmM2OWFkNzkxYjM3NWNlOGE4MjkyY2Q3YzgxZi4uODU3MzM3YmMzYzkwNzU1YjVjZjhkMWFi
MTFjYThlZmQzMGMzNjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVy
Z2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQu
Y3BwCkBAIC02MSw3ICs2MSw3IEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFTWVyZ2VFbGVt
ZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyJiBmaWx0ZXJCdWlsZGVyKSBjCiAgICAgaWYgKG1l
cmdlSW5wdXRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRv
IGVmZmVjdCA9IEZFTWVyZ2U6OmNyZWF0ZSgpOworICAgIGF1dG8gZWZmZWN0ID0gRkVNZXJnZTo6
Y3JlYXRlKG1lcmdlSW5wdXRzLnNpemUoKSk7CiAgICAgZWZmZWN0LT5pbnB1dEVmZmVjdHMoKSA9
IFdURk1vdmUobWVyZ2VJbnB1dHMpOwogICAgIHJldHVybiBlZmZlY3Q7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAKaW5kZXggYWRhNTRkNDE4YTBiNjAyNTQ2YjE3ZTU3YzY2ZGQwY2Q2
OTAzMGQxMy4uNWUyM2RkMmFmZjI4ZmVhNDk3OWQ2OWNmYWUzYWQ0ODlmY2E2ZWViMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMjIwLDYgKzIyMCwyMyBAQCB2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbgogICAgIGRyYXdpbmdDb250ZXh0KCkuY2xpcFRvSW1hZ2VCdWZmZXIoKm1h
c2tJbWFnZUJ1ZmZlciwgZGVzdGluYXRpb24pOwogfQogCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVj
dCYgc291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVyZW5jZSBmaWx0ZXJSZWZlcmVuY2Up
Cit7CisgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBzb3VyY2VJbWFnZTsKKworICAgIGlmIChzb3Vy
Y2VJbWFnZUlkZW50aWZpZXIpIHsKKyAgICAgICAgc291cmNlSW1hZ2UgPSByZXNvdXJjZUNhY2hl
KCkuY2FjaGVkSW1hZ2VCdWZmZXIoeyAqc291cmNlSW1hZ2VJZGVudGlmaWVyLCBtX3dlYlByb2Nl
c3NJZGVudGlmaWVyIH0pOworICAgICAgICBpZiAoIXNvdXJjZUltYWdlKSB7CisgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGF1dG8gZmlsdGVyID0gZmlsdGVyUmVmZXJlbmNlLnRha2VGaWx0ZXIoKTsK
KworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNv
dXJjZUltYWdlSWRlbnRpZmllciwgc291cmNlSW1hZ2VSZWN0LCBXVEZNb3ZlKGZpbHRlcikpLCBz
b3VyY2VJbWFnZS5nZXQoKSk7Cit9CisKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
ZHJhd0dseXBocyhEaXNwbGF5TGlzdDo6RHJhd0dseXBocyYmIGl0ZW0pCiB7CiAgICAgYXV0byBm
b250SWRlbnRpZmllciA9IGl0ZW0uZm9udElkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5oCmluZGV4IDU5ODJjYmFlYjg3ZTY2MGM1YmFiNzdhNmQ3YTI5NTcwMzU3YmJmOWYuLjY5
NmQ2Y2IxNjI3Njk5MGViNGVjMDc4MmM0MGQzZDdiMGE4MDk2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIuaApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRmls
dGVyUmVmZXJlbmNlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKQEAgLTc3LDYgKzgxLDcgQEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5D
bGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJik7CiAgICAgdm9pZCBlbmRD
bGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlv
bik7CiAgICAgdm9pZCBkcmF3R2x5cGhzKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhz
JiYpOworICAgIHZvaWQgZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIElQQzo6RmlsdGVyUmVm
ZXJlbmNlKTsKICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogICAgIHZvaWQgZHJhd05h
dGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CiAgICAgdm9pZCBkcmF3UGF0
dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2Fn
ZXMuaW4KaW5kZXggNWMxNDA5M2EzYjlhYmEwYTFiZTcyMDY4N2VmYjQ2NjhiNTk1YTM2MS4uMDlj
NDA5N2RlYmViMzQzMWM4ZWYyODQ0ZTdhZjk1MmY0ODVlYWM5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KQEAgLTQ3LDYgKzQ3LDcgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAg
QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMoV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9u
LCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkKICAgICBFbmRDbGlw
VG9EcmF3aW5nQ29tbWFuZHMoV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9uKQogICAgIERy
YXdHbHlwaHMoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMgaXRlbSkKKyAgICBEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3Qg
c291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVyZW5jZSBmaWx0ZXIpCiAgICAgRHJhd0lt
YWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZl
cklkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvblJlY3QsIFdlYkNvcmU6
OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMg
b3B0aW9ucykKICAgICBEcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwg
V2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3JjUmVjdCwg
c3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCiAgICAgRHJhd1Bh
dHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RS
ZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGlsZVJlY3QsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm0sIFdlYkNvcmU6OkZsb2F0UG9pbnQgcGhhc2UsIFdlYkNvcmU6OkZsb2F0U2l6
ZSBzcGFjaW5nLCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBmY2M3MmJmMjBhMmZiMmM2Yjk5YmEwZWU2Zjgy
MDZhNGNhYjZmZmMwLi5iMGRmNTM0MzQ0OTc4MmZhNGNlMzFiY2YzMzJkOGZjNWJjYzhiMTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJGaWx0ZXJSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCIKQEAgLTMxOCw2ICszMTksMzMgQEAgdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZl
cldpdGhRdWFsaWZpZWRJZGVudGkKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRs
ZSkpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldEZpbHRlcmVkSW1hZ2VG
b3JJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSVBD
OjpGaWx0ZXJSZWZlcmVuY2UmJiBmaWx0ZXJSZWZlcmVuY2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGZpbHRlciA9IGZpbHRl
clJlZmVyZW5jZS50YWtlRmlsdGVyKCk7CisKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBo
YW5kbGU7CisgICAgWyZdKCkgeworICAgICAgICBhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0pOworICAgICAgICBpZiAo
IWltYWdlQnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvIGltYWdlID0g
aW1hZ2VCdWZmZXItPmZpbHRlcmVkSW1hZ2UoZmlsdGVyKTsKKyAgICAgICAgaWYgKCFpbWFnZSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBpbWFnZVNpemUgPSBpbWFnZS0+c2l6
ZSgpOworICAgICAgICBhdXRvIGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVh
YmxlKEludFNpemUoaW1hZ2VTaXplKSwgeyBpbWFnZUJ1ZmZlci0+Y29sb3JTcGFjZSgpIH0pOwor
ICAgICAgICBpZiAoIWJpdG1hcCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBj
b250ZXh0ID0gYml0bWFwLT5jcmVhdGVHcmFwaGljc0NvbnRleHQoKTsKKyAgICAgICAgaWYgKCFj
b250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2Uo
KmltYWdlLCBGbG9hdFBvaW50KCkpOworICAgICAgICBiaXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5k
bGUpOworICAgIH0oKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZSkpOwor
fQorCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIG5hdGl2ZUltYWdlUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIC8vIEltbWVkaWF0ZWx5
IHR1cm4gdGhlIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciAod2hpY2ggaXMgZXJyb3ItcHJv
bmUpIHRvIGEgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKaW5kZXggOTg5YmM5MzBmNDg2ZTFjNmRlN2QxNjZhNDM0YWI1ZWUwNmFjOWVmNS4u
ZTM1NzE1ZGQxN2ZlZTY0MzQ1YjIyNjJkNjhjZWJlYTRkNzRhYjk5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oCkBAIC01OCw2ICs1OCwxMCBAQCBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29s
OwogCiB9CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRmlsdGVyUmVmZXJlbmNlOworfQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKQEAg
LTEwOCw2ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RGF0YVVSTEZvckltYWdlQnVm
ZmVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5
LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24sIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYpOwogICAgIHZv
aWQgZ2V0RGF0YUZvckltYWdlQnVmZmVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsKICAgICB2
b2lkIGdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiYpPiYmKTsKKyAgICB2b2lkIGdl
dEZpbHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIElQQzo6RmlsdGVyUmVmZXJlbmNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFn
ZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYp
OwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
bWVzc2FnZXMuaW4KaW5kZXggYTE0MmY0ODk2NmY1YzQ5NzU5NDU2NTQ3NzJjNzljMzE5NzZmNTNk
Yy4uZTdjMWJmYTY3ZjQzM2NmNDRjOGUxYzJlZjg5YzNlNjZhNjlmOWQ4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTMxLDYgKzMxLDcgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgR2V0
RGF0YVVSTEZvckltYWdlQnVmZmVyKFN0cmluZyBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IHF1YWxpdHksIGVudW06dWludDhfdCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24gcHJl
c2VydmVSZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoU3RyaW5nIHVybFN0cmluZykgU3luY2hyb25v
dXMKICAgICBHZXREYXRhRm9ySW1hZ2VCdWZmZXIoU3RyaW5nIG1pbWVUeXBlLCBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgLT4gKFZlY3Rvcjx1aW50OF90PiBkYXRhKSBT
eW5jaHJvbm91cwogICAgIEdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyKFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlciwgZW51bTp1aW50OF90IFdl
YkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24pIC0+IChXZWJLaXQ6
OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSkgU3luY2hyb25vdXMgTm90U3RyZWFtRW5j
b2RhYmxlUmVwbHkKKyAgICBHZXRGaWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXIoV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVyLCBJUEM6OkZpbHRlclJlZmVy
ZW5jZSBmaWx0ZXIpIC0+IChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSkg
U3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlUmVwbHkKICAgICBDYWNoZU5hdGl2ZUltYWdl
KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSBOb3RTdHJl
YW1FbmNvZGFibGUKICAgICBDYWNoZUZvbnQoSVBDOjpGb250UmVmZXJlbmNlIGZvbnQpIE5vdFN0
cmVhbUVuY29kYWJsZQogICAgIERlbGV0ZUFsbEZvbnRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQyZDg3NWI3YTk0ODBlNTZh
NmUzZjljMzBiNzZmYTQ2MzY3Yzg1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oCkBAIC0wLDAgKzEsNDA4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NTU0ZpbHRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRkVCbGVuZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVDb2xvck1hdHJp
eC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVDb21wb25lbnRUcmFuc2Zlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRkVDb21wb3NpdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFQ29udm9sdmVNYXRy
aXguaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFRGlmZnVzZUxpZ2h0aW5nLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GRURpc3BsYWNlbWVudE1hcC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVEcm9wU2hh
ZG93Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUZsb29kLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
RUdhdXNzaWFuQmx1ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVNZXJnZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRkVNb3JwaG9sb2d5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRU9mZnNldC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRkVTcGVjdWxhckxpZ2h0aW5nLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GRVRpbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFVHVyYnVsZW5jZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRmlsdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXJFZmZlY3RWZWN0b3Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NWR0ZFSW1hZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NW
R0ZpbHRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU291cmNlQWxwaGEuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NvdXJjZUdyYXBoaWMuaD4KKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIEZpbHRl
clJlZmVyZW5jZSB7CitwdWJsaWM6CisgICAgRmlsdGVyUmVmZXJlbmNlKFJlZjxXZWJDb3JlOjpG
aWx0ZXI+JiYgZmlsdGVyKQorICAgICAgICA6IG1fZmlsdGVyKFdURk1vdmUoZmlsdGVyKSkKKyAg
ICB7CisgICAgfQorCisgICAgUmVmPFdlYkNvcmU6OkZpbHRlcj4gdGFrZUZpbHRlcigpIHsgcmV0
dXJuIFdURk1vdmUobV9maWx0ZXIpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8RmlsdGVyUmVmZXJlbmNlPiBkZWNvZGUoRGVjb2RlciYpOwor
Citwcml2YXRlOgorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29k
ZUZpbHRlckVmZmVjdChjb25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZlY3QmLCBFbmNvZGVyJik7Cisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q+IGRlY29kZUZpbHRlckVmZmVjdChEZWNvZGVyJiwgV2ViQ29yZTo6RmlsdGVyRnVuY3Rp
b246OlR5cGUpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5j
b2RlU1ZHRmlsdGVyKGNvbnN0IFdlYkNvcmU6OlNWR0ZpbHRlciYsIEVuY29kZXImKTsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OlNWR0ZpbHRlcj4g
ZGVjb2RlU1ZHRmlsdGVyKERlY29kZXImKTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHN0YXRpYyB2b2lkIGVuY29kZUNTU0ZpbHRlcihjb25zdCBXZWJDb3JlOjpDU1NGaWx0ZXImLCBF
bmNvZGVyJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJD
b3JlOjpDU1NGaWx0ZXI+IGRlY29kZUNTU0ZpbHRlcihEZWNvZGVyJik7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGVGaWx0ZXIoY29uc3QgV2ViQ29yZTo6
RmlsdGVyJiwgRW5jb2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBS
ZWZQdHI8V2ViQ29yZTo6RmlsdGVyPiBkZWNvZGVGaWx0ZXIoRGVjb2RlciYsIFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpUeXBlKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
UmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gZGVjb2RlRmlsdGVyKERlY29kZXImKTsKKworICAgIFJl
ZjxXZWJDb3JlOjpGaWx0ZXI+IG1fZmlsdGVyOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXJFZmZlY3QoY29uc3QgV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0JiBlZmZlY3QsIEVuY29kZXImIGVuY29kZXIpCit7CisgICAgZW5jb2Rl
ciA8PCBlZmZlY3QuZmlsdGVyVHlwZSgpOworICAgIGVuY29kZXIgPDwgZWZmZWN0Lm9wZXJhdGlu
Z0NvbG9yU3BhY2UoKTsKKworICAgIHN3aXRjaCAoZWZmZWN0LmZpbHRlclR5cGUoKSkgeworICAg
IGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUJsZW5kOgorICAgICAgICBkb3du
Y2FzdDxXZWJDb3JlOjpGRUJsZW5kPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb2xvck1h
dHJpeDoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVDb2xvck1hdHJpeD4oZWZmZWN0KS5l
bmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXI6CisgICAgICAgIGRvd25jYXN0PFdl
YkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNv
bXBvc2l0ZToKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVDb21wb3NpdGU+KGVmZmVjdCku
ZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6Rmls
dGVyRWZmZWN0OjpUeXBlOjpGRUNvbnZvbHZlTWF0cml4OgorICAgICAgICBkb3duY2FzdDxXZWJD
b3JlOjpGRUNvbnZvbHZlTWF0cml4PihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaWZmdXNl
TGlnaHRpbmc6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nPihl
ZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaXNwbGFjZW1lbnRNYXA6CisgICAgICAgIGRvd25j
YXN0PFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6
RkVEcm9wU2hhZG93OgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRURyb3BTaGFkb3c+KGVm
ZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUZsb29kOgorICAgICAgICBkb3duY2FzdDxXZWJDb3Jl
OjpGRUZsb29kPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVHYXVzc2lhbkJsdXI6CisgICAg
ICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyPihlZmZlY3QpLmVuY29kZShlbmNv
ZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
VHlwZTo6RkVJbWFnZToKKyAgICAgICAgLy8gRklYTUU6IGVuY29kZSBGRUltYWdlLgorICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1lcmdl
OgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRU1lcmdlPihlZmZlY3QpLmVuY29kZShlbmNv
ZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
VHlwZTo6RkVNb3JwaG9sb2d5OgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRU1vcnBob2xv
Z3k+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug
V2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU9mZnNldDoKKyAgICAgICAgZG93bmNhc3Q8
V2ViQ29yZTo6RkVPZmZzZXQ+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVNwZWN1bGFyTGln
aHRpbmc6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZz4oZWZm
ZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVGlsZToKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVUdXJidWxlbmNlOgorICAgICAgICBkb3du
Y2FzdDxXZWJDb3JlOjpGRVR1cmJ1bGVuY2U+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpTb3Vy
Y2VBbHBoYToKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3Jh
cGhpYzoKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitSZWZQdHI8
V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVj
dChEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSBmaWx0ZXJU
eXBlKQoreworICAgIGlmICghKGZpbHRlclR5cGUgPj0gV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246
OlR5cGU6OkZFRmlyc3QgJiYgZmlsdGVyVHlwZSA8PSBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6
VHlwZTo6RkVMYXN0KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZT4gb3BlcmF0aW5nQ29sb3JTcGFjZTsK
KyAgICBkZWNvZGVyID4+IG9wZXJhdGluZ0NvbG9yU3BhY2U7CisgICAgaWYgKCFvcGVyYXRpbmdD
b2xvclNwYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0ZDo6b3B0aW9uYWw8
UmVmPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4+IGVmZmVjdDsKKworICAgIHN3aXRjaCAoZmlsdGVy
VHlwZSkgeworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUJsZW5kOgor
ICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRUJsZW5kOjpkZWNvZGUoZGVjb2Rlcik7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29s
b3JNYXRyaXg6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmRlY29k
ZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVm
ZmVjdDo6VHlwZTo6RkVDb21wb25lbnRUcmFuc2ZlcjoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29y
ZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsK
KworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvc2l0ZToKKyAg
ICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVDb21wb3NpdGU6OmRlY29kZShkZWNvZGVyKTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVD
b252b2x2ZU1hdHJpeDoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVDb252b2x2ZU1hdHJp
eDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRURpZmZ1c2VMaWdodGluZzoKKyAgICAgICAgZWZmZWN0ID0g
V2ViQ29yZTo6RkVEaWZmdXNlTGlnaHRpbmc6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJl
YWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaXNwbGFjZW1l
bnRNYXA6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpkZWNv
ZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OlR5cGU6OkZFRHJvcFNoYWRvdzoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVE
cm9wU2hhZG93OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRmxvb2Q6CisgICAgICAgIGVmZmVjdCA9IFdl
YkNvcmU6OkZFRmxvb2Q6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBj
YXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVHYXVzc2lhbkJsdXI6CisgICAgICAg
IGVmZmVjdCA9IFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpkZWNvZGUoZGVjb2Rlcik7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFSW1h
Z2U6CisgICAgICAgIC8vIEZJWE1FOiBkZWNvZGUgRkVJbWFnZS4KKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVNZXJnZToKKyAgICAgICAg
ZWZmZWN0ID0gV2ViQ29yZTo6RkVNZXJnZTo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1vcnBob2xvZ3k6
CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZGVjb2RlKGRlY29kZXIp
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBl
OjpGRU9mZnNldDoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVPZmZzZXQ6OmRlY29kZShk
ZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVTcGVjdWxhckxpZ2h0aW5nOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpG
RVNwZWN1bGFyTGlnaHRpbmc6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVUaWxlOgorICAgICAgICBlZmZl
Y3QgPSBXZWJDb3JlOjpGRVRpbGU6OmNyZWF0ZSgpOworICAgICAgICBicmVhazsKKworICAgIGNh
c2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVR1cmJ1bGVuY2U6CisgICAgICAgIGVm
ZmVjdCA9IFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VHcmFw
aGljOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpjcmVhdGUoKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6
U291cmNlQWxwaGE6CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQorCisgICAgaWYgKGVmZmVjdCkgeworICAgICAgICAoKmVmZmVjdCktPnNldE9wZXJh
dGluZ0NvbG9yU3BhY2UoKm9wZXJhdGluZ0NvbG9yU3BhY2UpOworICAgICAgICByZXR1cm4geyAo
KmVmZmVjdCkucHRyKCkgfTsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVTVkdGaWx0
ZXIoY29uc3QgV2ViQ29yZTo6U1ZHRmlsdGVyJiBmaWx0ZXIsIEVuY29kZXImIGVuY29kZXIpCit7
CisgICAgLy8gRklYTUU6IEVuY29kZSB0aGUgU1ZHRmlsdGVyLgorfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorUmVmUHRyPFdlYkNvcmU6OlNWR0ZpbHRlcj4gRmlsdGVyUmVmZXJlbmNlOjpk
ZWNvZGVTVkdGaWx0ZXIoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICAvLyBGSVhNRTogRGVjb2Rl
IHRoZSBTVkdGaWx0ZXIuCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlQ1NTRmlsdGVyKGNvbnN0IFdl
YkNvcmU6OkNTU0ZpbHRlciYgZmlsdGVyLCBFbmNvZGVyJiBlbmNvZGVyKQoreworICAgIGVuY29k
ZXIgPDwgZmlsdGVyLmZ1bmN0aW9ucygpLnNpemUoKTsKKworICAgIGZvciAoYXV0byYgZnVuY3Rp
b24gOiBmaWx0ZXIuZnVuY3Rpb25zKCkpIHsKKyAgICAgICAgaWYgKGlzPFdlYkNvcmU6OlNWR0Zp
bHRlcj4oZnVuY3Rpb24pKSB7CisgICAgICAgICAgICBlbmNvZGVGaWx0ZXIoZG93bmNhc3Q8V2Vi
Q29yZTo6U1ZHRmlsdGVyPihmdW5jdGlvbi5nZXQoKSksIGVuY29kZXIpOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXM8V2ViQ29yZTo6RmlsdGVyRWZm
ZWN0PihmdW5jdGlvbikpCisgICAgICAgICAgICBlbmNvZGVGaWx0ZXJFZmZlY3QoZG93bmNhc3Q8
V2ViQ29yZTo6RmlsdGVyRWZmZWN0PihmdW5jdGlvbi5nZXQoKSksIGVuY29kZXIpOworICAgIH0K
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpDU1NGaWx0ZXI+
IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlQ1NTRmlsdGVyKERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IHNpemU7CisgICAgZGVjb2RlciA+PiBzaXplOworICAg
IGlmICghc2l6ZSB8fCAhKnNpemUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgVmVj
dG9yPFJlZjxXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbj4+IGZ1bmN0aW9uczsKKworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU+IGZpbHRlclR5cGU7CisgICAgICAgIGRlY29kZXIg
Pj4gZmlsdGVyVHlwZTsKKyAgICAgICAgaWYgKCFmaWx0ZXJUeXBlKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICAgICAgaWYgKCpmaWx0ZXJUeXBlID09IFdlYkNvcmU6OkZpbHRl
ckZ1bmN0aW9uOjpUeXBlOjpTVkdGaWx0ZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGZpbHRl
ciA9IGRlY29kZUZpbHRlcihkZWNvZGVyLCAqZmlsdGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAg
ICBmdW5jdGlvbnMuYXBwZW5kKGZpbHRlci5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICB9CisKKyAgICAgICAgYXV0byBlZmZlY3QgPSBkZWNvZGVGaWx0ZXJFZmZlY3Qo
ZGVjb2RlciwgKmZpbHRlclR5cGUpOworICAgICAgICBpZiAoIWVmZmVjdCkKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgICAgIGZ1bmN0aW9ucy5hcHBlbmQoZWZmZWN0LnJlbGVh
c2VOb25OdWxsKCkpOworICAgIH0KKworICAgIHJldHVybiBXZWJDb3JlOjpDU1NGaWx0ZXI6OmNy
ZWF0ZShXVEZNb3ZlKGZ1bmN0aW9ucykpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
dm9pZCBGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZUZpbHRlcihjb25zdCBXZWJDb3JlOjpGaWx0ZXIm
IGZpbHRlciwgRW5jb2RlciYgZW5jb2RlcikKK3sKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5maWx0
ZXJUeXBlKCk7CisgICAgZW5jb2RlciA8PCBmaWx0ZXIucmVuZGVyaW5nTW9kZSgpOworICAgIGVu
Y29kZXIgPDwgZmlsdGVyLmZpbHRlclNjYWxlKCk7CisgICAgZW5jb2RlciA8PCBmaWx0ZXIuY2xp
cE9wZXJhdGlvbigpOworICAgIGVuY29kZXIgPDwgZmlsdGVyLmZpbHRlclJlZ2lvbigpOworCisg
ICAgaWYgKGlzPFdlYkNvcmU6OkNTU0ZpbHRlcj4oZmlsdGVyKSkKKyAgICAgICAgZW5jb2RlQ1NT
RmlsdGVyKGRvd25jYXN0PFdlYkNvcmU6OkNTU0ZpbHRlcj4oZmlsdGVyKSwgZW5jb2Rlcik7Cisg
ICAgZWxzZSBpZiAoaXM8V2ViQ29yZTo6U1ZHRmlsdGVyPihmaWx0ZXIpKQorICAgICAgICBlbmNv
ZGVTVkdGaWx0ZXIoZG93bmNhc3Q8V2ViQ29yZTo6U1ZHRmlsdGVyPihmaWx0ZXIpLCBlbmNvZGVy
KTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpGaWx0ZXI+
IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlRmlsdGVyKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6
OkZpbHRlckZ1bmN0aW9uOjpUeXBlIGZpbHRlclR5cGUpCit7CisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlPiByZW5kZXJpbmdNb2RlOworICAgIGRlY29kZXIgPj4gcmVu
ZGVyaW5nTW9kZTsKKyAgICBpZiAoIXJlbmRlcmluZ01vZGUpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IGZpbHRlclNjYWxl
OworICAgIGRlY29kZXIgPj4gZmlsdGVyU2NhbGU7CisgICAgaWYgKCFmaWx0ZXJTY2FsZSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRl
cjo6Q2xpcE9wZXJhdGlvbj4gY2xpcE9wZXJhdGlvbjsKKyAgICBkZWNvZGVyID4+IGNsaXBPcGVy
YXRpb247CisgICAgaWYgKCFjbGlwT3BlcmF0aW9uKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBmaWx0ZXJSZWdpb247Cisg
ICAgZGVjb2RlciA+PiBmaWx0ZXJSZWdpb247CisgICAgaWYgKCFmaWx0ZXJSZWdpb24pCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgUmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gZmlsdGVy
OworCisgICAgaWYgKGZpbHRlclR5cGUgPT0gV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6
OkNTU0ZpbHRlcikKKyAgICAgICAgZmlsdGVyID0gZGVjb2RlQ1NTRmlsdGVyKGRlY29kZXIpOwor
ICAgIGVsc2UgaWYgKGZpbHRlclR5cGUgPT0gV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6
OlNWR0ZpbHRlcikKKyAgICAgICAgZmlsdGVyID0gZGVjb2RlU1ZHRmlsdGVyKGRlY29kZXIpOwor
ICAgIAorICAgIGlmIChmaWx0ZXIpIHsKKyAgICAgICAgZmlsdGVyLT5zZXRSZW5kZXJpbmdNb2Rl
KCpyZW5kZXJpbmdNb2RlKTsKKyAgICAgICAgZmlsdGVyLT5zZXRGaWx0ZXJTY2FsZSgqZmlsdGVy
U2NhbGUpOworICAgICAgICBmaWx0ZXItPnNldENsaXBPcGVyYXRpb24oKmNsaXBPcGVyYXRpb24p
OworICAgICAgICBmaWx0ZXItPnNldEZpbHRlclJlZ2lvbigqZmlsdGVyUmVnaW9uKTsKKyAgICB9
CisKKyAgICByZXR1cm4gZmlsdGVyOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorUmVm
UHRyPFdlYkNvcmU6OkZpbHRlcj4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXIoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9u
OjpUeXBlPiBmaWx0ZXJUeXBlOworICAgIGRlY29kZXIgPj4gZmlsdGVyVHlwZTsKKyAgICBpZiAo
IWZpbHRlclR5cGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGRlY29k
ZUZpbHRlcihkZWNvZGVyLCAqZmlsdGVyVHlwZSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlRmlsdGVyKG1fZmlsdGVyLCBlbmNvZGVyKTsKK30KKwordGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8RmlsdGVyUmVmZXJlbmNlPiBGaWx0ZXJSZWZl
cmVuY2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChhdXRvIGZpbHRlciA9
IGRlY29kZUZpbHRlcihkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIHsgZmlsdGVyLnJlbGVhc2VO
b25OdWxsKCkgfTsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCit9IC8vIG5hbWVzcGFj
ZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDJjODM5
YTllOWJjZDhlOWYxMjFkZjg5MzBmZjQyZmM2MGNiMjdkMGYuLjA5MzBjZjkxN2JhNzkwZTU3NWQ4
NGI5NjllYWMwNTgxZjUyZjUxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQpAQCAtMjY2LDYgKzI2Niw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3
YXJkX2RlY2xhcmVkKCk6CiAgICAgcmV0dXJuIGZyb3plbnNldChbCiAgICAgICAgICdDVlBpeGVs
QnVmZmVyUmVmJywKICAgICAgICAgJ0lQQzo6RGF0YVJlZmVyZW5jZScsCisgICAgICAgICdJUEM6
OkZpbHRlclJlZmVyZW5jZScsCiAgICAgICAgICdJUEM6OkZvbnRSZWZlcmVuY2UnLAogICAgICAg
ICAnSVBDOjpTZW1hcGhvcmUnLAogICAgICAgICAnTWFjaFNlbmRSaWdodCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxOTIwNjllY2I3
ZWI3MDViMDM0ZDgwOWI1NzcyNTM5MDAwMDFhZDY0Li5mYmM0YmJjNGNhYTJhMTk2Y2NiOWY1NGI0
ZjhlYTQ0MjZkOTZkZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQ5NDgsNiArNDk0OCw3IEBACiAJCTcyMDM0NDlBMjZBNkM0NEMw
MDBBNUY1NCAvKiBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
bm90b25pY09iamVjdElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzIwMzQ0OUIyNkE2QzQ3NjAwMEE1RjU0IC8qIFJlbmRlcmluZ1VwZGF0ZUlELmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlcmluZ1VwZGF0ZUlELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyNDY5NjNBMjc1QjdFNjcwMEE5MTU2QSAvKiBG
aWx0ZXJSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsdGVyUmVmZXJlbmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNkQ1NkREMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1v
dGVSZXNvdXJjZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2Fj
aGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZERTI1M0E2NDgxMDAw
MkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNv
dXJjZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM0MjQwNzg1
N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTc0NjMsNiArNzQ2NCw3IEBACiAJCQkJQkMwMzJEOUUxMEY0MzdEMTAwNThDMTVBIC8q
IERlY29kZXIuaCAqLywKIAkJCQlCQzAzMkQ5RjEwRjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5j
cHAgKi8sCiAJCQkJQkMwMzJEQTAxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuaCAqLywKKwkJ
CQk3MjQ2OTYzQTI3NUI3RTY3MDBBOTE1NkEgLyogRmlsdGVyUmVmZXJlbmNlLmggKi8sCiAJCQkJ
OUJEOEFCNDkyNTgyMEU1MjAwNTM4NkY4IC8qIEZvbnRSZWZlcmVuY2UuaCAqLywKIAkJCQk0MTUx
RTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFSZWZlcmVuY2UuaCAqLywKIAkJCQlDMENF
NzJBQzEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCmluZGV4IDk0MjFkZDIzOGNiNmVjNjNm
ZTFjMDdkNDczNjFjYjBiNjVmZjQwY2IuLjMyYTM0MmRiZmJkZmE3ZjBjMzliYzYzNmE0NzkyMDMx
YWUxNzc0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1
ZGUgIkZpbHRlclJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KQEAgLTE5NCw2ICsxOTUsMTEgQEAgdm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5k
cyhjb25zdCBGbG9hdFIKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoZGVzdGluYXRpb24pKTsKIH0KIAordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFn
ZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZp
bHRlcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpE
cmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZUlkZW50aWZpZXIsIHNvdXJjZUltYWdl
UmVjdCwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UoUmVmPEZpbHRlcj4geyBmaWx0ZXIgfSkpKTsKK30K
Kwogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdHbHlwaHMo
Y29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBH
bHlwaEJ1ZmZlckFkdmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQ
b2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIG1vZGUpCiB7CiAgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0dseXBocyhEaXNwbGF5TGlz
dDo6RHJhd0dseXBocyB7IGZvbnQsIGdseXBocywgYWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hv
ciwgbW9kZSB9KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaApp
bmRleCA3MWZkYjYzZGY0YWM4NDk3NDcyMzI2OWI3ZjAzZDk5N2I4MTM5ODlkLi42Zjc4MDlkNWVl
ZTMwMmQyMjE5MzZjYTA1M2I4NzM5NGNiYTQ3ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5LmgKQEAgLTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlY29yZENsaXBQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmLCBXZWJDb3JlOjpXaW5kUnVsZSkg
ZmluYWw7CiAgICAgdm9pZCByZWNvcmRCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24pIGZpbmFsOworICAgIHZvaWQgcmVj
b3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIFdlYkNvcmU6OkZpbHRlciYpIGZpbmFsOwog
ICAgIHZvaWQgcmVjb3JkRHJhd0dseXBocyhjb25zdCBXZWJDb3JlOjpGb250JiwgY29uc3QgV2Vi
Q29yZTo6R2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IFdlYkNvcmU6OkdseXBoQnVmZmVyQWR2YW5j
ZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhbEFuY2hv
ciwgV2ViQ29yZTo6Rm9udFNtb290aGluZ01vZGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJh
d0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdOYXRpdmVJbWFnZShXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApp
bmRleCAwOTU1N2E3NWIwZWQ0ZTEwZjU2YmI0ODllZjAzZDc4YmVjM2ZiYWUwLi45ZjNhZDEzNjI2
MmE5MmZlZDUwYWY1MmI1ZDIxNDI5MzlhM2I0MjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaApAQCAtMTk4LDYgKzE5OCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBiaXRt
YXAtPmNyZWF0ZUltYWdlKCk7CiAgICAgfQogCisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBm
aWx0ZXJlZEltYWdlKFdlYkNvcmU6OkZpbHRlciYgZmlsdGVyKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgaWYgKFVOTElLRUxZKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCisgICAg
ICAgICAgICByZXR1cm4geyB9OworICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAg
ICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+Z2V0RmlsdGVyZWRJbWFn
ZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgZmlsdGVyKTsKKyAgICB9CisKICAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBX
ZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgZGVzdGluYXRpb25Gb3JtYXQsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoVU5M
SUtFTFkoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCAyY2Q1MzFjMTk2MTcyMmE3ZTE3ZGZkNzEzMDAz
ZWRhYTQ3M2M3YmYwLi41MDI1YTk1ZTRkYzhkZDMxYTJmYjE1YjE4ZjU3NTBhNTUyODc1MTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0yMjMsNiArMjIz
LDIyIEBAIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Z2V0U2hhcmVhYmxlQml0bWFwKFJlbmRlcmluCiAgICAgcmV0dXJuIFNoYXJlYWJsZUJpdG1h
cDo6Y3JlYXRlKGhhbmRsZSk7CiB9CiAKK1JlZlB0cjxJbWFnZT4gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpnZXRGaWx0ZXJlZEltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
bWFnZUJ1ZmZlciwgRmlsdGVyJiBmaWx0ZXIpCit7CisgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUgaGFuZGxlOworICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpHZXRGaWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXIoaW1hZ2VC
dWZmZXIsIElQQzo6RmlsdGVyUmVmZXJlbmNlIHsgZmlsdGVyIH0pLCBNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6R2V0RmlsdGVyZWRJbWFnZUZvckltYWdlQnVmZmVyOjpSZXBseSho
YW5kbGUpLCByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCAxX3MpOworICAgIEFTU0VSVF9V
TlVTRUQoc2VuZFJlc3VsdCwgc2VuZFJlc3VsdCk7CisKKyAgICBpZiAoaGFuZGxlLmlzTnVsbCgp
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBiaXRtYXAgPSBTaGFyZWFibGVCaXRt
YXA6OmNyZWF0ZShoYW5kbGUpOworICAgIGlmICghYml0bWFwKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgcmV0dXJuIGJpdG1hcC0+Y3JlYXRlSW1hZ2UoKTsKK30KKwogdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBzZW5kVG9TdHJlYW0oTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OkNhY2hlTmF0aXZlSW1hZ2UoaGFuZGxlLCByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmlu
ZGV4IDA5Yzg5MTA3YWQ5N2RiYTQxYmJjMzIxMDNiYWNhZDI5YzAxMmUyYTYuLjMwZTE2MzFlOGY5
NjdjMDU5NDA2NzIxMWY4MWMzYWZhOTBkNjc5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuaApAQCAtNDcsNiArNDcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U7CitjbGFzcyBGaWx0ZXI7CiBjbGFzcyBGbG9hdFNp
emU7CiBjbGFzcyBQaXhlbEJ1ZmZlcjsKIApAQCAtOTIsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIGdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9u
LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFZlY3Rvcjx1aW50
OF90PiBnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpv
cHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZ2V0U2hhcmVhYmxlQml0bWFwKFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNv
bHV0aW9uKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGdldEZpbHRlcmVkSW1hZ2UoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWx0ZXImKTsKICAg
ICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVGb250
KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDEwZmMyZmZl
YjJiNWRiYTBjNTFiMmJhYTdjNWFjYzVlMGQ2ODk4Yi4uYjM4Mjg2MmUyZmRhYjNmMWZjOGVmODU4
NzRhZTJhYTNmYjlkMmI5MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEyLTA0ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gQWRkIHRoZSBlbmNv
ZGluZy9kZWNvZGluZyBmb3IgRmlsdGVyIGFuZCBGaWx0ZXJFZmZlY3QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg0NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorCiAyMDIxLTEyLTAzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFdlYiBj
b250ZW50IHByb2Nlc3Mgc29tZXRpbWVzIGNyYXNoZXMgdW5kZXIgV2ViUGFnZTo6cG9zaXRpb25J
bmZvcm1hdGlvbigpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXggYjk4NmEyYTU4ODg0NjViZTE5MjBhNmUwNjY4
ZDcwZGIyNDkwNmVhYi4uZDIzZjdlMWU3MjllMDU1NDUzYWMxZjA1M2EyMzQ1MzAyOTVjYjIwNSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0
VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5
TGlzdFRlc3RzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxh
eUxpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlcmF0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lu
TWVtb3J5RGlzcGxheUxpc3QuaD4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAppbmRleCBkODQ2YzAy
NWUwZGNkOGNhODI5YjcxMjczZGFmMWY3MDdlOWQ5MmRkLi43YTMyMDdmOTVjNjI3ZmU2NjI5Yzky
Nzc0NGI0ZWYwM2U1ZTJlYzNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxp
c3RSZXNvdXJjZUhlYXAuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvR3JhZGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENH
Lmg+CiAK
</data>
<flag name="commit-queue"
          id="471302"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445981</attachid>
            <date>2021-12-05 00:20:42 -0800</date>
            <delta_ts>2021-12-05 01:28:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232844-20211205002041.patch</filename>
            <type>text/plain</type>
            <size>126115</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI3Mjk5NTM4MGYwNjk3
NGRlMDdjYjhhYzU4MzRjNWEzNzNlZTE5ZC4uZTNjZTdiYmY1OGNkNTY5ODAxMThlODkwMzA1MWMx
ODJiODA0OGE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0xMi0wNCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmlsdGVyRWZmZWN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgdGhlIGVuY29kaW5nIGFuZCBkZWNvZGluZyBmb3IgdGhlIEZpbHRlckVmZmVjdCBhbmQg
dGhlCisgICAgICAgIEZpbHRlciBvYmplY3RzLiBCZWNhdXNlIHRoZXNlIG9iamVjdHMgaGF2ZSBz
dXBlci1jbGFzc2VzLCB3ZSBhcmUgZ29pbmcKKyAgICAgICAgdG8gZG8gdGhlIGVuY29kaW5nIGFu
ZCBkZWNvZGluZyB0aHJvdWdoIGEgbmV3IElQQyBjbGFzcyBjYWxsZWQKKyAgICAgICAgRmlsdGVy
UmVmZXJlbmNlLgorCisgICAgICAgIFRoZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2YgdGhlc2Ug
Y2xhc3NlcyB3aWxsIGJlIG5lZWRlZCBpbiB0d28gY2FzZXM6CisKKyAgICAgICAgMSkgRGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcigpCisgICAgICAgIDIpIFJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmZpbHRlcmVkSW1hZ2UoKQorCisgICAgICAgIEEgZmV3IHRo
aW5ncyBoYXZlIG5vdCBiZSBkb25lIHRoaXMgcGF0Y2ggeWV0OgorCisgICAgICAgIDEpIExpZ2h0
U291cmNlIGhhcyBub3QgYmVlbiBlbmNvZGVkL2RlY29kZWQKKyAgICAgICAgMikgRkVMaWdodGlu
ZyBjbGFzc2VzIGhhdmUgbm90IGJlZW4gZW5jb2RlZC9kZWNvZGVkCisgICAgICAgIDMpIEZFSW1h
Z2UgaGFzIG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorICAgICAgICA0KSBTVkdGaWx0ZXIgaGFz
IG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3Qg
Y2hhbmdlIGFueSBiZWhhdmlvciBldmVuIGlmIHRoZSBHUFUgUHJvY2VzcyBmb3IgRE9NCisgICAg
ICAgIHJlbmRlcmluZyBpcyBlbmFibGVkLiBUaGUgc291cmNlSW1hZ2UgZm9yIHRoZSBmaWx0ZXIg
YW5kIHRoZSBmaWx0ZXIgaW1hZ2UKKyAgICAgICAgbmVlZCB0byBiZSBvZiB0eXBlIG9mIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkgdG8gdGhpcyBjb2RlIHRvIGJlIGNhbGxlZC4KKworICAgICAgICAq
IEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRlcyk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6RHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OmFwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjpzb3VyY2VJbWFnZUlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZElt
YWdlQnVmZmVyOjpzb3VyY2VJbWFnZVJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjpnbG9iYWxCb3VuZHMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjps
b2NhbEJvdW5kcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6cmVjb3Jk
RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OmRlY29kZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4Lmg6CisgICAgICAg
IChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVDb2xvck1hdHJpeDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21w
b25lbnRUcmFuc2Zlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9u
ZW50VHJhbnNmZXI6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6ZGVjb2RlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFQ29udm9sdmVNYXRyaXg6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGRUNvbnZvbHZlTWF0cml4OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlm
ZnVzZUxpZ2h0aW5nOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEaXNwbGFjZW1lbnRNYXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50
TWFwOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRmxvb2Q6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RkVHYXVzc2lhbkJsdXI6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVNZXJnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OkZF
TWVyZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6RkVNZXJnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZFTWVyZ2U6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1vcnBob2xvZ3kuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpGRU9mZnNldDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFT2Zmc2V0
OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oOgorICAgICAgICAo
V2ViQ29yZTo6RkVUdXJidWxlbmNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RkVUdXJidWxlbmNlOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlcjo6YXBwbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXI6OnNldENsaXBPcGVyYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRmlsdGVyOjpDU1NGaWx0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0
ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyRmlsdGVyczo6YXBwbHlGaWx0ZXJFZmZlY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OnBvc3RBcHBseVJlc291cmNlKToK
KyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRkVNZXJnZUVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKwogMjAyMS0xMi0wMyAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIChSRUdS
RVNTSU9OIHIyODU1OTcpOiBGaXggU1ZHRmlsdGVyIGNsYW1waW5nIGNhbGN1bGF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDg3NzY5MTQ5NzZiMmE5MmY3NmRkODc2MTFkMjgxYTAyOGIxMzc0OTUuLmQ5M2VjMDQx
NmI1OWE0MmQyN2RjOGJkMzc2NmIyN2ZiZTcwOGQ0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMjEtMTItMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0dQVSBQcm9jZXNzXSBBZGQgdGhlIGVuY29kaW5nL2RlY29kaW5nIGZvciBGaWx0ZXIg
YW5kIEZpbHRlckVmZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyODQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldEZpbHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcik6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaDogQWRkZWQu
CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6RmlsdGVyUmVmZXJlbmNlKToKKyAgICAg
ICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjp0YWtlRmlsdGVyKToKKyAgICAgICAgKElQQzo6Rmls
dGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoSVBDOjpGaWx0ZXJS
ZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVjdCk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVy
ZW5jZTo6ZW5jb2RlU1ZHRmlsdGVyKToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpk
ZWNvZGVTVkdGaWx0ZXIpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZUNT
U0ZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlQ1NTRmlsdGVy
KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXIpOgorICAgICAg
ICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlcik6CisgICAgICAgIChJUEM6OkZp
bHRlclJlZmVyZW5jZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJl
bmNlOjpkZWNvZGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAg
ICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3RmlsdGVy
ZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0RmlsdGVyZWRJbWFnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Lmg6CisKIDIwMjEtMTItMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gV2ViIGNvbnRlbnQgcHJvY2VzcyBzb21ldGltZXMgY3Jhc2hlcyB1
bmRlciBXZWJQYWdlOjpwb3NpdGlvbkluZm9ybWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IDQxNWI0ZmM2YTJjODVmYTJjZmVhMjRmZTFjMDUwZWNhYjFmYWZiODkuLjgxZGM2ZjY5OThiMTVl
NWJkYmY5ZGFlM2U1OWNjYjhlMTdhNjEyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTU2MCwx
MiArMTU2MCwyNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5o
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVRpbGUuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNl
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3RHZW9tZXRyeS5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJJbWFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJP
cGVyYXRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9u
cy5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKIAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Cb3guaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2lz
by9JU09PcmlnaW5hbEZvcm1hdEJveC5oCkBAIC0xNzMxLDYgKzE3NDYsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5o
CiAKICAgICByZW5kZXJpbmcvQnJlYWtMaW5lcy5oCisgICAgcmVuZGVyaW5nL0NTU0ZpbHRlci5o
CiAgICAgcmVuZGVyaW5nL0NsaXBSZWN0LmgKICAgICByZW5kZXJpbmcvRXZlbnRSZWdpb24uaAog
ICAgIHJlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuaApAQCAtMTg3OCw2ICsxODk0LDggQEAgc2V0
KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAgICAgc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlQ2FjaGUuaAogCisgICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKKwog
ICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1p
dGl2ZUxpc3QuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NWEwOTBi
NjI5Y2Y0N2MxNzMwM2FmMmQ0MGY5NzlmYjAxNzAxMzFiLi44YTJhOTMzOGY0MDA4ZmNkMDkxODI4
ZTFhN2MwMDNmNjg2M2Y5M2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjMzLDcgKzEyMzMsNyBAQAogCQk0MzEwN0JFMjE4
Q0MxOURFMDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzEwN0JFMTE4Q0MxOURFMDBDQzE4RTgg
LyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggKi87IH07CiAJCTQzMkQzRkU4MThBODY1ODQwMEQ3
REMwMyAvKiBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzJEM0ZFNzE4QTg2NTg0MDBEN0RDMDMgLyog
U2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oICovOyB9OwogCQk0MzU4RTg3RDEzNjBBMkVF
MDBFNDc0OEMgLyogSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg3QjEzNjBBMkVFMDBFNDc0OEMgLyog
SlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi87IH07Ci0JCTQzNThFODgxMTM2MEEzMTcwMEU0
NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQzNThFODdGMTM2MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCAq
LzsgfTsKKwkJNDM1OEU4ODExMzYwQTMxNzAwRTQ3NDhDIC8qIEZFRHJvcFNoYWRvdy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4N0YxMzYwQTMx
NzAwRTQ3NDhDIC8qIEZFRHJvcFNoYWRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQzNThFODg2MTM2MEEzM0IwMEU0NzQ4QyAvKiBTVkdGRURy
b3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MzU4RTg4MzEzNjBBMzNCMDBFNDc0OEMgLyogU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5oICovOyB9OwogCQk0MzY3MDhDMTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHQmxvY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwODgy
MTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdCbG9jay5oICovOyB9OwogCQk0MzY3MDhDMzEy
RDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDg4NDEyRDlDQTRBMDAwNDQyMzQgLyog
UmVuZGVyU1ZHQ29udGFpbmVyLmggKi87IH07CkBAIC0yMzAxLDYgKzIzMDEsMTAgQEAKIAkJNzIx
NDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0
NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzIxQjQ5NzQyNTEyQkEzQjAwRkU5RDNCIC8qIEltYWdlQml0bWFw
QmFja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzIxQjQ5NzAyNTEyQUMwNDAwRkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2
OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIElt
YWdlUGFpbnRpbmdPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNzI0Njk2M0IyNzVDNUZBNjAwQTkxNTZBIC8qIENTU0ZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1M0ZCODMyMTNC
MUJCODAwQzQwRDM0IC8qIENTU0ZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTcyNDY5NjNEMjc1QzYxNDQwMEE5MTU2QSAvKiBGaWx0ZXJF
ZmZlY3RWZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDcyMTRCOUI3Mjc0NDU4RkEwMDNCRTZERiAvKiBGaWx0ZXJFZmZlY3RWZWN0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjQ2OTYzRTI3
NUM2MTY3MDBBOTE1NkEgLyogRmlsdGVySW1hZ2VWZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQjRFRjdDMjc0RUUzN0YwMDI5M0MyRiAvKiBG
aWx0ZXJJbWFnZVZlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTcyNDY5NjNGMjc1QzY0N0IwMEE5MTU2QSAvKiBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDOEYyMjQ2MUREM0QxQzUwMEU5MkRBMyAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MjRFRDMzMjFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUQzMzAxQTNBOEIyMzAwRjVG
MTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCAqLzsgfTsKIAkJNzI0RUU1NTAxREM4MEQ3RjAwQTkx
RkZCIC8qIEFjdGl2aXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcyNEVFNTRFMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUU1
NTExREM4MEQ4NDAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEYxREM3RjI1
QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNzIwLDM1ICsyNzI0LDM1IEBA
CiAJCTg0MzAwQkQ2MTIwQzlBQUMwMDIxOTU0QSAvKiBTVkdQYXRoU3RyaW5nU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDMwMEJENTEyMEM5
QUFDMDAyMTk1NEEgLyogU1ZHUGF0aFN0cmluZ1NvdXJjZS5oICovOyB9OwogCQk4NDMwMEJEODEy
MEM5QUQ0MDAyMTk1NEEgLyogU1ZHUGF0aFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQzMDBCRDcxMjBDOUFENDAwMjE5NTRBIC8qIFNWR1Bh
dGhTb3VyY2UuaCAqLzsgfTsKIAkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ1RTcyRjcw
RkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTg0NUU3MkZDMEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NUU3
MkZBMEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCAqLzsgfTsKKwkJODQ1RTcyRkMwRkQy
NjIzOTAwQTg3RDc5IC8qIFNWR0ZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ1RTcyRkEwRkQyNjIzOTAwQTg3RDc5IC8qIFNWR0ZpbHRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0NjUw
RTdFMjM4N0FEN0QwMDYyNjZFMiAvKiBNZWRpYVF1ZXJ5TGlzdEV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDY1MEU3QzIzODdBRDdDMDA2MjY2
RTIgLyogTWVkaWFRdWVyeUxpc3RFdmVudC5oICovOyB9OwogCQk4NDczMEQ3NzEyNDhGMEIzMDBE
M0E5QzkgLyogRGlzdGFudExpZ2h0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ1QTEyNDhGMEIzMDBEM0E5QzkgLyogRGlzdGFudExp
Z2h0U291cmNlLmggKi87IH07Ci0JCTg0NzMwRDc5MTI0OEYwQjMwMEQzQTlDOSAvKiBGRUNvbnZv
bHZlTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDczMEQ1QzEyNDhGMEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5oICovOyB9Owot
CQk4NDczMEQ3QjEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDVFMTI0OEYwQjMw
MEQzQTlDOSAvKiBGRURpZmZ1c2VMaWdodGluZy5oICovOyB9OwotCQk4NDczMEQ3RDEyNDhGMEIz
MDBEM0E5QzkgLyogRkVEaXNwbGFjZW1lbnRNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDYwMTI0OEYwQjMwMEQzQTlDOSAvKiBGRURpc3Bs
YWNlbWVudE1hcC5oICovOyB9OwotCQk4NDczMEQ3RjEyNDhGMEIzMDBEM0E5QzkgLyogRkVGbG9v
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBE
NjIxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCAqLzsgfTsKLQkJODQ3MzBEODExMjQ4RjBC
MzAwRDNBOUM5IC8qIEZFTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY0MTI0OEYwQjMwMEQzQTlDOSAvKiBGRUxpZ2h0aW5nLmgg
Ki87IH07Ci0JCTg0NzMwRDgzMTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1lcmdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2NjEyNDhGMEIzMDBE
M0E5QzkgLyogRkVNZXJnZS5oICovOyB9OwotCQk4NDczMEQ4NTEyNDhGMEIzMDBEM0E5QzkgLyog
RkVNb3JwaG9sb2d5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDczMEQ2ODEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmggKi87IH07Ci0J
CTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENkExMjQ4RjBCMzAwRDNBOUM5IC8q
IEZFT2Zmc2V0LmggKi87IH07Ci0JCTg0NzMwRDg5MTI0OEYwQjMwMEQzQTlDOSAvKiBGRVNwZWN1
bGFyTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0NzMwRDZDMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVNwZWN1bGFyTGlnaHRpbmcuaCAqLzsg
fTsKLQkJODQ3MzBEOEIxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFVGlsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENkUxMjQ4RjBCMzAwRDNBOUM5
IC8qIEZFVGlsZS5oICovOyB9OwotCQk4NDczMEQ4RDEyNDhGMEIzMDBEM0E5QzkgLyogRkVUdXJi
dWxlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NDczMEQ3MDEyNDhGMEIzMDBEM0E5QzkgLyogRkVUdXJidWxlbmNlLmggKi87IH07Ci0JCTg0NzMw
RDkxMTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzQxMjQ4RjBCMzAwRDNBOUM5IC8qIExp
Z2h0U291cmNlLmggKi87IH07CisJCTg0NzMwRDc5MTI0OEYwQjMwMEQzQTlDOSAvKiBGRUNvbnZv
bHZlTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDczMEQ1QzEyNDhGMEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDdCMTI0OEYw
QjMwMEQzQTlDOSAvKiBGRURpZmZ1c2VMaWdodGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlm
ZnVzZUxpZ2h0aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJODQ3MzBEN0QxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2MDEy
NDhGMEIzMDBEM0E5QzkgLyogRkVEaXNwbGFjZW1lbnRNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ3RjEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVGbG9vZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ3MzBENjIxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ4MTEyNDhGMEIzMDBEM0E5
QzkgLyogRkVMaWdodGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODQ3MzBENjQxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGlnaHRpbmcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ4MzEyNDhG
MEIzMDBEM0E5QzkgLyogRkVNZXJnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQ3MzBENjYxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ4NTEy
NDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2ODEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3Jw
aG9sb2d5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJODQ3MzBEODcxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2QTEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVPZmZzZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk4NDczMEQ4OTEyNDhGMEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2QzEy
NDhGMEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3MzBEOEIxMjQ4RjBCMzAwRDNBOUM5
IC8qIEZFVGlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ3MzBENkUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFVGlsZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDhEMTI0OEYwQjMwMEQzQTlD
OSAvKiBGRVR1cmJ1bGVuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg0NzMwRDcwMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVR1cmJ1bGVuY2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ5MTEy
NDhGMEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc0MTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNv
dXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTg0NzMwRDkyMTI0OEYwQjMwMEQzQTlDOSAvKiBQb2ludExpZ2h0U291cmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NTEyNDhGMEIzMDBE
M0E5QzkgLyogUG9pbnRMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDczMEQ5MzEyNDhGMEIzMDBE
M0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NjEyNDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291
cmNlLmggKi87IH07CiAJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlz
dEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg0NzZDOUU0MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCAqLzsg
fTsKIAkJODQ3NkM5RUIxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFODExREY2QTI5
MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIuaCAqLzsgfTsKIAkJODQ3NkM5RUMxMURGNkEyOTAw
NTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25z
dW1lci5oICovOyB9OwogCQk4NDc2QzlGMDExREY2QTU4MDA1NTVCMDIgLyogU1ZHUGF0aFBhcnNl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5
RUUxMURGNkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCAqLzsgfTsKLQkJODQ4MDE5NTUx
MDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDgwMTk1MzEwOEJBRkIzMDBDQjJCMUYgLyogRkVH
YXVzc2lhbkJsdXIuaCAqLzsgfTsKKwkJODQ4MDE5NTUxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1
c3NpYW5CbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDgwMTk1MzEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDgyQjc0NjExOThDMzU0
MDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNDQyQkJGODExOTRDOUQzMDBENDk0NjkgLyogSGFzaENoYW5n
ZUV2ZW50LmggKi87IH07CiAJCTg0ODJCNzUyMTE5OENCNkIwMEJGQjAwNSAvKiBKU0hhc2hDaGFu
Z2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ4MkI3NTAxMTk4Q0I2QjAwQkZCMDA1IC8qIEpTSGFzaENoYW5nZUV2ZW50LmggKi87IH07CiAJ
CTg0ODUyMjdDMTE5MDE2MkMwMDZFREM3RiAvKiBKU1NWR0hLZXJuRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4NTIyNzgxMTkwMTYyQzAw
NkVEQzdGIC8qIEpTU1ZHSEtlcm5FbGVtZW50LmggKi87IH07CiAJCTg0ODUyMjdFMTE5MDE2MkMw
MDZFREM3RiAvKiBKU1NWR1ZLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4NTIyN0ExMTkwMTYyQzAwNkVEQzdGIC8qIEpTU1ZHVktl
cm5FbGVtZW50LmggKi87IH07CiAJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2Vy
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg0ODUyMjg4MTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1lbnQuaCAqLzsgfTsKLQkJ
ODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUYzQzBGQzdERkYwMDA5NTUzMDAg
LyogU291cmNlQWxwaGEuaCAqLzsgfTsKLQkJODRBODFGNDIwRkM3RTAyNzAwOTU1MzAwIC8qIFNv
dXJjZUdyYXBoaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0QTgxRjQwMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggKi87IH07CisJ
CTg0QTgxRjNFMEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VBbHBoYS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRBODFGM0MwRkM3REZGMDAwOTU1MzAw
IC8qIFNvdXJjZUFscGhhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJODRBODFGNDIwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJjZUdyYXBoaWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0QTgxRjQwMEZD
N0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODRCMzQ5QTIyMkY4NkU3NTAwRDQ3QkNGIC8qIEV2
ZW50VGFyZ2V0Q29uY3JldGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg0QjM0OUEwMjJGODZFNzQwMEQ0N0JDRiAvKiBFdmVudFRhcmdldENvbmNyZXRl
LmggKi87IH07CiAJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRC
NkI5NzYxMjBGMTNFNTAwQjhFRkFGIC8qIFNWR1BhdGhTZWdMaXN0U291cmNlLmggKi87IH07CiAJ
CTg0QzVCMkZCMTIxNkRDODEwMDg4QjUzQSAvKiBTVkdQYXRoVHJhdmVyc2FsU3RhdGVCdWlsZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEM1QjJG
OTEyMTZEQzgxMDA4OEI1M0EgLyogU1ZHUGF0aFRyYXZlcnNhbFN0YXRlQnVpbGRlci5oICovOyB9
OwpAQCAtMzUxMCwxMCArMzUxNCwxMCBAQAogCQlBNzQwQjVBNTE0QzkzNUFCMDBBNzdGQTQgLyog
SlNJbnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0I0RUE3OTE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRpbmdz
LmggKi87IH07CiAJCUE3NDBCNUE3MTRDOTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGlu
Z3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdC
NEVBNzgxNEM5MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi87IH07CiAJ
CUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJB
Q0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNzVFOEI4OTBFMURFMkQ2MDA3RjI0ODEg
LyogRkVCbGVuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc1RThCODEwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCAqLzsgfTsKLQkJQTc1RThC
OEIwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgzMEUxREUyRDYwMDdGMjQ4MSAvKiBG
RUNvbG9yTWF0cml4LmggKi87IH07Ci0JCUE3NUU4QjhEMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNv
bXBvbmVudFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5o
ICovOyB9OwotCQlBNzVFOEI4RjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg3MEUxREUy
RDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovOyB9OworCQlBNzVFOEI4OTBFMURFMkQ2MDA3
RjI0ODEgLyogRkVCbGVuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc1RThCODEwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzVFOEI4QjBFMURFMkQ2
MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRy
aXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlB
NzVFOEI4RDBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzVFOEI4RjBFMURFMkQ2MDA3RjI0ODEgLyogRkVD
b21wb3NpdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3NUU4Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NkU1RjdGMTM1RTBEQ0YwMEE2
OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzZFNUY3RTEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVy
ZWREb2N1bWVudE1hcmtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUE3Nzk3OTFBMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTE0MEQ2QjlE
MEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3
OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwpAQCAtMzg2NSw3ICsz
ODY5LDcgQEAKIAkJQjIyMkY2OUQwQUI3NzFCODAwMjJFRkFEIC8qIEpTU1ZHRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMkY2OUIwQUI3
NzFCODAwMjJFRkFEIC8qIEpTU1ZHRWxlbWVudC5oICovOyB9OwogCQlCMjIzNjIyOTBDM0FGMDRB
MDAwOENBOUIgLyogSlNTVkdUZXh0UGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjM2MjI3MEMzQUYwNEEwMDA4Q0E5QiAvKiBKU1NW
R1RleHRQYXRoRWxlbWVudC5oICovOyB9OwogCQlCMjM1NDBGMzBEMDA3ODJFMDAyMzgyRkEgLyog
U3RyaW5nVHJ1bmNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjM1NDBGMTBEMDA3ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1bmNhdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjI1NTk5ODUw
RDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OEVCMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdGRUlt
YWdlLmggKi87IH07CisJCUIyNTU5OTg1MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdGRUltYWdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OThFQjBE
MDBEOEI5MDBCQjgyNUMgLyogU1ZHRkVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyNTU5OUE0MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdJ
bWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI1
NTk5MEMwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI1NTk5QTUwRDAwRDhCQTAwQkI4MjVDIC8q
IEVtcHR5Q2xpZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjI1NTk5MEQwRDAwRDhCOTAwQkI4MjVDIC8qIEVtcHR5Q2xpZW50cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyNzUzNTY1MEIwNTM4
MTQwMDJDRTY0RiAvKiBQREZEb2N1bWVudEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjc1MzUzNzBCMDUzODE0MDAyQ0U2NEYgLyogUERGRG9j
dW1lbnRJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0zMzY4MCw2ICszMzY4NCw3IEBACiAJCQkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRD
IC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzc5RTE0MUJC
MjE1QkIwMENBQThCRiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NDQ3NkJEQjFERkNBQzAzMDA2OTBFMjMgLyogQ1NTRGVmZXJyZWRQYXJzZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTcyNDY5NjNCMjc1QzVGQTYwMEE5MTU2QSAvKiBDU1NGaWx0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZCQjBDNUI4MTdCQkQ2MjkwMDNEMzY3NyAvKiBDU1NGaWx0ZXJJ
bWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0QjRENjBDQjQyOThBMDA1RjJCNjIg
LyogQ1NTRm9udEZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0ZEMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzQxODgsOCArMzQx
OTMsMTAgQEAKIAkJCQk4NDVFNzJGODBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwOEM5MjUxQTBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3MjZDREUyMDI3NTk3MzUwMDBBNDQ1QjIgLyogRmlsdGVyRWZm
ZWN0R2VvbWV0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyNDY5NjNEMjc1QzYxNDQwMEE5MTU2
QSAvKiBGaWx0ZXJFZmZlY3RWZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyQjhCMDM1Mjc1
MzQzODYwMEY3NTJBQSAvKiBGaWx0ZXJGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzJC
OEIwMzYyNzUzNDQxNDAwRjc1MkFBIC8qIEZpbHRlckltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3MjQ2OTYzRTI3NUM2MTY3MDBBOTE1NkEgLyogRmlsdGVySW1hZ2VWZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ5RUNFQjZFMTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RUNFQjcwMTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJP
cGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1NzUg
LyogRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLApAQCAtMzcxODIsNiArMzcxODksNyBAQAog
CQkJCUIyMjI3QTkxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5Z29uRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBOTQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlsaW5lRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovLAorCQkJCTcyNDY5NjNGMjc1QzY0
N0IwMEE5MTU2QSAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTU1RENDNTI4MjI0MDdCMjAwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVMaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MjE0NDMzMzIyM0VDOEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVydHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTcyMTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9w
ZXJ0eU93bmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCA3NTBkYjRlZTg5MTY2
MGZhNGJlY2ViYzQ0NDdjNjg1Y2U1YzQ4NDgxLi4yZmQ0MjI5YjcxMjdmMDQ5MGQ0MmQ1NDFlMTQ0
YWQ2YTlkOGUxZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0xNDYsNyArMTQ2LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgY29uc3RfY2FzdDxDb25j
cmV0ZUltYWdlQnVmZmVyJj4oKnRoaXMpLmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKLSAgICAgICAg
YXV0byByZXN1bHQgPSBmaWx0ZXIuYXBwbHkodGhpcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0g
ZmlsdGVyLmFwcGx5KHRoaXMsIHsgeyB9LCBsb2dpY2FsU2l6ZSgpIH0pOwogICAgICAgICBpZiAo
IXJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBlMzdi
NzE1NTcxNDA2MGJmZWI3YWRiMDE4OWZhYmVkZjc5ZjE2ODE0Li4yY2JiY2M1NjYzZmU1ODgwN2Qx
MDM2MDZmNWI1MWEwZmY4ZTU2MmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTYzMSw5ICs2MzEsOSBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gaW1hZ2UsIGNvbnN0CiAgICAgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoV1RGTW92
ZShpbWFnZSksICp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBz
b3VyY2VJbWFnZSwgRmlsdGVyJiBmaWx0ZXIpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJiBmaWx0ZXIpCiB7Ci0gICAgYXV0byByZXN1bHQg
PSBmaWx0ZXIuYXBwbHkoc291cmNlSW1hZ2UpOworICAgIGF1dG8gcmVzdWx0ID0gZmlsdGVyLmFw
cGx5KHNvdXJjZUltYWdlLCBzb3VyY2VJbWFnZVJlY3QpOwogICAgIGlmICghcmVzdWx0KQogICAg
ICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDNkOGQzYTcxMjUzZTM2MzBmOGQ5NWNkZGQ0MDk2
YmI2NDIyODliZjkuLjMyZWEyZWQxNDUxYzU0YjRjZGU4MTMwYTQ5MzdlN2Q1MzIwMTZhM2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oCkBAIC00NTIsNyArNDUyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKFJlZlB0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihS
ZWZQdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIEZpbHRlciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgdm9pZCBkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1h
Z2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBl
NjE1YTdiZDZkNGE3MDg1NWFmMDlmZWEwYzM5ZDU4MjAzOWRmZTljLi5kOWIwZWRkYzI2OGMyOTVi
NzNkOWI2NjFlZThjMTU2ZGJhM2RiOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaCIKICNpbmNs
dWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVyYXRvci5o
IgorI2luY2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTI0Myw2
ICsyNDQsOCBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAg
ICAgICByZXR1cm4gYXBwZW5kPEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPihpdGVtLmdldDxC
ZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcz4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xp
cFRvRHJhd2luZ0NvbW1hbmRzOgogICAgICAgICByZXR1cm4gYXBwZW5kPEVuZENsaXBUb0RyYXdp
bmdDb21tYW5kcz4oaXRlbS5nZXQ8RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPigpKTsKKyAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKKyAgICAgICAgcmV0dXJuIGFw
cGVuZDxEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oaXRlbS5nZXQ8RHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXI+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAgICAgICAgIHJldHVy
biBhcHBlbmQ8RHJhd0dseXBocz4oaXRlbS5nZXQ8RHJhd0dseXBocz4oKSk7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtQnVmZmVyLmNwcAppbmRleCBlODA1MDllY2NhMDVkMmNjOGVkMTA2NjA3MDQxZjVjY2NjM2Uz
Nzk0Li40MDI1ZTA2OTJkYzVhMTVlOTczNjk1ODAzMzNmNmZhM2I5YmZiZDRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMTE0LDYgKzExNCw5IEBA
IHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIGNh
c2UgSXRlbVR5cGU6OkVuZENsaXBUb0RyYXdpbmdDb21tYW5kczoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcjoKKyAgICAgICAgZ2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigp
LmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0dseXBoczoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsK
QEAgLTI1Niw2ICsyNTksOSBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgIGNhc2Ug
SXRlbVR5cGU6OkNsaXBQYXRoOgogICAgICAgICBnZXQ8Q2xpcFBhdGg+KCkufkNsaXBQYXRoKCk7
CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1
ZmZlcjoKKyAgICAgICAgZ2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigpLn5EcmF3RmlsdGVy
ZWRJbWFnZUJ1ZmZlcigpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0ZvY3VzUmluZ1BhdGg6CiAgICAgICAgIGdldDxEcmF3Rm9jdXNSaW5nUGF0aD4oKS5+RHJhd0Zv
Y3VzUmluZ1BhdGgoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDkxLDYgKzQ5Nyw4IEBAIGJvb2wg
SXRlbUhhbmRsZTo6c2FmZUNvcHkoSXRlbVR5cGUgaXRlbVR5cGUsIEl0ZW1IYW5kbGUgZGVzdGlu
YXRpb24pIGNvbnN0CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxDbGlwT3V0VG9QYXRoPihpdGVt
T2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CiAgICAgICAgIHJl
dHVybiBjb3B5SW50bzxDbGlwUGF0aD4oaXRlbU9mZnNldCwgKnRoaXMpOworICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gY29weUludG88
RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpEcmF3Rm9jdXNSaW5nUGF0aDoKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdG
b2N1c1JpbmdQYXRoPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0ZvY3VzUmluZ1JlY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3Bw
CmluZGV4IGJkZWM2NTRiNTJiZDQ2ZDYzOWNhMmU5YWVhYjlkNjFlODYzZGMzODUuLmRmYTFlNzRm
YjI0ODZjMzRhMDljMWZhMWJhMmNiZGU3NDkwMDRkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTgwLDYgKzgwLDggQEAgc3RhdGljIHNpemVfdCBzaXpl
T2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKEJlZ2lu
Q2xpcFRvRHJhd2luZ0NvbW1hbmRzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3
aW5nQ29tbWFuZHM6CiAgICAgICAgIHJldHVybiBzaXplb2YoRW5kQ2xpcFRvRHJhd2luZ0NvbW1h
bmRzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKKyAgICAg
ICAgcmV0dXJuIHNpemVvZihEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik7CiAgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd0dseXBoczoKICAgICAgICAgcmV0dXJuIHNpemVvZihEcmF3R2x5cGhzKTsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CkBAIC0yMTYsNiArMjE4LDcgQEAgYm9v
bCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJS
ZWN0OgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd0VsbGlwc2U6CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRl
cmVkSW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1BhdGg6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1JlY3RzOgogICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdHbHlwaHM6CkBAIC0zMjIsNiArMzI1LDcgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5
cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICBjYXNlIEl0
ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRy
YXdFbGxpcHNlOgorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOgog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpE
cmF3TmF0aXZlSW1hZ2U6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCA4MDg0NGU4YjlkZjA1NWU1YTE2YzM2
N2NlMmJmMjkwYTkzY2U2MzcyLi45MWYzZjVmNTI4OGJjN2ViMmRhZDZlNDJkZGZiM2RiZjE5ODBj
NzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTUyLDYgKzUy
LDcgQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIENsaXBQYXRoLAogICAg
IEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzLAogICAgIEVuZENsaXBUb0RyYXdpbmdDb21tYW5k
cywKKyAgICBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlciwKICAgICBEcmF3R2x5cGhzLAogICAgIERy
YXdJbWFnZUJ1ZmZlciwKICAgICBEcmF3TmF0aXZlSW1hZ2UsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5jcHAKaW5kZXggNzJmYzZkMWE3MzQ0NjE0MjVmMGNlNTY3ZjZiODBjMDQ3MjJj
MGFhMS4uMDlmMmI1N2M2NGE4ZDIxZTI5NjUxZWFmNTdjMWM3Nzc5Nzc4NmY1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IkRpc3BsYXlMaXN0SXRlbXMuaCIKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVwbGF5ZXIuaCIK
KyNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgogI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKQEAgLTI5OSw2ICszMDAs
MzAgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyYgaXQKICAgICByZXR1cm4gdHM7CiB9CiAKK0RyYXdG
aWx0ZXJlZEltYWdlQnVmZmVyOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25z
dCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJiBmaWx0ZXIpCisgICAgOiBtX3Nv
dXJjZUltYWdlSWRlbnRpZmllcihzb3VyY2VJbWFnZUlkZW50aWZpZXIpCisgICAgLCBtX3NvdXJj
ZUltYWdlUmVjdChzb3VyY2VJbWFnZVJlY3QpCisgICAgLCBtX2ZpbHRlcihmaWx0ZXIpCit7Cit9
CisKK05PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK3ZvaWQgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKQoreworICAg
IGNvbnRleHQuZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIG1fc291cmNlSW1h
Z2VSZWN0LCBtX2ZpbHRlcik7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlciYgaXRlbSkKK3sKKyAg
ICB0cy5kdW1wUHJvcGVydHkoInNvdXJjZS1pbWFnZS1pZGVudGlmaWVyIiwgaXRlbS5zb3VyY2VJ
bWFnZUlkZW50aWZpZXIoKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtaW1hZ2UtcmVj
dCIsIGl0ZW0uc291cmNlSW1hZ2VSZWN0KCkpOworICAgIHJldHVybiB0czsKK30KKwogRHJhd0ds
eXBoczo6RHJhd0dseXBocyhSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZm9udElkZW50aWZp
ZXIsIFZlY3RvcjxHbHlwaEJ1ZmZlckdseXBoLCAxMjg+JiYgZ2x5cGhzLCBWZWN0b3I8R2x5cGhC
dWZmZXJBZHZhbmNlLCAxMjg+JiYgYWR2YW5jZXMsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRzLCBj
b25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5n
TW9kZSkKICAgICA6IG1fZm9udElkZW50aWZpZXIoZm9udElkZW50aWZpZXIpCiAgICAgLCBtX2ds
eXBocyhXVEZNb3ZlKGdseXBocykpCkBAIC0xMDU5LDYgKzEwODQsNyBAQCBzdGF0aWMgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICAgICBjYXNl
IEl0ZW1UeXBlOjpDbGlwUGF0aDogdHMgPDwgImNsaXAtcGF0aCI7IGJyZWFrOwogICAgIGNhc2Ug
SXRlbVR5cGU6OkJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOiB0cyA8PCAiYmVnaW4tY2xpcC10
by1kcmF3aW5nLWNvbW1hbmRzOiI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkVuZENsaXBU
b0RyYXdpbmdDb21tYW5kczogdHMgPDwgImVuZC1jbGlwLXRvLWRyYXdpbmctY29tbWFuZHMiOyBi
cmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjogdHMgPDwg
ImRyYXctZmlsdGVyZWQtaW1hZ2UtYnVmZmVyIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6
RHJhd0dseXBoczogdHMgPDwgImRyYXctZ2x5cGhzIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd0ltYWdlQnVmZmVyOiB0cyA8PCAiZHJhdy1pbWFnZS1idWZmZXIiOyBicmVhazsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6IHRzIDw8ICJkcmF3LW5hdGl2ZS1pbWFn
ZSI7IGJyZWFrOwpAQCAtMTE3OCw2ICsxMjA0LDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkVuZENs
aXBUb0RyYXdpbmdDb21tYW5kczoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8RW5kQ2xpcFRvRHJh
d2luZ0NvbW1hbmRzPigpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8RHJhd0ZpbHRlcmVk
SW1hZ2VCdWZmZXI+KCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdH
bHlwaHM6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PERyYXdHbHlwaHM+KCk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggZTE0YTQyOTkzYTBmMmFm
ZGIyZjRiMTZhMGFhYmY5NWVlMTRkYjM3ZS4uODM1YjAxMmQ1ZmMwYjQ5NjA0ZWYzYWVhYmY1MTFh
YTYxY2IzZTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC05MTIsNiAr
OTEyLDI5IEBAIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb247CiB9OwogCitj
bGFzcyBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0
ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZl
cjsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSB0cnVlOworCisgICAgV0VCQ09S
RV9FWFBPUlQgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYpOworCisgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlSW1hZ2VJZGVudGlmaWVyOyB9CisgICAgRmxvYXRSZWN0IHNvdXJjZUltYWdl
UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2VSZWN0OyB9CisKKyAgICBOT19SRVRV
Uk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6SW1h
Z2VCdWZmZXIqIHNvdXJjZUltYWdlKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBn
bG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKyAgICBzdGQ6Om9w
dGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2VJbWFnZVJlY3Q7IH0KKworcHJpdmF0ZToKKyAgICBzdGQ6Om9w
dGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbV9zb3VyY2VJbWFnZUlkZW50aWZp
ZXI7CisgICAgRmxvYXRSZWN0IG1fc291cmNlSW1hZ2VSZWN0OworICAgIFJlZjxGaWx0ZXI+IG1f
ZmlsdGVyOworfTsKKwogY2xhc3MgRHJhd0dseXBocyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpEcmF3R2x5cGhzOwpAQCAtMjQw
NSw2ICsyNDI4LDcgQEAgdXNpbmcgRGlzcGxheUxpc3RJdGVtID0gc3RkOjp2YXJpYW50CiAgICAg
LCBDb25jYXRlbmF0ZUNUTQogICAgICwgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcgogICAgICwg
RHJhd0VsbGlwc2UKKyAgICAsIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyCiAgICAgLCBEcmF3Rm9j
dXNSaW5nUGF0aAogICAgICwgRHJhd0ZvY3VzUmluZ1JlY3RzCiAgICAgLCBEcmF3R2x5cGhzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggMmZkNDNmOTlhZTM1
NGFkYWQ3M2JkODVmMTRmZjVlYzBiZTRmZDk4NC4uZDhiOGZjYTM5M2FmNjM2ZGZiODRmODQ3MDU3
NWNjYWZjOWE3M2VhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cApAQCAtMTQ0LDYgKzE0NCwyNCBAQCB2b2lkIFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0
IG1pdGVyTGltaXQpCiAgICAgcmVjb3JkU2V0TWl0ZXJMaW1pdChtaXRlckxpbWl0KTsKIH0KIAor
dm9pZCBSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJj
ZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJiBmaWx0ZXIp
Cit7CisgICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtSWZOZWNlc3NhcnkoKTsKKworICAgIGlmICgh
c291cmNlSW1hZ2UpIHsKKyAgICAgICAgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoeyB9
LCBzb3VyY2VJbWFnZVJlY3QsIGZpbHRlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoIWNhbkRyYXdJbWFnZUJ1ZmZlcigqc291cmNlSW1hZ2UpKSB7CisgICAgICAgIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIHNvdXJjZUlt
YWdlUmVjdCwgZmlsdGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlY29yZFJl
c291cmNlVXNlKCpzb3VyY2VJbWFnZSk7CisgICAgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZm
ZXIoc291cmNlSW1hZ2UtPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBzb3VyY2VJbWFn
ZVJlY3QsIGZpbHRlcik7Cit9CisKIHZvaWQgUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9u
dCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZl
ckFkdmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQm
IHN0YXJ0UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7CiAgICAgbV9k
cmF3R2x5cGhzUmVjb3JkZXIuZHJhd0dseXBocyhmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBudW1H
bHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmgKaW5kZXggOWE0MDE0MzY3ZGIxZWY0M2I4YTU5ZTUwZTNkNDcxMGY5M2Uw
M2ViZi4uMDJhZTU3MDYxMmUzNGI4MjNmNjA3NGJmZWZkZTM2MGVlZTg3ZTYxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC04OCw2ICs4OCw3IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkQ2xpcFBhdGgoY29uc3QgUGF0aCYsIFdpbmRSdWxl
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRz
KGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIERlc3RpbmF0aW9uQ29sb3JTcGFjZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3Qg
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdl
UmVjdCwgRmlsdGVyJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNv
bnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZh
bmNlKiwgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250
U21vb3RoaW5nTW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3SW1hZ2VCdWZm
ZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd05h
dGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNv
bnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwpA
QCAtMjI0LDYgKzIyNSw4IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBs
eUZpbGxQYXR0ZXJuKCkgZmluYWw7CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJikgZmluYWw7CisKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRyYXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5
cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0
IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21vb3RoaW5nTW9kZSkgZmluYWw7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3R2x5cGhzQW5kQ2FjaGVGb250KGNvbnN0IEZvbnQmLCBj
b25zdCBHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWdu
ZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9k
ZSkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwu
Y3BwCmluZGV4IGE1ZTJkM2IyMDk4NWUzZWY5NDFhMzIzNTc1NmUyODBlYWNkNTE2M2MuLjMwMzQw
ODEwYWRmNmRjOTljZjYyOGExMjVlOWQ0NmRlOGE4YTg3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcApAQCAtMjA4LDYgKzIwOCwxMSBAQCB2b2lk
IFJlY29yZGVySW1wbDo6cmVjb3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24pCiAgICAgYXBwZW5kPEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcz4o
ZGVzdGluYXRpb24pOwogfQogCit2b2lkIFJlY29yZGVySW1wbDo6cmVjb3JkRHJhd0ZpbHRlcmVk
SW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNv
dXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZp
bHRlciYgZmlsdGVyKQoreworICAgIGFwcGVuZDxEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oc291
cmNlSW1hZ2VJZGVudGlmaWVyLCBzb3VyY2VJbWFnZVJlY3QsIGZpbHRlcik7Cit9CisKIHZvaWQg
UmVjb3JkZXJJbXBsOjpyZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEds
eXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNl
cywgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21v
b3RoaW5nTW9kZSBtb2RlKQogewogICAgIGFwcGVuZDxEcmF3R2x5cGhzPihmb250LCBnbHlwaHMs
IGFkdmFuY2VzLCBjb3VudCwgbG9jYWxBbmNob3IsIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlckltcGwuaAppbmRleCAzZTZkMDkwMjY5MDQ2ZjFiMTI0YTM5YzFl
MTIxMTAwYjMyNzI2MGM1Li4yOWU3Mjc0ZjE3NWRhOGE2Mjc5MzM4ZWRlMzQ4MzQyYjJlODU1NGE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaApAQCAtODYs
NiArODYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjb3JkQ2xpcFBhdGgoY29uc3QgUGF0aCYs
IFdpbmRSdWxlKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1h
bmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIERlc3RpbmF0aW9uQ29sb3JTcGFjZSkg
ZmluYWw7CiAgICAgdm9pZCByZWNvcmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc291
cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmls
dGVyJikgZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25z
dCBHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQg
Y291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSkg
ZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3SW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd05hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IDg4OWM2ZjdiMTc0YjIwNjlj
ZDljM2Y4YTJhNTE2NTk4NTg4ZmUzMzEuLmU1ZGYyMTkyYTljYzAxNzdjN2FhMWEwMzFkMTZjNmYy
YTRjZjhmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVCbGVuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVCbGVuZC5oCkBAIC0zMCwxMSArMzAsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGRUJsZW5kIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxGRUJsZW5kPiBjcmVhdGUoQmxlbmRNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmPEZFQmxlbmQ+IGNyZWF0ZShCbGVuZE1vZGUpOwogCiAgICAgQmxlbmRNb2RlIGJs
ZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQogICAgIGJvb2wgc2V0QmxlbmRNb2Rl
KEJsZW5kTW9kZSk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8UmVmPEZFQmxlbmQ+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAg
IEZFQmxlbmQoQmxlbmRNb2RlKTsKIApAQCAtNDgsNiArNTEsMjMgQEAgcHJpdmF0ZToKICAgICBC
bGVuZE1vZGUgbV9tb2RlOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVC
bGVuZDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBt
X21vZGU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxG
RUJsZW5kPj4gRkVCbGVuZDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpv
cHRpb25hbDxCbGVuZE1vZGU+IG1vZGU7CisgICAgZGVjb2RlciA+PiBtb2RlOworICAgIGlmICgh
bW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRUJsZW5k
OjpjcmVhdGUoKm1vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUJsZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAppbmRl
eCBhNDMxMjViNTMxNTYyYzYzYTk1Mjg0N2M4ZjkwNDQ5Yzk0ZjdlODViLi4yMDI0MDE5M2U1NDBi
YzIwZWZiOTQ2NzRiNmEwMDQ3ZDY4YjIyMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaApAQCAtMzcsNyAr
MzcsNyBAQCBlbnVtIENvbG9yTWF0cml4VHlwZSB7CiAKIGNsYXNzIEZFQ29sb3JNYXRyaXggOiBw
dWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFQ29sb3JNYXRy
aXg+IGNyZWF0ZShDb2xvck1hdHJpeFR5cGUsIFZlY3RvcjxmbG9hdD4mJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZjxGRUNvbG9yTWF0cml4PiBjcmVhdGUoQ29sb3JNYXRyaXhUeXBl
LCBWZWN0b3I8ZmxvYXQ+JiYpOwogCiAgICAgQ29sb3JNYXRyaXhUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KICAgICBib29sIHNldFR5cGUoQ29sb3JNYXRyaXhUeXBlKTsKQEAg
LTQ5LDYgKzQ5LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZUh1ZVJvdGF0
ZUNvbXBvbmVudHMoZmxvYXQqIGNvbXBvbmVudHMsIGZsb2F0IHZhbHVlKTsKICAgICBzdGF0aWMg
VmVjdG9yPGZsb2F0PiBub3JtYWxpemVkRmxvYXRzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVl
cyk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
UmVmPEZFQ29sb3JNYXRyaXg+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZF
Q29sb3JNYXRyaXgoQ29sb3JNYXRyaXhUeXBlLCBWZWN0b3I8ZmxvYXQ+JiYpOwogCkBAIC02Niw2
ICs2OSw0NSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxmbG9hdD4gbV92YWx1ZXM7CiB9OwogCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUNvbG9yTWF0cml4OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdHlwZTsKKyAgICBlbmNvZGVy
IDw8IG1fdmFsdWVzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25h
bDxSZWY8RkVDb2xvck1hdHJpeD4+IEZFQ29sb3JNYXRyaXg6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8Q29sb3JNYXRyaXhUeXBlPiB0eXBlOworICAgIGRl
Y29kZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxmbG9hdD4+IHZhbHVlczsKKyAgICBkZWNv
ZGVyID4+IHZhbHVlczsKKyAgICBpZiAoIXZhbHVlcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHJldHVybiBGRUNvbG9yTWF0cml4OjpjcmVhdGUoKnR5cGUsIFdURk1vdmUo
KnZhbHVlcykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbG9yTWF0cml4VHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkNv
bG9yTWF0cml4VHlwZSwKKworICAgICAgICBXZWJDb3JlOjpGRUNPTE9STUFUUklYX1RZUEVfVU5L
Tk9XTiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWCwKKyAgICAg
ICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX1NBVFVSQVRFLAorICAgICAgICBXZWJDb3Jl
OjpGRUNPTE9STUFUUklYX1RZUEVfSFVFUk9UQVRFLAorICAgICAgICBXZWJDb3JlOjpGRUNPTE9S
TUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBIQQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29sb3JNYXRy
aXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmluZGV4IGNjYWY0NTliMDNlM2YwZTRlNjA5
YmFmMzkyNzQxMTA3NTVhZmEyMzcuLjA0OWQ0ZjIwNmI4YjQ2MTY2OGI3MDI0OGU3ZTBiNTRlNTE1
OWY2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCkBAIC00OCwxNyArNDgsMjMgQEAg
c3RydWN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gewogICAgIGZsb2F0IG9mZnNldCB7IDAg
fTsKIAogICAgIFZlY3RvcjxmbG9hdD4gdGFibGVWYWx1ZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIGNsYXNzIEZFQ29tcG9uZW50VHJhbnNmZXIgOiBw
dWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFQ29tcG9uZW50
VHJhbnNmZXI+IGNyZWF0ZShjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5j
LCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsIGNvbnN0IENvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uJiBhbHBoYUZ1bmMpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVDb21w
b25lbnRUcmFuc2Zlcj4gY3JlYXRlKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIHJl
ZEZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGdyZWVuRnVuYywgY29uc3Qg
Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYmx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb24mIGFscGhhRnVuYyk7CiAKICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
IHJlZEZ1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yZWRGdW5jdGlvbjsgfQogICAgIENvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb24gZ3JlZW5GdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ3Jl
ZW5GdW5jdGlvbjsgfQogICAgIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gYmx1ZUZ1bmN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9ibHVlRnVuY3Rpb247IH0KICAgICBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uIGFscGhhRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2FscGhhRnVuY3Rpb247
IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxS
ZWY8RkVDb21wb25lbnRUcmFuc2Zlcj4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAg
ICAgRkVDb21wb25lbnRUcmFuc2Zlcihjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBy
ZWRGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsIGNvbnN0
IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5jLCBjb25zdCBDb21wb25lbnRUcmFu
c2ZlckZ1bmN0aW9uJiBhbHBoYUZ1bmMpOwogCkBAIC03Niw2ICs4MiwxMTEgQEAgcHJpdmF0ZToK
ICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIG1fYWxwaGFGdW5jdGlvbjsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb246OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZTsKKyAg
ICBlbmNvZGVyIDw8IHNsb3BlOworICAgIGVuY29kZXIgPDwgaW50ZXJjZXB0OworICAgIGVuY29k
ZXIgPDwgYW1wbGl0dWRlOworICAgIGVuY29kZXIgPDwgZXhwb25lbnQ7CisgICAgZW5jb2RlciA8
PCBvZmZzZXQ7CisgICAgZW5jb2RlciA8PCB0YWJsZVZhbHVlczsKK30KKwordGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4gQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
c3RkOjpvcHRpb25hbDxDb21wb25lbnRUcmFuc2ZlclR5cGU+IHR5cGU7CisgICAgZGVjb2RlciA+
PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNsb3BlOworICAgIGRlY29kZXIgPj4gc2xvcGU7Cisg
ICAgaWYgKCFzbG9wZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8ZmxvYXQ+IGludGVyY2VwdDsKKyAgICBkZWNvZGVyID4+IGludGVyY2VwdDsKKyAg
ICBpZiAoIWludGVyY2VwdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0
ZDo6b3B0aW9uYWw8ZmxvYXQ+IGFtcGxpdHVkZTsKKyAgICBkZWNvZGVyID4+IGFtcGxpdHVkZTsK
KyAgICBpZiAoIWFtcGxpdHVkZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGV4cG9uZW50OworICAgIGRlY29kZXIgPj4gZXhwb25lbnQ7
CisgICAgaWYgKCFleHBvbmVudCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IG9mZnNldDsKKyAgICBkZWNvZGVyID4+IG9mZnNldDsKKyAg
ICBpZiAoIW9mZnNldCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4gdGFibGVWYWx1ZXM7CisgICAgZGVjb2RlciA+PiB0YWJs
ZVZhbHVlczsKKyAgICBpZiAoIXRhYmxlVmFsdWVzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgcmV0dXJuIHsgeyAqdHlwZSwgKnNsb3BlLCAqaW50ZXJjZXB0LCAqYW1wbGl0
dWRlLCAqZXhwb25lbnQsICpvZmZzZXQsIFdURk1vdmUoKnRhYmxlVmFsdWVzKSB9IH07Cit9CisK
K3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFQ29tcG9uZW50VHJhbnNmZXI6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9yZWRGdW5jdGlv
bjsKKyAgICBlbmNvZGVyIDw8IG1fZ3JlZW5GdW5jdGlvbjsKKyAgICBlbmNvZGVyIDw8IG1fYmx1
ZUZ1bmN0aW9uOworICAgIGVuY29kZXIgPDwgbV9hbHBoYUZ1bmN0aW9uOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVDb21wb25lbnRUcmFuc2Zlcj4+
IEZFQ29tcG9uZW50VHJhbnNmZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0
ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4gcmVkRnVuY3Rpb247CisgICAg
ZGVjb2RlciA+PiByZWRGdW5jdGlvbjsKKyAgICBpZiAoIXJlZEZ1bmN0aW9uKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uPiBncmVlbkZ1bmN0aW9uOworICAgIGRlY29kZXIgPj4gZ3JlZW5GdW5jdGlvbjsK
KyAgICBpZiAoIWdyZWVuRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IGJsdWVGdW5jdGlv
bjsKKyAgICBkZWNvZGVyID4+IGJsdWVGdW5jdGlvbjsKKyAgICBpZiAoIWJsdWVGdW5jdGlvbikK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbj4gYWxwaGFGdW5jdGlvbjsKKyAgICBkZWNvZGVyID4+IGFscGhh
RnVuY3Rpb247CisgICAgaWYgKCFhbHBoYUZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIEZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZSgqcmVkRnVu
Y3Rpb24sICpncmVlbkZ1bmN0aW9uLCAqYmx1ZUZ1bmN0aW9uLCAqYWxwaGFGdW5jdGlvbik7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29tcG9uZW50VHJhbnNmZXJUeXBlPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Q29tcG9uZW50
VHJhbnNmZXJUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQ
RV9VTktOT1dOLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfSURF
TlRJVFksCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9UQUJMRSwK
KyAgICAgICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0RJU0NSRVRFLAorICAg
ICAgICBXZWJDb3JlOjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfTElORUFSLAorICAgICAgICBX
ZWJDb3JlOjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfR0FNTUEKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChG
RUNvbXBvbmVudFRyYW5zZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCmluZGV4IDUzYWUwZDZhMjY0ZTIwYWY2NjU4
Y2ZlYWY5OGE3NDcyZDZjOGZmZmYuLmM0MDgzNDBhYWRjYzNmOWVhMWYyZTlkOGI2YWI5ZDM1MzE3
NDYwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb3NpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmgKQEAgLTQwLDcgKzQwLDcgQEAgZW51bSBDb21wb3NpdGVPcGVy
YXRpb25UeXBlIHsKIAogY2xhc3MgRkVDb21wb3NpdGUgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFQ29tcG9zaXRlPiBjcmVhdGUoY29uc3QgQ29tcG9z
aXRlT3BlcmF0aW9uVHlwZSYsIGZsb2F0IGsxLCBmbG9hdCBrMiwgZmxvYXQgazMsIGZsb2F0IGs0
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFQ29tcG9zaXRlPiBjcmVhdGUoY29u
c3QgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSYsIGZsb2F0IGsxLCBmbG9hdCBrMiwgZmxvYXQgazMs
IGZsb2F0IGs0KTsKIAogICAgIENvbXBvc2l0ZU9wZXJhdGlvblR5cGUgb3BlcmF0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBzZXRPcGVyYXRpb24oQ29tcG9zaXRlT3Bl
cmF0aW9uVHlwZSk7CkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCBrNCgpIGNv
bnN0IHsgcmV0dXJuIG1fazQ7IH0KICAgICBib29sIHNldEs0KGZsb2F0KTsKIAorICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVDb21wb3NpdGU+
PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQ29tcG9zaXRlKGNvbnN0IENv
bXBvc2l0ZU9wZXJhdGlvblR5cGUmLCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9h
dCBrNCk7CiAKQEAgLTg0LDYgKzg3LDY2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9rNDsKIH07
CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFQ29tcG9zaXRlOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdHlwZTsKKyAgICBlbmNv
ZGVyIDw8IG1fazE7CisgICAgZW5jb2RlciA8PCBtX2syOworICAgIGVuY29kZXIgPDwgbV9rMzsK
KyAgICBlbmNvZGVyIDw8IG1fazQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6
Om9wdGlvbmFsPFJlZjxGRUNvbXBvc2l0ZT4+IEZFQ29tcG9zaXRlOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbXBvc2l0ZU9wZXJhdGlvblR5cGU+IHR5
cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGsxOworICAgIGRlY29k
ZXIgPj4gazE7CisgICAgaWYgKCFrMSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGsyOworICAgIGRlY29kZXIgPj4gazI7CisgICAgaWYg
KCFrMikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
ZmxvYXQ+IGszOworICAgIGRlY29kZXIgPj4gazM7CisgICAgaWYgKCFrMykKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGs0OworICAgIGRl
Y29kZXIgPj4gazQ7CisgICAgaWYgKCFrNCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHJldHVybiBGRUNvbXBvc2l0ZTo6Y3JlYXRlKCp0eXBlLCAqazEsICprMiwgKmszLCAq
azQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdGlvblR5
cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpD
b21wb3NpdGVPcGVyYXRpb25UeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09Q
RVJBVE9SX1VOS05PV04sCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9SX09W
RVIsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9SX0lOLAorICAgICAgICBX
ZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQsCisgICAgICAgIFdlYkNvcmU6OkZFQ09N
UE9TSVRFX09QRVJBVE9SX0FUT1AsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJB
VE9SX1hPUiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFUT1JfQVJJVEhNRVRJ
QywKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFUT1JfTElHSFRFUgorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxU
RVJfRUZGRUNUKEZFQ29tcG9zaXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRleCBlMWExOWNj
ZjRjNDMwMzc5NDNhMzVkOGYxNGMxNzY1NWE1YmVlYmYzLi43NTQxZjNlNGVkYThhM2Q3OWE3NDJl
Y2IwMGVjNGRkNTRlNzcyNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtMzgsNyArMzgs
NyBAQCBlbnVtIGNsYXNzIEVkZ2VNb2RlVHlwZSB7CiAKIGNsYXNzIEZFQ29udm9sdmVNYXRyaXgg
OiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFQ29udm9s
dmVNYXRyaXg+IGNyZWF0ZShjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLCBmbG9hdCBkaXZpc29y
LCBmbG9hdCBiaWFzLCBjb25zdCBJbnRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBFZGdlTW9kZVR5cGUs
IGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wgcHJlc2VydmVBbHBoYSwg
Y29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmPEZFQ29udm9sdmVNYXRyaXg+IGNyZWF0ZShjb25zdCBJbnRTaXplJiBrZXJuZWxT
aXplLCBmbG9hdCBkaXZpc29yLCBmbG9hdCBiaWFzLCBjb25zdCBJbnRQb2ludCYgdGFyZ2V0T2Zm
c2V0LCBFZGdlTW9kZVR5cGUsIGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJv
b2wgcHJlc2VydmVBbHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KTsKIAog
ICAgIEludFNpemUga2VybmVsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fa2VybmVsU2l6ZTsgfQog
ICAgIHZvaWQgc2V0S2VybmVsU2l6ZShjb25zdCBJbnRTaXplJik7CkBAIC02NCw2ICs2NCw5IEBA
IHB1YmxpYzoKICAgICBib29sIHByZXNlcnZlQWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3ByZXNl
cnZlQWxwaGE7IH0KICAgICBib29sIHNldFByZXNlcnZlQWxwaGEoYm9vbCk7CiAKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFQ29udm9sdmVN
YXRyaXg+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQ29udm9sdmVNYXRy
aXgoY29uc3QgSW50U2l6ZSYga2VybmVsU2l6ZSwgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywg
Y29uc3QgSW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBv
aW50JiBrZXJuZWxVbml0TGVuZ3RoLCBib29sIHByZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIGtlcm5lbE1hdHJpeCk7CiAKQEAgLTgzLDYgKzg2LDgwIEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPGZsb2F0PiBtX2tlcm5lbE1hdHJpeDsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+Cit2b2lkIEZFQ29udm9sdmVNYXRyaXg6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgbV9rZXJuZWxTaXplOworICAgIGVuY29kZXIgPDwgbV9kaXZp
c29yOworICAgIGVuY29kZXIgPDwgbV9iaWFzOworICAgIGVuY29kZXIgPDwgbV90YXJnZXRPZmZz
ZXQ7CisgICAgZW5jb2RlciA8PCBtX2VkZ2VNb2RlOworICAgIGVuY29kZXIgPDwgbV9rZXJuZWxV
bml0TGVuZ3RoOworICAgIGVuY29kZXIgPDwgbV9wcmVzZXJ2ZUFscGhhOworICAgIGVuY29kZXIg
PDwgbV9rZXJuZWxNYXRyaXg7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9w
dGlvbmFsPFJlZjxGRUNvbnZvbHZlTWF0cml4Pj4gRkVDb252b2x2ZU1hdHJpeDo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxJbnRTaXplPiBrZXJuZWxTaXpl
OworICAgIGRlY29kZXIgPj4ga2VybmVsU2l6ZTsKKyAgICBpZiAoIWtlcm5lbFNpemUpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkaXZp
c29yOworICAgIGRlY29kZXIgPj4gZGl2aXNvcjsKKyAgICBpZiAoIWRpdmlzb3IpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBiaWFzOwor
ICAgIGRlY29kZXIgPj4gYmlhczsKKyAgICBpZiAoIWJpYXMpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEludFBvaW50PiB0YXJnZXRPZmZzZXQ7Cisg
ICAgZGVjb2RlciA+PiB0YXJnZXRPZmZzZXQ7CisgICAgaWYgKCF0YXJnZXRPZmZzZXQpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEVkZ2VNb2RlVHlw
ZT4gZWRnZU1vZGU7CisgICAgZGVjb2RlciA+PiBlZGdlTW9kZTsKKyAgICBpZiAoIWVkZ2VNb2Rl
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9h
dFBvaW50PiBrZXJuZWxVbml0TGVuZ3RoOworICAgIGRlY29kZXIgPj4ga2VybmVsVW5pdExlbmd0
aDsKKyAgICBpZiAoIWtlcm5lbFVuaXRMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHByZXNlcnZlQWxwaGE7CisgICAgZGVjb2Rl
ciA+PiBwcmVzZXJ2ZUFscGhhOworICAgIGlmICgha2VybmVsVW5pdExlbmd0aCkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4g
a2VybmVsTWF0cml4OworICAgIGRlY29kZXIgPj4ga2VybmVsTWF0cml4OworICAgIGlmICgha2Vy
bmVsTWF0cml4KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZF
Q29udm9sdmVNYXRyaXg6OmNyZWF0ZSgqa2VybmVsU2l6ZSwgKmRpdmlzb3IsICpiaWFzLCAqdGFy
Z2V0T2Zmc2V0LCAqZWRnZU1vZGUsICprZXJuZWxVbml0TGVuZ3RoLCAqcHJlc2VydmVBbHBoYSwg
V1RGTW92ZSgqa2VybmVsTWF0cml4KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
RWRnZU1vZGVUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
V2ViQ29yZTo6RWRnZU1vZGVUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZTo6
VW5rbm93biwKKyAgICAgICAgV2ViQ29yZTo6RWRnZU1vZGVUeXBlOjpEdXBsaWNhdGUsCisgICAg
ICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZTo6V3JhcCwKKyAgICAgICAgV2ViQ29yZTo6RWRnZU1v
ZGVUeXBlOjpOb25lCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb252b2x2ZU1hdHJpeCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGln
aHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZm
dXNlTGlnaHRpbmcuaAppbmRleCAzMDI0ZDY1MjFiMzlkNDJjYTRhMjBlNzU3N2Q5NDE0MWZlZjIw
MWE3Li5hMmQxMjU4ZTNhZDY3YzViOWI0ZmFjMmQ0NWMyMjE4OWE2OGQwOGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURp
ZmZ1c2VMaWdodGluZy5oCkBAIC0zNywxMCArMzcsMTggQEAgcHVibGljOgogCiAgICAgV1RGOjpU
ZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJl
c2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVEaWZmdXNlTGlnaHRpbmc+PiBkZWNvZGUo
RGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFRGlmZnVzZUxpZ2h0aW5nKGNvbnN0IENvbG9y
JiBsaWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IGRpZmZ1c2VDb25zdGFu
dCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZLCBSZWY8
TGlnaHRTb3VyY2U+JiYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0
aW9uYWw8UmVmPEZFRGlmZnVzZUxpZ2h0aW5nPj4gRkVEaWZmdXNlTGlnaHRpbmc6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBGRUxpZ2h0aW5nOjpkZWNvZGU8RGVjb2Rl
ciwgRkVEaWZmdXNlTGlnaHRpbmc+KGRlY29kZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRURpZmZ1c2VMaWdo
dGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEaXNwbGFjZW1lbnRNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAppbmRleCA1M2IwOWQ0ZDY2OGM3ZTIzYTMwMmQx
ZDMyZGYyYzhlODg4MTUxOWJhLi4zODI2YWFjY2JmMjdjY2MyODFkYTdlNzQxYjE0NWVjMDBmZWFk
NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRGlzcGxhY2VtZW50TWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCkBAIC0zNyw3ICszNyw3IEBAIGVudW0gQ2hh
bm5lbFNlbGVjdG9yVHlwZSB7CiAKIGNsYXNzIEZFRGlzcGxhY2VtZW50TWFwIDogcHVibGljIEZp
bHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRURpc3BsYWNlbWVudE1hcD4g
Y3JlYXRlKENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVj
dG9yVHlwZSB5Q2hhbm5lbFNlbGVjdG9yLCBmbG9hdCBzY2FsZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxGRURpc3BsYWNlbWVudE1hcD4gY3JlYXRlKENoYW5uZWxTZWxlY3RvclR5
cGUgeENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB5Q2hhbm5lbFNlbGVjdG9y
LCBmbG9hdCBzY2FsZSk7CiAKICAgICBDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0
b3IoKSBjb25zdCB7IHJldHVybiBtX3hDaGFubmVsU2VsZWN0b3I7IH0KICAgICBib29sIHNldFhD
aGFubmVsU2VsZWN0b3IoY29uc3QgQ2hhbm5lbFNlbGVjdG9yVHlwZSk7CkBAIC00OCw2ICs0OCw5
IEBAIHB1YmxpYzoKICAgICBmbG9hdCBzY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGU7IH0K
ICAgICBib29sIHNldFNjYWxlKGZsb2F0KTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVEaXNwbGFjZW1lbnRNYXA+PiBkZWNvZGUoRGVj
b2RlciYpOworCiBwcml2YXRlOgogICAgIEZFRGlzcGxhY2VtZW50TWFwKENoYW5uZWxTZWxlY3Rv
clR5cGUgeENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB5Q2hhbm5lbFNlbGVj
dG9yLCBmbG9hdCk7CiAKQEAgLTY1LDYgKzY4LDUxIEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9z
Y2FsZTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFRGlzcGxhY2VtZW50
TWFwOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1f
eENoYW5uZWxTZWxlY3RvcjsKKyAgICBlbmNvZGVyIDw8IG1feUNoYW5uZWxTZWxlY3RvcjsKKyAg
ICBlbmNvZGVyIDw8IG1fc2NhbGU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6
Om9wdGlvbmFsPFJlZjxGRURpc3BsYWNlbWVudE1hcD4+IEZFRGlzcGxhY2VtZW50TWFwOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENoYW5uZWxTZWxlY3Rv
clR5cGU+IHhDaGFubmVsU2VsZWN0b3I7CisgICAgZGVjb2RlciA+PiB4Q2hhbm5lbFNlbGVjdG9y
OworICAgIGlmICgheENoYW5uZWxTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Q2hhbm5lbFNlbGVjdG9yVHlwZT4geUNoYW5uZWxTZWxl
Y3RvcjsKKyAgICBkZWNvZGVyID4+IHlDaGFubmVsU2VsZWN0b3I7CisgICAgaWYgKCF5Q2hhbm5l
bFNlbGVjdG9yKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRp
b25hbDxmbG9hdD4gc2NhbGU7CisgICAgZGVjb2RlciA+PiBzY2FsZTsKKyAgICBpZiAoIXNjYWxl
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFRGlzcGxhY2Vt
ZW50TWFwOjpjcmVhdGUoKnhDaGFubmVsU2VsZWN0b3IsICp5Q2hhbm5lbFNlbGVjdG9yLCAqc2Nh
bGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNoYW5uZWxTZWxlY3RvclR5cGU+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpDaGFu
bmVsU2VsZWN0b3JUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkNIQU5ORUxfVU5LTk9XTiwKKyAg
ICAgICAgV2ViQ29yZTo6Q0hBTk5FTF9SLAorICAgICAgICBXZWJDb3JlOjpDSEFOTkVMX0csCisg
ICAgICAgIFdlYkNvcmU6OkNIQU5ORUxfQiwKKyAgICAgICAgV2ViQ29yZTo6Q0hBTk5FTF9BCisg
ICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0ZJTFRFUl9FRkZFQ1QoRkVEaXNwbGFjZW1lbnRNYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAppbmRleCA1OGY2
ZTc5NmM3OTM5MTZhMTE2ZDI0NmE0MTU1NDhmZTQ2NmQwNzNjLi40YmZkNjA4NDhiMWE4MjQ3Mjg4
NGFiYmQwODI0YjdhNzZlZDBkNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKQEAgLTI3LDcgKzI3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgRkVEcm9wU2hhZG93IDogcHVibGljIEZp
bHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRURyb3BTaGFkb3c+IGNyZWF0
ZShmbG9hdCBzdGRYLCBmbG9hdCBzdGRZLCBmbG9hdCBkeCwgZmxvYXQgZHksIGNvbnN0IENvbG9y
JiBzaGFkb3dDb2xvciwgZmxvYXQgc2hhZG93T3BhY2l0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxGRURyb3BTaGFkb3c+IGNyZWF0ZShmbG9hdCBzdGRYLCBmbG9hdCBzdGRZLCBm
bG9hdCBkeCwgZmxvYXQgZHksIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgZmxvYXQgc2hhZG93
T3BhY2l0eSk7CiAKICAgICBmbG9hdCBzdGREZXZpYXRpb25YKCkgY29uc3QgeyByZXR1cm4gbV9z
dGRYOyB9CiAgICAgdm9pZCBzZXRTdGREZXZpYXRpb25YKGZsb2F0IHN0ZFgpIHsgbV9zdGRYID0g
c3RkWDsgfQpAQCAtNDcsNiArNDcsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgc2hhZG93T3BhY2l0
eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhZG93T3BhY2l0eTsgfQogICAgIHZvaWQgc2V0U2hhZG93
T3BhY2l0eShmbG9hdCBzaGFkb3dPcGFjaXR5KSB7IG1fc2hhZG93T3BhY2l0eSA9IHNoYWRvd09w
YWNpdHk7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxSZWY8RkVEcm9wU2hhZG93Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAg
ICBGRURyb3BTaGFkb3coZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgsIGZsb2F0IGR5
LCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkpOwogCkBAIC02
NSw3ICs2OCw1NCBAQCBwcml2YXRlOgogICAgIENvbG9yIG1fc2hhZG93Q29sb3I7CiAgICAgZmxv
YXQgbV9zaGFkb3dPcGFjaXR5OwogfTsKLSAgICAKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
K3ZvaWQgRkVEcm9wU2hhZG93OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IG1fc3RkWDsKKyAgICBlbmNvZGVyIDw8IG1fc3RkWTsKKyAgICBlbmNvZGVy
IDw8IG1fZHg7CisgICAgZW5jb2RlciA8PCBtX2R5OworICAgIGVuY29kZXIgPDwgbV9zaGFkb3dD
b2xvcjsKKyAgICBlbmNvZGVyIDw8IG1fc2hhZG93T3BhY2l0eTsKK30KKwordGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFRHJvcFNoYWRvdz4+IEZFRHJvcFNoYWRv
dzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4g
c3RkWDsKKyAgICBkZWNvZGVyID4+IHN0ZFg7CisgICAgaWYgKCFzdGRYKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc3RkWTsKKyAgICBk
ZWNvZGVyID4+IHN0ZFk7CisgICAgaWYgKCFzdGRZKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZHg7CisgICAgZGVjb2RlciA+PiBkeDsK
KyAgICBpZiAoIWR4KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxmbG9hdD4gZHk7CisgICAgZGVjb2RlciA+PiBkeTsKKyAgICBpZiAoIWR5KQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxDb2xvcj4gc2hh
ZG93Q29sb3I7CisgICAgZGVjb2RlciA+PiBzaGFkb3dDb2xvcjsKKyAgICBpZiAoIXNoYWRvd0Nv
bG9yKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxm
bG9hdD4gc2hhZG93T3BhY2l0eTsKKyAgICBkZWNvZGVyID4+IHNoYWRvd09wYWNpdHk7CisgICAg
aWYgKCFzaGFkb3dPcGFjaXR5KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
cmV0dXJuIEZFRHJvcFNoYWRvdzo6Y3JlYXRlKCpzdGRYLCAqc3RkWSwgKmR4LCAqZHksICpzaGFk
b3dDb2xvciwgKnNoYWRvd09wYWNpdHkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
IFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRURyb3BTaGFkb3cpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCmlu
ZGV4IDhmYzFkOTdhODMyMTY2MDI5ZmJlZjk5MjVjMmU1ZjdhYzY3MTI4NzQuLjBhNjVjNjgyMzQx
MGVlZmJlMDhlNjY5Mzc4MDhlMWE5N2FlNGY2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCkBAIC0yOSw3ICsyOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVGbG9vZCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3Qg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVGbG9vZD4gY3JlYXRlKGNvbnN0IENvbG9yJiBm
bG9vZENvbG9yLCBmbG9hdCBmbG9vZE9wYWNpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8RkVGbG9vZD4gY3JlYXRlKGNvbnN0IENvbG9yJiBmbG9vZENvbG9yLCBmbG9hdCBmbG9v
ZE9wYWNpdHkpOwogCiAgICAgY29uc3QgQ29sb3ImIGZsb29kQ29sb3IoKSBjb25zdCB7IHJldHVy
biBtX2Zsb29kQ29sb3I7IH0KICAgICBib29sIHNldEZsb29kQ29sb3IoY29uc3QgQ29sb3ImKTsK
QEAgLTQzLDYgKzQzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3BlcmF0aW5nQ29sb3JTcGFj
ZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmKSBvdmVycmlkZSB7IH0KICNlbmRpZgogCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUZs
b29kPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUZsb29kKGNvbnN0IENv
bG9yJiBmbG9vZENvbG9yLCBmbG9hdCBmbG9vZE9wYWNpdHkpOwogCkBAIC01Niw2ICs1OSwyOSBA
QCBwcml2YXRlOgogICAgIGZsb2F0IG1fZmxvb2RPcGFjaXR5OwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgRkVGbG9vZDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCBtX2Zsb29kQ29sb3I7CisgICAgZW5jb2RlciA8PCBtX2Zsb29k
T3BhY2l0eTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVm
PEZFRmxvb2Q+PiBGRUZsb29kOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6
Om9wdGlvbmFsPENvbG9yPiBmbG9vZENvbG9yOworICAgIGRlY29kZXIgPj4gZmxvb2RDb2xvcjsK
KyAgICBpZiAoIWZsb29kQ29sb3IpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBmbG9vZE9wYWNpdHk7CisgICAgZGVjb2RlciA+PiBmbG9v
ZE9wYWNpdHk7CisgICAgaWYgKCFmbG9vZE9wYWNpdHkpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gRkVGbG9vZDo6Y3JlYXRlKCpmbG9vZENvbG9yLCAqZmxvb2RP
cGFjaXR5KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVGbG9vZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAppbmRleCA4NzE4
NTNkZjQ5MTIwNDQ3ODk4YzhiYjUyNWZiNDA0ZGZkNWYzMTU5Li45NTY3YTJmMDRiY2U5MjA1NWEz
N2U2Y2I1Y2QwOGFmNGVlN2EyMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCkBAIC0yOSw3ICsyOSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVHYXVzc2lhbkJsdXIgOiBwdWJsaWMg
RmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFR2F1c3NpYW5CbHVyPiBj
cmVhdGUoZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVUeXBlKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZFR2F1c3NpYW5CbHVyPiBjcmVhdGUoZmxvYXQgeCwgZmxvYXQgeSwgRWRn
ZU1vZGVUeXBlKTsKIAogICAgIGZsb2F0IHN0ZERldmlhdGlvblgoKSBjb25zdCB7IHJldHVybiBt
X3N0ZFg7IH0KICAgICB2b2lkIHNldFN0ZERldmlhdGlvblgoZmxvYXQpOwpAQCAtNDQsNiArNDQs
OSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxT
aXplKEZsb2F0U2l6ZSBzdGREZXZpYXRpb24pOwogICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0
ZU91dHNldFNpemUoRmxvYXRTaXplIHN0ZERldmlhdGlvbik7CiAKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFR2F1c3NpYW5CbHVyPj4gZGVj
b2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUdhdXNzaWFuQmx1cihmbG9hdCB4LCBm
bG9hdCB5LCBFZGdlTW9kZVR5cGUpOwogCkBAIC02Miw2ICs2NSwzNSBAQCBwcml2YXRlOgogICAg
IEVkZ2VNb2RlVHlwZSBtX2VkZ2VNb2RlOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
K3ZvaWQgRkVHYXVzc2lhbkJsdXI6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorewor
ICAgIGVuY29kZXIgPDwgbV9zdGRYOworICAgIGVuY29kZXIgPDwgbV9zdGRZOworICAgIGVuY29k
ZXIgPDwgbV9lZGdlTW9kZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0
aW9uYWw8UmVmPEZFR2F1c3NpYW5CbHVyPj4gRkVHYXVzc2lhbkJsdXI6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN0ZFg7CisgICAgZGVjb2Rl
ciA+PiBzdGRYOworICAgIGlmICghc3RkWCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN0ZFk7CisgICAgZGVjb2RlciA+PiBzdGRZOwor
ICAgIGlmICghc3RkWSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8RWRnZU1vZGVUeXBlPiBlZGdlTW9kZTsKKyAgICBkZWNvZGVyID4+IGVkZ2VNb2Rl
OworICAgIGlmICghZWRnZU1vZGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4gRkVHYXVzc2lhbkJsdXI6OmNyZWF0ZSgqc3RkWCwgKnN0ZFksICplZGdlTW9kZSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19G
SUxURVJfRUZGRUNUKEZFR2F1c3NpYW5CbHVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCBkZTBiMzg2YTExYzcx
NThjNTM4YmNiNGE4MDJjN2M4Y2YwYjU2ODcyLi4zMWMyYWFhYmQzYzViMThjMGRjYjYwMjE5ODli
MWEwYjE2ZDc3MTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAKICAg
ICBjb25zdCBMaWdodFNvdXJjZSYgbGlnaHRTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX2xpZ2h0
U291cmNlLmdldCgpOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2RlciwgY2xhc3MgQ2xh
c3NOYW1lPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8Q2xhc3NOYW1lPj4gZGVjb2RlKERlY29k
ZXImKTsKKwogcHJvdGVjdGVkOgogICAgIEZFTGlnaHRpbmcoVHlwZSwgY29uc3QgQ29sb3ImIGxp
Z2h0aW5nQ29sb3IsIGZsb2F0IHN1cmZhY2VTY2FsZSwgZmxvYXQgZGlmZnVzZUNvbnN0YW50LCBm
bG9hdCBzcGVjdWxhckNvbnN0YW50LCBmbG9hdCBzcGVjdWxhckV4cG9uZW50LCBmbG9hdCBrZXJu
ZWxVbml0TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFksIFJlZjxMaWdodFNvdXJjZT4m
Jik7CiAKQEAgLTc3LDQgKzgwLDU5IEBAIHByb3RlY3RlZDoKICAgICBSZWY8TGlnaHRTb3VyY2U+
IG1fbGlnaHRTb3VyY2U7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUxp
Z2h0aW5nOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8
IG1fbGlnaHRpbmdDb2xvcjsKKyAgICBlbmNvZGVyIDw8IG1fc3VyZmFjZVNjYWxlOworICAgIGVu
Y29kZXIgPDwgbV9kaWZmdXNlQ29uc3RhbnQ7CisgICAgZW5jb2RlciA8PCBtX3NwZWN1bGFyQ29u
c3RhbnQ7CisgICAgZW5jb2RlciA8PCBtX3NwZWN1bGFyRXhwb25lbnQ7CisgICAgZW5jb2RlciA8
PCBtX2tlcm5lbFVuaXRMZW5ndGhYOworICAgIGVuY29kZXIgPDwgbV9rZXJuZWxVbml0TGVuZ3Ro
WTsKKyAgICAvLyBGSVhNRTogZW5jb2RlIG1fbGlnaHRTb3VyY2UuCit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXIsIGNsYXNzIENsYXNzTmFtZT4KK3N0ZDo6b3B0aW9uYWw8UmVmPENsYXNzTmFt
ZT4+IEZFTGlnaHRpbmc6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0
aW9uYWw8Q29sb3I+IGxpZ2h0aW5nQ29sb3I7CisgICAgZGVjb2RlciA+PiBsaWdodGluZ0NvbG9y
OworICAgIGlmICghbGlnaHRpbmdDb2xvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN1cmZhY2VTY2FsZTsKKyAgICBkZWNvZGVyID4+
IHN1cmZhY2VTY2FsZTsKKyAgICBpZiAoIXN1cmZhY2VTY2FsZSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGRpZmZ1c2VDb25zdGFudDsK
KyAgICBkZWNvZGVyID4+IGRpZmZ1c2VDb25zdGFudDsKKyAgICBpZiAoIWRpZmZ1c2VDb25zdGFu
dCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Zmxv
YXQ+IHNwZWN1bGFyQ29uc3RhbnQ7CisgICAgZGVjb2RlciA+PiBzcGVjdWxhckNvbnN0YW50Owor
ICAgIGlmICghc3BlY3VsYXJDb25zdGFudCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNwZWN1bGFyRXhwb25lbnQ7CisgICAgZGVjb2Rl
ciA+PiBzcGVjdWxhckV4cG9uZW50OworICAgIGlmICghc3BlY3VsYXJFeHBvbmVudCkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGtlcm5l
bFVuaXRMZW5ndGhYOworICAgIGRlY29kZXIgPj4ga2VybmVsVW5pdExlbmd0aFg7CisgICAgaWYg
KCFrZXJuZWxVbml0TGVuZ3RoWCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGtlcm5lbFVuaXRMZW5ndGhZOworICAgIGRlY29kZXIgPj4g
a2VybmVsVW5pdExlbmd0aFk7CisgICAgaWYgKCFrZXJuZWxVbml0TGVuZ3RoWSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIEZJWE1FOiBkZWNvZGUgbV9saWdodFNvdXJj
ZS4KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TWVyZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1l
cmdlLmNwcAppbmRleCA5MjNkM2U5ZTVmYWZkMGUwNDc4M2YzMGZkYTE4N2FhNmEyYjY3NjU5Li45
NTliNDhhYmUwODY4MTZjMzU4ZTNjODY0OWExOTNiYjBjZWVlZmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKQEAgLTI5
LDEzICsyOSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGRU1lcmdlPiBGRU1l
cmdlOjpjcmVhdGUoKQorUmVmPEZFTWVyZ2U+IEZFTWVyZ2U6OmNyZWF0ZSh1bnNpZ25lZCBudW1i
ZXJPZkVmZmVjdElucHV0cykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRU1lcmdlKCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFTWVyZ2UobnVtYmVyT2ZFZmZlY3RJbnB1dHMp
KTsKIH0KIAotRkVNZXJnZTo6RkVNZXJnZSgpCitGRU1lcmdlOjpGRU1lcmdlKHVuc2lnbmVkIG51
bWJlck9mRWZmZWN0SW5wdXRzKQogICAgIDogRmlsdGVyRWZmZWN0KEZpbHRlckVmZmVjdDo6VHlw
ZTo6RkVNZXJnZSkKKyAgICAsIG1fbnVtYmVyT2ZFZmZlY3RJbnB1dHMobnVtYmVyT2ZFZmZlY3RJ
bnB1dHMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNZXJnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRU1lcmdlLmgKaW5kZXggNjRlZDRhNzdiMWUwNzNlMGM2MWRkNTUzZjAwODIwYjFm
MGZiNjcxOC4uODNiMGYxZjQ0NWZkYTE4NzdjMWY3MzllMTFhZjc2ZmY4OGE5NTY4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgK
QEAgLTI4LDE2ICsyOCwzOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFTWVyZ2Ug
OiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFTWVyZ2U+
IGNyZWF0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVNZXJnZT4gY3JlYXRl
KHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5wdXRzKTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVNZXJnZT4+IGRlY29kZShEZWNvZGVy
Jik7CiAKIHByaXZhdGU6Ci0gICAgRkVNZXJnZSgpOworICAgIEZFTWVyZ2UodW5zaWduZWQgbnVt
YmVyT2ZFZmZlY3RJbnB1dHMpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFw
cGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFt
JiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKworICAgIHVuc2lnbmVkIG1f
bnVtYmVyT2ZFZmZlY3RJbnB1dHM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBGRU1lcmdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IG1fbnVtYmVyT2ZFZmZlY3RJbnB1dHM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitzdGQ6Om9wdGlvbmFsPFJlZjxGRU1lcmdlPj4gRkVNZXJnZTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbnVtYmVyT2ZFZmZlY3RJbnB1
dHM7CisgICAgZGVjb2RlciA+PiBudW1iZXJPZkVmZmVjdElucHV0czsKKyAgICBpZiAoIW51bWJl
ck9mRWZmZWN0SW5wdXRzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0
dXJuIEZFTWVyZ2U6OmNyZWF0ZSgqbnVtYmVyT2ZFZmZlY3RJbnB1dHMpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChG
RU1lcmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU1vcnBob2xvZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNb3JwaG9sb2d5LmgKaW5kZXggMjJhMTUyMTFkZmExNmZiZDIwZjhhMGMxMDNiZmIw
NzNmODIxNDBjYi4uODI1YmU5ZTRkZTc5N2Q2NjMxODc2Y2U5MWEzZWU5YTdhM2RkNmI4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBo
b2xvZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TW9ycGhvbG9neS5oCkBAIC0zNCw3ICszNCw3IEBAIGVudW0gY2xhc3MgTW9ycGhvbG9neU9wZXJh
dG9yVHlwZSB7CiAKIGNsYXNzIEZFTW9ycGhvbG9neSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3Qgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVNb3JwaG9sb2d5PiBjcmVhdGUoTW9ycGhvbG9neU9w
ZXJhdG9yVHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxGRU1vcnBob2xvZ3k+IGNyZWF0ZShNb3JwaG9sb2d5T3BlcmF0b3JU
eXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCByYWRpdXNZKTsKIAogICAgIE1vcnBob2xvZ3lPcGVy
YXRvclR5cGUgbW9ycGhvbG9neU9wZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAg
ICAgYm9vbCBzZXRNb3JwaG9sb2d5T3BlcmF0b3IoTW9ycGhvbG9neU9wZXJhdG9yVHlwZSk7CkBA
IC00NSw2ICs0NSw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCByYWRpdXNZKCkgY29uc3QgeyByZXR1
cm4gbV9yYWRpdXNZOyB9CiAgICAgYm9vbCBzZXRSYWRpdXNZKGZsb2F0KTsKIAorICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVNb3JwaG9sb2d5
Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRU1vcnBob2xvZ3koTW9ycGhv
bG9neU9wZXJhdG9yVHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CiAKQEAgLTYx
LDYgKzY0LDQ5IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9yYWRpdXNZOwogfTsKIAordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVNb3JwaG9sb2d5OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdHlwZTsKKyAgICBlbmNvZGVyIDw8IG1f
cmFkaXVzWDsKKyAgICBlbmNvZGVyIDw8IG1fcmFkaXVzWTsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFTW9ycGhvbG9neT4+IEZFTW9ycGhvbG9neTo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxNb3JwaG9sb2d5
T3BlcmF0b3JUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0
PiByYWRpdXNYOworICAgIGRlY29kZXIgPj4gcmFkaXVzWDsKKyAgICBpZiAoIXJhZGl1c1gpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBy
YWRpdXNZOworICAgIGRlY29kZXIgPj4gcmFkaXVzWTsKKyAgICBpZiAoIXJhZGl1c1kpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVNb3JwaG9sb2d5OjpjcmVh
dGUoKnR5cGUsICpyYWRpdXNYLCAqcmFkaXVzWSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TW9ycGhvbG9neU9wZXJhdG9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGUsCisKKyAgICAg
ICAgV2ViQ29yZTo6TW9ycGhvbG9neU9wZXJhdG9yVHlwZTo6VW5rbm93biwKKyAgICAgICAgV2Vi
Q29yZTo6TW9ycGhvbG9neU9wZXJhdG9yVHlwZTo6RXJvZGUsCisgICAgICAgIFdlYkNvcmU6Ok1v
cnBob2xvZ3lPcGVyYXRvclR5cGU6OkRpbGF0ZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFTW9ycGhvbG9n
eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVP
ZmZzZXQuaAppbmRleCAxMGViMzNjOTRmOThiN2RjYTM2NzUxYzZmODhmMTY5ODE2NTk5MGY4Li42
YmExN2ZlZmY2MjE0N2M5NzVmYzdlNThlNmZmMzA0NDM1MTM0YWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCkBAIC0yOCw3
ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVPZmZzZXQgOiBwdWJsaWMg
RmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFT2Zmc2V0PiBjcmVhdGUo
ZmxvYXQgZHgsIGZsb2F0IGR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFT2Zm
c2V0PiBjcmVhdGUoZmxvYXQgZHgsIGZsb2F0IGR5KTsKIAogICAgIGZsb2F0IGR4KCkgY29uc3Qg
eyByZXR1cm4gbV9keDsgfQogICAgIHZvaWQgc2V0RHgoZmxvYXQpOwpAQCAtMzYsNiArMzYsOSBA
QCBwdWJsaWM6CiAgICAgZmxvYXQgZHkoKSBjb25zdCB7IHJldHVybiBtX2R5OyB9CiAgICAgdm9p
ZCBzZXREeShmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UmVmPEZFT2Zmc2V0Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToK
ICAgICBGRU9mZnNldChmbG9hdCBkeCwgZmxvYXQgZHkpOwogCkBAIC01MSw2ICs1NCwyOSBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fZHk7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
dm9pZCBGRU9mZnNldDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBtX2R4OworICAgIGVuY29kZXIgPDwgbV9keTsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFT2Zmc2V0Pj4gRkVPZmZzZXQ6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR4OworICAgIGRl
Y29kZXIgPj4gZHg7CisgICAgaWYgKCFkeCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR5OworICAgIGRlY29kZXIgPj4gZHk7CisgICAg
aWYgKCFkeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRU9m
ZnNldDo6Y3JlYXRlKCpkeCwgKmR5KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVPZmZzZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdo
dGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1
bGFyTGlnaHRpbmcuaAppbmRleCA1YzdlODFjZTMwNDcyMWFlODFiMTQzNjQ0Yjc2Mzg5YjczMTk5
MzNkLi44YTZmYzRiMDM2MDc3MDg4ZWRhZTIzM2ZmNDdmYWRjYjQ1OTNlNmNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdo
dGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVT
cGVjdWxhckxpZ2h0aW5nLmgKQEAgLTM4LDEwICszOCwxOCBAQCBwdWJsaWM6CiAKICAgICBXVEY6
OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVw
cmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRVNwZWN1bGFyTGlnaHRpbmc+PiBkZWNv
ZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFU3BlY3VsYXJMaWdodGluZyhjb25zdCBD
b2xvciYgbGlnaHRpbmdDb2xvciwgZmxvYXQgc3VyZmFjZVNjYWxlLCBmbG9hdCBzcGVjdWxhckNv
bnN0YW50LCBmbG9hdCBzcGVjdWxhckV4cG9uZW50LCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwg
ZmxvYXQga2VybmVsVW5pdExlbmd0aFksIFJlZjxMaWdodFNvdXJjZT4mJik7CiB9OwogCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVTcGVjdWxhckxpZ2h0aW5n
Pj4gRkVTcGVjdWxhckxpZ2h0aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4gRkVMaWdodGluZzo6ZGVjb2RlPERlY29kZXIsIEZFU3BlY3VsYXJMaWdodGluZz4oZGVj
b2Rlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19GSUxURVJfRUZGRUNUKEZFU3BlY3VsYXJMaWdodGluZykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCmluZGV4IGZiMjY1M2FmODIz
ZTczZWZhMmFhOTU2OGQ2YjY1MThjZmY2YzkwNGEuLjdkMzk3OTg1Nzg4MWRhNzI1NzQxYmI5OWUw
Y2E2NGM0NDRhODAwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUaWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRVRpbGUuaApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgCiBjbGFzcyBGRVRpbGUgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEZFVGlsZT4gY3JlYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxGRVRpbGU+IGNyZWF0ZSgpOwogCiBwcml2YXRlOgogICAgIEZFVGlsZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVu
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxl
bmNlLmgKaW5kZXggMTc1ZmZmNzQyODI2ZmNhYzIyY2RmM2I4MzZkMmM5Yjk3MDgwMTA5Ni4uYjhl
OTNiYzAxYjI1YjQyOTBjNGExNTQzOWVlYWM0NzIwZjQ4OWU4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCkBA
IC0zNyw3ICszNyw3IEBAIGVudW0gY2xhc3MgVHVyYnVsZW5jZVR5cGUgewogCiBjbGFzcyBGRVR1
cmJ1bGVuY2UgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PEZFVHVyYnVsZW5jZT4gY3JlYXRlKFR1cmJ1bGVuY2VUeXBlLCBmbG9hdCBiYXNlRnJlcXVlbmN5
WCwgZmxvYXQgYmFzZUZyZXF1ZW5jeVksIGludCBudW1PY3RhdmVzLCBmbG9hdCBzZWVkLCBib29s
IHN0aXRjaFRpbGVzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFVHVyYnVsZW5j
ZT4gY3JlYXRlKFR1cmJ1bGVuY2VUeXBlLCBmbG9hdCBiYXNlRnJlcXVlbmN5WCwgZmxvYXQgYmFz
ZUZyZXF1ZW5jeVksIGludCBudW1PY3RhdmVzLCBmbG9hdCBzZWVkLCBib29sIHN0aXRjaFRpbGVz
KTsKIAogICAgIFR1cmJ1bGVuY2VUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
ICAgICBib29sIHNldFR5cGUoVHVyYnVsZW5jZVR5cGUpOwpAQCAtNTcsNiArNTcsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBzdGl0Y2hUaWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RpdGNoVGlsZXM7
IH0KICAgICBib29sIHNldFN0aXRjaFRpbGVzKGJvb2wpOwogCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRVR1cmJ1bGVuY2U+PiBkZWNvZGUo
RGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFVHVyYnVsZW5jZShUdXJidWxlbmNlVHlwZSwg
ZmxvYXQgYmFzZUZyZXF1ZW5jeVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0YXZl
cywgZmxvYXQgc2VlZCwgYm9vbCBzdGl0Y2hUaWxlcyk7CiAKQEAgLTc0LDYgKzc3LDY3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX3N0aXRjaFRpbGVzOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KK3ZvaWQgRkVUdXJidWxlbmNlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IG1fdHlwZTsKKyAgICBlbmNvZGVyIDw8IG1fYmFzZUZyZXF1ZW5j
eVg7CisgICAgZW5jb2RlciA8PCBtX2Jhc2VGcmVxdWVuY3lZOworICAgIGVuY29kZXIgPDwgbV9u
dW1PY3RhdmVzOworICAgIGVuY29kZXIgPDwgbV9zZWVkOworICAgIGVuY29kZXIgPDwgbV9zdGl0
Y2hUaWxlczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVm
PEZFVHVyYnVsZW5jZT4+IEZFVHVyYnVsZW5jZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgc3RkOjpvcHRpb25hbDxUdXJidWxlbmNlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+
IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gYmFzZUZyZXF1ZW5jeVg7CisgICAgZGVjb2RlciA+PiBi
YXNlRnJlcXVlbmN5WDsKKyAgICBpZiAoIWJhc2VGcmVxdWVuY3lYKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gYmFzZUZyZXF1ZW5jeVk7
CisgICAgZGVjb2RlciA+PiBiYXNlRnJlcXVlbmN5WTsKKyAgICBpZiAoIWJhc2VGcmVxdWVuY3lZ
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxpbnQ+
IG51bU9jdGF2ZXM7CisgICAgZGVjb2RlciA+PiBudW1PY3RhdmVzOworICAgIGlmICghbnVtT2N0
YXZlcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
ZmxvYXQ+IHNlZWQ7CisgICAgZGVjb2RlciA+PiBzZWVkOworICAgIGlmICghc2VlZCkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc3RpdGNo
VGlsZXM7CisgICAgZGVjb2RlciA+PiBzdGl0Y2hUaWxlczsKKyAgICBpZiAoIXN0aXRjaFRpbGVz
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFVHVyYnVsZW5j
ZTo6Y3JlYXRlKCp0eXBlLCAqYmFzZUZyZXF1ZW5jeVgsICpiYXNlRnJlcXVlbmN5WSwgKm51bU9j
dGF2ZXMsICpzZWVkLCAqc3RpdGNoVGlsZXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OlR1cmJ1bGVuY2VUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAg
ICAgICAgV2ViQ29yZTo6VHVyYnVsZW5jZVR5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6VHVyYnVs
ZW5jZVR5cGU6OlVua25vd24sCisgICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlOjpGcmFj
dGFsTm9pc2UsCisgICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlOjpUdXJidWxlbmNlCisg
ICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0ZJTFRFUl9FRkZFQ1QoRkVUdXJidWxlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwCmluZGV4IDUyZGMzNWQ2ZDYxZDM4ODM1
ZDQwY2U2MzNkZTA2ZjY2NDUzZWQxZWIuLjU3OTlhMDM2NWUxNTBmMzQ1N2VkYmExMjJlOTk5YWVm
Yjg2ZTQzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlci5jcHAKQEAgLTk4LDkgKzk4LDEwIEBAIGJvb2wgRmlsdGVyOjpjbGFtcEZp
bHRlclJlZ2lvbklmTmVlZGVkKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEZpbHRl
ckltYWdlPiBGaWx0ZXI6OmFwcGx5KEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSkKK1JlZlB0cjxG
aWx0ZXJJbWFnZT4gRmlsdGVyOjphcHBseShJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0KQogewogICAgIHNldFNvdXJjZUltYWdlKHNvdXJj
ZUltYWdlKTsKKyAgICBzZXRTb3VyY2VJbWFnZVJlY3Qoc291cmNlSW1hZ2VSZWN0KTsKIAogICAg
IGF1dG8gcmVzdWx0ID0gYXBwbHkoKTsKICAgICBpZiAoIXJlc3VsdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCmluZGV4IGNhMWQ5NTM0
YzdmOGIxODA2ZDgxYTVkMjAyN2Y4YzQ5MmFlMjI4M2EuLmMzM2VkMDgyOGIxM2FhNzYxMmMxNGEz
YzgzNmYxZGVhOTE4MjA4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTb3VyY2VJbWFnZShSZWZQdHI8SW1hZ2VCdWZmZXI+JiYgc291cmNlSW1hZ2UpIHsgbV9z
b3VyY2VJbWFnZSA9IFdURk1vdmUoc291cmNlSW1hZ2UpOyB9CiAKICAgICBDbGlwT3BlcmF0aW9u
IGNsaXBPcGVyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NsaXBPcGVyYXRpb247IH0KKyAgICB2
b2lkIHNldENsaXBPcGVyYXRpb24oQ2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0aW9uKSB7IG1fY2xp
cE9wZXJhdGlvbiA9IGNsaXBPcGVyYXRpb247IH0KIAogICAgIHZpcnR1YWwgRmxvYXRTaXplIHJl
c29sdmVkU2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0IHsgcmV0dXJuIHNpemU7IH0K
IApAQCAtNzIsOSArNzMsMTAgQEAgcHVibGljOgogICAgIGJvb2wgY2xhbXBGaWx0ZXJSZWdpb25J
Zk5lZWRlZCgpOwogICAgIAogICAgIHZpcnR1YWwgUmVmUHRyPEZpbHRlckltYWdlPiBhcHBseSgp
ID0gMDsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KEltYWdl
QnVmZmVyKiBzb3VyY2VJbWFnZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEZpbHRlcklt
YWdlPiBhcHBseShJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgc291
cmNlSW1hZ2VSZWN0KTsKIAogcHJvdGVjdGVkOgorICAgIHVzaW5nIEZpbHRlckZ1bmN0aW9uOjpG
aWx0ZXJGdW5jdGlvbjsKICAgICBGaWx0ZXIoRmlsdGVyOjpUeXBlLCBSZW5kZXJpbmdNb2RlLCBj
b25zdCBGbG9hdFNpemUmIGZpbHRlclNjYWxlLCBDbGlwT3BlcmF0aW9uID0gQ2xpcE9wZXJhdGlv
bjo6SW50ZXJzZWN0KTsKICAgICBGaWx0ZXIoRmlsdGVyOjpUeXBlLCBSZW5kZXJpbmdNb2RlLCBj
b25zdCBGbG9hdFNpemUmIGZpbHRlclNjYWxlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdl
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBmaWx0ZXJSZWdpb24sIENsaXBPcGVyYXRpb24gPSBDbGlw
T3BlcmF0aW9uOjpJbnRlcnNlY3QpOwogCkBAIC05MSwzICs5MywxNiBAQCBwcml2YXRlOgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGaWx0ZXI6OkNsaXBPcGVyYXRpb24+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXI6OkNs
aXBPcGVyYXRpb24sCisKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyOjpDbGlwT3BlcmF0aW9uOjpJ
bnRlcnNlY3QsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlcjo6Q2xpcE9wZXJhdGlvbjo6VW5pdGUK
KyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCmluZGV4IGE3
MzhhN2QwMjZkODhmZGQ0ODFmZmE5MDczMGFiZmUyNWE1YzY2N2IuLjMwMzNkYjAyMTBkM2UxZjEy
M2I0YjliNWQ3OTM1YjFhYzg0ZDBiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCkBAIC0yNyw3ICsyNyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU291cmNlR3JhcGhpYyA6IHB1YmxpYyBG
aWx0ZXJFZmZlY3QgewogcHVibGljOiAgICAgICAgCi0gICAgc3RhdGljIFJlZjxTb3VyY2VHcmFw
aGljPiBjcmVhdGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNvdXJjZUdyYXBo
aWM+IGNyZWF0ZSgpOwogCiAgICAgc3RhdGljIEF0b21TdHJpbmcgZWZmZWN0TmFtZSgpIHsgcmV0
dXJuIEZpbHRlckVmZmVjdDo6c291cmNlR3JhcGhpY05hbWUoKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9DU1NGaWx0ZXIuY3BwCmluZGV4IGM5MTlkOTgwNTQzYjc4OWY1YjllNTllOWEyNjE1
Y2E3OTBlN2ZiZGQuLmE5NzhiOWFlZjBlYmIwYWJhMzU3MDA4ZWVhYjUzN2NlNWMyMDUxMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCkBAIC01Miw2ICs1MiwxMSBAQCBS
ZWZQdHI8Q1NTRmlsdGVyPiBDU1NGaWx0ZXI6OmNyZWF0ZShjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JiBvcGVyYXRpb25zLCBSZW5kZXJpbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0ZpbHRl
cihyZW5kZXJpbmdNb2RlLCBzY2FsZUZhY3RvciwgY2xpcE9wZXJhdGlvbiwgaGFzRmlsdGVyVGhh
dE1vdmVzUGl4ZWxzLCBoYXNGaWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9y
aWdpbikpOwogfQogCitSZWZQdHI8Q1NTRmlsdGVyPiBDU1NGaWx0ZXI6OmNyZWF0ZShWZWN0b3I8
UmVmPEZpbHRlckZ1bmN0aW9uPj4mJiBmdW5jdGlvbnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDU1NGaWx0ZXIoV1RGTW92ZShmdW5jdGlvbnMpKSk7Cit9CisKIENTU0ZpbHRlcjo6Q1NT
RmlsdGVyKFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgc2NhbGVGYWN0b3IsIENs
aXBPcGVyYXRpb24gY2xpcE9wZXJhdGlvbiwgYm9vbCBoYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMs
IGJvb2wgaGFzRmlsdGVyVGhhdFNob3VsZEJlUmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW4pCiAg
ICAgOiBGaWx0ZXIoRmlsdGVyOjpUeXBlOjpDU1NGaWx0ZXIsIHJlbmRlcmluZ01vZGUsIEZsb2F0
U2l6ZSB7IHNjYWxlRmFjdG9yLCBzY2FsZUZhY3RvciB9LCBjbGlwT3BlcmF0aW9uKQogICAgICwg
bV9oYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMoaGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxzKQpAQCAt
NTksNiArNjQsMTIgQEAgQ1NTRmlsdGVyOjpDU1NGaWx0ZXIoUmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlLCBmbG9hdCBzY2FsZUZhY3RvciwgQ2xpcE9wZXJhdGkKIHsKIH0KIAorQ1NTRmlsdGVy
OjpDU1NGaWx0ZXIoVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiYgZnVuY3Rpb25zKQorICAg
IDogRmlsdGVyKFR5cGU6OkNTU0ZpbHRlcikKKyAgICAsIG1fZnVuY3Rpb25zKFdURk1vdmUoZnVu
Y3Rpb25zKSkKK3sKK30KKwogc3RhdGljIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGNyZWF0ZUJsdXJF
ZmZlY3QoY29uc3QgQmx1ckZpbHRlck9wZXJhdGlvbiYgYmx1ck9wZXJhdGlvbiwgRmlsdGVyOjpD
bGlwT3BlcmF0aW9uIGNsaXBPcGVyYXRpb24pCiB7CiAgICAgZmxvYXQgc3RkRGV2aWF0aW9uID0g
ZmxvYXRWYWx1ZUZvckxlbmd0aChibHVyT3BlcmF0aW9uLnN0ZERldmlhdGlvbigpLCAwKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaAppbmRleCA3M2E0ZTg3YThmNTVkYTgyMmI4MmU5
ZGU5MzI2MmQ1ZDg3OGUyNzRkLi45OTIxNzdmZjA0ZDg4MWQ2YzAyYTRhNjdmMDIyMWVlYmVhZjE0
YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCkBAIC00Myw2ICs0Myw5IEBA
IGNsYXNzIENTU0ZpbHRlciBmaW5hbCA6IHB1YmxpYyBGaWx0ZXIgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8Q1NTRmlsdGVyPiBjcmVh
dGUoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYsIFJlbmRlcmluZ01vZGUsIGZsb2F0IHNjYWxlRmFj
dG9yID0gMSwgQ2xpcE9wZXJhdGlvbiA9IENsaXBPcGVyYXRpb246OkludGVyc2VjdCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxDU1NGaWx0ZXI+IGNyZWF0ZShWZWN0b3I8UmVm
PEZpbHRlckZ1bmN0aW9uPj4mJik7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmPEZpbHRlckZ1bmN0
aW9uPj4mIGZ1bmN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25zOyB9CiAKICAgICB2
b2lkIHNldFNvdXJjZUltYWdlUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKICAgICBib29sIGJ1aWxk
RmlsdGVyRnVuY3Rpb25zKFJlbmRlckVsZW1lbnQmLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJik7
CkBAIC02Miw2ICs2NSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDU1NGaWx0ZXIoUmVu
ZGVyaW5nTW9kZSwgZmxvYXQgc2NhbGVGYWN0b3IsIENsaXBPcGVyYXRpb24sIGJvb2wgaGFzRmls
dGVyVGhhdE1vdmVzUGl4ZWxzLCBib29sIGhhc0ZpbHRlclRoYXRTaG91bGRCZVJlc3RyaWN0ZWRC
eVNlY3VyaXR5T3JpZ2luKTsKKyAgICBDU1NGaWx0ZXIoVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlv
bj4+JiYpOwogCiAjaWYgVVNFKENPUkVfSU1BR0UpCiAgICAgYm9vbCBzdXBwb3J0c0NvcmVJbWFn
ZVJlbmRlcmluZygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcAppbmRleCBhZTcxMjI0NGY5Yzg0MmQxODc2YjIwOTlhNmMz
YzkwNzc3MmFjMGQxLi5jYWRmZjQxNjYzZDlmY2VjYWQ1YzQ1YjVmODc0NzkzMGRiODAzMjNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcApA
QCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJGaWx0ZXJzOjphcHBseUZpbHRlckVm
ZmVjdChHcmFwaGljc0NvbnRleHQmIGRlc3RpbmF0aW9uQ29udGV4dCkKIAogICAgIGF1dG8mIGZp
bHRlciA9ICptX2ZpbHRlcjsKIAotICAgIGRlc3RpbmF0aW9uQ29udGV4dC5kcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcihtX3NvdXJjZUltYWdlLmdldCgpLCBmaWx0ZXIpOworICAgIGRlc3RpbmF0aW9u
Q29udGV4dC5kcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihtX3NvdXJjZUltYWdlLmdldCgpLCBmaWx0
ZXIuc291cmNlSW1hZ2VSZWN0KCksIGZpbHRlcik7CiAgICAgZmlsdGVyLmNsZWFySW50ZXJtZWRp
YXRlUmVzdWx0cygpOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZpbHRlcnMsIHN0cmVhbSA8PCAi
UmVuZGVyTGF5ZXJGaWx0ZXJzICIgPDwgdGhpcyA8PCAiIGFwcGx5RmlsdGVyRWZmZWN0IGRvbmVc
biIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCBiMDMwYzBmNjY1NjE1MWMxMTFhMjFlOTlkMzAwMTIy
MTM2NmY0MDVkLi42YjYxYjJjODY2NWQzZjNhYjEyMTA4MWE5MGQ3MDZmMzhhMDA3ZjMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmls
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlRmlsdGVyLmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXI6OnBvc3RBcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBHcmFwaGlj
CiAKICAgICBpZiAoIWZpbHRlckRhdGEuYm91bmRhcmllcy5pc0VtcHR5KCkpIHsKICAgICAgICAg
ZmlsdGVyRGF0YS5zdGF0ZSA9IEZpbHRlckRhdGE6OkJ1aWx0OwotICAgICAgICBjb250ZXh0LT5k
cmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihmaWx0ZXJEYXRhLnNvdXJjZUdyYXBoaWNCdWZmZXIuZ2V0
KCksICpmaWx0ZXJEYXRhLmZpbHRlcik7CisgICAgICAgIGNvbnRleHQtPmRyYXdGaWx0ZXJlZElt
YWdlQnVmZmVyKGZpbHRlckRhdGEuc291cmNlR3JhcGhpY0J1ZmZlci5nZXQoKSwgZmlsdGVyRGF0
YS5kcmF3aW5nUmVnaW9uLCAqZmlsdGVyRGF0YS5maWx0ZXIpOwogICAgIH0KIAogICAgIGZpbHRl
ckRhdGEuc291cmNlR3JhcGhpY0J1ZmZlciA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VFbGVtZW50LmNwcAppbmRleCBmYjQ5M2U1OWRkODJiYzY5YWQ3OTFiMzc1Y2U4YTgy
OTJjZDdjODFmLi44NTczMzdiYzNjOTA3NTViNWNmOGQxYWIxMWNhOGVmZDMwYzM2MjRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
UmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVNZXJnZUVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1
aWxkZXImIGZpbHRlckJ1aWxkZXIpIGMKICAgICBpZiAobWVyZ2VJbnB1dHMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gZWZmZWN0ID0gRkVNZXJnZTo6Y3Jl
YXRlKCk7CisgICAgYXV0byBlZmZlY3QgPSBGRU1lcmdlOjpjcmVhdGUobWVyZ2VJbnB1dHMuc2l6
ZSgpKTsKICAgICBlZmZlY3QtPmlucHV0RWZmZWN0cygpID0gV1RGTW92ZShtZXJnZUlucHV0cyk7
CiAgICAgcmV0dXJuIGVmZmVjdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRl
eCBhZGE1NGQ0MThhMGI2MDI1NDZiMTdlNTdjNjZkZDBjZDY5MDMwZDEzLi41ZTIzZGQyYWZmMjhm
ZWE0OTc5ZDY5Y2ZhZTNhZDQ4OWZjYTZlZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwCkBAIC0yMjAsNiArMjIwLDIzIEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
ZW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluCiAgICAgZHJh
d2luZ0NvbnRleHQoKS5jbGlwVG9JbWFnZUJ1ZmZlcigqbWFza0ltYWdlQnVmZmVyLCBkZXN0aW5h
dGlvbik7CiB9CiAKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVk
SW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNv
dXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIElQ
Qzo6RmlsdGVyUmVmZXJlbmNlIGZpbHRlclJlZmVyZW5jZSkKK3sKKyAgICBSZWZQdHI8SW1hZ2VC
dWZmZXI+IHNvdXJjZUltYWdlOworCisgICAgaWYgKHNvdXJjZUltYWdlSWRlbnRpZmllcikgewor
ICAgICAgICBzb3VyY2VJbWFnZSA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWRJbWFnZUJ1ZmZlcih7
ICpzb3VyY2VJbWFnZUlkZW50aWZpZXIsIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIgfSk7CisgICAg
ICAgIGlmICghc291cmNlSW1hZ2UpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBmaWx0
ZXIgPSBmaWx0ZXJSZWZlcmVuY2UudGFrZUZpbHRlcigpOworCisgICAgaGFuZGxlSXRlbShEaXNw
bGF5TGlzdDo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2VJZGVudGlmaWVyLCBz
b3VyY2VJbWFnZVJlY3QsIFdURk1vdmUoZmlsdGVyKSksIHNvdXJjZUltYWdlLmdldCgpKTsKK30K
Kwogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3R2x5cGhzKERpc3BsYXlMaXN0
OjpEcmF3R2x5cGhzJiYgaXRlbSkKIHsKICAgICBhdXRvIGZvbnRJZGVudGlmaWVyID0gaXRlbS5m
b250SWRlbnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNTk4MmNiYWVi
ODdlNjYwYzViYWI3N2E2ZDdhMjk1NzAzNTdiYmY5Zi4uNjk2ZDZjYjE2Mjc2OTkwZWI0ZWMwNzgy
YzQwZDNkN2IwYTgwOTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0zNyw2ICsz
NywxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBGaWx0ZXJSZWZlcmVuY2U7Cit9CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwpAQCAtNzcs
NiArODEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBXZWJDb3JlOjpEZXN0
aW5hdGlvbkNvbG9yU3BhY2UmKTsKICAgICB2b2lkIGVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKTsKICAgICB2b2lkIGRyYXdHbHlw
aHMoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMmJik7CisgICAgdm9pZCBkcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHNvdXJjZUltYWdlUmVjdCwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UpOwogICAgIHZvaWQgZHJh
d0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdl
UGFpbnRpbmdPcHRpb25zJik7CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMmKTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgppbmRleCA1YzE0MDkzYTNi
OWFiYTBhMWJlNzIwNjg3ZWZiNDY2OGI1OTVhMzYxLi4wOWM0MDk3ZGViZWIzNDMxYzhlZjI4NDRl
N2FmOTUyZjQ4NWVhYzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNz
YWdlcy5pbgpAQCAtNDcsNiArNDcsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBCZWdpbkNsaXBUb0RyYXdpbmdDb21t
YW5kcyhXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb24sIFdlYkNvcmU6OkRlc3RpbmF0aW9u
Q29sb3JTcGFjZSBjb2xvclNwYWNlKQogICAgIEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhXZWJD
b3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb24pCiAgICAgRHJhd0dseXBocyhXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RHJhd0dseXBocyBpdGVtKQorICAgIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJ
bWFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QsIElQQzo6
RmlsdGVyUmVmZXJlbmNlIGZpbHRlcikKICAgICBEcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgV2ViQ29yZTo6
RmxvYXRSZWN0IGRlc3RpbmF0aW9uUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHNyY1JlY3QsIHN0
cnVjdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQogICAgIERyYXdOYXRp
dmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpGbG9hdFNpemUgaW1hZ2VTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVz
dFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMgb3B0aW9ucykKICAgICBEcmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFNpemUg
aW1hZ2VTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVj
dCB0aWxlUmVjdCwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSwgV2ViQ29yZTo6
RmxvYXRQb2ludCBwaGFzZSwgV2ViQ29yZTo6RmxvYXRTaXplIHNwYWNpbmcsIHN0cnVjdCBXZWJD
b3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3Bw
CmluZGV4IGZjYzcyYmYyMGEyZmIyYzZiOTliYTBlZTZmODIwNmE0Y2FiNmZmYzAuLmIwZGY1MzQz
NDQ5NzgyZmE0Y2UzMWJjZjMzMmQ4ZmM1YmNjOGIxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1
ZGUgIkZpbHRlclJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlci5oIgpAQCAtMzE4LDYgKzMxOSwzMyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aQog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlKSk7CiB9CiAKK3ZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Z2V0RmlsdGVyZWRJbWFnZUZvckltYWdlQnVmZmVyKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkZpbHRlclJlZmVyZW5jZSYmIGZp
bHRlclJlZmVyZW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKKworICAgIGF1dG8gZmlsdGVyID0gZmlsdGVyUmVmZXJlbmNlLnRha2VGaWx0ZXIo
KTsKKworICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKKyAgICBbJl0oKSB7Cisg
ICAgICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1h
Z2VCdWZmZXIoeyBpZGVudGlmaWVyLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlBy
b2Nlc3NJZGVudGlmaWVyKCkgfSk7CisgICAgICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGF1dG8gaW1hZ2UgPSBpbWFnZUJ1ZmZlci0+ZmlsdGVyZWRJ
bWFnZShmaWx0ZXIpOworICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBhdXRvIGltYWdlU2l6ZSA9IGltYWdlLT5zaXplKCk7CisgICAgICAgIGF1dG8gYml0
bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoSW50U2l6ZShpbWFnZVNpemUp
LCB7IGltYWdlQnVmZmVyLT5jb2xvclNwYWNlKCkgfSk7CisgICAgICAgIGlmICghYml0bWFwKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvIGNvbnRleHQgPSBiaXRtYXAtPmNyZWF0
ZUdyYXBoaWNzQ29udGV4dCgpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZSgqaW1hZ2UsIEZsb2F0UG9pbnQoKSk7
CisgICAgICAgIGJpdG1hcC0+Y3JlYXRlSGFuZGxlKGhhbmRsZSk7CisgICAgfSgpOworICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlKSk7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Y2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbmF0aXZlSW1hZ2VSZXNvdXJj
ZUlkZW50aWZpZXIpCiB7CiAgICAgLy8gSW1tZWRpYXRlbHkgdHVybiB0aGUgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyICh3aGljaCBpcyBlcnJvci1wcm9uZSkgdG8gYSBRdWFsaWZpZWRSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA5ODliYzkz
MGY0ODZlMWM2ZGU3ZDE2NmE0MzRhYjVlZTA2YWM5ZWY1Li5lMzU3MTVkZDE3ZmVlNjQzNDViMjI2
MmQ2OGNlYmVhNGQ3NGFiOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTU4LDYgKzU4LDEw
IEBAIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKIH0KIAorbmFtZXNwYWNlIElQ
QyB7CitjbGFzcyBGaWx0ZXJSZWZlcmVuY2U7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwpAQCAtMTA4LDYgKzExMiw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlByZXNlcnZlUmVz
b2x1dGlvbiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CiAgICAgdm9pZCBnZXREYXRhRm9ySW1hZ2VCdWZm
ZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHks
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYpOwogICAgIHZvaWQgZ2V0U2hhcmVhYmxlQml0bWFw
Rm9ySW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmJik+JiYpOworICAgIHZvaWQgZ2V0RmlsdGVyZWRJbWFnZUZvckltYWdl
QnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgSVBDOjpGaWx0ZXJS
ZWZlcmVuY2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYmKT4mJik7CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CiAgICAgdm9pZCBkZWxldGVBbGxG
b250cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCBhMTQy
ZjQ4OTY2ZjVjNDk3NTk0NTY1NDc3MmM3OWMzMTk3NmY1M2RjLi5lN2MxYmZhNjdmNDMzY2Y0NGM4
ZTFjMmVmODljM2U2NmE2OWY5ZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNz
YWdlcy5pbgpAQCAtMzEsNiArMzEsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBHZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXIo
U3RyaW5nIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgZW51bTp1aW50
OF90IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24sIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpIC0+IChTdHJpbmcgdXJsU3RyaW5nKSBTeW5jaHJvbm91cwogICAgIEdldERhdGFGb3JJbWFn
ZUJ1ZmZlcihTdHJpbmcgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKSAtPiAoVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9ub3VzCiAgICAgR2V0U2hh
cmVhYmxlQml0bWFwRm9ySW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIGltYWdlQnVmZmVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0
aW9uIHByZXNlcnZlUmVzb2x1dGlvbikgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUgaGFuZGxlKSBTeW5jaHJvbm91cyBOb3RTdHJlYW1FbmNvZGFibGVSZXBseQorICAgIEdldEZp
bHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VCdWZmZXIsIElQQzo6RmlsdGVyUmVmZXJlbmNlIGZpbHRlcikgLT4gKFdlYktp
dDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlKSBTeW5jaHJvbm91cyBOb3RTdHJlYW1F
bmNvZGFibGVSZXBseQogICAgIENhY2hlTmF0aXZlSW1hZ2UoV2ViS2l0OjpTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIE5vdFN0cmVhbUVuY29kYWJsZQogICAgIENhY2hl
Rm9udChJUEM6OkZvbnRSZWZlcmVuY2UgZm9udCkgTm90U3RyZWFtRW5jb2RhYmxlCiAgICAgRGVs
ZXRlQWxsRm9udHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmls
dGVyUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVu
Y2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44MTg0MGJkNzBjNWNiNjQwY2RiZTZkODUwOTUzNWIyZTI4ODY2ZjA2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVm
ZXJlbmNlLmgKQEAgLTAsMCArMSw0MDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPFdlYkNvcmUvQ1NTRmlsdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUJsZW5k
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUNvbG9yTWF0cml4Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GRUNvbXBvbmVudFRyYW5zZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUNvbXBvc2l0ZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRkVDb252b2x2ZU1hdHJpeC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRkVEaWZmdXNlTGlnaHRpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFRGlzcGxhY2VtZW50
TWFwLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRURyb3BTaGFkb3cuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZFRmxvb2QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFR2F1c3NpYW5CbHVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GRU1lcmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRU1vcnBob2xvZ3ku
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFT2Zmc2V0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRVNw
ZWN1bGFyTGlnaHRpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFVGlsZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRkVUdXJidWxlbmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZpbHRlckVmZmVjdFZlY3Rvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U1ZHRmlsdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VHcmFwaGljLmg+CisKK25hbWVz
cGFjZSBJUEMgeworCitjbGFzcyBGaWx0ZXJSZWZlcmVuY2UgeworcHVibGljOgorICAgIEZpbHRl
clJlZmVyZW5jZShSZWY8V2ViQ29yZTo6RmlsdGVyPiYmIGZpbHRlcikKKyAgICAgICAgOiBtX2Zp
bHRlcihXVEZNb3ZlKGZpbHRlcikpCisgICAgeworICAgIH0KKworICAgIFJlZjxXZWJDb3JlOjpG
aWx0ZXI+IHRha2VGaWx0ZXIoKSB7IHJldHVybiBXVEZNb3ZlKG1fZmlsdGVyKTsgfQorCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZpbHRlclJlZmVy
ZW5jZT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGVGaWx0ZXJFZmZlY3QoY29uc3QgV2ViQ29yZTo6Rmls
dGVyRWZmZWN0JiwgRW5jb2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBSZWZQdHI8V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiBkZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2Rl
ciYsIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlKTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZVNWR0ZpbHRlcihjb25zdCBXZWJDb3JlOjpTVkdG
aWx0ZXImLCBFbmNvZGVyJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJl
ZlB0cjxXZWJDb3JlOjpTVkdGaWx0ZXI+IGRlY29kZVNWR0ZpbHRlcihEZWNvZGVyJik7CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGVDU1NGaWx0ZXIoY29u
c3QgV2ViQ29yZTo6Q1NTRmlsdGVyJiwgRW5jb2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6Q1NTRmlsdGVyPiBkZWNvZGVDU1NGaWx0ZXIo
RGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5j
b2RlRmlsdGVyKGNvbnN0IFdlYkNvcmU6OkZpbHRlciYsIEVuY29kZXImKTsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gZGVjb2RlRmls
dGVyKERlY29kZXImLCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSk7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXI+IGRlY29kZUZp
bHRlcihEZWNvZGVyJik7CisKKyAgICBSZWY8V2ViQ29yZTo6RmlsdGVyPiBtX2ZpbHRlcjsKK307
CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6ZW5jb2Rl
RmlsdGVyRWZmZWN0KGNvbnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYgZWZmZWN0LCBFbmNvZGVy
JiBlbmNvZGVyKQoreworICAgIGVuY29kZXIgPDwgZWZmZWN0LmZpbHRlclR5cGUoKTsKKyAgICBl
bmNvZGVyIDw8IGVmZmVjdC5vcGVyYXRpbmdDb2xvclNwYWNlKCk7CisKKyAgICBzd2l0Y2ggKGVm
ZmVjdC5maWx0ZXJUeXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlw
ZTo6RkVCbGVuZDoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVCbGVuZD4oZWZmZWN0KS5l
bmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkZFQ29sb3JNYXRyaXg6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6
OkZFQ29sb3JNYXRyaXg+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsK
KworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvbmVudFRyYW5z
ZmVyOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyPihlZmZl
Y3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6
OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb3NpdGU6CisgICAgICAgIGRvd25jYXN0PFdlYkNv
cmU6OkZFQ29tcG9zaXRlPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb252b2x2ZU1hdHJp
eDoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVDb252b2x2ZU1hdHJpeD4oZWZmZWN0KS5l
bmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkZFRGlmZnVzZUxpZ2h0aW5nOgorICAgICAgICBkb3duY2FzdDxXZWJD
b3JlOjpGRURpZmZ1c2VMaWdodGluZz4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRGlzcGxh
Y2VtZW50TWFwOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRURpc3BsYWNlbWVudE1hcD4o
ZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRHJvcFNoYWRvdzoKKyAgICAgICAgZG93bmNhc3Q8
V2ViQ29yZTo6RkVEcm9wU2hhZG93PihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVGbG9vZDoK
KyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVGbG9vZD4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rl
cik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5
cGU6OkZFR2F1c3NpYW5CbHVyOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUdhdXNzaWFu
Qmx1cj4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFSW1hZ2U6CisgICAgICAgIC8vIEZJWE1F
OiBlbmNvZGUgRkVJbWFnZS4KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZp
bHRlckVmZmVjdDo6VHlwZTo6RkVNZXJnZToKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVN
ZXJnZT4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFTW9ycGhvbG9neToKKyAgICAgICAgZG93
bmNhc3Q8V2ViQ29yZTo6RkVNb3JwaG9sb2d5PihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVP
ZmZzZXQ6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFT2Zmc2V0PihlZmZlY3QpLmVuY29k
ZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVm
ZmVjdDo6VHlwZTo6RkVTcGVjdWxhckxpZ2h0aW5nOgorICAgICAgICBkb3duY2FzdDxXZWJDb3Jl
OjpGRVNwZWN1bGFyTGlnaHRpbmc+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVRpbGU6Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZF
VHVyYnVsZW5jZToKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVUdXJidWxlbmNlPihlZmZl
Y3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6
OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlQWxwaGE6CisgICAgY2FzZSBXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUdyYXBoaWM6CisgICAgICAgIGJyZWFrOworCisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorUmVmUHRyPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4gRmlsdGVyUmVm
ZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6Rmls
dGVyRnVuY3Rpb246OlR5cGUgZmlsdGVyVHlwZSkKK3sKKyAgICBpZiAoIShmaWx0ZXJUeXBlID49
IFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUZpcnN0ICYmIGZpbHRlclR5cGUgPD0g
V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFTGFzdCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U+IG9wZXJhdGluZ0NvbG9yU3BhY2U7CisgICAgZGVjb2RlciA+PiBvcGVyYXRpbmdDb2xvclNw
YWNlOworICAgIGlmICghb3BlcmF0aW5nQ29sb3JTcGFjZSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q+PiBlZmZl
Y3Q7CisKKyAgICBzd2l0Y2ggKGZpbHRlclR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRl
ckVmZmVjdDo6VHlwZTo6RkVCbGVuZDoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVCbGVu
ZDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbG9yTWF0cml4OgorICAgICAgICBlZmZlY3QgPSBXZWJD
b3JlOjpGRUNvbG9yTWF0cml4OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXI6
CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OmRlY29kZShk
ZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVDb21wb3NpdGU6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFQ29tcG9z
aXRlOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29udm9sdmVNYXRyaXg6CisgICAgICAgIGVmZmVjdCA9
IFdlYkNvcmU6OkZFQ29udm9sdmVNYXRyaXg6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJl
YWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaWZmdXNlTGln
aHRpbmc6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nOjpkZWNv
ZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OlR5cGU6OkZFRGlzcGxhY2VtZW50TWFwOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3Jl
OjpGRURpc3BsYWNlbWVudE1hcDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRURyb3BTaGFkb3c6CisgICAg
ICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6ZGVjb2RlKGRlY29kZXIpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUZs
b29kOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRUZsb29kOjpkZWNvZGUoZGVjb2Rlcik7
CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6
OkZFR2F1c3NpYW5CbHVyOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRUdhdXNzaWFuQmx1
cjo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUltYWdlOgorICAgICAgICAvLyBGSVhNRTogZGVjb2RlIEZF
SW1hZ2UuCisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6
OlR5cGU6OkZFTWVyZ2U6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFTWVyZ2U6OmRlY29k
ZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVm
ZmVjdDo6VHlwZTo6RkVNb3JwaG9sb2d5OgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRU1v
cnBob2xvZ3k6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdl
YkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVPZmZzZXQ6CisgICAgICAgIGVmZmVjdCA9IFdl
YkNvcmU6OkZFT2Zmc2V0OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAg
Y2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFU3BlY3VsYXJMaWdodGluZzoKKyAg
ICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpkZWNvZGUoZGVjb2Rl
cik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5
cGU6OkZFVGlsZToKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVUaWxlOjpjcmVhdGUoKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6
RkVUdXJidWxlbmNlOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRVR1cmJ1bGVuY2U6OmRl
Y29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRl
ckVmZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYzoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6
U291cmNlR3JhcGhpYzo6Y3JlYXRlKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhhOgorICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGlmIChlZmZlY3QpIHsKKyAg
ICAgICAgKCplZmZlY3QpLT5zZXRPcGVyYXRpbmdDb2xvclNwYWNlKCpvcGVyYXRpbmdDb2xvclNw
YWNlKTsKKyAgICAgICAgcmV0dXJuIHsgKCplZmZlY3QpLnB0cigpIH07CisgICAgfQorCisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZpbHRl
clJlZmVyZW5jZTo6ZW5jb2RlU1ZHRmlsdGVyKGNvbnN0IFdlYkNvcmU6OlNWR0ZpbHRlciYgZmls
dGVyLCBFbmNvZGVyJiBlbmNvZGVyKQoreworICAgIC8vIEZJWE1FOiBFbmNvZGUgdGhlIFNWR0Zp
bHRlci4KK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpTVkdG
aWx0ZXI+IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlU1ZHRmlsdGVyKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgLy8gRklYTUU6IERlY29kZSB0aGUgU1ZHRmlsdGVyLgorICAgIHJldHVybiBudWxs
cHRyOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6
OmVuY29kZUNTU0ZpbHRlcihjb25zdCBXZWJDb3JlOjpDU1NGaWx0ZXImIGZpbHRlciwgRW5jb2Rl
ciYgZW5jb2RlcikKK3sKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5mdW5jdGlvbnMoKS5zaXplKCk7
CisKKyAgICBmb3IgKGF1dG8mIGZ1bmN0aW9uIDogZmlsdGVyLmZ1bmN0aW9ucygpKSB7CisgICAg
ICAgIGlmIChpczxXZWJDb3JlOjpTVkdGaWx0ZXI+KGZ1bmN0aW9uKSkgeworICAgICAgICAgICAg
ZW5jb2RlRmlsdGVyKGRvd25jYXN0PFdlYkNvcmU6OlNWR0ZpbHRlcj4oZnVuY3Rpb24uZ2V0KCkp
LCBlbmNvZGVyKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGlzPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4oZnVuY3Rpb24pKQorICAgICAgICAgICAgZW5j
b2RlRmlsdGVyRWZmZWN0KGRvd25jYXN0PFdlYkNvcmU6OkZpbHRlckVmZmVjdD4oZnVuY3Rpb24u
Z2V0KCkpLCBlbmNvZGVyKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitS
ZWZQdHI8V2ViQ29yZTo6Q1NTRmlsdGVyPiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUNTU0ZpbHRl
cihEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBzaXplOwor
ICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICBpZiAoIXNpemUgfHwgISpzaXplKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIFZlY3RvcjxSZWY8V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb24+
PiBmdW5jdGlvbnM7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlPiBmaWx0
ZXJUeXBlOworICAgICAgICBkZWNvZGVyID4+IGZpbHRlclR5cGU7CisgICAgICAgIGlmICghZmls
dGVyVHlwZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGlmICgqZmls
dGVyVHlwZSA9PSBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U1ZHRmlsdGVyKSB7Cisg
ICAgICAgICAgICBpZiAoYXV0byBmaWx0ZXIgPSBkZWNvZGVGaWx0ZXIoZGVjb2RlciwgKmZpbHRl
clR5cGUpKSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb25zLmFwcGVuZChmaWx0ZXIucmVsZWFz
ZU5vbk51bGwoKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gZWZm
ZWN0ID0gZGVjb2RlRmlsdGVyRWZmZWN0KGRlY29kZXIsICpmaWx0ZXJUeXBlKTsKKyAgICAgICAg
aWYgKCFlZmZlY3QpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBmdW5j
dGlvbnMuYXBwZW5kKGVmZmVjdC5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gV2ViQ29yZTo6Q1NTRmlsdGVyOjpjcmVhdGUoV1RGTW92ZShmdW5jdGlvbnMpKTsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0
ZXIoY29uc3QgV2ViQ29yZTo6RmlsdGVyJiBmaWx0ZXIsIEVuY29kZXImIGVuY29kZXIpCit7Cisg
ICAgZW5jb2RlciA8PCBmaWx0ZXIuZmlsdGVyVHlwZSgpOworICAgIGVuY29kZXIgPDwgZmlsdGVy
LnJlbmRlcmluZ01vZGUoKTsKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5maWx0ZXJTY2FsZSgpOwor
ICAgIGVuY29kZXIgPDwgZmlsdGVyLmNsaXBPcGVyYXRpb24oKTsKKyAgICBlbmNvZGVyIDw8IGZp
bHRlci5maWx0ZXJSZWdpb24oKTsKKworICAgIGlmIChpczxXZWJDb3JlOjpDU1NGaWx0ZXI+KGZp
bHRlcikpCisgICAgICAgIGVuY29kZUNTU0ZpbHRlcihkb3duY2FzdDxXZWJDb3JlOjpDU1NGaWx0
ZXI+KGZpbHRlciksIGVuY29kZXIpOworICAgIGVsc2UgaWYgKGlzPFdlYkNvcmU6OlNWR0ZpbHRl
cj4oZmlsdGVyKSkKKyAgICAgICAgZW5jb2RlU1ZHRmlsdGVyKGRvd25jYXN0PFdlYkNvcmU6OlNW
R0ZpbHRlcj4oZmlsdGVyKSwgZW5jb2Rlcik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitSZWZQdHI8V2ViQ29yZTo6RmlsdGVyPiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlcihE
ZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSBmaWx0ZXJUeXBl
KQoreworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nTW9kZT4gcmVuZGVyaW5n
TW9kZTsKKyAgICBkZWNvZGVyID4+IHJlbmRlcmluZ01vZGU7CisgICAgaWYgKCFyZW5kZXJpbmdN
b2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRTaXplPiBmaWx0ZXJTY2FsZTsKKyAgICBkZWNvZGVyID4+IGZpbHRlclNjYWxlOwor
ICAgIGlmICghZmlsdGVyU2NhbGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpGaWx0ZXI6OkNsaXBPcGVyYXRpb24+IGNsaXBPcGVyYXRpb247
CisgICAgZGVjb2RlciA+PiBjbGlwT3BlcmF0aW9uOworICAgIGlmICghY2xpcE9wZXJhdGlvbikK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UmVjdD4gZmlsdGVyUmVnaW9uOworICAgIGRlY29kZXIgPj4gZmlsdGVyUmVnaW9uOworICAg
IGlmICghZmlsdGVyUmVnaW9uKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJlZlB0
cjxXZWJDb3JlOjpGaWx0ZXI+IGZpbHRlcjsKKworICAgIGlmIChmaWx0ZXJUeXBlID09IFdlYkNv
cmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpDU1NGaWx0ZXIpCisgICAgICAgIGZpbHRlciA9IGRl
Y29kZUNTU0ZpbHRlcihkZWNvZGVyKTsKKyAgICBlbHNlIGlmIChmaWx0ZXJUeXBlID09IFdlYkNv
cmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpTVkdGaWx0ZXIpCisgICAgICAgIGZpbHRlciA9IGRl
Y29kZVNWR0ZpbHRlcihkZWNvZGVyKTsKKyAgICAKKyAgICBpZiAoZmlsdGVyKSB7CisgICAgICAg
IGZpbHRlci0+c2V0UmVuZGVyaW5nTW9kZSgqcmVuZGVyaW5nTW9kZSk7CisgICAgICAgIGZpbHRl
ci0+c2V0RmlsdGVyU2NhbGUoKmZpbHRlclNjYWxlKTsKKyAgICAgICAgZmlsdGVyLT5zZXRDbGlw
T3BlcmF0aW9uKCpjbGlwT3BlcmF0aW9uKTsKKyAgICAgICAgZmlsdGVyLT5zZXRGaWx0ZXJSZWdp
b24oKmZpbHRlclJlZ2lvbik7CisgICAgfQorCisgICAgcmV0dXJuIGZpbHRlcjsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpGaWx0ZXI+IEZpbHRlclJlZmVy
ZW5jZTo6ZGVjb2RlRmlsdGVyKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZT4gZmlsdGVyVHlwZTsKKyAgICBkZWNvZGVy
ID4+IGZpbHRlclR5cGU7CisgICAgaWYgKCFmaWx0ZXJUeXBlKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIHJldHVybiBkZWNvZGVGaWx0ZXIoZGVjb2RlciwgKmZpbHRlclR5cGUpOwor
fQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZUZpbHRlcihtX2ZpbHRlciwg
ZW5jb2Rlcik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPEZp
bHRlclJlZmVyZW5jZT4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICBpZiAoYXV0byBmaWx0ZXIgPSBkZWNvZGVGaWx0ZXIoZGVjb2RlcikpCisgICAgICAg
IHJldHVybiB7IGZpbHRlci5yZWxlYXNlTm9uTnVsbCgpIH07CisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQppbmRleCAyYzgzOWE5ZTliY2Q4ZTlmMTIxZGY4OTMwZmY0MmZjNjBjYjI3
ZDBmLi4wOTMwY2Y5MTdiYTc5MGU1NzVkODRiOTY5ZWFjMDU4MWY1MmY1MTZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTI2Niw2ICsyNjYsNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgIHJldHVybiBmcm96
ZW5zZXQoWwogICAgICAgICAnQ1ZQaXhlbEJ1ZmZlclJlZicsCiAgICAgICAgICdJUEM6OkRhdGFS
ZWZlcmVuY2UnLAorICAgICAgICAnSVBDOjpGaWx0ZXJSZWZlcmVuY2UnLAogICAgICAgICAnSVBD
OjpGb250UmVmZXJlbmNlJywKICAgICAgICAgJ0lQQzo6U2VtYXBob3JlJywKICAgICAgICAgJ01h
Y2hTZW5kUmlnaHQnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMTkyMDY5ZWNiN2ViNzA1YjAzNGQ4MDliNTc3MjUzOTAwMDAxYWQ2NC4u
ZmJjNGJiYzRjYWEyYTE5NmNjYjlmNTRiNGY4ZWE0NDI2ZDk2ZGQxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OTQ4LDYgKzQ5NDgs
NyBAQAogCQk3MjAzNDQ5QTI2QTZDNDRDMDAwQTVGNTQgLyogTW9ub3RvbmljT2JqZWN0SWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMDM0NDlCMjZBNkM0NzYwMDBBNUY1NCAvKiBSZW5k
ZXJpbmdVcGRhdGVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdVcGRhdGVJRC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxh
dGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjQ2
OTYzQTI3NUI3RTY3MDBBOTE1NkEgLyogRmlsdGVyUmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZpbHRlclJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZE
RDI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzI2RDU2REUyNTNBNjQ4MTAwMDJFRjkwIC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NDYzLDYgKzc0NjQsNyBAQAogCQkJCUJD
MDMyRDlFMTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmggKi8sCiAJCQkJQkMwMzJEOUYxMEY0
MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuY3BwICovLAogCQkJCUJDMDMyREEwMTBGNDM3RDEwMDU4
QzE1QSAvKiBFbmNvZGVyLmggKi8sCisJCQkJNzI0Njk2M0EyNzVCN0U2NzAwQTkxNTZBIC8qIEZp
bHRlclJlZmVyZW5jZS5oICovLAogCQkJCTlCRDhBQjQ5MjU4MjBFNTIwMDUzODZGOCAvKiBGb250
UmVmZXJlbmNlLmggKi8sCiAJCQkJNDE1MUU1QzMxRkJCOTBBOTAwRTQ3RTJEIC8qIEZvcm1EYXRh
UmVmZXJlbmNlLmggKi8sCiAJCQkJQzBDRTcyQUMxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1l
c3NhZ2UuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNw
cAppbmRleCA5NDIxZGQyMzhjYjZlYzYzZmUxYzA3ZDQ3MzYxY2IwYjY1ZmY0MGNiLi4zMmEzNDJk
YmZiZGZhN2YwYzM5YmM2MzZhNDc5MjAzMWFlMTc3NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJGaWx0ZXJSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CkBAIC0x
OTQsNiArMTk1LDExIEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSCiAgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGRl
c3RpbmF0aW9uKSk7CiB9CiAKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojpy
ZWNvcmREcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIHNv
dXJjZUltYWdlUmVjdCwgRmlsdGVyJiBmaWx0ZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1h
Z2VJZGVudGlmaWVyLCBzb3VyY2VJbWFnZVJlY3QsIElQQzo6RmlsdGVyUmVmZXJlbmNlKFJlZjxG
aWx0ZXI+IHsgZmlsdGVyIH0pKSk7Cit9CisKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVm
ZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNlcywgdW5z
aWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5n
TW9kZSBtb2RlKQogewogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkRyYXdHbHlwaHMoRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMgeyBmb250LCBnbHlwaHMsIGFk
dmFuY2VzLCBjb3VudCwgbG9jYWxBbmNob3IsIG1vZGUgfSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5LmgKaW5kZXggNzFmZGI2M2RmNGFjODQ5NzQ3MjMyNjliN2Yw
M2Q5OTdiODEzOTg5ZC4uNmY3ODA5ZDVlZWUzMDJkMjIxOTM2Y2EwNTNiODczOTRjYmE0N2U1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCkBAIC05MCw2ICs5
MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNvcmRDbGlwUGF0aChjb25zdCBXZWJDb3JlOjpQ
YXRoJiwgV2ViQ29yZTo6V2luZFJ1bGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkQmVnaW5DbGlw
VG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZEVu
ZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFn
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBX
ZWJDb3JlOjpGaWx0ZXImKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29uc3Qg
V2ViQ29yZTo6Rm9udCYsIGNvbnN0IFdlYkNvcmU6OkdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBX
ZWJDb3JlOjpHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIFdlYkNvcmU6OkZvbnRTbW9vdGhpbmdNb2RlKSBm
aW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CiAgICAgdm9pZCByZWNv
cmREcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlt
YWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMDk1NTdhNzViMGVkNGUxMGY1NmJiNDg5ZWYw
M2Q3OGJlYzNmYmFlMC4uOWYzYWQxMzYyNjJhOTJmZWQ1MGFmNTJiNWQyMTQyOTM5YTNiNDI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTE5OCw2ICsxOTgsMTQgQEAgcHJvdGVj
dGVkOgogICAgICAgICByZXR1cm4gYml0bWFwLT5jcmVhdGVJbWFnZSgpOwogICAgIH0KIAorICAg
IFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gZmlsdGVyZWRJbWFnZShXZWJDb3JlOjpGaWx0ZXImIGZp
bHRlcikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChVTkxJS0VMWSghbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgZmx1
c2hEcmF3aW5nQ29udGV4dCgpOworICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHktPmdldEZpbHRlcmVkSW1hZ2UobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIs
IGZpbHRlcik7CisgICAgfQorCiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZl
cj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIGRlc3Rp
bmF0aW9uRm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBmaW5h
bAogICAgIHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMmNk
NTMxYzE5NjE3MjJhN2UxN2RmZDcxMzAwM2VkYWE0NzNjN2JmMC4uNTAyNWE5NWU0ZGM4ZGQzMWEy
ZmIxNWIxOGY1NzUwYTU1Mjg3NTEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmNwcApAQCAtMjIzLDYgKzIyMywyMiBAQCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldFNoYXJlYWJsZUJpdG1hcChSZW5kZXJpbgog
ICAgIHJldHVybiBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5kbGUpOwogfQogCitSZWZQdHI8
SW1hZ2U+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0RmlsdGVyZWRJbWFnZShSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIsIEZpbHRlciYgZmlsdGVyKQorewor
ICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKKyAgICBhdXRvIHNlbmRSZXN1bHQg
PSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6R2V0RmlsdGVyZWRJ
bWFnZUZvckltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBJUEM6OkZpbHRlclJlZmVyZW5jZSB7IGZp
bHRlciB9KSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkdldEZpbHRlcmVkSW1h
Z2VGb3JJbWFnZUJ1ZmZlcjo6UmVwbHkoaGFuZGxlKSwgcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIoKSwgMV9zKTsKKyAgICBBU1NFUlRfVU5VU0VEKHNlbmRSZXN1bHQsIHNlbmRSZXN1bHQpOwor
CisgICAgaWYgKGhhbmRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1
dG8gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaGFuZGxlKTsKKyAgICBpZiAoIWJp
dG1hcCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBiaXRtYXAtPmNyZWF0ZUlt
YWdlKCk7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZU5hdGl2
ZUltYWdlKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBoYW5kbGUsIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgc2Vu
ZFRvU3RyZWFtKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDYWNoZU5hdGl2ZUlt
YWdlKGhhbmRsZSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCAwOWM4OTEwN2FkOTdkYmE0MWJiYzMyMTAzYmFj
YWQyOWMwMTJlMmE2Li4zMGUxNjMxZThmOTY3YzA1OTQwNjcyMTFmODFjM2FmYTkwZDY3OTVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlOworY2xh
c3MgRmlsdGVyOwogY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgUGl4ZWxCdWZmZXI7CiAKQEAgLTky
LDYgKzkzLDcgQEAgcHVibGljOgogICAgIFN0cmluZyBnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXIo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdl
YkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICBWZWN0b3I8dWludDhfdD4gZ2V0RGF0YUZvckltYWdlQnVmZmVyKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRt
YXA+IGdldFNoYXJlYWJsZUJpdG1hcChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbik7CisgICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlPiBnZXRGaWx0ZXJlZEltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsdGVyJik7CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKTsKICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CiAgICAgdm9p
ZCBkZWxldGVBbGxGb250cygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGQxMGZjMmZmZWIyYjVkYmEwYzUxYjJiYWE3YzVhY2M1ZTBkNjg5OGIu
LmIzODI4NjJlMmZkYWIzZjFmYzhlZjg1ODc0YWUyYWEzZmI5ZDJiOTEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0xMi0wNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBb
R1BVIFByb2Nlc3NdIEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmls
dGVyRWZmZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI4NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NH
LmNwcDoKKwogMjAyMS0xMi0wMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBXZWIgY29udGVudCBwcm9jZXNzIHNvbWV0aW1lcyBjcmFzaGVz
IHVuZGVyIFdlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCmluZGV4IGI5
ODZhMmE1ODg4NDY1YmUxOTIwYTZlMDY2OGQ3MGRiMjQ5MDZlYWIuLmQyM2Y3ZTFlNzI5ZTA1NTQ1
M2FjMWYwNTNhMjM0NTMwMjk1Y2IyMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNw
bGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZXJhdG9yLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYWRpZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Jbk1lbW9yeURpc3BsYXlMaXN0Lmg+CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3Rz
Q0cuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0
VGVzdHNDRy5jcHAKaW5kZXggZDg0NmMwMjVlMGRjZDhjYTgyOWI3MTI3M2RhZjFmNzA3ZTlkOTJk
ZC4uN2EzMjA3Zjk1YzYyN2ZlNjYyOWM5Mjc3NDRiNGVmMDNlNWUyZWMzZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0
VGVzdHNDRy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0SXRlbXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVzb3VyY2VIZWFwLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9GaWx0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYWRpZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgogCg==
</data>
<flag name="commit-queue"
          id="471306"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445982</attachid>
            <date>2021-12-05 01:00:21 -0800</date>
            <delta_ts>2021-12-05 02:10:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232844-20211205010020.patch</filename>
            <type>text/plain</type>
            <size>124114</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI3Mjk5NTM4MGYwNjk3
NGRlMDdjYjhhYzU4MzRjNWEzNzNlZTE5ZC4uZTNjZTdiYmY1OGNkNTY5ODAxMThlODkwMzA1MWMx
ODJiODA0OGE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0xMi0wNCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmlsdGVyRWZmZWN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgdGhlIGVuY29kaW5nIGFuZCBkZWNvZGluZyBmb3IgdGhlIEZpbHRlckVmZmVjdCBhbmQg
dGhlCisgICAgICAgIEZpbHRlciBvYmplY3RzLiBCZWNhdXNlIHRoZXNlIG9iamVjdHMgaGF2ZSBz
dXBlci1jbGFzc2VzLCB3ZSBhcmUgZ29pbmcKKyAgICAgICAgdG8gZG8gdGhlIGVuY29kaW5nIGFu
ZCBkZWNvZGluZyB0aHJvdWdoIGEgbmV3IElQQyBjbGFzcyBjYWxsZWQKKyAgICAgICAgRmlsdGVy
UmVmZXJlbmNlLgorCisgICAgICAgIFRoZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2YgdGhlc2Ug
Y2xhc3NlcyB3aWxsIGJlIG5lZWRlZCBpbiB0d28gY2FzZXM6CisKKyAgICAgICAgMSkgRGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcigpCisgICAgICAgIDIpIFJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmZpbHRlcmVkSW1hZ2UoKQorCisgICAgICAgIEEgZmV3IHRo
aW5ncyBoYXZlIG5vdCBiZSBkb25lIHRoaXMgcGF0Y2ggeWV0OgorCisgICAgICAgIDEpIExpZ2h0
U291cmNlIGhhcyBub3QgYmVlbiBlbmNvZGVkL2RlY29kZWQKKyAgICAgICAgMikgRkVMaWdodGlu
ZyBjbGFzc2VzIGhhdmUgbm90IGJlZW4gZW5jb2RlZC9kZWNvZGVkCisgICAgICAgIDMpIEZFSW1h
Z2UgaGFzIG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorICAgICAgICA0KSBTVkdGaWx0ZXIgaGFz
IG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3Qg
Y2hhbmdlIGFueSBiZWhhdmlvciBldmVuIGlmIHRoZSBHUFUgUHJvY2VzcyBmb3IgRE9NCisgICAg
ICAgIHJlbmRlcmluZyBpcyBlbmFibGVkLiBUaGUgc291cmNlSW1hZ2UgZm9yIHRoZSBmaWx0ZXIg
YW5kIHRoZSBmaWx0ZXIgaW1hZ2UKKyAgICAgICAgbmVlZCB0byBiZSBvZiB0eXBlIG9mIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkgdG8gdGhpcyBjb2RlIHRvIGJlIGNhbGxlZC4KKworICAgICAgICAq
IEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRlcyk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6RHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OmFwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjpzb3VyY2VJbWFnZUlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZElt
YWdlQnVmZmVyOjpzb3VyY2VJbWFnZVJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjpnbG9iYWxCb3VuZHMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjps
b2NhbEJvdW5kcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6cmVjb3Jk
RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OmRlY29kZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4Lmg6CisgICAgICAg
IChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVDb2xvck1hdHJpeDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21w
b25lbnRUcmFuc2Zlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9u
ZW50VHJhbnNmZXI6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6ZGVjb2RlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFQ29udm9sdmVNYXRyaXg6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGRUNvbnZvbHZlTWF0cml4OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlm
ZnVzZUxpZ2h0aW5nOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEaXNwbGFjZW1lbnRNYXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50
TWFwOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRmxvb2Q6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RkVHYXVzc2lhbkJsdXI6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVNZXJnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OkZF
TWVyZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6RkVNZXJnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZFTWVyZ2U6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1vcnBob2xvZ3kuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpGRU9mZnNldDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFT2Zmc2V0
OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oOgorICAgICAgICAo
V2ViQ29yZTo6RkVUdXJidWxlbmNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RkVUdXJidWxlbmNlOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlcjo6YXBwbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXI6OnNldENsaXBPcGVyYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRmlsdGVyOjpDU1NGaWx0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0
ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyRmlsdGVyczo6YXBwbHlGaWx0ZXJFZmZlY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OnBvc3RBcHBseVJlc291cmNlKToK
KyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRkVNZXJnZUVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKwogMjAyMS0xMi0wMyAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIChSRUdS
RVNTSU9OIHIyODU1OTcpOiBGaXggU1ZHRmlsdGVyIGNsYW1waW5nIGNhbGN1bGF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDg3NzY5MTQ5NzZiMmE5MmY3NmRkODc2MTFkMjgxYTAyOGIxMzc0OTUuLmQ5M2VjMDQx
NmI1OWE0MmQyN2RjOGJkMzc2NmIyN2ZiZTcwOGQ0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMjEtMTItMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0dQVSBQcm9jZXNzXSBBZGQgdGhlIGVuY29kaW5nL2RlY29kaW5nIGZvciBGaWx0ZXIg
YW5kIEZpbHRlckVmZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyODQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldEZpbHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcik6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaDogQWRkZWQu
CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6RmlsdGVyUmVmZXJlbmNlKToKKyAgICAg
ICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjp0YWtlRmlsdGVyKToKKyAgICAgICAgKElQQzo6Rmls
dGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoSVBDOjpGaWx0ZXJS
ZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVjdCk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVy
ZW5jZTo6ZW5jb2RlU1ZHRmlsdGVyKToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpk
ZWNvZGVTVkdGaWx0ZXIpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZUNT
U0ZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlQ1NTRmlsdGVy
KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXIpOgorICAgICAg
ICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlcik6CisgICAgICAgIChJUEM6OkZp
bHRlclJlZmVyZW5jZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJl
bmNlOjpkZWNvZGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAg
ICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3RmlsdGVy
ZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0RmlsdGVyZWRJbWFnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Lmg6CisKIDIwMjEtMTItMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gV2ViIGNvbnRlbnQgcHJvY2VzcyBzb21ldGltZXMgY3Jhc2hlcyB1
bmRlciBXZWJQYWdlOjpwb3NpdGlvbkluZm9ybWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IDQxNWI0ZmM2YTJjODVmYTJjZmVhMjRmZTFjMDUwZWNhYjFmYWZiODkuLjhlNTZmOGE3ZDU5ZTU4
MGZhYzJkYjZjOGQ2Mjk5MmExM2I4MzMyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTU2MCwx
MiArMTU2MCwzMyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5o
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVGbG9vZC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNz
aWFuQmx1ci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFT2Zmc2V0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdo
dGluZy5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJF
ZmZlY3QuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0R2VvbWV0
cnkuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVySW1hZ2UuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVySW1hZ2VWZWN0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlck9wZXJhdGlvbnMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvTGlnaHRT
b3VyY2UuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCiAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPQm94LmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9pc28vSVNPT3JpZ2luYWxGb3JtYXRCb3guaApAQCAtMTczMSw2ICsxNzUyLDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsdWdpbnMvUGx1Z2luVmlld0Jh
c2UuaAogCiAgICAgcmVuZGVyaW5nL0JyZWFrTGluZXMuaAorICAgIHJlbmRlcmluZy9DU1NGaWx0
ZXIuaAogICAgIHJlbmRlcmluZy9DbGlwUmVjdC5oCiAgICAgcmVuZGVyaW5nL0V2ZW50UmVnaW9u
LmgKICAgICByZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmgKQEAgLTE4NzgsNiArMTkwMCw4IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIHN2Zy9ncmFwaGlj
cy9TVkdJbWFnZUNhY2hlLmgKIAorICAgIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5o
CisKICAgICBzdmcvcHJvcGVydGllcy9TVkdMaXN0LmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQ
cmltaXRpdmVMaXN0LmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTVh
MDkwYjYyOWNmNDdjMTczMDNhZjJkNDBmOTc5ZmIwMTcwMTMxYi4uNmRiMDFiNWEwY2RmNWZhNjg3
ZDMyZTNmMTU0M2IxYzRjYzk4OGQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIzMyw3ICsxMjMzLDcgQEAKIAkJNDMxMDdC
RTIxOENDMTlERTAwQ0MxOEU4IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMxMDdCRTExOENDMTlERTAwQ0Mx
OEU4IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5oICovOyB9OwogCQk0MzJEM0ZFODE4QTg2NTg0
MDBEN0RDMDMgLyogU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMyRDNGRTcxOEE4NjU4NDAwRDdEQzAz
IC8qIFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCAqLzsgfTsKIAkJNDM1OEU4N0QxMzYw
QTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4N0IxMzYwQTJFRTAwRTQ3NDhD
IC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oICovOyB9OwotCQk0MzU4RTg4MTEzNjBBMzE3
MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg3RjEzNjBBMzE3MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93
LmggKi87IH07CisJCTQzNThFODgxMTM2MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODdGMTM2
MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MzU4RTg4NjEzNjBBMzNCMDBFNDc0OEMgLyogU1ZH
RkVEcm9wU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDM1OEU4ODMxMzYwQTMzQjAwRTQ3NDhDIC8qIFNWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQuaCAqLzsgfTsKIAkJNDM2NzA4QzExMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0Js
b2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3
MDg4MjEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHQmxvY2suaCAqLzsgfTsKIAkJNDM2NzA4
QzMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4ODQxMkQ5Q0E0QTAwMDQ0MjM0
IC8qIFJlbmRlclNWR0NvbnRhaW5lci5oICovOyB9OwpAQCAtMjMwMSw2ICsyMzAxLDkgQEAKIAkJ
NzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZC
QTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxQjQ5NzQyNTEyQkEzQjAwRkU5RDNCIC8qIEltYWdlQml0
bWFwQmFja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzIxQjQ5NzAyNTEyQUMwNDAwRkU5RDNCIC8qIEltYWdlQml0bWFwQmFja2luZy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMw
QjI2OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8q
IEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNzI0Njk2M0IyNzVDNUZBNjAwQTkxNTZBIC8qIENTU0ZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1M0ZCODMy
MTNCMUJCODAwQzQwRDM0IC8qIENTU0ZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyNDY5NjNEMjc1QzYxNDQwMEE5MTU2QSAvKiBGaWx0
ZXJFZmZlY3RWZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyMTRCOUI3Mjc0NDU4RkEwMDNCRTZERiAvKiBGaWx0ZXJFZmZlY3RWZWN0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjQ2OTYz
RTI3NUM2MTY3MDBBOTE1NkEgLyogRmlsdGVySW1hZ2VWZWN0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQjRFRjdDMjc0RUUzN0YwMDI5M0MyRiAv
KiBGaWx0ZXJJbWFnZVZlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWlu
TWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRF
RDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9OwogCQk3MjRF
RTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAwQTkxRkZCIC8q
IEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5n
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3
MjAsMzUgKzI3MjMsMzUgQEAKIAkJODQzMDBCRDYxMjBDOUFBQzAwMjE5NTRBIC8qIFNWR1BhdGhT
dHJpbmdTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0MzAwQkQ1MTIwQzlBQUMwMDIxOTU0QSAvKiBTVkdQYXRoU3RyaW5nU291cmNlLmggKi87
IH07CiAJCTg0MzAwQkQ4MTIwQzlBRDQwMDIxOTU0QSAvKiBTVkdQYXRoU291cmNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDMwMEJENzEyMEM5QUQ0
MDAyMTk1NEEgLyogU1ZHUGF0aFNvdXJjZS5oICovOyB9OwogCQk4NDVFNzJGODBGRDI2MUVFMDBB
ODdENzkgLyogRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NDVFNzJGNzBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODQ1RTcyRkMwRkQyNjIzOTAw
QTg3RDc5IC8qIFNWR0ZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ1RTcyRkEwRkQyNjIzOTAwQTg3RDc5IC8qIFNWR0ZpbHRlci5oICovOyB9
OworCQk4NDVFNzJGQzBGRDI2MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDVFNzJGQTBGRDI2MjM5MDBBODdE
NzkgLyogU1ZHRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJODQ2NTBFN0UyMzg3QUQ3RDAwNjI2NkUyIC8qIE1lZGlhUXVlcnlMaXN0RXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NjUw
RTdDMjM4N0FEN0MwMDYyNjZFMiAvKiBNZWRpYVF1ZXJ5TGlzdEV2ZW50LmggKi87IH07CiAJCTg0
NzMwRDc3MTI0OEYwQjMwMEQzQTlDOSAvKiBEaXN0YW50TGlnaHRTb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDVBMTI0OEYwQjMwMEQz
QTlDOSAvKiBEaXN0YW50TGlnaHRTb3VyY2UuaCAqLzsgfTsKLQkJODQ3MzBENzkxMjQ4RjBCMzAw
RDNBOUM5IC8qIEZFQ29udm9sdmVNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDVDMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUNvbnZvbHZl
TWF0cml4LmggKi87IH07Ci0JCTg0NzMwRDdCMTI0OEYwQjMwMEQzQTlDOSAvKiBGRURpZmZ1c2VM
aWdodGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ3MzBENUUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlmZnVzZUxpZ2h0aW5nLmggKi87IH07Ci0J
CTg0NzMwRDdEMTI0OEYwQjMwMEQzQTlDOSAvKiBGRURpc3BsYWNlbWVudE1hcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjAxMjQ4RjBCMzAw
RDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFwLmggKi87IH07Ci0JCTg0NzMwRDdGMTI0OEYwQjMw
MEQzQTlDOSAvKiBGRUZsb29kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NDczMEQ2MjEyNDhGMEIzMDBEM0E5QzkgLyogRkVGbG9vZC5oICovOyB9Owot
CQk4NDczMEQ4MTEyNDhGMEIzMDBEM0E5QzkgLyogRkVMaWdodGluZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjQxMjQ4RjBCMzAwRDNBOUM5
IC8qIEZFTGlnaHRpbmcuaCAqLzsgfTsKLQkJODQ3MzBEODMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZF
TWVyZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
NzMwRDY2MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1lcmdlLmggKi87IH07Ci0JCTg0NzMwRDg1MTI0
OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBob2xvZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY4MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBo
b2xvZ3kuaCAqLzsgfTsKLQkJODQ3MzBEODcxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2QTEy
NDhGMEIzMDBEM0E5QzkgLyogRkVPZmZzZXQuaCAqLzsgfTsKLQkJODQ3MzBEODkxMjQ4RjBCMzAw
RDNBOUM5IC8qIEZFU3BlY3VsYXJMaWdodGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENkMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3Vs
YXJMaWdodGluZy5oICovOyB9OwotCQk4NDczMEQ4QjEyNDhGMEIzMDBEM0E5QzkgLyogRkVUaWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2
RTEyNDhGMEIzMDBEM0E5QzkgLyogRkVUaWxlLmggKi87IH07Ci0JCTg0NzMwRDhEMTI0OEYwQjMw
MEQzQTlDOSAvKiBGRVR1cmJ1bGVuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzMwRDcwMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVR1cmJ1bGVuY2Uu
aCAqLzsgfTsKLQkJODQ3MzBEOTExMjQ4RjBCMzAwRDNBOUM5IC8qIExpZ2h0U291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NDEyNDhG
MEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2UuaCAqLzsgfTsKKwkJODQ3MzBENzkxMjQ4RjBCMzAw
RDNBOUM5IC8qIEZFQ29udm9sdmVNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDVDMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUNvbnZvbHZl
TWF0cml4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJODQ3MzBEN0IxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlmZnVzZUxpZ2h0aW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ1RTEyNDhGMEIz
MDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ3RDEyNDhGMEIzMDBEM0E5QzkgLyogRkVE
aXNwbGFjZW1lbnRNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg0NzMwRDYwMTI0OEYwQjMwMEQzQTlDOSAvKiBGRURpc3BsYWNlbWVudE1hcC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDdG
MTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2MjEyNDhGMEIzMDBEM0E5QzkgLyogRkVGbG9vZC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMw
RDgxMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2NDEyNDhGMEIzMDBEM0E5QzkgLyogRkVM
aWdodGluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTg0NzMwRDgzMTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1lcmdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2NjEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVNZXJnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTg0NzMwRDg1MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBob2xvZ3kuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY4MTI0OEYwQjMw
MEQzQTlDOSAvKiBGRU1vcnBob2xvZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ4NzEyNDhGMEIzMDBEM0E5QzkgLyogRkVPZmZzZXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDZB
MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDg5MTI0OEYwQjMwMEQzQTlDOSAvKiBGRVNw
ZWN1bGFyTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg0NzMwRDZDMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVNwZWN1bGFyTGlnaHRpbmcuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ4
QjEyNDhGMEIzMDBEM0E5QzkgLyogRkVUaWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2RTEyNDhGMEIzMDBEM0E5QzkgLyogRkVUaWxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3MzBE
OEQxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFVHVyYnVsZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZF
VHVyYnVsZW5jZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTg0NzMwRDkxMTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzQxMjQ4RjBCMzAw
RDNBOUM5IC8qIExpZ2h0U291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODQ3MzBEOTIxMjQ4RjBCMzAwRDNBOUM5IC8qIFBvaW50TGlnaHRT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
NzMwRDc1MTI0OEYwQjMwMEQzQTlDOSAvKiBQb2ludExpZ2h0U291cmNlLmggKi87IH07CiAJCTg0
NzMwRDkzMTI0OEYwQjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc2MTI0OEYwQjMwMEQzQTlD
OSAvKiBTcG90TGlnaHRTb3VyY2UuaCAqLzsgfTsKIAkJODQ3NkM5RTYxMURGNkEwQjAwNTU1QjAy
IC8qIFNWR1BhdGhTZWdMaXN0QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTQxMURGNkEwQjAwNTU1QjAyIC8qIFNWR1BhdGhTZWdM
aXN0QnVpbGRlci5oICovOyB9OwogCQk4NDc2QzlFQjExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0
aEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg0NzZDOUU4MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5oICovOyB9OwogCQk4
NDc2QzlFQzExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFOTExREY2QTI5MDA1NTVC
MDIgLyogU1ZHUGF0aENvbnN1bWVyLmggKi87IH07CiAJCTg0NzZDOUYwMTFERjZBNTgwMDU1NUIw
MiAvKiBTVkdQYXRoUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NDc2QzlFRTExREY2QTU4MDA1NTVCMDIgLyogU1ZHUGF0aFBhcnNlci5oICov
OyB9OwotCQk4NDgwMTk1NTEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODAxOTUzMTA4QkFG
QjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oICovOyB9OworCQk4NDgwMTk1NTEwOEJBRkIz
MDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODAxOTUzMTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFu
Qmx1ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTg0ODJCNzQ2MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0NDJCQkY4MTE5NEM5RDMwMEQ0
OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLzsgfTsKIAkJODQ4MkI3NTIxMTk4Q0I2QjAwQkZC
MDA1IC8qIEpTSGFzaENoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDgyQjc1MDExOThDQjZCMDBCRkIwMDUgLyogSlNIYXNoQ2hhbmdl
RXZlbnQuaCAqLzsgfTsKIAkJODQ4NTIyN0MxMTkwMTYyQzAwNkVEQzdGIC8qIEpTU1ZHSEtlcm5F
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NDg1MjI3ODExOTAxNjJDMDA2RURDN0YgLyogSlNTVkdIS2VybkVsZW1lbnQuaCAqLzsgfTsKIAkJ
ODQ4NTIyN0UxMTkwMTYyQzAwNkVEQzdGIC8qIEpTU1ZHVktlcm5FbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDg1MjI3QTExOTAxNjJDMDA2
RURDN0YgLyogSlNTVkdWS2VybkVsZW1lbnQuaCAqLzsgfTsKIAkJODQ4NTIyOEIxMTkwMTczQzAw
NkVEQzdGIC8qIFNWR1ZLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ4NTIyODgxMTkwMTczQzAwNkVEQzdGIC8qIFNWR1ZLZXJuRWxl
bWVudC5oICovOyB9OwogCQk4NEE4MUYzRTBGQzdERkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0QTgxRjND
MEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VBbHBoYS5oICovOyB9OwotCQk4NEE4MUY0MjBGQzdF
MDI3MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODRBODFGNDAwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJjZUdy
YXBoaWMuaCAqLzsgfTsKKwkJODRBODFGNDIwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJjZUdyYXBo
aWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0QTgx
RjQwMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODRCMzQ5QTIyMkY4NkU3NTAwRDQ3QkNG
IC8qIEV2ZW50VGFyZ2V0Q29uY3JldGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0QjM0OUEwMjJGODZFNzQwMEQ0N0JDRiAvKiBFdmVudFRhcmdldENv
bmNyZXRlLmggKi87IH07CiAJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2Vn
TGlzdFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODRCNkI5NzYxMjBGMTNFNTAwQjhFRkFGIC8qIFNWR1BhdGhTZWdMaXN0U291cmNlLmggKi87
IH07CiAJCTg0QzVCMkZCMTIxNkRDODEwMDg4QjUzQSAvKiBTVkdQYXRoVHJhdmVyc2FsU3RhdGVC
dWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NEM1QjJGOTEyMTZEQzgxMDA4OEI1M0EgLyogU1ZHUGF0aFRyYXZlcnNhbFN0YXRlQnVpbGRlci5o
ICovOyB9OwpAQCAtMzUxMCwxMCArMzUxMywxMCBAQAogCQlBNzQwQjVBNTE0QzkzNUFCMDBBNzdG
QTQgLyogSlNJbnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3OTE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNl
dHRpbmdzLmggKi87IH07CiAJCUE3NDBCNUE3MTRDOTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFs
U2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTdCNEVBNzgxNEM5MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi87
IH07CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0
MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNzVFOEI4OTBFMURFMkQ2MDA3
RjI0ODEgLyogRkVCbGVuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc1RThCODEwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCAqLzsgfTsKLQkJ
QTc1RThCOEIwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgzMEUxREUyRDYwMDdGMjQ4
MSAvKiBGRUNvbG9yTWF0cml4LmggKi87IH07Ci0JCUE3NUU4QjhEMEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUNvbXBvbmVudFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFu
c2Zlci5oICovOyB9OwotCQlBNzVFOEI4RjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg3
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovOyB9OworCQlBNzVFOEI4OTBFMURF
MkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc1RThCODEwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzVFOEI4QjBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29s
b3JNYXRyaXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlBNzVFOEI4RDBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFE
RTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzVFOEI4RjBFMURFMkQ2MDA3RjI0ODEg
LyogRkVDb21wb3NpdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3NUU4Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NkU1RjdGMTM1RTBE
Q0YwMEE2OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzZFNUY3RTEzNUUwRENGMDBBNjk4MzcgLyog
UmVuZGVyZWREb2N1bWVudE1hcmtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUE3Nzk3OTFBMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTE0
MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJ
bWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwpAQCAtMzM2
ODAsNiArMzM2ODMsNyBAQAogCQkJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJz
b3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4
QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ0NzZC
REIxREZDQUMwMzAwNjkwRTIzIC8qIENTU0RlZmVycmVkUGFyc2VyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3MjQ2OTYzQjI3NUM1RkE2MDBBOTE1NkEgLyogQ1NTRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGQkIwQzVCODE3QkJENjI5MDAzRDM2NzcgLyogQ1NTRmlsdGVySW1hZ2VWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NEI0RDYwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRG
YWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NT
Rm9udEZhY2VSdWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTM0MTg4LDggKzM0MTkyLDEwIEBACiAJ
CQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDhDOTI1MUEwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRlckVmZmVjdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzI2Q0RFMjAyNzU5NzM1MDAwQTQ0NUIyIC8qIEZpbHRlckVmZmVjdEdlb21ldHJ5
LmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjQ2OTYzRDI3NUM2MTQ0MDBBOTE1NkEgLyogRmlsdGVy
RWZmZWN0VmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MkI4QjAzNTI3NTM0Mzg2MDBGNzUy
QUEgLyogRmlsdGVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTcyQjhCMDM2Mjc1MzQ0
MTQwMEY3NTJBQSAvKiBGaWx0ZXJJbWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI0Njk2M0Uy
NzVDNjE2NzAwQTkxNTZBIC8qIEZpbHRlckltYWdlVmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0OUVDRUI2RTE0OTk3OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0OUVDRUI3MDE0OTk3OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzcyQzAwRDkxMjk2MTlGODAwNUM5NTc1IC8qIEZpbmRPcHRp
b25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCA3NTBkYjRlZTg5MTY2MGZhNGJl
Y2ViYzQ0NDdjNjg1Y2U1YzQ4NDgxLi4yZmQ0MjI5YjcxMjdmMDQ5MGQ0MmQ1NDFlMTQ0YWQ2YTlk
OGUxZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25j
cmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0xNDYsNyArMTQ2LDcgQEAgcHJvdGVjdGVkOgogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgY29uc3RfY2FzdDxDb25jcmV0ZUlt
YWdlQnVmZmVyJj4oKnRoaXMpLmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKLSAgICAgICAgYXV0byBy
ZXN1bHQgPSBmaWx0ZXIuYXBwbHkodGhpcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gZmlsdGVy
LmFwcGx5KHRoaXMsIHsgeyB9LCBsb2dpY2FsU2l6ZSgpIH0pOwogICAgICAgICBpZiAoIXJlc3Vs
dCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBlMzdiNzE1NTcx
NDA2MGJmZWI3YWRiMDE4OWZhYmVkZjc5ZjE2ODE0Li4yY2JiY2M1NjYzZmU1ODgwN2QxMDM2MDZm
NWI1MWEwZmY4ZTU2MmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTYzMSw5ICs2MzEsOSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKFJlZlB0cjxJbWFnZUJ1ZmZlcj4g
aW1hZ2UsIGNvbnN0CiAgICAgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoV1RGTW92ZShpbWFn
ZSksICp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIH0KIAotdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJ
bWFnZSwgRmlsdGVyJiBmaWx0ZXIpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZpbHRlcmVk
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNv
dXJjZUltYWdlUmVjdCwgRmlsdGVyJiBmaWx0ZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBmaWx0
ZXIuYXBwbHkoc291cmNlSW1hZ2UpOworICAgIGF1dG8gcmVzdWx0ID0gZmlsdGVyLmFwcGx5KHNv
dXJjZUltYWdlLCBzb3VyY2VJbWFnZVJlY3QpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICBy
ZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCmluZGV4IDNkOGQzYTcxMjUzZTM2MzBmOGQ5NWNkZGQ0MDk2YmI2NDIy
ODliZjkuLjMyZWEyZWQxNDUxYzU0YjRjZGU4MTMwYTQ5MzdlN2Q1MzIwMTZhM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBA
IC00NTIsNyArNDUyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0Nv
bnN1bWluZ0ltYWdlQnVmZmVyKFJlZlB0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihSZWZQdHI8
SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciogc291cmNlSW1hZ2UsIEZpbHRlciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IHsgfSkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBlNjE1YTdi
ZDZkNGE3MDg1NWFmMDlmZWEwYzM5ZDU4MjAzOWRmZTljLi5kOWIwZWRkYzI2OGMyOTViNzNkOWI2
NjFlZThjMTU2ZGJhM2RiOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaCIKICNpbmNsdWRlICJE
aXNwbGF5TGlzdEl0ZW1zLmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVyYXRvci5oIgorI2lu
Y2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvRmFz
dE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTI0Myw2ICsyNDQs
OCBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICBy
ZXR1cm4gYXBwZW5kPEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPihpdGVtLmdldDxCZWdpbkNs
aXBUb0RyYXdpbmdDb21tYW5kcz4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xpcFRvRHJh
d2luZ0NvbW1hbmRzOgogICAgICAgICByZXR1cm4gYXBwZW5kPEVuZENsaXBUb0RyYXdpbmdDb21t
YW5kcz4oaXRlbS5nZXQ8RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPigpKTsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxE
cmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oaXRlbS5nZXQ8RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI+
KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAgICAgICAgIHJldHVybiBhcHBl
bmQ8RHJhd0dseXBocz4oaXRlbS5nZXQ8RHJhd0dseXBocz4oKSk7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd0ltYWdlQnVmZmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmNwcAppbmRleCBlODA1MDllY2NhMDVkMmNjOGVkMTA2NjA3MDQxZjVjY2NjM2UzNzk0Li40
MDI1ZTA2OTJkYzVhMTVlOTczNjk1ODAzMzNmNmZhM2I5YmZiZDRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
QnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMTE0LDYgKzExNCw5IEBAIHZvaWQg
SXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIGNhc2UgSXRl
bVR5cGU6OkVuZENsaXBUb0RyYXdpbmdDb21tYW5kczoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcjoKKyAgICAgICAgZ2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigpLmFwcGx5
KGNvbnRleHQpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0dseXBo
czoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTI1
Niw2ICsyNTksOSBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgIGNhc2UgSXRlbVR5
cGU6OkNsaXBQYXRoOgogICAgICAgICBnZXQ8Q2xpcFBhdGg+KCkufkNsaXBQYXRoKCk7CiAgICAg
ICAgIHJldHVybjsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjoK
KyAgICAgICAgZ2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigpLn5EcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcigpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3Vz
UmluZ1BhdGg6CiAgICAgICAgIGdldDxEcmF3Rm9jdXNSaW5nUGF0aD4oKS5+RHJhd0ZvY3VzUmlu
Z1BhdGgoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDkxLDYgKzQ5Nyw4IEBAIGJvb2wgSXRlbUhh
bmRsZTo6c2FmZUNvcHkoSXRlbVR5cGUgaXRlbVR5cGUsIEl0ZW1IYW5kbGUgZGVzdGluYXRpb24p
IGNvbnN0CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxDbGlwT3V0VG9QYXRoPihpdGVtT2Zmc2V0
LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CiAgICAgICAgIHJldHVybiBj
b3B5SW50bzxDbGlwUGF0aD4oaXRlbU9mZnNldCwgKnRoaXMpOworICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gY29weUludG88RHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXI+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBl
OjpEcmF3Rm9jdXNSaW5nUGF0aDoKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdGb2N1c1Jp
bmdQYXRoPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3Vz
UmluZ1JlY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCmluZGV4
IGJkZWM2NTRiNTJiZDQ2ZDYzOWNhMmU5YWVhYjlkNjFlODYzZGMzODUuLmRmYTFlNzRmYjI0ODZj
MzRhMDljMWZhMWJhMmNiZGU3NDkwMDRkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtVHlwZS5jcHAKQEAgLTgwLDYgKzgwLDggQEAgc3RhdGljIHNpemVfdCBzaXplT2ZJdGVt
SW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKEJlZ2luQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29t
bWFuZHM6CiAgICAgICAgIHJldHVybiBzaXplb2YoRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKTsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKKyAgICAgICAgcmV0
dXJuIHNpemVvZihEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik7CiAgICAgY2FzZSBJdGVtVHlwZTo6
RHJhd0dseXBoczoKICAgICAgICAgcmV0dXJuIHNpemVvZihEcmF3R2x5cGhzKTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CkBAIC0yMTYsNiArMjE4LDcgQEAgYm9vbCBpc0Ry
YXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJSZWN0Ogog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RHJhd0VsbGlwc2U6CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1h
Z2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1BhdGg6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1JlY3RzOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdH
bHlwaHM6CkBAIC0zMjIsNiArMzI1LDcgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlw
ZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICBjYXNlIEl0ZW1UeXBl
OjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxp
cHNlOgorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOgogICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0
aXZlSW1hZ2U6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCA4MDg0NGU4YjlkZjA1NWU1YTE2YzM2N2NlMmJm
MjkwYTkzY2U2MzcyLi45MWYzZjVmNTI4OGJjN2ViMmRhZDZlNDJkZGZiM2RiZjE5ODBjNzgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTUyLDYgKzUyLDcgQEAg
ZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIENsaXBQYXRoLAogICAgIEJlZ2lu
Q2xpcFRvRHJhd2luZ0NvbW1hbmRzLAogICAgIEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcywKKyAg
ICBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlciwKICAgICBEcmF3R2x5cGhzLAogICAgIERyYXdJbWFn
ZUJ1ZmZlciwKICAgICBEcmF3TmF0aXZlSW1hZ2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHAKaW5kZXggNzJmYzZkMWE3MzQ0NjE0MjVmMGNlNTY3ZjZiODBjMDQ3MjJjMGFhMS4u
MDlmMmI1N2M2NGE4ZDIxZTI5NjUxZWFmNTdjMWM3Nzc5Nzc4NmY1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkRpc3Bs
YXlMaXN0SXRlbXMuaCIKIAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVwbGF5ZXIuaCIKKyNpbmNs
dWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgogI2luY2x1ZGUgIkltYWdl
QnVmZmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKQEAgLTI5OSw2ICszMDAsMzAgQEAg
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEVuZENs
aXBUb0RyYXdpbmdDb21tYW5kcyYgaXQKICAgICByZXR1cm4gdHM7CiB9CiAKK0RyYXdGaWx0ZXJl
ZEltYWdlQnVmZmVyOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9h
dFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJiBmaWx0ZXIpCisgICAgOiBtX3NvdXJjZUlt
YWdlSWRlbnRpZmllcihzb3VyY2VJbWFnZUlkZW50aWZpZXIpCisgICAgLCBtX3NvdXJjZUltYWdl
UmVjdChzb3VyY2VJbWFnZVJlY3QpCisgICAgLCBtX2ZpbHRlcihmaWx0ZXIpCit7Cit9CisKK05P
X1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OmFwcGx5
KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK3ZvaWQgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKQoreworICAgIGNvbnRl
eHQuZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIG1fc291cmNlSW1hZ2VSZWN0
LCBtX2ZpbHRlcik7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlciYgaXRlbSkKK3sKKyAgICB0cy5k
dW1wUHJvcGVydHkoInNvdXJjZS1pbWFnZS1pZGVudGlmaWVyIiwgaXRlbS5zb3VyY2VJbWFnZUlk
ZW50aWZpZXIoKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJzb3VyY2UtaW1hZ2UtcmVjdCIsIGl0
ZW0uc291cmNlSW1hZ2VSZWN0KCkpOworICAgIHJldHVybiB0czsKK30KKwogRHJhd0dseXBoczo6
RHJhd0dseXBocyhSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZm9udElkZW50aWZpZXIsIFZl
Y3RvcjxHbHlwaEJ1ZmZlckdseXBoLCAxMjg+JiYgZ2x5cGhzLCBWZWN0b3I8R2x5cGhCdWZmZXJB
ZHZhbmNlLCAxMjg+JiYgYWR2YW5jZXMsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRzLCBjb25zdCBG
bG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkK
ICAgICA6IG1fZm9udElkZW50aWZpZXIoZm9udElkZW50aWZpZXIpCiAgICAgLCBtX2dseXBocyhX
VEZNb3ZlKGdseXBocykpCkBAIC0xMDU5LDYgKzEwODQsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1U
eXBlOjpDbGlwUGF0aDogdHMgPDwgImNsaXAtcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5
cGU6OkJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOiB0cyA8PCAiYmVnaW4tY2xpcC10by1kcmF3
aW5nLWNvbW1hbmRzOiI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkVuZENsaXBUb0RyYXdp
bmdDb21tYW5kczogdHMgPDwgImVuZC1jbGlwLXRvLWRyYXdpbmctY29tbWFuZHMiOyBicmVhazsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjogdHMgPDwgImRyYXct
ZmlsdGVyZWQtaW1hZ2UtYnVmZmVyIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ds
eXBoczogdHMgPDwgImRyYXctZ2x5cGhzIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0ltYWdlQnVmZmVyOiB0cyA8PCAiZHJhdy1pbWFnZS1idWZmZXIiOyBicmVhazsKICAgICBjYXNl
IEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6IHRzIDw8ICJkcmF3LW5hdGl2ZS1pbWFnZSI7IGJy
ZWFrOwpAQCAtMTE3OCw2ICsxMjA0LDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkVuZENsaXBUb0Ry
YXdpbmdDb21tYW5kczoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8RW5kQ2xpcFRvRHJhd2luZ0Nv
bW1hbmRzPigpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVy
ZWRJbWFnZUJ1ZmZlcjoKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8RHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXI+KCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6
CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PERyYXdHbHlwaHM+KCk7CiAgICAgICAgIGJyZWFrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggZTE0YTQyOTkzYTBmMmFmZGIyZjRi
MTZhMGFhYmY5NWVlMTRkYjM3ZS4uODM1YjAxMmQ1ZmMwYjQ5NjA0ZWYzYWVhYmY1MTFhYTYxY2Iz
ZTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC05MTIsNiArOTEyLDI5
IEBAIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb247CiB9OwogCitjbGFzcyBE
cmF3RmlsdGVyZWRJbWFnZUJ1ZmZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBJ
dGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSB0cnVlOworCisgICAgV0VCQ09SRV9FWFBP
UlQgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3Vy
Y2VJbWFnZVJlY3QsIEZpbHRlciYpOworCisgICAgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlSW1hZ2VJZGVudGlmaWVyOyB9CisgICAgRmxvYXRSZWN0IHNvdXJjZUltYWdlUmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2VSZWN0OyB9CisKKyAgICBOT19SRVRVUk5fRFVF
X1RPX0FTU0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6SW1hZ2VCdWZm
ZXIqIHNvdXJjZUltYWdlKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxC
b3VuZHMoKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKyAgICBzdGQ6Om9wdGlvbmFs
PEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2VJbWFnZVJlY3Q7IH0KKworcHJpdmF0ZToKKyAgICBzdGQ6Om9wdGlvbmFs
PFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbV9zb3VyY2VJbWFnZUlkZW50aWZpZXI7Cisg
ICAgRmxvYXRSZWN0IG1fc291cmNlSW1hZ2VSZWN0OworICAgIFJlZjxGaWx0ZXI+IG1fZmlsdGVy
OworfTsKKwogY2xhc3MgRHJhd0dseXBocyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpEcmF3R2x5cGhzOwpAQCAtMjQwNSw2ICsy
NDI4LDcgQEAgdXNpbmcgRGlzcGxheUxpc3RJdGVtID0gc3RkOjp2YXJpYW50CiAgICAgLCBDb25j
YXRlbmF0ZUNUTQogICAgICwgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcgogICAgICwgRHJhd0Vs
bGlwc2UKKyAgICAsIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyCiAgICAgLCBEcmF3Rm9jdXNSaW5n
UGF0aAogICAgICwgRHJhd0ZvY3VzUmluZ1JlY3RzCiAgICAgLCBEcmF3R2x5cGhzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggMmZkNDNmOTlhZTM1NGFkYWQ3
M2JkODVmMTRmZjVlYzBiZTRmZDk4NC4uZDhiOGZjYTM5M2FmNjM2ZGZiODRmODQ3MDU3NWNjYWZj
OWE3M2VhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAt
MTQ0LDYgKzE0NCwyNCBAQCB2b2lkIFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IG1pdGVy
TGltaXQpCiAgICAgcmVjb3JkU2V0TWl0ZXJMaW1pdChtaXRlckxpbWl0KTsKIH0KIAordm9pZCBS
ZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJiBmaWx0ZXIpCit7Cisg
ICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtSWZOZWNlc3NhcnkoKTsKKworICAgIGlmICghc291cmNl
SW1hZ2UpIHsKKyAgICAgICAgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoeyB9LCBzb3Vy
Y2VJbWFnZVJlY3QsIGZpbHRlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
IWNhbkRyYXdJbWFnZUJ1ZmZlcigqc291cmNlSW1hZ2UpKSB7CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIHNvdXJjZUltYWdlUmVj
dCwgZmlsdGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlY29yZFJlc291cmNl
VXNlKCpzb3VyY2VJbWFnZSk7CisgICAgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291
cmNlSW1hZ2UtPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBzb3VyY2VJbWFnZVJlY3Qs
IGZpbHRlcik7Cit9CisKIHZvaWQgUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9u
dCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFu
Y2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0
UG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7CiAgICAgbV9kcmF3R2x5
cGhzUmVjb3JkZXIuZHJhd0dseXBocyhmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBudW1HbHlwaHMs
IHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmgKaW5kZXggOWE0MDE0MzY3ZGIxZWY0M2I4YTU5ZTUwZTNkNDcxMGY5M2UwM2ViZi4u
MDJhZTU3MDYxMmUzNGI4MjNmNjA3NGJmZWZkZTM2MGVlZTg3ZTYxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC04OCw2ICs4OCw3IEBAIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIHZvaWQgcmVjb3JkQ2xpcFBhdGgoY29uc3QgUGF0aCYsIFdpbmRSdWxlKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIERlc3RpbmF0aW9uQ29sb3JTcGFjZSkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCByZWNvcmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRS
ZWN0JiBkZXN0aW5hdGlvbikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3RmlsdGVy
ZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4g
c291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwg
RmlsdGVyJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZv
bnQmLCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwg
dW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3Ro
aW5nTW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3SW1hZ2VCdWZmZXIoUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd05hdGl2ZUlt
YWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwpAQCAtMjI0
LDYgKzIyNSw4IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseUZpbGxQ
YXR0ZXJuKCkgZmluYWw7CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJikgZmluYWw7CisKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRyYXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBj
b25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0
UG9pbnQmIGFuY2hvclBvaW50LCBGb250U21vb3RoaW5nTW9kZSkgZmluYWw7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkcmF3R2x5cGhzQW5kQ2FjaGVGb250KGNvbnN0IEZvbnQmLCBjb25zdCBH
bHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgY291
bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSkgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCmlu
ZGV4IGE1ZTJkM2IyMDk4NWUzZWY5NDFhMzIzNTc1NmUyODBlYWNkNTE2M2MuLjMwMzQwODEwYWRm
NmRjOTljZjYyOGExMjVlOWQ0NmRlOGE4YTg3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcApAQCAtMjA4LDYgKzIwOCwxMSBAQCB2b2lkIFJlY29y
ZGVySW1wbDo6cmVjb3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24pCiAgICAgYXBwZW5kPEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcz4oZGVzdGlu
YXRpb24pOwogfQogCit2b2lkIFJlY29yZGVySW1wbDo6cmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUlt
YWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYg
ZmlsdGVyKQoreworICAgIGFwcGVuZDxEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oc291cmNlSW1h
Z2VJZGVudGlmaWVyLCBzb3VyY2VJbWFnZVJlY3QsIGZpbHRlcik7Cit9CisKIHZvaWQgUmVjb3Jk
ZXJJbXBsOjpyZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVm
ZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNlcywgdW5z
aWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5n
TW9kZSBtb2RlKQogewogICAgIGFwcGVuZDxEcmF3R2x5cGhzPihmb250LCBnbHlwaHMsIGFkdmFu
Y2VzLCBjb3VudCwgbG9jYWxBbmNob3IsIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBs
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlckltcGwuaAppbmRleCAzZTZkMDkwMjY5MDQ2ZjFiMTI0YTM5YzFlMTIxMTAw
YjMyNzI2MGM1Li4yOWU3Mjc0ZjE3NWRhOGE2Mjc5MzM4ZWRlMzQ4MzQyYjJlODU1NGE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaApAQCAtODYsNiArODYs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjb3JkQ2xpcFBhdGgoY29uc3QgUGF0aCYsIFdpbmRS
dWxlKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIERlc3RpbmF0aW9uQ29sb3JTcGFjZSkgZmluYWw7
CiAgICAgdm9pZCByZWNvcmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3RmlsdGVyZWRJbWFnZUJ1
ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc291cmNlSW1h
Z2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJikg
ZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlw
aEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgY291bnQs
IGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSkgZmluYWw7
CiAgICAgdm9pZCByZWNvcmREcmF3SW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFs
OwogICAgIHZvaWQgcmVjb3JkRHJhd05hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IDg4OWM2ZjdiMTc0YjIwNjljZDljM2Y4
YTJhNTE2NTk4NTg4ZmUzMzEuLmU1ZGYyMTkyYTljYzAxNzdjN2FhMWEwMzFkMTZjNmYyYTRjZjhm
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVCbGVuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVCbGVuZC5oCkBAIC0zMCwxMSArMzAsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGRUJsZW5kIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxGRUJsZW5kPiBjcmVhdGUoQmxlbmRNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVmPEZFQmxlbmQ+IGNyZWF0ZShCbGVuZE1vZGUpOwogCiAgICAgQmxlbmRNb2RlIGJsZW5kTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQogICAgIGJvb2wgc2V0QmxlbmRNb2RlKEJsZW5k
TW9kZSk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UmVmPEZFQmxlbmQ+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQmxl
bmQoQmxlbmRNb2RlKTsKIApAQCAtNDgsNiArNTEsMjMgQEAgcHJpdmF0ZToKICAgICBCbGVuZE1v
ZGUgbV9tb2RlOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVCbGVuZDo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX21vZGU7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRUJsZW5k
Pj4gRkVCbGVuZDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25h
bDxCbGVuZE1vZGU+IG1vZGU7CisgICAgZGVjb2RlciA+PiBtb2RlOworICAgIGlmICghbW9kZSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRUJsZW5kOjpjcmVh
dGUoKm1vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUJsZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAppbmRleCBhNDMx
MjViNTMxNTYyYzYzYTk1Mjg0N2M4ZjkwNDQ5Yzk0ZjdlODViLi4yMDI0MDE5M2U1NDBiYzIwZWZi
OTQ2NzRiNmEwMDQ3ZDY4YjIyMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaApAQCAtMzcsNyArMzcsNyBA
QCBlbnVtIENvbG9yTWF0cml4VHlwZSB7CiAKIGNsYXNzIEZFQ29sb3JNYXRyaXggOiBwdWJsaWMg
RmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFQ29sb3JNYXRyaXg+IGNy
ZWF0ZShDb2xvck1hdHJpeFR5cGUsIFZlY3RvcjxmbG9hdD4mJik7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxGRUNvbG9yTWF0cml4PiBjcmVhdGUoQ29sb3JNYXRyaXhUeXBlLCBWZWN0
b3I8ZmxvYXQ+JiYpOwogCiAgICAgQ29sb3JNYXRyaXhUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KICAgICBib29sIHNldFR5cGUoQ29sb3JNYXRyaXhUeXBlKTsKQEAgLTQ5LDYg
KzQ5LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZUh1ZVJvdGF0ZUNvbXBv
bmVudHMoZmxvYXQqIGNvbXBvbmVudHMsIGZsb2F0IHZhbHVlKTsKICAgICBzdGF0aWMgVmVjdG9y
PGZsb2F0PiBub3JtYWxpemVkRmxvYXRzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlcyk7CiAK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZF
Q29sb3JNYXRyaXg+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQ29sb3JN
YXRyaXgoQ29sb3JNYXRyaXhUeXBlLCBWZWN0b3I8ZmxvYXQ+JiYpOwogCkBAIC02Niw2ICs2OSw0
NSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxmbG9hdD4gbV92YWx1ZXM7CiB9OwogCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUNvbG9yTWF0cml4OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdHlwZTsKKyAgICBlbmNvZGVyIDw8IG1f
dmFsdWVzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8
RkVDb2xvck1hdHJpeD4+IEZFQ29sb3JNYXRyaXg6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHN0ZDo6b3B0aW9uYWw8Q29sb3JNYXRyaXhUeXBlPiB0eXBlOworICAgIGRlY29kZXIg
Pj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxmbG9hdD4+IHZhbHVlczsKKyAgICBkZWNvZGVyID4+
IHZhbHVlczsKKyAgICBpZiAoIXZhbHVlcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHJldHVybiBGRUNvbG9yTWF0cml4OjpjcmVhdGUoKnR5cGUsIFdURk1vdmUoKnZhbHVl
cykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbG9yTWF0cml4VHlwZT4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkNvbG9yTWF0
cml4VHlwZSwKKworICAgICAgICBXZWJDb3JlOjpGRUNPTE9STUFUUklYX1RZUEVfVU5LTk9XTiwK
KyAgICAgICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWCwKKyAgICAgICAgV2Vi
Q29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX1NBVFVSQVRFLAorICAgICAgICBXZWJDb3JlOjpGRUNP
TE9STUFUUklYX1RZUEVfSFVFUk9UQVRFLAorICAgICAgICBXZWJDb3JlOjpGRUNPTE9STUFUUklY
X1RZUEVfTFVNSU5BTkNFVE9BTFBIQQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29sb3JNYXRyaXgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29t
cG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmluZGV4IGNjYWY0NTliMDNlM2YwZTRlNjA5YmFmMzky
NzQxMTA3NTVhZmEyMzcuLjA0OWQ0ZjIwNmI4YjQ2MTY2OGI3MDI0OGU3ZTBiNTRlNTE1OWY2NTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb25lbnRUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCkBAIC00OCwxNyArNDgsMjMgQEAgc3RydWN0
IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gewogICAgIGZsb2F0IG9mZnNldCB7IDAgfTsKIAog
ICAgIFZlY3RvcjxmbG9hdD4gdGFibGVWYWx1ZXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4gZGVj
b2RlKERlY29kZXImKTsKIH07CiAKIGNsYXNzIEZFQ29tcG9uZW50VHJhbnNmZXIgOiBwdWJsaWMg
RmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFQ29tcG9uZW50VHJhbnNm
ZXI+IGNyZWF0ZShjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLCBjb25z
dCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsIGNvbnN0IENvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
JiBhbHBoYUZ1bmMpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVDb21wb25lbnRU
cmFuc2Zlcj4gY3JlYXRlKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIHJlZEZ1bmMs
IGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGdyZWVuRnVuYywgY29uc3QgQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbiYgYmx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb24mIGFscGhhRnVuYyk7CiAKICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIHJlZEZ1
bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yZWRGdW5jdGlvbjsgfQogICAgIENvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb24gZ3JlZW5GdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JlZW5GdW5j
dGlvbjsgfQogICAgIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gYmx1ZUZ1bmN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9ibHVlRnVuY3Rpb247IH0KICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uIGFscGhhRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2FscGhhRnVuY3Rpb247IH0KIAor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVD
b21wb25lbnRUcmFuc2Zlcj4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVD
b21wb25lbnRUcmFuc2Zlcihjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5j
LCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsIGNvbnN0IENvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uJiBhbHBoYUZ1bmMpOwogCkBAIC03Niw2ICs4MiwxMTEgQEAgcHJpdmF0ZToKICAgICBD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIG1fYWxwaGFGdW5jdGlvbjsKIH07CiAKK3RlbXBsYXRl
PGNsYXNzIEVuY29kZXI+Cit2b2lkIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb246OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZTsKKyAgICBlbmNv
ZGVyIDw8IHNsb3BlOworICAgIGVuY29kZXIgPDwgaW50ZXJjZXB0OworICAgIGVuY29kZXIgPDwg
YW1wbGl0dWRlOworICAgIGVuY29kZXIgPDwgZXhwb25lbnQ7CisgICAgZW5jb2RlciA8PCBvZmZz
ZXQ7CisgICAgZW5jb2RlciA8PCB0YWJsZVZhbHVlczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK3N0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4gQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpv
cHRpb25hbDxDb21wb25lbnRUcmFuc2ZlclR5cGU+IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBl
OworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0
ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNsb3BlOworICAgIGRlY29kZXIgPj4gc2xvcGU7CisgICAgaWYg
KCFzbG9wZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9u
YWw8ZmxvYXQ+IGludGVyY2VwdDsKKyAgICBkZWNvZGVyID4+IGludGVyY2VwdDsKKyAgICBpZiAo
IWludGVyY2VwdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8ZmxvYXQ+IGFtcGxpdHVkZTsKKyAgICBkZWNvZGVyID4+IGFtcGxpdHVkZTsKKyAgICBp
ZiAoIWFtcGxpdHVkZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8ZmxvYXQ+IGV4cG9uZW50OworICAgIGRlY29kZXIgPj4gZXhwb25lbnQ7CisgICAg
aWYgKCFleHBvbmVudCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8ZmxvYXQ+IG9mZnNldDsKKyAgICBkZWNvZGVyID4+IG9mZnNldDsKKyAgICBpZiAo
IW9mZnNldCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPGZsb2F0Pj4gdGFibGVWYWx1ZXM7CisgICAgZGVjb2RlciA+PiB0YWJsZVZhbHVl
czsKKyAgICBpZiAoIXRhYmxlVmFsdWVzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHsgeyAqdHlwZSwgKnNsb3BlLCAqaW50ZXJjZXB0LCAqYW1wbGl0dWRlLCAq
ZXhwb25lbnQsICpvZmZzZXQsIFdURk1vdmUoKnRhYmxlVmFsdWVzKSB9IH07Cit9CisKK3RlbXBs
YXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFQ29tcG9uZW50VHJhbnNmZXI6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9yZWRGdW5jdGlvbjsKKyAg
ICBlbmNvZGVyIDw8IG1fZ3JlZW5GdW5jdGlvbjsKKyAgICBlbmNvZGVyIDw8IG1fYmx1ZUZ1bmN0
aW9uOworICAgIGVuY29kZXIgPDwgbV9hbHBoYUZ1bmN0aW9uOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVDb21wb25lbnRUcmFuc2Zlcj4+IEZFQ29t
cG9uZW50VHJhbnNmZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0
aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4gcmVkRnVuY3Rpb247CisgICAgZGVjb2Rl
ciA+PiByZWRGdW5jdGlvbjsKKyAgICBpZiAoIXJlZEZ1bmN0aW9uKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uPiBncmVlbkZ1bmN0aW9uOworICAgIGRlY29kZXIgPj4gZ3JlZW5GdW5jdGlvbjsKKyAgICBp
ZiAoIWdyZWVuRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBz
dGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IGJsdWVGdW5jdGlvbjsKKyAg
ICBkZWNvZGVyID4+IGJsdWVGdW5jdGlvbjsKKyAgICBpZiAoIWJsdWVGdW5jdGlvbikKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbj4gYWxwaGFGdW5jdGlvbjsKKyAgICBkZWNvZGVyID4+IGFscGhhRnVuY3Rp
b247CisgICAgaWYgKCFhbHBoYUZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgcmV0dXJuIEZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZSgqcmVkRnVuY3Rpb24s
ICpncmVlbkZ1bmN0aW9uLCAqYmx1ZUZ1bmN0aW9uLCAqYWxwaGFGdW5jdGlvbik7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29tcG9uZW50VHJhbnNmZXJUeXBlPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Q29tcG9uZW50VHJhbnNm
ZXJUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9VTktO
T1dOLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfSURFTlRJVFks
CisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9UQUJMRSwKKyAgICAg
ICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0RJU0NSRVRFLAorICAgICAgICBX
ZWJDb3JlOjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfTElORUFSLAorICAgICAgICBXZWJDb3Jl
OjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfR0FNTUEKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbXBv
bmVudFRyYW5zZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCmluZGV4IDUzYWUwZDZhMjY0ZTIwYWY2NjU4Y2ZlYWY5
OGE3NDcyZDZjOGZmZmYuLmM0MDgzNDBhYWRjYzNmOWVhMWYyZTlkOGI2YWI5ZDM1MzE3NDYwNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb3NpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9zaXRlLmgKQEAgLTQwLDcgKzQwLDcgQEAgZW51bSBDb21wb3NpdGVPcGVyYXRpb25U
eXBlIHsKIAogY2xhc3MgRkVDb21wb3NpdGUgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEZFQ29tcG9zaXRlPiBjcmVhdGUoY29uc3QgQ29tcG9zaXRlT3Bl
cmF0aW9uVHlwZSYsIGZsb2F0IGsxLCBmbG9hdCBrMiwgZmxvYXQgazMsIGZsb2F0IGs0KTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFQ29tcG9zaXRlPiBjcmVhdGUoY29uc3QgQ29t
cG9zaXRlT3BlcmF0aW9uVHlwZSYsIGZsb2F0IGsxLCBmbG9hdCBrMiwgZmxvYXQgazMsIGZsb2F0
IGs0KTsKIAogICAgIENvbXBvc2l0ZU9wZXJhdGlvblR5cGUgb3BlcmF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBzZXRPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0aW9u
VHlwZSk7CkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCBrNCgpIGNvbnN0IHsg
cmV0dXJuIG1fazQ7IH0KICAgICBib29sIHNldEs0KGZsb2F0KTsKIAorICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVDb21wb3NpdGU+PiBkZWNv
ZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQ29tcG9zaXRlKGNvbnN0IENvbXBvc2l0
ZU9wZXJhdGlvblR5cGUmLCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCk7
CiAKQEAgLTg0LDYgKzg3LDY2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9rNDsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFQ29tcG9zaXRlOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdHlwZTsKKyAgICBlbmNvZGVyIDw8
IG1fazE7CisgICAgZW5jb2RlciA8PCBtX2syOworICAgIGVuY29kZXIgPDwgbV9rMzsKKyAgICBl
bmNvZGVyIDw8IG1fazQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlv
bmFsPFJlZjxGRUNvbXBvc2l0ZT4+IEZFQ29tcG9zaXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbXBvc2l0ZU9wZXJhdGlvblR5cGU+IHR5cGU7Cisg
ICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGsxOworICAgIGRlY29kZXIgPj4g
azE7CisgICAgaWYgKCFrMSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0
ZDo6b3B0aW9uYWw8ZmxvYXQ+IGsyOworICAgIGRlY29kZXIgPj4gazI7CisgICAgaWYgKCFrMikK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+
IGszOworICAgIGRlY29kZXIgPj4gazM7CisgICAgaWYgKCFrMykKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGs0OworICAgIGRlY29kZXIg
Pj4gazQ7CisgICAgaWYgKCFrNCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHJldHVybiBGRUNvbXBvc2l0ZTo6Y3JlYXRlKCp0eXBlLCAqazEsICprMiwgKmszLCAqazQpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdGlvblR5cGU+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpDb21wb3Np
dGVPcGVyYXRpb25UeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9S
X1VOS05PV04sCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9SX09WRVIsCisg
ICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9SX0lOLAorICAgICAgICBXZWJDb3Jl
OjpGRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRF
X09QRVJBVE9SX0FUT1AsCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9SX1hP
UiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFUT1JfQVJJVEhNRVRJQywKKyAg
ICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFUT1JfTElHSFRFUgorICAgID47Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZG
RUNUKEZFQ29tcG9zaXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRleCBlMWExOWNjZjRjNDMw
Mzc5NDNhMzVkOGYxNGMxNzY1NWE1YmVlYmYzLi43NTQxZjNlNGVkYThhM2Q3OWE3NDJlY2IwMGVj
NGRkNTRlNzcyNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtMzgsNyArMzgsNyBAQCBl
bnVtIGNsYXNzIEVkZ2VNb2RlVHlwZSB7CiAKIGNsYXNzIEZFQ29udm9sdmVNYXRyaXggOiBwdWJs
aWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFQ29udm9sdmVNYXRy
aXg+IGNyZWF0ZShjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLCBmbG9hdCBkaXZpc29yLCBmbG9h
dCBiaWFzLCBjb25zdCBJbnRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBFZGdlTW9kZVR5cGUsIGNvbnN0
IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wgcHJlc2VydmVBbHBoYSwgY29uc3Qg
VmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVmPEZFQ29udm9sdmVNYXRyaXg+IGNyZWF0ZShjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLCBm
bG9hdCBkaXZpc29yLCBmbG9hdCBiaWFzLCBjb25zdCBJbnRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBF
ZGdlTW9kZVR5cGUsIGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wgcHJl
c2VydmVBbHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KTsKIAogICAgIElu
dFNpemUga2VybmVsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fa2VybmVsU2l6ZTsgfQogICAgIHZv
aWQgc2V0S2VybmVsU2l6ZShjb25zdCBJbnRTaXplJik7CkBAIC02NCw2ICs2NCw5IEBAIHB1Ymxp
YzoKICAgICBib29sIHByZXNlcnZlQWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3ByZXNlcnZlQWxw
aGE7IH0KICAgICBib29sIHNldFByZXNlcnZlQWxwaGEoYm9vbCk7CiAKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFQ29udm9sdmVNYXRyaXg+
PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQ29udm9sdmVNYXRyaXgoY29u
c3QgSW50U2l6ZSYga2VybmVsU2l6ZSwgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywgY29uc3Qg
SW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50JiBr
ZXJuZWxVbml0TGVuZ3RoLCBib29sIHByZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9hdD4m
IGtlcm5lbE1hdHJpeCk7CiAKQEAgLTgzLDYgKzg2LDgwIEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PGZsb2F0PiBtX2tlcm5lbE1hdHJpeDsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2
b2lkIEZFQ29udm9sdmVNYXRyaXg6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorewor
ICAgIGVuY29kZXIgPDwgbV9rZXJuZWxTaXplOworICAgIGVuY29kZXIgPDwgbV9kaXZpc29yOwor
ICAgIGVuY29kZXIgPDwgbV9iaWFzOworICAgIGVuY29kZXIgPDwgbV90YXJnZXRPZmZzZXQ7Cisg
ICAgZW5jb2RlciA8PCBtX2VkZ2VNb2RlOworICAgIGVuY29kZXIgPDwgbV9rZXJuZWxVbml0TGVu
Z3RoOworICAgIGVuY29kZXIgPDwgbV9wcmVzZXJ2ZUFscGhhOworICAgIGVuY29kZXIgPDwgbV9r
ZXJuZWxNYXRyaXg7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFs
PFJlZjxGRUNvbnZvbHZlTWF0cml4Pj4gRkVDb252b2x2ZU1hdHJpeDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxJbnRTaXplPiBrZXJuZWxTaXplOworICAg
IGRlY29kZXIgPj4ga2VybmVsU2l6ZTsKKyAgICBpZiAoIWtlcm5lbFNpemUpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkaXZpc29yOwor
ICAgIGRlY29kZXIgPj4gZGl2aXNvcjsKKyAgICBpZiAoIWRpdmlzb3IpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBiaWFzOworICAgIGRl
Y29kZXIgPj4gYmlhczsKKyAgICBpZiAoIWJpYXMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEludFBvaW50PiB0YXJnZXRPZmZzZXQ7CisgICAgZGVj
b2RlciA+PiB0YXJnZXRPZmZzZXQ7CisgICAgaWYgKCF0YXJnZXRPZmZzZXQpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEVkZ2VNb2RlVHlwZT4gZWRn
ZU1vZGU7CisgICAgZGVjb2RlciA+PiBlZGdlTW9kZTsKKyAgICBpZiAoIWVkZ2VNb2RlKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50
PiBrZXJuZWxVbml0TGVuZ3RoOworICAgIGRlY29kZXIgPj4ga2VybmVsVW5pdExlbmd0aDsKKyAg
ICBpZiAoIWtlcm5lbFVuaXRMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHByZXNlcnZlQWxwaGE7CisgICAgZGVjb2RlciA+PiBw
cmVzZXJ2ZUFscGhhOworICAgIGlmICgha2VybmVsVW5pdExlbmd0aCkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4ga2VybmVs
TWF0cml4OworICAgIGRlY29kZXIgPj4ga2VybmVsTWF0cml4OworICAgIGlmICgha2VybmVsTWF0
cml4KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFQ29udm9s
dmVNYXRyaXg6OmNyZWF0ZSgqa2VybmVsU2l6ZSwgKmRpdmlzb3IsICpiaWFzLCAqdGFyZ2V0T2Zm
c2V0LCAqZWRnZU1vZGUsICprZXJuZWxVbml0TGVuZ3RoLCAqcHJlc2VydmVBbHBoYSwgV1RGTW92
ZSgqa2VybmVsTWF0cml4KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RWRnZU1v
ZGVUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29y
ZTo6RWRnZU1vZGVUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZTo6VW5rbm93
biwKKyAgICAgICAgV2ViQ29yZTo6RWRnZU1vZGVUeXBlOjpEdXBsaWNhdGUsCisgICAgICAgIFdl
YkNvcmU6OkVkZ2VNb2RlVHlwZTo6V3JhcCwKKyAgICAgICAgV2ViQ29yZTo6RWRnZU1vZGVUeXBl
OjpOb25lCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb252b2x2ZU1hdHJpeCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGln
aHRpbmcuaAppbmRleCAzMDI0ZDY1MjFiMzlkNDJjYTRhMjBlNzU3N2Q5NDE0MWZlZjIwMWE3Li5h
MmQxMjU4ZTNhZDY3YzViOWI0ZmFjMmQ0NWMyMjE4OWE2OGQwOGRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VM
aWdodGluZy5oCkBAIC0zNywxMCArMzcsMTggQEAgcHVibGljOgogCiAgICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0
aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVEaWZmdXNlTGlnaHRpbmc+PiBkZWNvZGUoRGVjb2Rl
ciYpOworCiBwcml2YXRlOgogICAgIEZFRGlmZnVzZUxpZ2h0aW5nKGNvbnN0IENvbG9yJiBsaWdo
dGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IGRpZmZ1c2VDb25zdGFudCwgZmxv
YXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZLCBSZWY8TGlnaHRT
b3VyY2U+JiYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8
UmVmPEZFRGlmZnVzZUxpZ2h0aW5nPj4gRkVEaWZmdXNlTGlnaHRpbmc6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHJldHVybiBGRUxpZ2h0aW5nOjpkZWNvZGU8RGVjb2RlciwgRkVE
aWZmdXNlTGlnaHRpbmc+KGRlY29kZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
IFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRURpZmZ1c2VMaWdodGluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
aXNwbGFjZW1lbnRNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEaXNwbGFjZW1lbnRNYXAuaAppbmRleCA1M2IwOWQ0ZDY2OGM3ZTIzYTMwMmQxZDMyZGYy
YzhlODg4MTUxOWJhLi4zODI2YWFjY2JmMjdjY2MyODFkYTdlNzQxYjE0NWVjMDBmZWFkNTFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlz
cGxhY2VtZW50TWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpc3BsYWNlbWVudE1hcC5oCkBAIC0zNyw3ICszNyw3IEBAIGVudW0gQ2hhbm5lbFNl
bGVjdG9yVHlwZSB7CiAKIGNsYXNzIEZFRGlzcGxhY2VtZW50TWFwIDogcHVibGljIEZpbHRlckVm
ZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRURpc3BsYWNlbWVudE1hcD4gY3JlYXRl
KENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVjdG9yVHlw
ZSB5Q2hhbm5lbFNlbGVjdG9yLCBmbG9hdCBzY2FsZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZjxGRURpc3BsYWNlbWVudE1hcD4gY3JlYXRlKENoYW5uZWxTZWxlY3RvclR5cGUgeENo
YW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB5Q2hhbm5lbFNlbGVjdG9yLCBmbG9h
dCBzY2FsZSk7CiAKICAgICBDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX3hDaGFubmVsU2VsZWN0b3I7IH0KICAgICBib29sIHNldFhDaGFubmVs
U2VsZWN0b3IoY29uc3QgQ2hhbm5lbFNlbGVjdG9yVHlwZSk7CkBAIC00OCw2ICs0OCw5IEBAIHB1
YmxpYzoKICAgICBmbG9hdCBzY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGU7IH0KICAgICBi
b29sIHNldFNjYWxlKGZsb2F0KTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVEaXNwbGFjZW1lbnRNYXA+PiBkZWNvZGUoRGVjb2RlciYp
OworCiBwcml2YXRlOgogICAgIEZFRGlzcGxhY2VtZW50TWFwKENoYW5uZWxTZWxlY3RvclR5cGUg
eENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB5Q2hhbm5lbFNlbGVjdG9yLCBm
bG9hdCk7CiAKQEAgLTY1LDYgKzY4LDUxIEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9zY2FsZTsK
IH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFRGlzcGxhY2VtZW50TWFwOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1feENoYW5u
ZWxTZWxlY3RvcjsKKyAgICBlbmNvZGVyIDw8IG1feUNoYW5uZWxTZWxlY3RvcjsKKyAgICBlbmNv
ZGVyIDw8IG1fc2NhbGU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlv
bmFsPFJlZjxGRURpc3BsYWNlbWVudE1hcD4+IEZFRGlzcGxhY2VtZW50TWFwOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENoYW5uZWxTZWxlY3RvclR5cGU+
IHhDaGFubmVsU2VsZWN0b3I7CisgICAgZGVjb2RlciA+PiB4Q2hhbm5lbFNlbGVjdG9yOworICAg
IGlmICgheENoYW5uZWxTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8Q2hhbm5lbFNlbGVjdG9yVHlwZT4geUNoYW5uZWxTZWxlY3RvcjsK
KyAgICBkZWNvZGVyID4+IHlDaGFubmVsU2VsZWN0b3I7CisgICAgaWYgKCF5Q2hhbm5lbFNlbGVj
dG9yKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxm
bG9hdD4gc2NhbGU7CisgICAgZGVjb2RlciA+PiBzY2FsZTsKKyAgICBpZiAoIXNjYWxlKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFRGlzcGxhY2VtZW50TWFw
OjpjcmVhdGUoKnhDaGFubmVsU2VsZWN0b3IsICp5Q2hhbm5lbFNlbGVjdG9yLCAqc2NhbGUpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNoYW5uZWxTZWxlY3RvclR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpDaGFubmVsU2Vs
ZWN0b3JUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkNIQU5ORUxfVU5LTk9XTiwKKyAgICAgICAg
V2ViQ29yZTo6Q0hBTk5FTF9SLAorICAgICAgICBXZWJDb3JlOjpDSEFOTkVMX0csCisgICAgICAg
IFdlYkNvcmU6OkNIQU5ORUxfQiwKKyAgICAgICAgV2ViQ29yZTo6Q0hBTk5FTF9BCisgICAgPjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoRkVEaXNwbGFjZW1lbnRNYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAppbmRleCA1OGY2ZTc5NmM3
OTM5MTZhMTE2ZDI0NmE0MTU1NDhmZTQ2NmQwNzNjLi40YmZkNjA4NDhiMWE4MjQ3Mjg4NGFiYmQw
ODI0YjdhNzZlZDBkNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgRkVEcm9wU2hhZG93IDogcHVibGljIEZpbHRlckVm
ZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRURyb3BTaGFkb3c+IGNyZWF0ZShmbG9h
dCBzdGRYLCBmbG9hdCBzdGRZLCBmbG9hdCBkeCwgZmxvYXQgZHksIGNvbnN0IENvbG9yJiBzaGFk
b3dDb2xvciwgZmxvYXQgc2hhZG93T3BhY2l0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxGRURyb3BTaGFkb3c+IGNyZWF0ZShmbG9hdCBzdGRYLCBmbG9hdCBzdGRZLCBmbG9hdCBk
eCwgZmxvYXQgZHksIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgZmxvYXQgc2hhZG93T3BhY2l0
eSk7CiAKICAgICBmbG9hdCBzdGREZXZpYXRpb25YKCkgY29uc3QgeyByZXR1cm4gbV9zdGRYOyB9
CiAgICAgdm9pZCBzZXRTdGREZXZpYXRpb25YKGZsb2F0IHN0ZFgpIHsgbV9zdGRYID0gc3RkWDsg
fQpAQCAtNDcsNiArNDcsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgc2hhZG93T3BhY2l0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hhZG93T3BhY2l0eTsgfQogICAgIHZvaWQgc2V0U2hhZG93T3BhY2l0
eShmbG9hdCBzaGFkb3dPcGFjaXR5KSB7IG1fc2hhZG93T3BhY2l0eSA9IHNoYWRvd09wYWNpdHk7
IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxS
ZWY8RkVEcm9wU2hhZG93Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRURy
b3BTaGFkb3coZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgsIGZsb2F0IGR5LCBjb25z
dCBDb2xvciYgc2hhZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkpOwogCkBAIC02NSw3ICs2
OCw1NCBAQCBwcml2YXRlOgogICAgIENvbG9yIG1fc2hhZG93Q29sb3I7CiAgICAgZmxvYXQgbV9z
aGFkb3dPcGFjaXR5OwogfTsKLSAgICAKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
RkVEcm9wU2hhZG93OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNv
ZGVyIDw8IG1fc3RkWDsKKyAgICBlbmNvZGVyIDw8IG1fc3RkWTsKKyAgICBlbmNvZGVyIDw8IG1f
ZHg7CisgICAgZW5jb2RlciA8PCBtX2R5OworICAgIGVuY29kZXIgPDwgbV9zaGFkb3dDb2xvcjsK
KyAgICBlbmNvZGVyIDw8IG1fc2hhZG93T3BhY2l0eTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFRHJvcFNoYWRvdz4+IEZFRHJvcFNoYWRvdzo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc3RkWDsK
KyAgICBkZWNvZGVyID4+IHN0ZFg7CisgICAgaWYgKCFzdGRYKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc3RkWTsKKyAgICBkZWNvZGVy
ID4+IHN0ZFk7CisgICAgaWYgKCFzdGRZKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZHg7CisgICAgZGVjb2RlciA+PiBkeDsKKyAgICBp
ZiAoIWR4KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25h
bDxmbG9hdD4gZHk7CisgICAgZGVjb2RlciA+PiBkeTsKKyAgICBpZiAoIWR5KQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxDb2xvcj4gc2hhZG93Q29s
b3I7CisgICAgZGVjb2RlciA+PiBzaGFkb3dDb2xvcjsKKyAgICBpZiAoIXNoYWRvd0NvbG9yKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4g
c2hhZG93T3BhY2l0eTsKKyAgICBkZWNvZGVyID4+IHNoYWRvd09wYWNpdHk7CisgICAgaWYgKCFz
aGFkb3dPcGFjaXR5KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJu
IEZFRHJvcFNoYWRvdzo6Y3JlYXRlKCpzdGRYLCAqc3RkWSwgKmR4LCAqZHksICpzaGFkb3dDb2xv
ciwgKnNoYWRvd09wYWNpdHkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRURyb3BTaGFkb3cpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCmluZGV4IDhm
YzFkOTdhODMyMTY2MDI5ZmJlZjk5MjVjMmU1ZjdhYzY3MTI4NzQuLjBhNjVjNjgyMzQxMGVlZmJl
MDhlNjY5Mzc4MDhlMWE5N2FlNGY2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVGbG9vZCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8RkVGbG9vZD4gY3JlYXRlKGNvbnN0IENvbG9yJiBmbG9vZENv
bG9yLCBmbG9hdCBmbG9vZE9wYWNpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8
RkVGbG9vZD4gY3JlYXRlKGNvbnN0IENvbG9yJiBmbG9vZENvbG9yLCBmbG9hdCBmbG9vZE9wYWNp
dHkpOwogCiAgICAgY29uc3QgQ29sb3ImIGZsb29kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2Zs
b29kQ29sb3I7IH0KICAgICBib29sIHNldEZsb29kQ29sb3IoY29uc3QgQ29sb3ImKTsKQEAgLTQz
LDYgKzQzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3BlcmF0aW5nQ29sb3JTcGFjZShjb25z
dCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmKSBvdmVycmlkZSB7IH0KICNlbmRpZgogCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUZsb29kPj4g
ZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUZsb29kKGNvbnN0IENvbG9yJiBm
bG9vZENvbG9yLCBmbG9hdCBmbG9vZE9wYWNpdHkpOwogCkBAIC01Niw2ICs1OSwyOSBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1fZmxvb2RPcGFjaXR5OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KK3ZvaWQgRkVGbG9vZDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBtX2Zsb29kQ29sb3I7CisgICAgZW5jb2RlciA8PCBtX2Zsb29kT3BhY2l0
eTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFRmxv
b2Q+PiBGRUZsb29kOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlv
bmFsPENvbG9yPiBmbG9vZENvbG9yOworICAgIGRlY29kZXIgPj4gZmxvb2RDb2xvcjsKKyAgICBp
ZiAoIWZsb29kQ29sb3IpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGZsb2F0PiBmbG9vZE9wYWNpdHk7CisgICAgZGVjb2RlciA+PiBmbG9vZE9wYWNp
dHk7CisgICAgaWYgKCFmbG9vZE9wYWNpdHkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICByZXR1cm4gRkVGbG9vZDo6Y3JlYXRlKCpmbG9vZENvbG9yLCAqZmxvb2RPcGFjaXR5
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0ZJTFRFUl9FRkZFQ1QoRkVGbG9vZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAppbmRleCA4NzE4NTNkZjQ5
MTIwNDQ3ODk4YzhiYjUyNWZiNDA0ZGZkNWYzMTU5Li45NTY3YTJmMDRiY2U5MjA1NWEzN2U2Y2I1
Y2QwOGFmNGVlN2EyMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCkBAIC0yOSw3ICsyOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVHYXVzc2lhbkJsdXIgOiBwdWJsaWMgRmlsdGVy
RWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFR2F1c3NpYW5CbHVyPiBjcmVhdGUo
ZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVUeXBlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPEZFR2F1c3NpYW5CbHVyPiBjcmVhdGUoZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVU
eXBlKTsKIAogICAgIGZsb2F0IHN0ZERldmlhdGlvblgoKSBjb25zdCB7IHJldHVybiBtX3N0ZFg7
IH0KICAgICB2b2lkIHNldFN0ZERldmlhdGlvblgoZmxvYXQpOwpAQCAtNDQsNiArNDQsOSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXplKEZs
b2F0U2l6ZSBzdGREZXZpYXRpb24pOwogICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0ZU91dHNl
dFNpemUoRmxvYXRTaXplIHN0ZERldmlhdGlvbik7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFR2F1c3NpYW5CbHVyPj4gZGVjb2RlKERl
Y29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUdhdXNzaWFuQmx1cihmbG9hdCB4LCBmbG9hdCB5
LCBFZGdlTW9kZVR5cGUpOwogCkBAIC02Miw2ICs2NSwzNSBAQCBwcml2YXRlOgogICAgIEVkZ2VN
b2RlVHlwZSBtX2VkZ2VNb2RlOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
RkVHYXVzc2lhbkJsdXI6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbV9zdGRYOworICAgIGVuY29kZXIgPDwgbV9zdGRZOworICAgIGVuY29kZXIgPDwg
bV9lZGdlTW9kZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8
UmVmPEZFR2F1c3NpYW5CbHVyPj4gRkVHYXVzc2lhbkJsdXI6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN0ZFg7CisgICAgZGVjb2RlciA+PiBz
dGRYOworICAgIGlmICghc3RkWCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN0ZFk7CisgICAgZGVjb2RlciA+PiBzdGRZOworICAgIGlm
ICghc3RkWSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9u
YWw8RWRnZU1vZGVUeXBlPiBlZGdlTW9kZTsKKyAgICBkZWNvZGVyID4+IGVkZ2VNb2RlOworICAg
IGlmICghZWRnZU1vZGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1
cm4gRkVHYXVzc2lhbkJsdXI6OmNyZWF0ZSgqc3RkWCwgKnN0ZFksICplZGdlTW9kZSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJf
RUZGRUNUKEZFR2F1c3NpYW5CbHVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCBkZTBiMzg2YTExYzcxNThjNTM4
YmNiNGE4MDJjN2M4Y2YwYjU2ODcyLi4zMWMyYWFhYmQzYzViMThjMGRjYjYwMjE5ODliMWEwYjE2
ZDc3MTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTGlnaHRpbmcuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAKICAgICBjb25z
dCBMaWdodFNvdXJjZSYgbGlnaHRTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX2xpZ2h0U291cmNl
LmdldCgpOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2RlciwgY2xhc3MgQ2xhc3NOYW1l
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8Q2xhc3NOYW1lPj4gZGVjb2RlKERlY29kZXImKTsK
KwogcHJvdGVjdGVkOgogICAgIEZFTGlnaHRpbmcoVHlwZSwgY29uc3QgQ29sb3ImIGxpZ2h0aW5n
Q29sb3IsIGZsb2F0IHN1cmZhY2VTY2FsZSwgZmxvYXQgZGlmZnVzZUNvbnN0YW50LCBmbG9hdCBz
cGVjdWxhckNvbnN0YW50LCBmbG9hdCBzcGVjdWxhckV4cG9uZW50LCBmbG9hdCBrZXJuZWxVbml0
TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFksIFJlZjxMaWdodFNvdXJjZT4mJik7CiAK
QEAgLTc3LDQgKzgwLDU5IEBAIHByb3RlY3RlZDoKICAgICBSZWY8TGlnaHRTb3VyY2U+IG1fbGln
aHRTb3VyY2U7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUxpZ2h0aW5n
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fbGln
aHRpbmdDb2xvcjsKKyAgICBlbmNvZGVyIDw8IG1fc3VyZmFjZVNjYWxlOworICAgIGVuY29kZXIg
PDwgbV9kaWZmdXNlQ29uc3RhbnQ7CisgICAgZW5jb2RlciA8PCBtX3NwZWN1bGFyQ29uc3RhbnQ7
CisgICAgZW5jb2RlciA8PCBtX3NwZWN1bGFyRXhwb25lbnQ7CisgICAgZW5jb2RlciA8PCBtX2tl
cm5lbFVuaXRMZW5ndGhYOworICAgIGVuY29kZXIgPDwgbV9rZXJuZWxVbml0TGVuZ3RoWTsKKyAg
ICAvLyBGSVhNRTogZW5jb2RlIG1fbGlnaHRTb3VyY2UuCit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXIsIGNsYXNzIENsYXNzTmFtZT4KK3N0ZDo6b3B0aW9uYWw8UmVmPENsYXNzTmFtZT4+IEZF
TGlnaHRpbmc6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8
Q29sb3I+IGxpZ2h0aW5nQ29sb3I7CisgICAgZGVjb2RlciA+PiBsaWdodGluZ0NvbG9yOworICAg
IGlmICghbGlnaHRpbmdDb2xvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN1cmZhY2VTY2FsZTsKKyAgICBkZWNvZGVyID4+IHN1cmZh
Y2VTY2FsZTsKKyAgICBpZiAoIXN1cmZhY2VTY2FsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGRpZmZ1c2VDb25zdGFudDsKKyAgICBk
ZWNvZGVyID4+IGRpZmZ1c2VDb25zdGFudDsKKyAgICBpZiAoIWRpZmZ1c2VDb25zdGFudCkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNw
ZWN1bGFyQ29uc3RhbnQ7CisgICAgZGVjb2RlciA+PiBzcGVjdWxhckNvbnN0YW50OworICAgIGlm
ICghc3BlY3VsYXJDb25zdGFudCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNwZWN1bGFyRXhwb25lbnQ7CisgICAgZGVjb2RlciA+PiBz
cGVjdWxhckV4cG9uZW50OworICAgIGlmICghc3BlY3VsYXJFeHBvbmVudCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGtlcm5lbFVuaXRM
ZW5ndGhYOworICAgIGRlY29kZXIgPj4ga2VybmVsVW5pdExlbmd0aFg7CisgICAgaWYgKCFrZXJu
ZWxVbml0TGVuZ3RoWCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8ZmxvYXQ+IGtlcm5lbFVuaXRMZW5ndGhZOworICAgIGRlY29kZXIgPj4ga2VybmVs
VW5pdExlbmd0aFk7CisgICAgaWYgKCFrZXJuZWxVbml0TGVuZ3RoWSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIEZJWE1FOiBkZWNvZGUgbV9saWdodFNvdXJjZS4KKyAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNw
cAppbmRleCA5MjNkM2U5ZTVmYWZkMGUwNDc4M2YzMGZkYTE4N2FhNmEyYjY3NjU5Li45NTliNDhh
YmUwODY4MTZjMzU4ZTNjODY0OWExOTNiYjBjZWVlZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKQEAgLTI5LDEzICsy
OSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGRU1lcmdlPiBGRU1lcmdlOjpj
cmVhdGUoKQorUmVmPEZFTWVyZ2U+IEZFTWVyZ2U6OmNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkVm
ZmVjdElucHV0cykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRU1lcmdlKCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEZFTWVyZ2UobnVtYmVyT2ZFZmZlY3RJbnB1dHMpKTsKIH0K
IAotRkVNZXJnZTo6RkVNZXJnZSgpCitGRU1lcmdlOjpGRU1lcmdlKHVuc2lnbmVkIG51bWJlck9m
RWZmZWN0SW5wdXRzKQogICAgIDogRmlsdGVyRWZmZWN0KEZpbHRlckVmZmVjdDo6VHlwZTo6RkVN
ZXJnZSkKKyAgICAsIG1fbnVtYmVyT2ZFZmZlY3RJbnB1dHMobnVtYmVyT2ZFZmZlY3RJbnB1dHMp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNZXJnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmgKaW5kZXggNjRlZDRhNzdiMWUwNzNlMGM2MWRkNTUzZjAwODIwYjFmMGZiNjcx
OC4uODNiMGYxZjQ0NWZkYTE4NzdjMWY3MzllMTFhZjc2ZmY4OGE5NTY4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKQEAgLTI4
LDE2ICsyOCwzOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFTWVyZ2UgOiBwdWJs
aWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFTWVyZ2U+IGNyZWF0
ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVNZXJnZT4gY3JlYXRlKHVuc2ln
bmVkIG51bWJlck9mRWZmZWN0SW5wdXRzKTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVNZXJnZT4+IGRlY29kZShEZWNvZGVyJik7CiAK
IHByaXZhdGU6Ci0gICAgRkVNZXJnZSgpOworICAgIEZFTWVyZ2UodW5zaWduZWQgbnVtYmVyT2ZF
ZmZlY3RJbnB1dHMpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+
IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6
OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVw
cmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKworICAgIHVuc2lnbmVkIG1fbnVtYmVy
T2ZFZmZlY3RJbnB1dHM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRU1l
cmdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1f
bnVtYmVyT2ZFZmZlY3RJbnB1dHM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6
Om9wdGlvbmFsPFJlZjxGRU1lcmdlPj4gRkVNZXJnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbnVtYmVyT2ZFZmZlY3RJbnB1dHM7Cisg
ICAgZGVjb2RlciA+PiBudW1iZXJPZkVmZmVjdElucHV0czsKKyAgICBpZiAoIW51bWJlck9mRWZm
ZWN0SW5wdXRzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZF
TWVyZ2U6OmNyZWF0ZSgqbnVtYmVyT2ZFZmZlY3RJbnB1dHMpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRU1lcmdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU1vcnBob2xvZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVNb3JwaG9sb2d5LmgKaW5kZXggMjJhMTUyMTFkZmExNmZiZDIwZjhhMGMxMDNiZmIwNzNmODIx
NDBjYi4uODI1YmU5ZTRkZTc5N2Q2NjMxODc2Y2U5MWEzZWU5YTdhM2RkNmI4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3ku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhv
bG9neS5oCkBAIC0zNCw3ICszNCw3IEBAIGVudW0gY2xhc3MgTW9ycGhvbG9neU9wZXJhdG9yVHlw
ZSB7CiAKIGNsYXNzIEZFTW9ycGhvbG9neSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8RkVNb3JwaG9sb2d5PiBjcmVhdGUoTW9ycGhvbG9neU9wZXJhdG9y
VHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxGRU1vcnBob2xvZ3k+IGNyZWF0ZShNb3JwaG9sb2d5T3BlcmF0b3JUeXBlLCBm
bG9hdCByYWRpdXNYLCBmbG9hdCByYWRpdXNZKTsKIAogICAgIE1vcnBob2xvZ3lPcGVyYXRvclR5
cGUgbW9ycGhvbG9neU9wZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9v
bCBzZXRNb3JwaG9sb2d5T3BlcmF0b3IoTW9ycGhvbG9neU9wZXJhdG9yVHlwZSk7CkBAIC00NSw2
ICs0NSw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9y
YWRpdXNZOyB9CiAgICAgYm9vbCBzZXRSYWRpdXNZKGZsb2F0KTsKIAorICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVNb3JwaG9sb2d5Pj4gZGVj
b2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRU1vcnBob2xvZ3koTW9ycGhvbG9neU9w
ZXJhdG9yVHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CiAKQEAgLTYxLDYgKzY0
LDQ5IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9yYWRpdXNZOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgRkVNb3JwaG9sb2d5OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdHlwZTsKKyAgICBlbmNvZGVyIDw8IG1fcmFkaXVz
WDsKKyAgICBlbmNvZGVyIDw8IG1fcmFkaXVzWTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFTW9ycGhvbG9neT4+IEZFTW9ycGhvbG9neTo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxNb3JwaG9sb2d5T3BlcmF0
b3JUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiByYWRp
dXNYOworICAgIGRlY29kZXIgPj4gcmFkaXVzWDsKKyAgICBpZiAoIXJhZGl1c1gpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiByYWRpdXNZ
OworICAgIGRlY29kZXIgPj4gcmFkaXVzWTsKKyAgICBpZiAoIXJhZGl1c1kpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVNb3JwaG9sb2d5OjpjcmVhdGUoKnR5
cGUsICpyYWRpdXNYLCAqcmFkaXVzWSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
TW9ycGhvbG9neU9wZXJhdG9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CisgICAgICAgIFdlYkNvcmU6Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGUsCisKKyAgICAgICAgV2Vi
Q29yZTo6TW9ycGhvbG9neU9wZXJhdG9yVHlwZTo6VW5rbm93biwKKyAgICAgICAgV2ViQ29yZTo6
TW9ycGhvbG9neU9wZXJhdG9yVHlwZTo6RXJvZGUsCisgICAgICAgIFdlYkNvcmU6Ok1vcnBob2xv
Z3lPcGVyYXRvclR5cGU6OkRpbGF0ZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFTW9ycGhvbG9neSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZz
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQu
aAppbmRleCAxMGViMzNjOTRmOThiN2RjYTM2NzUxYzZmODhmMTY5ODE2NTk5MGY4Li42YmExN2Zl
ZmY2MjE0N2M5NzVmYzdlNThlNmZmMzA0NDM1MTM0YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCkBAIC0yOCw3ICsyOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVPZmZzZXQgOiBwdWJsaWMgRmlsdGVy
RWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFT2Zmc2V0PiBjcmVhdGUoZmxvYXQg
ZHgsIGZsb2F0IGR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFT2Zmc2V0PiBj
cmVhdGUoZmxvYXQgZHgsIGZsb2F0IGR5KTsKIAogICAgIGZsb2F0IGR4KCkgY29uc3QgeyByZXR1
cm4gbV9keDsgfQogICAgIHZvaWQgc2V0RHgoZmxvYXQpOwpAQCAtMzYsNiArMzYsOSBAQCBwdWJs
aWM6CiAgICAgZmxvYXQgZHkoKSBjb25zdCB7IHJldHVybiBtX2R5OyB9CiAgICAgdm9pZCBzZXRE
eShmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVmPEZFT2Zmc2V0Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBG
RU9mZnNldChmbG9hdCBkeCwgZmxvYXQgZHkpOwogCkBAIC01MSw2ICs1NCwyOSBAQCBwcml2YXRl
OgogICAgIGZsb2F0IG1fZHk7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBG
RU9mZnNldDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBtX2R4OworICAgIGVuY29kZXIgPDwgbV9keTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFT2Zmc2V0Pj4gRkVPZmZzZXQ6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR4OworICAgIGRlY29kZXIg
Pj4gZHg7CisgICAgaWYgKCFkeCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR5OworICAgIGRlY29kZXIgPj4gZHk7CisgICAgaWYgKCFk
eSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRU9mZnNldDo6
Y3JlYXRlKCpkeCwgKmR5KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGln
aHRpbmcuaAppbmRleCA1YzdlODFjZTMwNDcyMWFlODFiMTQzNjQ0Yjc2Mzg5YjczMTk5MzNkLi44
YTZmYzRiMDM2MDc3MDg4ZWRhZTIzM2ZmNDdmYWRjYjQ1OTNlNmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmgKQEAgLTM4LDEwICszOCwxOCBAQCBwdWJsaWM6CiAKICAgICBXVEY6OlRleHRT
dHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50
YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRVNwZWN1bGFyTGlnaHRpbmc+PiBkZWNvZGUoRGVj
b2RlciYpOworCiBwcml2YXRlOgogICAgIEZFU3BlY3VsYXJMaWdodGluZyhjb25zdCBDb2xvciYg
bGlnaHRpbmdDb2xvciwgZmxvYXQgc3VyZmFjZVNjYWxlLCBmbG9hdCBzcGVjdWxhckNvbnN0YW50
LCBmbG9hdCBzcGVjdWxhckV4cG9uZW50LCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwgZmxvYXQg
a2VybmVsVW5pdExlbmd0aFksIFJlZjxMaWdodFNvdXJjZT4mJik7CiB9OwogCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVTcGVjdWxhckxpZ2h0aW5nPj4gRkVT
cGVjdWxhckxpZ2h0aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
RkVMaWdodGluZzo6ZGVjb2RlPERlY29kZXIsIEZFU3BlY3VsYXJMaWdodGluZz4oZGVjb2Rlcik7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19G
SUxURVJfRUZGRUNUKEZFU3BlY3VsYXJMaWdodGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCmluZGV4IGZiMjY1M2FmODIzZTczZWZh
MmFhOTU2OGQ2YjY1MThjZmY2YzkwNGEuLjdkMzk3OTg1Nzg4MWRhNzI1NzQxYmI5OWUwY2E2NGM0
NDRhODAwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVUaWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVRpbGUuaApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
CiBjbGFzcyBGRVRpbGUgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEZFVGlsZT4gY3JlYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxG
RVRpbGU+IGNyZWF0ZSgpOwogCiBwcml2YXRlOgogICAgIEZFVGlsZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgK
aW5kZXggMTc1ZmZmNzQyODI2ZmNhYzIyY2RmM2I4MzZkMmM5Yjk3MDgwMTA5Ni4uYjhlOTNiYzAx
YjI1YjQyOTBjNGExNTQzOWVlYWM0NzIwZjQ4OWU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCkBAIC0zNyw3
ICszNyw3IEBAIGVudW0gY2xhc3MgVHVyYnVsZW5jZVR5cGUgewogCiBjbGFzcyBGRVR1cmJ1bGVu
Y2UgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFVHVy
YnVsZW5jZT4gY3JlYXRlKFR1cmJ1bGVuY2VUeXBlLCBmbG9hdCBiYXNlRnJlcXVlbmN5WCwgZmxv
YXQgYmFzZUZyZXF1ZW5jeVksIGludCBudW1PY3RhdmVzLCBmbG9hdCBzZWVkLCBib29sIHN0aXRj
aFRpbGVzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFVHVyYnVsZW5jZT4gY3Jl
YXRlKFR1cmJ1bGVuY2VUeXBlLCBmbG9hdCBiYXNlRnJlcXVlbmN5WCwgZmxvYXQgYmFzZUZyZXF1
ZW5jeVksIGludCBudW1PY3RhdmVzLCBmbG9hdCBzZWVkLCBib29sIHN0aXRjaFRpbGVzKTsKIAog
ICAgIFR1cmJ1bGVuY2VUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICBi
b29sIHNldFR5cGUoVHVyYnVsZW5jZVR5cGUpOwpAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzdGl0Y2hUaWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RpdGNoVGlsZXM7IH0KICAg
ICBib29sIHNldFN0aXRjaFRpbGVzKGJvb2wpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRVR1cmJ1bGVuY2U+PiBkZWNvZGUoRGVjb2Rl
ciYpOworCiBwcml2YXRlOgogICAgIEZFVHVyYnVsZW5jZShUdXJidWxlbmNlVHlwZSwgZmxvYXQg
YmFzZUZyZXF1ZW5jeVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0YXZlcywgZmxv
YXQgc2VlZCwgYm9vbCBzdGl0Y2hUaWxlcyk7CiAKQEAgLTc0LDYgKzc3LDY3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3N0aXRjaFRpbGVzOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
K3ZvaWQgRkVUdXJidWxlbmNlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IG1fdHlwZTsKKyAgICBlbmNvZGVyIDw8IG1fYmFzZUZyZXF1ZW5jeVg7Cisg
ICAgZW5jb2RlciA8PCBtX2Jhc2VGcmVxdWVuY3lZOworICAgIGVuY29kZXIgPDwgbV9udW1PY3Rh
dmVzOworICAgIGVuY29kZXIgPDwgbV9zZWVkOworICAgIGVuY29kZXIgPDwgbV9zdGl0Y2hUaWxl
czsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFVHVy
YnVsZW5jZT4+IEZFVHVyYnVsZW5jZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
c3RkOjpvcHRpb25hbDxUdXJidWxlbmNlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7
CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gYmFzZUZyZXF1ZW5jeVg7CisgICAgZGVjb2RlciA+PiBiYXNlRnJl
cXVlbmN5WDsKKyAgICBpZiAoIWJhc2VGcmVxdWVuY3lYKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gYmFzZUZyZXF1ZW5jeVk7CisgICAg
ZGVjb2RlciA+PiBiYXNlRnJlcXVlbmN5WTsKKyAgICBpZiAoIWJhc2VGcmVxdWVuY3lZKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxpbnQ+IG51bU9j
dGF2ZXM7CisgICAgZGVjb2RlciA+PiBudW1PY3RhdmVzOworICAgIGlmICghbnVtT2N0YXZlcykK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+
IHNlZWQ7CisgICAgZGVjb2RlciA+PiBzZWVkOworICAgIGlmICghc2VlZCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc3RpdGNoVGlsZXM7
CisgICAgZGVjb2RlciA+PiBzdGl0Y2hUaWxlczsKKyAgICBpZiAoIXN0aXRjaFRpbGVzKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFVHVyYnVsZW5jZTo6Y3Jl
YXRlKCp0eXBlLCAqYmFzZUZyZXF1ZW5jeVgsICpiYXNlRnJlcXVlbmN5WSwgKm51bU9jdGF2ZXMs
ICpzZWVkLCAqc3RpdGNoVGlsZXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlR1
cmJ1bGVuY2VUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
V2ViQ29yZTo6VHVyYnVsZW5jZVR5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6VHVyYnVsZW5jZVR5
cGU6OlVua25vd24sCisgICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlOjpGcmFjdGFsTm9p
c2UsCisgICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlOjpUdXJidWxlbmNlCisgICAgPjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoRkVUdXJidWxlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwCmluZGV4IDUyZGMzNWQ2ZDYxZDM4ODM1ZDQwY2U2
MzNkZTA2ZjY2NDUzZWQxZWIuLjU3OTlhMDM2NWUxNTBmMzQ1N2VkYmExMjJlOTk5YWVmYjg2ZTQz
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlci5jcHAKQEAgLTk4LDkgKzk4LDEwIEBAIGJvb2wgRmlsdGVyOjpjbGFtcEZpbHRlclJl
Z2lvbklmTmVlZGVkKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEZpbHRlckltYWdl
PiBGaWx0ZXI6OmFwcGx5KEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSkKK1JlZlB0cjxGaWx0ZXJJ
bWFnZT4gRmlsdGVyOjphcHBseShJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlSW1hZ2VSZWN0KQogewogICAgIHNldFNvdXJjZUltYWdlKHNvdXJjZUltYWdl
KTsKKyAgICBzZXRTb3VyY2VJbWFnZVJlY3Qoc291cmNlSW1hZ2VSZWN0KTsKIAogICAgIGF1dG8g
cmVzdWx0ID0gYXBwbHkoKTsKICAgICBpZiAoIXJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCmluZGV4IGNhMWQ5NTM0YzdmOGIx
ODA2ZDgxYTVkMjAyN2Y4YzQ5MmFlMjI4M2EuLmMzM2VkMDgyOGIxM2FhNzYxMmMxNGEzYzgzNmYx
ZGVhOTE4MjA4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRT
b3VyY2VJbWFnZShSZWZQdHI8SW1hZ2VCdWZmZXI+JiYgc291cmNlSW1hZ2UpIHsgbV9zb3VyY2VJ
bWFnZSA9IFdURk1vdmUoc291cmNlSW1hZ2UpOyB9CiAKICAgICBDbGlwT3BlcmF0aW9uIGNsaXBP
cGVyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NsaXBPcGVyYXRpb247IH0KKyAgICB2b2lkIHNl
dENsaXBPcGVyYXRpb24oQ2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0aW9uKSB7IG1fY2xpcE9wZXJh
dGlvbiA9IGNsaXBPcGVyYXRpb247IH0KIAogICAgIHZpcnR1YWwgRmxvYXRTaXplIHJlc29sdmVk
U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0IHsgcmV0dXJuIHNpemU7IH0KIApAQCAt
NzIsOSArNzMsMTAgQEAgcHVibGljOgogICAgIGJvb2wgY2xhbXBGaWx0ZXJSZWdpb25JZk5lZWRl
ZCgpOwogICAgIAogICAgIHZpcnR1YWwgUmVmUHRyPEZpbHRlckltYWdlPiBhcHBseSgpID0gMDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KEltYWdlQnVmZmVy
KiBzb3VyY2VJbWFnZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEZpbHRlckltYWdlPiBh
cHBseShJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1h
Z2VSZWN0KTsKIAogcHJvdGVjdGVkOgorICAgIHVzaW5nIEZpbHRlckZ1bmN0aW9uOjpGaWx0ZXJG
dW5jdGlvbjsKICAgICBGaWx0ZXIoRmlsdGVyOjpUeXBlLCBSZW5kZXJpbmdNb2RlLCBjb25zdCBG
bG9hdFNpemUmIGZpbHRlclNjYWxlLCBDbGlwT3BlcmF0aW9uID0gQ2xpcE9wZXJhdGlvbjo6SW50
ZXJzZWN0KTsKICAgICBGaWx0ZXIoRmlsdGVyOjpUeXBlLCBSZW5kZXJpbmdNb2RlLCBjb25zdCBG
bG9hdFNpemUmIGZpbHRlclNjYWxlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBmaWx0ZXJSZWdpb24sIENsaXBPcGVyYXRpb24gPSBDbGlwT3BlcmF0
aW9uOjpJbnRlcnNlY3QpOwogCkBAIC05MSwzICs5MywxNiBAQCBwcml2YXRlOgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGaWx0ZXI6OkNsaXBPcGVyYXRpb24+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXI6OkNsaXBPcGVy
YXRpb24sCisKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyOjpDbGlwT3BlcmF0aW9uOjpJbnRlcnNl
Y3QsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlcjo6Q2xpcE9wZXJhdGlvbjo6VW5pdGUKKyAgICA+
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCmluZGV4IGE3MzhhN2Qw
MjZkODhmZGQ0ODFmZmE5MDczMGFiZmUyNWE1YzY2N2IuLjMwMzNkYjAyMTBkM2UxZjEyM2I0Yjli
NWQ3OTM1YjFhYzg0ZDBiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCkBAIC0yNyw3ICsyNyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU291cmNlR3JhcGhpYyA6IHB1YmxpYyBGaWx0ZXJF
ZmZlY3QgewogcHVibGljOiAgICAgICAgCi0gICAgc3RhdGljIFJlZjxTb3VyY2VHcmFwaGljPiBj
cmVhdGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNvdXJjZUdyYXBoaWM+IGNy
ZWF0ZSgpOwogCiAgICAgc3RhdGljIEF0b21TdHJpbmcgZWZmZWN0TmFtZSgpIHsgcmV0dXJuIEZp
bHRlckVmZmVjdDo6c291cmNlR3JhcGhpY05hbWUoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DU1NGaWx0ZXIuY3BwCmluZGV4IGM5MTlkOTgwNTQzYjc4OWY1YjllNTllOWEyNjE1Y2E3OTBl
N2ZiZGQuLmE5NzhiOWFlZjBlYmIwYWJhMzU3MDA4ZWVhYjUzN2NlNWMyMDUxMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCkBAIC01Miw2ICs1MiwxMSBAQCBSZWZQdHI8
Q1NTRmlsdGVyPiBDU1NGaWx0ZXI6OmNyZWF0ZShjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvcGVy
YXRpb25zLCBSZW5kZXJpbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0ZpbHRlcihyZW5k
ZXJpbmdNb2RlLCBzY2FsZUZhY3RvciwgY2xpcE9wZXJhdGlvbiwgaGFzRmlsdGVyVGhhdE1vdmVz
UGl4ZWxzLCBoYXNGaWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9yaWdpbikp
OwogfQogCitSZWZQdHI8Q1NTRmlsdGVyPiBDU1NGaWx0ZXI6OmNyZWF0ZShWZWN0b3I8UmVmPEZp
bHRlckZ1bmN0aW9uPj4mJiBmdW5jdGlvbnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
U1NGaWx0ZXIoV1RGTW92ZShmdW5jdGlvbnMpKSk7Cit9CisKIENTU0ZpbHRlcjo6Q1NTRmlsdGVy
KFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgc2NhbGVGYWN0b3IsIENsaXBPcGVy
YXRpb24gY2xpcE9wZXJhdGlvbiwgYm9vbCBoYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMsIGJvb2wg
aGFzRmlsdGVyVGhhdFNob3VsZEJlUmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW4pCiAgICAgOiBG
aWx0ZXIoRmlsdGVyOjpUeXBlOjpDU1NGaWx0ZXIsIHJlbmRlcmluZ01vZGUsIEZsb2F0U2l6ZSB7
IHNjYWxlRmFjdG9yLCBzY2FsZUZhY3RvciB9LCBjbGlwT3BlcmF0aW9uKQogICAgICwgbV9oYXNG
aWx0ZXJUaGF0TW92ZXNQaXhlbHMoaGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxzKQpAQCAtNTksNiAr
NjQsMTIgQEAgQ1NTRmlsdGVyOjpDU1NGaWx0ZXIoUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
LCBmbG9hdCBzY2FsZUZhY3RvciwgQ2xpcE9wZXJhdGkKIHsKIH0KIAorQ1NTRmlsdGVyOjpDU1NG
aWx0ZXIoVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiYgZnVuY3Rpb25zKQorICAgIDogRmls
dGVyKFR5cGU6OkNTU0ZpbHRlcikKKyAgICAsIG1fZnVuY3Rpb25zKFdURk1vdmUoZnVuY3Rpb25z
KSkKK3sKK30KKwogc3RhdGljIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGNyZWF0ZUJsdXJFZmZlY3Qo
Y29uc3QgQmx1ckZpbHRlck9wZXJhdGlvbiYgYmx1ck9wZXJhdGlvbiwgRmlsdGVyOjpDbGlwT3Bl
cmF0aW9uIGNsaXBPcGVyYXRpb24pCiB7CiAgICAgZmxvYXQgc3RkRGV2aWF0aW9uID0gZmxvYXRW
YWx1ZUZvckxlbmd0aChibHVyT3BlcmF0aW9uLnN0ZERldmlhdGlvbigpLCAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9DU1NGaWx0ZXIuaAppbmRleCA3M2E0ZTg3YThmNTVkYTgyMmI4MmU5ZGU5MzI2
MmQ1ZDg3OGUyNzRkLi45OTIxNzdmZjA0ZDg4MWQ2YzAyYTRhNjdmMDIyMWVlYmVhZjE0YzIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCkBAIC00Myw2ICs0Myw5IEBAIGNsYXNz
IENTU0ZpbHRlciBmaW5hbCA6IHB1YmxpYyBGaWx0ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8Q1NTRmlsdGVyPiBjcmVhdGUoY29u
c3QgRmlsdGVyT3BlcmF0aW9ucyYsIFJlbmRlcmluZ01vZGUsIGZsb2F0IHNjYWxlRmFjdG9yID0g
MSwgQ2xpcE9wZXJhdGlvbiA9IENsaXBPcGVyYXRpb246OkludGVyc2VjdCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZlB0cjxDU1NGaWx0ZXI+IGNyZWF0ZShWZWN0b3I8UmVmPEZpbHRl
ckZ1bmN0aW9uPj4mJik7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmPEZpbHRlckZ1bmN0aW9uPj4m
IGZ1bmN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25zOyB9CiAKICAgICB2b2lkIHNl
dFNvdXJjZUltYWdlUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKICAgICBib29sIGJ1aWxkRmlsdGVy
RnVuY3Rpb25zKFJlbmRlckVsZW1lbnQmLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJik7CkBAIC02
Miw2ICs2NSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDU1NGaWx0ZXIoUmVuZGVyaW5n
TW9kZSwgZmxvYXQgc2NhbGVGYWN0b3IsIENsaXBPcGVyYXRpb24sIGJvb2wgaGFzRmlsdGVyVGhh
dE1vdmVzUGl4ZWxzLCBib29sIGhhc0ZpbHRlclRoYXRTaG91bGRCZVJlc3RyaWN0ZWRCeVNlY3Vy
aXR5T3JpZ2luKTsKKyAgICBDU1NGaWx0ZXIoVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiYp
OwogCiAjaWYgVVNFKENPUkVfSU1BR0UpCiAgICAgYm9vbCBzdXBwb3J0c0NvcmVJbWFnZVJlbmRl
cmluZygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJGaWx0ZXJzLmNwcAppbmRleCBhZTcxMjI0NGY5Yzg0MmQxODc2YjIwOTlhNmMzYzkwNzc3
MmFjMGQxLi5jYWRmZjQxNjYzZDlmY2VjYWQ1YzQ1YjVmODc0NzkzMGRiODAzMjNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcApAQCAtMjA3
LDcgKzIwNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJGaWx0ZXJzOjphcHBseUZpbHRlckVmZmVjdChH
cmFwaGljc0NvbnRleHQmIGRlc3RpbmF0aW9uQ29udGV4dCkKIAogICAgIGF1dG8mIGZpbHRlciA9
ICptX2ZpbHRlcjsKIAotICAgIGRlc3RpbmF0aW9uQ29udGV4dC5kcmF3RmlsdGVyZWRJbWFnZUJ1
ZmZlcihtX3NvdXJjZUltYWdlLmdldCgpLCBmaWx0ZXIpOworICAgIGRlc3RpbmF0aW9uQ29udGV4
dC5kcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihtX3NvdXJjZUltYWdlLmdldCgpLCBmaWx0ZXIuc291
cmNlSW1hZ2VSZWN0KCksIGZpbHRlcik7CiAgICAgZmlsdGVyLmNsZWFySW50ZXJtZWRpYXRlUmVz
dWx0cygpOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZpbHRlcnMsIHN0cmVhbSA8PCAiUmVuZGVy
TGF5ZXJGaWx0ZXJzICIgPDwgdGhpcyA8PCAiIGFwcGx5RmlsdGVyRWZmZWN0IGRvbmVcbiIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlRmlsdGVyLmNwcAppbmRleCBiMDMwYzBmNjY1NjE1MWMxMTFhMjFlOTlkMzAwMTIyMTM2NmY0
MDVkLi42YjYxYjJjODY2NWQzZjNhYjEyMTA4MWE5MGQ3MDZmMzhhMDA3ZjMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmls
dGVyLmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6
OnBvc3RBcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBHcmFwaGljCiAKICAg
ICBpZiAoIWZpbHRlckRhdGEuYm91bmRhcmllcy5pc0VtcHR5KCkpIHsKICAgICAgICAgZmlsdGVy
RGF0YS5zdGF0ZSA9IEZpbHRlckRhdGE6OkJ1aWx0OwotICAgICAgICBjb250ZXh0LT5kcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcihmaWx0ZXJEYXRhLnNvdXJjZUdyYXBoaWNCdWZmZXIuZ2V0KCksICpm
aWx0ZXJEYXRhLmZpbHRlcik7CisgICAgICAgIGNvbnRleHQtPmRyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyKGZpbHRlckRhdGEuc291cmNlR3JhcGhpY0J1ZmZlci5nZXQoKSwgZmlsdGVyRGF0YS5kcmF3
aW5nUmVnaW9uLCAqZmlsdGVyRGF0YS5maWx0ZXIpOwogICAgIH0KIAogICAgIGZpbHRlckRhdGEu
c291cmNlR3JhcGhpY0J1ZmZlciA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVy
Z2VFbGVtZW50LmNwcAppbmRleCBmYjQ5M2U1OWRkODJiYzY5YWQ3OTFiMzc1Y2U4YTgyOTJjZDdj
ODFmLi44NTczMzdiYzNjOTA3NTViNWNmOGQxYWIxMWNhOGVmZDMwYzM2MjRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgUmVmUHRy
PEZpbHRlckVmZmVjdD4gU1ZHRkVNZXJnZUVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIm
IGZpbHRlckJ1aWxkZXIpIGMKICAgICBpZiAobWVyZ2VJbnB1dHMuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gZWZmZWN0ID0gRkVNZXJnZTo6Y3JlYXRlKCk7
CisgICAgYXV0byBlZmZlY3QgPSBGRU1lcmdlOjpjcmVhdGUobWVyZ2VJbnB1dHMuc2l6ZSgpKTsK
ICAgICBlZmZlY3QtPmlucHV0RWZmZWN0cygpID0gV1RGTW92ZShtZXJnZUlucHV0cyk7CiAgICAg
cmV0dXJuIGVmZmVjdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBhZGE1
NGQ0MThhMGI2MDI1NDZiMTdlNTdjNjZkZDBjZDY5MDMwZDEzLi41ZTIzZGQyYWZmMjhmZWE0OTc5
ZDY5Y2ZhZTNhZDQ4OWZjYTZlZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBA
IC0yMjAsNiArMjIwLDIzIEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZW5kQ2xp
cFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluCiAgICAgZHJhd2luZ0Nv
bnRleHQoKS5jbGlwVG9JbWFnZUJ1ZmZlcigqbWFza0ltYWdlQnVmZmVyLCBkZXN0aW5hdGlvbik7
CiB9CiAKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUlt
YWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIElQQzo6Rmls
dGVyUmVmZXJlbmNlIGZpbHRlclJlZmVyZW5jZSkKK3sKKyAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+
IHNvdXJjZUltYWdlOworCisgICAgaWYgKHNvdXJjZUltYWdlSWRlbnRpZmllcikgeworICAgICAg
ICBzb3VyY2VJbWFnZSA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWRJbWFnZUJ1ZmZlcih7ICpzb3Vy
Y2VJbWFnZUlkZW50aWZpZXIsIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIgfSk7CisgICAgICAgIGlm
ICghc291cmNlSW1hZ2UpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBmaWx0ZXIgPSBm
aWx0ZXJSZWZlcmVuY2UudGFrZUZpbHRlcigpOworCisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlz
dDo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2VJZGVudGlmaWVyLCBzb3VyY2VJ
bWFnZVJlY3QsIFdURk1vdmUoZmlsdGVyKSksIHNvdXJjZUltYWdlLmdldCgpKTsKK30KKwogdm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3R2x5cGhzKERpc3BsYXlMaXN0OjpEcmF3
R2x5cGhzJiYgaXRlbSkKIHsKICAgICBhdXRvIGZvbnRJZGVudGlmaWVyID0gaXRlbS5mb250SWRl
bnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNTk4MmNiYWViODdlNjYw
YzViYWI3N2E2ZDdhMjk1NzAzNTdiYmY5Zi4uNjk2ZDZjYjE2Mjc2OTkwZWI0ZWMwNzgyYzQwZDNk
N2IwYTgwOTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0zNyw2ICszNywxMCBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBGaWx0ZXJSZWZlcmVuY2U7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwpAQCAtNzcsNiArODEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmKTsKICAgICB2b2lkIGVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKTsKICAgICB2b2lkIGRyYXdHbHlwaHMoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMmJik7CisgICAgdm9pZCBkcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNv
dXJjZUltYWdlUmVjdCwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UpOwogICAgIHZvaWQgZHJhd0ltYWdl
QnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zJik7CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGlu
Z09wdGlvbnMmKTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
aW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0m
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgppbmRleCA1YzE0MDkzYTNiOWFiYTBh
MWJlNzIwNjg3ZWZiNDY2OGI1OTVhMzYxLi4wOWM0MDk3ZGViZWIzNDMxYzhlZjI4NDRlN2FmOTUy
ZjQ4NWVhYzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5p
bgpAQCAtNDcsNiArNDcsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhX
ZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb24sIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JT
cGFjZSBjb2xvclNwYWNlKQogICAgIEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhXZWJDb3JlOjpG
bG9hdFJlY3QgZGVzdGluYXRpb24pCiAgICAgRHJhd0dseXBocyhXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0dseXBocyBpdGVtKQorICAgIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QsIElQQzo6RmlsdGVy
UmVmZXJlbmNlIGZpbHRlcikKICAgICBEcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRS
ZWN0IGRlc3RpbmF0aW9uUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHNyY1JlY3QsIHN0cnVjdCBX
ZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQogICAgIERyYXdOYXRpdmVJbWFn
ZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGbG9hdFNpemUgaW1hZ2VTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdFJlY3Qs
IFdlYkNvcmU6OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGlu
Z09wdGlvbnMgb3B0aW9ucykKICAgICBEcmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFNpemUgaW1hZ2VT
aXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0aWxl
UmVjdCwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSwgV2ViQ29yZTo6RmxvYXRQ
b2ludCBwaGFzZSwgV2ViQ29yZTo6RmxvYXRTaXplIHNwYWNpbmcsIHN0cnVjdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4
IGZjYzcyYmYyMGEyZmIyYzZiOTliYTBlZTZmODIwNmE0Y2FiNmZmYzAuLmIwZGY1MzQzNDQ5Nzgy
ZmE0Y2UzMWJjZjMzMmQ4ZmM1YmNjOGIxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkZp
bHRlclJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZl
ci5oIgpAQCAtMzE4LDYgKzMxOSwzMyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Omdl
dFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aQogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlKSk7CiB9CiAKK3ZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Z2V0RmlsdGVyZWRJbWFnZUZvckltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkZpbHRlclJlZmVyZW5jZSYmIGZpbHRlclJl
ZmVyZW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKKworICAgIGF1dG8gZmlsdGVyID0gZmlsdGVyUmVmZXJlbmNlLnRha2VGaWx0ZXIoKTsKKwor
ICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKKyAgICBbJl0oKSB7CisgICAgICAg
IGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZm
ZXIoeyBpZGVudGlmaWVyLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJ
ZGVudGlmaWVyKCkgfSk7CisgICAgICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIGF1dG8gaW1hZ2UgPSBpbWFnZUJ1ZmZlci0+ZmlsdGVyZWRJbWFnZShm
aWx0ZXIpOworICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBhdXRvIGltYWdlU2l6ZSA9IGltYWdlLT5zaXplKCk7CisgICAgICAgIGF1dG8gYml0bWFwID0g
U2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoSW50U2l6ZShpbWFnZVNpemUpLCB7IGlt
YWdlQnVmZmVyLT5jb2xvclNwYWNlKCkgfSk7CisgICAgICAgIGlmICghYml0bWFwKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBhdXRvIGNvbnRleHQgPSBiaXRtYXAtPmNyZWF0ZUdyYXBo
aWNzQ29udGV4dCgpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZSgqaW1hZ2UsIEZsb2F0UG9pbnQoKSk7CisgICAg
ICAgIGJpdG1hcC0+Y3JlYXRlSGFuZGxlKGhhbmRsZSk7CisgICAgfSgpOworICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUoaGFuZGxlKSk7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Y2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaGFu
ZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbmF0aXZlSW1hZ2VSZXNvdXJjZUlkZW50
aWZpZXIpCiB7CiAgICAgLy8gSW1tZWRpYXRlbHkgdHVybiB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyICh3aGljaCBpcyBlcnJvci1wcm9uZSkgdG8gYSBRdWFsaWZpZWRSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA5ODliYzkzMGY0ODZl
MWM2ZGU3ZDE2NmE0MzRhYjVlZTA2YWM5ZWY1Li5lMzU3MTVkZDE3ZmVlNjQzNDViMjI2MmQ2OGNl
YmVhNGQ3NGFiOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTU4LDYgKzU4LDEwIEBAIGVu
dW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKIH0KIAorbmFtZXNwYWNlIElQQyB7Citj
bGFzcyBGaWx0ZXJSZWZlcmVuY2U7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwpAQCAtMTA4LDYgKzExMiw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
c3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlv
biwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyYmKT4mJik7CiAgICAgdm9pZCBnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8dWludDhfdD4mJik+JiYpOwogICAgIHZvaWQgZ2V0U2hhcmVhYmxlQml0bWFwRm9ySW1h
Z2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
cmVzZXJ2ZVJlc29sdXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmJik+JiYpOworICAgIHZvaWQgZ2V0RmlsdGVyZWRJbWFnZUZvckltYWdlQnVmZmVy
KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgSVBDOjpGaWx0ZXJSZWZlcmVu
Y2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYmKT4m
Jik7CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlJiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGNh
Y2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCBhMTQyZjQ4OTY2
ZjVjNDk3NTk0NTY1NDc3MmM3OWMzMTk3NmY1M2RjLi5lN2MxYmZhNjdmNDMzY2Y0NGM4ZTFjMmVm
ODljM2U2NmE2OWY5ZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5p
bgpAQCAtMzEsNiArMzEsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIE5v
dFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBHZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXIoU3RyaW5n
IG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgZW51bTp1aW50OF90IFdl
YkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24sIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIC0+
IChTdHJpbmcgdXJsU3RyaW5nKSBTeW5jaHJvbm91cwogICAgIEdldERhdGFGb3JJbWFnZUJ1ZmZl
cihTdHJpbmcgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KSAtPiAoVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9ub3VzCiAgICAgR2V0U2hhcmVhYmxl
Qml0bWFwRm9ySW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IGltYWdlQnVmZmVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uIHBy
ZXNlcnZlUmVzb2x1dGlvbikgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFu
ZGxlKSBTeW5jaHJvbm91cyBOb3RTdHJlYW1FbmNvZGFibGVSZXBseQorICAgIEdldEZpbHRlcmVk
SW1hZ2VGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
aW1hZ2VCdWZmZXIsIElQQzo6RmlsdGVyUmVmZXJlbmNlIGZpbHRlcikgLT4gKFdlYktpdDo6U2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlKSBTeW5jaHJvbm91cyBOb3RTdHJlYW1FbmNvZGFi
bGVSZXBseQogICAgIENhY2hlTmF0aXZlSW1hZ2UoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpIE5vdFN0cmVhbUVuY29kYWJsZQogICAgIENhY2hlRm9udChJ
UEM6OkZvbnRSZWZlcmVuY2UgZm9udCkgTm90U3RyZWFtRW5jb2RhYmxlCiAgICAgRGVsZXRlQWxs
Rm9udHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVm
ZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44MTg0MGJkNzBjNWNiNjQwY2RiZTZkODUwOTUzNWIyZTI4ODY2ZjA2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNl
LmgKQEAgLTAsMCArMSw0MDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPFdlYkNvcmUvQ1NTRmlsdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUJsZW5kLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9GRUNvbG9yTWF0cml4Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUNv
bXBvbmVudFRyYW5zZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUNvbXBvc2l0ZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRkVDb252b2x2ZU1hdHJpeC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVE
aWZmdXNlTGlnaHRpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFRGlzcGxhY2VtZW50TWFwLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GRURyb3BTaGFkb3cuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZF
Rmxvb2QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFR2F1c3NpYW5CbHVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GRU1lcmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRU1vcnBob2xvZ3kuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZFT2Zmc2V0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRVNwZWN1bGFy
TGlnaHRpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFVGlsZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRkVUdXJidWxlbmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0ZpbHRlckVmZmVjdFZlY3Rvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU1ZHRmls
dGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VHcmFwaGljLmg+CisKK25hbWVzcGFjZSBJ
UEMgeworCitjbGFzcyBGaWx0ZXJSZWZlcmVuY2UgeworcHVibGljOgorICAgIEZpbHRlclJlZmVy
ZW5jZShSZWY8V2ViQ29yZTo6RmlsdGVyPiYmIGZpbHRlcikKKyAgICAgICAgOiBtX2ZpbHRlcihX
VEZNb3ZlKGZpbHRlcikpCisgICAgeworICAgIH0KKworICAgIFJlZjxXZWJDb3JlOjpGaWx0ZXI+
IHRha2VGaWx0ZXIoKSB7IHJldHVybiBXVEZNb3ZlKG1fZmlsdGVyKTsgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZpbHRlclJlZmVyZW5jZT4g
ZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiBzdGF0aWMgdm9pZCBlbmNvZGVGaWx0ZXJFZmZlY3QoY29uc3QgV2ViQ29yZTo6RmlsdGVyRWZm
ZWN0JiwgRW5jb2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQ
dHI8V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiBkZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2RlciYsIFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlKTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHN0YXRpYyB2b2lkIGVuY29kZVNWR0ZpbHRlcihjb25zdCBXZWJDb3JlOjpTVkdGaWx0ZXIm
LCBFbmNvZGVyJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxX
ZWJDb3JlOjpTVkdGaWx0ZXI+IGRlY29kZVNWR0ZpbHRlcihEZWNvZGVyJik7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGVDU1NGaWx0ZXIoY29uc3QgV2Vi
Q29yZTo6Q1NTRmlsdGVyJiwgRW5jb2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6Q1NTRmlsdGVyPiBkZWNvZGVDU1NGaWx0ZXIoRGVjb2Rl
ciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlRmls
dGVyKGNvbnN0IFdlYkNvcmU6OkZpbHRlciYsIEVuY29kZXImKTsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gZGVjb2RlRmlsdGVyKERl
Y29kZXImLCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSk7CisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXI+IGRlY29kZUZpbHRlcihE
ZWNvZGVyJik7CisKKyAgICBSZWY8V2ViQ29yZTo6RmlsdGVyPiBtX2ZpbHRlcjsKK307CisKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlRmlsdGVy
RWZmZWN0KGNvbnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYgZWZmZWN0LCBFbmNvZGVyJiBlbmNv
ZGVyKQoreworICAgIGVuY29kZXIgPDwgZWZmZWN0LmZpbHRlclR5cGUoKTsKKyAgICBlbmNvZGVy
IDw8IGVmZmVjdC5vcGVyYXRpbmdDb2xvclNwYWNlKCk7CisKKyAgICBzd2l0Y2ggKGVmZmVjdC5m
aWx0ZXJUeXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVC
bGVuZDoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVCbGVuZD4oZWZmZWN0KS5lbmNvZGUo
ZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZl
Y3Q6OlR5cGU6OkZFQ29sb3JNYXRyaXg6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFQ29s
b3JNYXRyaXg+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAg
IGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvbmVudFRyYW5zZmVyOgor
ICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyPihlZmZlY3QpLmVu
Y29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRl
ckVmZmVjdDo6VHlwZTo6RkVDb21wb3NpdGU6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZF
Q29tcG9zaXRlPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb252b2x2ZU1hdHJpeDoKKyAg
ICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVDb252b2x2ZU1hdHJpeD4oZWZmZWN0KS5lbmNvZGUo
ZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZl
Y3Q6OlR5cGU6OkZFRGlmZnVzZUxpZ2h0aW5nOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpG
RURpZmZ1c2VMaWdodGluZz4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRGlzcGxhY2VtZW50
TWFwOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRURpc3BsYWNlbWVudE1hcD4oZWZmZWN0
KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpG
aWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRHJvcFNoYWRvdzoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29y
ZTo6RkVEcm9wU2hhZG93PihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVGbG9vZDoKKyAgICAg
ICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVGbG9vZD4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZF
R2F1c3NpYW5CbHVyOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cj4o
ZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFSW1hZ2U6CisgICAgICAgIC8vIEZJWE1FOiBlbmNv
ZGUgRkVJbWFnZS4KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVm
ZmVjdDo6VHlwZTo6RkVNZXJnZToKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVNZXJnZT4o
ZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFTW9ycGhvbG9neToKKyAgICAgICAgZG93bmNhc3Q8
V2ViQ29yZTo6RkVNb3JwaG9sb2d5PihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVPZmZzZXQ6
CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFT2Zmc2V0PihlZmZlY3QpLmVuY29kZShlbmNv
ZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
VHlwZTo6RkVTcGVjdWxhckxpZ2h0aW5nOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRVNw
ZWN1bGFyTGlnaHRpbmc+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsK
KworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVRpbGU6CisgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVHVyYnVs
ZW5jZToKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVUdXJidWxlbmNlPihlZmZlY3QpLmVu
Y29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRl
ckVmZmVjdDo6VHlwZTo6U291cmNlQWxwaGE6CisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZl
Y3Q6OlR5cGU6OlNvdXJjZUdyYXBoaWM6CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorUmVmUHRyPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4gRmlsdGVyUmVmZXJlbmNl
OjpkZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6RmlsdGVyRnVu
Y3Rpb246OlR5cGUgZmlsdGVyVHlwZSkKK3sKKyAgICBpZiAoIShmaWx0ZXJUeXBlID49IFdlYkNv
cmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUZpcnN0ICYmIGZpbHRlclR5cGUgPD0gV2ViQ29y
ZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFTGFzdCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U+IG9w
ZXJhdGluZ0NvbG9yU3BhY2U7CisgICAgZGVjb2RlciA+PiBvcGVyYXRpbmdDb2xvclNwYWNlOwor
ICAgIGlmICghb3BlcmF0aW5nQ29sb3JTcGFjZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBzdGQ6Om9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q+PiBlZmZlY3Q7CisK
KyAgICBzd2l0Y2ggKGZpbHRlclR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVCbGVuZDoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVCbGVuZDo6ZGVj
b2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpUeXBlOjpGRUNvbG9yTWF0cml4OgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpG
RUNvbG9yTWF0cml4OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXI6CisgICAg
ICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OmRlY29kZShkZWNvZGVy
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlw
ZTo6RkVDb21wb3NpdGU6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpk
ZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkZFQ29udm9sdmVNYXRyaXg6CisgICAgICAgIGVmZmVjdCA9IFdlYkNv
cmU6OkZFQ29udm9sdmVNYXRyaXg6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaWZmdXNlTGlnaHRpbmc6
CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nOjpkZWNvZGUoZGVj
b2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6
OlR5cGU6OkZFRGlzcGxhY2VtZW50TWFwOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRURp
c3BsYWNlbWVudE1hcDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNh
c2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRURyb3BTaGFkb3c6CisgICAgICAgIGVm
ZmVjdCA9IFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUZsb29kOgor
ICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRUZsb29kOjpkZWNvZGUoZGVjb2Rlcik7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFR2F1
c3NpYW5CbHVyOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6ZGVj
b2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpUeXBlOjpGRUltYWdlOgorICAgICAgICAvLyBGSVhNRTogZGVjb2RlIEZFSW1hZ2Uu
CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6
OkZFTWVyZ2U6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFTWVyZ2U6OmRlY29kZShkZWNv
ZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
VHlwZTo6RkVNb3JwaG9sb2d5OgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRU1vcnBob2xv
Z3k6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6
OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVPZmZzZXQ6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6
OkZFT2Zmc2V0OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFU3BlY3VsYXJMaWdodGluZzoKKyAgICAgICAg
ZWZmZWN0ID0gV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpkZWNvZGUoZGVjb2Rlcik7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZF
VGlsZToKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVUaWxlOjpjcmVhdGUoKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVUdXJi
dWxlbmNlOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRVR1cmJ1bGVuY2U6OmRlY29kZShk
ZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6U291cmNlR3JhcGhpYzoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6U291cmNl
R3JhcGhpYzo6Y3JlYXRlKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpG
aWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhhOgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGlmIChlZmZlY3QpIHsKKyAgICAgICAg
KCplZmZlY3QpLT5zZXRPcGVyYXRpbmdDb2xvclNwYWNlKCpvcGVyYXRpbmdDb2xvclNwYWNlKTsK
KyAgICAgICAgcmV0dXJuIHsgKCplZmZlY3QpLnB0cigpIH07CisgICAgfQorCisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZpbHRlclJlZmVy
ZW5jZTo6ZW5jb2RlU1ZHRmlsdGVyKGNvbnN0IFdlYkNvcmU6OlNWR0ZpbHRlciYgZmlsdGVyLCBF
bmNvZGVyJiBlbmNvZGVyKQoreworICAgIC8vIEZJWE1FOiBFbmNvZGUgdGhlIFNWR0ZpbHRlci4K
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpTVkdGaWx0ZXI+
IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlU1ZHRmlsdGVyKERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgLy8gRklYTUU6IERlY29kZSB0aGUgU1ZHRmlsdGVyLgorICAgIHJldHVybiBudWxscHRyOwor
fQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6OmVuY29k
ZUNTU0ZpbHRlcihjb25zdCBXZWJDb3JlOjpDU1NGaWx0ZXImIGZpbHRlciwgRW5jb2RlciYgZW5j
b2RlcikKK3sKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5mdW5jdGlvbnMoKS5zaXplKCk7CisKKyAg
ICBmb3IgKGF1dG8mIGZ1bmN0aW9uIDogZmlsdGVyLmZ1bmN0aW9ucygpKSB7CisgICAgICAgIGlm
IChpczxXZWJDb3JlOjpTVkdGaWx0ZXI+KGZ1bmN0aW9uKSkgeworICAgICAgICAgICAgZW5jb2Rl
RmlsdGVyKGRvd25jYXN0PFdlYkNvcmU6OlNWR0ZpbHRlcj4oZnVuY3Rpb24uZ2V0KCkpLCBlbmNv
ZGVyKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlz
PFdlYkNvcmU6OkZpbHRlckVmZmVjdD4oZnVuY3Rpb24pKQorICAgICAgICAgICAgZW5jb2RlRmls
dGVyRWZmZWN0KGRvd25jYXN0PFdlYkNvcmU6OkZpbHRlckVmZmVjdD4oZnVuY3Rpb24uZ2V0KCkp
LCBlbmNvZGVyKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitSZWZQdHI8
V2ViQ29yZTo6Q1NTRmlsdGVyPiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUNTU0ZpbHRlcihEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBzaXplOworICAgIGRl
Y29kZXIgPj4gc2l6ZTsKKyAgICBpZiAoIXNpemUgfHwgISpzaXplKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIFZlY3RvcjxSZWY8V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb24+PiBmdW5j
dGlvbnM7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlPiBmaWx0ZXJUeXBl
OworICAgICAgICBkZWNvZGVyID4+IGZpbHRlclR5cGU7CisgICAgICAgIGlmICghZmlsdGVyVHlw
ZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGlmICgqZmlsdGVyVHlw
ZSA9PSBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U1ZHRmlsdGVyKSB7CisgICAgICAg
ICAgICBpZiAoYXV0byBmaWx0ZXIgPSBkZWNvZGVGaWx0ZXIoZGVjb2RlciwgKmZpbHRlclR5cGUp
KSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb25zLmFwcGVuZChmaWx0ZXIucmVsZWFzZU5vbk51
bGwoKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gZWZmZWN0ID0g
ZGVjb2RlRmlsdGVyRWZmZWN0KGRlY29kZXIsICpmaWx0ZXJUeXBlKTsKKyAgICAgICAgaWYgKCFl
ZmZlY3QpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBmdW5jdGlvbnMu
YXBwZW5kKGVmZmVjdC5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gV2Vi
Q29yZTo6Q1NTRmlsdGVyOjpjcmVhdGUoV1RGTW92ZShmdW5jdGlvbnMpKTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXIoY29u
c3QgV2ViQ29yZTo6RmlsdGVyJiBmaWx0ZXIsIEVuY29kZXImIGVuY29kZXIpCit7CisgICAgZW5j
b2RlciA8PCBmaWx0ZXIuZmlsdGVyVHlwZSgpOworICAgIGVuY29kZXIgPDwgZmlsdGVyLnJlbmRl
cmluZ01vZGUoKTsKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5maWx0ZXJTY2FsZSgpOworICAgIGVu
Y29kZXIgPDwgZmlsdGVyLmNsaXBPcGVyYXRpb24oKTsKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5m
aWx0ZXJSZWdpb24oKTsKKworICAgIGlmIChpczxXZWJDb3JlOjpDU1NGaWx0ZXI+KGZpbHRlcikp
CisgICAgICAgIGVuY29kZUNTU0ZpbHRlcihkb3duY2FzdDxXZWJDb3JlOjpDU1NGaWx0ZXI+KGZp
bHRlciksIGVuY29kZXIpOworICAgIGVsc2UgaWYgKGlzPFdlYkNvcmU6OlNWR0ZpbHRlcj4oZmls
dGVyKSkKKyAgICAgICAgZW5jb2RlU1ZHRmlsdGVyKGRvd25jYXN0PFdlYkNvcmU6OlNWR0ZpbHRl
cj4oZmlsdGVyKSwgZW5jb2Rlcik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitSZWZQ
dHI8V2ViQ29yZTo6RmlsdGVyPiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlcihEZWNvZGVy
JiBkZWNvZGVyLCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSBmaWx0ZXJUeXBlKQorewor
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nTW9kZT4gcmVuZGVyaW5nTW9kZTsK
KyAgICBkZWNvZGVyID4+IHJlbmRlcmluZ01vZGU7CisgICAgaWYgKCFyZW5kZXJpbmdNb2RlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRTaXplPiBmaWx0ZXJTY2FsZTsKKyAgICBkZWNvZGVyID4+IGZpbHRlclNjYWxlOworICAgIGlm
ICghZmlsdGVyU2NhbGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpGaWx0ZXI6OkNsaXBPcGVyYXRpb24+IGNsaXBPcGVyYXRpb247CisgICAg
ZGVjb2RlciA+PiBjbGlwT3BlcmF0aW9uOworICAgIGlmICghY2xpcE9wZXJhdGlvbikKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVj
dD4gZmlsdGVyUmVnaW9uOworICAgIGRlY29kZXIgPj4gZmlsdGVyUmVnaW9uOworICAgIGlmICgh
ZmlsdGVyUmVnaW9uKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJlZlB0cjxXZWJD
b3JlOjpGaWx0ZXI+IGZpbHRlcjsKKworICAgIGlmIChmaWx0ZXJUeXBlID09IFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpUeXBlOjpDU1NGaWx0ZXIpCisgICAgICAgIGZpbHRlciA9IGRlY29kZUNT
U0ZpbHRlcihkZWNvZGVyKTsKKyAgICBlbHNlIGlmIChmaWx0ZXJUeXBlID09IFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpUeXBlOjpTVkdGaWx0ZXIpCisgICAgICAgIGZpbHRlciA9IGRlY29kZVNW
R0ZpbHRlcihkZWNvZGVyKTsKKyAgICAKKyAgICBpZiAoZmlsdGVyKSB7CisgICAgICAgIGZpbHRl
ci0+c2V0UmVuZGVyaW5nTW9kZSgqcmVuZGVyaW5nTW9kZSk7CisgICAgICAgIGZpbHRlci0+c2V0
RmlsdGVyU2NhbGUoKmZpbHRlclNjYWxlKTsKKyAgICAgICAgZmlsdGVyLT5zZXRDbGlwT3BlcmF0
aW9uKCpjbGlwT3BlcmF0aW9uKTsKKyAgICAgICAgZmlsdGVyLT5zZXRGaWx0ZXJSZWdpb24oKmZp
bHRlclJlZ2lvbik7CisgICAgfQorCisgICAgcmV0dXJuIGZpbHRlcjsKK30KKwordGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpGaWx0ZXI+IEZpbHRlclJlZmVyZW5jZTo6
ZGVjb2RlRmlsdGVyKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZT4gZmlsdGVyVHlwZTsKKyAgICBkZWNvZGVyID4+IGZp
bHRlclR5cGU7CisgICAgaWYgKCFmaWx0ZXJUeXBlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBkZWNvZGVGaWx0ZXIoZGVjb2RlciwgKmZpbHRlclR5cGUpOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZUZpbHRlcihtX2ZpbHRlciwgZW5jb2Rl
cik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPEZpbHRlclJl
ZmVyZW5jZT4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBpZiAoYXV0byBmaWx0ZXIgPSBkZWNvZGVGaWx0ZXIoZGVjb2RlcikpCisgICAgICAgIHJldHVy
biB7IGZpbHRlci5yZWxlYXNlTm9uTnVsbCgpIH07CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
K30KKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCAyYzgzOWE5ZTliY2Q4ZTlmMTIxZGY4OTMwZmY0MmZjNjBjYjI3ZDBmLi4w
OTMwY2Y5MTdiYTc5MGU1NzVkODRiOTY5ZWFjMDU4MWY1MmY1MTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTI2Niw2ICsyNjYsNyBAQCBkZWYgdHlwZXNf
dGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgIHJldHVybiBmcm96ZW5zZXQo
WwogICAgICAgICAnQ1ZQaXhlbEJ1ZmZlclJlZicsCiAgICAgICAgICdJUEM6OkRhdGFSZWZlcmVu
Y2UnLAorICAgICAgICAnSVBDOjpGaWx0ZXJSZWZlcmVuY2UnLAogICAgICAgICAnSVBDOjpGb250
UmVmZXJlbmNlJywKICAgICAgICAgJ0lQQzo6U2VtYXBob3JlJywKICAgICAgICAgJ01hY2hTZW5k
UmlnaHQnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMTkyMDY5ZWNiN2ViNzA1YjAzNGQ4MDliNTc3MjUzOTAwMDAxYWQ2NC4uZmJjNGJi
YzRjYWEyYTE5NmNjYjlmNTRiNGY4ZWE0NDI2ZDk2ZGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OTQ4LDYgKzQ5NDgsNyBAQAog
CQk3MjAzNDQ5QTI2QTZDNDRDMDAwQTVGNTQgLyogTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyMDM0NDlCMjZBNkM0NzYwMDBBNUY1NCAvKiBSZW5kZXJpbmdV
cGRhdGVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdVcGRhdGVJRC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxhdGZvcm1S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjQ2OTYzQTI3
NUI3RTY3MDBBOTE1NkEgLyogRmlsdGVyUmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbHRl
clJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZERDI1M0E2
NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI2RDU2REUyNTNBNjQ4MTAwMDJFRjkwIC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NDYzLDYgKzc0NjQsNyBAQAogCQkJCUJDMDMyRDlF
MTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmggKi8sCiAJCQkJQkMwMzJEOUYxMEY0MzdEMTAw
NThDMTVBIC8qIEVuY29kZXIuY3BwICovLAogCQkJCUJDMDMyREEwMTBGNDM3RDEwMDU4QzE1QSAv
KiBFbmNvZGVyLmggKi8sCisJCQkJNzI0Njk2M0EyNzVCN0U2NzAwQTkxNTZBIC8qIEZpbHRlclJl
ZmVyZW5jZS5oICovLAogCQkJCTlCRDhBQjQ5MjU4MjBFNTIwMDUzODZGOCAvKiBGb250UmVmZXJl
bmNlLmggKi8sCiAJCQkJNDE1MUU1QzMxRkJCOTBBOTAwRTQ3RTJEIC8qIEZvcm1EYXRhUmVmZXJl
bmNlLmggKi8sCiAJCQkJQzBDRTcyQUMxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2Uu
aCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAppbmRl
eCA5NDIxZGQyMzhjYjZlYzYzZmUxYzA3ZDQ3MzYxY2IwYjY1ZmY0MGNiLi4zMmEzNDJkYmZiZGZh
N2YwYzM5YmM2MzZhNDc5MjAzMWFlMTc3NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAKKyNpbmNsdWRlICJGaWx0ZXJSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CkBAIC0xOTQsNiAr
MTk1LDExIEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRFbmRD
bGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSCiAgICAgc2VuZChNZXNzYWdlczo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGRlc3RpbmF0
aW9uKSk7CiB9CiAKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRE
cmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUlt
YWdlUmVjdCwgRmlsdGVyJiBmaWx0ZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2VJZGVu
dGlmaWVyLCBzb3VyY2VJbWFnZVJlY3QsIElQQzo6RmlsdGVyUmVmZXJlbmNlKFJlZjxGaWx0ZXI+
IHsgZmlsdGVyIH0pKSk7Cit9CisKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5
cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNlcywgdW5zaWduZWQg
Y291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSBt
b2RlKQogewogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRy
YXdHbHlwaHMoRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMgeyBmb250LCBnbHlwaHMsIGFkdmFuY2Vz
LCBjb3VudCwgbG9jYWxBbmNob3IsIG1vZGUgfSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5LmgKaW5kZXggNzFmZGI2M2RmNGFjODQ5NzQ3MjMyNjliN2YwM2Q5OTdi
ODEzOTg5ZC4uNmY3ODA5ZDVlZWUzMDJkMjIxOTM2Y2EwNTNiODczOTRjYmE0N2U1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCkBAIC05MCw2ICs5MCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCByZWNvcmRDbGlwUGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJiwg
V2ViQ29yZTo6V2luZFJ1bGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkQmVnaW5DbGlwVG9EcmF3
aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgV2ViQ29y
ZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZEVuZENsaXBU
b0RyYXdpbmdDb21tYW5kcyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKSBm
aW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBXZWJDb3Jl
OjpGaWx0ZXImKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29uc3QgV2ViQ29y
ZTo6Rm9udCYsIGNvbnN0IFdlYkNvcmU6OkdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBXZWJDb3Jl
OjpHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgbG9jYWxBbmNob3IsIFdlYkNvcmU6OkZvbnRTbW9vdGhpbmdNb2RlKSBmaW5hbDsK
ICAgICB2b2lkIHJlY29yZERyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdl
YkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3
TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMDk1NTdhNzViMGVkNGUxMGY1NmJiNDg5ZWYwM2Q3OGJl
YzNmYmFlMC4uOWYzYWQxMzYyNjJhOTJmZWQ1MGFmNTJiNWQyMTQyOTM5YTNiNDI0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTE5OCw2ICsxOTgsMTQgQEAgcHJvdGVjdGVkOgog
ICAgICAgICByZXR1cm4gYml0bWFwLT5jcmVhdGVJbWFnZSgpOwogICAgIH0KIAorICAgIFJlZlB0
cjxXZWJDb3JlOjpJbWFnZT4gZmlsdGVyZWRJbWFnZShXZWJDb3JlOjpGaWx0ZXImIGZpbHRlcikg
b3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChVTkxJS0VMWSghbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgZmx1c2hEcmF3
aW5nQ29udGV4dCgpOworICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHktPmdldEZpbHRlcmVkSW1hZ2UobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGZpbHRl
cik7CisgICAgfQorCiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0
UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIGRlc3RpbmF0aW9u
Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBmaW5hbAogICAg
IHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMmNkNTMxYzE5
NjE3MjJhN2UxN2RmZDcxMzAwM2VkYWE0NzNjN2JmMC4uNTAyNWE5NWU0ZGM4ZGQzMWEyZmIxNWIx
OGY1NzUwYTU1Mjg3NTEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcApAQCAtMjIzLDYgKzIyMywyMiBAQCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldFNoYXJlYWJsZUJpdG1hcChSZW5kZXJpbgogICAgIHJl
dHVybiBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5kbGUpOwogfQogCitSZWZQdHI8SW1hZ2U+
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0RmlsdGVyZWRJbWFnZShSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIsIEZpbHRlciYgZmlsdGVyKQoreworICAgIFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKKyAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5k
U3luYyhNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6R2V0RmlsdGVyZWRJbWFnZUZv
ckltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBJUEM6OkZpbHRlclJlZmVyZW5jZSB7IGZpbHRlciB9
KSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkdldEZpbHRlcmVkSW1hZ2VGb3JJ
bWFnZUJ1ZmZlcjo6UmVwbHkoaGFuZGxlKSwgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSwg
MV9zKTsKKyAgICBBU1NFUlRfVU5VU0VEKHNlbmRSZXN1bHQsIHNlbmRSZXN1bHQpOworCisgICAg
aWYgKGhhbmRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gYml0
bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaGFuZGxlKTsKKyAgICBpZiAoIWJpdG1hcCkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBiaXRtYXAtPmNyZWF0ZUltYWdlKCk7
Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZU5hdGl2ZUltYWdl
KGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgc2VuZFRvU3Ry
ZWFtKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDYWNoZU5hdGl2ZUltYWdlKGhh
bmRsZSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuaAppbmRleCAwOWM4OTEwN2FkOTdkYmE0MWJiYzMyMTAzYmFjYWQyOWMw
MTJlMmE2Li4zMGUxNjMxZThmOTY3YzA1OTQwNjcyMTFmODFjM2FmYTkwZDY3OTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlOworY2xhc3MgRmls
dGVyOwogY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgUGl4ZWxCdWZmZXI7CiAKQEAgLTkyLDYgKzkz
LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXIoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6
OlByZXNlcnZlUmVzb2x1dGlvbiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKICAgICBWZWN0b3I8dWludDhfdD4gZ2V0RGF0YUZvckltYWdlQnVmZmVyKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGdl
dFNoYXJlYWJsZUJpdG1hcChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBn
ZXRGaWx0ZXJlZEltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsdGVyJik7CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlJiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
ICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CiAgICAgdm9pZCBkZWxl
dGVBbGxGb250cygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGQxMGZjMmZmZWIyYjVkYmEwYzUxYjJiYWE3YzVhY2M1ZTBkNjg5OGIuLmIzODI4
NjJlMmZkYWIzZjFmYzhlZjg1ODc0YWUyYWEzZmI5ZDJiOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMi0w
NCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFBy
b2Nlc3NdIEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmlsdGVyRWZm
ZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4
NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcDoK
KwogMjAyMS0xMi0wMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBXZWIgY29udGVudCBwcm9jZXNzIHNvbWV0aW1lcyBjcmFzaGVzIHVuZGVy
IFdlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCmluZGV4IGI5ODZhMmE1
ODg4NDY1YmUxOTIwYTZlMDY2OGQ3MGRiMjQ5MDZlYWIuLmQyM2Y3ZTFlNzI5ZTA1NTQ1M2FjMWYw
NTNhMjM0NTMwMjk1Y2IyMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlz
dEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZXJhdG9yLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GaWx0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYWRpZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Jbk1lbW9yeURpc3BsYXlMaXN0Lmg+CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHND
Ry5jcHAKaW5kZXggZDg0NmMwMjVlMGRjZDhjYTgyOWI3MTI3M2RhZjFmNzA3ZTlkOTJkZC4uN2Ez
MjA3Zjk1YzYyN2ZlNjYyOWM5Mjc3NDRiNGVmMDNlNWUyZWMzZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHND
Ry5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRl
bXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVzb3VyY2VIZWFwLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
aWx0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYWRpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRDRy5oPgogCg==
</data>
<flag name="commit-queue"
          id="471307"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445983</attachid>
            <date>2021-12-05 01:18:38 -0800</date>
            <delta_ts>2021-12-05 11:32:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232844-20211205011837.patch</filename>
            <type>text/plain</type>
            <size>124166</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI3Mjk5NTM4MGYwNjk3
NGRlMDdjYjhhYzU4MzRjNWEzNzNlZTE5ZC4uZTNjZTdiYmY1OGNkNTY5ODAxMThlODkwMzA1MWMx
ODJiODA0OGE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0xMi0wNCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmlsdGVyRWZmZWN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgdGhlIGVuY29kaW5nIGFuZCBkZWNvZGluZyBmb3IgdGhlIEZpbHRlckVmZmVjdCBhbmQg
dGhlCisgICAgICAgIEZpbHRlciBvYmplY3RzLiBCZWNhdXNlIHRoZXNlIG9iamVjdHMgaGF2ZSBz
dXBlci1jbGFzc2VzLCB3ZSBhcmUgZ29pbmcKKyAgICAgICAgdG8gZG8gdGhlIGVuY29kaW5nIGFu
ZCBkZWNvZGluZyB0aHJvdWdoIGEgbmV3IElQQyBjbGFzcyBjYWxsZWQKKyAgICAgICAgRmlsdGVy
UmVmZXJlbmNlLgorCisgICAgICAgIFRoZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2YgdGhlc2Ug
Y2xhc3NlcyB3aWxsIGJlIG5lZWRlZCBpbiB0d28gY2FzZXM6CisKKyAgICAgICAgMSkgRGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcigpCisgICAgICAgIDIpIFJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmZpbHRlcmVkSW1hZ2UoKQorCisgICAgICAgIEEgZmV3IHRo
aW5ncyBoYXZlIG5vdCBiZSBkb25lIHRoaXMgcGF0Y2ggeWV0OgorCisgICAgICAgIDEpIExpZ2h0
U291cmNlIGhhcyBub3QgYmVlbiBlbmNvZGVkL2RlY29kZWQKKyAgICAgICAgMikgRkVMaWdodGlu
ZyBjbGFzc2VzIGhhdmUgbm90IGJlZW4gZW5jb2RlZC9kZWNvZGVkCisgICAgICAgIDMpIEZFSW1h
Z2UgaGFzIG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorICAgICAgICA0KSBTVkdGaWx0ZXIgaGFz
IG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3Qg
Y2hhbmdlIGFueSBiZWhhdmlvciBldmVuIGlmIHRoZSBHUFUgUHJvY2VzcyBmb3IgRE9NCisgICAg
ICAgIHJlbmRlcmluZyBpcyBlbmFibGVkLiBUaGUgc291cmNlSW1hZ2UgZm9yIHRoZSBmaWx0ZXIg
YW5kIHRoZSBmaWx0ZXIgaW1hZ2UKKyAgICAgICAgbmVlZCB0byBiZSBvZiB0eXBlIG9mIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkgdG8gdGhpcyBjb2RlIHRvIGJlIGNhbGxlZC4KKworICAgICAgICAq
IEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRlcyk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6RHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OmFwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjpzb3VyY2VJbWFnZUlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZElt
YWdlQnVmZmVyOjpzb3VyY2VJbWFnZVJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjpnbG9iYWxCb3VuZHMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjps
b2NhbEJvdW5kcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6cmVjb3Jk
RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OmRlY29kZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4Lmg6CisgICAgICAg
IChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVDb2xvck1hdHJpeDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21w
b25lbnRUcmFuc2Zlcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9u
ZW50VHJhbnNmZXI6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6ZGVjb2RlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFQ29udm9sdmVNYXRyaXg6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGRUNvbnZvbHZlTWF0cml4OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlm
ZnVzZUxpZ2h0aW5nOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEaXNwbGFjZW1lbnRNYXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50
TWFwOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRmxvb2Q6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RkVHYXVzc2lhbkJsdXI6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVNZXJnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OkZF
TWVyZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6RkVNZXJnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZFTWVyZ2U6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1vcnBob2xvZ3kuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpGRU9mZnNldDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFT2Zmc2V0
OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oOgorICAgICAgICAo
V2ViQ29yZTo6RkVUdXJidWxlbmNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RkVUdXJidWxlbmNlOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlcjo6YXBwbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXI6OnNldENsaXBPcGVyYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRmlsdGVyOjpDU1NGaWx0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0
ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyRmlsdGVyczo6YXBwbHlGaWx0ZXJFZmZlY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OnBvc3RBcHBseVJlc291cmNlKToK
KyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRkVNZXJnZUVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKwogMjAyMS0xMi0wMyAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIChSRUdS
RVNTSU9OIHIyODU1OTcpOiBGaXggU1ZHRmlsdGVyIGNsYW1waW5nIGNhbGN1bGF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDg3NzY5MTQ5NzZiMmE5MmY3NmRkODc2MTFkMjgxYTAyOGIxMzc0OTUuLmQ5M2VjMDQx
NmI1OWE0MmQyN2RjOGJkMzc2NmIyN2ZiZTcwOGQ0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMjEtMTItMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0dQVSBQcm9jZXNzXSBBZGQgdGhlIGVuY29kaW5nL2RlY29kaW5nIGZvciBGaWx0ZXIg
YW5kIEZpbHRlckVmZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyODQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldEZpbHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcik6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaDogQWRkZWQu
CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6RmlsdGVyUmVmZXJlbmNlKToKKyAgICAg
ICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjp0YWtlRmlsdGVyKToKKyAgICAgICAgKElQQzo6Rmls
dGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoSVBDOjpGaWx0ZXJS
ZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVjdCk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVy
ZW5jZTo6ZW5jb2RlU1ZHRmlsdGVyKToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpk
ZWNvZGVTVkdGaWx0ZXIpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZUNT
U0ZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlQ1NTRmlsdGVy
KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXIpOgorICAgICAg
ICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlcik6CisgICAgICAgIChJUEM6OkZp
bHRlclJlZmVyZW5jZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJl
bmNlOjpkZWNvZGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAg
ICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3RmlsdGVy
ZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0RmlsdGVyZWRJbWFnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Lmg6CisKIDIwMjEtMTItMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gV2ViIGNvbnRlbnQgcHJvY2VzcyBzb21ldGltZXMgY3Jhc2hlcyB1
bmRlciBXZWJQYWdlOjpwb3NpdGlvbkluZm9ybWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IDQxNWI0ZmM2YTJjODVmYTJjZmVhMjRmZTFjMDUwZWNhYjFmYWZiODkuLjU1NDAyNjUxODlmZTcx
NjAzMzk4MzE4NjVlYzMzY2ZjMWFjOTU4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTU2MCwx
MiArMTU2MCwzNCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5o
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVGbG9vZC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNz
aWFuQmx1ci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFT2Zmc2V0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdo
dGluZy5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJF
ZmZlY3QuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0R2VvbWV0
cnkuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0VmVjdG9yLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckltYWdlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlckltYWdlVmVjdG9yLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlck9wZXJhdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJPcGVyYXRpb25zLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0xpZ2h0U291cmNl
LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAogCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT0JveC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaXNv
L0lTT09yaWdpbmFsRm9ybWF0Qm94LmgKQEAgLTE3MzEsNiArMTc1Myw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbHVnaW5zL1BsdWdpblZpZXdCYXNlLmgK
IAogICAgIHJlbmRlcmluZy9CcmVha0xpbmVzLmgKKyAgICByZW5kZXJpbmcvQ1NTRmlsdGVyLmgK
ICAgICByZW5kZXJpbmcvQ2xpcFJlY3QuaAogICAgIHJlbmRlcmluZy9FdmVudFJlZ2lvbi5oCiAg
ICAgcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5oCkBAIC0xODc4LDYgKzE5MDEsOCBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2VDYWNoZS5oCiAKKyAgICBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAorCiAg
ICAgc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0
aXZlTGlzdC5oCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU1YTA5MGI2
MjljZjQ3YzE3MzAzYWYyZDQwZjk3OWZiMDE3MDEzMWIuLjZkYjAxYjVhMGNkZjVmYTY4N2QzMmUz
ZjE1NDNiMWM0Y2M5ODhkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMzMsNyArMTIzMyw3IEBACiAJCTQzMTA3QkUyMThD
QzE5REUwMENDMThFOCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMTA3QkUxMThDQzE5REUwMENDMThFOCAv
KiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCAqLzsgfTsKIAkJNDMyRDNGRTgxOEE4NjU4NDAwRDdE
QzAzIC8qIFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMkQzRkU3MThBODY1ODQwMEQ3REMwMyAvKiBT
ZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggKi87IH07CiAJCTQzNThFODdEMTM2MEEyRUUw
MEU0NzQ4QyAvKiBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODdCMTM2MEEyRUUwMEU0NzQ4QyAvKiBK
U1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKLQkJNDM1OEU4ODExMzYwQTMxNzAwRTQ3
NDhDIC8qIEZFRHJvcFNoYWRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDM1OEU4N0YxMzYwQTMxNzAwRTQ3NDhDIC8qIEZFRHJvcFNoYWRvdy5oICov
OyB9OworCQk0MzU4RTg4MTEzNjBBMzE3MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg3RjEzNjBBMzE3
MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDM1OEU4ODYxMzYwQTMzQjAwRTQ3NDhDIC8qIFNWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzNThFODgzMTM2MEEzM0IwMEU0NzQ4QyAvKiBTVkdGRURyb3BTaGFkb3dFbGVtZW50
LmggKi87IH07CiAJCTQzNjcwOEMxMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdCbG9jay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4ODIx
MkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0Jsb2NrLmggKi87IH07CiAJCTQzNjcwOEMzMTJE
OUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdDb250YWluZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwODg0MTJEOUNBNEEwMDA0NDIzNCAvKiBS
ZW5kZXJTVkdDb250YWluZXIuaCAqLzsgfTsKQEAgLTIzMDEsNiArMjMwMSw5IEBACiAJCTcyMTQ0
MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eU93bmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MDIyM0IyQTIxMDBGQkE5NDQg
LyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcyMUI0OTc0MjUxMkJBM0IwMEZFOUQzQiAvKiBJbWFnZUJpdG1hcEJh
Y2tpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcy
MUI0OTcwMjUxMkFDMDQwMEZFOUQzQiAvKiBJbWFnZUJpdG1hcEJhY2tpbmcuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjI4M0YwRTIzMEIyNjhD
MDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFn
ZVBhaW50aW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTcyNDY5NjNCMjc1QzVGQTYwMEE5MTU2QSAvKiBDU1NGaWx0ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTNGQjgzMjEzQjFC
QjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3MjQ2OTYzRDI3NUM2MTQ0MDBBOTE1NkEgLyogRmlsdGVyRWZm
ZWN0VmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MjE0QjlCNzI3NDQ1OEZBMDAzQkU2REYgLyogRmlsdGVyRWZmZWN0VmVjdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI0Njk2M0UyNzVD
NjE2NzAwQTkxNTZBIC8qIEZpbHRlckltYWdlVmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MkI0RUY3QzI3NEVFMzdGMDAyOTNDMkYgLyogRmls
dGVySW1hZ2VWZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MjRFRDMzMjFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUQzMzAx
QTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCAqLzsgfTsKIAkJNzI0RUU1NTAx
REM4MEQ3RjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRFMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rp
dml0eVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzI0RUU1NTExREM4MEQ4NDAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0
RUU1NEYxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNzIwLDM1
ICsyNzIzLDM1IEBACiAJCTg0MzAwQkQ2MTIwQzlBQUMwMDIxOTU0QSAvKiBTVkdQYXRoU3RyaW5n
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NDMwMEJENTEyMEM5QUFDMDAyMTk1NEEgLyogU1ZHUGF0aFN0cmluZ1NvdXJjZS5oICovOyB9Owog
CQk4NDMwMEJEODEyMEM5QUQ0MDAyMTk1NEEgLyogU1ZHUGF0aFNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQzMDBCRDcxMjBDOUFENDAwMjE5
NTRBIC8qIFNWR1BhdGhTb3VyY2UuaCAqLzsgfTsKIAkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5
IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ1RTcyRjcwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTg0NUU3MkZDMEZEMjYyMzkwMEE4N0Q3
OSAvKiBTVkdGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg0NUU3MkZBMEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCAqLzsgfTsKKwkJ
ODQ1RTcyRkMwRkQyNjIzOTAwQTg3RDc5IC8qIFNWR0ZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ1RTcyRkEwRkQyNjIzOTAwQTg3RDc5IC8q
IFNWR0ZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg0NjUwRTdFMjM4N0FEN0QwMDYyNjZFMiAvKiBNZWRpYVF1ZXJ5TGlzdEV2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDY1MEU3QzIz
ODdBRDdDMDA2MjY2RTIgLyogTWVkaWFRdWVyeUxpc3RFdmVudC5oICovOyB9OwogCQk4NDczMEQ3
NzEyNDhGMEIzMDBEM0E5QzkgLyogRGlzdGFudExpZ2h0U291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ1QTEyNDhGMEIzMDBEM0E5Qzkg
LyogRGlzdGFudExpZ2h0U291cmNlLmggKi87IH07Ci0JCTg0NzMwRDc5MTI0OEYwQjMwMEQzQTlD
OSAvKiBGRUNvbnZvbHZlTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDczMEQ1QzEyNDhGMEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJp
eC5oICovOyB9OwotCQk4NDczMEQ3QjEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRp
bmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMw
RDVFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRURpZmZ1c2VMaWdodGluZy5oICovOyB9OwotCQk4NDcz
MEQ3RDEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaXNwbGFjZW1lbnRNYXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDYwMTI0OEYwQjMwMEQzQTlD
OSAvKiBGRURpc3BsYWNlbWVudE1hcC5oICovOyB9OwotCQk4NDczMEQ3RjEyNDhGMEIzMDBEM0E5
QzkgLyogRkVGbG9vZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODQ3MzBENjIxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCAqLzsgfTsKLQkJODQ3
MzBEODExMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY0MTI0OEYwQjMwMEQzQTlDOSAvKiBG
RUxpZ2h0aW5nLmggKi87IH07Ci0JCTg0NzMwRDgzMTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1lcmdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2
NjEyNDhGMEIzMDBEM0E5QzkgLyogRkVNZXJnZS5oICovOyB9OwotCQk4NDczMEQ4NTEyNDhGMEIz
MDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2ODEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5
LmggKi87IH07Ci0JCTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENkExMjQ4RjBC
MzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggKi87IH07Ci0JCTg0NzMwRDg5MTI0OEYwQjMwMEQzQTlD
OSAvKiBGRVNwZWN1bGFyTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzMwRDZDMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVNwZWN1bGFyTGln
aHRpbmcuaCAqLzsgfTsKLQkJODQ3MzBEOEIxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFVGlsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENkUxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFVGlsZS5oICovOyB9OwotCQk4NDczMEQ4RDEyNDhGMEIzMDBEM0E5
QzkgLyogRkVUdXJidWxlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NDczMEQ3MDEyNDhGMEIzMDBEM0E5QzkgLyogRkVUdXJidWxlbmNlLmggKi87
IH07Ci0JCTg0NzMwRDkxMTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzQxMjQ4RjBCMzAw
RDNBOUM5IC8qIExpZ2h0U291cmNlLmggKi87IH07CisJCTg0NzMwRDc5MTI0OEYwQjMwMEQzQTlD
OSAvKiBGRUNvbnZvbHZlTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDczMEQ1QzEyNDhGMEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJp
eC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0
NzMwRDdCMTI0OEYwQjMwMEQzQTlDOSAvKiBGRURpZmZ1c2VMaWdodGluZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUUxMjQ4RjBCMzAwRDNB
OUM5IC8qIEZFRGlmZnVzZUxpZ2h0aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3MzBEN0QxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxh
Y2VtZW50TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDczMEQ2MDEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaXNwbGFjZW1lbnRNYXAuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ3RjEyNDhG
MEIzMDBEM0E5QzkgLyogRkVGbG9vZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQ3MzBENjIxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ4MTEy
NDhGMEIzMDBEM0E5QzkgLyogRkVMaWdodGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjQxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGlnaHRp
bmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4
NDczMEQ4MzEyNDhGMEIzMDBEM0E5QzkgLyogRkVNZXJnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjYxMjQ4RjBCMzAwRDNBOUM5IC8qIEZF
TWVyZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk4NDczMEQ4NTEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2ODEyNDhGMEIzMDBEM0E5
QzkgLyogRkVNb3JwaG9sb2d5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJODQ3MzBEODcxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2QTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVPZmZzZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk4NDczMEQ4OTEyNDhGMEIzMDBEM0E5QzkgLyogRkVTcGVjdWxh
ckxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDczMEQ2QzEyNDhGMEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3MzBEOEIxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFVGlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQ3MzBENkUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFVGlsZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDhEMTI0
OEYwQjMwMEQzQTlDOSAvKiBGRVR1cmJ1bGVuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDcwMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVR1cmJ1
bGVuY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk4NDczMEQ5MTEyNDhGMEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc0MTI0OEYwQjMwMEQzQTlD
OSAvKiBMaWdodFNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg0NzMwRDkyMTI0OEYwQjMwMEQzQTlDOSAvKiBQb2ludExpZ2h0U291cmNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3
NTEyNDhGMEIzMDBEM0E5QzkgLyogUG9pbnRMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDczMEQ5
MzEyNDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NjEyNDhGMEIzMDBEM0E5QzkgLyog
U3BvdExpZ2h0U291cmNlLmggKi87IH07CiAJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBT
VkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0NzZDOUU0MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1
aWxkZXIuaCAqLzsgfTsKIAkJODQ3NkM5RUIxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWls
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2
QzlFODExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIuaCAqLzsgfTsKIAkJODQ3NkM5
RUMxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8q
IFNWR1BhdGhDb25zdW1lci5oICovOyB9OwogCQk4NDc2QzlGMDExREY2QTU4MDA1NTVCMDIgLyog
U1ZHUGF0aFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODQ3NkM5RUUxMURGNkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCAqLzsgfTsK
LQkJODQ4MDE5NTUxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDgwMTk1MzEwOEJBRkIzMDBD
QjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuaCAqLzsgfTsKKwkJODQ4MDE5NTUxMDhCQUZCMzAwQ0Iy
QjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDgwMTk1MzEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDgy
Qjc0NjExOThDMzU0MDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNDQyQkJGODExOTRDOUQzMDBENDk0Njkg
LyogSGFzaENoYW5nZUV2ZW50LmggKi87IH07CiAJCTg0ODJCNzUyMTE5OENCNkIwMEJGQjAwNSAv
KiBKU0hhc2hDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ4MkI3NTAxMTk4Q0I2QjAwQkZCMDA1IC8qIEpTSGFzaENoYW5nZUV2ZW50
LmggKi87IH07CiAJCTg0ODUyMjdDMTE5MDE2MkMwMDZFREM3RiAvKiBKU1NWR0hLZXJuRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4NTIy
NzgxMTkwMTYyQzAwNkVEQzdGIC8qIEpTU1ZHSEtlcm5FbGVtZW50LmggKi87IH07CiAJCTg0ODUy
MjdFMTE5MDE2MkMwMDZFREM3RiAvKiBKU1NWR1ZLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4NTIyN0ExMTkwMTYyQzAwNkVEQzdG
IC8qIEpTU1ZHVktlcm5FbGVtZW50LmggKi87IH07CiAJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3
RiAvKiBTVkdWS2VybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0ODUyMjg4MTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1lbnQu
aCAqLzsgfTsKIAkJODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUYzQzBGQzdE
RkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEuaCAqLzsgfTsKLQkJODRBODFGNDIwRkM3RTAyNzAw
OTU1MzAwIC8qIFNvdXJjZUdyYXBoaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0QTgxRjQwMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGlj
LmggKi87IH07CisJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUY0MDBG
QzdFMDI3MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0QjM0OUEyMjJGODZFNzUwMEQ0N0JDRiAvKiBF
dmVudFRhcmdldENvbmNyZXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NEIzNDlBMDIyRjg2RTc0MDBENDdCQ0YgLyogRXZlbnRUYXJnZXRDb25jcmV0
ZS5oICovOyB9OwogCQk4NEI2Qjk3ODEyMEYxM0U1MDBCOEVGQUYgLyogU1ZHUGF0aFNlZ0xpc3RT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
QjZCOTc2MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oICovOyB9Owog
CQk4NEM1QjJGQjEyMTZEQzgxMDA4OEI1M0EgLyogU1ZHUGF0aFRyYXZlcnNhbFN0YXRlQnVpbGRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRDNUIy
RjkxMjE2REM4MTAwODhCNTNBIC8qIFNWR1BhdGhUcmF2ZXJzYWxTdGF0ZUJ1aWxkZXIuaCAqLzsg
fTsKQEAgLTM1MTAsMTAgKzM1MTMsMTAgQEAKIAkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8q
IEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdCNEVBNzkxNEM5MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5n
cy5oICovOyB9OwogCQlBNzQwQjVBNzE0QzkzNUFGMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRp
bmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwICovOyB9Owog
CQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFNDk3NDEwNzUy
QUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTc1RThCODkwRTFERTJENjAwN0YyNDgx
IC8qIEZFQmxlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3NUU4QjgxMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmggKi87IH07Ci0JCUE3NUU4
QjhCMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4MzBFMURFMkQ2MDA3RjI0ODEgLyog
RkVDb2xvck1hdHJpeC5oICovOyB9OwotCQlBNzVFOEI4RDBFMURFMkQ2MDA3RjI0ODEgLyogRkVD
b21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIu
aCAqLzsgfTsKLQkJQTc1RThCOEYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NzBFMURF
MkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLzsgfTsKKwkJQTc1RThCODkwRTFERTJENjAw
N0YyNDgxIC8qIEZFQmxlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3NUU4QjgxMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc1RThCOEIwRTFERTJE
NjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgzMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0
cml4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QTc1RThCOEQwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg1MEUxREUyRDYw
MDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc1RThCOEYwRTFERTJENjAwN0YyNDgxIC8qIEZF
Q29tcG9zaXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzZFNUY3RjEzNUUwRENGMDBB
Njk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRl
cmVkRG9jdW1lbnRNYXJrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBNzc5NzkxQTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkxNDBENkI5
RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3OTc5MjkwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VE
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5
NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLzsgfTsKQEAgLTMzNjgwLDYg
KzMzNjgzLDcgQEAKIAkJCQlBQTIxRUNDRDBBQkYwRkM2MDAyQjgzNEMgLyogQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NzlFMTQxQkIyMTVCQjAwQ0FBOEJGIC8q
IENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0NDc2QkRCMURG
Q0FDMDMwMDY5MEUyMyAvKiBDU1NEZWZlcnJlZFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzI0Njk2M0IyNzVDNUZBNjAwQTkxNTZBIC8qIENTU0ZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkJCMEM1QjgxN0JCRDYyOTAwM0QzNjc3IC8qIENTU0ZpbHRlckltYWdlVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjRCNEQ2MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRG
YWNlUnVsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDE4OCw4ICszNDE5MiwxMCBAQAogCQkJCTg0
NUU3MkY4MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
QzkyNTFBMEZDQzdDNEEwMDQ4MERFQyAvKiBGaWx0ZXJFZmZlY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcyNkNERTIwMjc1OTczNTAwMEE0NDVCMiAvKiBGaWx0ZXJFZmZlY3RHZW9tZXRyeS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzI0Njk2M0QyNzVDNjE0NDAwQTkxNTZBIC8qIEZpbHRlckVmZmVj
dFZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzJCOEIwMzUyNzUzNDM4NjAwRjc1MkFBIC8q
IEZpbHRlckZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MkI4QjAzNjI3NTM0NDE0MDBG
NzUyQUEgLyogRmlsdGVySW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyNDY5NjNFMjc1QzYx
NjcwMEE5MTU2QSAvKiBGaWx0ZXJJbWFnZVZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlF
Q0VCNkUxNDk5NzkwRDAwQ0REM0E0IC8qIEZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDlFQ0VCNzAxNDk5NzkwRDAwQ0REM0E0IC8qIEZpbHRlck9wZXJhdGlvbnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTM3MkMwMEQ5MTI5NjE5RjgwMDVDOTU3NSAvKiBGaW5kT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggNzUwZGI0ZWU4OTE2NjBmYTRiZWNlYmM0
NDQ3YzY4NWNlNWM0ODQ4MS4uMmZkNDIyOWI3MTI3ZjA0OTBkNDJkNTQxZTE0NGFkNmE5ZDhlMWZl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJ
bWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNy
ZXRlSW1hZ2VCdWZmZXIuaApAQCAtMTQ2LDcgKzE0Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGNvbnN0X2Nhc3Q8Q29uY3JldGVJbWFnZUJ1
ZmZlciY+KCp0aGlzKS5mbHVzaERyYXdpbmdDb250ZXh0KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0
ID0gZmlsdGVyLmFwcGx5KHRoaXMpOworICAgICAgICBhdXRvIHJlc3VsdCA9IGZpbHRlci5hcHBs
eSh0aGlzLCB7IHsgfSwgbG9naWNhbFNpemUoKSB9KTsKICAgICAgICAgaWYgKCFyZXN1bHQpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggZTM3YjcxNTU3MTQwNjBi
ZmViN2FkYjAxODlmYWJlZGY3OWYxNjgxNC4uMmNiYmNjNTY2M2ZlNTg4MDdkMTAzNjA2ZjViNTFh
MGZmOGU1NjJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC02MzEsOSArNjMxLDkgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdl
LCBjb25zdAogICAgIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKFdURk1vdmUoaW1hZ2UpLCAq
dGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2Us
IEZpbHRlciYgZmlsdGVyKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdl
QnVmZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJ
bWFnZVJlY3QsIEZpbHRlciYgZmlsdGVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gZmlsdGVyLmFw
cGx5KHNvdXJjZUltYWdlKTsKKyAgICBhdXRvIHJlc3VsdCA9IGZpbHRlci5hcHBseShzb3VyY2VJ
bWFnZSwgc291cmNlSW1hZ2VSZWN0KTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJu
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaAppbmRleCAzZDhkM2E3MTI1M2UzNjMwZjhkOTVjZGRkNDA5NmJiNjQyMjg5YmY5
Li4zMmVhMmVkMTQ1MWM1NGI0Y2RlODEzMGE0OTM3ZTdkNTMyMDE2YTNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtNDUy
LDcgKzQ1Miw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdDb25zdW1p
bmdJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoUmVmUHRyPEltYWdl
QnVmZmVyPiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBz
b3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIq
IHNvdXJjZUltYWdlLCBGaWx0ZXImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
PSB7IH0pID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggZTYxNWE3YmQ2ZDRh
NzA4NTVhZjA5ZmVhMGMzOWQ1ODIwMzlkZmU5Yy4uZDliMGVkZGMyNjhjMjk1YjczZDliNjYxZWU4
YzE1NmRiYTNkYjk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgiCiAjaW5jbHVkZSAiRGlzcGxh
eUxpc3RJdGVtcy5oIgogI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlcmF0b3IuaCIKKyNpbmNsdWRl
ICJGaWx0ZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxs
b2MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0yNDMsNiArMjQ0LDggQEAg
dm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRlbSkKICAgICAgICAgcmV0dXJu
IGFwcGVuZDxCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcz4oaXRlbS5nZXQ8QmVnaW5DbGlwVG9E
cmF3aW5nQ29tbWFuZHM+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkVuZENsaXBUb0RyYXdpbmdD
b21tYW5kczoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM+
KGl0ZW0uZ2V0PEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcz4oKSk7CisgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBhcHBlbmQ8RHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXI+KGl0ZW0uZ2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPigpKTsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgogICAgICAgICByZXR1cm4gYXBwZW5kPERy
YXdHbHlwaHM+KGl0ZW0uZ2V0PERyYXdHbHlwaHM+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRy
YXdJbWFnZUJ1ZmZlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5j
cHAKaW5kZXggZTgwNTA5ZWNjYTA1ZDJjYzhlZDEwNjYwNzA0MWY1Y2NjYzNlMzc5NC4uNDAyNWUw
NjkyZGM1YTE1ZTk3MzY5NTgwMzMzZjZmYTNiOWJmYmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTExNCw2ICsxMTQsOSBAQCB2b2lkIEl0ZW1I
YW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICBjYXNlIEl0ZW1UeXBl
OjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXI6CisgICAgICAgIGdldDxEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oKS5hcHBseShjb250
ZXh0KTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CkBAIC0yNTYsNiAr
MjU5LDkgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICBjYXNlIEl0ZW1UeXBlOjpD
bGlwUGF0aDoKICAgICAgICAgZ2V0PENsaXBQYXRoPigpLn5DbGlwUGF0aCgpOwogICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAg
ICAgIGdldDxEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oKS5+RHJhd0ZpbHRlcmVkSW1hZ2VCdWZm
ZXIoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdQ
YXRoOgogICAgICAgICBnZXQ8RHJhd0ZvY3VzUmluZ1BhdGg+KCkufkRyYXdGb2N1c1JpbmdQYXRo
KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ5MSw2ICs0OTcsOCBAQCBib29sIEl0ZW1IYW5kbGU6
OnNhZmVDb3B5KEl0ZW1UeXBlIGl0ZW1UeXBlLCBJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25z
dAogICAgICAgICByZXR1cm4gY29weUludG88Q2xpcE91dFRvUGF0aD4oaXRlbU9mZnNldCwgKnRo
aXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBQYXRoOgogICAgICAgICByZXR1cm4gY29weUlu
dG88Q2xpcFBhdGg+KGl0ZW1PZmZzZXQsICp0aGlzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdGaWx0ZXJl
ZEltYWdlQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0ZvY3VzUmluZ1BhdGg6CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3Rm9jdXNSaW5nUGF0
aD4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdS
ZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCBiZGVj
NjU0YjUyYmQ0NmQ2MzljYTJlOWFlYWI5ZDYxZTg2M2RjMzg1Li5kZmExZTc0ZmIyNDg2YzM0YTA5
YzFmYTFiYTJjYmRlNzQ5MDA0ZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuY3BwCkBAIC04MCw2ICs4MCw4IEBAIHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0
ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIHNpemVvZihCZWdpbkNsaXBUb0RyYXdp
bmdDb21tYW5kcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRz
OgogICAgICAgICByZXR1cm4gc2l6ZW9mKEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyk7CisgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBz
aXplb2YoRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdH
bHlwaHM6CiAgICAgICAgIHJldHVybiBzaXplb2YoRHJhd0dseXBocyk7CiAgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd0ltYWdlQnVmZmVyOgpAQCAtMjE2LDYgKzIxOCw3IEBAIGJvb2wgaXNEcmF3aW5n
SXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyUmVjdDoKICAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgogICAgIGNhc2UgSXRlbVR5
cGU6OkRyYXdFbGxpcHNlOgorICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdQYXRoOgogICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdGb2N1c1JpbmdSZWN0czoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhz
OgpAQCAtMzIyLDYgKzMyNSw3IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAg
ICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0RvdHNGb3JEb2N1bWVudE1hcmtlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToK
KyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0
ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUlt
YWdlOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXggODA4NDRlOGI5ZGYwNTVlNWExNmMzNjdjZTJiZjI5MGE5
M2NlNjM3Mi4uOTFmM2Y1ZjUyODhiYzdlYjJkYWQ2ZTQyZGRmYjNkYmYxOTgwYzc4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC01Miw2ICs1Miw3IEBAIGVudW0g
Y2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBDbGlwUGF0aCwKICAgICBCZWdpbkNsaXBU
b0RyYXdpbmdDb21tYW5kcywKICAgICBFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMsCisgICAgRHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIsCiAgICAgRHJhd0dseXBocywKICAgICBEcmF3SW1hZ2VCdWZm
ZXIsCiAgICAgRHJhd05hdGl2ZUltYWdlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
Y3BwCmluZGV4IDcyZmM2ZDFhNzM0NDYxNDI1ZjBjZTU2N2Y2YjgwYzA0NzIyYzBhYTEuLjA5ZjJi
NTdjNjRhOGQyMWUyOTY1MWVhZjU3YzFjNzc3OTc3ODZmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtcy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlz
dEl0ZW1zLmgiCiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdFJlcGxheWVyLmgiCisjaW5jbHVkZSAi
RmlsdGVyLmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCkBAIC0yOTksNiArMzAwLDMwIEBAIHN0YXRp
YyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBFbmRDbGlwVG9E
cmF3aW5nQ29tbWFuZHMmIGl0CiAgICAgcmV0dXJuIHRzOwogfQogCitEcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcjo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYgZmlsdGVyKQorICAgIDogbV9zb3VyY2VJbWFnZUlk
ZW50aWZpZXIoc291cmNlSW1hZ2VJZGVudGlmaWVyKQorICAgICwgbV9zb3VyY2VJbWFnZVJlY3Qo
c291cmNlSW1hZ2VSZWN0KQorICAgICwgbV9maWx0ZXIoZmlsdGVyKQoreworfQorCitOT19SRVRV
Uk5fRFVFX1RPX0FTU0VSVCB2b2lkIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjphcHBseShHcmFw
aGljc0NvbnRleHQmKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSkKK3sKKyAgICBjb250ZXh0LmRy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBtX3NvdXJjZUltYWdlUmVjdCwgbV9m
aWx0ZXIpOworfQorCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0
cywgY29uc3QgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXImIGl0ZW0pCit7CisgICAgdHMuZHVtcFBy
b3BlcnR5KCJzb3VyY2UtaW1hZ2UtaWRlbnRpZmllciIsIGl0ZW0uc291cmNlSW1hZ2VJZGVudGlm
aWVyKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgic291cmNlLWltYWdlLXJlY3QiLCBpdGVtLnNv
dXJjZUltYWdlUmVjdCgpKTsKKyAgICByZXR1cm4gdHM7Cit9CisKIERyYXdHbHlwaHM6OkRyYXdH
bHlwaHMoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZvbnRJZGVudGlmaWVyLCBWZWN0b3I8
R2x5cGhCdWZmZXJHbHlwaCwgMTI4PiYmIGdseXBocywgVmVjdG9yPEdseXBoQnVmZmVyQWR2YW5j
ZSwgMTI4PiYmIGFkdmFuY2VzLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kcywgY29uc3QgRmxvYXRQ
b2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiAgICAg
OiBtX2ZvbnRJZGVudGlmaWVyKGZvbnRJZGVudGlmaWVyKQogICAgICwgbV9nbHlwaHMoV1RGTW92
ZShnbHlwaHMpKQpAQCAtMTA1OSw2ICsxMDg0LDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6
Q2xpcFBhdGg6IHRzIDw8ICJjbGlwLXBhdGgiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpC
ZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kczogdHMgPDwgImJlZ2luLWNsaXAtdG8tZHJhd2luZy1j
b21tYW5kczoiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29t
bWFuZHM6IHRzIDw8ICJlbmQtY2xpcC10by1kcmF3aW5nLWNvbW1hbmRzIjsgYnJlYWs7CisgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6IHRzIDw8ICJkcmF3LWZpbHRl
cmVkLWltYWdlLWJ1ZmZlciI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6
IHRzIDw8ICJkcmF3LWdseXBocyI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFn
ZUJ1ZmZlcjogdHMgPDwgImRyYXctaW1hZ2UtYnVmZmVyIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd05hdGl2ZUltYWdlOiB0cyA8PCAiZHJhdy1uYXRpdmUtaW1hZ2UiOyBicmVhazsK
QEAgLTExNzgsNiArMTIwNCw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5n
Q29tbWFuZHM6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PEVuZENsaXBUb0RyYXdpbmdDb21tYW5k
cz4oKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1h
Z2VCdWZmZXI6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PERyYXdGaWx0ZXJlZEltYWdlQnVmZmVy
PigpOworICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgogICAg
ICAgICB0cyA8PCBpdGVtLmdldDxEcmF3R2x5cGhzPigpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IGUxNGE0Mjk5M2EwZjJhZmRiMmY0YjE2YTBh
YWJmOTVlZTE0ZGIzN2UuLjgzNWIwMTJkNWZjMGI0OTYwNGVmM2FlYWJmNTExYWE2MWNiM2UyMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtOTEyLDYgKzkxMiwyOSBAQCBw
cml2YXRlOgogICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uOwogfTsKIAorY2xhc3MgRHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXIgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5
cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gdHJ1ZTsKKworICAgIFdFQkNPUkVfRVhQT1JUIERy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1h
Z2VSZWN0LCBGaWx0ZXImKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZUltYWdlSWRlbnRpZmllcjsgfQorICAgIEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZUltYWdlUmVjdDsgfQorCisgICAgTk9fUkVUVVJOX0RVRV9UT19B
U1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBz
b3VyY2VJbWFnZSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRz
KCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CisgICAgc3RkOjpvcHRpb25hbDxGbG9h
dFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJu
IG1fc291cmNlSW1hZ2VSZWN0OyB9CisKK3ByaXZhdGU6CisgICAgc3RkOjpvcHRpb25hbDxSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IG1fc291cmNlSW1hZ2VJZGVudGlmaWVyOworICAgIEZs
b2F0UmVjdCBtX3NvdXJjZUltYWdlUmVjdDsKKyAgICBSZWY8RmlsdGVyPiBtX2ZpbHRlcjsKK307
CisKIGNsYXNzIERyYXdHbHlwaHMgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRl
bVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6RHJhd0dseXBoczsKQEAgLTI0MDUsNiArMjQyOCw3
IEBAIHVzaW5nIERpc3BsYXlMaXN0SXRlbSA9IHN0ZDo6dmFyaWFudAogICAgICwgQ29uY2F0ZW5h
dGVDVE0KICAgICAsIERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIKICAgICAsIERyYXdFbGxpcHNl
CisgICAgLCBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcgogICAgICwgRHJhd0ZvY3VzUmluZ1BhdGgK
ICAgICAsIERyYXdGb2N1c1JpbmdSZWN0cwogICAgICwgRHJhd0dseXBocwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDJmZDQzZjk5YWUzNTRhZGFkNzNiZDg1
ZjE0ZmY1ZWMwYmU0ZmQ5ODQuLmQ4YjhmY2EzOTNhZjYzNmRmYjg0Zjg0NzA1NzVjY2FmYzlhNzNl
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTE0NCw2
ICsxNDQsMjQgQEAgdm9pZCBSZWNvcmRlcjo6c2V0TWl0ZXJMaW1pdChmbG9hdCBtaXRlckxpbWl0
KQogICAgIHJlY29yZFNldE1pdGVyTGltaXQobWl0ZXJMaW1pdCk7CiB9CiAKK3ZvaWQgUmVjb3Jk
ZXI6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYgZmlsdGVyKQoreworICAgIGFw
cGVuZFN0YXRlQ2hhbmdlSXRlbUlmTmVjZXNzYXJ5KCk7CisKKyAgICBpZiAoIXNvdXJjZUltYWdl
KSB7CisgICAgICAgIHJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHsgfSwgc291cmNlSW1h
Z2VSZWN0LCBmaWx0ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFjYW5E
cmF3SW1hZ2VCdWZmZXIoKnNvdXJjZUltYWdlKSkgeworICAgICAgICBHcmFwaGljc0NvbnRleHQ6
OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBzb3VyY2VJbWFnZVJlY3QsIGZp
bHRlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZWNvcmRSZXNvdXJjZVVzZSgq
c291cmNlSW1hZ2UpOworICAgIHJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNvdXJjZUlt
YWdlLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgc291cmNlSW1hZ2VSZWN0LCBmaWx0
ZXIpOworfQorCiB2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNv
bnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBh
ZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFydFBvaW50
LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQogewogICAgIG1fZHJhd0dseXBoc1Jl
Y29yZGVyLmRyYXdHbHlwaHMoZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywgbnVtR2x5cGhzLCBzdGFy
dFBvaW50LCBzbW9vdGhpbmdNb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5oCmluZGV4IDlhNDAxNDM2N2RiMWVmNDNiOGE1OWU1MGUzZDQ3MTBmOTNlMDNlYmYuLjAyYWU1
NzA2MTJlMzRiODIzZjYwNzRiZmVmZGUzNjBlZWU4N2U2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtODgsNiArODgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCB2b2lkIHJlY29yZENsaXBQYXRoKGNvbnN0IFBhdGgmLCBXaW5kUnVsZSkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCByZWNvcmRCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcmVjb3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd0ZpbHRlcmVkSW1h
Z2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJj
ZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRl
ciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd0dseXBocyhjb25zdCBGb250Jiwg
Y29uc3QgR2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2ln
bmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01v
ZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd0ltYWdlQnVmZmVyKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZERyYXdOYXRpdmVJbWFnZShS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKQEAgLTIyNCw2ICsy
MjUsOCBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwbHlGaWxsUGF0dGVy
bigpIGZpbmFsOwogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdGaWx0ZXJl
ZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBz
b3VyY2VJbWFnZVJlY3QsIEZpbHRlciYpIGZpbmFsOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3Qg
R2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50
JiBhbmNob3JQb2ludCwgRm9udFNtb290aGluZ01vZGUpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZHJhd0dseXBoc0FuZENhY2hlRm9udChjb25zdCBGb250JiwgY29uc3QgR2x5cGhC
dWZmZXJHbHlwaCosIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBj
b25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAppbmRleCBh
NWUyZDNiMjA5ODVlM2VmOTQxYTMyMzU3NTZlMjgwZWFjZDUxNjNjLi4zMDM0MDgxMGFkZjZkYzk5
Y2Y2MjhhMTI1ZTlkNDZkZThhOGE4N2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVySW1wbC5jcHAKQEAgLTIwOCw2ICsyMDgsMTEgQEAgdm9pZCBSZWNvcmRlcklt
cGw6OnJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uKQogICAgIGFwcGVuZDxFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM+KGRlc3RpbmF0aW9u
KTsKIH0KIAordm9pZCBSZWNvcmRlckltcGw6OnJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVy
KHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlk
ZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZpbHRl
cikKK3sKKyAgICBhcHBlbmQ8RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI+KHNvdXJjZUltYWdlSWRl
bnRpZmllciwgc291cmNlSW1hZ2VSZWN0LCBmaWx0ZXIpOworfQorCiB2b2lkIFJlY29yZGVySW1w
bDo6cmVjb3JkRHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlckds
eXBoKiBnbHlwaHMsIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVk
IGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUg
bW9kZSkKIHsKICAgICBhcHBlbmQ8RHJhd0dseXBocz4oZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywg
Y291bnQsIGxvY2FsQW5jaG9yLCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXJJbXBsLmgKaW5kZXggM2U2ZDA5MDI2OTA0NmYxYjEyNGEzOWMxZTEyMTEwMGIzMjcy
NjBjNS4uMjllNzI3NGYxNzVkYThhNjI3OTMzOGVkZTM0ODM0MmIyZTg1NTRhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKQEAgLTg2LDYgKzg2LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlY29yZENsaXBQYXRoKGNvbnN0IFBhdGgmLCBXaW5kUnVsZSkg
ZmluYWw7CiAgICAgdm9pZCByZWNvcmRCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UpIGZpbmFsOwogICAg
IHZvaWQgcmVjb3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIo
c3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRl
bnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYpIGZpbmFs
OwogICAgIHZvaWQgcmVjb3JkRHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZm
ZXJHbHlwaCosIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25z
dCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUpIGZpbmFsOwogICAg
IHZvaWQgcmVjb3JkRHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
bWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKICAg
ICB2b2lkIHJlY29yZERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
aW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQmxlbmQuaAppbmRleCA4ODljNmY3YjE3NGIyMDY5Y2Q5YzNmOGEyYTUx
NjU5ODU4OGZlMzMxLi5lNWRmMjE5MmE5Y2MwMTc3YzdhYTFhMDMxZDE2YzZmMmE0Y2Y4ZjNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxl
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxl
bmQuaApAQCAtMzAsMTEgKzMwLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVC
bGVuZCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVC
bGVuZD4gY3JlYXRlKEJsZW5kTW9kZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxG
RUJsZW5kPiBjcmVhdGUoQmxlbmRNb2RlKTsKIAogICAgIEJsZW5kTW9kZSBibGVuZE1vZGUoKSBj
b25zdCB7IHJldHVybiBtX21vZGU7IH0KICAgICBib29sIHNldEJsZW5kTW9kZShCbGVuZE1vZGUp
OwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJl
ZjxGRUJsZW5kPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUJsZW5kKEJs
ZW5kTW9kZSk7CiAKQEAgLTQ4LDYgKzUxLDIzIEBAIHByaXZhdGU6CiAgICAgQmxlbmRNb2RlIG1f
bW9kZTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFQmxlbmQ6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9tb2RlOworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVCbGVuZD4+IEZF
QmxlbmQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8Qmxl
bmRNb2RlPiBtb2RlOworICAgIGRlY29kZXIgPj4gbW9kZTsKKyAgICBpZiAoIW1vZGUpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVCbGVuZDo6Y3JlYXRlKCpt
b2RlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0ZJTFRFUl9FRkZFQ1QoRkVCbGVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKaW5kZXggYTQzMTI1YjUz
MTU2MmM2M2E5NTI4NDdjOGY5MDQ0OWM5NGY3ZTg1Yi4uMjAyNDAxOTNlNTQwYmMyMGVmYjk0Njc0
YjZhMDA0N2Q2OGIyMjM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKQEAgLTM3LDcgKzM3LDcgQEAgZW51
bSBDb2xvck1hdHJpeFR5cGUgewogCiBjbGFzcyBGRUNvbG9yTWF0cml4IDogcHVibGljIEZpbHRl
ckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRUNvbG9yTWF0cml4PiBjcmVhdGUo
Q29sb3JNYXRyaXhUeXBlLCBWZWN0b3I8ZmxvYXQ+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8RkVDb2xvck1hdHJpeD4gY3JlYXRlKENvbG9yTWF0cml4VHlwZSwgVmVjdG9yPGZs
b2F0PiYmKTsKIAogICAgIENvbG9yTWF0cml4VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9CiAgICAgYm9vbCBzZXRUeXBlKENvbG9yTWF0cml4VHlwZSk7CkBAIC00OSw2ICs0OSw5
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVIdWVSb3RhdGVDb21wb25lbnRz
KGZsb2F0KiBjb21wb25lbnRzLCBmbG9hdCB2YWx1ZSk7CiAgICAgc3RhdGljIFZlY3RvcjxmbG9h
dD4gbm9ybWFsaXplZEZsb2F0cyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMpOwogCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUNvbG9y
TWF0cml4Pj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUNvbG9yTWF0cml4
KENvbG9yTWF0cml4VHlwZSwgVmVjdG9yPGZsb2F0PiYmKTsKIApAQCAtNjYsNiArNjksNDUgQEAg
cHJpdmF0ZToKICAgICBWZWN0b3I8ZmxvYXQ+IG1fdmFsdWVzOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgRkVDb2xvck1hdHJpeDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3R5cGU7CisgICAgZW5jb2RlciA8PCBtX3ZhbHVl
czsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFQ29s
b3JNYXRyaXg+PiBGRUNvbG9yTWF0cml4OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBzdGQ6Om9wdGlvbmFsPENvbG9yTWF0cml4VHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5
cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8ZmxvYXQ+PiB2YWx1ZXM7CisgICAgZGVjb2RlciA+PiB2YWx1
ZXM7CisgICAgaWYgKCF2YWx1ZXMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4gRkVDb2xvck1hdHJpeDo6Y3JlYXRlKCp0eXBlLCBXVEZNb3ZlKCp2YWx1ZXMpKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDb2xvck1hdHJpeFR5cGU+IHsKKyAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpDb2xvck1hdHJpeFR5
cGUsCisKKyAgICAgICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBFX1VOS05PV04sCisgICAg
ICAgIFdlYkNvcmU6OkZFQ09MT1JNQVRSSVhfVFlQRV9NQVRSSVgsCisgICAgICAgIFdlYkNvcmU6
OkZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURSwKKyAgICAgICAgV2ViQ29yZTo6RkVDT0xPUk1B
VFJJWF9UWVBFX0hVRVJPVEFURSwKKyAgICAgICAgV2ViQ29yZTo6RkVDT0xPUk1BVFJJWF9UWVBF
X0xVTUlOQU5DRVRPQUxQSEEKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbG9yTWF0cml4KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVu
dFRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuaAppbmRleCBjY2FmNDU5YjAzZTNmMGU0ZTYwOWJhZjM5Mjc0MTEw
NzU1YWZhMjM3Li4wNDlkNGYyMDZiOGI0NjE2NjhiNzAyNDhlN2UwYjU0ZTUxNTlmNjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9u
ZW50VHJhbnNmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaApAQCAtNDgsMTcgKzQ4LDIzIEBAIHN0cnVjdCBDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uIHsKICAgICBmbG9hdCBvZmZzZXQgeyAwIH07CiAKICAgICBW
ZWN0b3I8ZmxvYXQ+IHRhYmxlVmFsdWVzOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCiBjbGFzcyBGRUNvbXBvbmVudFRyYW5zZmVyIDogcHVibGljIEZpbHRl
ckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRUNvbXBvbmVudFRyYW5zZmVyPiBj
cmVhdGUoY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuYywgY29uc3QgQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYWxw
aGFGdW5jKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFQ29tcG9uZW50VHJhbnNm
ZXI+IGNyZWF0ZShjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLCBjb25z
dCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsIGNvbnN0IENvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
JiBhbHBoYUZ1bmMpOwogCiAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiByZWRGdW5jdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmVkRnVuY3Rpb247IH0KICAgICBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uIGdyZWVuRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2dyZWVuRnVuY3Rpb247
IH0KICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIGJsdWVGdW5jdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fYmx1ZUZ1bmN0aW9uOyB9CiAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBh
bHBoYUZ1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hbHBoYUZ1bmN0aW9uOyB9CiAKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFQ29tcG9u
ZW50VHJhbnNmZXI+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFQ29tcG9u
ZW50VHJhbnNmZXIoY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuYywgY29u
c3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jLCBjb25zdCBDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
biYgYWxwaGFGdW5jKTsKIApAQCAtNzYsNiArODIsMTExIEBAIHByaXZhdGU6CiAgICAgQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbiBtX2FscGhhRnVuY3Rpb247CiB9OwogCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHR5cGU7CisgICAgZW5jb2RlciA8
PCBzbG9wZTsKKyAgICBlbmNvZGVyIDw8IGludGVyY2VwdDsKKyAgICBlbmNvZGVyIDw8IGFtcGxp
dHVkZTsKKyAgICBlbmNvZGVyIDw8IGV4cG9uZW50OworICAgIGVuY29kZXIgPDwgb2Zmc2V0Owor
ICAgIGVuY29kZXIgPDwgdGFibGVWYWx1ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IENvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8Q29tcG9uZW50VHJhbnNmZXJUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAg
ICBpZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9w
dGlvbmFsPGZsb2F0PiBzbG9wZTsKKyAgICBkZWNvZGVyID4+IHNsb3BlOworICAgIGlmICghc2xv
cGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBpbnRlcmNlcHQ7CisgICAgZGVjb2RlciA+PiBpbnRlcmNlcHQ7CisgICAgaWYgKCFpbnRl
cmNlcHQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFs
PGZsb2F0PiBhbXBsaXR1ZGU7CisgICAgZGVjb2RlciA+PiBhbXBsaXR1ZGU7CisgICAgaWYgKCFh
bXBsaXR1ZGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBleHBvbmVudDsKKyAgICBkZWNvZGVyID4+IGV4cG9uZW50OworICAgIGlmICgh
ZXhwb25lbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBvZmZzZXQ7CisgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgaWYgKCFvZmZz
ZXQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxmbG9hdD4+IHRhYmxlVmFsdWVzOworICAgIGRlY29kZXIgPj4gdGFibGVWYWx1ZXM7Cisg
ICAgaWYgKCF0YWJsZVZhbHVlcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHJldHVybiB7IHsgKnR5cGUsICpzbG9wZSwgKmludGVyY2VwdCwgKmFtcGxpdHVkZSwgKmV4cG9u
ZW50LCAqb2Zmc2V0LCBXVEZNb3ZlKCp0YWJsZVZhbHVlcykgfSB9OworfQorCit0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPgordm9pZCBGRUNvbXBvbmVudFRyYW5zZmVyOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fcmVkRnVuY3Rpb247CisgICAgZW5j
b2RlciA8PCBtX2dyZWVuRnVuY3Rpb247CisgICAgZW5jb2RlciA8PCBtX2JsdWVGdW5jdGlvbjsK
KyAgICBlbmNvZGVyIDw8IG1fYWxwaGFGdW5jdGlvbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFQ29tcG9uZW50VHJhbnNmZXI+PiBGRUNvbXBvbmVu
dFRyYW5zZmVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFs
PENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24+IHJlZEZ1bmN0aW9uOworICAgIGRlY29kZXIgPj4g
cmVkRnVuY3Rpb247CisgICAgaWYgKCFyZWRGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4g
Z3JlZW5GdW5jdGlvbjsKKyAgICBkZWNvZGVyID4+IGdyZWVuRnVuY3Rpb247CisgICAgaWYgKCFn
cmVlbkZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uPiBibHVlRnVuY3Rpb247CisgICAgZGVj
b2RlciA+PiBibHVlRnVuY3Rpb247CisgICAgaWYgKCFibHVlRnVuY3Rpb24pCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb24+IGFscGhhRnVuY3Rpb247CisgICAgZGVjb2RlciA+PiBhbHBoYUZ1bmN0aW9uOwor
ICAgIGlmICghYWxwaGFGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGUoKnJlZEZ1bmN0aW9uLCAqZ3Jl
ZW5GdW5jdGlvbiwgKmJsdWVGdW5jdGlvbiwgKmFscGhhRnVuY3Rpb24pOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkNvbXBvbmVudFRyYW5zZmVyVHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkNvbXBvbmVudFRyYW5zZmVyVHlw
ZSwKKworICAgICAgICBXZWJDb3JlOjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfVU5LTk9XTiwK
KyAgICAgICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0lERU5USVRZLAorICAg
ICAgICBXZWJDb3JlOjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfVEFCTEUsCisgICAgICAgIFdl
YkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9ESVNDUkVURSwKKyAgICAgICAgV2ViQ29y
ZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0xJTkVBUiwKKyAgICAgICAgV2ViQ29yZTo6RkVD
T01QT05FTlRUUkFOU0ZFUl9UWVBFX0dBTU1BCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb21wb25lbnRU
cmFuc2ZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb3NpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb3NpdGUuaAppbmRleCA1M2FlMGQ2YTI2NGUyMGFmNjY1OGNmZWFmOThhNzQ3
MmQ2YzhmZmZmLi5jNDA4MzQwYWFkY2MzZjllYTFmMmU5ZDhiNmFiOWQzNTMxNzQ2MDZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9z
aXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvc2l0ZS5oCkBAIC00MCw3ICs0MCw3IEBAIGVudW0gQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSB7
CiAKIGNsYXNzIEZFQ29tcG9zaXRlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxGRUNvbXBvc2l0ZT4gY3JlYXRlKGNvbnN0IENvbXBvc2l0ZU9wZXJhdGlv
blR5cGUmLCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUNvbXBvc2l0ZT4gY3JlYXRlKGNvbnN0IENvbXBvc2l0
ZU9wZXJhdGlvblR5cGUmLCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCk7
CiAKICAgICBDb21wb3NpdGVPcGVyYXRpb25UeXBlIG9wZXJhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQogICAgIGJvb2wgc2V0T3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdGlvblR5cGUp
OwpAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgazQoKSBjb25zdCB7IHJldHVy
biBtX2s0OyB9CiAgICAgYm9vbCBzZXRLNChmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFQ29tcG9zaXRlPj4gZGVjb2RlKERl
Y29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUNvbXBvc2l0ZShjb25zdCBDb21wb3NpdGVPcGVy
YXRpb25UeXBlJiwgZmxvYXQgazEsIGZsb2F0IGsyLCBmbG9hdCBrMywgZmxvYXQgazQpOwogCkBA
IC04NCw2ICs4Nyw2NiBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fazQ7CiB9OwogCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUNvbXBvc2l0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3R5cGU7CisgICAgZW5jb2RlciA8PCBtX2sx
OworICAgIGVuY29kZXIgPDwgbV9rMjsKKyAgICBlbmNvZGVyIDw8IG1fazM7CisgICAgZW5jb2Rl
ciA8PCBtX2s0OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxS
ZWY8RkVDb21wb3NpdGU+PiBGRUNvbXBvc2l0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgc3RkOjpvcHRpb25hbDxDb21wb3NpdGVPcGVyYXRpb25UeXBlPiB0eXBlOworICAgIGRl
Y29kZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrMTsKKyAgICBkZWNvZGVyID4+IGsxOwor
ICAgIGlmICghazEpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9w
dGlvbmFsPGZsb2F0PiBrMjsKKyAgICBkZWNvZGVyID4+IGsyOworICAgIGlmICghazIpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrMzsK
KyAgICBkZWNvZGVyID4+IGszOworICAgIGlmICghazMpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrNDsKKyAgICBkZWNvZGVyID4+IGs0
OworICAgIGlmICghazQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1
cm4gRkVDb21wb3NpdGU6OmNyZWF0ZSgqdHlwZSwgKmsxLCAqazIsICprMywgKms0KTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRpb25UeXBlPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3Bl
cmF0aW9uVHlwZSwKKworICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9VTktO
T1dOLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9PVkVSLAorICAgICAg
ICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9JTiwKKyAgICAgICAgV2ViQ29yZTo6RkVD
T01QT1NJVEVfT1BFUkFUT1JfT1VULAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVS
QVRPUl9BVE9QLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9YT1IsCisg
ICAgICAgIFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9SX0FSSVRITUVUSUMsCisgICAgICAg
IFdlYkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9SX0xJR0hURVIKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChG
RUNvbXBvc2l0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKaW5kZXggZTFhMTljY2Y0YzQzMDM3OTQz
YTM1ZDhmMTRjMTc2NTVhNWJlZWJmMy4uNzU0MWYzZTRlZGE4YTNkNzlhNzQyZWNiMDBlYzRkZDU0
ZTc3MjQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbnZvbHZlTWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKQEAgLTM4LDcgKzM4LDcgQEAgZW51bSBj
bGFzcyBFZGdlTW9kZVR5cGUgewogCiBjbGFzcyBGRUNvbnZvbHZlTWF0cml4IDogcHVibGljIEZp
bHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRUNvbnZvbHZlTWF0cml4PiBj
cmVhdGUoY29uc3QgSW50U2l6ZSYga2VybmVsU2l6ZSwgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlh
cywgY29uc3QgSW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9h
dFBvaW50JiBrZXJuZWxVbml0TGVuZ3RoLCBib29sIHByZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3Rv
cjxmbG9hdD4mIGtlcm5lbE1hdHJpeCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxG
RUNvbnZvbHZlTWF0cml4PiBjcmVhdGUoY29uc3QgSW50U2l6ZSYga2VybmVsU2l6ZSwgZmxvYXQg
ZGl2aXNvciwgZmxvYXQgYmlhcywgY29uc3QgSW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1v
ZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50JiBrZXJuZWxVbml0TGVuZ3RoLCBib29sIHByZXNlcnZl
QWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIGtlcm5lbE1hdHJpeCk7CiAKICAgICBJbnRTaXpl
IGtlcm5lbFNpemUoKSBjb25zdCB7IHJldHVybiBtX2tlcm5lbFNpemU7IH0KICAgICB2b2lkIHNl
dEtlcm5lbFNpemUoY29uc3QgSW50U2l6ZSYpOwpAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBwcmVzZXJ2ZUFscGhhKCkgY29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFscGhhOyB9
CiAgICAgYm9vbCBzZXRQcmVzZXJ2ZUFscGhhKGJvb2wpOwogCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUNvbnZvbHZlTWF0cml4Pj4gZGVj
b2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUNvbnZvbHZlTWF0cml4KGNvbnN0IElu
dFNpemUmIGtlcm5lbFNpemUsIGZsb2F0IGRpdmlzb3IsIGZsb2F0IGJpYXMsIGNvbnN0IEludFBv
aW50JiB0YXJnZXRPZmZzZXQsIEVkZ2VNb2RlVHlwZSwgY29uc3QgRmxvYXRQb2ludCYga2VybmVs
VW5pdExlbmd0aCwgYm9vbCBwcmVzZXJ2ZUFscGhhLCBjb25zdCBWZWN0b3I8ZmxvYXQ+JiBrZXJu
ZWxNYXRyaXgpOwogCkBAIC04Myw2ICs4Niw4MCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxmbG9h
dD4gbV9rZXJuZWxNYXRyaXg7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBG
RUNvbnZvbHZlTWF0cml4OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IG1fa2VybmVsU2l6ZTsKKyAgICBlbmNvZGVyIDw8IG1fZGl2aXNvcjsKKyAgICBl
bmNvZGVyIDw8IG1fYmlhczsKKyAgICBlbmNvZGVyIDw8IG1fdGFyZ2V0T2Zmc2V0OworICAgIGVu
Y29kZXIgPDwgbV9lZGdlTW9kZTsKKyAgICBlbmNvZGVyIDw8IG1fa2VybmVsVW5pdExlbmd0aDsK
KyAgICBlbmNvZGVyIDw8IG1fcHJlc2VydmVBbHBoYTsKKyAgICBlbmNvZGVyIDw8IG1fa2VybmVs
TWF0cml4OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8
RkVDb252b2x2ZU1hdHJpeD4+IEZFQ29udm9sdmVNYXRyaXg6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8SW50U2l6ZT4ga2VybmVsU2l6ZTsKKyAgICBkZWNv
ZGVyID4+IGtlcm5lbFNpemU7CisgICAgaWYgKCFrZXJuZWxTaXplKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZGl2aXNvcjsKKyAgICBk
ZWNvZGVyID4+IGRpdmlzb3I7CisgICAgaWYgKCFkaXZpc29yKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gYmlhczsKKyAgICBkZWNvZGVy
ID4+IGJpYXM7CisgICAgaWYgKCFiaWFzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgc3RkOjpvcHRpb25hbDxJbnRQb2ludD4gdGFyZ2V0T2Zmc2V0OworICAgIGRlY29kZXIg
Pj4gdGFyZ2V0T2Zmc2V0OworICAgIGlmICghdGFyZ2V0T2Zmc2V0KQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxFZGdlTW9kZVR5cGU+IGVkZ2VNb2Rl
OworICAgIGRlY29kZXIgPj4gZWRnZU1vZGU7CisgICAgaWYgKCFlZGdlTW9kZSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4ga2Vy
bmVsVW5pdExlbmd0aDsKKyAgICBkZWNvZGVyID4+IGtlcm5lbFVuaXRMZW5ndGg7CisgICAgaWYg
KCFrZXJuZWxVbml0TGVuZ3RoKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxib29sPiBwcmVzZXJ2ZUFscGhhOworICAgIGRlY29kZXIgPj4gcHJlc2Vy
dmVBbHBoYTsKKyAgICBpZiAoIWtlcm5lbFVuaXRMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxmbG9hdD4+IGtlcm5lbE1hdHJp
eDsKKyAgICBkZWNvZGVyID4+IGtlcm5lbE1hdHJpeDsKKyAgICBpZiAoIWtlcm5lbE1hdHJpeCkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRUNvbnZvbHZlTWF0
cml4OjpjcmVhdGUoKmtlcm5lbFNpemUsICpkaXZpc29yLCAqYmlhcywgKnRhcmdldE9mZnNldCwg
KmVkZ2VNb2RlLCAqa2VybmVsVW5pdExlbmd0aCwgKnByZXNlcnZlQWxwaGEsIFdURk1vdmUoKmtl
cm5lbE1hdHJpeCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBX
VEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkVkZ2VNb2RlVHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkVk
Z2VNb2RlVHlwZSwKKworICAgICAgICBXZWJDb3JlOjpFZGdlTW9kZVR5cGU6OlVua25vd24sCisg
ICAgICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZTo6RHVwbGljYXRlLAorICAgICAgICBXZWJDb3Jl
OjpFZGdlTW9kZVR5cGU6OldyYXAsCisgICAgICAgIFdlYkNvcmU6OkVkZ2VNb2RlVHlwZTo6Tm9u
ZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19GSUxURVJfRUZGRUNUKEZFQ29udm9sdmVNYXRyaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5n
LmgKaW5kZXggMzAyNGQ2NTIxYjM5ZDQyY2E0YTIwZTc1NzdkOTQxNDFmZWYyMDFhNy4uYTJkMTI1
OGUzYWQ2N2M1YjliNGZhYzJkNDVjMjIxODlhNjhkMDhkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRp
bmcuaApAQCAtMzcsMTAgKzM3LDE4IEBAIHB1YmxpYzoKIAogICAgIFdURjo6VGV4dFN0cmVhbSYg
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5
cGUpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8UmVmPEZFRGlmZnVzZUxpZ2h0aW5nPj4gZGVjb2RlKERlY29kZXImKTsK
KwogcHJpdmF0ZToKICAgICBGRURpZmZ1c2VMaWdodGluZyhjb25zdCBDb2xvciYgbGlnaHRpbmdD
b2xvciwgZmxvYXQgc3VyZmFjZVNjYWxlLCBmbG9hdCBkaWZmdXNlQ29uc3RhbnQsIGZsb2F0IGtl
cm5lbFVuaXRMZW5ndGhYLCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNl
PiYmKTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxG
RURpZmZ1c2VMaWdodGluZz4+IEZFRGlmZnVzZUxpZ2h0aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4gRkVMaWdodGluZzo6ZGVjb2RlPERlY29kZXIsIEZFRGlmZnVz
ZUxpZ2h0aW5nPihkZWNvZGVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVEaWZmdXNlTGlnaHRpbmcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxh
Y2VtZW50TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RGlzcGxhY2VtZW50TWFwLmgKaW5kZXggNTNiMDlkNGQ2NjhjN2UyM2EzMDJkMWQzMmRmMmM4ZTg4
ODE1MTliYS4uMzgyNmFhY2NiZjI3Y2NjMjgxZGE3ZTc0MWIxNDVlYzAwZmVhZDUxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNl
bWVudE1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVEaXNwbGFjZW1lbnRNYXAuaApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIENoYW5uZWxTZWxlY3Rv
clR5cGUgewogCiBjbGFzcyBGRURpc3BsYWNlbWVudE1hcCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3Qg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVEaXNwbGFjZW1lbnRNYXA+IGNyZWF0ZShDaGFu
bmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUgeUNo
YW5uZWxTZWxlY3RvciwgZmxvYXQgc2NhbGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWY8RkVEaXNwbGFjZW1lbnRNYXA+IGNyZWF0ZShDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVs
U2VsZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQgc2Nh
bGUpOwogCiAgICAgQ2hhbm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yKCkgY29uc3Qg
eyByZXR1cm4gbV94Q2hhbm5lbFNlbGVjdG9yOyB9CiAgICAgYm9vbCBzZXRYQ2hhbm5lbFNlbGVj
dG9yKGNvbnN0IENoYW5uZWxTZWxlY3RvclR5cGUpOwpAQCAtNDgsNiArNDgsOSBAQCBwdWJsaWM6
CiAgICAgZmxvYXQgc2NhbGUoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlOyB9CiAgICAgYm9vbCBz
ZXRTY2FsZShmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UmVmPEZFRGlzcGxhY2VtZW50TWFwPj4gZGVjb2RlKERlY29kZXImKTsKKwog
cHJpdmF0ZToKICAgICBGRURpc3BsYWNlbWVudE1hcChDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFu
bmVsU2VsZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQp
OwogCkBAIC02NSw2ICs2OCw1MSBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fc2NhbGU7CiB9Owog
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRURpc3BsYWNlbWVudE1hcDo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3hDaGFubmVsU2Vs
ZWN0b3I7CisgICAgZW5jb2RlciA8PCBtX3lDaGFubmVsU2VsZWN0b3I7CisgICAgZW5jb2RlciA8
PCBtX3NjYWxlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxS
ZWY8RkVEaXNwbGFjZW1lbnRNYXA+PiBGRURpc3BsYWNlbWVudE1hcDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxDaGFubmVsU2VsZWN0b3JUeXBlPiB4Q2hh
bm5lbFNlbGVjdG9yOworICAgIGRlY29kZXIgPj4geENoYW5uZWxTZWxlY3RvcjsKKyAgICBpZiAo
IXhDaGFubmVsU2VsZWN0b3IpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBz
dGQ6Om9wdGlvbmFsPENoYW5uZWxTZWxlY3RvclR5cGU+IHlDaGFubmVsU2VsZWN0b3I7CisgICAg
ZGVjb2RlciA+PiB5Q2hhbm5lbFNlbGVjdG9yOworICAgIGlmICgheUNoYW5uZWxTZWxlY3RvcikK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+
IHNjYWxlOworICAgIGRlY29kZXIgPj4gc2NhbGU7CisgICAgaWYgKCFzY2FsZSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRURpc3BsYWNlbWVudE1hcDo6Y3Jl
YXRlKCp4Q2hhbm5lbFNlbGVjdG9yLCAqeUNoYW5uZWxTZWxlY3RvciwgKnNjYWxlKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDaGFubmVsU2VsZWN0b3JUeXBlPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Q2hhbm5lbFNlbGVjdG9y
VHlwZSwKKworICAgICAgICBXZWJDb3JlOjpDSEFOTkVMX1VOS05PV04sCisgICAgICAgIFdlYkNv
cmU6OkNIQU5ORUxfUiwKKyAgICAgICAgV2ViQ29yZTo6Q0hBTk5FTF9HLAorICAgICAgICBXZWJD
b3JlOjpDSEFOTkVMX0IsCisgICAgICAgIFdlYkNvcmU6OkNIQU5ORUxfQQorICAgID47Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZG
RUNUKEZFRGlzcGxhY2VtZW50TWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKaW5kZXggNThmNmU3OTZjNzkzOTE2
YTExNmQyNDZhNDE1NTQ4ZmU0NjZkMDczYy4uNGJmZDYwODQ4YjFhODI0NzI4ODRhYmJkMDgyNGI3
YTc2ZWQwZDQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURyb3BTaGFkb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAKIGNsYXNzIEZFRHJvcFNoYWRvdyA6IHB1YmxpYyBGaWx0ZXJFZmZlY3Qg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVEcm9wU2hhZG93PiBjcmVhdGUoZmxvYXQgc3Rk
WCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgsIGZsb2F0IGR5LCBjb25zdCBDb2xvciYgc2hhZG93Q29s
b3IsIGZsb2F0IHNoYWRvd09wYWNpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8
RkVEcm9wU2hhZG93PiBjcmVhdGUoZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgsIGZs
b2F0IGR5LCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkpOwog
CiAgICAgZmxvYXQgc3RkRGV2aWF0aW9uWCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RkWDsgfQogICAg
IHZvaWQgc2V0U3RkRGV2aWF0aW9uWChmbG9hdCBzdGRYKSB7IG1fc3RkWCA9IHN0ZFg7IH0KQEAg
LTQ3LDYgKzQ3LDkgQEAgcHVibGljOgogICAgIGZsb2F0IHNoYWRvd09wYWNpdHkoKSBjb25zdCB7
IHJldHVybiBtX3NoYWRvd09wYWNpdHk7IH0KICAgICB2b2lkIHNldFNoYWRvd09wYWNpdHkoZmxv
YXQgc2hhZG93T3BhY2l0eSkgeyBtX3NoYWRvd09wYWNpdHkgPSBzaGFkb3dPcGFjaXR5OyB9CiAK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZF
RHJvcFNoYWRvdz4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVEcm9wU2hh
ZG93KGZsb2F0IHN0ZFgsIGZsb2F0IHN0ZFksIGZsb2F0IGR4LCBmbG9hdCBkeSwgY29uc3QgQ29s
b3ImIHNoYWRvd0NvbG9yLCBmbG9hdCBzaGFkb3dPcGFjaXR5KTsKIApAQCAtNjUsNyArNjgsNTQg
QEAgcHJpdmF0ZToKICAgICBDb2xvciBtX3NoYWRvd0NvbG9yOwogICAgIGZsb2F0IG1fc2hhZG93
T3BhY2l0eTsKIH07Ci0gICAgCisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFRHJv
cFNoYWRvdzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBtX3N0ZFg7CisgICAgZW5jb2RlciA8PCBtX3N0ZFk7CisgICAgZW5jb2RlciA8PCBtX2R4Owor
ICAgIGVuY29kZXIgPDwgbV9keTsKKyAgICBlbmNvZGVyIDw8IG1fc2hhZG93Q29sb3I7CisgICAg
ZW5jb2RlciA8PCBtX3NoYWRvd09wYWNpdHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitzdGQ6Om9wdGlvbmFsPFJlZjxGRURyb3BTaGFkb3c+PiBGRURyb3BTaGFkb3c6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN0ZFg7CisgICAg
ZGVjb2RlciA+PiBzdGRYOworICAgIGlmICghc3RkWCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHN0ZFk7CisgICAgZGVjb2RlciA+PiBz
dGRZOworICAgIGlmICghc3RkWSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGR4OworICAgIGRlY29kZXIgPj4gZHg7CisgICAgaWYgKCFk
eCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Zmxv
YXQ+IGR5OworICAgIGRlY29kZXIgPj4gZHk7CisgICAgaWYgKCFkeSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOwor
ICAgIGRlY29kZXIgPj4gc2hhZG93Q29sb3I7CisgICAgaWYgKCFzaGFkb3dDb2xvcikKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHNoYWRv
d09wYWNpdHk7CisgICAgZGVjb2RlciA+PiBzaGFkb3dPcGFjaXR5OworICAgIGlmICghc2hhZG93
T3BhY2l0eSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRURy
b3BTaGFkb3c6OmNyZWF0ZSgqc3RkWCwgKnN0ZFksICpkeCwgKmR5LCAqc2hhZG93Q29sb3IsICpz
aGFkb3dPcGFjaXR5KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVEcm9wU2hhZG93KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCA4ZmMxZDk3
YTgzMjE2NjAyOWZiZWY5OTI1YzJlNWY3YWM2NzEyODc0Li4wYTY1YzY4MjM0MTBlZWZiZTA4ZTY2
OTM3ODA4ZTFhOTdhZTRmNmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEZFRmxvb2QgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPEZFRmxvb2Q+IGNyZWF0ZShjb25zdCBDb2xvciYgZmxvb2RDb2xvciwg
ZmxvYXQgZmxvb2RPcGFjaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFRmxv
b2Q+IGNyZWF0ZShjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5KTsK
IAogICAgIGNvbnN0IENvbG9yJiBmbG9vZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9mbG9vZENv
bG9yOyB9CiAgICAgYm9vbCBzZXRGbG9vZENvbG9yKGNvbnN0IENvbG9yJik7CkBAIC00Myw2ICs0
Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9wZXJhdGluZ0NvbG9yU3BhY2UoY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJikgb3ZlcnJpZGUgeyB9CiAjZW5kaWYKIAorICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVGbG9vZD4+IGRlY29k
ZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVGbG9vZChjb25zdCBDb2xvciYgZmxvb2RD
b2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5KTsKIApAQCAtNTYsNiArNTksMjkgQEAgcHJpdmF0ZToK
ICAgICBmbG9hdCBtX2Zsb29kT3BhY2l0eTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIEZFRmxvb2Q6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbV9mbG9vZENvbG9yOworICAgIGVuY29kZXIgPDwgbV9mbG9vZE9wYWNpdHk7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRUZsb29kPj4g
RkVGbG9vZDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxD
b2xvcj4gZmxvb2RDb2xvcjsKKyAgICBkZWNvZGVyID4+IGZsb29kQ29sb3I7CisgICAgaWYgKCFm
bG9vZENvbG9yKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRp
b25hbDxmbG9hdD4gZmxvb2RPcGFjaXR5OworICAgIGRlY29kZXIgPj4gZmxvb2RPcGFjaXR5Owor
ICAgIGlmICghZmxvb2RPcGFjaXR5KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIEZFRmxvb2Q6OmNyZWF0ZSgqZmxvb2RDb2xvciwgKmZsb29kT3BhY2l0eSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxU
RVJfRUZGRUNUKEZFRmxvb2QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKaW5kZXggODcxODUzZGY0OTEyMDQ0
Nzg5OGM4YmI1MjVmYjQwNGRmZDVmMzE1OS4uOTU2N2EyZjA0YmNlOTIwNTVhMzdlNmNiNWNkMDhh
ZjRlZTdhMjJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFR2F1c3NpYW5CbHVyIDogcHVibGljIEZpbHRlckVmZmVj
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRUdhdXNzaWFuQmx1cj4gY3JlYXRlKGZsb2F0
IHgsIGZsb2F0IHksIEVkZ2VNb2RlVHlwZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxGRUdhdXNzaWFuQmx1cj4gY3JlYXRlKGZsb2F0IHgsIGZsb2F0IHksIEVkZ2VNb2RlVHlwZSk7
CiAKICAgICBmbG9hdCBzdGREZXZpYXRpb25YKCkgY29uc3QgeyByZXR1cm4gbV9zdGRYOyB9CiAg
ICAgdm9pZCBzZXRTdGREZXZpYXRpb25YKGZsb2F0KTsKQEAgLTQ0LDYgKzQ0LDkgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShGbG9hdFNp
emUgc3RkRGV2aWF0aW9uKTsKICAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVPdXRzZXRTaXpl
KEZsb2F0U2l6ZSBzdGREZXZpYXRpb24pOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUdhdXNzaWFuQmx1cj4+IGRlY29kZShEZWNvZGVy
Jik7CisKIHByaXZhdGU6CiAgICAgRkVHYXVzc2lhbkJsdXIoZmxvYXQgeCwgZmxvYXQgeSwgRWRn
ZU1vZGVUeXBlKTsKIApAQCAtNjIsNiArNjUsMzUgQEAgcHJpdmF0ZToKICAgICBFZGdlTW9kZVR5
cGUgbV9lZGdlTW9kZTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFR2F1
c3NpYW5CbHVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IG1fc3RkWDsKKyAgICBlbmNvZGVyIDw8IG1fc3RkWTsKKyAgICBlbmNvZGVyIDw8IG1fZWRn
ZU1vZGU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxG
RUdhdXNzaWFuQmx1cj4+IEZFR2F1c3NpYW5CbHVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzdGRYOworICAgIGRlY29kZXIgPj4gc3RkWDsK
KyAgICBpZiAoIXN0ZFgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGZsb2F0PiBzdGRZOworICAgIGRlY29kZXIgPj4gc3RkWTsKKyAgICBpZiAoIXN0
ZFkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEVk
Z2VNb2RlVHlwZT4gZWRnZU1vZGU7CisgICAgZGVjb2RlciA+PiBlZGdlTW9kZTsKKyAgICBpZiAo
IWVkZ2VNb2RlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZF
R2F1c3NpYW5CbHVyOjpjcmVhdGUoKnN0ZFgsICpzdGRZLCAqZWRnZU1vZGUpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVD
VChGRUdhdXNzaWFuQmx1cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKaW5kZXggZGUwYjM4NmExMWM3MTU4YzUzOGJjYjRh
ODAyYzdjOGNmMGI1Njg3Mi4uMzFjMmFhYWJkM2M1YjE4YzBkY2I2MDIxOTg5YjFhMGIxNmQ3NzEw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUxpZ2h0aW5nLmgKQEAgLTU1LDYgKzU1LDkgQEAgcHVibGljOgogCiAgICAgY29uc3QgTGln
aHRTb3VyY2UmIGxpZ2h0U291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9saWdodFNvdXJjZS5nZXQo
KTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXIsIGNsYXNzIENsYXNzTmFtZT4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UmVmPENsYXNzTmFtZT4+IGRlY29kZShEZWNvZGVyJik7CisKIHBy
b3RlY3RlZDoKICAgICBGRUxpZ2h0aW5nKFR5cGUsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9y
LCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IGRpZmZ1c2VDb25zdGFudCwgZmxvYXQgc3BlY3Vs
YXJDb25zdGFudCwgZmxvYXQgc3BlY3VsYXJFeHBvbmVudCwgZmxvYXQga2VybmVsVW5pdExlbmd0
aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZLCBSZWY8TGlnaHRTb3VyY2U+JiYpOwogCkBAIC03
Nyw0ICs4MCw1OSBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmPExpZ2h0U291cmNlPiBtX2xpZ2h0U291
cmNlOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVMaWdodGluZzo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2xpZ2h0aW5n
Q29sb3I7CisgICAgZW5jb2RlciA8PCBtX3N1cmZhY2VTY2FsZTsKKyAgICBlbmNvZGVyIDw8IG1f
ZGlmZnVzZUNvbnN0YW50OworICAgIGVuY29kZXIgPDwgbV9zcGVjdWxhckNvbnN0YW50OworICAg
IGVuY29kZXIgPDwgbV9zcGVjdWxhckV4cG9uZW50OworICAgIGVuY29kZXIgPDwgbV9rZXJuZWxV
bml0TGVuZ3RoWDsKKyAgICBlbmNvZGVyIDw8IG1fa2VybmVsVW5pdExlbmd0aFk7CisgICAgLy8g
RklYTUU6IGVuY29kZSBtX2xpZ2h0U291cmNlLgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
LCBjbGFzcyBDbGFzc05hbWU+CitzdGQ6Om9wdGlvbmFsPFJlZjxDbGFzc05hbWU+PiBGRUxpZ2h0
aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENvbG9y
PiBsaWdodGluZ0NvbG9yOworICAgIGRlY29kZXIgPj4gbGlnaHRpbmdDb2xvcjsKKyAgICBpZiAo
IWxpZ2h0aW5nQ29sb3IpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGZsb2F0PiBzdXJmYWNlU2NhbGU7CisgICAgZGVjb2RlciA+PiBzdXJmYWNlU2Nh
bGU7CisgICAgaWYgKCFzdXJmYWNlU2NhbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkaWZmdXNlQ29uc3RhbnQ7CisgICAgZGVjb2Rl
ciA+PiBkaWZmdXNlQ29uc3RhbnQ7CisgICAgaWYgKCFkaWZmdXNlQ29uc3RhbnQpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzcGVjdWxh
ckNvbnN0YW50OworICAgIGRlY29kZXIgPj4gc3BlY3VsYXJDb25zdGFudDsKKyAgICBpZiAoIXNw
ZWN1bGFyQ29uc3RhbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGZsb2F0PiBzcGVjdWxhckV4cG9uZW50OworICAgIGRlY29kZXIgPj4gc3BlY3Vs
YXJFeHBvbmVudDsKKyAgICBpZiAoIXNwZWN1bGFyRXhwb25lbnQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBrZXJuZWxVbml0TGVuZ3Ro
WDsKKyAgICBkZWNvZGVyID4+IGtlcm5lbFVuaXRMZW5ndGhYOworICAgIGlmICgha2VybmVsVW5p
dExlbmd0aFgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBrZXJuZWxVbml0TGVuZ3RoWTsKKyAgICBkZWNvZGVyID4+IGtlcm5lbFVuaXRM
ZW5ndGhZOworICAgIGlmICgha2VybmVsVW5pdExlbmd0aFkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAvLyBGSVhNRTogZGVjb2RlIG1fbGlnaHRTb3VyY2UuCisgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKaW5k
ZXggOTIzZDNlOWU1ZmFmZDBlMDQ3ODNmMzBmZGExODdhYTZhMmI2NzY1OS4uOTU5YjQ4YWJlMDg2
ODE2YzM1OGUzYzg2NDlhMTkzYmIwY2VlZWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCkBAIC0yOSwxMyArMjksMTQg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RkVNZXJnZT4gRkVNZXJnZTo6Y3JlYXRl
KCkKK1JlZjxGRU1lcmdlPiBGRU1lcmdlOjpjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZFZmZlY3RJ
bnB1dHMpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVNZXJnZSgpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGRU1lcmdlKG51bWJlck9mRWZmZWN0SW5wdXRzKSk7CiB9CiAKLUZF
TWVyZ2U6OkZFTWVyZ2UoKQorRkVNZXJnZTo6RkVNZXJnZSh1bnNpZ25lZCBudW1iZXJPZkVmZmVj
dElucHV0cykKICAgICA6IEZpbHRlckVmZmVjdChGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFTWVyZ2Up
CisgICAgLCBtX251bWJlck9mRWZmZWN0SW5wdXRzKG51bWJlck9mRWZmZWN0SW5wdXRzKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVN
ZXJnZS5oCmluZGV4IDY0ZWQ0YTc3YjFlMDczZTBjNjFkZDU1M2YwMDgyMGIxZjBmYjY3MTguLjgz
YjBmMWY0NDVmZGExODc3YzFmNzM5ZTExYWY3NmZmODhhOTU2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCkBAIC0yOCwxNiAr
MjgsMzggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGRU1lcmdlIDogcHVibGljIEZp
bHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRU1lcmdlPiBjcmVhdGUoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFTWVyZ2U+IGNyZWF0ZSh1bnNpZ25lZCBu
dW1iZXJPZkVmZmVjdElucHV0cyk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFTWVyZ2U+PiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2
YXRlOgotICAgIEZFTWVyZ2UoKTsKKyAgICBGRU1lcmdlKHVuc2lnbmVkIG51bWJlck9mRWZmZWN0
SW5wdXRzKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVh
dGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0
U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2Vu
dGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB1bnNpZ25lZCBtX251bWJlck9mRWZm
ZWN0SW5wdXRzOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVNZXJnZTo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX251bWJl
ck9mRWZmZWN0SW5wdXRzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRp
b25hbDxSZWY8RkVNZXJnZT4+IEZFTWVyZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG51bWJlck9mRWZmZWN0SW5wdXRzOworICAgIGRl
Y29kZXIgPj4gbnVtYmVyT2ZFZmZlY3RJbnB1dHM7CisgICAgaWYgKCFudW1iZXJPZkVmZmVjdElu
cHV0cykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRU1lcmdl
OjpjcmVhdGUoKm51bWJlck9mRWZmZWN0SW5wdXRzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVNZXJnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3Jw
aG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9y
cGhvbG9neS5oCmluZGV4IDIyYTE1MjExZGZhMTZmYmQyMGY4YTBjMTAzYmZiMDczZjgyMTQwY2Iu
LjgyNWJlOWU0ZGU3OTdkNjYzMTg3NmNlOTFhM2VlOWE3YTNkZDZiODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3ku
aApAQCAtMzQsNyArMzQsNyBAQCBlbnVtIGNsYXNzIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgewog
CiBjbGFzcyBGRU1vcnBob2xvZ3kgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEZFTW9ycGhvbG9neT4gY3JlYXRlKE1vcnBob2xvZ3lPcGVyYXRvclR5cGUs
IGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJhZGl1c1kpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8RkVNb3JwaG9sb2d5PiBjcmVhdGUoTW9ycGhvbG9neU9wZXJhdG9yVHlwZSwgZmxvYXQg
cmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CiAKICAgICBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIG1v
cnBob2xvZ3lPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGJvb2wgc2V0
TW9ycGhvbG9neU9wZXJhdG9yKE1vcnBob2xvZ3lPcGVyYXRvclR5cGUpOwpAQCAtNDUsNiArNDUs
OSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgcmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVz
WTsgfQogICAgIGJvb2wgc2V0UmFkaXVzWShmbG9hdCk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFTW9ycGhvbG9neT4+IGRlY29kZShE
ZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVNb3JwaG9sb2d5KE1vcnBob2xvZ3lPcGVyYXRv
clR5cGUsIGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJhZGl1c1kpOwogCkBAIC02MSw2ICs2NCw0OSBA
QCBwcml2YXRlOgogICAgIGZsb2F0IG1fcmFkaXVzWTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+Cit2b2lkIEZFTW9ycGhvbG9neTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCBtX3R5cGU7CisgICAgZW5jb2RlciA8PCBtX3JhZGl1c1g7Cisg
ICAgZW5jb2RlciA8PCBtX3JhZGl1c1k7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citz
dGQ6Om9wdGlvbmFsPFJlZjxGRU1vcnBob2xvZ3k+PiBGRU1vcnBob2xvZ3k6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8TW9ycGhvbG9neU9wZXJhdG9yVHlw
ZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gcmFkaXVzWDsK
KyAgICBkZWNvZGVyID4+IHJhZGl1c1g7CisgICAgaWYgKCFyYWRpdXNYKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gcmFkaXVzWTsKKyAg
ICBkZWNvZGVyID4+IHJhZGl1c1k7CisgICAgaWYgKCFyYWRpdXNZKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFTW9ycGhvbG9neTo6Y3JlYXRlKCp0eXBlLCAq
cmFkaXVzWCwgKnJhZGl1c1kpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1vcnBo
b2xvZ3lPcGVyYXRvclR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAg
ICAgICBXZWJDb3JlOjpNb3JwaG9sb2d5T3BlcmF0b3JUeXBlLAorCisgICAgICAgIFdlYkNvcmU6
Ok1vcnBob2xvZ3lPcGVyYXRvclR5cGU6OlVua25vd24sCisgICAgICAgIFdlYkNvcmU6Ok1vcnBo
b2xvZ3lPcGVyYXRvclR5cGU6OkVyb2RlLAorICAgICAgICBXZWJDb3JlOjpNb3JwaG9sb2d5T3Bl
cmF0b3JUeXBlOjpEaWxhdGUKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRU1vcnBob2xvZ3kpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKaW5k
ZXggMTBlYjMzYzk0Zjk4YjdkY2EzNjc1MWM2Zjg4ZjE2OTgxNjU5OTBmOC4uNmJhMTdmZWZmNjIx
NDdjOTc1ZmM3ZTU4ZTZmZjMwNDQzNTEzNGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaApAQCAtMjgsNyArMjgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFT2Zmc2V0IDogcHVibGljIEZpbHRlckVmZmVj
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRU9mZnNldD4gY3JlYXRlKGZsb2F0IGR4LCBm
bG9hdCBkeSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRU9mZnNldD4gY3JlYXRl
KGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAKICAgICBmbG9hdCBkeCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZHg7IH0KICAgICB2b2lkIHNldER4KGZsb2F0KTsKQEAgLTM2LDYgKzM2LDkgQEAgcHVibGljOgog
ICAgIGZsb2F0IGR5KCkgY29uc3QgeyByZXR1cm4gbV9keTsgfQogICAgIHZvaWQgc2V0RHkoZmxv
YXQpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFJlZjxGRU9mZnNldD4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVPZmZz
ZXQoZmxvYXQgZHgsIGZsb2F0IGR5KTsKIApAQCAtNTEsNiArNTQsMjkgQEAgcHJpdmF0ZToKICAg
ICBmbG9hdCBtX2R5OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVPZmZz
ZXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9k
eDsKKyAgICBlbmNvZGVyIDw8IG1fZHk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citz
dGQ6Om9wdGlvbmFsPFJlZjxGRU9mZnNldD4+IEZFT2Zmc2V0OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkeDsKKyAgICBkZWNvZGVyID4+IGR4
OworICAgIGlmICghZHgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6
Om9wdGlvbmFsPGZsb2F0PiBkeTsKKyAgICBkZWNvZGVyID4+IGR5OworICAgIGlmICghZHkpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVPZmZzZXQ6OmNyZWF0
ZSgqZHgsICpkeSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5n
LmgKaW5kZXggNWM3ZTgxY2UzMDQ3MjFhZTgxYjE0MzY0NGI3NjM4OWI3MzE5OTMzZC4uOGE2ZmM0
YjAzNjA3NzA4OGVkYWUyMzNmZjQ3ZmFkY2I0NTkzZTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdo
dGluZy5oCkBAIC0zOCwxMCArMzgsMTggQEAgcHVibGljOgogCiAgICAgV1RGOjpUZXh0U3RyZWFt
JiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9u
VHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVTcGVjdWxhckxpZ2h0aW5nPj4gZGVjb2RlKERlY29kZXIm
KTsKKwogcHJpdmF0ZToKICAgICBGRVNwZWN1bGFyTGlnaHRpbmcoY29uc3QgQ29sb3ImIGxpZ2h0
aW5nQ29sb3IsIGZsb2F0IHN1cmZhY2VTY2FsZSwgZmxvYXQgc3BlY3VsYXJDb25zdGFudCwgZmxv
YXQgc3BlY3VsYXJFeHBvbmVudCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5l
bFVuaXRMZW5ndGhZLCBSZWY8TGlnaHRTb3VyY2U+JiYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFU3BlY3VsYXJMaWdodGluZz4+IEZFU3BlY3Vs
YXJMaWdodGluZzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIEZFTGln
aHRpbmc6OmRlY29kZTxEZWNvZGVyLCBGRVNwZWN1bGFyTGlnaHRpbmc+KGRlY29kZXIpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVS
X0VGRkVDVChGRVNwZWN1bGFyTGlnaHRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAppbmRleCBmYjI2NTNhZjgyM2U3M2VmYTJhYTk1
NjhkNmI2NTE4Y2ZmNmM5MDRhLi43ZDM5Nzk4NTc4ODFkYTcyNTc0MWJiOTllMGNhNjRjNDQ0YTgw
MDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUaWxlLmgKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xh
c3MgRkVUaWxlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxGRVRpbGU+IGNyZWF0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVUaWxl
PiBjcmVhdGUoKTsKIAogcHJpdmF0ZToKICAgICBGRVRpbGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCmluZGV4
IDE3NWZmZjc0MjgyNmZjYWMyMmNkZjNiODM2ZDJjOWI5NzA4MDEwOTYuLmI4ZTkzYmMwMWIyNWI0
MjkwYzRhMTU0MzllZWFjNDcyMGY0ODllODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaApAQCAtMzcsNyArMzcs
NyBAQCBlbnVtIGNsYXNzIFR1cmJ1bGVuY2VUeXBlIHsKIAogY2xhc3MgRkVUdXJidWxlbmNlIDog
cHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRVR1cmJ1bGVu
Y2U+IGNyZWF0ZShUdXJidWxlbmNlVHlwZSwgZmxvYXQgYmFzZUZyZXF1ZW5jeVgsIGZsb2F0IGJh
c2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0YXZlcywgZmxvYXQgc2VlZCwgYm9vbCBzdGl0Y2hUaWxl
cyk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRVR1cmJ1bGVuY2U+IGNyZWF0ZShU
dXJidWxlbmNlVHlwZSwgZmxvYXQgYmFzZUZyZXF1ZW5jeVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZ
LCBpbnQgbnVtT2N0YXZlcywgZmxvYXQgc2VlZCwgYm9vbCBzdGl0Y2hUaWxlcyk7CiAKICAgICBU
dXJidWxlbmNlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBz
ZXRUeXBlKFR1cmJ1bGVuY2VUeXBlKTsKQEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgogICAgIGJv
b2wgc3RpdGNoVGlsZXMoKSBjb25zdCB7IHJldHVybiBtX3N0aXRjaFRpbGVzOyB9CiAgICAgYm9v
bCBzZXRTdGl0Y2hUaWxlcyhib29sKTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVUdXJidWxlbmNlPj4gZGVjb2RlKERlY29kZXImKTsK
KwogcHJpdmF0ZToKICAgICBGRVR1cmJ1bGVuY2UoVHVyYnVsZW5jZVR5cGUsIGZsb2F0IGJhc2VG
cmVxdWVuY3lYLCBmbG9hdCBiYXNlRnJlcXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0IHNl
ZWQsIGJvb2wgc3RpdGNoVGlsZXMpOwogCkBAIC03NCw2ICs3Nyw2NyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9zdGl0Y2hUaWxlczsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lk
IEZFVHVyYnVsZW5jZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBtX3R5cGU7CisgICAgZW5jb2RlciA8PCBtX2Jhc2VGcmVxdWVuY3lYOworICAgIGVu
Y29kZXIgPDwgbV9iYXNlRnJlcXVlbmN5WTsKKyAgICBlbmNvZGVyIDw8IG1fbnVtT2N0YXZlczsK
KyAgICBlbmNvZGVyIDw8IG1fc2VlZDsKKyAgICBlbmNvZGVyIDw8IG1fc3RpdGNoVGlsZXM7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRVR1cmJ1bGVu
Y2U+PiBGRVR1cmJ1bGVuY2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6
b3B0aW9uYWw8VHVyYnVsZW5jZVR5cGU+IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOworICAg
IGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8ZmxvYXQ+IGJhc2VGcmVxdWVuY3lYOworICAgIGRlY29kZXIgPj4gYmFzZUZyZXF1ZW5j
eVg7CisgICAgaWYgKCFiYXNlRnJlcXVlbmN5WCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGJhc2VGcmVxdWVuY3lZOworICAgIGRlY29k
ZXIgPj4gYmFzZUZyZXF1ZW5jeVk7CisgICAgaWYgKCFiYXNlRnJlcXVlbmN5WSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBudW1PY3RhdmVz
OworICAgIGRlY29kZXIgPj4gbnVtT2N0YXZlczsKKyAgICBpZiAoIW51bU9jdGF2ZXMpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzZWVk
OworICAgIGRlY29kZXIgPj4gc2VlZDsKKyAgICBpZiAoIXNlZWQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN0aXRjaFRpbGVzOworICAg
IGRlY29kZXIgPj4gc3RpdGNoVGlsZXM7CisgICAgaWYgKCFzdGl0Y2hUaWxlcykKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRVR1cmJ1bGVuY2U6OmNyZWF0ZSgq
dHlwZSwgKmJhc2VGcmVxdWVuY3lYLCAqYmFzZUZyZXF1ZW5jeVksICpudW1PY3RhdmVzLCAqc2Vl
ZCwgKnN0aXRjaFRpbGVzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3Bh
Y2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpUdXJidWxl
bmNlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNv
cmU6OlR1cmJ1bGVuY2VUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OlR1cmJ1bGVuY2VUeXBlOjpV
bmtub3duLAorICAgICAgICBXZWJDb3JlOjpUdXJidWxlbmNlVHlwZTo6RnJhY3RhbE5vaXNlLAor
ICAgICAgICBXZWJDb3JlOjpUdXJidWxlbmNlVHlwZTo6VHVyYnVsZW5jZQorICAgID47Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZG
RUNUKEZFVHVyYnVsZW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyLmNwcAppbmRleCA1MmRjMzVkNmQ2MWQzODgzNWQ0MGNlNjMzZGUw
NmY2NjQ1M2VkMWViLi41Nzk5YTAzNjVlMTUwZjM0NTdlZGJhMTIyZTk5OWFlZmI4NmU0MzYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXIuY3BwCkBAIC05OCw5ICs5OCwxMCBAQCBib29sIEZpbHRlcjo6Y2xhbXBGaWx0ZXJSZWdpb25J
Zk5lZWRlZCgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZlB0cjxGaWx0ZXJJbWFnZT4gRmls
dGVyOjphcHBseShJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UpCitSZWZQdHI8RmlsdGVySW1hZ2U+
IEZpbHRlcjo6YXBwbHkoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZUltYWdlUmVjdCkKIHsKICAgICBzZXRTb3VyY2VJbWFnZShzb3VyY2VJbWFnZSk7Cisg
ICAgc2V0U291cmNlSW1hZ2VSZWN0KHNvdXJjZUltYWdlUmVjdCk7CiAKICAgICBhdXRvIHJlc3Vs
dCA9IGFwcGx5KCk7CiAgICAgaWYgKCFyZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAppbmRleCBjYTFkOTUzNGM3ZjhiMTgwNmQ4
MWE1ZDIwMjdmOGM0OTJhZTIyODNhLi5jMzNlZDA4MjhiMTNhYTc2MTJjMTRhM2M4MzZmMWRlYTkx
ODIwOGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U291cmNl
SW1hZ2UoUmVmUHRyPEltYWdlQnVmZmVyPiYmIHNvdXJjZUltYWdlKSB7IG1fc291cmNlSW1hZ2Ug
PSBXVEZNb3ZlKHNvdXJjZUltYWdlKTsgfQogCiAgICAgQ2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jbGlwT3BlcmF0aW9uOyB9CisgICAgdm9pZCBzZXRDbGlw
T3BlcmF0aW9uKENsaXBPcGVyYXRpb24gY2xpcE9wZXJhdGlvbikgeyBtX2NsaXBPcGVyYXRpb24g
PSBjbGlwT3BlcmF0aW9uOyB9CiAKICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSByZXNvbHZlZFNpemUo
Y29uc3QgRmxvYXRTaXplJiBzaXplKSBjb25zdCB7IHJldHVybiBzaXplOyB9CiAKQEAgLTcyLDkg
KzczLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGNsYW1wRmlsdGVyUmVnaW9uSWZOZWVkZWQoKTsK
ICAgICAKICAgICB2aXJ0dWFsIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoKSA9IDA7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgUmVmUHRyPEZpbHRlckltYWdlPiBhcHBseShJbWFnZUJ1ZmZlciogc291
cmNlSW1hZ2UpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHko
SW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVj
dCk7CiAKIHByb3RlY3RlZDoKKyAgICB1c2luZyBGaWx0ZXJGdW5jdGlvbjo6RmlsdGVyRnVuY3Rp
b247CiAgICAgRmlsdGVyKEZpbHRlcjo6VHlwZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRT
aXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9wZXJhdGlvbiA9IENsaXBPcGVyYXRpb246OkludGVyc2Vj
dCk7CiAgICAgRmlsdGVyKEZpbHRlcjo6VHlwZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRT
aXplJiBmaWx0ZXJTY2FsZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9uLCBDbGlwT3BlcmF0aW9uID0gQ2xpcE9wZXJhdGlvbjo6
SW50ZXJzZWN0KTsKIApAQCAtOTEsMyArOTMsMTYgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6RmlsdGVyOjpDbGlwT3BlcmF0aW9uPiB7CisgICAgdXNpbmcgdmFs
dWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyOjpDbGlwT3BlcmF0aW9u
LAorCisgICAgICAgIFdlYkNvcmU6OkZpbHRlcjo6Q2xpcE9wZXJhdGlvbjo6SW50ZXJzZWN0LAor
ICAgICAgICBXZWJDb3JlOjpGaWx0ZXI6OkNsaXBPcGVyYXRpb246OlVuaXRlCisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAppbmRleCBhNzM4YTdkMDI2ZDg4
ZmRkNDgxZmZhOTA3MzBhYmZlMjVhNWM2NjdiLi4zMDMzZGIwMjEwZDNlMWYxMjNiNGI5YjVkNzkz
NWIxYWM4NGQwYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaApAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNvdXJjZUdyYXBoaWMgOiBwdWJsaWMgRmlsdGVyRWZmZWN0
IHsKIHB1YmxpYzogICAgICAgIAotICAgIHN0YXRpYyBSZWY8U291cmNlR3JhcGhpYz4gY3JlYXRl
KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTb3VyY2VHcmFwaGljPiBjcmVhdGUo
KTsKIAogICAgIHN0YXRpYyBBdG9tU3RyaW5nIGVmZmVjdE5hbWUoKSB7IHJldHVybiBGaWx0ZXJF
ZmZlY3Q6OnNvdXJjZUdyYXBoaWNOYW1lKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NT
RmlsdGVyLmNwcAppbmRleCBjOTE5ZDk4MDU0M2I3ODlmNWI5ZTU5ZTlhMjYxNWNhNzkwZTdmYmRk
Li5hOTc4YjlhZWYwZWJiMGFiYTM1NzAwOGVlYWI1MzdjZTVjMjA1MTM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcApAQCAtNTIsNiArNTIsMTEgQEAgUmVmUHRyPENTU0Zp
bHRlcj4gQ1NTRmlsdGVyOjpjcmVhdGUoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgb3BlcmF0aW9u
cywgUmVuZGVyaW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NGaWx0ZXIocmVuZGVyaW5n
TW9kZSwgc2NhbGVGYWN0b3IsIGNsaXBPcGVyYXRpb24sIGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVs
cywgaGFzRmlsdGVyVGhhdFNob3VsZEJlUmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW4pKTsKIH0K
IAorUmVmUHRyPENTU0ZpbHRlcj4gQ1NTRmlsdGVyOjpjcmVhdGUoVmVjdG9yPFJlZjxGaWx0ZXJG
dW5jdGlvbj4+JiYgZnVuY3Rpb25zKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRmls
dGVyKFdURk1vdmUoZnVuY3Rpb25zKSkpOworfQorCiBDU1NGaWx0ZXI6OkNTU0ZpbHRlcihSZW5k
ZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHNjYWxlRmFjdG9yLCBDbGlwT3BlcmF0aW9u
IGNsaXBPcGVyYXRpb24sIGJvb2wgaGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxzLCBib29sIGhhc0Zp
bHRlclRoYXRTaG91bGRCZVJlc3RyaWN0ZWRCeVNlY3VyaXR5T3JpZ2luKQogICAgIDogRmlsdGVy
KEZpbHRlcjo6VHlwZTo6Q1NTRmlsdGVyLCByZW5kZXJpbmdNb2RlLCBGbG9hdFNpemUgeyBzY2Fs
ZUZhY3Rvciwgc2NhbGVGYWN0b3IgfSwgY2xpcE9wZXJhdGlvbikKICAgICAsIG1faGFzRmlsdGVy
VGhhdE1vdmVzUGl4ZWxzKGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscykKQEAgLTU5LDYgKzY0LDEy
IEBAIENTU0ZpbHRlcjo6Q1NTRmlsdGVyKFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxv
YXQgc2NhbGVGYWN0b3IsIENsaXBPcGVyYXRpCiB7CiB9CiAKK0NTU0ZpbHRlcjo6Q1NTRmlsdGVy
KFZlY3RvcjxSZWY8RmlsdGVyRnVuY3Rpb24+PiYmIGZ1bmN0aW9ucykKKyAgICA6IEZpbHRlcihU
eXBlOjpDU1NGaWx0ZXIpCisgICAgLCBtX2Z1bmN0aW9ucyhXVEZNb3ZlKGZ1bmN0aW9ucykpCit7
Cit9CisKIHN0YXRpYyBSZWZQdHI8RmlsdGVyRWZmZWN0PiBjcmVhdGVCbHVyRWZmZWN0KGNvbnN0
IEJsdXJGaWx0ZXJPcGVyYXRpb24mIGJsdXJPcGVyYXRpb24sIEZpbHRlcjo6Q2xpcE9wZXJhdGlv
biBjbGlwT3BlcmF0aW9uKQogewogICAgIGZsb2F0IHN0ZERldmlhdGlvbiA9IGZsb2F0VmFsdWVG
b3JMZW5ndGgoYmx1ck9wZXJhdGlvbi5zdGREZXZpYXRpb24oKSwgMCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQ1NTRmlsdGVyLmgKaW5kZXggNzNhNGU4N2E4ZjU1ZGE4MjJiODJlOWRlOTMyNjJkNWQ4
NzhlMjc0ZC4uOTkyMTc3ZmYwNGQ4ODFkNmMwMmE0YTY3ZjAyMjFlZWJlYWYxNGMyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaApAQCAtNDMsNiArNDMsOSBAQCBjbGFzcyBDU1NG
aWx0ZXIgZmluYWwgOiBwdWJsaWMgRmlsdGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPENTU0ZpbHRlcj4gY3JlYXRlKGNvbnN0IEZp
bHRlck9wZXJhdGlvbnMmLCBSZW5kZXJpbmdNb2RlLCBmbG9hdCBzY2FsZUZhY3RvciA9IDEsIENs
aXBPcGVyYXRpb24gPSBDbGlwT3BlcmF0aW9uOjpJbnRlcnNlY3QpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBSZWZQdHI8Q1NTRmlsdGVyPiBjcmVhdGUoVmVjdG9yPFJlZjxGaWx0ZXJGdW5j
dGlvbj4+JiYpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxGaWx0ZXJGdW5jdGlvbj4+JiBmdW5j
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uczsgfQogCiAgICAgdm9pZCBzZXRTb3Vy
Y2VJbWFnZVJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgYm9vbCBidWlsZEZpbHRlckZ1bmN0
aW9ucyhSZW5kZXJFbGVtZW50JiwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpOwpAQCAtNjIsNiAr
NjUsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgQ1NTRmlsdGVyKFJlbmRlcmluZ01vZGUs
IGZsb2F0IHNjYWxlRmFjdG9yLCBDbGlwT3BlcmF0aW9uLCBib29sIGhhc0ZpbHRlclRoYXRNb3Zl
c1BpeGVscywgYm9vbCBoYXNGaWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9y
aWdpbik7CisgICAgQ1NTRmlsdGVyKFZlY3RvcjxSZWY8RmlsdGVyRnVuY3Rpb24+PiYmKTsKIAog
I2lmIFVTRShDT1JFX0lNQUdFKQogICAgIGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmco
KSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckZpbHRlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
RmlsdGVycy5jcHAKaW5kZXggYWU3MTIyNDRmOWM4NDJkMTg3NmIyMDk5YTZjM2M5MDc3NzJhYzBk
MS4uY2FkZmY0MTY2M2Q5ZmNlY2FkNWM0NWI1Zjg3NDc5MzBkYjgwMzIzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKQEAgLTIwNyw3ICsy
MDcsNyBAQCB2b2lkIFJlbmRlckxheWVyRmlsdGVyczo6YXBwbHlGaWx0ZXJFZmZlY3QoR3JhcGhp
Y3NDb250ZXh0JiBkZXN0aW5hdGlvbkNvbnRleHQpCiAKICAgICBhdXRvJiBmaWx0ZXIgPSAqbV9m
aWx0ZXI7CiAKLSAgICBkZXN0aW5hdGlvbkNvbnRleHQuZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIo
bV9zb3VyY2VJbWFnZS5nZXQoKSwgZmlsdGVyKTsKKyAgICBkZXN0aW5hdGlvbkNvbnRleHQuZHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIobV9zb3VyY2VJbWFnZS5nZXQoKSwgZmlsdGVyLnNvdXJjZUlt
YWdlUmVjdCgpLCBmaWx0ZXIpOwogICAgIGZpbHRlci5jbGVhckludGVybWVkaWF0ZVJlc3VsdHMo
KTsKIAogICAgIExPR19XSVRIX1NUUkVBTShGaWx0ZXJzLCBzdHJlYW0gPDwgIlJlbmRlckxheWVy
RmlsdGVycyAiIDw8IHRoaXMgPDwgIiBhcHBseUZpbHRlckVmZmVjdCBkb25lXG4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZp
bHRlci5jcHAKaW5kZXggYjAzMGMwZjY2NTYxNTFjMTExYTIxZTk5ZDMwMDEyMjEzNjZmNDA1ZC4u
NmI2MWIyYzg2NjVkM2YzYWIxMjEwODFhOTBkNzA2ZjM4YTAwN2YzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5j
cHAKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0
QXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgR3JhcGhpYwogCiAgICAgaWYg
KCFmaWx0ZXJEYXRhLmJvdW5kYXJpZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZpbHRlckRhdGEu
c3RhdGUgPSBGaWx0ZXJEYXRhOjpCdWlsdDsKLSAgICAgICAgY29udGV4dC0+ZHJhd0ZpbHRlcmVk
SW1hZ2VCdWZmZXIoZmlsdGVyRGF0YS5zb3VyY2VHcmFwaGljQnVmZmVyLmdldCgpLCAqZmlsdGVy
RGF0YS5maWx0ZXIpOworICAgICAgICBjb250ZXh0LT5kcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihm
aWx0ZXJEYXRhLnNvdXJjZUdyYXBoaWNCdWZmZXIuZ2V0KCksIGZpbHRlckRhdGEuZHJhd2luZ1Jl
Z2lvbiwgKmZpbHRlckRhdGEuZmlsdGVyKTsKICAgICB9CiAKICAgICBmaWx0ZXJEYXRhLnNvdXJj
ZUdyYXBoaWNCdWZmZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxl
bWVudC5jcHAKaW5kZXggZmI0OTNlNTlkZDgyYmM2OWFkNzkxYjM3NWNlOGE4MjkyY2Q3YzgxZi4u
ODU3MzM3YmMzYzkwNzU1YjVjZjhkMWFiMTFjYThlZmQzMGMzNjI0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIFJlZlB0cjxGaWx0
ZXJFZmZlY3Q+IFNWR0ZFTWVyZ2VFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyJiBmaWx0
ZXJCdWlsZGVyKSBjCiAgICAgaWYgKG1lcmdlSW5wdXRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGVmZmVjdCA9IEZFTWVyZ2U6OmNyZWF0ZSgpOworICAg
IGF1dG8gZWZmZWN0ID0gRkVNZXJnZTo6Y3JlYXRlKG1lcmdlSW5wdXRzLnNpemUoKSk7CiAgICAg
ZWZmZWN0LT5pbnB1dEVmZmVjdHMoKSA9IFdURk1vdmUobWVyZ2VJbnB1dHMpOwogICAgIHJldHVy
biBlZmZlY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggYWRhNTRkNDE4
YTBiNjAyNTQ2YjE3ZTU3YzY2ZGQwY2Q2OTAzMGQxMy4uNWUyM2RkMmFmZjI4ZmVhNDk3OWQ2OWNm
YWUzYWQ0ODlmY2E2ZWViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMjIw
LDYgKzIyMCwyMyBAQCB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmVuZENsaXBUb0Ry
YXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbgogICAgIGRyYXdpbmdDb250ZXh0
KCkuY2xpcFRvSW1hZ2VCdWZmZXIoKm1hc2tJbWFnZUJ1ZmZlciwgZGVzdGluYXRpb24pOwogfQog
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVy
KHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlk
ZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJl
ZmVyZW5jZSBmaWx0ZXJSZWZlcmVuY2UpCit7CisgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBzb3Vy
Y2VJbWFnZTsKKworICAgIGlmIChzb3VyY2VJbWFnZUlkZW50aWZpZXIpIHsKKyAgICAgICAgc291
cmNlSW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkSW1hZ2VCdWZmZXIoeyAqc291cmNlSW1h
Z2VJZGVudGlmaWVyLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyIH0pOworICAgICAgICBpZiAoIXNv
dXJjZUltYWdlKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gZmlsdGVyID0gZmlsdGVy
UmVmZXJlbmNlLnRha2VGaWx0ZXIoKTsKKworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNvdXJjZUltYWdlSWRlbnRpZmllciwgc291cmNlSW1hZ2VS
ZWN0LCBXVEZNb3ZlKGZpbHRlcikpLCBzb3VyY2VJbWFnZS5nZXQoKSk7Cit9CisKIHZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0dseXBocyhEaXNwbGF5TGlzdDo6RHJhd0dseXBo
cyYmIGl0ZW0pCiB7CiAgICAgYXV0byBmb250SWRlbnRpZmllciA9IGl0ZW0uZm9udElkZW50aWZp
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDU5ODJjYmFlYjg3ZTY2MGM1YmFi
NzdhNmQ3YTI5NTcwMzU3YmJmOWYuLjY5NmQ2Y2IxNjI3Njk5MGViNGVjMDc4MmM0MGQzZDdiMGE4
MDk2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMzcsNiArMzcsMTAgQEAKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25h
bWVzcGFjZSBJUEMgeworY2xhc3MgRmlsdGVyUmVmZXJlbmNlOworfQorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKQEAgLTc3LDYgKzgxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgYmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlJik7CiAgICAgdm9pZCBlbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbik7CiAgICAgdm9pZCBkcmF3R2x5cGhzKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzJiYpOworICAgIHZvaWQgZHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXIoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+
IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2VJ
bWFnZVJlY3QsIElQQzo6RmlsdGVyUmVmZXJlbmNlKTsKICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZl
cihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uUmVjdCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYpOwogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
aW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRp
b25zJik7CiAgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdl
U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc3BhY2lu
ZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KaW5kZXggNWMxNDA5M2EzYjlhYmEwYTFiZTcy
MDY4N2VmYjQ2NjhiNTk1YTM2MS4uMDljNDA5N2RlYmViMzQzMWM4ZWYyODQ0ZTdhZjk1MmY0ODVl
YWM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KQEAg
LTQ3LDYgKzQ3LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBOb3RS
ZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgQmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMoV2ViQ29y
ZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9uLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkKICAgICBFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoV2ViQ29yZTo6RmxvYXRS
ZWN0IGRlc3RpbmF0aW9uKQogICAgIERyYXdHbHlwaHMoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHMgaXRlbSkKKyAgICBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpGbG9hdFJlY3Qgc291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVy
ZW5jZSBmaWx0ZXIpCiAgICAgRHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBk
ZXN0aW5hdGlvblJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29y
ZTo6SW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucykKICAgICBEcmF3TmF0aXZlSW1hZ2UoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RSZWN0LCBXZWJD
b3JlOjpGbG9hdFJlY3Qgc3JjUmVjdCwgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRp
b25zIG9wdGlvbnMpCiAgICAgRHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwg
V2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGlsZVJlY3Qs
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0sIFdlYkNvcmU6OkZsb2F0UG9pbnQg
cGhhc2UsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzcGFjaW5nLCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBmY2M3
MmJmMjBhMmZiMmM2Yjk5YmEwZWU2ZjgyMDZhNGNhYjZmZmMwLi5iMGRmNTM0MzQ0OTc4MmZhNGNl
MzFiY2YzMzJkOGZjNWJjYzhiMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJGaWx0ZXJS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCIK
QEAgLTMxOCw2ICszMTksMzMgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFy
ZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGkKICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZSkpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmdldEZpbHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UmJiBmaWx0ZXJSZWZlcmVu
Y2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisK
KyAgICBhdXRvIGZpbHRlciA9IGZpbHRlclJlZmVyZW5jZS50YWtlRmlsdGVyKCk7CisKKyAgICBT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CisgICAgWyZdKCkgeworICAgICAgICBhdXRv
IGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsg
aWRlbnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRp
ZmllcigpIH0pOworICAgICAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBhdXRvIGltYWdlID0gaW1hZ2VCdWZmZXItPmZpbHRlcmVkSW1hZ2UoZmlsdGVy
KTsKKyAgICAgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0
byBpbWFnZVNpemUgPSBpbWFnZS0+c2l6ZSgpOworICAgICAgICBhdXRvIGJpdG1hcCA9IFNoYXJl
YWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKEludFNpemUoaW1hZ2VTaXplKSwgeyBpbWFnZUJ1
ZmZlci0+Y29sb3JTcGFjZSgpIH0pOworICAgICAgICBpZiAoIWJpdG1hcCkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYml0bWFwLT5jcmVhdGVHcmFwaGljc0Nv
bnRleHQoKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBjb250ZXh0LT5kcmF3SW1hZ2UoKmltYWdlLCBGbG9hdFBvaW50KCkpOworICAgICAgICBi
aXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5kbGUpOworICAgIH0oKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKGhhbmRsZSkpOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGhhbmRsZSwg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG5hdGl2ZUltYWdlUmVzb3VyY2VJZGVudGlmaWVy
KQogewogICAgIC8vIEltbWVkaWF0ZWx5IHR1cm4gdGhlIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciAod2hpY2ggaXMgZXJyb3ItcHJvbmUpIHRvIGEgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggOTg5YmM5MzBmNDg2ZTFjNmRl
N2QxNjZhNDM0YWI1ZWUwNmFjOWVmNS4uZTM1NzE1ZGQxN2ZlZTY0MzQ1YjIyNjJkNjhjZWJlYTRk
NzRhYjk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC01OCw2ICs1OCwxMCBAQCBlbnVtIGNs
YXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwogCiB9CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3Mg
RmlsdGVyUmVmZXJlbmNlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzczsKQEAgLTEwOCw2ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZ2V0RGF0YVVSTEZvckltYWdlQnVmZmVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24sIFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcmJik+JiYpOwogICAgIHZvaWQgZ2V0RGF0YUZvckltYWdlQnVmZmVyKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9y
PHVpbnQ4X3Q+JiYpPiYmKTsKICAgICB2b2lkIGdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVm
ZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2Vy
dmVSZXNvbHV0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlJiYpPiYmKTsKKyAgICB2b2lkIGdldEZpbHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcihXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIElQQzo6RmlsdGVyUmVmZXJlbmNlJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmJik+JiYpOwog
ICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjYWNoZUZv
bnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggYTE0MmY0ODk2NmY1YzQ5
NzU5NDU2NTQ3NzJjNzljMzE5NzZmNTNkYy4uZTdjMWJmYTY3ZjQzM2NmNDRjOGUxYzJlZjg5YzNl
NjZhNjlmOWQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAg
LTMxLDYgKzMxLDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZD
b3VudGVkIFN0cmVhbSB7CiAgICAgR2V0RGF0YVVSTEZvckltYWdlQnVmZmVyKFN0cmluZyBtaW1l
VHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIGVudW06dWludDhfdCBXZWJDb3Jl
OjpQcmVzZXJ2ZVJlc29sdXRpb24gcHJlc2VydmVSZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoU3Ry
aW5nIHVybFN0cmluZykgU3luY2hyb25vdXMKICAgICBHZXREYXRhRm9ySW1hZ2VCdWZmZXIoU3Ry
aW5nIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgLT4g
KFZlY3Rvcjx1aW50OF90PiBkYXRhKSBTeW5jaHJvbm91cwogICAgIEdldFNoYXJlYWJsZUJpdG1h
cEZvckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2
ZVJlc29sdXRpb24pIC0+IChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSkg
U3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlUmVwbHkKKyAgICBHZXRGaWx0ZXJlZEltYWdl
Rm9ySW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdl
QnVmZmVyLCBJUEM6OkZpbHRlclJlZmVyZW5jZSBmaWx0ZXIpIC0+IChXZWJLaXQ6OlNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSkgU3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlUmVw
bHkKICAgICBDYWNoZU5hdGl2ZUltYWdlKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUg
aGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKSBOb3RTdHJlYW1FbmNvZGFibGUKICAgICBDYWNoZUZvbnQoSVBDOjpG
b250UmVmZXJlbmNlIGZvbnQpIE5vdFN0cmVhbUVuY29kYWJsZQogICAgIERlbGV0ZUFsbEZvbnRz
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5j
ZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODE4NDBiZDcwYzVjYjY0MGNkYmU2ZDg1MDk1MzViMmUyODg2NmYwNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oCkBA
IC0wLDAgKzEsNDA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL0NTU0ZpbHRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVCbGVuZC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRkVDb2xvck1hdHJpeC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVDb21wb25l
bnRUcmFuc2Zlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVDb21wb3NpdGUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0ZFQ29udm9sdmVNYXRyaXguaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFRGlmZnVz
ZUxpZ2h0aW5nLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRURpc3BsYWNlbWVudE1hcC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRkVEcm9wU2hhZG93Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUZsb29k
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUdhdXNzaWFuQmx1ci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRkVNZXJnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVNb3JwaG9sb2d5Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9GRU9mZnNldC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVTcGVjdWxhckxpZ2h0
aW5nLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRVRpbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZF
VHVyYnVsZW5jZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9GaWx0ZXJFZmZlY3RWZWN0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NWR0ZpbHRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU291cmNlR3JhcGhpYy5oPgorCituYW1lc3BhY2UgSVBDIHsK
KworY2xhc3MgRmlsdGVyUmVmZXJlbmNlIHsKK3B1YmxpYzoKKyAgICBGaWx0ZXJSZWZlcmVuY2Uo
UmVmPFdlYkNvcmU6OkZpbHRlcj4mJiBmaWx0ZXIpCisgICAgICAgIDogbV9maWx0ZXIoV1RGTW92
ZShmaWx0ZXIpKQorICAgIHsKKyAgICB9CisKKyAgICBSZWY8V2ViQ29yZTo6RmlsdGVyPiB0YWtl
RmlsdGVyKCkgeyByZXR1cm4gV1RGTW92ZShtX2ZpbHRlcik7IH0KKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxGaWx0ZXJSZWZlcmVuY2U+IGRlY29k
ZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gc3Rh
dGljIHZvaWQgZW5jb2RlRmlsdGVyRWZmZWN0KGNvbnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYs
IEVuY29kZXImKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgUmVmUHRyPFdl
YkNvcmU6OkZpbHRlckVmZmVjdD4gZGVjb2RlRmlsdGVyRWZmZWN0KERlY29kZXImLCBXZWJDb3Jl
OjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBz
dGF0aWMgdm9pZCBlbmNvZGVTVkdGaWx0ZXIoY29uc3QgV2ViQ29yZTo6U1ZHRmlsdGVyJiwgRW5j
b2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8V2ViQ29y
ZTo6U1ZHRmlsdGVyPiBkZWNvZGVTVkdGaWx0ZXIoRGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlQ1NTRmlsdGVyKGNvbnN0IFdlYkNvcmU6
OkNTU0ZpbHRlciYsIEVuY29kZXImKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgUmVmUHRyPFdlYkNvcmU6OkNTU0ZpbHRlcj4gZGVjb2RlQ1NTRmlsdGVyKERlY29kZXImKTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZUZpbHRlcihj
b25zdCBXZWJDb3JlOjpGaWx0ZXImLCBFbmNvZGVyJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXI+IGRlY29kZUZpbHRlcihEZWNvZGVy
JiwgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGUpOworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6RmlsdGVyPiBkZWNvZGVGaWx0ZXIoRGVjb2Rl
ciYpOworCisgICAgUmVmPFdlYkNvcmU6OkZpbHRlcj4gbV9maWx0ZXI7Cit9OworCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZUZpbHRlckVmZmVj
dChjb25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZlY3QmIGVmZmVjdCwgRW5jb2RlciYgZW5jb2RlcikK
K3sKKyAgICBlbmNvZGVyIDw8IGVmZmVjdC5maWx0ZXJUeXBlKCk7CisgICAgZW5jb2RlciA8PCBl
ZmZlY3Qub3BlcmF0aW5nQ29sb3JTcGFjZSgpOworCisgICAgc3dpdGNoIChlZmZlY3QuZmlsdGVy
VHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQmxlbmQ6
CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFQmxlbmQ+KGVmZmVjdCkuZW5jb2RlKGVuY29k
ZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpU
eXBlOjpGRUNvbG9yTWF0cml4OgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUNvbG9yTWF0
cml4PihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb25lbnRUcmFuc2ZlcjoKKyAgICAg
ICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2Zlcj4oZWZmZWN0KS5lbmNvZGUo
ZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZl
Y3Q6OlR5cGU6OkZFQ29tcG9zaXRlOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUNvbXBv
c2l0ZT4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29udm9sdmVNYXRyaXg6CisgICAgICAg
IGRvd25jYXN0PFdlYkNvcmU6OkZFQ29udm9sdmVNYXRyaXg+KGVmZmVjdCkuZW5jb2RlKGVuY29k
ZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpU
eXBlOjpGRURpZmZ1c2VMaWdodGluZzoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVEaWZm
dXNlTGlnaHRpbmc+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRURpc3BsYWNlbWVudE1hcDoK
KyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA+KGVmZmVjdCkuZW5j
b2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpUeXBlOjpGRURyb3BTaGFkb3c6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZF
RHJvcFNoYWRvdz4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRmxvb2Q6CisgICAgICAgIGRv
d25jYXN0PFdlYkNvcmU6OkZFRmxvb2Q+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUdhdXNz
aWFuQmx1cjoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI+KGVmZmVj
dCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUltYWdlOgorICAgICAgICAvLyBGSVhNRTogZW5jb2RlIEZF
SW1hZ2UuCisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6
OlR5cGU6OkZFTWVyZ2U6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFTWVyZ2U+KGVmZmVj
dCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1vcnBob2xvZ3k6CisgICAgICAgIGRvd25jYXN0PFdlYkNv
cmU6OkZFTW9ycGhvbG9neT4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFT2Zmc2V0OgorICAg
ICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRU9mZnNldD4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7
CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6
OkZFU3BlY3VsYXJMaWdodGluZzoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVTcGVjdWxh
ckxpZ2h0aW5nPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVUaWxlOgorICAgICAgICBicmVh
azsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVR1cmJ1bGVuY2U6
CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFVHVyYnVsZW5jZT4oZWZmZWN0KS5lbmNvZGUo
ZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZl
Y3Q6OlR5cGU6OlNvdXJjZUFscGhhOgorICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpU
eXBlOjpTb3VyY2VHcmFwaGljOgorICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q+IEZpbHRlclJlZmVyZW5jZTo6ZGVj
b2RlRmlsdGVyRWZmZWN0KERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9u
OjpUeXBlIGZpbHRlclR5cGUpCit7CisgICAgaWYgKCEoZmlsdGVyVHlwZSA+PSBXZWJDb3JlOjpG
aWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVGaXJzdCAmJiBmaWx0ZXJUeXBlIDw9IFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpUeXBlOjpGRUxhc3QpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlPiBvcGVyYXRp
bmdDb2xvclNwYWNlOworICAgIGRlY29kZXIgPj4gb3BlcmF0aW5nQ29sb3JTcGFjZTsKKyAgICBp
ZiAoIW9wZXJhdGluZ0NvbG9yU3BhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
c3RkOjpvcHRpb25hbDxSZWY8V2ViQ29yZTo6RmlsdGVyRWZmZWN0Pj4gZWZmZWN0OworCisgICAg
c3dpdGNoIChmaWx0ZXJUeXBlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5
cGU6OkZFQmxlbmQ6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFQmxlbmQ6OmRlY29kZShk
ZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVDb2xvck1hdHJpeDoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVDb2xv
ck1hdHJpeDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvbmVudFRyYW5zZmVyOgorICAgICAgICBl
ZmZlY3QgPSBXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpkZWNvZGUoZGVjb2Rlcik7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZF
Q29tcG9zaXRlOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6ZGVjb2Rl
KGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZm
ZWN0OjpUeXBlOjpGRUNvbnZvbHZlTWF0cml4OgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpG
RUNvbnZvbHZlTWF0cml4OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAg
Y2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRGlmZnVzZUxpZ2h0aW5nOgorICAg
ICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRURpZmZ1c2VMaWdodGluZzo6ZGVjb2RlKGRlY29kZXIp
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBl
OjpGRURpc3BsYWNlbWVudE1hcDoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVEaXNwbGFj
ZW1lbnRNYXA6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdl
YkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEcm9wU2hhZG93OgorICAgICAgICBlZmZlY3Qg
PSBXZWJDb3JlOjpGRURyb3BTaGFkb3c6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVGbG9vZDoKKyAgICAg
ICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVGbG9vZDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUdhdXNzaWFu
Qmx1cjoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmRlY29kZShk
ZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVJbWFnZToKKyAgICAgICAgLy8gRklYTUU6IGRlY29kZSBGRUltYWdlLgorICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1l
cmdlOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRU1lcmdlOjpkZWNvZGUoZGVjb2Rlcik7
CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6
OkZFTW9ycGhvbG9neToKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVNb3JwaG9sb2d5Ojpk
ZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkZFT2Zmc2V0OgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRU9m
ZnNldDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVNwZWN1bGFyTGlnaHRpbmc6CisgICAgICAgIGVmZmVj
dCA9IFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6ZGVjb2RlKGRlY29kZXIpOworICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVRpbGU6
CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFVGlsZTo6Y3JlYXRlKCk7CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVHVyYnVsZW5j
ZToKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVUdXJidWxlbmNlOjpkZWNvZGUoZGVjb2Rl
cik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5
cGU6OlNvdXJjZUdyYXBoaWM6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OlNvdXJjZUdyYXBo
aWM6OmNyZWF0ZSgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYToKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBpZiAoZWZmZWN0KSB7CisgICAgICAgICgqZWZm
ZWN0KS0+c2V0T3BlcmF0aW5nQ29sb3JTcGFjZSgqb3BlcmF0aW5nQ29sb3JTcGFjZSk7CisgICAg
ICAgIHJldHVybiB7ICgqZWZmZWN0KS5wdHIoKSB9OworICAgIH0KKworICAgIHJldHVybiBudWxs
cHRyOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6
OmVuY29kZVNWR0ZpbHRlcihjb25zdCBXZWJDb3JlOjpTVkdGaWx0ZXImIGZpbHRlciwgRW5jb2Rl
ciYgZW5jb2RlcikKK3sKKyAgICAvLyBGSVhNRTogRW5jb2RlIHRoZSBTVkdGaWx0ZXIuCit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitSZWZQdHI8V2ViQ29yZTo6U1ZHRmlsdGVyPiBGaWx0
ZXJSZWZlcmVuY2U6OmRlY29kZVNWR0ZpbHRlcihEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIC8v
IEZJWE1FOiBEZWNvZGUgdGhlIFNWR0ZpbHRlci4KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVDU1NG
aWx0ZXIoY29uc3QgV2ViQ29yZTo6Q1NTRmlsdGVyJiBmaWx0ZXIsIEVuY29kZXImIGVuY29kZXIp
Cit7CisgICAgZW5jb2RlciA8PCBmaWx0ZXIuZnVuY3Rpb25zKCkuc2l6ZSgpOworCisgICAgZm9y
IChhdXRvJiBmdW5jdGlvbiA6IGZpbHRlci5mdW5jdGlvbnMoKSkgeworICAgICAgICBpZiAoaXM8
V2ViQ29yZTo6U1ZHRmlsdGVyPihmdW5jdGlvbikpIHsKKyAgICAgICAgICAgIGVuY29kZUZpbHRl
cihkb3duY2FzdDxXZWJDb3JlOjpTVkdGaWx0ZXI+KGZ1bmN0aW9uLmdldCgpKSwgZW5jb2Rlcik7
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpczxXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q+KGZ1bmN0aW9uKSkKKyAgICAgICAgICAgIGVuY29kZUZpbHRlckVm
ZmVjdChkb3duY2FzdDxXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q+KGZ1bmN0aW9uLmdldCgpKSwgZW5j
b2Rlcik7CisgICAgfQorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorUmVmUHRyPFdlYkNv
cmU6OkNTU0ZpbHRlcj4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVDU1NGaWx0ZXIoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gc2l6ZTsKKyAgICBkZWNvZGVy
ID4+IHNpemU7CisgICAgaWYgKCFzaXplIHx8ICEqc2l6ZSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBWZWN0b3I8UmVmPFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uPj4gZnVuY3Rpb25z
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZT4gZmlsdGVyVHlwZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBmaWx0ZXJUeXBlOworICAgICAgICBpZiAoIWZpbHRlclR5cGUpCisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBpZiAoKmZpbHRlclR5cGUgPT0g
V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OlNWR0ZpbHRlcikgeworICAgICAgICAgICAg
aWYgKGF1dG8gZmlsdGVyID0gZGVjb2RlRmlsdGVyKGRlY29kZXIsICpmaWx0ZXJUeXBlKSkgewor
ICAgICAgICAgICAgICAgIGZ1bmN0aW9ucy5hcHBlbmQoZmlsdGVyLnJlbGVhc2VOb25OdWxsKCkp
OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGVmZmVjdCA9IGRlY29k
ZUZpbHRlckVmZmVjdChkZWNvZGVyLCAqZmlsdGVyVHlwZSk7CisgICAgICAgIGlmICghZWZmZWN0
KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgZnVuY3Rpb25zLmFwcGVu
ZChlZmZlY3QucmVsZWFzZU5vbk51bGwoKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdlYkNvcmU6
OkNTU0ZpbHRlcjo6Y3JlYXRlKFdURk1vdmUoZnVuY3Rpb25zKSk7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlRmlsdGVyKGNvbnN0IFdl
YkNvcmU6OkZpbHRlciYgZmlsdGVyLCBFbmNvZGVyJiBlbmNvZGVyKQoreworICAgIGVuY29kZXIg
PDwgZmlsdGVyLmZpbHRlclR5cGUoKTsKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5yZW5kZXJpbmdN
b2RlKCk7CisgICAgZW5jb2RlciA8PCBmaWx0ZXIuZmlsdGVyU2NhbGUoKTsKKyAgICBlbmNvZGVy
IDw8IGZpbHRlci5jbGlwT3BlcmF0aW9uKCk7CisgICAgZW5jb2RlciA8PCBmaWx0ZXIuZmlsdGVy
UmVnaW9uKCk7CisKKyAgICBpZiAoaXM8V2ViQ29yZTo6Q1NTRmlsdGVyPihmaWx0ZXIpKQorICAg
ICAgICBlbmNvZGVDU1NGaWx0ZXIoZG93bmNhc3Q8V2ViQ29yZTo6Q1NTRmlsdGVyPihmaWx0ZXIp
LCBlbmNvZGVyKTsKKyAgICBlbHNlIGlmIChpczxXZWJDb3JlOjpTVkdGaWx0ZXI+KGZpbHRlcikp
CisgICAgICAgIGVuY29kZVNWR0ZpbHRlcihkb3duY2FzdDxXZWJDb3JlOjpTVkdGaWx0ZXI+KGZp
bHRlciksIGVuY29kZXIpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorUmVmUHRyPFdl
YkNvcmU6OkZpbHRlcj4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXIoRGVjb2RlciYgZGVj
b2RlciwgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGUgZmlsdGVyVHlwZSkKK3sKKyAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlbmRlcmluZ01vZGU+IHJlbmRlcmluZ01vZGU7CisgICAg
ZGVjb2RlciA+PiByZW5kZXJpbmdNb2RlOworICAgIGlmICghcmVuZGVyaW5nTW9kZSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gZmlsdGVyU2NhbGU7CisgICAgZGVjb2RlciA+PiBmaWx0ZXJTY2FsZTsKKyAgICBpZiAoIWZp
bHRlclNjYWxlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RmlsdGVyOjpDbGlwT3BlcmF0aW9uPiBjbGlwT3BlcmF0aW9uOworICAgIGRlY29k
ZXIgPj4gY2xpcE9wZXJhdGlvbjsKKyAgICBpZiAoIWNsaXBPcGVyYXRpb24pCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IGZp
bHRlclJlZ2lvbjsKKyAgICBkZWNvZGVyID4+IGZpbHRlclJlZ2lvbjsKKyAgICBpZiAoIWZpbHRl
clJlZ2lvbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6
RmlsdGVyPiBmaWx0ZXI7CisKKyAgICBpZiAoZmlsdGVyVHlwZSA9PSBXZWJDb3JlOjpGaWx0ZXJG
dW5jdGlvbjo6VHlwZTo6Q1NTRmlsdGVyKQorICAgICAgICBmaWx0ZXIgPSBkZWNvZGVDU1NGaWx0
ZXIoZGVjb2Rlcik7CisgICAgZWxzZSBpZiAoZmlsdGVyVHlwZSA9PSBXZWJDb3JlOjpGaWx0ZXJG
dW5jdGlvbjo6VHlwZTo6U1ZHRmlsdGVyKQorICAgICAgICBmaWx0ZXIgPSBkZWNvZGVTVkdGaWx0
ZXIoZGVjb2Rlcik7CisgICAgCisgICAgaWYgKGZpbHRlcikgeworICAgICAgICBmaWx0ZXItPnNl
dFJlbmRlcmluZ01vZGUoKnJlbmRlcmluZ01vZGUpOworICAgICAgICBmaWx0ZXItPnNldEZpbHRl
clNjYWxlKCpmaWx0ZXJTY2FsZSk7CisgICAgICAgIGZpbHRlci0+c2V0Q2xpcE9wZXJhdGlvbigq
Y2xpcE9wZXJhdGlvbik7CisgICAgICAgIGZpbHRlci0+c2V0RmlsdGVyUmVnaW9uKCpmaWx0ZXJS
ZWdpb24pOworICAgIH0KKworICAgIHJldHVybiBmaWx0ZXI7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitSZWZQdHI8V2ViQ29yZTo6RmlsdGVyPiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29k
ZUZpbHRlcihEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RmlsdGVyRnVuY3Rpb246OlR5cGU+IGZpbHRlclR5cGU7CisgICAgZGVjb2RlciA+PiBmaWx0ZXJU
eXBlOworICAgIGlmICghZmlsdGVyVHlwZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICByZXR1cm4gZGVjb2RlRmlsdGVyKGRlY29kZXIsICpmaWx0ZXJUeXBlKTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVGaWx0ZXIobV9maWx0ZXIsIGVuY29kZXIpOwor
fQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxGaWx0ZXJSZWZlcmVu
Y2U+IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYg
KGF1dG8gZmlsdGVyID0gZGVjb2RlRmlsdGVyKGRlY29kZXIpKQorICAgICAgICByZXR1cm4geyBm
aWx0ZXIucmVsZWFzZU5vbk51bGwoKSB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKaW5kZXggMmM4MzlhOWU5YmNkOGU5ZjEyMWRmODkzMGZmNDJmYzYwY2IyN2QwZi4uMDkzMGNm
OTE3YmE3OTBlNTc1ZDg0Yjk2OWVhYzA1ODFmNTJmNTE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNjYsNiArMjY2LDcgQEAgZGVmIHR5cGVzX3RoYXRf
Y2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICByZXR1cm4gZnJvemVuc2V0KFsKICAg
ICAgICAgJ0NWUGl4ZWxCdWZmZXJSZWYnLAogICAgICAgICAnSVBDOjpEYXRhUmVmZXJlbmNlJywK
KyAgICAgICAgJ0lQQzo6RmlsdGVyUmVmZXJlbmNlJywKICAgICAgICAgJ0lQQzo6Rm9udFJlZmVy
ZW5jZScsCiAgICAgICAgICdJUEM6OlNlbWFwaG9yZScsCiAgICAgICAgICdNYWNoU2VuZFJpZ2h0
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDE5MjA2OWVjYjdlYjcwNWIwMzRkODA5YjU3NzI1MzkwMDAwMWFkNjQuLmZiYzRiYmM0Y2Fh
MmExOTZjY2I5ZjU0YjRmOGVhNDQyNmQ5NmRkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDk0OCw2ICs0OTQ4LDcgQEAKIAkJNzIw
MzQ0OUEyNkE2QzQ0QzAwMEE1RjU0IC8qIE1vbm90b25pY09iamVjdElkZW50aWZpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjAzNDQ5QjI2QTZDNDc2MDAwQTVGNTQgLyogUmVuZGVyaW5nVXBkYXRl
SUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyaW5nVXBkYXRlSUQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRmb3JtUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVJlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI0Njk2M0EyNzVCN0U2
NzAwQTkxNTZBIC8qIEZpbHRlclJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWx0ZXJSZWZl
cmVuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI2RDU2REQyNTNBNjQ4MTAw
MDJFRjkwIC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlUmVzb3VyY2VDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNkQ1
NkRFMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI3QTdGMzQyNDA3ODU3RDAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzQ2Myw2ICs3NDY0LDcgQEAKIAkJCQlCQzAzMkQ5RTEwRjQz
N0QxMDA1OEMxNUEgLyogRGVjb2Rlci5oICovLAogCQkJCUJDMDMyRDlGMTBGNDM3RDEwMDU4QzE1
QSAvKiBFbmNvZGVyLmNwcCAqLywKIAkJCQlCQzAzMkRBMDEwRjQzN0QxMDA1OEMxNUEgLyogRW5j
b2Rlci5oICovLAorCQkJCTcyNDY5NjNBMjc1QjdFNjcwMEE5MTU2QSAvKiBGaWx0ZXJSZWZlcmVu
Y2UuaCAqLywKIAkJCQk5QkQ4QUI0OTI1ODIwRTUyMDA1Mzg2RjggLyogRm9udFJlZmVyZW5jZS5o
ICovLAogCQkJCTQxNTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5o
ICovLAogCQkJCUMwQ0U3MkFDMTI0N0U3OEQwMEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKaW5kZXggOTQy
MWRkMjM4Y2I2ZWM2M2ZlMWMwN2Q0NzM2MWNiMGI2NWZmNDBjYi4uMzJhMzQyZGJmYmRmYTdmMGMz
OWJjNjM2YTQ3OTIwMzFhZTE3NzQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogCisjaW5jbHVkZSAiRmlsdGVyUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgpAQCAtMTk0LDYgKzE5NSwx
MSBAQCB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRW5kQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UgogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OkVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhkZXN0aW5hdGlvbikp
OwogfQogCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJl
Y3QsIEZpbHRlciYgZmlsdGVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHNvdXJjZUltYWdlSWRlbnRpZmll
ciwgc291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVyZW5jZShSZWY8RmlsdGVyPiB7IGZp
bHRlciB9KSkpOworfQorCiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkRHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBn
bHlwaHMsIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50
LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgbW9kZSkK
IHsKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3R2x5
cGhzKERpc3BsYXlMaXN0OjpEcmF3R2x5cGhzIHsgZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywgY291
bnQsIGxvY2FsQW5jaG9yLCBtb2RlIH0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eS5oCmluZGV4IDcxZmRiNjNkZjRhYzg0OTc0NzIzMjY5YjdmMDNkOTk3YjgxMzk4
OWQuLjZmNzgwOWQ1ZWVlMzAyZDIyMTkzNmNhMDUzYjg3Mzk0Y2JhNDdlNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaApAQCAtOTAsNiArOTAsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVjb3JkQ2xpcFBhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYsIFdlYkNv
cmU6OldpbmRSdWxlKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZEJlZ2luQ2xpcFRvRHJhd2luZ0Nv
bW1hbmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIFdlYkNvcmU6OkRl
c3RpbmF0aW9uQ29sb3JTcGFjZSkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRFbmRDbGlwVG9EcmF3
aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbikgZmluYWw7
CisgICAgdm9pZCByZWNvcmREcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgV2ViQ29yZTo6Rmls
dGVyJikgZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNvbnN0IFdlYkNvcmU6OkZv
bnQmLCBjb25zdCBXZWJDb3JlOjpHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgV2ViQ29yZTo6R2x5
cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgY291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIGxvY2FsQW5jaG9yLCBXZWJDb3JlOjpGb250U21vb3RoaW5nTW9kZSkgZmluYWw7CiAgICAg
dm9pZCByZWNvcmREcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3Jl
OjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd05hdGl2
ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCmluZGV4IDA5NTU3YTc1YjBlZDRlMTBmNTZiYjQ4OWVmMDNkNzhiZWMzZmJh
ZTAuLjlmM2FkMTM2MjYyYTkyZmVkNTBhZjUyYjVkMjE0MjkzOWEzYjQyNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0xOTgsNiArMTk4LDE0IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgcmV0dXJuIGJpdG1hcC0+Y3JlYXRlSW1hZ2UoKTsKICAgICB9CiAKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6SW1hZ2U+IGZpbHRlcmVkSW1hZ2UoV2ViQ29yZTo6RmlsdGVyJiBmaWx0ZXIpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBpZiAoVU5MSUtFTFkoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGZsdXNoRHJhd2luZ0Nv
bnRleHQoKTsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5n
ZXRGaWx0ZXJlZEltYWdlKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBmaWx0ZXIpOwor
ICAgIH0KKwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVs
QnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBkZXN0aW5hdGlvbkZvcm1h
dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3QgZmluYWwKICAgICB7CiAg
ICAgICAgIGlmIChVTkxJS0VMWSghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IDJjZDUzMWMxOTYxNzIy
YTdlMTdkZmQ3MTMwMDNlZGFhNDczYzdiZjAuLjUwMjVhOTVlNGRjOGRkMzFhMmZiMTViMThmNTc1
MGE1NTI4NzUxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAK
QEAgLTIyMyw2ICsyMjMsMjIgQEAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpnZXRTaGFyZWFibGVCaXRtYXAoUmVuZGVyaW4KICAgICByZXR1cm4g
U2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaGFuZGxlKTsKIH0KIAorUmVmUHRyPEltYWdlPiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldEZpbHRlcmVkSW1hZ2UoUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIGltYWdlQnVmZmVyLCBGaWx0ZXImIGZpbHRlcikKK3sKKyAgICBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CisgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMo
TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkdldEZpbHRlcmVkSW1hZ2VGb3JJbWFn
ZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UgeyBmaWx0ZXIgfSksIE1l
c3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpHZXRGaWx0ZXJlZEltYWdlRm9ySW1hZ2VC
dWZmZXI6OlJlcGx5KGhhbmRsZSksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIDFfcyk7
CisgICAgQVNTRVJUX1VOVVNFRChzZW5kUmVzdWx0LCBzZW5kUmVzdWx0KTsKKworICAgIGlmICho
YW5kbGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIGJpdG1hcCA9
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSk7CisgICAgaWYgKCFiaXRtYXApCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gYml0bWFwLT5jcmVhdGVJbWFnZSgpOworfQor
CiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShjb25z
dCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIHNlbmRUb1N0cmVhbShN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q2FjaGVOYXRpdmVJbWFnZShoYW5kbGUs
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgKaW5kZXggMDljODkxMDdhZDk3ZGJhNDFiYmMzMjEwM2JhY2FkMjljMDEyZTJh
Ni4uMzBlMTYzMWU4Zjk2N2MwNTk0MDY3MjExZjgxYzNhZmE5MGQ2Nzk1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC00Nyw2ICs0Nyw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERlc3RpbmF0aW9uQ29sb3JTcGFjZTsKK2NsYXNzIEZpbHRlcjsK
IGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIFBpeGVsQnVmZmVyOwogCkBAIC05Miw2ICs5Myw3IEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgZ2V0RGF0YVVSTEZvckltYWdlQnVmZmVyKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpQcmVz
ZXJ2ZVJlc29sdXRpb24sIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGdldERhdGFGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBnZXRTaGFy
ZWFibGVCaXRtYXAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQcmVzZXJ2ZVJlc29sdXRpb24pOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gZ2V0Rmls
dGVyZWRJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbHRlciYpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAg
dm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOwogICAgIHZvaWQgZGVsZXRlQWxs
Rm9udHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBkMTBmYzJmZmViMmI1ZGJhMGM1MWIyYmFhN2M1YWNjNWUwZDY4OThiLi5iMzgyODYyZTJm
ZGFiM2YxZmM4ZWY4NTg3NGFlMmFhM2ZiOWQyYjkxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMDQgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNz
XSBBZGQgdGhlIGVuY29kaW5nL2RlY29kaW5nIGZvciBGaWx0ZXIgYW5kIEZpbHRlckVmZmVjdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHA6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHA6CisKIDIw
MjEtMTItMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW2lPU10gV2ViIGNvbnRlbnQgcHJvY2VzcyBzb21ldGltZXMgY3Jhc2hlcyB1bmRlciBXZWJQ
YWdlOjpwb3NpdGlvbkluZm9ybWF0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAppbmRleCBiOTg2YTJhNTg4ODQ2
NWJlMTkyMGE2ZTA2NjhkNzBkYjI0OTA2ZWFiLi5kMjNmN2UxZTcyOWUwNTU0NTNhYzFmMDUzYTIz
NDUzMDI5NWNiMjA1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVt
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVyYXRvci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRmlsdGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFkaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5NZW1vcnlEaXNwbGF5TGlzdC5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3Bw
CmluZGV4IGQ4NDZjMDI1ZTBkY2Q4Y2E4MjliNzEyNzNkYWYxZjcwN2U5ZDkyZGQuLjdhMzIwN2Y5
NWM2MjdmZTY2MjljOTI3NzQ0YjRlZjAzZTVlMmVjM2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3Bw
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdFJlcGxheWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EaXNwbGF5TGlzdFJlc291cmNlSGVhcC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFkaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0Q0cuaD4KIAo=
</data>
<flag name="review"
          id="471304"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445992</attachid>
            <date>2021-12-05 20:27:30 -0800</date>
            <delta_ts>2021-12-05 21:50:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232844-20211205202729.patch</filename>
            <type>text/plain</type>
            <size>124098</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYzNDUxZjJlZjJkZDli
MTMyMjViMDM3NWViZjg4NzAzZTk4OTdjYi4uODc4NjM4MTJhNjg1ZWRlYzcyYWQ4NzE2NTBkZTYz
ZWM5MGQ0MDkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0xMi0wNSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEFkZCB0aGUgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIEZpbHRlciBhbmQgRmlsdGVyRWZmZWN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRzIHRoZSBlbmNvZGluZyBhbmQgZGVjb2RpbmcgZm9yIHRoZSBGaWx0ZXJFZmZlY3QgYW5kIHRo
ZQorICAgICAgICBGaWx0ZXIgb2JqZWN0cy4gQmVjYXVzZSB0aGVzZSBvYmplY3RzIGhhdmUgc3Vw
ZXItY2xhc3Nlcywgd2UgYXJlIGdvaW5nCisgICAgICAgIHRvIGRvIHRoZSBlbmNvZGluZyBhbmQg
ZGVjb2RpbmcgdGhyb3VnaCBhIG5ldyBJUEMgY2xhc3MgY2FsbGVkCisgICAgICAgIEZpbHRlclJl
ZmVyZW5jZS4KKworICAgICAgICBUaGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nIG9mIHRoZXNlIGNs
YXNzZXMgd2lsbCBiZSBuZWVkZWQgaW4gdHdvIGNhc2VzOgorCisgICAgICAgIDEpIERpc3BsYXlM
aXN0OjpSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoKQorICAgICAgICAyKSBSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5OjpmaWx0ZXJlZEltYWdlKCkKKworICAgICAgICBBIGZldyB0aGlu
Z3MgaGF2ZSBub3QgYmUgZG9uZSB0aGlzIHBhdGNoIHlldDoKKworICAgICAgICAxKSBMaWdodFNv
dXJjZSBoYXMgbm90IGJlZW4gZW5jb2RlZC9kZWNvZGVkCisgICAgICAgIDIpIEZFTGlnaHRpbmcg
Y2xhc3NlcyBoYXZlIG5vdCBiZWVuIGVuY29kZWQvZGVjb2RlZAorICAgICAgICAzKSBGRUltYWdl
IGhhcyBub3QgYmVlbiBlbmNvZGVkL2RlY29kZWQKKyAgICAgICAgNCkgU1ZHRmlsdGVyIGhhcyBu
b3QgYmVlbiBlbmNvZGVkL2RlY29kZWQKKworICAgICAgICBUaGlzIHBhdGNoIGRvZXMgbm90IGNo
YW5nZSBhbnkgYmVoYXZpb3IgZXZlbiBpZiB0aGUgR1BVIFByb2Nlc3MgZm9yIERPTQorICAgICAg
ICByZW5kZXJpbmcgaXMgZW5hYmxlZC4gVGhlIHNvdXJjZUltYWdlIGZvciB0aGUgZmlsdGVyIGFu
ZCB0aGUgZmlsdGVyIGltYWdlCisgICAgICAgIG5lZWQgdG8gYmUgb2YgdHlwZSBvZiBSZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5IHRvIHRoaXMgY29kZSB0byBiZSBjYWxsZWQuCisKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OnNhZmVDb3B5IGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6c2l6ZU9mSXRlbUluQnl0ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzRHJhd2luZ0l0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzSW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6OkRyYXdG
aWx0ZXJlZEltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOjphcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6c291cmNlSW1hZ2VJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcjo6c291cmNlSW1hZ2VSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6Z2xvYmFsQm91bmRzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6bG9j
YWxCb3VuZHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OnJlY29yZERy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUJsZW5kOjpkZWNvZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAo
V2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZFQ29sb3JNYXRyaXg6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9u
ZW50VHJhbnNmZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvbmVu
dFRyYW5zZmVyOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb21wb3NpdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OmRlY29kZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVDb252b2x2ZU1hdHJpeDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRURpZmZ1
c2VMaWdodGluZzo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRGlzcGxhY2VtZW50TWFwLmg6CisgICAgICAgIChXZWJDb3JlOjpGRURpc3BsYWNlbWVudE1h
cDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpk
ZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93
Lmg6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmg6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVGbG9vZDo6ZGVjb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZFR2F1c3NpYW5CbHVyOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVMaWdodGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OmRlY29kZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFTWVyZ2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdlOjpGRU1l
cmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGRU1lcmdlOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVNb3JwaG9sb2d5Lmg6CisgICAgICAgIChXZWJDb3JlOjpGRU1vcnBob2xvZ3k6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRU1vcnBob2xvZ3k6OmRlY29kZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RkVPZmZzZXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRU9mZnNldDo6
ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJM
aWdodGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpkZWNvZGUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFVHVyYnVsZW5jZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZF
VHVyYnVsZW5jZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OmFwcGx5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oOgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyOjpzZXRDbGlwT3BlcmF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZpbHRlcjo6Q1NTRmlsdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVy
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckZpbHRlcnM6OmFwcGx5RmlsdGVyRWZmZWN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNvdXJjZSk6Cisg
ICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ZFTWVyZ2VFbGVtZW50OjpidWlsZCBjb25zdCk6CisKIDIwMjEtMTItMDQgIEFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gQ29tcHV0ZSBpc0ZpcnN0
Qm94L2lzTGFzdEJveCBmb3IgdGV4dCBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRjNGQ3NTdiMmE1ODRk
NDQ5ZjA1NGFmMjRkODFiZDZjYzRjNTIyNWIuLjQ3NTZiODRhNjQzMjU1MjM4ZmEyMzQ0MzgyNDRk
ZmExN2FkN2ZlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMTItMDUgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBB
ZGQgdGhlIGVuY29kaW5nL2RlY29kaW5nIGZvciBGaWx0ZXIgYW5kIEZpbHRlckVmZmVjdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODQ0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpn
ZXRGaWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0
Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNlLmg6IEFkZGVkLgorICAgICAgICAoSVBDOjpGaWx0ZXJS
ZWZlcmVuY2U6OkZpbHRlclJlZmVyZW5jZSk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5j
ZTo6dGFrZUZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlRmls
dGVyRWZmZWN0KToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJF
ZmZlY3QpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZVNWR0ZpbHRlcik6
CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlU1ZHRmlsdGVyKToKKyAgICAg
ICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjplbmNvZGVDU1NGaWx0ZXIpOgorICAgICAgICAoSVBD
OjpGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUNTU0ZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRl
clJlZmVyZW5jZTo6ZW5jb2RlRmlsdGVyKToKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNl
OjpkZWNvZGVGaWx0ZXIpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90
X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
UHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmdldEZpbHRlcmVkSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorCiAyMDIxLTEyLTA0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIERl
cml2ZWRTb3VyY2VzL1dlYktpdDIgdG8gRGVyaXZlZFNvdXJjZXMvV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCA0MTViNGZjNmEyYzg1ZmEyY2ZlYTI0ZmUxYzA1MGVjYWIxZmFmYjg5Li41NTQw
MjY1MTg5ZmU3MTYwMzM5ODMxODY1ZWMzM2NmYzFhYzk1ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
QEAgLTE1NjAsMTIgKzE1NjAsMzQgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5o
CiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9zaXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9s
dmVNYXRyaXguaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRp
bmcuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVHYXVzc2lhbkJsdXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdo
dGluZy5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRU9mZnNldC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNw
ZWN1bGFyTGlnaHRpbmcuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyRWZmZWN0LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVm
ZmVjdEdlb21ldHJ5LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dFZlY3Rvci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJJbWFnZS5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJJbWFnZVZlY3Rvci5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9M
aWdodFNvdXJjZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGlj
LmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Cb3guaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2lzby9JU09PcmlnaW5hbEZvcm1hdEJveC5oCkBAIC0xNzMxLDYgKzE3NTMsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGx1Z2lucy9QbHVnaW5W
aWV3QmFzZS5oCiAKICAgICByZW5kZXJpbmcvQnJlYWtMaW5lcy5oCisgICAgcmVuZGVyaW5nL0NT
U0ZpbHRlci5oCiAgICAgcmVuZGVyaW5nL0NsaXBSZWN0LmgKICAgICByZW5kZXJpbmcvRXZlbnRS
ZWdpb24uaAogICAgIHJlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuaApAQCAtMTg3OCw2ICsxOTAx
LDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAgICAgc3ZnL2dy
YXBoaWNzL1NWR0ltYWdlQ2FjaGUuaAogCisgICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmls
dGVyLmgKKwogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaAogICAgIHN2Zy9wcm9wZXJ0aWVz
L1NWR1ByaW1pdGl2ZUxpc3QuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1NWEwOTBiNjI5Y2Y0N2MxNzMwM2FmMmQ0MGY5NzlmYjAxNzAxMzFiLi42ZGIwMWI1YTBjZGY1
ZmE2ODdkMzJlM2YxNTQzYjFjNGNjOTg4ZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjMzLDcgKzEyMzMsNyBAQAogCQk0
MzEwN0JFMjE4Q0MxOURFMDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzEwN0JFMTE4Q0MxOURF
MDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggKi87IH07CiAJCTQzMkQzRkU4MThB
ODY1ODQwMEQ3REMwMyAvKiBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzJEM0ZFNzE4QTg2NTg0MDBE
N0RDMDMgLyogU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oICovOyB9OwogCQk0MzU4RTg3
RDEzNjBBMkVFMDBFNDc0OEMgLyogSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg3QjEzNjBBMkVFMDBF
NDc0OEMgLyogSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi87IH07Ci0JCTQzNThFODgxMTM2
MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODdGMTM2MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BT
aGFkb3cuaCAqLzsgfTsKKwkJNDM1OEU4ODExMzYwQTMxNzAwRTQ3NDhDIC8qIEZFRHJvcFNoYWRv
dy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4
N0YxMzYwQTMxNzAwRTQ3NDhDIC8qIEZFRHJvcFNoYWRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQzNThFODg2MTM2MEEzM0IwMEU0NzQ4QyAv
KiBTVkdGRURyb3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg4MzEzNjBBMzNCMDBFNDc0OEMgLyogU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudC5oICovOyB9OwogCQk0MzY3MDhDMTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVy
U1ZHQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQzNjcwODgyMTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdCbG9jay5oICovOyB9OwogCQk0
MzY3MDhDMzEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHQ29udGFpbmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDg4NDEyRDlDQTRBMDAw
NDQyMzQgLyogUmVuZGVyU1ZHQ29udGFpbmVyLmggKi87IH07CkBAIC0yMzAxLDYgKzIzMDEsOSBA
QAogCQk3MjE0NDMzNDIyM0VDOTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjAyMjNCMkEy
MTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjFCNDk3NDI1MTJCQTNCMDBGRTlEM0IgLyogSW1h
Z2VCaXRtYXBCYWNraW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjFCNDk3MDI1MTJBQzA0MDBGRTlEM0IgLyogSW1hZ2VCaXRtYXBCYWNraW5nLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIyODNG
MEUyMzBCMjY4QzAwRjVEODI4IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3
QzcgLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk3MjQ2OTYzQjI3NUM1RkE2MDBBOTE1NkEgLyogQ1NTRmls
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUz
RkI4MzIxM0IxQkI4MDBDNDBEMzQgLyogQ1NTRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI0Njk2M0QyNzVDNjE0NDAwQTkxNTZBIC8q
IEZpbHRlckVmZmVjdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzIxNEI5QjcyNzQ0NThGQTAwM0JFNkRGIC8qIEZpbHRlckVmZmVjdFZlY3Rv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcy
NDY5NjNFMjc1QzYxNjcwMEE5MTU2QSAvKiBGaWx0ZXJJbWFnZVZlY3Rvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJCNEVGN0MyNzRFRTM3RjAwMjkz
QzJGIC8qIEZpbHRlckltYWdlVmVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxl
bmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJ
CTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFG
RkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRl
Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2Jz
ZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMjcyMCwzNSArMjcyMywzNSBAQAogCQk4NDMwMEJENjEyMEM5QUFDMDAyMTk1NEEgLyogU1ZH
UGF0aFN0cmluZ1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODQzMDBCRDUxMjBDOUFBQzAwMjE5NTRBIC8qIFNWR1BhdGhTdHJpbmdTb3VyY2Uu
aCAqLzsgfTsKIAkJODQzMDBCRDgxMjBDOUFENDAwMjE5NTRBIC8qIFNWR1BhdGhTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MzAwQkQ3MTIw
QzlBRDQwMDIxOTU0QSAvKiBTVkdQYXRoU291cmNlLmggKi87IH07CiAJCTg0NUU3MkY4MEZEMjYx
RUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0NUU3MkY3MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NDVFNzJGQzBGRDI2
MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDVFNzJGQTBGRDI2MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmgg
Ki87IH07CisJCTg0NUU3MkZDMEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NUU3MkZBMEZEMjYyMzkw
MEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NDY1MEU3RTIzODdBRDdEMDA2MjY2RTIgLyogTWVkaWFRdWVyeUxp
c3RFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ2NTBFN0MyMzg3QUQ3QzAwNjI2NkUyIC8qIE1lZGlhUXVlcnlMaXN0RXZlbnQuaCAqLzsgfTsK
IAkJODQ3MzBENzcxMjQ4RjBCMzAwRDNBOUM5IC8qIERpc3RhbnRMaWdodFNvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUExMjQ4RjBC
MzAwRDNBOUM5IC8qIERpc3RhbnRMaWdodFNvdXJjZS5oICovOyB9OwotCQk4NDczMEQ3OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFQ29u
dm9sdmVNYXRyaXguaCAqLzsgfTsKLQkJODQ3MzBEN0IxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlm
ZnVzZUxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDczMEQ1RTEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuaCAqLzsg
fTsKLQkJODQ3MzBEN0QxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2MDEyNDhG
MEIzMDBEM0E5QzkgLyogRkVEaXNwbGFjZW1lbnRNYXAuaCAqLzsgfTsKLQkJODQ3MzBEN0YxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzMwRDYyMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29kLmggKi87
IH07Ci0JCTg0NzMwRDgxMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUxpZ2h0aW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2NDEyNDhGMEIzMDBE
M0E5QzkgLyogRkVMaWdodGluZy5oICovOyB9OwotCQk4NDczMEQ4MzEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVNZXJnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ3MzBENjYxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuaCAqLzsgfTsKLQkJODQ3MzBE
ODUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjgxMjQ4RjBCMzAwRDNBOUM5IC8qIEZF
TW9ycGhvbG9neS5oICovOyB9OwotCQk4NDczMEQ4NzEyNDhGMEIzMDBEM0E5QzkgLyogRkVPZmZz
ZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMw
RDZBMTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oICovOyB9OwotCQk4NDczMEQ4OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ2QzEyNDhGMEIzMDBEM0E5QzkgLyogRkVT
cGVjdWxhckxpZ2h0aW5nLmggKi87IH07Ci0JCTg0NzMwRDhCMTI0OEYwQjMwMEQzQTlDOSAvKiBG
RVRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
NzMwRDZFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRpbGUuaCAqLzsgfTsKLQkJODQ3MzBEOEQxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFVHVyYnVsZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFVHVyYnVs
ZW5jZS5oICovOyB9OwotCQk4NDczMEQ5MTEyNDhGMEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc0
MTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oICovOyB9OworCQk4NDczMEQ3OTEyNDhG
MEIzMDBEM0E5QzkgLyogRkVDb252b2x2ZU1hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENUMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFQ29u
dm9sdmVNYXRyaXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk4NDczMEQ3QjEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDVFMTI0
OEYwQjMwMEQzQTlDOSAvKiBGRURpZmZ1c2VMaWdodGluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDdEMTI0OEYwQjMwMEQzQTlDOSAv
KiBGRURpc3BsYWNlbWVudE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3MzBENjAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFw
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3
MzBEN0YxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDYyMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZs
b29kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
ODQ3MzBEODExMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY0MTI0OEYwQjMwMEQzQTlDOSAv
KiBGRUxpZ2h0aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJODQ3MzBEODMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDY2MTI0OEYwQjMwMEQz
QTlDOSAvKiBGRU1lcmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJODQ3MzBEODUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENjgxMjQ4
RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9m
ZnNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3
MzBENkExMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODQ3MzBEODkxMjQ4RjBCMzAwRDNBOUM5IC8q
IEZFU3BlY3VsYXJMaWdodGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3MzBENkMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3VsYXJMaWdodGlu
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg0
NzMwRDhCMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDZFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVRp
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4
NDczMEQ4RDEyNDhGMEIzMDBEM0E5QzkgLyogRkVUdXJidWxlbmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3MDEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVUdXJidWxlbmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJODQ3MzBEOTExMjQ4RjBCMzAwRDNBOUM5IC8qIExpZ2h0U291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NDEyNDhG
MEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDczMEQ5MjEyNDhGMEIzMDBEM0E5QzkgLyogUG9pbnRM
aWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ3MzBENzUxMjQ4RjBCMzAwRDNBOUM5IC8qIFBvaW50TGlnaHRTb3VyY2UuaCAqLzsgfTsK
IAkJODQ3MzBEOTMxMjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzYxMjQ4RjBCMzAw
RDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDc2QzlFNjExREY2QTBCMDA1
NTVCMDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFNDExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyLmggKi87IH07CiAJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBT
VkdQYXRoQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODQ3NkM5RTgxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggKi87IH07
CiAJCTg0NzZDOUVDMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkw
MDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCAqLzsgfTsKIAkJODQ3NkM5RjAxMURGNkE1ODAw
NTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2Vy
LmggKi87IH07Ci0JCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMx
MDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggKi87IH07CisJCTg0ODAxOTU1MTA4
QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1
c3NpYW5CbHVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODQ4MkI3NDYxMTk4QzM1NDAwQkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ0MkJCRjgxMTk0QzlE
MzAwRDQ5NDY5IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovOyB9OwogCQk4NDgyQjc1MjExOThDQjZC
MDBCRkIwMDUgLyogSlNIYXNoQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODJCNzUwMTE5OENCNkIwMEJGQjAwNSAvKiBKU0hhc2hD
aGFuZ2VFdmVudC5oICovOyB9OwogCQk4NDg1MjI3QzExOTAxNjJDMDA2RURDN0YgLyogSlNTVkdI
S2VybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0ODUyMjc4MTE5MDE2MkMwMDZFREM3RiAvKiBKU1NWR0hLZXJuRWxlbWVudC5oICovOyB9
OwogCQk4NDg1MjI3RTExOTAxNjJDMDA2RURDN0YgLyogSlNTVkdWS2VybkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODUyMjdBMTE5MDE2
MkMwMDZFREM3RiAvKiBKU1NWR1ZLZXJuRWxlbWVudC5oICovOyB9OwogCQk4NDg1MjI4QjExOTAx
NzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDg1MjI4ODExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktl
cm5FbGVtZW50LmggKi87IH07CiAJCTg0QTgxRjNFMEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VB
bHBoYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRB
ODFGM0MwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggKi87IH07Ci0JCTg0QTgxRjQy
MEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUY0MDBGQzdFMDI3MDA5NTUzMDAgLyogU291
cmNlR3JhcGhpYy5oICovOyB9OworCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAgLyogU291cmNl
R3JhcGhpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODRBODFGNDAwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJjZUdyYXBoaWMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NEIzNDlBMjIyRjg2RTc1MDBE
NDdCQ0YgLyogRXZlbnRUYXJnZXRDb25jcmV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODRCMzQ5QTAyMkY4NkU3NDAwRDQ3QkNGIC8qIEV2ZW50VGFy
Z2V0Q29uY3JldGUuaCAqLzsgfTsKIAkJODRCNkI5NzgxMjBGMTNFNTAwQjhFRkFGIC8qIFNWR1Bh
dGhTZWdMaXN0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NEI2Qjk3NjEyMEYxM0U1MDBCOEVGQUYgLyogU1ZHUGF0aFNlZ0xpc3RTb3VyY2Uu
aCAqLzsgfTsKIAkJODRDNUIyRkIxMjE2REM4MTAwODhCNTNBIC8qIFNWR1BhdGhUcmF2ZXJzYWxT
dGF0ZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0QzVCMkY5MTIxNkRDODEwMDg4QjUzQSAvKiBTVkdQYXRoVHJhdmVyc2FsU3RhdGVCdWls
ZGVyLmggKi87IH07CkBAIC0zNTEwLDEwICszNTEzLDEwIEBACiAJCUE3NDBCNUE1MTRDOTM1QUIw
MEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVy
bmFsU2V0dGluZ3MuaCAqLzsgfTsKIAkJQTc0MEI1QTcxNEM5MzVBRjAwQTc3RkE0IC8qIEpTSW50
ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNw
cCAqLzsgfTsKIAkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1
RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE3NUU4Qjg5MEUxREUy
RDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzVFOEI4MTBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5oICovOyB9
OwotCQlBNzVFOEI4QjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODMwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguaCAqLzsgfTsKLQkJQTc1RThCOEQwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVu
dFRyYW5zZmVyLmggKi87IH07Ci0JCUE3NUU4QjhGMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBv
c2l0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1
RThCODcwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi87IH07CisJCUE3NUU4Qjg5
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4MTBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3NUU4
QjhCMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4MzBFMURFMkQ2MDA3RjI0ODEgLyog
RkVDb2xvck1hdHJpeC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUE3NUU4QjhEMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4
NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3NUU4QjhGMEUxREUyRDYwMDdG
MjQ4MSAvKiBGRUNvbXBvc2l0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc1RThCODcwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc2RTVGN0Yx
MzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgz
NyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3OTc5MUEwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdl
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3
OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAv
KiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi87IH07CkBA
IC0zMzY4MCw2ICszMzY4Myw3IEBACiAJCQkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENT
U0N1cnNvckltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzc5RTE0MUJCMjE1QkIw
MENBQThCRiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
NDQ3NkJEQjFERkNBQzAzMDA2OTBFMjMgLyogQ1NTRGVmZXJyZWRQYXJzZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTcyNDY5NjNCMjc1QzVGQTYwMEE5MTU2QSAvKiBDU1NGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZCQjBDNUI4MTdCQkQ2MjkwMDNEMzY3NyAvKiBDU1NGaWx0ZXJJbWFnZVZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0QjRENjBDQjQyOThBMDA1RjJCNjIgLyogQ1NT
Rm9udEZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0ZEMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NGb250RmFjZVJ1bGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzQxODgsOCArMzQxOTIsMTAg
QEAKIAkJCQk4NDVFNzJGODBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwOEM5MjUxQTBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3MjZDREUyMDI3NTk3MzUwMDBBNDQ1QjIgLyogRmlsdGVyRWZmZWN0R2Vv
bWV0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyNDY5NjNEMjc1QzYxNDQwMEE5MTU2QSAvKiBG
aWx0ZXJFZmZlY3RWZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyQjhCMDM1Mjc1MzQzODYw
MEY3NTJBQSAvKiBGaWx0ZXJGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzJCOEIwMzYy
NzUzNDQxNDAwRjc1MkFBIC8qIEZpbHRlckltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjQ2
OTYzRTI3NUM2MTY3MDBBOTE1NkEgLyogRmlsdGVySW1hZ2VWZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ5RUNFQjZFMTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ5RUNFQjcwMTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRp
b25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1NzUgLyogRmlu
ZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IDc1MGRiNGVlODkxNjYw
ZmE0YmVjZWJjNDQ0N2M2ODVjZTVjNDg0ODEuLjJmZDQyMjliNzEyN2YwNDkwZDQyZDU0MWUxNDRh
ZDZhOWQ4ZTFmZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBjb25zdF9jYXN0PENvbmNy
ZXRlSW1hZ2VCdWZmZXImPigqdGhpcykuZmx1c2hEcmF3aW5nQ29udGV4dCgpOwotICAgICAgICBh
dXRvIHJlc3VsdCA9IGZpbHRlci5hcHBseSh0aGlzKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBm
aWx0ZXIuYXBwbHkodGhpcywgeyB7IH0sIGxvZ2ljYWxTaXplKCkgfSk7CiAgICAgICAgIGlmICgh
cmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IGUzN2I3
MTU1NzE0MDYwYmZlYjdhZGIwMTg5ZmFiZWRmNzlmMTY4MTQuLjJjYmJjYzU2NjNmZTU4ODA3ZDEw
MzYwNmY1YjUxYTBmZjhlNTYyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNjMxLDkgKzYzMSw5IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoUmVmUHRyPEltYWdlQnVm
ZmVyPiBpbWFnZSwgY29uc3QKICAgICBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhXVEZNb3Zl
KGltYWdlKSwgKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogfQogCi12b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNv
dXJjZUltYWdlLCBGaWx0ZXImIGZpbHRlcikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNvbnN0IEZsb2F0UmVj
dCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZpbHRlcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9
IGZpbHRlci5hcHBseShzb3VyY2VJbWFnZSk7CisgICAgYXV0byByZXN1bHQgPSBmaWx0ZXIuYXBw
bHkoc291cmNlSW1hZ2UsIHNvdXJjZUltYWdlUmVjdCk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAg
ICAgIHJldHVybjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggM2Q4ZDNhNzEyNTNlMzYzMGY4ZDk1Y2RkZDQwOTZi
YjY0MjI4OWJmOS4uMzJlYTJlZDE0NTFjNTRiNGNkZTgxMzBhNDkzN2U3ZDUzMjAxNmEzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmgKQEAgLTQ1Miw3ICs0NTIsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
cmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoUmVmUHRyPEltYWdlQnVmZmVyPiwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKFJl
ZlB0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZs
b2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKElt
YWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwgRmlsdGVyJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIGRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJbWFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYpOwogCiAgICAgdmly
dHVhbCB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQ
b2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmID0geyB9KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IGU2
MTVhN2JkNmQ0YTcwODU1YWYwOWZlYTBjMzlkNTgyMDM5ZGZlOWMuLmQ5YjBlZGRjMjY4YzI5NWI3
M2Q5YjY2MWVlOGMxNTZkYmEzZGI5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oIgogI2luY2x1
ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZXJhdG9yLmgi
CisjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPHd0
Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtMjQzLDYg
KzI0NCw4IEBAIHZvaWQgRGlzcGxheUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAg
ICAgIHJldHVybiBhcHBlbmQ8QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHM+KGl0ZW0uZ2V0PEJl
Z2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlw
VG9EcmF3aW5nQ29tbWFuZHM6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8RW5kQ2xpcFRvRHJhd2lu
Z0NvbW1hbmRzPihpdGVtLmdldDxFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM+KCkpOworICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gYXBw
ZW5kPERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPihpdGVtLmdldDxEcmF3RmlsdGVyZWRJbWFnZUJ1
ZmZlcj4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0dseXBoczoKICAgICAgICAgcmV0dXJu
IGFwcGVuZDxEcmF3R2x5cGhzPihpdGVtLmdldDxEcmF3R2x5cGhzPigpKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1CdWZmZXIuY3BwCmluZGV4IGU4MDUwOWVjY2EwNWQyY2M4ZWQxMDY2MDcwNDFmNWNjY2MzZTM3
OTQuLjQwMjVlMDY5MmRjNWExNWU5NzM2OTU4MDMzM2Y2ZmEzYjliZmJkNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC0xMTQsNiArMTE0LDkgQEAg
dm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGaWx0
ZXJlZEltYWdlQnVmZmVyOgorICAgICAgICBnZXQ8RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI+KCku
YXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
R2x5cGhzOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMjU2LDYgKzI1OSw5IEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVzdHJveSgpCiAgICAgY2FzZSBJ
dGVtVHlwZTo6Q2xpcFBhdGg6CiAgICAgICAgIGdldDxDbGlwUGF0aD4oKS5+Q2xpcFBhdGgoKTsK
ICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyOgorICAgICAgICBnZXQ8RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI+KCkufkRyYXdGaWx0ZXJl
ZEltYWdlQnVmZmVyKCk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
Rm9jdXNSaW5nUGF0aDoKICAgICAgICAgZ2V0PERyYXdGb2N1c1JpbmdQYXRoPigpLn5EcmF3Rm9j
dXNSaW5nUGF0aCgpOwogICAgICAgICByZXR1cm47CkBAIC00OTEsNiArNDk3LDggQEAgYm9vbCBJ
dGVtSGFuZGxlOjpzYWZlQ29weShJdGVtVHlwZSBpdGVtVHlwZSwgSXRlbUhhbmRsZSBkZXN0aW5h
dGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPENsaXBPdXRUb1BhdGg+KGl0ZW1P
ZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDoKICAgICAgICAgcmV0
dXJuIGNvcHlJbnRvPENsaXBQYXRoPihpdGVtT2Zmc2V0LCAqdGhpcyk7CisgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxE
cmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdGb2N1c1JpbmdQYXRoOgogICAgICAgICByZXR1cm4gY29weUludG88RHJhd0Zv
Y3VzUmluZ1BhdGg+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
Rm9jdXNSaW5nUmVjdHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAK
aW5kZXggYmRlYzY1NGI1MmJkNDZkNjM5Y2EyZTlhZWFiOWQ2MWU4NjNkYzM4NS4uZGZhMWU3NGZi
MjQ4NmMzNGEwOWMxZmExYmEyY2JkZTc0OTAwNGRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmNwcApAQCAtODAsNiArODAsOCBAQCBzdGF0aWMgc2l6ZV90IHNpemVP
Zkl0ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2YoQmVnaW5D
bGlwVG9EcmF3aW5nQ29tbWFuZHMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkVuZENsaXBUb0RyYXdp
bmdDb21tYW5kczoKICAgICAgICAgcmV0dXJuIHNpemVvZihFbmRDbGlwVG9EcmF3aW5nQ29tbWFu
ZHMpOworICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOgorICAgICAg
ICByZXR1cm4gc2l6ZW9mKERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpEcmF3R2x5cGhzOgogICAgICAgICByZXR1cm4gc2l6ZW9mKERyYXdHbHlwaHMpOwogICAg
IGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKQEAgLTIxNiw2ICsyMTgsNyBAQCBib29s
IGlzRHJhd2luZ0l0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclJl
Y3Q6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjoKICAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RmlsdGVy
ZWRJbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3Rm9jdXNSaW5nUGF0aDoKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3Rm9jdXNSaW5nUmVjdHM6CiAgICAgY2FzZSBJdGVtVHlwZTo6
RHJhd0dseXBoczoKQEAgLTMyMiw2ICszMjUsNyBAQCBib29sIGlzSW5saW5lSXRlbShJdGVtVHlw
ZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0VsbGlwc2U6CisgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXI6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRy
YXdOYXRpdmVJbWFnZToKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IDgwODQ0ZThiOWRmMDU1ZTVhMTZjMzY3
Y2UyYmYyOTBhOTNjZTYzNzIuLjkxZjNmNWY1Mjg4YmM3ZWIyZGFkNmU0MmRkZmIzZGJmMTk4MGM3
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAtNTIsNiArNTIs
NyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgQ2xpcFBhdGgsCiAgICAg
QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMsCiAgICAgRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRz
LAorICAgIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyLAogICAgIERyYXdHbHlwaHMsCiAgICAgRHJh
d0ltYWdlQnVmZmVyLAogICAgIERyYXdOYXRpdmVJbWFnZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmNwcAppbmRleCA3MmZjNmQxYTczNDQ2MTQyNWYwY2U1NjdmNmI4MGMwNDcyMmMw
YWExLi4wOWYyYjU3YzY0YThkMjFlMjk2NTFlYWY1N2MxYzc3Nzk3Nzg2ZjVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
RGlzcGxheUxpc3RJdGVtcy5oIgogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RSZXBsYXllci5oIgor
I2luY2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCiAjaW5jbHVkZSAi
SW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgpAQCAtMjk5LDYgKzMwMCwz
MCBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3Qg
RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzJiBpdAogICAgIHJldHVybiB0czsKIH0KIAorRHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXI6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZpbHRlcikKKyAgICA6IG1fc291
cmNlSW1hZ2VJZGVudGlmaWVyKHNvdXJjZUltYWdlSWRlbnRpZmllcikKKyAgICAsIG1fc291cmNl
SW1hZ2VSZWN0KHNvdXJjZUltYWdlUmVjdCkKKyAgICAsIG1fZmlsdGVyKGZpbHRlcikKK3sKK30K
KworTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UpCit7CisgICAg
Y29udGV4dC5kcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZSwgbV9zb3VyY2VJbWFn
ZVJlY3QsIG1fZmlsdGVyKTsKK30KKworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyJiBpdGVtKQoreworICAg
IHRzLmR1bXBQcm9wZXJ0eSgic291cmNlLWltYWdlLWlkZW50aWZpZXIiLCBpdGVtLnNvdXJjZUlt
YWdlSWRlbnRpZmllcigpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInNvdXJjZS1pbWFnZS1yZWN0
IiwgaXRlbS5zb3VyY2VJbWFnZVJlY3QoKSk7CisgICAgcmV0dXJuIHRzOworfQorCiBEcmF3R2x5
cGhzOjpEcmF3R2x5cGhzKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmb250SWRlbnRpZmll
ciwgVmVjdG9yPEdseXBoQnVmZmVyR2x5cGgsIDEyOD4mJiBnbHlwaHMsIFZlY3RvcjxHbHlwaEJ1
ZmZlckFkdmFuY2UsIDEyOD4mJiBhZHZhbmNlcywgY29uc3QgRmxvYXRSZWN0JiBib3VuZHMsIGNv
bnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdN
b2RlKQogICAgIDogbV9mb250SWRlbnRpZmllcihmb250SWRlbnRpZmllcikKICAgICAsIG1fZ2x5
cGhzKFdURk1vdmUoZ2x5cGhzKSkKQEAgLTEwNTksNiArMTA4NCw3IEBAIHN0YXRpYyBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogICAgIGNhc2Ug
SXRlbVR5cGU6OkNsaXBQYXRoOiB0cyA8PCAiY2xpcC1wYXRoIjsgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHM6IHRzIDw8ICJiZWdpbi1jbGlwLXRv
LWRyYXdpbmctY29tbWFuZHM6IjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzOiB0cyA8PCAiZW5kLWNsaXAtdG8tZHJhd2luZy1jb21tYW5kcyI7IGJy
ZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyOiB0cyA8PCAi
ZHJhdy1maWx0ZXJlZC1pbWFnZS1idWZmZXIiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpE
cmF3R2x5cGhzOiB0cyA8PCAiZHJhdy1nbHlwaHMiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBl
OjpEcmF3SW1hZ2VCdWZmZXI6IHRzIDw8ICJkcmF3LWltYWdlLWJ1ZmZlciI7IGJyZWFrOwogICAg
IGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZTogdHMgPDwgImRyYXctbmF0aXZlLWltYWdl
IjsgYnJlYWs7CkBAIC0xMTc4LDYgKzEyMDQsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xp
cFRvRHJhd2luZ0NvbW1hbmRzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxFbmRDbGlwVG9EcmF3
aW5nQ29tbWFuZHM+KCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdG
aWx0ZXJlZEltYWdlQnVmZmVyOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxEcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcj4oKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ds
eXBoczoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8RHJhd0dseXBocz4oKTsKICAgICAgICAgYnJl
YWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCBlMTRhNDI5OTNhMGYyYWZk
YjJmNGIxNmEwYWFiZjk1ZWUxNGRiMzdlLi44MzViMDEyZDVmYzBiNDk2MDRlZjNhZWFiZjUxMWFh
NjFjYjNlMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTkxMiw2ICs5
MTIsMjkgQEAgcHJpdmF0ZToKICAgICBGbG9hdFJlY3QgbV9kZXN0aW5hdGlvbjsKIH07CiAKK2Ns
YXNzIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OkRyYXdGaWx0ZXJlZEltYWdlQnVmZmVy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSBmYWxzZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IHRydWU7CisKKyAgICBXRUJDT1JF
X0VYUE9SVCBEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZUltYWdlUmVjdCwgRmlsdGVyJik7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2VJbWFnZUlkZW50aWZpZXI7IH0KKyAgICBGbG9hdFJlY3Qgc291cmNlSW1hZ2VS
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VJbWFnZVJlY3Q7IH0KKworICAgIE5PX1JFVFVS
Tl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciogc291cmNlSW1hZ2UpOworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGds
b2JhbEJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQorICAgIHN0ZDo6b3B0
aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZUltYWdlUmVjdDsgfQorCitwcml2YXRlOgorICAgIHN0ZDo6b3B0
aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBtX3NvdXJjZUltYWdlSWRlbnRpZmll
cjsKKyAgICBGbG9hdFJlY3QgbV9zb3VyY2VJbWFnZVJlY3Q7CisgICAgUmVmPEZpbHRlcj4gbV9m
aWx0ZXI7Cit9OworCiBjbGFzcyBEcmF3R2x5cGhzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OkRyYXdHbHlwaHM7CkBAIC0yNDA1
LDYgKzI0MjgsNyBAQCB1c2luZyBEaXNwbGF5TGlzdEl0ZW0gPSBzdGQ6OnZhcmlhbnQKICAgICAs
IENvbmNhdGVuYXRlQ1RNCiAgICAgLCBEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyCiAgICAgLCBE
cmF3RWxsaXBzZQorICAgICwgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIKICAgICAsIERyYXdGb2N1
c1JpbmdQYXRoCiAgICAgLCBEcmF3Rm9jdXNSaW5nUmVjdHMKICAgICAsIERyYXdHbHlwaHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCAyZmQ0M2Y5OWFlMzU0
YWRhZDczYmQ4NWYxNGZmNWVjMGJlNGZkOTg0Li5kOGI4ZmNhMzkzYWY2MzZkZmI4NGY4NDcwNTc1
Y2NhZmM5YTczZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CkBAIC0xNDQsNiArMTQ0LDI0IEBAIHZvaWQgUmVjb3JkZXI6OnNldE1pdGVyTGltaXQoZmxvYXQg
bWl0ZXJMaW1pdCkKICAgICByZWNvcmRTZXRNaXRlckxpbWl0KG1pdGVyTGltaXQpOwogfQogCit2
b2lkIFJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNl
SW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZpbHRlcikK
K3sKKyAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW1JZk5lY2Vzc2FyeSgpOworCisgICAgaWYgKCFz
b3VyY2VJbWFnZSkgeworICAgICAgICByZWNvcmREcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcih7IH0s
IHNvdXJjZUltYWdlUmVjdCwgZmlsdGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghY2FuRHJhd0ltYWdlQnVmZmVyKCpzb3VyY2VJbWFnZSkpIHsKKyAgICAgICAgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZSwgc291cmNlSW1h
Z2VSZWN0LCBmaWx0ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVjb3JkUmVz
b3VyY2VVc2UoKnNvdXJjZUltYWdlKTsKKyAgICByZWNvcmREcmF3RmlsdGVyZWRJbWFnZUJ1ZmZl
cihzb3VyY2VJbWFnZS0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIHNvdXJjZUltYWdl
UmVjdCwgZmlsdGVyKTsKK30KKwogdm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBocyhjb25zdCBGb250
JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMsIGNvbnN0IEdseXBoQnVmZmVy
QWR2YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYg
c3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKICAgICBtX2Ry
YXdHbHlwaHNSZWNvcmRlci5kcmF3R2x5cGhzKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUds
eXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuaAppbmRleCA5YTQwMTQzNjdkYjFlZjQzYjhhNTllNTBlM2Q0NzEwZjkzZTAz
ZWJmLi4wMmFlNTcwNjEyZTM0YjgyM2Y2MDc0YmZlZmRlMzYwZWVlODdlNjFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTg4LDYgKzg4LDcgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCByZWNvcmRDbGlwUGF0aChjb25zdCBQYXRoJiwgV2luZFJ1bGUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkQmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMo
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgRGVzdGluYXRpb25Db2xvclNwYWNlKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlY29yZERyYXdG
aWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VS
ZWN0LCBGaWx0ZXImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29u
c3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFu
Y2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRT
bW9vdGhpbmdNb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZERyYXdJbWFnZUJ1ZmZl
cihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3TmF0
aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29u
c3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CkBA
IC0yMjQsNiArMjI1LDggQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5
RmlsbFBhdHRlcm4oKSBmaW5hbDsKICNlbmRpZgogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
cmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNvbnN0IEZs
b2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImKSBmaW5hbDsKKwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlw
aCosIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIG51bUdseXBocywgY29uc3Qg
RmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIEZvbnRTbW9vdGhpbmdNb2RlKSBmaW5hbDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdHbHlwaHNBbmRDYWNoZUZvbnQoY29uc3QgRm9udCYsIGNv
bnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25l
ZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2Rl
KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5j
cHAKaW5kZXggYTVlMmQzYjIwOTg1ZTNlZjk0MWEzMjM1NzU2ZTI4MGVhY2Q1MTYzYy4uMzAzNDA4
MTBhZGY2ZGM5OWNmNjI4YTEyNWU5ZDQ2ZGU4YThhODdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCkBAIC0yMDgsNiArMjA4LDExIEBAIHZvaWQg
UmVjb3JkZXJJbXBsOjpyZWNvcmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRS
ZWN0JiBkZXN0aW5hdGlvbikKICAgICBhcHBlbmQ8RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPihk
ZXN0aW5hdGlvbik7CiB9CiAKK3ZvaWQgUmVjb3JkZXJJbXBsOjpyZWNvcmREcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc291
cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmls
dGVyJiBmaWx0ZXIpCit7CisgICAgYXBwZW5kPERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyPihzb3Vy
Y2VJbWFnZUlkZW50aWZpZXIsIHNvdXJjZUltYWdlUmVjdCwgZmlsdGVyKTsKK30KKwogdm9pZCBS
ZWNvcmRlckltcGw6OnJlY29yZERyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5
cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdmFuY2Vz
LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9v
dGhpbmdNb2RlIG1vZGUpCiB7CiAgICAgYXBwZW5kPERyYXdHbHlwaHM+KGZvbnQsIGdseXBocywg
YWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hvciwgbW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVySW1wbC5oCmluZGV4IDNlNmQwOTAyNjkwNDZmMWIxMjRhMzljMWUx
MjExMDBiMzI3MjYwYzUuLjI5ZTcyNzRmMTc1ZGE4YTYyNzkzMzhlZGUzNDgzNDJiMmU4NTU0YTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oCkBAIC04Niw2
ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNvcmRDbGlwUGF0aChjb25zdCBQYXRoJiwg
V2luZFJ1bGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkQmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFu
ZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgRGVzdGluYXRpb25Db2xvclNwYWNlKSBm
aW5hbDsKICAgICB2b2lkIHJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdGaWx0ZXJlZElt
YWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3Vy
Y2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0
ZXImKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0
IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBj
b3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlKSBm
aW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikg
ZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3TmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKaW5kZXggODg5YzZmN2IxNzRiMjA2OWNk
OWMzZjhhMmE1MTY1OTg1ODhmZTMzMS4uZTVkZjIxOTJhOWNjMDE3N2M3YWExYTAzMWQxNmM2ZjJh
NGNmOGYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmgKQEAgLTMwLDExICszMCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEZFQmxlbmQgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEZFQmxlbmQ+IGNyZWF0ZShCbGVuZE1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8RkVCbGVuZD4gY3JlYXRlKEJsZW5kTW9kZSk7CiAKICAgICBCbGVuZE1vZGUgYmxl
bmRNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAgYm9vbCBzZXRCbGVuZE1vZGUo
QmxlbmRNb2RlKTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxSZWY8RkVCbGVuZD4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAg
RkVCbGVuZChCbGVuZE1vZGUpOwogCkBAIC00OCw2ICs1MSwyMyBAQCBwcml2YXRlOgogICAgIEJs
ZW5kTW9kZSBtX21vZGU7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRUJs
ZW5kOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1f
bW9kZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZF
QmxlbmQ+PiBGRUJsZW5kOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9w
dGlvbmFsPEJsZW5kTW9kZT4gbW9kZTsKKyAgICBkZWNvZGVyID4+IG1vZGU7CisgICAgaWYgKCFt
b2RlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIEZFQmxlbmQ6
OmNyZWF0ZSgqbW9kZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQmxlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCmluZGV4
IGE0MzEyNWI1MzE1NjJjNjNhOTUyODQ3YzhmOTA0NDljOTRmN2U4NWIuLjIwMjQwMTkzZTU0MGJj
MjBlZmI5NDY3NGI2YTAwNDdkNjhiMjIzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCkBAIC0zNyw3ICsz
Nyw3IEBAIGVudW0gQ29sb3JNYXRyaXhUeXBlIHsKIAogY2xhc3MgRkVDb2xvck1hdHJpeCA6IHB1
YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVDb2xvck1hdHJp
eD4gY3JlYXRlKENvbG9yTWF0cml4VHlwZSwgVmVjdG9yPGZsb2F0PiYmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPEZFQ29sb3JNYXRyaXg+IGNyZWF0ZShDb2xvck1hdHJpeFR5cGUs
IFZlY3RvcjxmbG9hdD4mJik7CiAKICAgICBDb2xvck1hdHJpeFR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQogICAgIGJvb2wgc2V0VHlwZShDb2xvck1hdHJpeFR5cGUpOwpAQCAt
NDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlSHVlUm90YXRl
Q29tcG9uZW50cyhmbG9hdCogY29tcG9uZW50cywgZmxvYXQgdmFsdWUpOwogICAgIHN0YXRpYyBW
ZWN0b3I8ZmxvYXQ+IG5vcm1hbGl6ZWRGbG9hdHMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWVz
KTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxS
ZWY8RkVDb2xvck1hdHJpeD4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVD
b2xvck1hdHJpeChDb2xvck1hdHJpeFR5cGUsIFZlY3RvcjxmbG9hdD4mJik7CiAKQEAgLTY2LDYg
KzY5LDQ1IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPGZsb2F0PiBtX3ZhbHVlczsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFQ29sb3JNYXRyaXg6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV90eXBlOworICAgIGVuY29kZXIg
PDwgbV92YWx1ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFs
PFJlZjxGRUNvbG9yTWF0cml4Pj4gRkVDb2xvck1hdHJpeDo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxDb2xvck1hdHJpeFR5cGU+IHR5cGU7CisgICAgZGVj
b2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4gdmFsdWVzOworICAgIGRlY29k
ZXIgPj4gdmFsdWVzOworICAgIGlmICghdmFsdWVzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgcmV0dXJuIEZFQ29sb3JNYXRyaXg6OmNyZWF0ZSgqdHlwZSwgV1RGTW92ZSgq
dmFsdWVzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29sb3JNYXRyaXhUeXBl
PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Q29s
b3JNYXRyaXhUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkZFQ09MT1JNQVRSSVhfVFlQRV9VTktO
T1dOLAorICAgICAgICBXZWJDb3JlOjpGRUNPTE9STUFUUklYX1RZUEVfTUFUUklYLAorICAgICAg
ICBXZWJDb3JlOjpGRUNPTE9STUFUUklYX1RZUEVfU0FUVVJBVEUsCisgICAgICAgIFdlYkNvcmU6
OkZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEUsCisgICAgICAgIFdlYkNvcmU6OkZFQ09MT1JN
QVRSSVhfVFlQRV9MVU1JTkFOQ0VUT0FMUEhBCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb2xvck1hdHJp
eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb21wb25lbnRUcmFuc2Zlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKaW5kZXggY2NhZjQ1OWIwM2UzZjBlNGU2MDli
YWYzOTI3NDExMDc1NWFmYTIzNy4uMDQ5ZDRmMjA2YjhiNDYxNjY4YjcwMjQ4ZTdlMGI1NGU1MTU5
ZjY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKQEAgLTQ4LDE3ICs0OCwyMyBAQCBz
dHJ1Y3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiB7CiAgICAgZmxvYXQgb2Zmc2V0IHsgMCB9
OwogCiAgICAgVmVjdG9yPGZsb2F0PiB0YWJsZVZhbHVlczsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogY2xhc3MgRkVDb21wb25lbnRUcmFuc2ZlciA6IHB1
YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVDb21wb25lbnRU
cmFuc2Zlcj4gY3JlYXRlKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIHJlZEZ1bmMs
IGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGdyZWVuRnVuYywgY29uc3QgQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbiYgYmx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb24mIGFscGhhRnVuYyk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUNvbXBv
bmVudFRyYW5zZmVyPiBjcmVhdGUoY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVk
RnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jLCBjb25zdCBD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKIAogICAgIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24g
cmVkRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3JlZEZ1bmN0aW9uOyB9CiAgICAgQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbiBncmVlbkZ1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9ncmVl
bkZ1bmN0aW9uOyB9CiAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBibHVlRnVuY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2JsdWVGdW5jdGlvbjsgfQogICAgIENvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb24gYWxwaGFGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxwaGFGdW5jdGlvbjsg
fQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJl
ZjxGRUNvbXBvbmVudFRyYW5zZmVyPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAg
ICBGRUNvbXBvbmVudFRyYW5zZmVyKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIHJl
ZEZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGdyZWVuRnVuYywgY29uc3Qg
Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYmx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb24mIGFscGhhRnVuYyk7CiAKQEAgLTc2LDYgKzgyLDExMSBAQCBwcml2YXRlOgog
ICAgIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gbV9hbHBoYUZ1bmN0aW9uOwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlOworICAg
IGVuY29kZXIgPDwgc2xvcGU7CisgICAgZW5jb2RlciA8PCBpbnRlcmNlcHQ7CisgICAgZW5jb2Rl
ciA8PCBhbXBsaXR1ZGU7CisgICAgZW5jb2RlciA8PCBleHBvbmVudDsKKyAgICBlbmNvZGVyIDw8
IG9mZnNldDsKKyAgICBlbmNvZGVyIDw8IHRhYmxlVmFsdWVzOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uPiBDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBz
dGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVyVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+
IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc2xvcGU7CisgICAgZGVjb2RlciA+PiBzbG9wZTsKKyAg
ICBpZiAoIXNsb3BlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxmbG9hdD4gaW50ZXJjZXB0OworICAgIGRlY29kZXIgPj4gaW50ZXJjZXB0OworICAg
IGlmICghaW50ZXJjZXB0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gYW1wbGl0dWRlOworICAgIGRlY29kZXIgPj4gYW1wbGl0dWRlOwor
ICAgIGlmICghYW1wbGl0dWRlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxmbG9hdD4gZXhwb25lbnQ7CisgICAgZGVjb2RlciA+PiBleHBvbmVudDsK
KyAgICBpZiAoIWV4cG9uZW50KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxmbG9hdD4gb2Zmc2V0OworICAgIGRlY29kZXIgPj4gb2Zmc2V0OworICAg
IGlmICghb2Zmc2V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8ZmxvYXQ+PiB0YWJsZVZhbHVlczsKKyAgICBkZWNvZGVyID4+IHRhYmxl
VmFsdWVzOworICAgIGlmICghdGFibGVWYWx1ZXMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4geyB7ICp0eXBlLCAqc2xvcGUsICppbnRlcmNlcHQsICphbXBsaXR1
ZGUsICpleHBvbmVudCwgKm9mZnNldCwgV1RGTW92ZSgqdGFibGVWYWx1ZXMpIH0gfTsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVDb21wb25lbnRUcmFuc2Zlcjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3JlZEZ1bmN0aW9u
OworICAgIGVuY29kZXIgPDwgbV9ncmVlbkZ1bmN0aW9uOworICAgIGVuY29kZXIgPDwgbV9ibHVl
RnVuY3Rpb247CisgICAgZW5jb2RlciA8PCBtX2FscGhhRnVuY3Rpb247Cit9CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRUNvbXBvbmVudFRyYW5zZmVyPj4g
RkVDb21wb25lbnRUcmFuc2Zlcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3Rk
OjpvcHRpb25hbDxDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uPiByZWRGdW5jdGlvbjsKKyAgICBk
ZWNvZGVyID4+IHJlZEZ1bmN0aW9uOworICAgIGlmICghcmVkRnVuY3Rpb24pCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPENvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb24+IGdyZWVuRnVuY3Rpb247CisgICAgZGVjb2RlciA+PiBncmVlbkZ1bmN0aW9uOwor
ICAgIGlmICghZ3JlZW5GdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbj4gYmx1ZUZ1bmN0aW9u
OworICAgIGRlY29kZXIgPj4gYmx1ZUZ1bmN0aW9uOworICAgIGlmICghYmx1ZUZ1bmN0aW9uKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uPiBhbHBoYUZ1bmN0aW9uOworICAgIGRlY29kZXIgPj4gYWxwaGFG
dW5jdGlvbjsKKyAgICBpZiAoIWFscGhhRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gRkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlKCpyZWRGdW5j
dGlvbiwgKmdyZWVuRnVuY3Rpb24sICpibHVlRnVuY3Rpb24sICphbHBoYUZ1bmN0aW9uKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDb21wb25lbnRUcmFuc2ZlclR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpDb21wb25lbnRU
cmFuc2ZlclR5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBF
X1VOS05PV04sCisgICAgICAgIFdlYkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9JREVO
VElUWSwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX1RBQkxFLAor
ICAgICAgICBXZWJDb3JlOjpGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfRElTQ1JFVEUsCisgICAg
ICAgIFdlYkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9MSU5FQVIsCisgICAgICAgIFdl
YkNvcmU6OkZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9HQU1NQQorICAgID47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKwogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZF
Q29tcG9uZW50VHJhbnNmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKaW5kZXggNTNhZTBkNmEyNjRlMjBhZjY2NThj
ZmVhZjk4YTc0NzJkNmM4ZmZmZi4uYzQwODM0MGFhZGNjM2Y5ZWExZjJlOWQ4YjZhYjlkMzUzMTc0
NjA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb3NpdGUuaApAQCAtNDAsNyArNDAsNyBAQCBlbnVtIENvbXBvc2l0ZU9wZXJh
dGlvblR5cGUgewogCiBjbGFzcyBGRUNvbXBvc2l0ZSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3Qgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVDb21wb3NpdGU+IGNyZWF0ZShjb25zdCBDb21wb3Np
dGVPcGVyYXRpb25UeXBlJiwgZmxvYXQgazEsIGZsb2F0IGsyLCBmbG9hdCBrMywgZmxvYXQgazQp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVDb21wb3NpdGU+IGNyZWF0ZShjb25z
dCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiwgZmxvYXQgazEsIGZsb2F0IGsyLCBmbG9hdCBrMywg
ZmxvYXQgazQpOwogCiAgICAgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSBvcGVyYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KICAgICBib29sIHNldE9wZXJhdGlvbihDb21wb3NpdGVPcGVy
YXRpb25UeXBlKTsKQEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgogICAgIGZsb2F0IGs0KCkgY29u
c3QgeyByZXR1cm4gbV9rNDsgfQogICAgIGJvb2wgc2V0SzQoZmxvYXQpOwogCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUNvbXBvc2l0ZT4+
IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVDb21wb3NpdGUoY29uc3QgQ29t
cG9zaXRlT3BlcmF0aW9uVHlwZSYsIGZsb2F0IGsxLCBmbG9hdCBrMiwgZmxvYXQgazMsIGZsb2F0
IGs0KTsKIApAQCAtODQsNiArODcsNjYgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2s0OwogfTsK
IAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVDb21wb3NpdGU6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV90eXBlOworICAgIGVuY29k
ZXIgPDwgbV9rMTsKKyAgICBlbmNvZGVyIDw8IG1fazI7CisgICAgZW5jb2RlciA8PCBtX2szOwor
ICAgIGVuY29kZXIgPDwgbV9rNDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6
b3B0aW9uYWw8UmVmPEZFQ29tcG9zaXRlPj4gRkVDb21wb3NpdGU6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0aW9uVHlwZT4gdHlw
ZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gazE7CisgICAgZGVjb2Rl
ciA+PiBrMTsKKyAgICBpZiAoIWsxKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gazI7CisgICAgZGVjb2RlciA+PiBrMjsKKyAgICBpZiAo
IWsyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxm
bG9hdD4gazM7CisgICAgZGVjb2RlciA+PiBrMzsKKyAgICBpZiAoIWszKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gazQ7CisgICAgZGVj
b2RlciA+PiBrNDsKKyAgICBpZiAoIWs0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIEZFQ29tcG9zaXRlOjpjcmVhdGUoKnR5cGUsICprMSwgKmsyLCAqazMsICpr
NCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0aW9uVHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkNv
bXBvc2l0ZU9wZXJhdGlvblR5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BF
UkFUT1JfVU5LTk9XTiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFUT1JfT1ZF
UiwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFUT1JfSU4sCisgICAgICAgIFdl
YkNvcmU6OkZFQ09NUE9TSVRFX09QRVJBVE9SX09VVCwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01Q
T1NJVEVfT1BFUkFUT1JfQVRPUCwKKyAgICAgICAgV2ViQ29yZTo6RkVDT01QT1NJVEVfT1BFUkFU
T1JfWE9SLAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9BUklUSE1FVElD
LAorICAgICAgICBXZWJDb3JlOjpGRUNPTVBPU0lURV9PUEVSQVRPUl9MSUdIVEVSCisgICAgPjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoRkVDb21wb3NpdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCmluZGV4IGUxYTE5Y2Nm
NGM0MzAzNzk0M2EzNWQ4ZjE0YzE3NjU1YTViZWViZjMuLjc1NDFmM2U0ZWRhOGEzZDc5YTc0MmVj
YjAwZWM0ZGQ1NGU3NzI0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCkBAIC0zOCw3ICszOCw3
IEBAIGVudW0gY2xhc3MgRWRnZU1vZGVUeXBlIHsKIAogY2xhc3MgRkVDb252b2x2ZU1hdHJpeCA6
IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVDb252b2x2
ZU1hdHJpeD4gY3JlYXRlKGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUsIGZsb2F0IGRpdmlzb3Is
IGZsb2F0IGJpYXMsIGNvbnN0IEludFBvaW50JiB0YXJnZXRPZmZzZXQsIEVkZ2VNb2RlVHlwZSwg
Y29uc3QgRmxvYXRQb2ludCYga2VybmVsVW5pdExlbmd0aCwgYm9vbCBwcmVzZXJ2ZUFscGhhLCBj
b25zdCBWZWN0b3I8ZmxvYXQ+JiBrZXJuZWxNYXRyaXgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8RkVDb252b2x2ZU1hdHJpeD4gY3JlYXRlKGNvbnN0IEludFNpemUmIGtlcm5lbFNp
emUsIGZsb2F0IGRpdmlzb3IsIGZsb2F0IGJpYXMsIGNvbnN0IEludFBvaW50JiB0YXJnZXRPZmZz
ZXQsIEVkZ2VNb2RlVHlwZSwgY29uc3QgRmxvYXRQb2ludCYga2VybmVsVW5pdExlbmd0aCwgYm9v
bCBwcmVzZXJ2ZUFscGhhLCBjb25zdCBWZWN0b3I8ZmxvYXQ+JiBrZXJuZWxNYXRyaXgpOwogCiAg
ICAgSW50U2l6ZSBrZXJuZWxTaXplKCkgY29uc3QgeyByZXR1cm4gbV9rZXJuZWxTaXplOyB9CiAg
ICAgdm9pZCBzZXRLZXJuZWxTaXplKGNvbnN0IEludFNpemUmKTsKQEAgLTY0LDYgKzY0LDkgQEAg
cHVibGljOgogICAgIGJvb2wgcHJlc2VydmVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2Vy
dmVBbHBoYTsgfQogICAgIGJvb2wgc2V0UHJlc2VydmVBbHBoYShib29sKTsKIAorICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVDb252b2x2ZU1h
dHJpeD4+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVDb252b2x2ZU1hdHJp
eChjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLCBmbG9hdCBkaXZpc29yLCBmbG9hdCBiaWFzLCBj
b25zdCBJbnRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBFZGdlTW9kZVR5cGUsIGNvbnN0IEZsb2F0UG9p
bnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wgcHJlc2VydmVBbHBoYSwgY29uc3QgVmVjdG9yPGZs
b2F0PiYga2VybmVsTWF0cml4KTsKIApAQCAtODMsNiArODYsODAgQEAgcHJpdmF0ZToKICAgICBW
ZWN0b3I8ZmxvYXQ+IG1fa2VybmVsTWF0cml4OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KK3ZvaWQgRkVDb252b2x2ZU1hdHJpeDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCBtX2tlcm5lbFNpemU7CisgICAgZW5jb2RlciA8PCBtX2Rpdmlz
b3I7CisgICAgZW5jb2RlciA8PCBtX2JpYXM7CisgICAgZW5jb2RlciA8PCBtX3RhcmdldE9mZnNl
dDsKKyAgICBlbmNvZGVyIDw8IG1fZWRnZU1vZGU7CisgICAgZW5jb2RlciA8PCBtX2tlcm5lbFVu
aXRMZW5ndGg7CisgICAgZW5jb2RlciA8PCBtX3ByZXNlcnZlQWxwaGE7CisgICAgZW5jb2RlciA8
PCBtX2tlcm5lbE1hdHJpeDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0
aW9uYWw8UmVmPEZFQ29udm9sdmVNYXRyaXg+PiBGRUNvbnZvbHZlTWF0cml4OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPEludFNpemU+IGtlcm5lbFNpemU7
CisgICAgZGVjb2RlciA+PiBrZXJuZWxTaXplOworICAgIGlmICgha2VybmVsU2l6ZSkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGRpdmlz
b3I7CisgICAgZGVjb2RlciA+PiBkaXZpc29yOworICAgIGlmICghZGl2aXNvcikKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGJpYXM7Cisg
ICAgZGVjb2RlciA+PiBiaWFzOworICAgIGlmICghYmlhcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8SW50UG9pbnQ+IHRhcmdldE9mZnNldDsKKyAg
ICBkZWNvZGVyID4+IHRhcmdldE9mZnNldDsKKyAgICBpZiAoIXRhcmdldE9mZnNldCkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RWRnZU1vZGVUeXBl
PiBlZGdlTW9kZTsKKyAgICBkZWNvZGVyID4+IGVkZ2VNb2RlOworICAgIGlmICghZWRnZU1vZGUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0
UG9pbnQ+IGtlcm5lbFVuaXRMZW5ndGg7CisgICAgZGVjb2RlciA+PiBrZXJuZWxVbml0TGVuZ3Ro
OworICAgIGlmICgha2VybmVsVW5pdExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcHJlc2VydmVBbHBoYTsKKyAgICBkZWNvZGVy
ID4+IHByZXNlcnZlQWxwaGE7CisgICAgaWYgKCFrZXJuZWxVbml0TGVuZ3RoKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8ZmxvYXQ+PiBr
ZXJuZWxNYXRyaXg7CisgICAgZGVjb2RlciA+PiBrZXJuZWxNYXRyaXg7CisgICAgaWYgKCFrZXJu
ZWxNYXRyaXgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVD
b252b2x2ZU1hdHJpeDo6Y3JlYXRlKCprZXJuZWxTaXplLCAqZGl2aXNvciwgKmJpYXMsICp0YXJn
ZXRPZmZzZXQsICplZGdlTW9kZSwgKmtlcm5lbFVuaXRMZW5ndGgsICpwcmVzZXJ2ZUFscGhhLCBX
VEZNb3ZlKCprZXJuZWxNYXRyaXgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpF
ZGdlTW9kZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpFZGdlTW9kZVR5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6RWRnZU1vZGVUeXBlOjpV
bmtub3duLAorICAgICAgICBXZWJDb3JlOjpFZGdlTW9kZVR5cGU6OkR1cGxpY2F0ZSwKKyAgICAg
ICAgV2ViQ29yZTo6RWRnZU1vZGVUeXBlOjpXcmFwLAorICAgICAgICBXZWJDb3JlOjpFZGdlTW9k
ZVR5cGU6Ok5vbmUKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbnZvbHZlTWF0cml4KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdo
dGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1
c2VMaWdodGluZy5oCmluZGV4IDMwMjRkNjUyMWIzOWQ0MmNhNGEyMGU3NTc3ZDk0MTQxZmVmMjAx
YTcuLmEyZDEyNThlM2FkNjdjNWI5YjRmYWMyZDQ1YzIyMTg5YTY4ZDA4ZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRp
bmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlm
ZnVzZUxpZ2h0aW5nLmgKQEAgLTM3LDEwICszNywxOCBAQCBwdWJsaWM6CiAKICAgICBXVEY6OlRl
eHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVz
ZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRURpZmZ1c2VMaWdodGluZz4+IGRlY29kZShE
ZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVEaWZmdXNlTGlnaHRpbmcoY29uc3QgQ29sb3Im
IGxpZ2h0aW5nQ29sb3IsIGZsb2F0IHN1cmZhY2VTY2FsZSwgZmxvYXQgZGlmZnVzZUNvbnN0YW50
LCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFksIFJlZjxM
aWdodFNvdXJjZT4mJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRp
b25hbDxSZWY8RkVEaWZmdXNlTGlnaHRpbmc+PiBGRURpZmZ1c2VMaWdodGluZzo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIEZFTGlnaHRpbmc6OmRlY29kZTxEZWNvZGVy
LCBGRURpZmZ1c2VMaWdodGluZz4oZGVjb2Rlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFRGlmZnVzZUxpZ2h0
aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpc3BsYWNlbWVudE1hcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCmluZGV4IDUzYjA5ZDRkNjY4YzdlMjNhMzAyZDFk
MzJkZjJjOGU4ODgxNTE5YmEuLjM4MjZhYWNjYmYyN2NjYzI4MWRhN2U3NDFiMTQ1ZWMwMGZlYWQ1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVEaXNwbGFjZW1lbnRNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKQEAgLTM3LDcgKzM3LDcgQEAgZW51bSBDaGFu
bmVsU2VsZWN0b3JUeXBlIHsKIAogY2xhc3MgRkVEaXNwbGFjZW1lbnRNYXAgOiBwdWJsaWMgRmls
dGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFRGlzcGxhY2VtZW50TWFwPiBj
cmVhdGUoQ2hhbm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0
b3JUeXBlIHlDaGFubmVsU2VsZWN0b3IsIGZsb2F0IHNjYWxlKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZFRGlzcGxhY2VtZW50TWFwPiBjcmVhdGUoQ2hhbm5lbFNlbGVjdG9yVHlw
ZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0b3JUeXBlIHlDaGFubmVsU2VsZWN0b3Is
IGZsb2F0IHNjYWxlKTsKIAogICAgIENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxlY3Rv
cigpIGNvbnN0IHsgcmV0dXJuIG1feENoYW5uZWxTZWxlY3RvcjsgfQogICAgIGJvb2wgc2V0WENo
YW5uZWxTZWxlY3Rvcihjb25zdCBDaGFubmVsU2VsZWN0b3JUeXBlKTsKQEAgLTQ4LDYgKzQ4LDkg
QEAgcHVibGljOgogICAgIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQog
ICAgIGJvb2wgc2V0U2NhbGUoZmxvYXQpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRURpc3BsYWNlbWVudE1hcD4+IGRlY29kZShEZWNv
ZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVEaXNwbGFjZW1lbnRNYXAoQ2hhbm5lbFNlbGVjdG9y
VHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0b3JUeXBlIHlDaGFubmVsU2VsZWN0
b3IsIGZsb2F0KTsKIApAQCAtNjUsNiArNjgsNTEgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX3Nj
YWxlOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVEaXNwbGFjZW1lbnRN
YXA6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV94
Q2hhbm5lbFNlbGVjdG9yOworICAgIGVuY29kZXIgPDwgbV95Q2hhbm5lbFNlbGVjdG9yOworICAg
IGVuY29kZXIgPDwgbV9zY2FsZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6
b3B0aW9uYWw8UmVmPEZFRGlzcGxhY2VtZW50TWFwPj4gRkVEaXNwbGFjZW1lbnRNYXA6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8Q2hhbm5lbFNlbGVjdG9y
VHlwZT4geENoYW5uZWxTZWxlY3RvcjsKKyAgICBkZWNvZGVyID4+IHhDaGFubmVsU2VsZWN0b3I7
CisgICAgaWYgKCF4Q2hhbm5lbFNlbGVjdG9yKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgc3RkOjpvcHRpb25hbDxDaGFubmVsU2VsZWN0b3JUeXBlPiB5Q2hhbm5lbFNlbGVj
dG9yOworICAgIGRlY29kZXIgPj4geUNoYW5uZWxTZWxlY3RvcjsKKyAgICBpZiAoIXlDaGFubmVs
U2VsZWN0b3IpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBzY2FsZTsKKyAgICBkZWNvZGVyID4+IHNjYWxlOworICAgIGlmICghc2NhbGUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVEaXNwbGFjZW1l
bnRNYXA6OmNyZWF0ZSgqeENoYW5uZWxTZWxlY3RvciwgKnlDaGFubmVsU2VsZWN0b3IsICpzY2Fs
ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q2hhbm5lbFNlbGVjdG9yVHlwZT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkNoYW5u
ZWxTZWxlY3RvclR5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6Q0hBTk5FTF9VTktOT1dOLAorICAg
ICAgICBXZWJDb3JlOjpDSEFOTkVMX1IsCisgICAgICAgIFdlYkNvcmU6OkNIQU5ORUxfRywKKyAg
ICAgICAgV2ViQ29yZTo6Q0hBTk5FTF9CLAorICAgICAgICBXZWJDb3JlOjpDSEFOTkVMX0EKKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
RklMVEVSX0VGRkVDVChGRURpc3BsYWNlbWVudE1hcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCmluZGV4IDU4ZjZl
Nzk2Yzc5MzkxNmExMTZkMjQ2YTQxNTU0OGZlNDY2ZDA3M2MuLjRiZmQ2MDg0OGIxYTgyNDcyODg0
YWJiZDA4MjRiN2E3NmVkMGQ0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaApAQCAtMjcsNyArMjcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBGRURyb3BTaGFkb3cgOiBwdWJsaWMgRmls
dGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZFRHJvcFNoYWRvdz4gY3JlYXRl
KGZsb2F0IHN0ZFgsIGZsb2F0IHN0ZFksIGZsb2F0IGR4LCBmbG9hdCBkeSwgY29uc3QgQ29sb3Im
IHNoYWRvd0NvbG9yLCBmbG9hdCBzaGFkb3dPcGFjaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmPEZFRHJvcFNoYWRvdz4gY3JlYXRlKGZsb2F0IHN0ZFgsIGZsb2F0IHN0ZFksIGZs
b2F0IGR4LCBmbG9hdCBkeSwgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yLCBmbG9hdCBzaGFkb3dP
cGFjaXR5KTsKIAogICAgIGZsb2F0IHN0ZERldmlhdGlvblgoKSBjb25zdCB7IHJldHVybiBtX3N0
ZFg7IH0KICAgICB2b2lkIHNldFN0ZERldmlhdGlvblgoZmxvYXQgc3RkWCkgeyBtX3N0ZFggPSBz
dGRYOyB9CkBAIC00Nyw2ICs0Nyw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCBzaGFkb3dPcGFjaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9zaGFkb3dPcGFjaXR5OyB9CiAgICAgdm9pZCBzZXRTaGFkb3dP
cGFjaXR5KGZsb2F0IHNoYWRvd09wYWNpdHkpIHsgbV9zaGFkb3dPcGFjaXR5ID0gc2hhZG93T3Bh
Y2l0eTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFJlZjxGRURyb3BTaGFkb3c+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAg
IEZFRHJvcFNoYWRvdyhmbG9hdCBzdGRYLCBmbG9hdCBzdGRZLCBmbG9hdCBkeCwgZmxvYXQgZHks
IGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgZmxvYXQgc2hhZG93T3BhY2l0eSk7CiAKQEAgLTY1
LDcgKzY4LDU0IEBAIHByaXZhdGU6CiAgICAgQ29sb3IgbV9zaGFkb3dDb2xvcjsKICAgICBmbG9h
dCBtX3NoYWRvd09wYWNpdHk7CiB9OwotICAgIAorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
dm9pZCBGRURyb3BTaGFkb3c6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgbV9zdGRYOworICAgIGVuY29kZXIgPDwgbV9zdGRZOworICAgIGVuY29kZXIg
PDwgbV9keDsKKyAgICBlbmNvZGVyIDw8IG1fZHk7CisgICAgZW5jb2RlciA8PCBtX3NoYWRvd0Nv
bG9yOworICAgIGVuY29kZXIgPDwgbV9zaGFkb3dPcGFjaXR5OworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVEcm9wU2hhZG93Pj4gRkVEcm9wU2hhZG93
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBz
dGRYOworICAgIGRlY29kZXIgPj4gc3RkWDsKKyAgICBpZiAoIXN0ZFgpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBzdGRZOworICAgIGRl
Y29kZXIgPj4gc3RkWTsKKyAgICBpZiAoIXN0ZFkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBkeDsKKyAgICBkZWNvZGVyID4+IGR4Owor
ICAgIGlmICghZHgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9w
dGlvbmFsPGZsb2F0PiBkeTsKKyAgICBkZWNvZGVyID4+IGR5OworICAgIGlmICghZHkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPENvbG9yPiBzaGFk
b3dDb2xvcjsKKyAgICBkZWNvZGVyID4+IHNoYWRvd0NvbG9yOworICAgIGlmICghc2hhZG93Q29s
b3IpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBzaGFkb3dPcGFjaXR5OworICAgIGRlY29kZXIgPj4gc2hhZG93T3BhY2l0eTsKKyAgICBp
ZiAoIXNoYWRvd09wYWNpdHkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBy
ZXR1cm4gRkVEcm9wU2hhZG93OjpjcmVhdGUoKnN0ZFgsICpzdGRZLCAqZHgsICpkeSwgKnNoYWRv
d0NvbG9yLCAqc2hhZG93T3BhY2l0eSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFRHJvcFNoYWRvdykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKaW5k
ZXggOGZjMWQ5N2E4MzIxNjYwMjlmYmVmOTkyNWMyZTVmN2FjNjcxMjg3NC4uMGE2NWM2ODIzNDEw
ZWVmYmUwOGU2NjkzNzgwOGUxYTk3YWU0ZjZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGRUZsb29kIDogcHVibGljIEZpbHRlckVmZmVjdCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRUZsb29kPiBjcmVhdGUoY29uc3QgQ29sb3ImIGZs
b29kQ29sb3IsIGZsb2F0IGZsb29kT3BhY2l0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxGRUZsb29kPiBjcmVhdGUoY29uc3QgQ29sb3ImIGZsb29kQ29sb3IsIGZsb2F0IGZsb29k
T3BhY2l0eSk7CiAKICAgICBjb25zdCBDb2xvciYgZmxvb2RDb2xvcigpIGNvbnN0IHsgcmV0dXJu
IG1fZmxvb2RDb2xvcjsgfQogICAgIGJvb2wgc2V0Rmxvb2RDb2xvcihjb25zdCBDb2xvciYpOwpA
QCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcGVyYXRpbmdDb2xvclNwYWNl
KGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Cisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFRmxv
b2Q+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFRmxvb2QoY29uc3QgQ29s
b3ImIGZsb29kQ29sb3IsIGZsb2F0IGZsb29kT3BhY2l0eSk7CiAKQEAgLTU2LDYgKzU5LDI5IEBA
IHByaXZhdGU6CiAgICAgZmxvYXQgbV9mbG9vZE9wYWNpdHk7CiB9OwogCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBGRUZsb29kOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IG1fZmxvb2RDb2xvcjsKKyAgICBlbmNvZGVyIDw8IG1fZmxvb2RP
cGFjaXR5OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8
RkVGbG9vZD4+IEZFRmxvb2Q6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6
b3B0aW9uYWw8Q29sb3I+IGZsb29kQ29sb3I7CisgICAgZGVjb2RlciA+PiBmbG9vZENvbG9yOwor
ICAgIGlmICghZmxvb2RDb2xvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGZsb29kT3BhY2l0eTsKKyAgICBkZWNvZGVyID4+IGZsb29k
T3BhY2l0eTsKKyAgICBpZiAoIWZsb29kT3BhY2l0eSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHJldHVybiBGRUZsb29kOjpjcmVhdGUoKmZsb29kQ29sb3IsICpmbG9vZE9w
YWNpdHkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRklMVEVSX0VGRkVDVChGRUZsb29kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4IDg3MTg1
M2RmNDkxMjA0NDc4OThjOGJiNTI1ZmI0MDRkZmQ1ZjMxNTkuLjk1NjdhMmYwNGJjZTkyMDU1YTM3
ZTZjYjVjZDA4YWY0ZWU3YTIyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTI5LDcgKzI5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGRUdhdXNzaWFuQmx1ciA6IHB1YmxpYyBG
aWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVHYXVzc2lhbkJsdXI+IGNy
ZWF0ZShmbG9hdCB4LCBmbG9hdCB5LCBFZGdlTW9kZVR5cGUpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWY8RkVHYXVzc2lhbkJsdXI+IGNyZWF0ZShmbG9hdCB4LCBmbG9hdCB5LCBFZGdl
TW9kZVR5cGUpOwogCiAgICAgZmxvYXQgc3RkRGV2aWF0aW9uWCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RkWDsgfQogICAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uWChmbG9hdCk7CkBAIC00NCw2ICs0NCw5
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNp
emUoRmxvYXRTaXplIHN0ZERldmlhdGlvbik7CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRl
T3V0c2V0U2l6ZShGbG9hdFNpemUgc3RkRGV2aWF0aW9uKTsKIAorICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVHYXVzc2lhbkJsdXI+PiBkZWNv
ZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFR2F1c3NpYW5CbHVyKGZsb2F0IHgsIGZs
b2F0IHksIEVkZ2VNb2RlVHlwZSk7CiAKQEAgLTYyLDYgKzY1LDM1IEBAIHByaXZhdGU6CiAgICAg
RWRnZU1vZGVUeXBlIG1fZWRnZU1vZGU7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
dm9pZCBGRUdhdXNzaWFuQmx1cjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBtX3N0ZFg7CisgICAgZW5jb2RlciA8PCBtX3N0ZFk7CisgICAgZW5jb2Rl
ciA8PCBtX2VkZ2VNb2RlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRp
b25hbDxSZWY8RkVHYXVzc2lhbkJsdXI+PiBGRUdhdXNzaWFuQmx1cjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc3RkWDsKKyAgICBkZWNvZGVy
ID4+IHN0ZFg7CisgICAgaWYgKCFzdGRYKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc3RkWTsKKyAgICBkZWNvZGVyID4+IHN0ZFk7Cisg
ICAgaWYgKCFzdGRZKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxFZGdlTW9kZVR5cGU+IGVkZ2VNb2RlOworICAgIGRlY29kZXIgPj4gZWRnZU1vZGU7
CisgICAgaWYgKCFlZGdlTW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHJldHVybiBGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlKCpzdGRYLCAqc3RkWSwgKmVkZ2VNb2RlKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJ
TFRFUl9FRkZFQ1QoRkVHYXVzc2lhbkJsdXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCmluZGV4IGRlMGIzODZhMTFjNzE1
OGM1MzhiY2I0YTgwMmM3YzhjZjBiNTY4NzIuLjMxYzJhYWFiZDNjNWIxOGMwZGNiNjAyMTk4OWIx
YTBiMTZkNzcxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCkBAIC01NSw2ICs1NSw5IEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IExpZ2h0U291cmNlJiBsaWdodFNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlnaHRT
b3VyY2UuZ2V0KCk7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyLCBjbGFzcyBDbGFz
c05hbWU+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxDbGFzc05hbWU+PiBkZWNvZGUoRGVjb2Rl
ciYpOworCiBwcm90ZWN0ZWQ6CiAgICAgRkVMaWdodGluZyhUeXBlLCBjb25zdCBDb2xvciYgbGln
aHRpbmdDb2xvciwgZmxvYXQgc3VyZmFjZVNjYWxlLCBmbG9hdCBkaWZmdXNlQ29uc3RhbnQsIGZs
b2F0IHNwZWN1bGFyQ29uc3RhbnQsIGZsb2F0IHNwZWN1bGFyRXhwb25lbnQsIGZsb2F0IGtlcm5l
bFVuaXRMZW5ndGhYLCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNlPiYm
KTsKIApAQCAtNzcsNCArODAsNTkgQEAgcHJvdGVjdGVkOgogICAgIFJlZjxMaWdodFNvdXJjZT4g
bV9saWdodFNvdXJjZTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFTGln
aHRpbmc6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwg
bV9saWdodGluZ0NvbG9yOworICAgIGVuY29kZXIgPDwgbV9zdXJmYWNlU2NhbGU7CisgICAgZW5j
b2RlciA8PCBtX2RpZmZ1c2VDb25zdGFudDsKKyAgICBlbmNvZGVyIDw8IG1fc3BlY3VsYXJDb25z
dGFudDsKKyAgICBlbmNvZGVyIDw8IG1fc3BlY3VsYXJFeHBvbmVudDsKKyAgICBlbmNvZGVyIDw8
IG1fa2VybmVsVW5pdExlbmd0aFg7CisgICAgZW5jb2RlciA8PCBtX2tlcm5lbFVuaXRMZW5ndGhZ
OworICAgIC8vIEZJWE1FOiBlbmNvZGUgbV9saWdodFNvdXJjZS4KK30KKwordGVtcGxhdGU8Y2xh
c3MgRGVjb2RlciwgY2xhc3MgQ2xhc3NOYW1lPgorc3RkOjpvcHRpb25hbDxSZWY8Q2xhc3NOYW1l
Pj4gRkVMaWdodGluZzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRp
b25hbDxDb2xvcj4gbGlnaHRpbmdDb2xvcjsKKyAgICBkZWNvZGVyID4+IGxpZ2h0aW5nQ29sb3I7
CisgICAgaWYgKCFsaWdodGluZ0NvbG9yKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc3VyZmFjZVNjYWxlOworICAgIGRlY29kZXIgPj4g
c3VyZmFjZVNjYWxlOworICAgIGlmICghc3VyZmFjZVNjYWxlKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZGlmZnVzZUNvbnN0YW50Owor
ICAgIGRlY29kZXIgPj4gZGlmZnVzZUNvbnN0YW50OworICAgIGlmICghZGlmZnVzZUNvbnN0YW50
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9h
dD4gc3BlY3VsYXJDb25zdGFudDsKKyAgICBkZWNvZGVyID4+IHNwZWN1bGFyQ29uc3RhbnQ7Cisg
ICAgaWYgKCFzcGVjdWxhckNvbnN0YW50KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc3BlY3VsYXJFeHBvbmVudDsKKyAgICBkZWNvZGVy
ID4+IHNwZWN1bGFyRXhwb25lbnQ7CisgICAgaWYgKCFzcGVjdWxhckV4cG9uZW50KQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4ga2VybmVs
VW5pdExlbmd0aFg7CisgICAgZGVjb2RlciA+PiBrZXJuZWxVbml0TGVuZ3RoWDsKKyAgICBpZiAo
IWtlcm5lbFVuaXRMZW5ndGhYKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxmbG9hdD4ga2VybmVsVW5pdExlbmd0aFk7CisgICAgZGVjb2RlciA+PiBr
ZXJuZWxVbml0TGVuZ3RoWTsKKyAgICBpZiAoIWtlcm5lbFVuaXRMZW5ndGhZKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgLy8gRklYTUU6IGRlY29kZSBtX2xpZ2h0U291cmNl
LgorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVN
ZXJnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVy
Z2UuY3BwCmluZGV4IDkyM2QzZTllNWZhZmQwZTA0NzgzZjMwZmRhMTg3YWE2YTJiNjc2NTkuLjk1
OWI0OGFiZTA4NjgxNmMzNThlM2M4NjQ5YTE5M2JiMGNlZWVmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcApAQCAtMjks
MTMgKzI5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEZFTWVyZ2U+IEZFTWVy
Z2U6OmNyZWF0ZSgpCitSZWY8RkVNZXJnZT4gRkVNZXJnZTo6Y3JlYXRlKHVuc2lnbmVkIG51bWJl
ck9mRWZmZWN0SW5wdXRzKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFTWVyZ2UoKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVNZXJnZShudW1iZXJPZkVmZmVjdElucHV0cykp
OwogfQogCi1GRU1lcmdlOjpGRU1lcmdlKCkKK0ZFTWVyZ2U6OkZFTWVyZ2UodW5zaWduZWQgbnVt
YmVyT2ZFZmZlY3RJbnB1dHMpCiAgICAgOiBGaWx0ZXJFZmZlY3QoRmlsdGVyRWZmZWN0OjpUeXBl
OjpGRU1lcmdlKQorICAgICwgbV9udW1iZXJPZkVmZmVjdElucHV0cyhudW1iZXJPZkVmZmVjdElu
cHV0cykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRU1lcmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTWVyZ2UuaAppbmRleCA2NGVkNGE3N2IxZTA3M2UwYzYxZGQ1NTNmMDA4MjBiMWYw
ZmI2NzE4Li5iOWUxNThmY2Y0YTNiN2Q3NzhkZjE2NmY4NzJhOTRmZTcyNzZkMGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaApA
QCAtMjgsMTYgKzI4LDM4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVNZXJnZSA6
IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVNZXJnZT4g
Y3JlYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRU1lcmdlPiBjcmVhdGUo
dW5zaWduZWQgbnVtYmVyT2ZFZmZlY3RJbnB1dHMpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRU1lcmdlPj4gZGVjb2RlKERlY29kZXIm
KTsKIAogcHJpdmF0ZToKLSAgICBGRU1lcmdlKCk7CisgICAgRkVNZXJnZSh1bnNpZ25lZCBudW1i
ZXJPZkVmZmVjdElucHV0cyk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdW5zaWduZWQgbV9u
dW1iZXJPZkVmZmVjdElucHV0cyB7IDAgfTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIEZFTWVyZ2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbV9udW1iZXJPZkVmZmVjdElucHV0czsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK3N0ZDo6b3B0aW9uYWw8UmVmPEZFTWVyZ2U+PiBGRU1lcmdlOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBudW1iZXJPZkVmZmVj
dElucHV0czsKKyAgICBkZWNvZGVyID4+IG51bWJlck9mRWZmZWN0SW5wdXRzOworICAgIGlmICgh
bnVtYmVyT2ZFZmZlY3RJbnB1dHMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4gRkVNZXJnZTo6Y3JlYXRlKCpudW1iZXJPZkVmZmVjdElucHV0cyk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZG
RUNUKEZFTWVyZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAppbmRleCAyMmExNTIxMWRmYTE2ZmJkMjBmOGEwYzEw
M2JmYjA3M2Y4MjE0MGNiLi44MjViZTllNGRlNzk3ZDY2MzE4NzZjZTkxYTNlZTlhN2EzZGQ2Yjgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TW9ycGhvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNb3JwaG9sb2d5LmgKQEAgLTM0LDcgKzM0LDcgQEAgZW51bSBjbGFzcyBNb3JwaG9sb2d5
T3BlcmF0b3JUeXBlIHsKIAogY2xhc3MgRkVNb3JwaG9sb2d5IDogcHVibGljIEZpbHRlckVmZmVj
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGRU1vcnBob2xvZ3k+IGNyZWF0ZShNb3JwaG9s
b2d5T3BlcmF0b3JUeXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCByYWRpdXNZKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZFTW9ycGhvbG9neT4gY3JlYXRlKE1vcnBob2xvZ3lPcGVy
YXRvclR5cGUsIGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJhZGl1c1kpOwogCiAgICAgTW9ycGhvbG9n
eU9wZXJhdG9yVHlwZSBtb3JwaG9sb2d5T3BlcmF0b3IoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KICAgICBib29sIHNldE1vcnBob2xvZ3lPcGVyYXRvcihNb3JwaG9sb2d5T3BlcmF0b3JUeXBl
KTsKQEAgLTQ1LDYgKzQ1LDkgQEAgcHVibGljOgogICAgIGZsb2F0IHJhZGl1c1koKSBjb25zdCB7
IHJldHVybiBtX3JhZGl1c1k7IH0KICAgICBib29sIHNldFJhZGl1c1koZmxvYXQpOwogCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRU1vcnBo
b2xvZ3k+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIEZFTW9ycGhvbG9neShN
b3JwaG9sb2d5T3BlcmF0b3JUeXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCByYWRpdXNZKTsKIApA
QCAtNjEsNiArNjQsNDkgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX3JhZGl1c1k7CiB9OwogCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGRU1vcnBob2xvZ3k6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV90eXBlOworICAgIGVuY29kZXIg
PDwgbV9yYWRpdXNYOworICAgIGVuY29kZXIgPDwgbV9yYWRpdXNZOworfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVNb3JwaG9sb2d5Pj4gRkVNb3JwaG9s
b2d5OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPE1vcnBo
b2xvZ3lPcGVyYXRvclR5cGU+IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICgh
dHlwZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
ZmxvYXQ+IHJhZGl1c1g7CisgICAgZGVjb2RlciA+PiByYWRpdXNYOworICAgIGlmICghcmFkaXVz
WCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8Zmxv
YXQ+IHJhZGl1c1k7CisgICAgZGVjb2RlciA+PiByYWRpdXNZOworICAgIGlmICghcmFkaXVzWSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGRU1vcnBob2xvZ3k6
OmNyZWF0ZSgqdHlwZSwgKnJhZGl1c1gsICpyYWRpdXNZKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpNb3JwaG9sb2d5T3BlcmF0b3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6TW9ycGhvbG9neU9wZXJhdG9yVHlwZSwKKwor
ICAgICAgICBXZWJDb3JlOjpNb3JwaG9sb2d5T3BlcmF0b3JUeXBlOjpVbmtub3duLAorICAgICAg
ICBXZWJDb3JlOjpNb3JwaG9sb2d5T3BlcmF0b3JUeXBlOjpFcm9kZSwKKyAgICAgICAgV2ViQ29y
ZTo6TW9ycGhvbG9neU9wZXJhdG9yVHlwZTo6RGlsYXRlCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgorCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVNb3Jw
aG9sb2d5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU9mZnNldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU9mZnNldC5oCmluZGV4IDEwZWIzM2M5NGY5OGI3ZGNhMzY3NTFjNmY4OGYxNjk4MTY1OTkw
ZjguLjZiYTE3ZmVmZjYyMTQ3Yzk3NWZjN2U1OGU2ZmYzMDQ0MzUxMzRhZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKQEAg
LTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGRU9mZnNldCA6IHB1
YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RkVPZmZzZXQ+IGNy
ZWF0ZShmbG9hdCBkeCwgZmxvYXQgZHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8
RkVPZmZzZXQ+IGNyZWF0ZShmbG9hdCBkeCwgZmxvYXQgZHkpOwogCiAgICAgZmxvYXQgZHgoKSBj
b25zdCB7IHJldHVybiBtX2R4OyB9CiAgICAgdm9pZCBzZXREeChmbG9hdCk7CkBAIC0zNiw2ICsz
Niw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCBkeSgpIGNvbnN0IHsgcmV0dXJuIG1fZHk7IH0KICAg
ICB2b2lkIHNldER5KGZsb2F0KTsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVPZmZzZXQ+PiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2
YXRlOgogICAgIEZFT2Zmc2V0KGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAKQEAgLTUxLDYgKzU0LDI5
IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9keTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+Cit2b2lkIEZFT2Zmc2V0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IG1fZHg7CisgICAgZW5jb2RlciA8PCBtX2R5OworfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8RkVPZmZzZXQ+PiBGRU9mZnNldDo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZHg7Cisg
ICAgZGVjb2RlciA+PiBkeDsKKyAgICBpZiAoIWR4KQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gZHk7CisgICAgZGVjb2RlciA+PiBkeTsK
KyAgICBpZiAoIWR5KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJu
IEZFT2Zmc2V0OjpjcmVhdGUoKmR4LCAqZHkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRU9mZnNldCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
U3BlY3VsYXJMaWdodGluZy5oCmluZGV4IDVjN2U4MWNlMzA0NzIxYWU4MWIxNDM2NDRiNzYzODli
NzMxOTkzM2QuLjhhNmZjNGIwMzYwNzcwODhlZGFlMjMzZmY0N2ZhZGNiNDU5M2U2Y2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVNwZWN1bGFyTGlnaHRpbmcuaApAQCAtMzgsMTAgKzM4LDE4IEBAIHB1YmxpYzoKIAogICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFU3BlY3VsYXJMaWdodGluZz4+
IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVTcGVjdWxhckxpZ2h0aW5nKGNv
bnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IHNwZWN1
bGFyQ29uc3RhbnQsIGZsb2F0IHNwZWN1bGFyRXhwb25lbnQsIGZsb2F0IGtlcm5lbFVuaXRMZW5n
dGhYLCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNlPiYmKTsKIH07CiAK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxGRVNwZWN1bGFyTGln
aHRpbmc+PiBGRVNwZWN1bGFyTGlnaHRpbmc6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIHJldHVybiBGRUxpZ2h0aW5nOjpkZWNvZGU8RGVjb2RlciwgRkVTcGVjdWxhckxpZ2h0aW5n
PihkZWNvZGVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVTcGVjdWxhckxpZ2h0aW5nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKaW5kZXggZmIyNjUz
YWY4MjNlNzNlZmEyYWE5NTY4ZDZiNjUxOGNmZjZjOTA0YS4uN2QzOTc5ODU3ODgxZGE3MjU3NDFi
Yjk5ZTBjYTY0YzQ0NGE4MDA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAKIGNsYXNzIEZFVGlsZSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8RkVUaWxlPiBjcmVhdGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmPEZFVGlsZT4gY3JlYXRlKCk7CiAKIHByaXZhdGU6CiAgICAgRkVUaWxlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVy
YnVsZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1
cmJ1bGVuY2UuaAppbmRleCAxNzVmZmY3NDI4MjZmY2FjMjJjZGYzYjgzNmQyYzliOTcwODAxMDk2
Li5iOGU5M2JjMDFiMjViNDI5MGM0YTE1NDM5ZWVhYzQ3MjBmNDg5ZTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNl
LmgKQEAgLTM3LDcgKzM3LDcgQEAgZW51bSBjbGFzcyBUdXJidWxlbmNlVHlwZSB7CiAKIGNsYXNz
IEZFVHVyYnVsZW5jZSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8RkVUdXJidWxlbmNlPiBjcmVhdGUoVHVyYnVsZW5jZVR5cGUsIGZsb2F0IGJhc2VGcmVx
dWVuY3lYLCBmbG9hdCBiYXNlRnJlcXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0IHNlZWQs
IGJvb2wgc3RpdGNoVGlsZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVUdXJi
dWxlbmNlPiBjcmVhdGUoVHVyYnVsZW5jZVR5cGUsIGZsb2F0IGJhc2VGcmVxdWVuY3lYLCBmbG9h
dCBiYXNlRnJlcXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0IHNlZWQsIGJvb2wgc3RpdGNo
VGlsZXMpOwogCiAgICAgVHVyYnVsZW5jZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZTsgfQogICAgIGJvb2wgc2V0VHlwZShUdXJidWxlbmNlVHlwZSk7CkBAIC01Nyw2ICs1Nyw5IEBA
IHB1YmxpYzoKICAgICBib29sIHN0aXRjaFRpbGVzKCkgY29uc3QgeyByZXR1cm4gbV9zdGl0Y2hU
aWxlczsgfQogICAgIGJvb2wgc2V0U3RpdGNoVGlsZXMoYm9vbCk7CiAKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFVHVyYnVsZW5jZT4+IGRl
Y29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVUdXJidWxlbmNlKFR1cmJ1bGVuY2VU
eXBlLCBmbG9hdCBiYXNlRnJlcXVlbmN5WCwgZmxvYXQgYmFzZUZyZXF1ZW5jeVksIGludCBudW1P
Y3RhdmVzLCBmbG9hdCBzZWVkLCBib29sIHN0aXRjaFRpbGVzKTsKIApAQCAtNzQsNiArNzcsNjcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fc3RpdGNoVGlsZXM7CiB9OwogCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBGRVR1cmJ1bGVuY2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgbV90eXBlOworICAgIGVuY29kZXIgPDwgbV9iYXNlRnJl
cXVlbmN5WDsKKyAgICBlbmNvZGVyIDw8IG1fYmFzZUZyZXF1ZW5jeVk7CisgICAgZW5jb2RlciA8
PCBtX251bU9jdGF2ZXM7CisgICAgZW5jb2RlciA8PCBtX3NlZWQ7CisgICAgZW5jb2RlciA8PCBt
X3N0aXRjaFRpbGVzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25h
bDxSZWY8RkVUdXJidWxlbmNlPj4gRkVUdXJidWxlbmNlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFR1cmJ1bGVuY2VUeXBlPiB0eXBlOworICAgIGRlY29k
ZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBiYXNlRnJlcXVlbmN5WDsKKyAgICBkZWNvZGVy
ID4+IGJhc2VGcmVxdWVuY3lYOworICAgIGlmICghYmFzZUZyZXF1ZW5jeVgpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBiYXNlRnJlcXVl
bmN5WTsKKyAgICBkZWNvZGVyID4+IGJhc2VGcmVxdWVuY3lZOworICAgIGlmICghYmFzZUZyZXF1
ZW5jeVkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFs
PGludD4gbnVtT2N0YXZlczsKKyAgICBkZWNvZGVyID4+IG51bU9jdGF2ZXM7CisgICAgaWYgKCFu
dW1PY3RhdmVzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRp
b25hbDxmbG9hdD4gc2VlZDsKKyAgICBkZWNvZGVyID4+IHNlZWQ7CisgICAgaWYgKCFzZWVkKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBz
dGl0Y2hUaWxlczsKKyAgICBkZWNvZGVyID4+IHN0aXRjaFRpbGVzOworICAgIGlmICghc3RpdGNo
VGlsZXMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVUdXJi
dWxlbmNlOjpjcmVhdGUoKnR5cGUsICpiYXNlRnJlcXVlbmN5WCwgKmJhc2VGcmVxdWVuY3lZLCAq
bnVtT2N0YXZlcywgKnNlZWQsICpzdGl0Y2hUaWxlcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6VHVyYnVsZW5jZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAorICAgICAgICBXZWJDb3JlOjpUdXJidWxlbmNlVHlwZSwKKworICAgICAgICBXZWJDb3JlOjpU
dXJidWxlbmNlVHlwZTo6VW5rbm93biwKKyAgICAgICAgV2ViQ29yZTo6VHVyYnVsZW5jZVR5cGU6
OkZyYWN0YWxOb2lzZSwKKyAgICAgICAgV2ViQ29yZTo6VHVyYnVsZW5jZVR5cGU6OlR1cmJ1bGVu
Y2UKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIFNQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRklMVEVSX0VGRkVDVChGRVR1cmJ1bGVuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHAKaW5kZXggNTJkYzM1ZDZkNjFk
Mzg4MzVkNDBjZTYzM2RlMDZmNjY0NTNlZDFlYi4uNTc5OWEwMzY1ZTE1MGYzNDU3ZWRiYTEyMmU5
OTlhZWZiODZlNDM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyLmNwcApAQCAtOTgsOSArOTgsMTAgQEAgYm9vbCBGaWx0ZXI6OmNs
YW1wRmlsdGVyUmVnaW9uSWZOZWVkZWQoKQogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8
RmlsdGVySW1hZ2U+IEZpbHRlcjo6YXBwbHkoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKQorUmVm
UHRyPEZpbHRlckltYWdlPiBGaWx0ZXI6OmFwcGx5KEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QpCiB7CiAgICAgc2V0U291cmNlSW1hZ2Uo
c291cmNlSW1hZ2UpOworICAgIHNldFNvdXJjZUltYWdlUmVjdChzb3VyY2VJbWFnZVJlY3QpOwog
CiAgICAgYXV0byByZXN1bHQgPSBhcHBseSgpOwogICAgIGlmICghcmVzdWx0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKaW5kZXggY2Ex
ZDk1MzRjN2Y4YjE4MDZkODFhNWQyMDI3ZjhjNDkyYWUyMjgzYS4uYzMzZWQwODI4YjEzYWE3NjEy
YzE0YTNjODM2ZjFkZWE5MTgyMDhlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNvdXJjZUltYWdlKFJlZlB0cjxJbWFnZUJ1ZmZlcj4mJiBzb3VyY2VJbWFnZSkg
eyBtX3NvdXJjZUltYWdlID0gV1RGTW92ZShzb3VyY2VJbWFnZSk7IH0KIAogICAgIENsaXBPcGVy
YXRpb24gY2xpcE9wZXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcE9wZXJhdGlvbjsgfQor
ICAgIHZvaWQgc2V0Q2xpcE9wZXJhdGlvbihDbGlwT3BlcmF0aW9uIGNsaXBPcGVyYXRpb24pIHsg
bV9jbGlwT3BlcmF0aW9uID0gY2xpcE9wZXJhdGlvbjsgfQogCiAgICAgdmlydHVhbCBGbG9hdFNp
emUgcmVzb2x2ZWRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgY29uc3QgeyByZXR1cm4gc2l6
ZTsgfQogCkBAIC03Miw5ICs3MywxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjbGFtcEZpbHRlclJl
Z2lvbklmTmVlZGVkKCk7CiAgICAgCiAgICAgdmlydHVhbCBSZWZQdHI8RmlsdGVySW1hZ2U+IGFw
cGx5KCkgPSAwOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHko
SW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Rmls
dGVySW1hZ2U+IGFwcGx5KEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2VJbWFnZVJlY3QpOwogCiBwcm90ZWN0ZWQ6CisgICAgdXNpbmcgRmlsdGVyRnVuY3Rp
b246OkZpbHRlckZ1bmN0aW9uOwogICAgIEZpbHRlcihGaWx0ZXI6OlR5cGUsIFJlbmRlcmluZ01v
ZGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyU2NhbGUsIENsaXBPcGVyYXRpb24gPSBDbGlwT3Bl
cmF0aW9uOjpJbnRlcnNlY3QpOwogICAgIEZpbHRlcihGaWx0ZXI6OlR5cGUsIFJlbmRlcmluZ01v
ZGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyU2NhbGUsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
SW1hZ2VSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGZpbHRlclJlZ2lvbiwgQ2xpcE9wZXJhdGlvbiA9
IENsaXBPcGVyYXRpb246OkludGVyc2VjdCk7CiAKQEAgLTkxLDMgKzkzLDE2IEBAIHByaXZhdGU6
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZpbHRlcjo6Q2xpcE9wZXJhdGlvbj4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZpbHRl
cjo6Q2xpcE9wZXJhdGlvbiwKKworICAgICAgICBXZWJDb3JlOjpGaWx0ZXI6OkNsaXBPcGVyYXRp
b246OkludGVyc2VjdCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyOjpDbGlwT3BlcmF0aW9uOjpV
bml0ZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKaW5k
ZXggYTczOGE3ZDAyNmQ4OGZkZDQ4MWZmYTkwNzMwYWJmZTI1YTVjNjY3Yi4uMzAzM2RiMDIxMGQz
ZTFmMTIzYjRiOWI1ZDc5MzViMWFjODRkMGIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKQEAgLTI3LDcg
KzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTb3VyY2VHcmFwaGljIDogcHVi
bGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6ICAgICAgICAKLSAgICBzdGF0aWMgUmVmPFNvdXJj
ZUdyYXBoaWM+IGNyZWF0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U291cmNl
R3JhcGhpYz4gY3JlYXRlKCk7CiAKICAgICBzdGF0aWMgQXRvbVN0cmluZyBlZmZlY3ROYW1lKCkg
eyByZXR1cm4gRmlsdGVyRWZmZWN0Ojpzb3VyY2VHcmFwaGljTmFtZSgpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKaW5kZXggYzkxOWQ5ODA1NDNiNzg5ZjViOWU1OWU5
YTI2MTVjYTc5MGU3ZmJkZC4uYTk3OGI5YWVmMGViYjBhYmEzNTcwMDhlZWFiNTM3Y2U1YzIwNTEz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKQEAgLTUyLDYgKzUyLDEx
IEBAIFJlZlB0cjxDU1NGaWx0ZXI+IENTU0ZpbHRlcjo6Y3JlYXRlKGNvbnN0IEZpbHRlck9wZXJh
dGlvbnMmIG9wZXJhdGlvbnMsIFJlbmRlcmluCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NT
RmlsdGVyKHJlbmRlcmluZ01vZGUsIHNjYWxlRmFjdG9yLCBjbGlwT3BlcmF0aW9uLCBoYXNGaWx0
ZXJUaGF0TW92ZXNQaXhlbHMsIGhhc0ZpbHRlclRoYXRTaG91bGRCZVJlc3RyaWN0ZWRCeVNlY3Vy
aXR5T3JpZ2luKSk7CiB9CiAKK1JlZlB0cjxDU1NGaWx0ZXI+IENTU0ZpbHRlcjo6Y3JlYXRlKFZl
Y3RvcjxSZWY8RmlsdGVyRnVuY3Rpb24+PiYmIGZ1bmN0aW9ucykKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENTU0ZpbHRlcihXVEZNb3ZlKGZ1bmN0aW9ucykpKTsKK30KKwogQ1NTRmlsdGVy
OjpDU1NGaWx0ZXIoUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCBzY2FsZUZhY3Rv
ciwgQ2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0aW9uLCBib29sIGhhc0ZpbHRlclRoYXRNb3Zlc1Bp
eGVscywgYm9vbCBoYXNGaWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9yaWdp
bikKICAgICA6IEZpbHRlcihGaWx0ZXI6OlR5cGU6OkNTU0ZpbHRlciwgcmVuZGVyaW5nTW9kZSwg
RmxvYXRTaXplIHsgc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yIH0sIGNsaXBPcGVyYXRpb24pCiAg
ICAgLCBtX2hhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscyhoYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMp
CkBAIC01OSw2ICs2NCwxMiBAQCBDU1NGaWx0ZXI6OkNTU0ZpbHRlcihSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUsIGZsb2F0IHNjYWxlRmFjdG9yLCBDbGlwT3BlcmF0aQogewogfQogCitDU1NG
aWx0ZXI6OkNTU0ZpbHRlcihWZWN0b3I8UmVmPEZpbHRlckZ1bmN0aW9uPj4mJiBmdW5jdGlvbnMp
CisgICAgOiBGaWx0ZXIoVHlwZTo6Q1NTRmlsdGVyKQorICAgICwgbV9mdW5jdGlvbnMoV1RGTW92
ZShmdW5jdGlvbnMpKQoreworfQorCiBzdGF0aWMgUmVmUHRyPEZpbHRlckVmZmVjdD4gY3JlYXRl
Qmx1ckVmZmVjdChjb25zdCBCbHVyRmlsdGVyT3BlcmF0aW9uJiBibHVyT3BlcmF0aW9uLCBGaWx0
ZXI6OkNsaXBPcGVyYXRpb24gY2xpcE9wZXJhdGlvbikKIHsKICAgICBmbG9hdCBzdGREZXZpYXRp
b24gPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGJsdXJPcGVyYXRpb24uc3RkRGV2aWF0aW9uKCksIDAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCmluZGV4IDczYTRlODdhOGY1NWRhODIy
YjgyZTlkZTkzMjYyZDVkODc4ZTI3NGQuLjk5MjE3N2ZmMDRkODgxZDZjMDJhNGE2N2YwMjIxZWVi
ZWFmMTRjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKQEAgLTQzLDYgKzQz
LDkgQEAgY2xhc3MgQ1NTRmlsdGVyIGZpbmFsIDogcHVibGljIEZpbHRlciB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxDU1NGaWx0ZXI+
IGNyZWF0ZShjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiwgUmVuZGVyaW5nTW9kZSwgZmxvYXQgc2Nh
bGVGYWN0b3IgPSAxLCBDbGlwT3BlcmF0aW9uID0gQ2xpcE9wZXJhdGlvbjo6SW50ZXJzZWN0KTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPENTU0ZpbHRlcj4gY3JlYXRlKFZlY3Rv
cjxSZWY8RmlsdGVyRnVuY3Rpb24+PiYmKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8RmlsdGVy
RnVuY3Rpb24+PiYgZnVuY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9mdW5jdGlvbnM7IH0KIAog
ICAgIHZvaWQgc2V0U291cmNlSW1hZ2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIGJvb2wg
YnVpbGRGaWx0ZXJGdW5jdGlvbnMoUmVuZGVyRWxlbWVudCYsIGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmKTsKQEAgLTYyLDYgKzY1LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIENTU0ZpbHRl
cihSZW5kZXJpbmdNb2RlLCBmbG9hdCBzY2FsZUZhY3RvciwgQ2xpcE9wZXJhdGlvbiwgYm9vbCBo
YXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMsIGJvb2wgaGFzRmlsdGVyVGhhdFNob3VsZEJlUmVzdHJp
Y3RlZEJ5U2VjdXJpdHlPcmlnaW4pOworICAgIENTU0ZpbHRlcihWZWN0b3I8UmVmPEZpbHRlckZ1
bmN0aW9uPj4mJik7CiAKICNpZiBVU0UoQ09SRV9JTUFHRSkKICAgICBib29sIHN1cHBvcnRzQ29y
ZUltYWdlUmVuZGVyaW5nKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckZpbHRlcnMuY3BwCmluZGV4IGFlNzEyMjQ0ZjljODQyZDE4NzZiMjA5
OWE2YzNjOTA3NzcyYWMwZDEuLmNhZGZmNDE2NjNkOWZjZWNhZDVjNDViNWY4NzQ3OTMwZGI4MDMy
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlcnMu
Y3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBSZW5kZXJMYXllckZpbHRlcnM6OmFwcGx5Rmls
dGVyRWZmZWN0KEdyYXBoaWNzQ29udGV4dCYgZGVzdGluYXRpb25Db250ZXh0KQogCiAgICAgYXV0
byYgZmlsdGVyID0gKm1fZmlsdGVyOwogCi0gICAgZGVzdGluYXRpb25Db250ZXh0LmRyYXdGaWx0
ZXJlZEltYWdlQnVmZmVyKG1fc291cmNlSW1hZ2UuZ2V0KCksIGZpbHRlcik7CisgICAgZGVzdGlu
YXRpb25Db250ZXh0LmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKG1fc291cmNlSW1hZ2UuZ2V0KCks
IGZpbHRlci5zb3VyY2VJbWFnZVJlY3QoKSwgZmlsdGVyKTsKICAgICBmaWx0ZXIuY2xlYXJJbnRl
cm1lZGlhdGVSZXN1bHRzKCk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oRmlsdGVycywgc3RyZWFt
IDw8ICJSZW5kZXJMYXllckZpbHRlcnMgIiA8PCB0aGlzIDw8ICIgYXBwbHlGaWx0ZXJFZmZlY3Qg
ZG9uZVxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmluZGV4IGIwMzBjMGY2NjU2MTUxYzExMWEyMWU5OWQz
MDAxMjIxMzY2ZjQwNWQuLjZiNjFiMmM4NjY1ZDNmM2FiMTIxMDgxYTkwZDcwNmYzOGEwMDdmMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBSZW5kZXJTVkdSZXNv
dXJjZUZpbHRlcjo6cG9zdEFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIEdy
YXBoaWMKIAogICAgIGlmICghZmlsdGVyRGF0YS5ib3VuZGFyaWVzLmlzRW1wdHkoKSkgewogICAg
ICAgICBmaWx0ZXJEYXRhLnN0YXRlID0gRmlsdGVyRGF0YTo6QnVpbHQ7Ci0gICAgICAgIGNvbnRl
eHQtPmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKGZpbHRlckRhdGEuc291cmNlR3JhcGhpY0J1ZmZl
ci5nZXQoKSwgKmZpbHRlckRhdGEuZmlsdGVyKTsKKyAgICAgICAgY29udGV4dC0+ZHJhd0ZpbHRl
cmVkSW1hZ2VCdWZmZXIoZmlsdGVyRGF0YS5zb3VyY2VHcmFwaGljQnVmZmVyLmdldCgpLCBmaWx0
ZXJEYXRhLmRyYXdpbmdSZWdpb24sICpmaWx0ZXJEYXRhLmZpbHRlcik7CiAgICAgfQogCiAgICAg
ZmlsdGVyRGF0YS5zb3VyY2VHcmFwaGljQnVmZmVyID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCmluZGV4IGZiNDkzZTU5ZGQ4MmJjNjlhZDc5MWIzNzVj
ZThhODI5MmNkN2M4MWYuLjg1NzMzN2JjM2M5MDc1NWI1Y2Y4ZDFhYjExY2E4ZWZkMzBjMzYyNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcApAQCAtNjEsNyArNjEs
NyBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRU1lcmdlRWxlbWVudDo6YnVpbGQoU1ZHRmls
dGVyQnVpbGRlciYgZmlsdGVyQnVpbGRlcikgYwogICAgIGlmIChtZXJnZUlucHV0cy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBlZmZlY3QgPSBGRU1lcmdl
OjpjcmVhdGUoKTsKKyAgICBhdXRvIGVmZmVjdCA9IEZFTWVyZ2U6OmNyZWF0ZShtZXJnZUlucHV0
cy5zaXplKCkpOwogICAgIGVmZmVjdC0+aW5wdXRFZmZlY3RzKCkgPSBXVEZNb3ZlKG1lcmdlSW5w
dXRzKTsKICAgICByZXR1cm4gZWZmZWN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CmluZGV4IGFkYTU0ZDQxOGEwYjYwMjU0NmIxN2U1N2M2NmRkMGNkNjkwMzBkMTMuLjVlMjNkZDJh
ZmYyOGZlYTQ5NzlkNjljZmFlM2FkNDg5ZmNhNmVlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAKQEAgLTIyMCw2ICsyMjAsMjMgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjplbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW4KICAg
ICBkcmF3aW5nQ29udGV4dCgpLmNsaXBUb0ltYWdlQnVmZmVyKCptYXNrSW1hZ2VCdWZmZXIsIGRl
c3RpbmF0aW9uKTsKIH0KIAordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVj
dCwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UgZmlsdGVyUmVmZXJlbmNlKQoreworICAgIFJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gc291cmNlSW1hZ2U7CisKKyAgICBpZiAoc291cmNlSW1hZ2VJZGVudGlmaWVy
KSB7CisgICAgICAgIHNvdXJjZUltYWdlID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZEltYWdlQnVm
ZmVyKHsgKnNvdXJjZUltYWdlSWRlbnRpZmllciwgbV93ZWJQcm9jZXNzSWRlbnRpZmllciB9KTsK
KyAgICAgICAgaWYgKCFzb3VyY2VJbWFnZSkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRv
IGZpbHRlciA9IGZpbHRlclJlZmVyZW5jZS50YWtlRmlsdGVyKCk7CisKKyAgICBoYW5kbGVJdGVt
KERpc3BsYXlMaXN0OjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZUlkZW50aWZp
ZXIsIHNvdXJjZUltYWdlUmVjdCwgV1RGTW92ZShmaWx0ZXIpKSwgc291cmNlSW1hZ2UuZ2V0KCkp
OworfQorCiB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdHbHlwaHMoRGlzcGxh
eUxpc3Q6OkRyYXdHbHlwaHMmJiBpdGVtKQogewogICAgIGF1dG8gZm9udElkZW50aWZpZXIgPSBp
dGVtLmZvbnRJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA1OTgy
Y2JhZWI4N2U2NjBjNWJhYjc3YTZkN2EyOTU3MDM1N2JiZjlmLi42OTZkNmNiMTYyNzY5OTBlYjRl
YzA3ODJjNDBkM2Q3YjBhODA5NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTM3
LDYgKzM3LDEwIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEZpbHRlclJlZmVyZW5jZTsKK30K
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CkBA
IC03Nyw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1h
bmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IFdlYkNvcmU6
OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYpOwogICAgIHZvaWQgZW5kQ2xpcFRvRHJhd2luZ0NvbW1h
bmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24pOwogICAgIHZvaWQgZHJh
d0dseXBocyhXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBocyYmKTsKKyAgICB2b2lkIGRy
YXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVyZW5jZSk7CiAgICAgdm9p
ZCBkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlt
YWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlv
blJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkFmZmlu
ZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCmluZGV4IDVjMTQw
OTNhM2I5YWJhMGExYmU3MjA2ODdlZmI0NjY4YjU5NWEzNjEuLjA5YzQwOTdkZWJlYjM0MzFjOGVm
Mjg0NGU3YWY5NTJmNDg1ZWFjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
Lm1lc3NhZ2VzLmluCkBAIC00Nyw2ICs0Nyw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIgTm90UmVmQ291bnRlZCBTdHJlYW0gewogICAgIEJlZ2luQ2xpcFRvRHJhd2lu
Z0NvbW1hbmRzKFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvbiwgV2ViQ29yZTo6RGVzdGlu
YXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpCiAgICAgRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRz
KFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvbikKICAgICBEcmF3R2x5cGhzKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzIGl0ZW0pCisgICAgRHJhd0ZpbHRlcmVkSW1hZ2VCdWZm
ZXIoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNv
dXJjZUltYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IHNvdXJjZUltYWdlUmVjdCwg
SVBDOjpGaWx0ZXJSZWZlcmVuY2UgZmlsdGVyKQogICAgIERyYXdJbWFnZUJ1ZmZlcihXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXZWJD
b3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3JjUmVj
dCwgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCiAgICAgRHJh
d05hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0U2l6ZSBpbWFnZVNpemUsIFdlYkNvcmU6OkZsb2F0UmVj
dCBkZXN0UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHNyY1JlY3QsIHN0cnVjdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQogICAgIERyYXdQYXR0ZXJuKFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0
U2l6ZSBpbWFnZVNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0UmVjdCwgV2ViQ29yZTo6Rmxv
YXRSZWN0IHRpbGVSZWN0LCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtLCBXZWJD
b3JlOjpGbG9hdFBvaW50IHBoYXNlLCBXZWJDb3JlOjpGbG9hdFNpemUgc3BhY2luZywgc3RydWN0
IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKaW5kZXggZmNjNzJiZjIwYTJmYjJjNmI5OWJhMGVlNmY4MjA2YTRjYWI2ZmZjMC4uYjBk
ZjUzNDM0NDk3ODJmYTRjZTMxYmNmMzMyZDhmYzViY2M4YjEwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisj
aW5jbHVkZSAiRmlsdGVyUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVJlbW90
ZUltYWdlQnVmZmVyLmgiCkBAIC0zMTgsNiArMzE5LDMzIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Z2V0U2hhcmVhYmxlQml0bWFwRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRl
bnRpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGUpKTsKIH0KIAordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRGaWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXIoUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6RmlsdGVyUmVmZXJlbmNl
JiYgZmlsdGVyUmVmZXJlbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOworCisgICAgYXV0byBmaWx0ZXIgPSBmaWx0ZXJSZWZlcmVuY2UudGFrZUZp
bHRlcigpOworCisgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOworICAgIFsmXSgp
IHsKKyAgICAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNo
ZWRJbWFnZUJ1ZmZlcih7IGlkZW50aWZpZXIsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSB9KTsKKyAgICAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBpbWFnZSA9IGltYWdlQnVmZmVyLT5maWx0
ZXJlZEltYWdlKGZpbHRlcik7CisgICAgICAgIGlmICghaW1hZ2UpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGF1dG8gaW1hZ2VTaXplID0gaW1hZ2UtPnNpemUoKTsKKyAgICAgICAgYXV0
byBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShJbnRTaXplKGltYWdl
U2l6ZSksIHsgaW1hZ2VCdWZmZXItPmNvbG9yU3BhY2UoKSB9KTsKKyAgICAgICAgaWYgKCFiaXRt
YXApCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8gY29udGV4dCA9IGJpdG1hcC0+
Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRQb2lu
dCgpKTsKKyAgICAgICAgYml0bWFwLT5jcmVhdGVIYW5kbGUoaGFuZGxlKTsKKyAgICB9KCk7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGUpKTsKK30KKwogdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBuYXRpdmVJbWFnZVJl
c291cmNlSWRlbnRpZmllcikKIHsKICAgICAvLyBJbW1lZGlhdGVseSB0dXJuIHRoZSBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgKHdoaWNoIGlzIGVycm9yLXByb25lKSB0byBhIFF1YWxpZmll
ZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDk4
OWJjOTMwZjQ4NmUxYzZkZTdkMTY2YTQzNGFiNWVlMDZhYzllZjUuLmUzNTcxNWRkMTdmZWU2NDM0
NWIyMjYyZDY4Y2ViZWE0ZDc0YWI5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtNTgsNiAr
NTgsMTAgQEAgZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogYm9vbDsKIAogfQogCituYW1lc3Bh
Y2UgSVBDIHsKK2NsYXNzIEZpbHRlclJlZmVyZW5jZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CkBAIC0xMDgsNiArMTEyLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJlc2Vy
dmVSZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmKTsKICAgICB2b2lkIGdldERhdGFGb3JJbWFn
ZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVh
bGl0eSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJik7CiAgICAgdm9pZCBnZXRTaGFyZWFibGVC
aXRtYXBGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYmKT4mJik7CisgICAgdm9pZCBnZXRGaWx0ZXJlZEltYWdlRm9y
SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBJUEM6OkZp
bHRlclJlZmVyZW5jZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiYpPiYmKTsKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
ICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0
ZUFsbEZvbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCmluZGV4
IGExNDJmNDg5NjZmNWM0OTc1OTQ1NjU0NzcyYzc5YzMxOTc2ZjUzZGMuLmU3YzFiZmE2N2Y0MzNj
ZjQ0YzhlMWMyZWY4OWMzZTY2YTY5ZjlkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
Lm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQgTm90UmVmQ291bnRlZCBTdHJlYW0gewogICAgIEdldERhdGFVUkxGb3JJbWFnZUJ1
ZmZlcihTdHJpbmcgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlvbiwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikgLT4gKFN0cmluZyB1cmxTdHJpbmcpIFN5bmNocm9ub3VzCiAgICAgR2V0RGF0YUZv
ckltYWdlQnVmZmVyKFN0cmluZyBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxp
dHksIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpIC0+IChWZWN0b3I8dWludDhfdD4gZGF0YSkgU3luY2hyb25vdXMKICAgICBH
ZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQcmVzZXJ2ZVJl
c29sdXRpb24gcHJlc2VydmVSZXNvbHV0aW9uKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSBoYW5kbGUpIFN5bmNocm9ub3VzIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CisgICAg
R2V0RmlsdGVyZWRJbWFnZUZvckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUJ1ZmZlciwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UgZmlsdGVyKSAtPiAo
V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGUpIFN5bmNocm9ub3VzIE5vdFN0
cmVhbUVuY29kYWJsZVJlcGx5CiAgICAgQ2FjaGVOYXRpdmVJbWFnZShXZWJLaXQ6OlNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgTm90U3RyZWFtRW5jb2RhYmxlCiAgICAg
Q2FjaGVGb250KElQQzo6Rm9udFJlZmVyZW5jZSBmb250KSBOb3RTdHJlYW1FbmNvZGFibGUKICAg
ICBEZWxldGVBbGxGb250cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9GaWx0ZXJSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJl
ZmVyZW5jZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxODQwYmQ3MGM1Y2I2NDBjZGJlNmQ4NTA5NTM1YjJlMjg4
NjZmMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0
ZXJSZWZlcmVuY2UuaApAQCAtMCwwICsxLDQwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8V2ViQ29yZS9DU1NGaWx0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZF
QmxlbmQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFQ29sb3JNYXRyaXguaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZFQ29tcG9uZW50VHJhbnNmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFQ29tcG9z
aXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GRUNvbnZvbHZlTWF0cml4Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GRURpZmZ1c2VMaWdodGluZy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVEaXNwbGFj
ZW1lbnRNYXAuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFRHJvcFNoYWRvdy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRkVGbG9vZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVHYXVzc2lhbkJsdXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZFTWVyZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFTW9ycGhv
bG9neS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVPZmZzZXQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZFU3BlY3VsYXJMaWdodGluZy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVUaWxlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GRVR1cmJ1bGVuY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVyRWZmZWN0VmVjdG9yLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TVkdGaWx0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NvdXJjZUdyYXBoaWMuaD4KKwor
bmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIEZpbHRlclJlZmVyZW5jZSB7CitwdWJsaWM6CisgICAg
RmlsdGVyUmVmZXJlbmNlKFJlZjxXZWJDb3JlOjpGaWx0ZXI+JiYgZmlsdGVyKQorICAgICAgICA6
IG1fZmlsdGVyKFdURk1vdmUoZmlsdGVyKSkKKyAgICB7CisgICAgfQorCisgICAgUmVmPFdlYkNv
cmU6OkZpbHRlcj4gdGFrZUZpbHRlcigpIHsgcmV0dXJuIFdURk1vdmUobV9maWx0ZXIpOyB9CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmlsdGVy
UmVmZXJlbmNlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZUZpbHRlckVmZmVjdChjb25zdCBXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3QmLCBFbmNvZGVyJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q+IGRlY29kZUZpbHRlckVmZmVjdChE
ZWNvZGVyJiwgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGUpOworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlU1ZHRmlsdGVyKGNvbnN0IFdlYkNvcmU6
OlNWR0ZpbHRlciYsIEVuY29kZXImKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgUmVmUHRyPFdlYkNvcmU6OlNWR0ZpbHRlcj4gZGVjb2RlU1ZHRmlsdGVyKERlY29kZXImKTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZUNTU0ZpbHRl
cihjb25zdCBXZWJDb3JlOjpDU1NGaWx0ZXImLCBFbmNvZGVyJik7CisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJDb3JlOjpDU1NGaWx0ZXI+IGRlY29kZUNTU0Zp
bHRlcihEZWNvZGVyJik7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBzdGF0aWMgdm9p
ZCBlbmNvZGVGaWx0ZXIoY29uc3QgV2ViQ29yZTo6RmlsdGVyJiwgRW5jb2RlciYpOworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6RmlsdGVyPiBkZWNv
ZGVGaWx0ZXIoRGVjb2RlciYsIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlKTsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gZGVj
b2RlRmlsdGVyKERlY29kZXImKTsKKworICAgIFJlZjxXZWJDb3JlOjpGaWx0ZXI+IG1fZmlsdGVy
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRmlsdGVyUmVmZXJlbmNlOjpl
bmNvZGVGaWx0ZXJFZmZlY3QoY29uc3QgV2ViQ29yZTo6RmlsdGVyRWZmZWN0JiBlZmZlY3QsIEVu
Y29kZXImIGVuY29kZXIpCit7CisgICAgZW5jb2RlciA8PCBlZmZlY3QuZmlsdGVyVHlwZSgpOwor
ICAgIGVuY29kZXIgPDwgZWZmZWN0Lm9wZXJhdGluZ0NvbG9yU3BhY2UoKTsKKworICAgIHN3aXRj
aCAoZWZmZWN0LmZpbHRlclR5cGUoKSkgeworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0
OjpUeXBlOjpGRUJsZW5kOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUJsZW5kPihlZmZl
Y3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6
OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb2xvck1hdHJpeDoKKyAgICAgICAgZG93bmNhc3Q8V2Vi
Q29yZTo6RkVDb2xvck1hdHJpeD4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50
VHJhbnNmZXI6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI+
KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvc2l0ZToKKyAgICAgICAgZG93bmNhc3Q8
V2ViQ29yZTo6RkVDb21wb3NpdGU+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbnZvbHZl
TWF0cml4OgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4PihlZmZl
Y3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6
OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaWZmdXNlTGlnaHRpbmc6CisgICAgICAgIGRvd25jYXN0
PFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVE
aXNwbGFjZW1lbnRNYXA6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50
TWFwPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVEcm9wU2hhZG93OgorICAgICAgICBkb3du
Y2FzdDxXZWJDb3JlOjpGRURyb3BTaGFkb3c+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUZs
b29kOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUZsb29kPihlZmZlY3QpLmVuY29kZShl
bmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVHYXVzc2lhbkJsdXI6CisgICAgICAgIGRvd25jYXN0PFdlYkNvcmU6OkZFR2F1
c3NpYW5CbHVyPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVJbWFnZToKKyAgICAgICAgLy8g
RklYTUU6IGVuY29kZSBGRUltYWdlLgorICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1lcmdlOgorICAgICAgICBkb3duY2FzdDxXZWJDb3Jl
OjpGRU1lcmdlPihlZmZlY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVNb3JwaG9sb2d5OgorICAgICAg
ICBkb3duY2FzdDxXZWJDb3JlOjpGRU1vcnBob2xvZ3k+KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIp
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBl
OjpGRU9mZnNldDoKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVPZmZzZXQ+KGVmZmVjdCku
ZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6Rmls
dGVyRWZmZWN0OjpUeXBlOjpGRVNwZWN1bGFyTGlnaHRpbmc6CisgICAgICAgIGRvd25jYXN0PFdl
YkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZz4oZWZmZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVGls
ZToKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlw
ZTo6RkVUdXJidWxlbmNlOgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRVR1cmJ1bGVuY2U+
KGVmZmVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYToKKyAgICBjYXNlIFdlYkNvcmU6
OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYzoKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3Rl
bXBsYXRlPGNsYXNzIERlY29kZXI+CitSZWZQdHI8V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiBGaWx0
ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVjdChEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3Jl
OjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSBmaWx0ZXJUeXBlKQoreworICAgIGlmICghKGZpbHRlclR5
cGUgPj0gV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRmlyc3QgJiYgZmlsdGVyVHlw
ZSA8PSBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVMYXN0KSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZT4gb3BlcmF0aW5nQ29sb3JTcGFjZTsKKyAgICBkZWNvZGVyID4+IG9wZXJhdGluZ0Nv
bG9yU3BhY2U7CisgICAgaWYgKCFvcGVyYXRpbmdDb2xvclNwYWNlKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIHN0ZDo6b3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4+
IGVmZmVjdDsKKworICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgeworICAgIGNhc2UgV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUJsZW5kOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpG
RUJsZW5kOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29sb3JNYXRyaXg6CisgICAgICAgIGVmZmVjdCA9
IFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb25lbnRUcmFu
c2ZlcjoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6ZGVj
b2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpUeXBlOjpGRUNvbXBvc2l0ZToKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVD
b21wb3NpdGU6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdl
YkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb252b2x2ZU1hdHJpeDoKKyAgICAgICAgZWZm
ZWN0ID0gV2ViQ29yZTo6RkVDb252b2x2ZU1hdHJpeDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRURpZmZ1
c2VMaWdodGluZzoKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVEaWZmdXNlTGlnaHRpbmc6
OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZp
bHRlckVmZmVjdDo6VHlwZTo6RkVEaXNwbGFjZW1lbnRNYXA6CisgICAgICAgIGVmZmVjdCA9IFdl
YkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRHJvcFNoYWRvdzoK
KyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpkZWNvZGUoZGVjb2Rlcik7
CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6
OkZFRmxvb2Q6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFRmxvb2Q6OmRlY29kZShkZWNv
ZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
VHlwZTo6RkVHYXVzc2lhbkJsdXI6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFR2F1c3Np
YW5CbHVyOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFSW1hZ2U6CisgICAgICAgIC8vIEZJWE1FOiBkZWNv
ZGUgRkVJbWFnZS4KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVm
ZmVjdDo6VHlwZTo6RkVNZXJnZToKKyAgICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVNZXJnZTo6
ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6Rmls
dGVyRWZmZWN0OjpUeXBlOjpGRU1vcnBob2xvZ3k6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6
OkZFTW9ycGhvbG9neTo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNh
c2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpGRU9mZnNldDoKKyAgICAgICAgZWZmZWN0
ID0gV2ViQ29yZTo6RkVPZmZzZXQ6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVTcGVjdWxhckxpZ2h0aW5n
OgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6OmRlY29kZShk
ZWNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVUaWxlOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRVRpbGU6OmNyZWF0
ZSgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpU
eXBlOjpGRVR1cmJ1bGVuY2U6CisgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OkZFVHVyYnVsZW5j
ZTo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VHcmFwaGljOgorICAgICAgICBlZmZlY3QgPSBXZWJD
b3JlOjpTb3VyY2VHcmFwaGljOjpjcmVhdGUoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlQWxwaGE6CisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgaWYgKGVmZmVjdCkg
eworICAgICAgICAoKmVmZmVjdCktPnNldE9wZXJhdGluZ0NvbG9yU3BhY2UoKm9wZXJhdGluZ0Nv
bG9yU3BhY2UpOworICAgICAgICByZXR1cm4geyAoKmVmZmVjdCkucHRyKCkgfTsKKyAgICB9CisK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
RmlsdGVyUmVmZXJlbmNlOjplbmNvZGVTVkdGaWx0ZXIoY29uc3QgV2ViQ29yZTo6U1ZHRmlsdGVy
JiBmaWx0ZXIsIEVuY29kZXImIGVuY29kZXIpCit7CisgICAgLy8gRklYTUU6IEVuY29kZSB0aGUg
U1ZHRmlsdGVyLgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorUmVmUHRyPFdlYkNvcmU6
OlNWR0ZpbHRlcj4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVTVkdGaWx0ZXIoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICAvLyBGSVhNRTogRGVjb2RlIHRoZSBTVkdGaWx0ZXIuCisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZpbHRlclJlZmVy
ZW5jZTo6ZW5jb2RlQ1NTRmlsdGVyKGNvbnN0IFdlYkNvcmU6OkNTU0ZpbHRlciYgZmlsdGVyLCBF
bmNvZGVyJiBlbmNvZGVyKQoreworICAgIGVuY29kZXIgPDwgZmlsdGVyLmZ1bmN0aW9ucygpLnNp
emUoKTsKKworICAgIGZvciAoYXV0byYgZnVuY3Rpb24gOiBmaWx0ZXIuZnVuY3Rpb25zKCkpIHsK
KyAgICAgICAgaWYgKGlzPFdlYkNvcmU6OlNWR0ZpbHRlcj4oZnVuY3Rpb24pKSB7CisgICAgICAg
ICAgICBlbmNvZGVGaWx0ZXIoZG93bmNhc3Q8V2ViQ29yZTo6U1ZHRmlsdGVyPihmdW5jdGlvbi5n
ZXQoKSksIGVuY29kZXIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoaXM8V2ViQ29yZTo6RmlsdGVyRWZmZWN0PihmdW5jdGlvbikpCisgICAgICAgICAg
ICBlbmNvZGVGaWx0ZXJFZmZlY3QoZG93bmNhc3Q8V2ViQ29yZTo6RmlsdGVyRWZmZWN0PihmdW5j
dGlvbi5nZXQoKSksIGVuY29kZXIpOworICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KK1JlZlB0cjxXZWJDb3JlOjpDU1NGaWx0ZXI+IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlQ1NT
RmlsdGVyKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IHNp
emU7CisgICAgZGVjb2RlciA+PiBzaXplOworICAgIGlmICghc2l6ZSB8fCAhKnNpemUpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgVmVjdG9yPFJlZjxXZWJDb3JlOjpGaWx0ZXJGdW5j
dGlvbj4+IGZ1bmN0aW9uczsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytp
KSB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU+
IGZpbHRlclR5cGU7CisgICAgICAgIGRlY29kZXIgPj4gZmlsdGVyVHlwZTsKKyAgICAgICAgaWYg
KCFmaWx0ZXJUeXBlKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgaWYg
KCpmaWx0ZXJUeXBlID09IFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpTVkdGaWx0ZXIp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvIGZpbHRlciA9IGRlY29kZUZpbHRlcihkZWNvZGVyLCAq
ZmlsdGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbnMuYXBwZW5kKGZpbHRlci5y
ZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgYXV0
byBlZmZlY3QgPSBkZWNvZGVGaWx0ZXJFZmZlY3QoZGVjb2RlciwgKmZpbHRlclR5cGUpOworICAg
ICAgICBpZiAoIWVmZmVjdCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAg
IGZ1bmN0aW9ucy5hcHBlbmQoZWZmZWN0LnJlbGVhc2VOb25OdWxsKCkpOworICAgIH0KKworICAg
IHJldHVybiBXZWJDb3JlOjpDU1NGaWx0ZXI6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9ucykpOwor
fQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6OmVuY29k
ZUZpbHRlcihjb25zdCBXZWJDb3JlOjpGaWx0ZXImIGZpbHRlciwgRW5jb2RlciYgZW5jb2RlcikK
K3sKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5maWx0ZXJUeXBlKCk7CisgICAgZW5jb2RlciA8PCBm
aWx0ZXIucmVuZGVyaW5nTW9kZSgpOworICAgIGVuY29kZXIgPDwgZmlsdGVyLmZpbHRlclNjYWxl
KCk7CisgICAgZW5jb2RlciA8PCBmaWx0ZXIuY2xpcE9wZXJhdGlvbigpOworICAgIGVuY29kZXIg
PDwgZmlsdGVyLmZpbHRlclJlZ2lvbigpOworCisgICAgaWYgKGlzPFdlYkNvcmU6OkNTU0ZpbHRl
cj4oZmlsdGVyKSkKKyAgICAgICAgZW5jb2RlQ1NTRmlsdGVyKGRvd25jYXN0PFdlYkNvcmU6OkNT
U0ZpbHRlcj4oZmlsdGVyKSwgZW5jb2Rlcik7CisgICAgZWxzZSBpZiAoaXM8V2ViQ29yZTo6U1ZH
RmlsdGVyPihmaWx0ZXIpKQorICAgICAgICBlbmNvZGVTVkdGaWx0ZXIoZG93bmNhc3Q8V2ViQ29y
ZTo6U1ZHRmlsdGVyPihmaWx0ZXIpLCBlbmNvZGVyKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpGaWx0ZXI+IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlRmls
dGVyKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlIGZpbHRl
clR5cGUpCit7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJpbmdNb2RlPiByZW5k
ZXJpbmdNb2RlOworICAgIGRlY29kZXIgPj4gcmVuZGVyaW5nTW9kZTsKKyAgICBpZiAoIXJlbmRl
cmluZ01vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFNpemU+IGZpbHRlclNjYWxlOworICAgIGRlY29kZXIgPj4gZmlsdGVyU2Nh
bGU7CisgICAgaWYgKCFmaWx0ZXJTY2FsZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRlcjo6Q2xpcE9wZXJhdGlvbj4gY2xpcE9wZXJh
dGlvbjsKKyAgICBkZWNvZGVyID4+IGNsaXBPcGVyYXRpb247CisgICAgaWYgKCFjbGlwT3BlcmF0
aW9uKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRSZWN0PiBmaWx0ZXJSZWdpb247CisgICAgZGVjb2RlciA+PiBmaWx0ZXJSZWdpb247
CisgICAgaWYgKCFmaWx0ZXJSZWdpb24pCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
UmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gZmlsdGVyOworCisgICAgaWYgKGZpbHRlclR5cGUgPT0g
V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkNTU0ZpbHRlcikKKyAgICAgICAgZmlsdGVy
ID0gZGVjb2RlQ1NTRmlsdGVyKGRlY29kZXIpOworICAgIGVsc2UgaWYgKGZpbHRlclR5cGUgPT0g
V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OlNWR0ZpbHRlcikKKyAgICAgICAgZmlsdGVy
ID0gZGVjb2RlU1ZHRmlsdGVyKGRlY29kZXIpOworICAgIAorICAgIGlmIChmaWx0ZXIpIHsKKyAg
ICAgICAgZmlsdGVyLT5zZXRSZW5kZXJpbmdNb2RlKCpyZW5kZXJpbmdNb2RlKTsKKyAgICAgICAg
ZmlsdGVyLT5zZXRGaWx0ZXJTY2FsZSgqZmlsdGVyU2NhbGUpOworICAgICAgICBmaWx0ZXItPnNl
dENsaXBPcGVyYXRpb24oKmNsaXBPcGVyYXRpb24pOworICAgICAgICBmaWx0ZXItPnNldEZpbHRl
clJlZ2lvbigqZmlsdGVyUmVnaW9uKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmlsdGVyOworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorUmVmUHRyPFdlYkNvcmU6OkZpbHRlcj4gRmlsdGVy
UmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXIoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlPiBmaWx0ZXJUeXBlOworICAgIGRl
Y29kZXIgPj4gZmlsdGVyVHlwZTsKKyAgICBpZiAoIWZpbHRlclR5cGUpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgcmV0dXJuIGRlY29kZUZpbHRlcihkZWNvZGVyLCAqZmlsdGVyVHlw
ZSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlRmlsdGVyKG1fZmls
dGVyLCBlbmNvZGVyKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9u
YWw8RmlsdGVyUmVmZXJlbmNlPiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIGlmIChhdXRvIGZpbHRlciA9IGRlY29kZUZpbHRlcihkZWNvZGVyKSkKKyAg
ICAgICAgcmV0dXJuIHsgZmlsdGVyLnJlbGVhc2VOb25OdWxsKCkgfTsKKyAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworfQorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDJjODM5YTllOWJjZDhlOWYxMjFkZjg5MzBmZjQyZmM2
MGNiMjdkMGYuLjA5MzBjZjkxN2JhNzkwZTU3NWQ4NGI5NjllYWMwNTgxZjUyZjUxNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjY2LDYgKzI2Niw3IEBA
IGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgcmV0dXJu
IGZyb3plbnNldChbCiAgICAgICAgICdDVlBpeGVsQnVmZmVyUmVmJywKICAgICAgICAgJ0lQQzo6
RGF0YVJlZmVyZW5jZScsCisgICAgICAgICdJUEM6OkZpbHRlclJlZmVyZW5jZScsCiAgICAgICAg
ICdJUEM6OkZvbnRSZWZlcmVuY2UnLAogICAgICAgICAnSVBDOjpTZW1hcGhvcmUnLAogICAgICAg
ICAnTWFjaFNlbmRSaWdodCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwZjBlMWQ2OTgxYWM5OGIwZDFmMzRkMmM3OTJkM2UzMWM2NzJi
YmMwLi4wMTQxOWM1ZGFiM2Q5NzgyMmEwOWUyNDBiNjVhYjlkN2NhYzg3ZDdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ5NjQsNiAr
NDk2NCw3IEBACiAJCTcyMDM0NDlBMjZBNkM0NEMwMDBBNUY1NCAvKiBNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vbm90b25pY09iamVjdElkZW50aWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIwMzQ0OUIyNkE2QzQ3NjAwMEE1RjU0IC8q
IFJlbmRlcmluZ1VwZGF0ZUlELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1VwZGF0ZUlELmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAv
KiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZv
cm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTcyNDY5NjNBMjc1QjdFNjcwMEE5MTU2QSAvKiBGaWx0ZXJSZWZlcmVuY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmlsdGVyUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcy
NkQ1NkREMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MjZENTZERTI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNo
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc0ODksNiArNzQ5MCw3IEBACiAJ
CQkJQkMwMzJEOUUxMEY0MzdEMTAwNThDMTVBIC8qIERlY29kZXIuaCAqLywKIAkJCQlCQzAzMkQ5
RjEwRjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5jcHAgKi8sCiAJCQkJQkMwMzJEQTAxMEY0MzdE
MTAwNThDMTVBIC8qIEVuY29kZXIuaCAqLywKKwkJCQk3MjQ2OTYzQTI3NUI3RTY3MDBBOTE1NkEg
LyogRmlsdGVyUmVmZXJlbmNlLmggKi8sCiAJCQkJOUJEOEFCNDkyNTgyMEU1MjAwNTM4NkY4IC8q
IEZvbnRSZWZlcmVuY2UuaCAqLywKIAkJCQk0MTUxRTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9y
bURhdGFSZWZlcmVuY2UuaCAqLywKIAkJCQlDMENFNzJBQzEyNDdFNzhEMDBCQzBFQzQgLyogSGFu
ZGxlTWVzc2FnZS5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuY3BwCmluZGV4IDk0MjFkZDIzOGNiNmVjNjNmZTFjMDdkNDczNjFjYjBiNjVmZjQwY2IuLjMy
YTM0MmRiZmJkZmE3ZjBjMzliYzYzNmE0NzkyMDMxYWUxNzc0MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkZpbHRlclJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4K
QEAgLTE5NCw2ICsxOTUsMTEgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFIKICAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFu
ZHMoZGVzdGluYXRpb24pKTsKIH0KIAordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVj
dCYgc291cmNlSW1hZ2VSZWN0LCBGaWx0ZXImIGZpbHRlcikKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzb3Vy
Y2VJbWFnZUlkZW50aWZpZXIsIHNvdXJjZUltYWdlUmVjdCwgSVBDOjpGaWx0ZXJSZWZlcmVuY2Uo
UmVmPEZpbHRlcj4geyBmaWx0ZXIgfSkpKTsKK30KKwogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZERyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5
cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdmFuY2Vz
LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9v
dGhpbmdNb2RlIG1vZGUpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6RHJhd0dseXBocyhEaXNwbGF5TGlzdDo6RHJhd0dseXBocyB7IGZvbnQsIGdseXBo
cywgYWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hvciwgbW9kZSB9KSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaAppbmRleCA3MWZkYjYzZGY0YWM4NDk3NDcyMzI2
OWI3ZjAzZDk5N2I4MTM5ODlkLi42Zjc4MDlkNWVlZTMwMmQyMjE5MzZjYTA1M2I4NzM5NGNiYTQ3
ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKQEAgLTkw
LDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlY29yZENsaXBQYXRoKGNvbnN0IFdlYkNv
cmU6OlBhdGgmLCBXZWJDb3JlOjpXaW5kUnVsZSkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRCZWdp
bkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpIGZpbmFsOwogICAgIHZvaWQgcmVj
b3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVz
dGluYXRpb24pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJj
ZUltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJl
Y3QsIFdlYkNvcmU6OkZpbHRlciYpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd0dseXBocyhj
b25zdCBXZWJDb3JlOjpGb250JiwgY29uc3QgV2ViQ29yZTo6R2x5cGhCdWZmZXJHbHlwaCosIGNv
bnN0IFdlYkNvcmU6OkdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgV2ViQ29yZTo6Rm9udFNtb290aGluZ01v
ZGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKICAgICB2b2lk
IHJlY29yZERyYXdOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCAwOTU1N2E3NWIwZWQ0ZTEwZjU2YmI0
ODllZjAzZDc4YmVjM2ZiYWUwLi45ZjNhZDEzNjI2MmE5MmZlZDUwYWY1MmI1ZDIxNDI5MzlhM2I0
MjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMTk4LDYgKzE5OCwxNCBAQCBw
cm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBiaXRtYXAtPmNyZWF0ZUltYWdlKCk7CiAgICAgfQog
CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBmaWx0ZXJlZEltYWdlKFdlYkNvcmU6OkZpbHRl
ciYgZmlsdGVyKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKCFtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAg
ICBmbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS0+Z2V0RmlsdGVyZWRJbWFnZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciwgZmlsdGVyKTsKKyAgICB9CisKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVs
QnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYg
ZGVzdGluYXRpb25Gb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0
IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoVU5MSUtFTFkoIW1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRl
eCAyY2Q1MzFjMTk2MTcyMmE3ZTE3ZGZkNzEzMDAzZWRhYTQ3M2M3YmYwLi4zNDRjYWJhYTM1MzEw
MTM2YjFkNWU0MDc2Yzc0ZTI1ZjRkNjMxODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuY3BwCkBAIC0yMjMsNiArMjIzLDIyIEBAIFJlZlB0cjxTaGFyZWFibGVCaXRt
YXA+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0U2hhcmVhYmxlQml0bWFwKFJlbmRl
cmluCiAgICAgcmV0dXJuIFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSk7CiB9CiAKK1Jl
ZlB0cjxJbWFnZT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRGaWx0ZXJlZEltYWdl
KFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlciwgRmlsdGVyJiBmaWx0ZXIp
Cit7CisgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOworICAgIGF1dG8gc2VuZFJl
c3VsdCA9IHNlbmRTeW5jVG9TdHJlYW0oTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OkdldEZpbHRlcmVkSW1hZ2VGb3JJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgSVBDOjpGaWx0ZXJS
ZWZlcmVuY2UgeyBmaWx0ZXIgfSksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpH
ZXRGaWx0ZXJlZEltYWdlRm9ySW1hZ2VCdWZmZXI6OlJlcGx5KGhhbmRsZSkpOworICAgIEFTU0VS
VF9VTlVTRUQoc2VuZFJlc3VsdCwgc2VuZFJlc3VsdCk7CisKKyAgICBpZiAoaGFuZGxlLmlzTnVs
bCgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBiaXRtYXAgPSBTaGFyZWFibGVC
aXRtYXA6OmNyZWF0ZShoYW5kbGUpOworICAgIGlmICghYml0bWFwKQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgcmV0dXJuIGJpdG1hcC0+Y3JlYXRlSW1hZ2UoKTsKK30KKwogdm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBzZW5kVG9TdHJlYW0oTWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNhY2hlTmF0aXZlSW1hZ2UoaGFuZGxlLCByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5o
CmluZGV4IDA5Yzg5MTA3YWQ5N2RiYTQxYmJjMzIxMDNiYWNhZDI5YzAxMmUyYTYuLjMwZTE2MzFl
OGY5NjdjMDU5NDA2NzIxMWY4MWMzYWZhOTBkNjc5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuaApAQCAtNDcsNiArNDcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U7CitjbGFzcyBGaWx0ZXI7CiBjbGFzcyBGbG9h
dFNpemU7CiBjbGFzcyBQaXhlbEJ1ZmZlcjsKIApAQCAtOTIsNiArOTMsNyBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIGdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0
aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFZlY3Rvcjx1
aW50OF90PiBnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcik7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZ2V0U2hhcmVhYmxlQml0bWFw
KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVS
ZXNvbHV0aW9uKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGdldEZpbHRlcmVkSW1hZ2Uo
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWx0ZXImKTsK
ICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVG
b250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjQxYjUx
MWYxZmU1YWVjZWI3YWYwMWNjMjgxNWQxOWUwZDExMzgyNi4uYmQ2ZmY3ZjYxOWEyYjA2NGY3OWQz
ZjdkMDVkMzVkM2NlYWNjNDViOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEyLTA1ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gQWRkIHRoZSBl
bmNvZGluZy9kZWNvZGluZyBmb3IgRmlsdGVyIGFuZCBGaWx0ZXJFZmZlY3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg0NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcDoKKwogMjAyMS0xMi0wNCAgQW5k
cmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdlIFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVzY3JpcHRpb25PZlZhbHVlKGlkKSB0byByZXR1
cm4gYSBSZXRhaW5QdHIuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXggYjk4NmEyYTU4ODg0NjViZTE5MjBhNmUw
NjY4ZDcwZGIyNDkwNmVhYi4uZDIzZjdlMWU3MjllMDU1NDUzYWMxZjA1M2EyMzQ1MzAyOTVjYjIw
NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlM
aXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNw
bGF5TGlzdFRlc3RzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlz
cGxheUxpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlcmF0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zp
bHRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0luTWVtb3J5RGlzcGxheUxpc3QuaD4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAppbmRleCBkODQ2
YzAyNWUwZGNkOGNhODI5YjcxMjczZGFmMWY3MDdlOWQ5MmRkLi43YTMyMDdmOTVjNjI3ZmU2NjI5
YzkyNzc0NGI0ZWYwM2U1ZTJlYzNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxh
eUxpc3RSZXNvdXJjZUhlYXAuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4
dENHLmg+CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>