<?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>209043</bug_id>
          
          <creation_ts>2020-03-13 01:07:53 -0700</creation_ts>
          <short_desc>Should not use variable-length-array (VLA)</short_desc>
          <delta_ts>2020-03-15 13:02:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1629524</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-13 01:07:53 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629538</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-13 02:39:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/59175669&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629540</commentid>
    <comment_count>2</comment_count>
      <attachid>393467</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-13 02:47:55 -0700</bug_when>
    <thetext>Created attachment 393467
Patch

Add tests later</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629542</commentid>
    <comment_count>3</comment_count>
      <attachid>393468</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-13 02:52:55 -0700</bug_when>
    <thetext>Created attachment 393468
Patch

Add tests later</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630012</commentid>
    <comment_count>4</comment_count>
      <attachid>393574</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-13 22:46:12 -0700</bug_when>
    <thetext>Created attachment 393574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630022</commentid>
    <comment_count>5</comment_count>
      <attachid>393579</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-13 23:22:50 -0700</bug_when>
    <thetext>Created attachment 393579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630130</commentid>
    <comment_count>6</comment_count>
      <attachid>393579</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-03-14 19:04:12 -0700</bug_when>
    <thetext>Comment on attachment 393579
Patch

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

r=me with one concern about JSAPIValueWrapper on !CPU(ADDRESS64) targets.

&gt; Source/JavaScriptCore/API/MarkedJSValueRefArray.cpp:60
&gt; +        visitor.appendUnbarriered(jsCell); // We should mark the wrapper itself to keep JSValueRef live.

I didn&apos;t quite understand what this comment meant in the first place until I read JSC::JSValue toJS(JSC::JSGlobalObject* globalObject, JSValueRef v).

From my reading of the code, I see that the jsCell here may be a JSAPIValueWrapper which is itself a JSCell.  Hence, we should visit the JSAPIValueWrapper itself, and that means appending the jsCell here should do the right thing regardless of whether the jsCell is a JSAPIValueWrapper or some other JSCell.

That said, JSAPIValueWrapper does not appear to have a visitChildren() function.  Hence, I don&apos;t see how its m_value will get visited.  Am I missing something?

If the above is accurate, I think we don&apos;t need this comment.  We do need to look into how the JSAPIValueWrapper::m_value gets visited, and add a visitChildren() there for the !CPU(ADDRESS64) case.  Should probably do that in a separate bug.

&gt; Source/JavaScriptCore/heap/Heap.cpp:3011
&gt; +void Heap::addmarkedJSValueRefArray(MarkedJSValueRefArray* array)

typo: /addmarkedJSValueRefArray/addMarkedJSValueRefArray/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630154</commentid>
    <comment_count>7</comment_count>
      <attachid>393579</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-15 02:53:20 -0700</bug_when>
    <thetext>Comment on attachment 393579
Patch

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

&gt;&gt; Source/JavaScriptCore/API/MarkedJSValueRefArray.cpp:60
&gt;&gt; +        visitor.appendUnbarriered(jsCell); // We should mark the wrapper itself to keep JSValueRef live.
&gt; 
&gt; I didn&apos;t quite understand what this comment meant in the first place until I read JSC::JSValue toJS(JSC::JSGlobalObject* globalObject, JSValueRef v).
&gt; 
&gt; From my reading of the code, I see that the jsCell here may be a JSAPIValueWrapper which is itself a JSCell.  Hence, we should visit the JSAPIValueWrapper itself, and that means appending the jsCell here should do the right thing regardless of whether the jsCell is a JSAPIValueWrapper or some other JSCell.
&gt; 
&gt; That said, JSAPIValueWrapper does not appear to have a visitChildren() function.  Hence, I don&apos;t see how its m_value will get visited.  Am I missing something?
&gt; 
&gt; If the above is accurate, I think we don&apos;t need this comment.  We do need to look into how the JSAPIValueWrapper::m_value gets visited, and add a visitChildren() there for the !CPU(ADDRESS64) case.  Should probably do that in a separate bug.

JSAPIValueWrapper is only used for non-cell values (undefined, number etc.). So this means that the wrapped value itself does not require visitChildren.
This wrapper exists only because we need to keep sizeof(JSValueRef) 32bit in 32bit architecture. Since our non-cell values require 64bit value representation, we decided to use JSAPIValueWrapper as a work-around for this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630155</commentid>
    <comment_count>8</comment_count>
      <attachid>393610</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-15 02:55:36 -0700</bug_when>
    <thetext>Created attachment 393610
Patch

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630157</commentid>
    <comment_count>9</comment_count>
      <attachid>393579</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-15 03:13:39 -0700</bug_when>
    <thetext>Comment on attachment 393579
Patch

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

&gt;&gt; Source/JavaScriptCore/heap/Heap.cpp:3011
&gt;&gt; +void Heap::addmarkedJSValueRefArray(MarkedJSValueRefArray* array)
&gt; 
&gt; typo: /addmarkedJSValueRefArray/addMarkedJSValueRefArray/

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630158</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-15 03:16:57 -0700</bug_when>
    <thetext>Committed r258478: &lt;https://trac.webkit.org/changeset/258478&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630196</commentid>
    <comment_count>11</comment_count>
      <attachid>393610</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-15 12:08:39 -0700</bug_when>
    <thetext>Comment on attachment 393610
Patch

WTF::Vector with inline capacity was originally invented to use in local variables to create a safer alternative to variable length arrays that spills out onto the heap when needed, but has similar efficiency when the array is smaller than a fixed predicted size. I’m maybe a tiny bit surprised that we didn’t switch to use them in any of these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630205</commentid>
    <comment_count>12</comment_count>
      <attachid>393610</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-15 13:02:43 -0700</bug_when>
    <thetext>Comment on attachment 393610
Patch

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

&gt; Source/JavaScriptCore/API/JSContext.mm:237
&gt; +            [arguments setObject:[JSValue valueWithJSValueRef:entry-&gt;arguments[i] inContext:context] atIndexedSubscript:i];

This should just be calling addObject: rather than setObject:atIndexedSubscript: unless I am missing something.

What’s the benefit of using setObject:atIndexedSubscript: here?

&gt; Source/JavaScriptCore/API/MarkedJSValueRefArray.h:68
&gt; +    unsigned m_size;
&gt; +    JSValueRef m_inlineBuffer[inlineCapacity] { };
&gt; +    BufferUniquePtr m_buffer;

Frustrating that this is basically re-implementing Vector with inline capacity. Is there some way to take advantage of Vector or are there just not enough template arguments?

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:396
&gt; +    Vector&lt;GCGLint&gt; params(numValues);

Could use inline capacity here if we want to avoid allocating on the heap when there are small numbers of arguments.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:426
&gt; +    Vector&lt;GCGLint&gt; params(numValues);

Ditto.

&gt; Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:170
&gt; +    Vector&lt;AudioObjectID&gt; deviceIDs(deviceCount);

Ditto.

&gt; Source/WebCore/platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:65
&gt; +    Vector&lt;CGDirectDisplayID&gt; activeDisplays(displayCount);

Ditto.

&gt; Source/WebKit/UIProcess/_WKTouchEventGenerator.mm:297
&gt; +    Vector&lt;CGPoint&gt; locations(touchCount);

Ditto.

&gt; Source/WebKit/UIProcess/_WKTouchEventGenerator.mm:330
&gt; +    Vector&lt;CGPoint&gt; locations(touchCount);

Ditto.

&gt; Source/WebKit/UIProcess/_WKTouchEventGenerator.mm:348
&gt; +    Vector&lt;CGPoint&gt; startLocations(touchCount);
&gt; +    Vector&lt;CGPoint&gt; nextLocations(touchCount);

Ditto.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393467</attachid>
            <date>2020-03-13 02:47:55 -0700</date>
            <delta_ts>2020-03-13 02:52:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209043-20200313024754.patch</filename>
            <type>text/plain</type>
            <size>41551</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Mzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzRkZjgwNjhmMmM2MGYyYWZhZjU2ZWM4ODI0NTYxZGVmOTEzNjY5Li4wYTBjYjRkMmQzODk0Yzc4
NTkyZmZiYjcwNjZhM2Y4OTkwODQxNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBkaXNhYmxlcyB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkuIElmIHRoaXMgZmVhdHVyZSB1
c2VzIHVzZXItaW5wdXQsIHVzZXIgY2FuCisgICAgICAgIGNvbnRyb2wgdGhlIHN0YWNrIGhlaWdo
dCBjb25zdW1lZCBieSBDKysgY29kZS4gVGhpcyBwYXRjaCBhdm9pZHMgdXNpbmcgVkxBLiBUbyBh
Y2hpZXZlIHRoYXQsCisKKyAgICAgICAgICAgIDEuIFdlIHNldCBgLVd2bGFgIHdhcm5pbmcgb3B0
aW9uIHRvIHRyaWdnZXIgd2FybmluZ3MgaWYgaXQgaXMgdXNlZC4KKyAgICAgICAgICAgIDIuIElu
dHJvZHVjZSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkgZm9yIEFQSS4gVGhpcyByZXBsYWNlcyBgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbdmFyaWFibGVMZW5ndGhdYCB1c2UgY2FzZS4KKyAgICAgICAgICAg
ICAgIE1hcmtlZEpTVmFsdWVSZWZBcnJheSByZWdpc3RlcnMgaXRzZWxmIHRvIEpTQyBHQyBzbyB0
aGF0IEdDIGNhbiBtYXJrIGl0IGFzIGEgc3Ryb25nIHJvb3QuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY3VycmVudEFyZ3VtZW50c10pOgorICAg
ICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAoLVtKU1ZhbHVlIGNhbGxXaXRoQXJndW1l
bnRzOl0pOgorICAgICAgICAoLVtKU1ZhbHVlIGNvbnN0cnVjdFdpdGhBcmd1bWVudHM6XSk6Cisg
ICAgICAgICgtW0pTVmFsdWUgaW52b2tlTWV0aG9kOndpdGhBcmd1bWVudHM6XSk6CisgICAgICAg
ICogQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpN
YXJrZWRKU1ZhbHVlUmVmQXJyYXk6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgIChK
U0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheTo6dmlzaXRBZ2dyZWdhdGUpOgorICAgICAgICAqIEFQ
SS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaDogQWRkZWQuCisgICAgICAgICogQVBJL3Rlc3RzL21p
bmlkb20uYzoKKyAgICAgICAgKHByaW50KToKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoK
KyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBoZWFw
L0hlYXAuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6bWFya2VkSlNWYWx1ZVJlZkFycmF5cyk6Cisg
ICAgICAgICogcnVudGltZS9BcmdMaXN0Lmg6CisKIDIwMjAtMDMtMTMgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBjaGFuZ2UgQVNTRVJU
IHRvIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OIHNpbmNlIGl0IGlzIG5vdyBlbmFi
bGVkIHVuZGVyIEVOQUJMRShTRUNVUklUWV9BU1NFUlRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlYzgxMDEyYmUxZGZm
YjJmNGE4OTk2MTBmZTBmM2ZmNzQ1Yjk5NzdhLi5kYmU1ZjJhNjQ5ZjEzMmZjYjFmZDEwM2UyMjY0
MGYyZWE2MjQyMGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTEzICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFi
bGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICog
d3RmL1VVSUQuY3BwOgorICAgICAgICAoV1RGOjpib290U2Vzc2lvblVVSURTdHJpbmcpOgorCiAy
MDIwLTAzLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
b3B0IEFWU2FtcGxlQnVmZmVyVmlkZW9PdXRwdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MTFjYTEzZTgyODlk
NWJmNTE5NTYxMjhlMmJhZTY0OWVkNzVlMzQ4Li4wYjlkNGUwNjcxNDQwNDQ2NzNhOWQwZDJkNTZl
MmU1MWEwOTEyMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVz
ZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwog
MjAyMC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlcG9ydCBjcmFzaGVkIGNlbGwgaW4ganNDYXN0IGluIGRlYnVnIGJ1aWxkcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKaW5kZXggMGZjYTFmN2ZkZTM1MDc2ZWFiYTY2ODVjZDUxYzc5ZWZlMjRiNjkwZi4uYmQ2
OTJlNzY5ZmYyOWY2NTc2YmQ4Mzk4YzM4NmMwMTJjMzg2YTJiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkg
KFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
OTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAyMC0wMy0xMiAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBfQVhTQXBwbGljYXRp
b25BY2Nlc3NpYmlsaXR5RW5hYmxlZCBzaG91bGQgbm90IGJlIGNhbGxlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cKaW5kZXggYzNmNTE3ZDM1NGI5ZmRjOGZmOGJiOTM0ZTM0YjQzYmRmOTBkMjhhYy4u
N2RkYzAyMzcxYmQ2OWM5ZGViZTg5OGY4OGUxNjBlMzZlMTk5YTFmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5n
dGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAyMC0wMy0xMCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjUz
NzU5KTogV2ViIEluc3BlY3RvcjogQXVkaXRzOiByZXN1bHRzIGZvbGRlciBkb2Vzbid0IGdldCBz
ZWxlY3RlZCBieSBwcmVzc2luZyBBcnJvdyBEb3duIGtleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMWY2MTg3ODY1
MTMxNDE2MTc1NGVmMDc0NzMzY2M0YzQ0ZmE5YzhiLi5mMzUxZTMxODcyN2VkNmMxNmYyZGRmODI3
Y2YwZGQwYWE0ZjdjNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTEzICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1
c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisK
IDIwMjAtMDMtMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIHZlcnkgdmVyYm9zZSBsb2dnaW5nIG1vZGUgZm9yIGluY3JlbWVudGFsIFBERiBsb2Fk
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzFhZTg3YzE4YTdlZWFmMDM1M2Vj
ODMzMTA2NDllYjIxYTE2M2VhMy4uYzYwMDUzMmQ0NjRlZTg3N2IzMTViNjM4NDQ1NjdhZWZiNTQx
YWEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTAzLTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hv
dWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWc6CisKIDIwMjAtMDMtMTIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgQ29ycmVjdCBwcmVmZXJlbmNlIGhhbmRsaW5nIGFuZCBuYW1pbmcgY29udmVu
dGlvbnMgaW4gQXBwQm91bmQgYnJvd3NpbmcgcHJlZmVyZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9ibWFsbG9jL0NoYW5nZUxvZyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwppbmRleCBlZWE3
YzU2NDY4YzMxZTNlMGMwYmJiYWM1ZjVjMmUwYzM5NzJhYWMyLi4zNjBkODBlNmNmMGY2YTBkMzJk
YjQ2Yzk4YWVhYTg2ZmVhNzFjYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAt
MDMtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91
bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2Nv
bmZpZzoKKwogMjAyMC0wMy0wOSAgTWlrZSBHb3JzZSAgPG1nb3JzZUBzdXNlLmNvbT4KIAogICAg
ICAgICBCdWlsZCBmYWlsdXJlIG9uIHBwYzY0bGUgaWYgX191bml4IGlzIHVuZGVmaW5lZApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQubW0gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQppbmRleCA5MTJjZWIzZTllYzFjMWFmN2Q2
NWYxMmExZTAwMjEwNjgxMjQyYWMwLi5iODUzYjgxYjdiNzI2MTg1Y2U1NjI1MTUzZjcxYWJiZWUy
OGEwOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQpAQCAtMjMyLDEw
ICsyMzIsMTAgQEAgKyAoTlNBcnJheSAqKWN1cnJlbnRBcmd1bWVudHMKICAgICBpZiAoIWVudHJ5
LT5jdXJyZW50QXJndW1lbnRzKSB7CiAgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtKU0Nv
bnRleHQgY3VycmVudENvbnRleHRdOwogICAgICAgICBzaXplX3QgY291bnQgPSBlbnRyeS0+YXJn
dW1lbnRDb3VudDsKLSAgICAgICAgSlNWYWx1ZSAqIGFyZ3VtZW50QXJyYXlbY291bnRdOwotICAg
ICAgICBmb3IgKHNpemVfdCBpID0wOyBpIDwgY291bnQ7ICsraSkKLSAgICAgICAgICAgIGFyZ3Vt
ZW50QXJyYXlbaV0gPSBbSlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmVudHJ5LT5hcmd1bWVu
dHNbaV0gaW5Db250ZXh0OmNvbnRleHRdOwotICAgICAgICBlbnRyeS0+Y3VycmVudEFyZ3VtZW50
cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOmFyZ3VtZW50QXJyYXkgY291bnQ6
Y291bnRdOworICAgICAgICBOU011dGFibGVBcnJheSAqYXJndW1lbnRzID0gW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpjb3VudF07CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAgIFthcmd1bWVudHMgc2V0T2JqZWN0
OltKU1ZhbHVlIHZhbHVlV2l0aEpTVmFsdWVSZWY6ZW50cnktPmFyZ3VtZW50c1tpXSBpbkNvbnRl
eHQ6Y29udGV4dF0gYXRJbmRleGVkU3Vic2NyaXB0OmldOworICAgICAgICBlbnRyeS0+Y3VycmVu
dEFyZ3VtZW50cyA9IGFyZ3VtZW50czsKICAgICB9CiAKICAgICByZXR1cm4gZW50cnktPmN1cnJl
bnRBcmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFs
dWUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KaW5kZXggZTE4YTVj
Zjc3NzA0NjhjNmVkMDU5NzhiOTBkY2JkMzdjN2M4NGM5YS4uYTU1ZjYwYzM2MGU4YzljZDQ4MWU4
ZTk3ZWE3ZTRlZTg0MWYzYTVlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQpA
QCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCAiSlNWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJK
U1ZhbHVlUHJpdmF0ZS5oIgogI2ltcG9ydCAiSlNXcmFwcGVyTWFwLmgiCisjaW1wb3J0ICJNYXJr
ZWRKU1ZhbHVlUmVmQXJyYXkuaCIKICNpbXBvcnQgIk9iamNSdW50aW1lRXh0cmFzLmgiCiAjaW1w
b3J0ICJKU0NJbmxpbmVzLmgiCiAjaW1wb3J0ICJKU0NKU1ZhbHVlLmgiCkBAIC00NzIsOCArNDcz
LDEyIEBAIC0gKEJPT0wpaXNJbnN0YW5jZU9mOihpZCl2YWx1ZQogCiAtIChKU1ZhbHVlICopY2Fs
bFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiB7CisgICAgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0
UmVmXSk7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNDOjpK
U0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKKwogICAgIE5TVUludGVnZXIgYXJndW1lbnRDb3VudCA9
IFthcmd1bWVudEFycmF5IGNvdW50XTsKLSAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1thcmd1bWVu
dENvdW50XTsKKyAgICBKU0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSBhcmd1bWVudHModm0sIGFy
Z3VtZW50Q291bnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmd1bWVudENvdW50
OyArK2kpCiAgICAgICAgIGFyZ3VtZW50c1tpXSA9IG9iamVjdFRvVmFsdWUoX2NvbnRleHQsIFth
cmd1bWVudEFycmF5IG9iamVjdEF0SW5kZXg6aV0pOwogCkBAIC00ODIsNyArNDg3LDcgQEAgLSAo
SlNWYWx1ZSAqKWNhbGxXaXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJheQogICAg
IGlmIChleGNlcHRpb24pCiAgICAgICAgIHJldHVybiBbX2NvbnRleHQgdmFsdWVGcm9tTm90aWZ5
RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIG9iamVjdCwgMCwg
YXJndW1lbnRDb3VudCwgYXJndW1lbnRzLCAmZXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlUmVmIHJl
c3VsdCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJl
Zl0sIG9iamVjdCwgMCwgYXJndW1lbnRDb3VudCwgYXJndW1lbnRzLmRhdGEoKSwgJmV4Y2VwdGlv
bik7CiAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4dCB2YWx1ZUZy
b21Ob3RpZnlFeGNlcHRpb246ZXhjZXB0aW9uXTsKIApAQCAtNDkxLDggKzQ5NiwxMiBAQCAtIChK
U1ZhbHVlICopY2FsbFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiAKIC0g
KEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJh
eQogeworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlMoW19jb250
ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0pOworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CisKICAgICBOU1VJbnRl
Z2VyIGFyZ3VtZW50Q291bnQgPSBbYXJndW1lbnRBcnJheSBjb3VudF07Ci0gICAgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbYXJndW1lbnRDb3VudF07CisgICAgSlNDOjpNYXJrZWRKU1ZhbHVlUmVmQXJy
YXkgYXJndW1lbnRzKHZtLCBhcmd1bWVudENvdW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgYXJndW1lbnRDb3VudDsgKytpKQogICAgICAgICBhcmd1bWVudHNbaV0gPSBvYmplY3RU
b1ZhbHVlKF9jb250ZXh0LCBbYXJndW1lbnRBcnJheSBvYmplY3RBdEluZGV4OmldKTsKIApAQCAt
NTAxLDcgKzUxMCw3IEBAIC0gKEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRoQXJndW1lbnRzOihOU0Fy
cmF5ICopYXJndW1lbnRBcnJheQogICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgIHJldHVybiBb
X2NvbnRleHQgdmFsdWVGcm9tTm90aWZ5RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAKLSAgICBKU09i
amVjdFJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yKFtfY29udGV4dCBKU0ds
b2JhbENvbnRleHRSZWZdLCBvYmplY3QsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50cywgJmV4Y2Vw
dGlvbik7CisgICAgSlNPYmplY3RSZWYgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3Rv
cihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgb2JqZWN0LCBhcmd1bWVudENvdW50LCBh
cmd1bWVudHMuZGF0YSgpLCAmZXhjZXB0aW9uKTsKICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAg
ICByZXR1cm4gW19jb250ZXh0IHZhbHVlRnJvbU5vdGlmeUV4Y2VwdGlvbjpleGNlcHRpb25dOwog
CkBAIC01MTAsOCArNTE5LDEyIEBAIC0gKEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRoQXJndW1lbnRz
OihOU0FycmF5ICopYXJndW1lbnRBcnJheQogCiAtIChKU1ZhbHVlICopaW52b2tlTWV0aG9kOihO
U1N0cmluZyAqKW1ldGhvZCB3aXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRzCiB7Cisg
ICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhbX2NvbnRleHQgSlNH
bG9iYWxDb250ZXh0UmVmXSk7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKKwogICAgIE5TVUludGVnZXIgYXJn
dW1lbnRDb3VudCA9IFthcmd1bWVudHMgY291bnRdOwotICAgIEpTVmFsdWVSZWYgYXJndW1lbnRB
cnJheVthcmd1bWVudENvdW50XTsKKyAgICBKU0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSBhcmd1
bWVudEFycmF5KHZtLCBhcmd1bWVudENvdW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYXJndW1lbnRDb3VudDsgKytpKQogICAgICAgICBhcmd1bWVudEFycmF5W2ldID0gb2JqZWN0
VG9WYWx1ZShfY29udGV4dCwgW2FyZ3VtZW50cyBvYmplY3RBdEluZGV4OmldKTsKIApAQCAtNTI5
LDcgKzU0Miw3IEBAIC0gKEpTVmFsdWUgKilpbnZva2VNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9k
IHdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudHMKICAgICBpZiAoZXhjZXB0aW9uKQog
ICAgICAgICByZXR1cm4gW19jb250ZXh0IHZhbHVlRnJvbU5vdGlmeUV4Y2VwdGlvbjpleGNlcHRp
b25dOwogCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFtf
Y29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBvYmplY3QsIHRoaXNPYmplY3QsIGFyZ3VtZW50
Q291bnQsIGFyZ3VtZW50QXJyYXksICZleGNlcHRpb24pOworICAgIEpTVmFsdWVSZWYgcmVzdWx0
ID0gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwg
b2JqZWN0LCB0aGlzT2JqZWN0LCBhcmd1bWVudENvdW50LCBhcmd1bWVudEFycmF5LmRhdGEoKSwg
JmV4Y2VwdGlvbik7CiAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4
dCB2YWx1ZUZyb21Ob3RpZnlFeGNlcHRpb246ZXhjZXB0aW9uXTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY5NjNiZGQ2ZmYzMWNlYzA2YTdjODYyY2M5NWIwN2Q2NGRhNDdmNWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHAK
QEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNYXJrZWRKU1ZhbHVlUmVmQXJy
YXkuaCIKKworI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJKU0NKU1ZhbHVlLmgi
CisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK01hcmtlZEpTVmFs
dWVSZWZBcnJheTo6TWFya2VkSlNWYWx1ZVJlZkFycmF5KFZNJiB2bSwgdW5zaWduZWQgc2l6ZSkK
KyAgICA6IG1fc2l6ZShzaXplKQoreworICAgIGlmIChtX3NpemUgPiBNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6aW5saW5lQ2FwYWNpdHkpIHsKKyAgICAgICAgbV9idWZmZXIgPSBCdWZmZXJQdHI6OmNy
ZWF0ZShtX3NpemUpOworICAgICAgICB2bS5oZWFwLm1hcmtlZEpTVmFsdWVSZWZBcnJheXMoKS5h
cHBlbmQodGhpcyk7CisgICAgfQorfQorCit2b2lkIE1hcmtlZEpTVmFsdWVSZWZBcnJheTo6dmlz
aXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgSlNWYWx1ZVJlZiogYnVm
ZmVyID0gZGF0YSgpOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IG1fc2l6
ZTsgKytpbmRleCkgeworICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlID0gYnVmZmVyW2luZGV4XTsK
KyNpZiAhQ1BVKEFERFJFU1M2NCkKKyAgICAgICAgSlNDZWxsKiBqc0NlbGwgPSByZWludGVycHJl
dF9jYXN0PEpTQ2VsbCo+KGNvbnN0X2Nhc3Q8T3BhcXVlSlNWYWx1ZSo+KHZhbHVlKSk7CisgICAg
ICAgIGlmICghanNDZWxsKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZpc2l0b3Iu
YXBwZW5kVW5iYXJyaWVyZWQoanNDZWxsKTsgLy8gV2Ugc2hvdWxkIG1hcmsgdGhlIHdyYXBwZXIg
aXRzZWxmIHRvIGtlZXAgSlNWYWx1ZVJlZiBsaXZlLgorI2Vsc2UKKyAgICAgICAgdmlzaXRvci5h
cHBlbmRVbmJhcnJpZXJlZChiaXR3aXNlX2Nhc3Q8SlNWYWx1ZT4odmFsdWUpKTsKKyNlbmRpZgor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDAxMzE1Njc1NGZi
MmE1NjNmZWRkMjU0YzRiYmNkZmM1NDAxMjEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaApAQCAtMCwwICsxLDc4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJBcmdMaXN0LmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1l
dGljLmg+CisjaW5jbHVkZSA8d3RmL0ZvcmJpZEhlYXBBbGxvY2F0aW9uLmg+CisjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL05vbm1vdmFibGUuaD4KKworbmFtZXNw
YWNlIEpTQyB7CisKK2NsYXNzIE1hcmtlZEpTVmFsdWVSZWZBcnJheSBmaW5hbCA6IHB1YmxpYyBC
YXNpY1Jhd1NlbnRpbmVsTm9kZTxNYXJrZWRKU1ZhbHVlUmVmQXJyYXk+IHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShNYXJrZWRKU1ZhbHVlUmVmQXJyYXkpOworICAgIFdURl9NQUtFX05PTk1P
VkFCTEUoTWFya2VkSlNWYWx1ZVJlZkFycmF5KTsKKyAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NB
VElPTjsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gUmVjb3JkT3ZlcmZsb3c7CisgICAgdXNp
bmcgQnVmZmVyUHRyID0gQ2FnZWRVbmlxdWVQdHI8R2lnYWNhZ2U6OkpTVmFsdWUsIEpTVmFsdWVS
ZWY+OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGlubGluZUNhcGFjaXR5ID0gTWFya2Vk
QXJndW1lbnRCdWZmZXI6OmlubGluZUNhcGFjaXR5OworCisgICAgTWFya2VkSlNWYWx1ZVJlZkFy
cmF5KFZNJiwgdW5zaWduZWQpOworCisgICAgfk1hcmtlZEpTVmFsdWVSZWZBcnJheSgpCisgICAg
eworICAgICAgICBpZiAoaXNPbkxpc3QoKSkKKyAgICAgICAgICAgIHJlbW92ZSgpOworICAgIH0K
KworICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisgICAgYm9vbCBp
c0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fc2l6ZTsgfQorCisgICAgSlNWYWx1ZVJlZiYgb3Bl
cmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gZGF0YSgpW2luZGV4XTsgfQorCisgICAg
Y29uc3QgSlNWYWx1ZVJlZiogZGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gY29u
c3RfY2FzdDxNYXJrZWRKU1ZhbHVlUmVmQXJyYXkqPih0aGlzKS0+ZGF0YSgpOworICAgIH0KKwor
ICAgIEpTVmFsdWVSZWYqIGRhdGEoKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyKQorICAg
ICAgICAgICAgcmV0dXJuIG1fYnVmZmVyLmdldChtX3NpemUpOworICAgICAgICByZXR1cm4gbV9p
bmxpbmVCdWZmZXI7CisgICAgfQorCisgICAgdm9pZCB2aXNpdEFnZ3JlZ2F0ZShTbG90VmlzaXRv
ciYpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1fc2l6ZTsKKyAgICBKU1ZhbHVlUmVmIG1f
aW5saW5lQnVmZmVyW2lubGluZUNhcGFjaXR5XSB7IH07CisgICAgQnVmZmVyUHRyIG1fYnVmZmVy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL21pbmlkb20uYyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvbWluaWRvbS5jCmluZGV4IDZlYmIzOTlhYzBiOTg1MThhMTQzMTU2NGVmMDViOThiZTdhMGY1
YjEuLmY0YTA3NGM3YjAwNjQwMTViOTM0MGMxYTg1MDUzMmRiYjc0ZTBjYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvbWluaWRvbS5jCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvbWluaWRvbS5jCkBAIC04OCwxMCArODgsMTEgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgcHJpbnQoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9i
amVjdCwgSlNPYmplY3RSZWYgdGgKICAgICBpZiAoYXJndW1lbnRDb3VudCA+IDApIHsKICAgICAg
ICAgSlNTdHJpbmdSZWYgc3RyaW5nID0gSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1
bWVudHNbMF0sIGV4Y2VwdGlvbik7CiAgICAgICAgIHNpemVfdCBudW1DaGFycyA9IEpTU3RyaW5n
R2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShzdHJpbmcpOwotICAgICAgICBjaGFyIHN0cmluZ1VU
RjhbbnVtQ2hhcnNdOworICAgICAgICBjaGFyKiBzdHJpbmdVVEY4ID0gKGNoYXIqKW1hbGxvYyhu
dW1DaGFycyk7CiAgICAgICAgIEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoc3RyaW5nLCBzdHJpbmdV
VEY4LCBudW1DaGFycyk7CiAgICAgICAgIHByaW50ZigiJXNcbiIsIHN0cmluZ1VURjgpOwogICAg
ICAgICBKU1N0cmluZ1JlbGVhc2Uoc3RyaW5nKTsKKyAgICAgICAgZnJlZShzdHJpbmdVVEY4KTsK
ICAgICB9CiAgICAgCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZwppbmRleCA3ZTAzMjY4N2U3ZTM1M2ZkYzYxZDAyZWI3NTAwZGJlM2Q0MzQ3YzExLi43ZTYyNTNm
ODQ0MzY2ZjJkNmUzNDRhNmNhY2I3OGJjMjZkYjkwYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtOTgsNyArOTgsNyBA
QCBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFC
TEUgPSBZRVM7CiBDTEFOR19XQVJOX0RPQ1VNRU5UQVRJT05fQ09NTUVOVFMgPSBZRVM7CiBQUkVC
SU5ESU5HID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwg
LVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9r
ZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdt
aXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNs
cyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2Jh
bC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJv
dWdoOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1z
dWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zv
cm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1u
b3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRl
ZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3Zs
YTsKIAogSEVBREVSX1NFQVJDSF9QQVRIUyA9IC4gIiR7QlVJTFRfUFJPRFVDVFNfRElSfS91c3Iv
bG9jYWwvaW5jbHVkZSIgJChIRUFERVJfU0VBUkNIX1BBVEhTKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA0YWZjZTAxNWY5MGJiMjUxMDRjOGI2MWUxYjcyOTVjNjdjYzAxY2Ix
Li45ZTBlZTFkZTllMzQ3OGMwZGEzMjg1M2NmMTZiZDIyNTcyYWMyYzJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTg0OSw2ICsxODQ5LDcgQEAKIAkJRTNDNzlDQUIxREI5QTRE
QzAwRDFFQ0E0IC8qIERPTUpJVEVmZmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNDNzlDQUExREI5QTRENjAwRDFFQ0E0IC8qIERPTUpJVEVmZmVj
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
QzhFRDQzMjNBMURCQ0IwMDEzMTk1OCAvKiBJc29JbmxpbmVkSGVhcENlbGxUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M4RUQ0MjIzQTFEQkM1
MDAxMzE5NTggLyogSXNvSW5saW5lZEhlYXBDZWxsVHlwZS5oICovOyB9OwogCQlFM0QyMzlDOTFC
ODI5QzFDMDBCQkVGNjcgLyogSlNNb2R1bGVFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNEMjM5QzcxQjgyOUMxQzAwQkJFRjY3IC8q
IEpTTW9kdWxlRW52aXJvbm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlFM0QzNTE1RjI0MUI4OUQ3MDA4REMxNkUgLyogTWFya2VkSlNWYWx1
ZVJlZkFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0QzNTE1RDI0MUI4OUNFMDA4REMxNkUgLyogTWFya2VkSlNWYWx1ZVJlZkFycmF5LmggKi87
IH07CiAJCUUzRDg3Nzc0MUU2NUMwQTAwMEJFOTQ1QSAvKiBCeXRlY29kZUR1bXBlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNEODc3NzIxRTY1QzA4
OTAwQkU5NDVBIC8qIEJ5dGVjb2RlRHVtcGVyLmggKi87IH07CiAJCUUzRUUxMzc2MjFGQkQ0MzUw
MEQ4M0M0QiAvKiBFcnJvclR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzRUUxMzc0MjFGQkQ0MzQwMEQ4M0M0QiAvKiBFcnJvclR5cGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0YyM0E3RjFF
Q0YxM0VFMDA5NzhEOTkgLyogU25pcHBldFNsb3dQYXRoQ2FsbHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRjIzQTdFMUVDRjEzRTUwMDk3OEQ5OSAv
KiBTbmlwcGV0U2xvd1BhdGhDYWxscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC01MDI2LDYgKzUwMjcsOCBAQAogCQlFM0QyNjQyODFEMzhDMDQy
MDAwQkUxNzQgLyogQnl0ZWNvZGVHcmFwaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCeXRlY29kZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRDI2
NDI5MUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ5dGVjb2RlUmV3cml0ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFM0QyNjQyQTFEMzhDMDQyMDAwQkUxNzQgLyogQnl0ZWNvZGVS
ZXdyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlY29kZVJld3Jp
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRDM1MTVEMjQxQjg5Q0UwMDhE
QzE2RSAvKiBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFya2VkSlNW
YWx1ZVJlZkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRDM1MTVFMjQx
Qjg5Q0YwMDhEQzE2RSAvKiBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWFya2VkSlNWYWx1ZVJlZkFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNEODc3NzExRTY1QzA4OTAwQkU5NDVBIC8qIEJ5dGVjb2RlRHVtcGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ5dGVjb2RlRHVtcGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNEODc3NzIxRTY1QzA4OTAwQkU5NDVBIC8qIEJ5
dGVjb2RlRHVtcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVjb2Rl
RHVtcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUUxMzc0MjFGQkQ0MzQw
MEQ4M0M0QiAvKiBFcnJvclR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXJyb3JUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDExLDYgKzY0MTQs
OCBAQAogCQkJCTdBOTc3NEE3MjA2QjgyQzkwMDhEMDNEMCAvKiBKU1dlYWtWYWx1ZS5oICovLAog
CQkJCTg2RTNDNjBDMTY3QkFCODcwMDZENzYwQSAvKiBKU1dyYXBwZXJNYXAuaCAqLywKIAkJCQk4
NkUzQzYwQjE2N0JBQjg3MDA2RDc2MEEgLyogSlNXcmFwcGVyTWFwLm1tICovLAorCQkJCUUzRDM1
MTVFMjQxQjg5Q0YwMDhEQzE2RSAvKiBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwICovLAorCQkJ
CUUzRDM1MTVEMjQxQjg5Q0UwMDhEQzE2RSAvKiBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaCAqLywK
IAkJCQk4NkYzRUVCOTE2OENDRjc1MDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCAq
LywKIAkJCQk4NkYzRUVCQTE2OENDRjc1MDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24u
bW0gKi8sCiAJCQkJODZGM0VFQjYxNjg1NUE1QjAwNzdCOTJBIC8qIE9iamNSdW50aW1lRXh0cmFz
LmggKi8sCkBAIC05OTYzLDYgKzk5NjgsNyBAQAogCQkJCTE0MkQ2RjA5MTM1MzlBMjgwMEIwMkU4
NiAvKiBNYXJrZWRCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3QzVGQjgxRDg4OEEwQzAw
NDRGNUUyIC8qIE1hcmtlZEJsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNDQ4
Q0IxM0ExNzZFQzAwRjVCQTFBIC8qIE1hcmtlZEJsb2NrU2V0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFM0QzNTE1RjI0MUI4OUQ3MDA4REMxNkUgLyogTWFya2VkSlNWYWx1ZVJlZkFycmF5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNEQyRjNEQjEzOUY0QkUyMDA0OTEwMzEgLyogTWFya2VkU3BhY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0RGMTM1MUUyOTcwREMwMDk1OTUxQiAvKiBNYXJrZWRT
cGFjZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjYwRTM4MUUwNTE3QkIwMDMxNDYy
QyAvKiBNYXJraW5nQ29uc3RyYWludC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291
cmNlcy50eHQKaW5kZXggZTAwOTY2NjgyYjUyMjE0NGJjNDg5MTA1OWYzOWUxYmMyODY2Y2Y5Yy4u
YzdiNjM4YmM0MDExYzljZDQ0ZTE2Mjk5N2UwOTNjOGUwNGU0MjBhMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dApAQCAtNDAsNiArNDAsNyBAQCBBUEkvSlNWYWx1ZVJlZi5jcHAKIEFQSS9K
U1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAogQVBJL0pTV2Vha1ByaXZhdGUuY3BwCiBBUEkv
SlNXZWFrVmFsdWUuY3BwCitBUEkvTWFya2VkSlNWYWx1ZVJlZkFycmF5LmNwcAogQVBJL09wYXF1
ZUpTU3RyaW5nLmNwcAogCiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggMDA3ZThiNTgwZGYwNzE5NTJiYjBhMzU2
MWM1ZmNiNjQxNTMwY2E1YS4uNjI3ZGQ4MTM3N2JlNmE0ZWZiYTNhOWUwYjYyNGM1ODdmNzExZGEw
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNp
bmNsdWRlICJKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiTWFjaGluZVN0YWNr
TWFya2VyLmgiCiAjaW5jbHVkZSAiTWFya1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQuaCIKKyNpbmNs
dWRlICJNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaCIKICNpbmNsdWRlICJNYXJrZWRTcGFjZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJNYXJraW5nQ29uc3RyYWludFNldC5oIgogI2luY2x1ZGUgIlByZXZl
bnRDb2xsZWN0aW9uU2NvcGUuaCIKQEAgLTI3NTgsNiArMjc1OSw5IEBAIHZvaWQgSGVhcDo6YWRk
Q29yZUNvbnN0cmFpbnRzKCkKICAgICAgICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6
bWFya0xpc3RzKHNsb3RWaXNpdG9yLCAqbV9tYXJrTGlzdFNldCk7CiAgICAgICAgICAgICB9CiAK
KyAgICAgICAgICAgIGZvciAoYXV0byYgYXJyYXkgOiBtX21hcmtlZEpTVmFsdWVSZWZBcnJheXMp
CisgICAgICAgICAgICAgICAgYXJyYXkudmlzaXRBZ2dyZWdhdGUoc2xvdFZpc2l0b3IpOworCiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290
U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6Vk1FeGNlcHRp
b25zKTsKICAgICAgICAgICAgICAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZChtX3Zt
LmV4Y2VwdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCAyMzdmMThmYWRk
M2VjYTk2OTA4NzczMGJkZTMwZjU0Njg0NTE3YjM4Li44ZDA3YzljZWY1Y2NlMzUxNzM2ZDAxMWQ3
NTJlNjQ3ZjUwMjY5NDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC03Myw2ICs3
Myw3IEBAIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIGNsYXNzIE1hY2hpbmVUaHJlYWRz
OwogY2xhc3MgTWFya1N0YWNrQXJyYXk7CiBjbGFzcyBNYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWlu
dDsKK2NsYXNzIE1hcmtlZEpTVmFsdWVSZWZBcnJheTsKIGNsYXNzIEJsb2NrRGlyZWN0b3J5Owog
Y2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXI7CiBjbGFzcyBNYXJraW5nQ29uc3RyYWludDsKQEAg
LTI0MCw2ICsyNDEsNyBAQCBjbGFzcyBIZWFwIHsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGQ6
OnVuaXF1ZV9wdHI8VHlwZUNvdW50U2V0PiBvYmplY3RUeXBlQ291bnRzKCk7CiAKICAgICBIYXNo
U2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4mIG1hcmtMaXN0U2V0KCk7CisgICAgU2VudGluZWxM
aW5rZWRMaXN0PE1hcmtlZEpTVmFsdWVSZWZBcnJheSwgQmFzaWNSYXdTZW50aW5lbE5vZGU8TWFy
a2VkSlNWYWx1ZVJlZkFycmF5Pj4mIG1hcmtlZEpTVmFsdWVSZWZBcnJheXMoKSB7IHJldHVybiBt
X21hcmtlZEpTVmFsdWVSZWZBcnJheXM7IH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jdG9yPiB2b2lkIGZvckVhY2hQcm90ZWN0ZWRDZWxsKGNvbnN0IEZ1bmN0b3ImKTsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZvckVhY2hDb2RlQmxvY2soY29uc3QgRnVu
Y3RvciYpOwpAQCAtNjE3LDYgKzYxOSw3IEBAIGNsYXNzIEhlYXAgewogCiAgICAgUHJvdGVjdENv
dW50U2V0IG1fcHJvdGVjdGVkVmFsdWVzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PE1h
cmtlZEFyZ3VtZW50QnVmZmVyKj4+IG1fbWFya0xpc3RTZXQ7CisgICAgU2VudGluZWxMaW5rZWRM
aXN0PE1hcmtlZEpTVmFsdWVSZWZBcnJheSwgQmFzaWNSYXdTZW50aW5lbE5vZGU8TWFya2VkSlNW
YWx1ZVJlZkFycmF5Pj4gbV9tYXJrZWRKU1ZhbHVlUmVmQXJyYXlzOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPE1hY2hpbmVUaHJlYWRzPiBtX21hY2hpbmVUaHJlYWRzOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCmluZGV4IDk0OWI5YjA5MWE5ZjVhMzVjZjA1Y2U0
Y2FmZTI3NDI4NDMwZjJhNmUuLjc2NWVhNThhYzEwZmNkODRmM2ZmMzc1MjhlNzlmNmM3ODU0ZWYx
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKQEAgLTM2LDcgKzM2
LDcgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZsb3cg
ewogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFJlY29yZE92ZXJmbG93OwotICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIg
c2l6ZV90IGlubGluZUNhcGFjaXR5ID0gODsKICAgICB0eXBlZGVmIEhhc2hTZXQ8TWFya2VkQXJn
dW1lbnRCdWZmZXIqPiBMaXN0U2V0OwogCiAgICAgLy8gQ29uc3RydWN0b3IgZm9yIGEgcmVhZC13
cml0ZSBsaXN0LCB0byB3aGljaCB5b3UgbWF5IGFwcGVuZCB2YWx1ZXMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvV1RGL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggNDM5MDc1MjE5OGQxYjQ5ZjY4Y2JlYmVhMzQ0
M2I3MzQwYzFlMzczMC4uZThhYzE3M2M1NzVmYTA2YjhmOTg4OTg1NGM0ZmRiMTAxMzg2YTM3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBi
L1NvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtOTcsNyArOTcsNyBA
QCBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX0ZV
TkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwogUFJFQklORElO
RyA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hh
ci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAt
V2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2lu
Zy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1
bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29u
c3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsK
K1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2Ny
aXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9
MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1
cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3
cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9y
cyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiBI
RUFERVJfU0VBUkNIX1BBVEhTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpJChXVEZfSU5TVEFMTF9Q
QVRIX1BSRUZJWCkvdXNyL2xvY2FsL2luY2x1ZGUgJChEU1RST09UKSQoV1RGX0lOU1RBTExfUEFU
SF9QUkVGSVgpL3Vzci9sb2NhbC9pbmNsdWRlICQoaW5oZXJpdGVkKTsKIFNZU1RFTV9IRUFERVJf
U0VBUkNIX1BBVEhTID0gJChTREtfRElSKSQoV1RGX0lOU1RBTExfUEFUSF9QUkVGSVgpL3Vzci9s
b2NhbC9pbmNsdWRlICQoaW5oZXJpdGVkKTsKIExJQlJBUllfU0VBUkNIX1BBVEhTID0gJChTREtf
RElSKSQoV1RGX0lOU1RBTExfUEFUSF9QUkVGSVgpL3Vzci9sb2NhbC9saWIgJChpbmhlcml0ZWQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9V
VUlELmNwcAppbmRleCAzYzc0MzMxNTg0YmQ1Y2JhMGQ3ZTgzNGIyYzJmZWQ5YWI1YjgzNTk0Li5j
ZTlmY2IwYTcxYzYyOGFjNGJjZjE1NWI4MTJhNDRkZDllZTllMGEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9VVUlELmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcApAQCAtNzAs
OCArNzAsOSBAQCBTdHJpbmcgYm9vdFNlc3Npb25VVUlEU3RyaW5nKCkKICAgICBzdGF0aWMgTGF6
eU5ldmVyRGVzdHJveWVkPFN0cmluZz4gYm9vdFNlc3Npb25VVUlEOwogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlS2V5OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsKLSAg
ICAgICAgc2l6ZV90IHV1aWRMZW5ndGggPSAzNzsKLSAgICAgICAgY2hhciB1dWlkW3V1aWRMZW5n
dGhdOworICAgICAgICBjb25zdGV4cHIgc2l6ZV90IG1heFVVSURMZW5ndGggPSAzNzsKKyAgICAg
ICAgY2hhciB1dWlkW21heFVVSURMZW5ndGhdOworICAgICAgICBzaXplX3QgdXVpZExlbmd0aCA9
IG1heFVVSURMZW5ndGg7CiAgICAgICAgIGlmIChzeXNjdGxieW5hbWUoImtlcm4uYm9vdHNlc3Np
b251dWlkIiwgdXVpZCwgJnV1aWRMZW5ndGgsIG51bGxwdHIsIDApKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBib290U2Vzc2lvblVVSUQuY29uc3RydWN0KHN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPih1dWlkKSwgdXVpZExlbmd0aCAtIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggM2Q0YzU1M2Y1MDE1ODgxNDc2ZWRjOTc1MzAyYjY2
ODdiYTEwZmJlNC4uNDNjMTU1MzgwMjg3MTZmOTg0ZDNhZWQ3N2IxYzNmOWZjMDc2NWI3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC04OCw3ICs4
OCw3IEBAIEdDQ19XQVJOX1NJR05fQ09NUEFSRSA9IFlFUzsKIEdDQ19XQVJOX1VOSU5JVElBTEla
RURfQVVUT1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FS
Tl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEg
LVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVk
IC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1h
dHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKK1dBUk5JTkdfQ0ZM
QUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRp
dGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2Vs
ZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQg
LVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdz
IC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9n
aWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGEgLVduby11bmtub3duLXdh
cm5pbmctb3B0aW9uOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6
aWRlbnRpZmllcikpOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmlu
ZGV4IDgxNGJlODNjOWVjMDlhNWYzMWJlNTVjNjZjNGFiYTc1ODgxN2IyOTUuLjAwODNlMmFhYWEz
Mzk3ZDZjYjg5NGFjODE3ZTRkMmNhYWI2MTI2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC04OCw3ICs4OCw3IEBAIEdDQ19XQVJO
X1NJR05fQ09NUEFSRSA9IFlFUzsKIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVM7
CiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFC
TEUgPSBZRVM7Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdj
aGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5z
IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNz
aW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAt
V3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1j
b25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdo
IC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdl
eHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlh
bGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9y
bWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRo
IC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRl
c3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1X
aW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGEgLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uOwog
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOwog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IDg2ZmRh
MTI5OTJmYzVlNjIwNDRkNTAxNmUwNzMyNjhlNTZlOGFkYmQuLmNjMzdmODZjMmNjN2Q2MTY1N2Qw
OTQyMDVjMjU0NmJkNjRlZTZlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC02NCw3ICs2NCw3IEBAIENMQU5HX1dBUk5f
T0JKQ19JTVBMSUNJVF9SRVRBSU5fU0VMRiA9IFlFUzsKIEdDQ19XQVJOX1VOSU5JVElBTElaRURf
QVVUT1MgPSBZRVMKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VO
VVNFRF9WQVJJQUJMRSA9IFlFUwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtVyAtV2Nhc3QtcXVh
bCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdmb3JtYXQt
c2VjdXJpdHkgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdwb2ludGVyLWFyaXRoIC1Xd3Jp
dGUtc3RyaW5ncyAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnM7
CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRz
IC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2Zvcm1hdC1zZWN1cml0eSAtV21pc3Npbmct
Zm9ybWF0LWF0dHJpYnV0ZSAtV3BvaW50ZXItYXJpdGggLVd3cml0ZS1zdHJpbmdzIC1Xbm8tdW51
c2VkLXBhcmFtZXRlciAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV3ZsYTsKIAogRU5HSU5FRVJJ
TkdfQlVJTERfREVGSU5FUyA9ICQoRU5HSU5FRVJJTkdfQlVJTERfREVGSU5FU18kKEVOR0lORUVS
SU5HX0JVSUxEKSk7CiBFTkdJTkVFUklOR19CVUlMRF9ERUZJTkVTXzEgPSBFTkdJTkVFUklOR19C
VUlMRD0xOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlLnhj
Y29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4
IDc4ZDFjNzc1OTNhZTA5ODM2MTRlNGEwYzJhMWVlNTFhOTZlNjFkOWEuLmQ2YTkxMDlhNTkwODdm
Y2JhYTViODYxYTBkNGYzOWMzNTNkZjllMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWcKQEAgLTg2LDcgKzg2LDcgQEAgR0NDX1dBUk5fVU5VU0VEX0ZVTkNU
SU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwogT1RIRVJfTUlHRkxB
R1MgPSAtRiQoQlVJTFRfUFJPRFVDVFNfRElSKTsKIFBSRUJJTkRJTkcgPSBOTzsKLVdBUk5JTkdf
Q0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2Nv
bmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkg
LVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJu
IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRh
bnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMg
LVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1m
YWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAt
V2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tl
bnMgLVdmb3JtYXQtc2VjdXJpdHkgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1
dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV3BhY2tlZCAtV3Bv
aW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdl
eGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2Fs
LWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAogVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggMjAyMzEyOTEyNzI0M2Q5ZDM2
MWI0NzNiMWE1YWU2ZTVlZjMxYjUwMS4uZGE4YmU5ZjZhMWZhYWFmZTM3YTViYzIxNmVlNTkxZGMy
NWI2NWIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnCkBAIC04OCw3ICs4OCw3IEBAIENMQU5HX1dBUk5fRE9DVU1FTlRB
VElPTl9DT01NRU5UUyA9IFlFUzsKIE9USEVSX01JR0ZMQUdTID0gLUYkKEJVSUxUX1BST0RVQ1RT
X0RJUik7CiBDTEFOR19BTkFMWVpFUl9MT0NBTElaQUJJTElUWV9OT05MT0NBTElaRUQgPSBZRVM7
CiBQUkVCSU5ESU5HID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0
LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0
cmEtdG9rZW5zIC1XZm9ybWF0LXNlY3VyaXR5IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQt
YXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdwYWNr
ZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJp
bmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRv
bG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2g7CitXQVJOSU5HX0NGTEFHUyA9
IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25h
bC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0LXNlY3VyaXR5IC1XaW5pdC1z
ZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV25vLXVu
dXNlZC1wYXJhbWV0ZXIgLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xz
IC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFs
LWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91
Z2ggLVd2bGE7CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVu
dGlmaWVyKSk7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9T
b3VyY2UvYm1hbGxvYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IGMwMDBmYjYy
MTdjMzBlNTZlZjk2NWY0ZGU4YWNjZWQzNGE0MGY1OTQuLmI0MDQ5NzBhNmMzNDdjNWMwOGUzM2Zh
MTlkYzc5YWU4OGM0NGE4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWcKKysrIGIvU291cmNlL2JtYWxsb2MvQ29uZmlndXJhdGlvbnMvQmFz
ZS54Y2NvbmZpZwpAQCAtOTQsNyArOTQsNyBAQCBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9T
ID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VE
X1ZBUklBQkxFID0gWUVTOwogUFJFQklORElORyA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2Fs
bCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5p
bml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2lu
Zy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXIt
YXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRp
bWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBh
cmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRy
YSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6
ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0
LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1X
cmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3Ry
dWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1w
bGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
ID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8x
MyA9IDEwMTMwMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBlMzk4NzMyNmFjMjNmZDllYmEyMzdjNjQyYThjMmE5ODkxMGYyMmVjLi5hMWI2ZDQz
ZDMxYjI5NTczZjRiM2I2MjBlZTM3MWRlNDFhOWY1ZGI3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMTMg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90
IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29udGVudEV4dGVuc2lvblRlc3Rlci9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIGxsZGIvbGxkYldlYktpdFRlc3Rlci9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorCiAyMDIwLTAzLTEzICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFB1bGwgaW4gSlMgdGVzdHMgZnJvbSAiSW50
ZXJuYWwiIHdoZW4gdGhlcmUgYXJlICJJbnRlcm5hbCIgdGVzdHMgaW4gYW4gYWRqYWNlbnQgZGly
ZWN0b3J5CmRpZmYgLS1naXQgYS9Ub29scy9Db250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcgYi9Ub29scy9Db250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggYzE2N2RkMzI0NTE0MGJkODJiNmQ1NzEzOTdh
MTFhYjQ0MmJmZDIxNC4uNjdlNDc3NTRhZTUyNTgwMDhjNmJjYzczYjIxZTFjYzBmYmM2N2E0YiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ29udGVudEV4dGVuc2lvblRlc3Rlci9Db25maWd1cmF0aW9ucy9C
YXNlLnhjY29uZmlnCisrKyBiL1Rvb2xzL0NvbnRlbnRFeHRlbnNpb25UZXN0ZXIvQ29uZmlndXJh
dGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtNjUsNyArNjUsNyBAQCBHQ0NfV0FSTl9VTkRFQ0xBUkVE
X1NFTEVDVE9SID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdD
Q19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9
IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXIt
c3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2lu
Zy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXIt
YXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRp
bWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBh
cmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRy
YSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0y
IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVy
biAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dy
aXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3Jz
IC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9U
b29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpp
bmRleCA5MTRhOTIxODQxN2IzZWZiNTJmZjUyMTE2ZjgzMTRhYjYzYTU2YzQ2Li4yZTk3NTRhYjc0
ZmM4OTkzYjUwMGU5YjU4NmUzYzAxOWVjNGRmYWUzIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xs
ZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Ub29scy9s
bGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtODIs
NyArODIsNyBAQCBHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOwogR0NDX1dBUk5f
VU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlF
UzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2Nh
c3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5p
dC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3Bh
Y2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0
cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1
dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdT
ID0gLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9
MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1
cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3
cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9y
cyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiAK
IEhFQURFUl9TRUFSQ0hfUEFUSFMgPSAke0JVSUxUX1BST0RVQ1RTX0RJUn0vdXNyL2xvY2FsL2lu
Y2x1ZGU7CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGYwOTMwNzczZGVlMWRmYzM5YzBjZWY2N2IyYjRh
ODgzNjc2MDdlYS4uZjQyZGVmYTNiNGU0MzY4MzAwZGIzYjMwZDE4MDM1ZDNiNDI3Y2MwMyAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxl
bmd0aC1hcnJheSAoVkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNZWRpYVRpbWUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAy
MC0wMi0xNyAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAg
IFtDTWFrZV0gVXNlIGJ1aWx0aW4gdGFyZ2V0cwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9NZWRpYVRpbWUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1BlcmZvcm1hbmNlVGVz
dHMvTWVkaWFUaW1lL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggMzVjMDg4OWY4
YTViOGM2MmQwMmZlOTU3MTMyNzI2N2Q1NTczNzJiYi4uMTAxMTU2YWRmZWNjYTQyMjllZTgyYzVm
MmMyMDJjNThmYWE1NGVlOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9NZWRpYVRpbWUv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL01lZGlh
VGltZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC04Miw3ICs4Miw3IEBAIEdDQ19X
QVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04g
PSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBQUkVCSU5ESU5HID0gTk87
Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNj
cmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9y
bWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRo
IC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRl
c3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1X
aW1wbGljaXQtZmFsbHRocm91Z2g7CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdj
YXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2lu
aXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdw
YWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1z
dHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3Rh
dXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiBIRUFERVJf
U0VBUkNIX1BBVEhTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL3Vzci9sb2NhbC9pbmNsdWRlICQo
RFNUUk9PVCkvdXNyL2xvY2FsL2luY2x1ZGUgaWN1ICQoSEVBREVSX1NFQVJDSF9QQVRIUyk7CiAK
IFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393468</attachid>
            <date>2020-03-13 02:52:55 -0700</date>
            <delta_ts>2020-03-13 22:46:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209043-20200313025254.patch</filename>
            <type>text/plain</type>
            <size>41499</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Mzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzRkZjgwNjhmMmM2MGYyYWZhZjU2ZWM4ODI0NTYxZGVmOTEzNjY5Li4wYTBjYjRkMmQzODk0Yzc4
NTkyZmZiYjcwNjZhM2Y4OTkwODQxNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBkaXNhYmxlcyB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkuIElmIHRoaXMgZmVhdHVyZSB1
c2VzIHVzZXItaW5wdXQsIHVzZXIgY2FuCisgICAgICAgIGNvbnRyb2wgdGhlIHN0YWNrIGhlaWdo
dCBjb25zdW1lZCBieSBDKysgY29kZS4gVGhpcyBwYXRjaCBhdm9pZHMgdXNpbmcgVkxBLiBUbyBh
Y2hpZXZlIHRoYXQsCisKKyAgICAgICAgICAgIDEuIFdlIHNldCBgLVd2bGFgIHdhcm5pbmcgb3B0
aW9uIHRvIHRyaWdnZXIgd2FybmluZ3MgaWYgaXQgaXMgdXNlZC4KKyAgICAgICAgICAgIDIuIElu
dHJvZHVjZSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkgZm9yIEFQSS4gVGhpcyByZXBsYWNlcyBgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbdmFyaWFibGVMZW5ndGhdYCB1c2UgY2FzZS4KKyAgICAgICAgICAg
ICAgIE1hcmtlZEpTVmFsdWVSZWZBcnJheSByZWdpc3RlcnMgaXRzZWxmIHRvIEpTQyBHQyBzbyB0
aGF0IEdDIGNhbiBtYXJrIGl0IGFzIGEgc3Ryb25nIHJvb3QuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY3VycmVudEFyZ3VtZW50c10pOgorICAg
ICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAoLVtKU1ZhbHVlIGNhbGxXaXRoQXJndW1l
bnRzOl0pOgorICAgICAgICAoLVtKU1ZhbHVlIGNvbnN0cnVjdFdpdGhBcmd1bWVudHM6XSk6Cisg
ICAgICAgICgtW0pTVmFsdWUgaW52b2tlTWV0aG9kOndpdGhBcmd1bWVudHM6XSk6CisgICAgICAg
ICogQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpN
YXJrZWRKU1ZhbHVlUmVmQXJyYXk6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgIChK
U0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheTo6dmlzaXRBZ2dyZWdhdGUpOgorICAgICAgICAqIEFQ
SS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaDogQWRkZWQuCisgICAgICAgICogQVBJL3Rlc3RzL21p
bmlkb20uYzoKKyAgICAgICAgKHByaW50KToKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoK
KyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBoZWFw
L0hlYXAuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6bWFya2VkSlNWYWx1ZVJlZkFycmF5cyk6Cisg
ICAgICAgICogcnVudGltZS9BcmdMaXN0Lmg6CisKIDIwMjAtMDMtMTMgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBjaGFuZ2UgQVNTRVJU
IHRvIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OIHNpbmNlIGl0IGlzIG5vdyBlbmFi
bGVkIHVuZGVyIEVOQUJMRShTRUNVUklUWV9BU1NFUlRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlYzgxMDEyYmUxZGZm
YjJmNGE4OTk2MTBmZTBmM2ZmNzQ1Yjk5NzdhLi5kYmU1ZjJhNjQ5ZjEzMmZjYjFmZDEwM2UyMjY0
MGYyZWE2MjQyMGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTEzICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFi
bGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICog
d3RmL1VVSUQuY3BwOgorICAgICAgICAoV1RGOjpib290U2Vzc2lvblVVSURTdHJpbmcpOgorCiAy
MDIwLTAzLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
b3B0IEFWU2FtcGxlQnVmZmVyVmlkZW9PdXRwdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MTFjYTEzZTgyODlk
NWJmNTE5NTYxMjhlMmJhZTY0OWVkNzVlMzQ4Li4wYjlkNGUwNjcxNDQwNDQ2NzNhOWQwZDJkNTZl
MmU1MWEwOTEyMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVz
ZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwog
MjAyMC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlcG9ydCBjcmFzaGVkIGNlbGwgaW4ganNDYXN0IGluIGRlYnVnIGJ1aWxkcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKaW5kZXggMGZjYTFmN2ZkZTM1MDc2ZWFiYTY2ODVjZDUxYzc5ZWZlMjRiNjkwZi4uYmQ2
OTJlNzY5ZmYyOWY2NTc2YmQ4Mzk4YzM4NmMwMTJjMzg2YTJiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkg
KFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
OTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAyMC0wMy0xMiAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBfQVhTQXBwbGljYXRp
b25BY2Nlc3NpYmlsaXR5RW5hYmxlZCBzaG91bGQgbm90IGJlIGNhbGxlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cKaW5kZXggYzNmNTE3ZDM1NGI5ZmRjOGZmOGJiOTM0ZTM0YjQzYmRmOTBkMjhhYy4u
N2RkYzAyMzcxYmQ2OWM5ZGViZTg5OGY4OGUxNjBlMzZlMTk5YTFmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5n
dGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAyMC0wMy0xMCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjUz
NzU5KTogV2ViIEluc3BlY3RvcjogQXVkaXRzOiByZXN1bHRzIGZvbGRlciBkb2Vzbid0IGdldCBz
ZWxlY3RlZCBieSBwcmVzc2luZyBBcnJvdyBEb3duIGtleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMWY2MTg3ODY1
MTMxNDE2MTc1NGVmMDc0NzMzY2M0YzQ0ZmE5YzhiLi5mMzUxZTMxODcyN2VkNmMxNmYyZGRmODI3
Y2YwZGQwYWE0ZjdjNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTEzICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1
c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisK
IDIwMjAtMDMtMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIHZlcnkgdmVyYm9zZSBsb2dnaW5nIG1vZGUgZm9yIGluY3JlbWVudGFsIFBERiBsb2Fk
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzFhZTg3YzE4YTdlZWFmMDM1M2Vj
ODMzMTA2NDllYjIxYTE2M2VhMy4uYzYwMDUzMmQ0NjRlZTg3N2IzMTViNjM4NDQ1NjdhZWZiNTQx
YWEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTAzLTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hv
dWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWc6CisKIDIwMjAtMDMtMTIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgQ29ycmVjdCBwcmVmZXJlbmNlIGhhbmRsaW5nIGFuZCBuYW1pbmcgY29udmVu
dGlvbnMgaW4gQXBwQm91bmQgYnJvd3NpbmcgcHJlZmVyZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9ibWFsbG9jL0NoYW5nZUxvZyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwppbmRleCBlZWE3
YzU2NDY4YzMxZTNlMGMwYmJiYWM1ZjVjMmUwYzM5NzJhYWMyLi4zNjBkODBlNmNmMGY2YTBkMzJk
YjQ2Yzk4YWVhYTg2ZmVhNzFjYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAt
MDMtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91
bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2Nv
bmZpZzoKKwogMjAyMC0wMy0wOSAgTWlrZSBHb3JzZSAgPG1nb3JzZUBzdXNlLmNvbT4KIAogICAg
ICAgICBCdWlsZCBmYWlsdXJlIG9uIHBwYzY0bGUgaWYgX191bml4IGlzIHVuZGVmaW5lZApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQubW0gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQppbmRleCA5MTJjZWIzZTllYzFjMWFmN2Q2
NWYxMmExZTAwMjEwNjgxMjQyYWMwLi5iODUzYjgxYjdiNzI2MTg1Y2U1NjI1MTUzZjcxYWJiZWUy
OGEwOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQpAQCAtMjMyLDEw
ICsyMzIsMTAgQEAgKyAoTlNBcnJheSAqKWN1cnJlbnRBcmd1bWVudHMKICAgICBpZiAoIWVudHJ5
LT5jdXJyZW50QXJndW1lbnRzKSB7CiAgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtKU0Nv
bnRleHQgY3VycmVudENvbnRleHRdOwogICAgICAgICBzaXplX3QgY291bnQgPSBlbnRyeS0+YXJn
dW1lbnRDb3VudDsKLSAgICAgICAgSlNWYWx1ZSAqIGFyZ3VtZW50QXJyYXlbY291bnRdOwotICAg
ICAgICBmb3IgKHNpemVfdCBpID0wOyBpIDwgY291bnQ7ICsraSkKLSAgICAgICAgICAgIGFyZ3Vt
ZW50QXJyYXlbaV0gPSBbSlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmVudHJ5LT5hcmd1bWVu
dHNbaV0gaW5Db250ZXh0OmNvbnRleHRdOwotICAgICAgICBlbnRyeS0+Y3VycmVudEFyZ3VtZW50
cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOmFyZ3VtZW50QXJyYXkgY291bnQ6
Y291bnRdOworICAgICAgICBOU011dGFibGVBcnJheSAqYXJndW1lbnRzID0gW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpjb3VudF07CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAgIFthcmd1bWVudHMgc2V0T2JqZWN0
OltKU1ZhbHVlIHZhbHVlV2l0aEpTVmFsdWVSZWY6ZW50cnktPmFyZ3VtZW50c1tpXSBpbkNvbnRl
eHQ6Y29udGV4dF0gYXRJbmRleGVkU3Vic2NyaXB0OmldOworICAgICAgICBlbnRyeS0+Y3VycmVu
dEFyZ3VtZW50cyA9IGFyZ3VtZW50czsKICAgICB9CiAKICAgICByZXR1cm4gZW50cnktPmN1cnJl
bnRBcmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFs
dWUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KaW5kZXggZTE4YTVj
Zjc3NzA0NjhjNmVkMDU5NzhiOTBkY2JkMzdjN2M4NGM5YS4uYTU1ZjYwYzM2MGU4YzljZDQ4MWU4
ZTk3ZWE3ZTRlZTg0MWYzYTVlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQpA
QCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCAiSlNWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJK
U1ZhbHVlUHJpdmF0ZS5oIgogI2ltcG9ydCAiSlNXcmFwcGVyTWFwLmgiCisjaW1wb3J0ICJNYXJr
ZWRKU1ZhbHVlUmVmQXJyYXkuaCIKICNpbXBvcnQgIk9iamNSdW50aW1lRXh0cmFzLmgiCiAjaW1w
b3J0ICJKU0NJbmxpbmVzLmgiCiAjaW1wb3J0ICJKU0NKU1ZhbHVlLmgiCkBAIC00NzIsOCArNDcz
LDEyIEBAIC0gKEJPT0wpaXNJbnN0YW5jZU9mOihpZCl2YWx1ZQogCiAtIChKU1ZhbHVlICopY2Fs
bFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiB7CisgICAgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0
UmVmXSk7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNDOjpK
U0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKKwogICAgIE5TVUludGVnZXIgYXJndW1lbnRDb3VudCA9
IFthcmd1bWVudEFycmF5IGNvdW50XTsKLSAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1thcmd1bWVu
dENvdW50XTsKKyAgICBKU0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSBhcmd1bWVudHModm0sIGFy
Z3VtZW50Q291bnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmd1bWVudENvdW50
OyArK2kpCiAgICAgICAgIGFyZ3VtZW50c1tpXSA9IG9iamVjdFRvVmFsdWUoX2NvbnRleHQsIFth
cmd1bWVudEFycmF5IG9iamVjdEF0SW5kZXg6aV0pOwogCkBAIC00ODIsNyArNDg3LDcgQEAgLSAo
SlNWYWx1ZSAqKWNhbGxXaXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJheQogICAg
IGlmIChleGNlcHRpb24pCiAgICAgICAgIHJldHVybiBbX2NvbnRleHQgdmFsdWVGcm9tTm90aWZ5
RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIG9iamVjdCwgMCwg
YXJndW1lbnRDb3VudCwgYXJndW1lbnRzLCAmZXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlUmVmIHJl
c3VsdCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJl
Zl0sIG9iamVjdCwgMCwgYXJndW1lbnRDb3VudCwgYXJndW1lbnRzLmRhdGEoKSwgJmV4Y2VwdGlv
bik7CiAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4dCB2YWx1ZUZy
b21Ob3RpZnlFeGNlcHRpb246ZXhjZXB0aW9uXTsKIApAQCAtNDkxLDggKzQ5NiwxMiBAQCAtIChK
U1ZhbHVlICopY2FsbFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiAKIC0g
KEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJh
eQogeworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlMoW19jb250
ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0pOworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CisKICAgICBOU1VJbnRl
Z2VyIGFyZ3VtZW50Q291bnQgPSBbYXJndW1lbnRBcnJheSBjb3VudF07Ci0gICAgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbYXJndW1lbnRDb3VudF07CisgICAgSlNDOjpNYXJrZWRKU1ZhbHVlUmVmQXJy
YXkgYXJndW1lbnRzKHZtLCBhcmd1bWVudENvdW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgYXJndW1lbnRDb3VudDsgKytpKQogICAgICAgICBhcmd1bWVudHNbaV0gPSBvYmplY3RU
b1ZhbHVlKF9jb250ZXh0LCBbYXJndW1lbnRBcnJheSBvYmplY3RBdEluZGV4OmldKTsKIApAQCAt
NTAxLDcgKzUxMCw3IEBAIC0gKEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRoQXJndW1lbnRzOihOU0Fy
cmF5ICopYXJndW1lbnRBcnJheQogICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgIHJldHVybiBb
X2NvbnRleHQgdmFsdWVGcm9tTm90aWZ5RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAKLSAgICBKU09i
amVjdFJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yKFtfY29udGV4dCBKU0ds
b2JhbENvbnRleHRSZWZdLCBvYmplY3QsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50cywgJmV4Y2Vw
dGlvbik7CisgICAgSlNPYmplY3RSZWYgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3Rv
cihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgb2JqZWN0LCBhcmd1bWVudENvdW50LCBh
cmd1bWVudHMuZGF0YSgpLCAmZXhjZXB0aW9uKTsKICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAg
ICByZXR1cm4gW19jb250ZXh0IHZhbHVlRnJvbU5vdGlmeUV4Y2VwdGlvbjpleGNlcHRpb25dOwog
CkBAIC01MTAsOCArNTE5LDEyIEBAIC0gKEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRoQXJndW1lbnRz
OihOU0FycmF5ICopYXJndW1lbnRBcnJheQogCiAtIChKU1ZhbHVlICopaW52b2tlTWV0aG9kOihO
U1N0cmluZyAqKW1ldGhvZCB3aXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRzCiB7Cisg
ICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhbX2NvbnRleHQgSlNH
bG9iYWxDb250ZXh0UmVmXSk7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKKwogICAgIE5TVUludGVnZXIgYXJn
dW1lbnRDb3VudCA9IFthcmd1bWVudHMgY291bnRdOwotICAgIEpTVmFsdWVSZWYgYXJndW1lbnRB
cnJheVthcmd1bWVudENvdW50XTsKKyAgICBKU0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSBhcmd1
bWVudEFycmF5KHZtLCBhcmd1bWVudENvdW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYXJndW1lbnRDb3VudDsgKytpKQogICAgICAgICBhcmd1bWVudEFycmF5W2ldID0gb2JqZWN0
VG9WYWx1ZShfY29udGV4dCwgW2FyZ3VtZW50cyBvYmplY3RBdEluZGV4OmldKTsKIApAQCAtNTI5
LDcgKzU0Miw3IEBAIC0gKEpTVmFsdWUgKilpbnZva2VNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9k
IHdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudHMKICAgICBpZiAoZXhjZXB0aW9uKQog
ICAgICAgICByZXR1cm4gW19jb250ZXh0IHZhbHVlRnJvbU5vdGlmeUV4Y2VwdGlvbjpleGNlcHRp
b25dOwogCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFtf
Y29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBvYmplY3QsIHRoaXNPYmplY3QsIGFyZ3VtZW50
Q291bnQsIGFyZ3VtZW50QXJyYXksICZleGNlcHRpb24pOworICAgIEpTVmFsdWVSZWYgcmVzdWx0
ID0gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwg
b2JqZWN0LCB0aGlzT2JqZWN0LCBhcmd1bWVudENvdW50LCBhcmd1bWVudEFycmF5LmRhdGEoKSwg
JmV4Y2VwdGlvbik7CiAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4
dCB2YWx1ZUZyb21Ob3RpZnlFeGNlcHRpb246ZXhjZXB0aW9uXTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRkNTUwOGRhMDk0ZWYzZTJkOGZjOWRlZWVhNTM2ZGE0NWI0MzY3ZmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHAK
QEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNYXJrZWRKU1ZhbHVlUmVmQXJy
YXkuaCIKKworI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJKU0NKU1ZhbHVlLmgi
CisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK01hcmtlZEpTVmFs
dWVSZWZBcnJheTo6TWFya2VkSlNWYWx1ZVJlZkFycmF5KFZNJiB2bSwgdW5zaWduZWQgc2l6ZSkK
KyAgICA6IG1fc2l6ZShzaXplKQoreworICAgIGlmIChtX3NpemUgPiBNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6aW5saW5lQ2FwYWNpdHkpIHsKKyAgICAgICAgbV9idWZmZXIgPSBCdWZmZXJVbmlxdWVQ
dHI6OmNyZWF0ZShtX3NpemUpOworICAgICAgICB2bS5oZWFwLm1hcmtlZEpTVmFsdWVSZWZBcnJh
eXMoKS5hcHBlbmQodGhpcyk7CisgICAgfQorfQorCit2b2lkIE1hcmtlZEpTVmFsdWVSZWZBcnJh
eTo6dmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgSlNWYWx1ZVJl
ZiogYnVmZmVyID0gZGF0YSgpOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8
IG1fc2l6ZTsgKytpbmRleCkgeworICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlID0gYnVmZmVyW2lu
ZGV4XTsKKyNpZiAhQ1BVKEFERFJFU1M2NCkKKyAgICAgICAgSlNDZWxsKiBqc0NlbGwgPSByZWlu
dGVycHJldF9jYXN0PEpTQ2VsbCo+KGNvbnN0X2Nhc3Q8T3BhcXVlSlNWYWx1ZSo+KHZhbHVlKSk7
CisgICAgICAgIGlmICghanNDZWxsKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZp
c2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQoanNDZWxsKTsgLy8gV2Ugc2hvdWxkIG1hcmsgdGhlIHdy
YXBwZXIgaXRzZWxmIHRvIGtlZXAgSlNWYWx1ZVJlZiBsaXZlLgorI2Vsc2UKKyAgICAgICAgdmlz
aXRvci5hcHBlbmRVbmJhcnJpZXJlZChiaXR3aXNlX2Nhc3Q8SlNWYWx1ZT4odmFsdWUpKTsKKyNl
bmRpZgorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzQ5NzMy
ZjFkMjM0NjllZmU0ZTgyZGRmZDJhZDA0NDE0ODkzNWM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaApAQCAtMCwwICsx
LDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJBcmdMaXN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcmJpZEhl
YXBBbGxvY2F0aW9uLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL05vbm1vdmFibGUuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIE1hcmtlZEpTVmFs
dWVSZWZBcnJheSBmaW5hbCA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxNYXJrZWRKU1Zh
bHVlUmVmQXJyYXk+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNYXJrZWRKU1ZhbHVlUmVm
QXJyYXkpOworICAgIFdURl9NQUtFX05PTk1PVkFCTEUoTWFya2VkSlNWYWx1ZVJlZkFycmF5KTsK
KyAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKK3B1YmxpYzoKKyAgICB1c2luZyBCdWZm
ZXJVbmlxdWVQdHIgPSBDYWdlZFVuaXF1ZVB0cjxHaWdhY2FnZTo6SlNWYWx1ZSwgSlNWYWx1ZVJl
Zj47CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSBNYXJrZWRB
cmd1bWVudEJ1ZmZlcjo6aW5saW5lQ2FwYWNpdHk7CisKKyAgICBNYXJrZWRKU1ZhbHVlUmVmQXJy
YXkoVk0mLCB1bnNpZ25lZCk7CisKKyAgICB+TWFya2VkSlNWYWx1ZVJlZkFycmF5KCkKKyAgICB7
CisgICAgICAgIGlmIChpc09uTGlzdCgpKQorICAgICAgICAgICAgcmVtb3ZlKCk7CisgICAgfQor
CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKyAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9zaXplOyB9CisKKyAgICBKU1ZhbHVlUmVmJiBvcGVy
YXRvcltdKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBkYXRhKClbaW5kZXhdOyB9CisKKyAgICBj
b25zdCBKU1ZhbHVlUmVmKiBkYXRhKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBjb25z
dF9jYXN0PE1hcmtlZEpTVmFsdWVSZWZBcnJheSo+KHRoaXMpLT5kYXRhKCk7CisgICAgfQorCisg
ICAgSlNWYWx1ZVJlZiogZGF0YSgpCisgICAgeworICAgICAgICBpZiAobV9idWZmZXIpCisgICAg
ICAgICAgICByZXR1cm4gbV9idWZmZXIuZ2V0KG1fc2l6ZSk7CisgICAgICAgIHJldHVybiBtX2lu
bGluZUJ1ZmZlcjsKKyAgICB9CisKKyAgICB2b2lkIHZpc2l0QWdncmVnYXRlKFNsb3RWaXNpdG9y
Jik7CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9zaXplOworICAgIEpTVmFsdWVSZWYgbV9p
bmxpbmVCdWZmZXJbaW5saW5lQ2FwYWNpdHldIHsgfTsKKyAgICBCdWZmZXJVbmlxdWVQdHIgbV9i
dWZmZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvbWluaWRvbS5jIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9taW5pZG9tLmMKaW5kZXggNmViYjM5OWFjMGI5ODUxOGExNDMxNTY0ZWYwNWI5OGJl
N2EwZjViMS4uZjRhMDc0YzdiMDA2NDAxNWI5MzQwYzFhODUwNTMyZGJiNzRlMGNhOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9taW5pZG9tLmMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9taW5pZG9tLmMKQEAgLTg4LDEwICs4OCwxMSBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBwcmludChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgb2JqZWN0LCBKU09iamVjdFJlZiB0aAogICAgIGlmIChhcmd1bWVudENvdW50ID4gMCkgewog
ICAgICAgICBKU1N0cmluZ1JlZiBzdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQs
IGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKICAgICAgICAgc2l6ZV90IG51bUNoYXJzID0gSlNT
dHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKHN0cmluZyk7Ci0gICAgICAgIGNoYXIgc3Ry
aW5nVVRGOFtudW1DaGFyc107CisgICAgICAgIGNoYXIqIHN0cmluZ1VURjggPSAoY2hhciopbWFs
bG9jKG51bUNoYXJzKTsKICAgICAgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhzdHJpbmcsIHN0
cmluZ1VURjgsIG51bUNoYXJzKTsKICAgICAgICAgcHJpbnRmKCIlc1xuIiwgc3RyaW5nVVRGOCk7
CiAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShzdHJpbmcpOworICAgICAgICBmcmVlKHN0cmluZ1VU
RjgpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvQmFz
ZS54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhj
Y29uZmlnCmluZGV4IDdlMDMyNjg3ZTdlMzUzZmRjNjFkMDJlYjc1MDBkYmUzZDQzNDdjMTEuLjdl
NjI1M2Y4NDQzNjZmMmQ2ZTM0NGE2Y2FjYjc4YmMyNmRiOTBhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC05OCw3ICs5
OCw3IEBAIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9W
QVJJQUJMRSA9IFlFUzsKIENMQU5HX1dBUk5fRE9DVU1FTlRBVElPTl9DT01NRU5UUyA9IFlFUzsK
IFBSRUJJTkRJTkcgPSBOTzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3Qt
cXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRy
YS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0
ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50
LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1X
Z2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFs
bHRocm91Z2g7CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdj
aGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5z
IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNz
aW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAt
V3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1j
b25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdo
IC1XdmxhOwogCiBIRUFERVJfU0VBUkNIX1BBVEhTID0gLiAiJHtCVUlMVF9QUk9EVUNUU19ESVJ9
L3Vzci9sb2NhbC9pbmNsdWRlIiAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDRhZmNlMDE1ZjkwYmIyNTEwNGM4YjYxZTFiNzI5NWM2N2Nj
MDFjYjEuLjllMGVlMWRlOWUzNDc4YzBkYTMyODUzY2YxNmJkMjI1NzJhYzJjMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODQ5LDYgKzE4NDksNyBAQAogCQlFM0M3OUNBQjFE
QjlBNERDMDBEMUVDQTQgLyogRE9NSklURWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M3OUNBQTFEQjlBNEQ2MDBEMUVDQTQgLyogRE9NSklU
RWZmZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRTNDOEVENDMyM0ExREJDQjAwMTMxOTU4IC8qIElzb0lubGluZWRIZWFwQ2VsbFR5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzhFRDQyMjNB
MURCQzUwMDEzMTk1OCAvKiBJc29JbmxpbmVkSGVhcENlbGxUeXBlLmggKi87IH07CiAJCUUzRDIz
OUM5MUI4MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QyMzlDNzFCODI5QzFDMDBCQkVG
NjcgLyogSlNNb2R1bGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUUzRDM1MTVGMjQxQjg5RDcwMDhEQzE2RSAvKiBNYXJrZWRK
U1ZhbHVlUmVmQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzRDM1MTVEMjQxQjg5Q0UwMDhEQzE2RSAvKiBNYXJrZWRKU1ZhbHVlUmVmQXJyYXku
aCAqLzsgfTsKIAkJRTNEODc3NzQxRTY1QzBBMDAwQkU5NDVBIC8qIEJ5dGVjb2RlRHVtcGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0Q4Nzc3MjFF
NjVDMDg5MDBCRTk0NUEgLyogQnl0ZWNvZGVEdW1wZXIuaCAqLzsgfTsKIAkJRTNFRTEzNzYyMUZC
RDQzNTAwRDgzQzRCIC8qIEVycm9yVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNFRTEzNzQyMUZCRDQzNDAwRDgzQzRCIC8qIEVycm9yVHlwZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzRjIz
QTdGMUVDRjEzRUUwMDk3OEQ5OSAvKiBTbmlwcGV0U2xvd1BhdGhDYWxscy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGMjNBN0UxRUNGMTNFNTAwOTc4
RDk5IC8qIFNuaXBwZXRTbG93UGF0aENhbGxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUwMjYsNiArNTAyNyw4IEBACiAJCUUzRDI2NDI4MUQz
OEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZUdyYXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJ5dGVjb2RlR3JhcGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNEMjY0MjkxRDM4QzA0MjAwMEJFMTc0IC8qIEJ5dGVjb2RlUmV3cml0ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0ZWNvZGVSZXdyaXRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRDI2NDJBMUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRl
Y29kZVJld3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVjb2Rl
UmV3cml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNEMzUxNUQyNDFCODlD
RTAwOERDMTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXJr
ZWRKU1ZhbHVlUmVmQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNEMzUx
NUUyNDFCODlDRjAwOERDMTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFM0Q4Nzc3MTFFNjVDMDg5MDBCRTk0NUEgLyogQnl0ZWNvZGVEdW1wZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0ZWNvZGVEdW1wZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0Q4Nzc3MjFFNjVDMDg5MDBCRTk0NUEg
LyogQnl0ZWNvZGVEdW1wZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0
ZWNvZGVEdW1wZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFRTEzNzQyMUZC
RDQzNDAwRDgzQzRCIC8qIEVycm9yVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFcnJvclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0MTEsNiAr
NjQxNCw4IEBACiAJCQkJN0E5Nzc0QTcyMDZCODJDOTAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmgg
Ki8sCiAJCQkJODZFM0M2MEMxNjdCQUI4NzAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5oICovLAog
CQkJCTg2RTNDNjBCMTY3QkFCODcwMDZENzYwQSAvKiBKU1dyYXBwZXJNYXAubW0gKi8sCisJCQkJ
RTNEMzUxNUUyNDFCODlDRjAwOERDMTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHAgKi8s
CisJCQkJRTNEMzUxNUQyNDFCODlDRTAwOERDMTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJheS5o
ICovLAogCQkJCTg2RjNFRUI5MTY4Q0NGNzUwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlv
bi5oICovLAogCQkJCTg2RjNFRUJBMTY4Q0NGNzUwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5j
dGlvbi5tbSAqLywKIAkJCQk4NkYzRUVCNjE2ODU1QTVCMDA3N0I5MkEgLyogT2JqY1J1bnRpbWVF
eHRyYXMuaCAqLywKQEAgLTk5NjMsNiArOTk2OCw3IEBACiAJCQkJMTQyRDZGMDkxMzUzOUEyODAw
QjAyRTg2IC8qIE1hcmtlZEJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdDNUZCODFEODg4
QTBDMDA0NEY1RTIgLyogTWFya2VkQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NDE0NDhDQjEzQTE3NkVDMDBGNUJBMUEgLyogTWFya2VkQmxvY2tTZXQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUUzRDM1MTVGMjQxQjg5RDcwMDhEQzE2RSAvKiBNYXJrZWRKU1ZhbHVlUmVmQXJyYXku
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDJGM0RCMTM5RjRCRTIwMDQ5MTAzMSAvKiBNYXJrZWRT
cGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3REYxMzUxRTI5NzBEQzAwOTU5NTFCIC8qIE1h
cmtlZFNwYWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NjBFMzgxRTA1MTdCQjAw
MzE0NjJDIC8qIE1hcmtpbmdDb25zdHJhaW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dAppbmRleCBlMDA5NjY2ODJiNTIyMTQ0YmM0ODkxMDU5ZjM5ZTFiYzI4NjZj
ZjljLi5jN2I2MzhiYzQwMTFjOWNkNDRlMTYyOTk3ZTA5M2M4ZTA0ZTQyMGEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NvdXJjZXMudHh0CkBAIC00MCw2ICs0MCw3IEBAIEFQSS9KU1ZhbHVlUmVmLmNwcAog
QVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCiBBUEkvSlNXZWFrUHJpdmF0ZS5jcHAK
IEFQSS9KU1dlYWtWYWx1ZS5jcHAKK0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwCiBBUEkv
T3BhcXVlSlNTdHJpbmcuY3BwCiAKIGFzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCAwMDdlOGI1ODBkZjA3MTk1MmJi
MGEzNTYxYzVmY2I2NDE1MzBjYTVhLi42MjdkZDgxMzc3YmU2YTRlZmJhM2E5ZTBiNjI0YzU4N2Y3
MTFkYTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtNTgsNiArNTgsNyBA
QAogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb2RlQmxvY2suaCIKICNpbmNsdWRlICJNYWNoaW5l
U3RhY2tNYXJrZXIuaCIKICNpbmNsdWRlICJNYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludC5oIgor
I2luY2x1ZGUgIk1hcmtlZEpTVmFsdWVSZWZBcnJheS5oIgogI2luY2x1ZGUgIk1hcmtlZFNwYWNl
SW5saW5lcy5oIgogI2luY2x1ZGUgIk1hcmtpbmdDb25zdHJhaW50U2V0LmgiCiAjaW5jbHVkZSAi
UHJldmVudENvbGxlY3Rpb25TY29wZS5oIgpAQCAtMjc1OCw2ICsyNzU5LDkgQEAgdm9pZCBIZWFw
OjphZGRDb3JlQ29uc3RyYWludHMoKQogICAgICAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyOjptYXJrTGlzdHMoc2xvdFZpc2l0b3IsICptX21hcmtMaXN0U2V0KTsKICAgICAgICAgICAg
IH0KIAorICAgICAgICAgICAgZm9yIChhdXRvJiBhcnJheSA6IG1fbWFya2VkSlNWYWx1ZVJlZkFy
cmF5cykKKyAgICAgICAgICAgICAgICBhcnJheS52aXNpdEFnZ3JlZ2F0ZShzbG90VmlzaXRvcik7
CisKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3Bl
IHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpWTUV4
Y2VwdGlvbnMpOwogICAgICAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFwcGVuZFVuYmFycmllcmVk
KG1fdm0uZXhjZXB0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCmluZGV4IDIzN2Yx
OGZhZGQzZWNhOTY5MDg3NzMwYmRlMzBmNTQ2ODQ1MTdiMzguLjhkMDdjOWNlZjVjY2UzNTE3MzZk
MDExZDc1MmU2NDdmNTAyNjk0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTcz
LDYgKzczLDcgQEAgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogY2xhc3MgTWFjaGluZVRo
cmVhZHM7CiBjbGFzcyBNYXJrU3RhY2tBcnJheTsKIGNsYXNzIE1hcmtTdGFja01lcmdpbmdDb25z
dHJhaW50OworY2xhc3MgTWFya2VkSlNWYWx1ZVJlZkFycmF5OwogY2xhc3MgQmxvY2tEaXJlY3Rv
cnk7CiBjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlcjsKIGNsYXNzIE1hcmtpbmdDb25zdHJhaW50
OwpAQCAtMjQwLDYgKzI0MSw3IEBAIGNsYXNzIEhlYXAgewogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHN0ZDo6dW5pcXVlX3B0cjxUeXBlQ291bnRTZXQ+IG9iamVjdFR5cGVDb3VudHMoKTsKIAogICAg
IEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPiYgbWFya0xpc3RTZXQoKTsKKyAgICBTZW50
aW5lbExpbmtlZExpc3Q8TWFya2VkSlNWYWx1ZVJlZkFycmF5LCBCYXNpY1Jhd1NlbnRpbmVsTm9k
ZTxNYXJrZWRKU1ZhbHVlUmVmQXJyYXk+PiYgbWFya2VkSlNWYWx1ZVJlZkFycmF5cygpIHsgcmV0
dXJuIG1fbWFya2VkSlNWYWx1ZVJlZkFycmF5czsgfQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaFByb3RlY3RlZENlbGwoY29uc3QgRnVuY3RvciYpOwog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaENvZGVCbG9jayhjb25z
dCBGdW5jdG9yJik7CkBAIC02MTcsNiArNjE5LDcgQEAgY2xhc3MgSGVhcCB7CiAKICAgICBQcm90
ZWN0Q291bnRTZXQgbV9wcm90ZWN0ZWRWYWx1ZXM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hT
ZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPj4gbV9tYXJrTGlzdFNldDsKKyAgICBTZW50aW5lbExp
bmtlZExpc3Q8TWFya2VkSlNWYWx1ZVJlZkFycmF5LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxNYXJr
ZWRKU1ZhbHVlUmVmQXJyYXk+PiBtX21hcmtlZEpTVmFsdWVSZWZBcnJheXM7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8TWFjaGluZVRocmVhZHM+IG1fbWFjaGluZVRocmVhZHM7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKaW5kZXggOTQ5YjliMDkxYTlmNWEzNWNm
MDVjZTRjYWZlMjc0Mjg0MzBmMmE2ZS4uNzY1ZWE1OGFjMTBmY2Q4NGYzZmYzNzUyOGU3OWY2Yzc4
NTRlZjFlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlz
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaApAQCAtMzYs
NyArMzYsNyBAQCBjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6IHB1YmxpYyBSZWNvcmRPdmVy
ZmxvdyB7CiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gUmVjb3JkT3ZlcmZsb3c7Ci0gICAg
c3RhdGljIGNvbnN0IHNpemVfdCBpbmxpbmVDYXBhY2l0eSA9IDg7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSA4OwogICAgIHR5cGVkZWYgSGFzaFNldDxNYXJr
ZWRBcmd1bWVudEJ1ZmZlcio+IExpc3RTZXQ7CiAKICAgICAvLyBDb25zdHJ1Y3RvciBmb3IgYSBy
ZWFkLXdyaXRlIGxpc3QsIHRvIHdoaWNoIHlvdSBtYXkgYXBwZW5kIHZhbHVlcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9XVEYv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA0MzkwNzUyMTk4ZDFiNDlmNjhjYmVi
ZWEzNDQzYjczNDBjMWUzNzMwLi5lOGFjMTczYzU3NWZhMDZiOGY5ODg5ODU0YzRmZGIxMDEzODZh
MzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcK
KysrIGIvU291cmNlL1dURi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC05Nyw3ICs5
Nyw3IEBAIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVT
RURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBQUkVC
SU5ESU5HID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwg
LVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9r
ZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdt
aXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNs
cyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2Jh
bC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJv
dWdoOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1z
dWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zv
cm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1u
b3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRl
ZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3Zs
YTsKIEhFQURFUl9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikkKFdURl9JTlNU
QUxMX1BBVEhfUFJFRklYKS91c3IvbG9jYWwvaW5jbHVkZSAkKERTVFJPT1QpJChXVEZfSU5TVEFM
TF9QQVRIX1BSRUZJWCkvdXNyL2xvY2FsL2luY2x1ZGUgJChpbmhlcml0ZWQpOwogU1lTVEVNX0hF
QURFUl9TRUFSQ0hfUEFUSFMgPSAkKFNES19ESVIpJChXVEZfSU5TVEFMTF9QQVRIX1BSRUZJWCkv
dXNyL2xvY2FsL2luY2x1ZGUgJChpbmhlcml0ZWQpOwogTElCUkFSWV9TRUFSQ0hfUEFUSFMgPSAk
KFNES19ESVIpJChXVEZfSU5TVEFMTF9QQVRIX1BSRUZJWCkvdXNyL2xvY2FsL2xpYiAkKGluaGVy
aXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcCBiL1NvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwCmluZGV4IDNjNzQzMzE1ODRiZDVjYmEwZDdlODM0YjJjMmZlZDlhYjViODM1
OTQuLmNlOWZjYjBhNzFjNjI4YWM0YmNmMTU1YjgxMmE0NGRkOWVlOWUwYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCkBA
IC03MCw4ICs3MCw5IEBAIFN0cmluZyBib290U2Vzc2lvblVVSURTdHJpbmcoKQogICAgIHN0YXRp
YyBMYXp5TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBib290U2Vzc2lvblVVSUQ7CiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgW10g
ewotICAgICAgICBzaXplX3QgdXVpZExlbmd0aCA9IDM3OwotICAgICAgICBjaGFyIHV1aWRbdXVp
ZExlbmd0aF07CisgICAgICAgIGNvbnN0ZXhwciBzaXplX3QgbWF4VVVJRExlbmd0aCA9IDM3Owor
ICAgICAgICBjaGFyIHV1aWRbbWF4VVVJRExlbmd0aF07CisgICAgICAgIHNpemVfdCB1dWlkTGVu
Z3RoID0gbWF4VVVJRExlbmd0aDsKICAgICAgICAgaWYgKHN5c2N0bGJ5bmFtZSgia2Vybi5ib290
c2Vzc2lvbnV1aWQiLCB1dWlkLCAmdXVpZExlbmd0aCwgbnVsbHB0ciwgMCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIGJvb3RTZXNzaW9uVVVJRC5jb25zdHJ1Y3Qoc3RhdGljX2Nhc3Q8
Y29uc3QgY2hhcio+KHV1aWQpLCB1dWlkTGVuZ3RoIC0gMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCAzZDRjNTUzZjUwMTU4ODE0NzZlZGM5NzUz
MDJiNjY4N2JhMTBmYmU0Li40M2MxNTUzODAyODcxNmY5ODRkM2FlZDc3YjFjM2Y5ZmMwNzY1Yjc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTg4
LDcgKzg4LDcgQEAgR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gWUVTOwogR0NDX1dBUk5fVU5JTklU
SUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdD
Q19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdl
eHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlh
bGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9y
bWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRo
IC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRl
c3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1X
aW1wbGljaXQtZmFsbHRocm91Z2ggLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uOworV0FSTklO
R19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1X
Y29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5p
dC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3Bh
Y2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0
cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1
dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYSAtV25vLXVua25v
d24td2FybmluZy1vcHRpb247CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1
ZmZpeDppZGVudGlmaWVyKSk7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEw
MTMwMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcKaW5kZXggODE0YmU4M2M5ZWMwOWE1ZjMxYmU1NWM2NmM0YWJhNzU4ODE3YjI5NS4uMDA4M2Uy
YWFhYTMzOTdkNmNiODk0YWM4MTdlNGQyY2FhYjYxMjY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTg4LDcgKzg4LDcgQEAgR0ND
X1dBUk5fU0lHTl9DT01QQVJFID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9
IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9W
QVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVh
bCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10
b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAt
V21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRl
Y2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xv
YmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRo
cm91Z2ggLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uOworV0FSTklOR19DRkxBR1MgPSAtV2Fs
bCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5p
bml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2lu
Zy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXIt
YXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRp
bWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBh
cmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYSAtV25vLXVua25vd24td2FybmluZy1vcHRp
b247CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hf
VkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVy
KSk7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXgg
ODZmZGExMjk5MmZjNWU2MjA0NGQ1MDE2ZTA3MzI2OGU1NmU4YWRiZC4uY2MzN2Y4NmMyY2M3ZDYx
NjU3ZDA5NDIwNWMyNTQ2YmQ2NGVlNmU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTY0LDcgKzY0LDcgQEAgQ0xBTkdf
V0FSTl9PQkpDX0lNUExJQ0lUX1JFVEFJTl9TRUxGID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFM
SVpFRF9BVVRPUyA9IFlFUwogR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dB
Uk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTCi1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XIC1XY2Fz
dC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2Zv
cm1hdC1zZWN1cml0eSAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV3BvaW50ZXItYXJpdGgg
LVd3cml0ZS1zdHJpbmdzIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV2V4aXQtdGltZS1kZXN0cnVj
dG9yczsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVcgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNj
cmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZm9ybWF0LXNlY3VyaXR5IC1XbWlz
c2luZy1mb3JtYXQtYXR0cmlidXRlIC1XcG9pbnRlci1hcml0aCAtV3dyaXRlLXN0cmluZ3MgLVdu
by11bnVzZWQtcGFyYW1ldGVyIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XdmxhOwogCiBFTkdJ
TkVFUklOR19CVUlMRF9ERUZJTkVTID0gJChFTkdJTkVFUklOR19CVUlMRF9ERUZJTkVTXyQoRU5H
SU5FRVJJTkdfQlVJTEQpKTsKIEVOR0lORUVSSU5HX0JVSUxEX0RFRklORVNfMSA9IEVOR0lORUVS
SU5HX0JVSUxEPTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcK
aW5kZXggNzhkMWM3NzU5M2FlMDk4MzYxNGU0YTBjMmExZWU1MWE5NmU2MWQ5YS4uZDZhOTEwOWE1
OTA4N2ZjYmFhNWI4NjFhMGQ0ZjM5YzM1M2RmOWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtODYsNyArODYsNyBAQCBHQ0NfV0FSTl9VTlVTRURf
RlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBPVEhFUl9N
SUdGTEFHUyA9IC1GJChCVUlMVF9QUk9EVUNUU19ESVIpOwogUFJFQklORElORyA9IE5POwotV0FS
TklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRz
IC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdC1zZWN1
cml0eSAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9y
ZXR1cm4gLVduby11bnVzZWQtcGFyYW1ldGVyIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1x
dWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJh
LXRva2VucyAtV2Zvcm1hdC1zZWN1cml0eSAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0
dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVduby11bnVzZWQtcGFyYW1ldGVyIC1XcGFja2Vk
IC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5n
cyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xv
Z2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1XdmxhOwogCiBUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOwogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCAyMDIzMTI5MTI3MjQz
ZDlkMzYxYjQ3M2IxYTVhZTZlNWVmMzFiNTAxLi5kYThiZTlmNmExZmFhYWZlMzdhNWJjMjE2ZWU1
OTFkYzI1YjY1YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTg4LDcgKzg4LDcgQEAgQ0xBTkdfV0FSTl9ET0NV
TUVOVEFUSU9OX0NPTU1FTlRTID0gWUVTOwogT1RIRVJfTUlHRkxBR1MgPSAtRiQoQlVJTFRfUFJP
RFVDVFNfRElSKTsKIENMQU5HX0FOQUxZWkVSX0xPQ0FMSVpBQklMSVRZX05PTkxPQ0FMSVpFRCA9
IFlFUzsKIFBSRUJJTkRJTkcgPSBOTzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAt
V2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQg
LVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZv
cm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAt
V3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRl
LXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1X
dGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZM
QUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRp
dGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkgLVdp
bml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1X
bm8tdW51c2VkLXBhcmFtZXRlciAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQt
ZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdn
bG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxs
dGhyb3VnaCAtV3ZsYTsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4
OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZyBiL1NvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggYzAw
MGZiNjIxN2MzMGU1NmVmOTY1ZjRkZThhY2NlZDM0YTQwZjU5NC4uYjQwNDk3MGE2YzM0N2M1YzA4
ZTMzZmExOWRjNzlhZTg4YzQ0YThmNCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvYm1hbGxvYy9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCkBAIC05NCw3ICs5NCw3IEBAIEdDQ19XQVJOX1VOSU5JVElBTElaRURf
QVVUT1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9V
TlVTRURfVkFSSUFCTEUgPSBZRVM7CiBQUkVCSU5ESU5HID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9
IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25h
bC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdt
aXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9p
bnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4
aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwt
Y29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0
aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1m
b3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJp
dGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUt
ZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUg
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01B
Sk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGUzOTg3MzI2YWMyM2ZkOWViYTIzN2M2NDJhOGMyYTk4OTEwZjIyZWMuLmEx
YjZkNDNkMzFiMjk1NzNmNGIzYjYyMGVlMzcxZGU0MWE5ZjVkYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0w
My0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNob3Vs
ZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb250ZW50RXh0ZW5zaW9uVGVzdGVyL0Nv
bmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICogbGxkYi9sbGRiV2ViS2l0VGVz
dGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisKIDIwMjAtMDMtMTMgIFNhYW0gQmFy
YXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUHVsbCBpbiBKUyB0ZXN0cyBmcm9t
ICJJbnRlcm5hbCIgd2hlbiB0aGVyZSBhcmUgIkludGVybmFsIiB0ZXN0cyBpbiBhbiBhZGphY2Vu
dCBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NvbnRlbnRFeHRlbnNpb25UZXN0ZXIvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1Rvb2xzL0NvbnRlbnRFeHRlbnNpb25UZXN0ZXIv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCBjMTY3ZGQzMjQ1MTQwYmQ4MmI2ZDU3
MTM5N2ExMWFiNDQyYmZkMjE0Li42N2U0Nzc1NGFlNTI1ODAwOGM2YmNjNzNiMjFlMWNjMGZiYzY3
YTRiIDEwMDY0NAotLS0gYS9Ub29scy9Db250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWcKKysrIGIvVG9vbHMvQ29udGVudEV4dGVuc2lvblRlc3Rlci9Db25m
aWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC02NSw3ICs2NSw3IEBAIEdDQ19XQVJOX1VOREVD
TEFSRURfU0VMRUNUT1IgPSBZRVM7CiBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVT
OwogR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklB
QkxFID0gWUVTOwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1X
Y2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdt
aXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9p
bnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4
aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwt
Y29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9y
bWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5v
cmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVm
IC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1
Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1Xdmxh
OwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikp
OwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CmRpZmYgLS1naXQg
YS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCmluZGV4IDkxNGE5MjE4NDE3YjNlZmI1MmZmNTIxMTZmODMxNGFiNjNhNTZjNDYuLjJlOTc1
NGFiNzRmYzg5OTNiNTAwZTliNTg2ZTNjMDE5ZWM0ZGZhZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xs
ZGIvbGxkYldlYktpdFRlc3Rlci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1Rv
b2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBA
IC04Miw3ICs4Miw3IEBAIEdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7CiBHQ0Nf
V0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9O
ID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9
IC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIg
LVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJu
IC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3Jp
dGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMg
LVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOworV0FSTklOR19D
RkxBR1MgPSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zv
cm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1u
b3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRl
ZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3Zs
YTsKIAogSEVBREVSX1NFQVJDSF9QQVRIUyA9ICR7QlVJTFRfUFJPRFVDVFNfRElSfS91c3IvbG9j
YWwvaW5jbHVkZTsKIApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCAwZjA5MzA3NzNkZWUxZGZjMzljMGNlZjY3
YjJiNGE4ODM2NzYwN2VhLi5mNDJkZWZhM2I0ZTQzNjgzMDBkYjNiMzBkMTgwMzVkM2I0MjdjYzAz
IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTEzICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFi
bGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIE1lZGlhVGltZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgor
CiAyMDIwLTAyLTE3ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAg
ICAgICAgW0NNYWtlXSBVc2UgYnVpbHRpbiB0YXJnZXRzCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5j
ZVRlc3RzL01lZGlhVGltZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvUGVyZm9ybWFu
Y2VUZXN0cy9NZWRpYVRpbWUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCAzNWMw
ODg5ZjhhNWI4YzYyZDAyZmU5NTcxMzI3MjY3ZDU1NzM3MmJiLi4xMDExNTZhZGZlY2NhNDIyOWVl
ODJjNWYyYzIwMmM1OGZhYTU0ZWU4IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL01lZGlh
VGltZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMv
TWVkaWFUaW1lL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTgyLDcgKzgyLDcgQEAg
R0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5D
VElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKIFBSRUJJTkRJTkcg
PSBOTzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXIt
c3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2lu
Zy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXIt
YXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRp
bWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBh
cmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRy
YSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0y
IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVy
biAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dy
aXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3Jz
IC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIEhF
QURFUl9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvdXNyL2xvY2FsL2luY2x1
ZGUgJChEU1RST09UKS91c3IvbG9jYWwvaW5jbHVkZSBpY3UgJChIRUFERVJfU0VBUkNIX1BBVEhT
KTsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393574</attachid>
            <date>2020-03-13 22:46:12 -0700</date>
            <delta_ts>2020-03-13 23:22:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209043-20200313224612.patch</filename>
            <type>text/plain</type>
            <size>47059</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZGRkNzFlZjI0ZmFlMzEyZTNhNDBiMGE2ZjMwYWVjYmE1Y2JhOWQ0Li5mNWNhN2I5ZDYwZjI5Y2Rm
YzU2MTgwNzczNDY3M2YxYzMzMmRjMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBkaXNhYmxlcyB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkuIElmIHRoaXMgZmVhdHVyZSB1
c2VzIHVzZXItaW5wdXQsIHVzZXIgY2FuCisgICAgICAgIGNvbnRyb2wgdGhlIHN0YWNrIGhlaWdo
dCBjb25zdW1lZCBieSBDKysgY29kZS4gVGhpcyBwYXRjaCBhdm9pZHMgdXNpbmcgVkxBLiBUbyBh
Y2hpZXZlIHRoYXQsCisKKyAgICAgICAgICAgIDEuIFdlIHNldCBgLVd2bGFgIHdhcm5pbmcgb3B0
aW9uIHRvIHRyaWdnZXIgd2FybmluZ3MgaWYgaXQgaXMgdXNlZC4KKyAgICAgICAgICAgIDIuIElu
dHJvZHVjZSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkgZm9yIEFQSS4gVGhpcyByZXBsYWNlcyBgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbdmFyaWFibGVMZW5ndGhdYCB1c2UgY2FzZS4KKyAgICAgICAgICAg
ICAgIE1hcmtlZEpTVmFsdWVSZWZBcnJheSByZWdpc3RlcnMgaXRzZWxmIHRvIEpTQyBHQyBzbyB0
aGF0IEdDIGNhbiBtYXJrIGl0IGFzIGEgc3Ryb25nIHJvb3QuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY3VycmVudEFyZ3VtZW50c10pOgorICAg
ICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAoLVtKU1ZhbHVlIGNhbGxXaXRoQXJndW1l
bnRzOl0pOgorICAgICAgICAoLVtKU1ZhbHVlIGNvbnN0cnVjdFdpdGhBcmd1bWVudHM6XSk6Cisg
ICAgICAgICgtW0pTVmFsdWUgaW52b2tlTWV0aG9kOndpdGhBcmd1bWVudHM6XSk6CisgICAgICAg
ICogQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpN
YXJrZWRKU1ZhbHVlUmVmQXJyYXk6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgIChK
U0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheTo6fk1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAg
ICAgIChKU0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheTo6dmlzaXRBZ2dyZWdhdGUpOgorICAgICAg
ICAqIEFQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaDogQWRkZWQuCisgICAgICAgICogQVBJL3Rl
c3RzL21pbmlkb20uYzoKKyAgICAgICAgKHByaW50KToKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVz
dGFwaS5jcHA6CisgICAgICAgIChUZXN0QVBJOjptYXJrZWRKU1ZhbHVlQXJyYXlBbmRHQyk6Cisg
ICAgICAgICh0ZXN0Q0FQSVZpYUNwcCk6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZzoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6Cisg
ICAgICAgIChKU0M6OkhlYXA6OmFkZENvcmVDb25zdHJhaW50cyk6CisgICAgICAgIChKU0M6Okhl
YXA6OmFkZG1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgICogaGVhcC9IZWFwLmg6Cisg
ICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5oOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6
YWN0aXZlV2Vha1NldHNCZWdpbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNl
OjphY3RpdmVXZWFrU2V0c0VuZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNl
OjpuZXdBY3RpdmVXZWFrU2V0c0JlZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2Vk
U3BhY2U6Om5ld0FjdGl2ZVdlYWtTZXRzRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0FyZ0xpc3QuaDoKKwogMjAyMC0wMy0xMyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBjb25maWdTaXplVG9Qcm90ZWN0IHNob3VsZCBiZSAxNktCCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJh
YzRmYzBmYzVkMzJlYjE4Yjc1ZTRmZGI5ZjY5YzM1Y2JkOGQ5NTUuLjk5NjBhNDQ3Yzg1ZGE5Mjhj
YzU0N2QzNTgxYmM0Zjg3ZDUxMTY5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMTMg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90
IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoK
KyAgICAgICAgKiB3dGYvVVVJRC5jcHA6CisgICAgICAgIChXVEY6OmJvb3RTZXNzaW9uVVVJRFN0
cmluZyk6CisKIDIwMjAtMDMtMTMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29jb2FdIFB1c2ggYXBwbGljYXRpb25TREtWZXJzaW9uKCkgZG93
biBmcm9tIFdlYkNvcmUgaW50byBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZjhjMmNhNzE5YjNlNDM4MjFh
ZWQ4NDE1ZGM4NTUyMmVhOGU1YTA4Li45YmQ2NTBiMzY4YTcyOWE3NTdjZDEzYmZlYTkyY2FmMTRi
OWEzMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMTMgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJp
YWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAgICAgICAg
KiBjcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorCiAyMDIwLTAzLTEzICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFNWR01hdHJpeCBzaG91bGQgaGF2
ZSB0aGUgYWNjZXNzIHJpZ2h0IG9mIGl0cyBvd25lciBTVkdUcmFuc2Zvcm0gYWx3YXlzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwppbmRleCAwZmNhMWY3ZmRlMzUwNzZlYWJhNjY4NWNkNTFjNzllZmUyNGI2OTBm
Li5iZDY5MmU3NjlmZjI5ZjY1NzZiZDgzOThjMzg2YzAxMmMzODZhMmI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1h
cnJheSAoVkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA5MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorCiAyMDIwLTAzLTEyICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIF9BWFNBcHBs
aWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkIHNob3VsZCBub3QgYmUgY2FsbGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwppbmRleCBjM2Y1MTdkMzU0YjlmZGM4ZmY4YmI5MzRlMzRiNDNiZGY5MGQy
OGFjLi43ZGRjMDIzNzFiZDY5YzlkZWJlODk4Zjg4ZTE2MGUzNmUxOTlhMWY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxl
LWxlbmd0aC1hcnJheSAoVkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorCiAyMDIwLTAzLTEw
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIyNTM3NTkpOiBXZWIgSW5zcGVjdG9yOiBBdWRpdHM6IHJlc3VsdHMgZm9sZGVyIGRvZXNuJ3Qg
Z2V0IHNlbGVjdGVkIGJ5IHByZXNzaW5nIEFycm93IERvd24ga2V5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4ZjRl
ZjA0NWExZmNjMzdmOGVjZWE4YjkwNzE0MDAyMjhhOWExNTEuLjVmNGVjYzQyZDM1NTgwN2JkZTM2
OWQ4MWEyMzA4MzAyYTRkOTVmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMt
MTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQg
bm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZzoKKwogMjAyMC0wMy0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFdLV2ViVmlldy5fbmVnb3RpYXRlZExlZ2FjeVRMUyBzaG91bGQgYmUg
Y29ycmVjdCBhZnRlciBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwppbmRleCBjMWFlODdjMThhN2VlYWYwMzUzZWM4MzMxMDY0OWViMjFhMTYzZWEzLi5j
NjAwNTMyZDQ2NGVlODc3YjMxNWI2Mzg0NDU2N2FlZmI1NDFhYTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1s
ZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAyMC0wMy0xMiAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDb3JyZWN0IHBy
ZWZlcmVuY2UgaGFuZGxpbmcgYW5kIG5hbWluZyBjb252ZW50aW9ucyBpbiBBcHBCb3VuZCBicm93
c2luZyBwcmVmZXJlbmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nIGIv
U291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCmluZGV4IGU1Mzc4N2I4OTBkYmMzODljMTQ0MmNmMjgx
ZDdlYzVlZTcwNTljYjEuLmZjYTJiNmRlMjBiOTY1ZTE4NzQ4YjAwZDUwMzJjMDQ0Y2VhOTRlY2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvYm1hbGxv
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxl
bmd0aC1hcnJheSAoVkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorCiAyMDIwLTAzLTEzICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIGNvbmZpZ1NpemVUb1By
b3RlY3Qgc2hvdWxkIGJlIDE2S0IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQubW0K
aW5kZXggOTEyY2ViM2U5ZWMxYzFhZjdkNjVmMTJhMWUwMDIxMDY4MTI0MmFjMC4uYjg1M2I4MWI3
YjcyNjE4NWNlNTYyNTE1M2Y3MWFiYmVlMjhhMDljYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHQubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NvbnRleHQubW0KQEAgLTIzMiwxMCArMjMyLDEwIEBAICsgKE5TQXJyYXkgKiljdXJyZW50
QXJndW1lbnRzCiAgICAgaWYgKCFlbnRyeS0+Y3VycmVudEFyZ3VtZW50cykgewogICAgICAgICBK
U0NvbnRleHQgKmNvbnRleHQgPSBbSlNDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKICAgICAgICAg
c2l6ZV90IGNvdW50ID0gZW50cnktPmFyZ3VtZW50Q291bnQ7Ci0gICAgICAgIEpTVmFsdWUgKiBh
cmd1bWVudEFycmF5W2NvdW50XTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9MDsgaSA8IGNvdW50
OyArK2kpCi0gICAgICAgICAgICBhcmd1bWVudEFycmF5W2ldID0gW0pTVmFsdWUgdmFsdWVXaXRo
SlNWYWx1ZVJlZjplbnRyeS0+YXJndW1lbnRzW2ldIGluQ29udGV4dDpjb250ZXh0XTsKLSAgICAg
ICAgZW50cnktPmN1cnJlbnRBcmd1bWVudHMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czphcmd1bWVudEFycmF5IGNvdW50OmNvdW50XTsKKyAgICAgICAgTlNNdXRhYmxlQXJyYXkg
KmFyZ3VtZW50cyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y291
bnRdOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAg
ICAgICBbYXJndW1lbnRzIHNldE9iamVjdDpbSlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmVu
dHJ5LT5hcmd1bWVudHNbaV0gaW5Db250ZXh0OmNvbnRleHRdIGF0SW5kZXhlZFN1YnNjcmlwdDpp
XTsKKyAgICAgICAgZW50cnktPmN1cnJlbnRBcmd1bWVudHMgPSBhcmd1bWVudHM7CiAgICAgfQog
CiAgICAgcmV0dXJuIGVudHJ5LT5jdXJyZW50QXJndW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZhbHVlLm1tCmluZGV4IGUxOGE1Y2Y3NzcwNDY4YzZlZDA1OTc4YjkwZGNiZDM3YzdjODRj
OWEuLmY2MGQxZmIzM2U0NmM1MzczM2MwOTAzMTIzOWQ4ZjY5YjRhYjEzZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVmFsdWUubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgIkpTVmFs
dWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiSlNWYWx1ZVByaXZhdGUuaCIKICNpbXBvcnQgIkpTV3Jh
cHBlck1hcC5oIgorI2ltcG9ydCAiTWFya2VkSlNWYWx1ZVJlZkFycmF5LmgiCiAjaW1wb3J0ICJP
YmpjUnVudGltZUV4dHJhcy5oIgogI2ltcG9ydCAiSlNDSW5saW5lcy5oIgogI2ltcG9ydCAiSlND
SlNWYWx1ZS5oIgpAQCAtNDcyLDggKzQ3MywxMiBAQCAtIChCT09MKWlzSW5zdGFuY2VPZjooaWQp
dmFsdWUKIAogLSAoSlNWYWx1ZSAqKWNhbGxXaXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1l
bnRBcnJheQogeworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlMo
W19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0pOworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOworICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CisKICAgICBO
U1VJbnRlZ2VyIGFyZ3VtZW50Q291bnQgPSBbYXJndW1lbnRBcnJheSBjb3VudF07Ci0gICAgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbYXJndW1lbnRDb3VudF07CisgICAgSlNDOjpNYXJrZWRKU1ZhbHVl
UmVmQXJyYXkgYXJndW1lbnRzKFtfY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBhcmd1bWVu
dENvdW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXJndW1lbnRDb3VudDsgKytp
KQogICAgICAgICBhcmd1bWVudHNbaV0gPSBvYmplY3RUb1ZhbHVlKF9jb250ZXh0LCBbYXJndW1l
bnRBcnJheSBvYmplY3RBdEluZGV4OmldKTsKIApAQCAtNDgyLDcgKzQ4Nyw3IEBAIC0gKEpTVmFs
dWUgKiljYWxsV2l0aEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50QXJyYXkKICAgICBpZiAo
ZXhjZXB0aW9uKQogICAgICAgICByZXR1cm4gW19jb250ZXh0IHZhbHVlRnJvbU5vdGlmeUV4Y2Vw
dGlvbjpleGNlcHRpb25dOwogCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxB
c0Z1bmN0aW9uKFtfY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBvYmplY3QsIDAsIGFyZ3Vt
ZW50Q291bnQsIGFyZ3VtZW50cywgJmV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZVJlZiByZXN1bHQg
PSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFtfY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBv
YmplY3QsIDAsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50cy5kYXRhKCksICZleGNlcHRpb24pOwog
ICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgIHJldHVybiBbX2NvbnRleHQgdmFsdWVGcm9tTm90
aWZ5RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAKQEAgLTQ5MSw4ICs0OTYsMTIgQEAgLSAoSlNWYWx1
ZSAqKWNhbGxXaXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJheQogCiAtIChKU1Zh
bHVlICopY29uc3RydWN0V2l0aEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50QXJyYXkKIHsK
KyAgICBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTKFtfY29udGV4dCBK
U0dsb2JhbENvbnRleHRSZWZdKTsKKyAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodm0pOworCiAgICAgTlNVSW50ZWdlciBh
cmd1bWVudENvdW50ID0gW2FyZ3VtZW50QXJyYXkgY291bnRdOwotICAgIEpTVmFsdWVSZWYgYXJn
dW1lbnRzW2FyZ3VtZW50Q291bnRdOworICAgIEpTQzo6TWFya2VkSlNWYWx1ZVJlZkFycmF5IGFy
Z3VtZW50cyhbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJndW1lbnRDb3VudCk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFyZ3VtZW50Q291bnQ7ICsraSkKICAgICAgICAg
YXJndW1lbnRzW2ldID0gb2JqZWN0VG9WYWx1ZShfY29udGV4dCwgW2FyZ3VtZW50QXJyYXkgb2Jq
ZWN0QXRJbmRleDppXSk7CiAKQEAgLTUwMSw3ICs1MTAsNyBAQCAtIChKU1ZhbHVlICopY29uc3Ry
dWN0V2l0aEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50QXJyYXkKICAgICBpZiAoZXhjZXB0
aW9uKQogICAgICAgICByZXR1cm4gW19jb250ZXh0IHZhbHVlRnJvbU5vdGlmeUV4Y2VwdGlvbjpl
eGNlcHRpb25dOwogCi0gICAgSlNPYmplY3RSZWYgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXNDb25z
dHJ1Y3RvcihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgb2JqZWN0LCBhcmd1bWVudENv
dW50LCBhcmd1bWVudHMsICZleGNlcHRpb24pOworICAgIEpTT2JqZWN0UmVmIHJlc3VsdCA9IEpT
T2JqZWN0Q2FsbEFzQ29uc3RydWN0b3IoW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIG9i
amVjdCwgYXJndW1lbnRDb3VudCwgYXJndW1lbnRzLmRhdGEoKSwgJmV4Y2VwdGlvbik7CiAgICAg
aWYgKGV4Y2VwdGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4dCB2YWx1ZUZyb21Ob3RpZnlF
eGNlcHRpb246ZXhjZXB0aW9uXTsKIApAQCAtNTEwLDggKzUxOSwxMiBAQCAtIChKU1ZhbHVlICop
Y29uc3RydWN0V2l0aEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50QXJyYXkKIAogLSAoSlNW
YWx1ZSAqKWludm9rZU1ldGhvZDooTlNTdHJpbmcgKiltZXRob2Qgd2l0aEFyZ3VtZW50czooTlNB
cnJheSAqKWFyZ3VtZW50cwogeworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IHRvSlMoW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0pOworICAgIEpTQzo6Vk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7
CisKICAgICBOU1VJbnRlZ2VyIGFyZ3VtZW50Q291bnQgPSBbYXJndW1lbnRzIGNvdW50XTsKLSAg
ICBKU1ZhbHVlUmVmIGFyZ3VtZW50QXJyYXlbYXJndW1lbnRDb3VudF07CisgICAgSlNDOjpNYXJr
ZWRKU1ZhbHVlUmVmQXJyYXkgYXJndW1lbnRBcnJheShbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0
UmVmXSwgYXJndW1lbnRDb3VudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFyZ3Vt
ZW50Q291bnQ7ICsraSkKICAgICAgICAgYXJndW1lbnRBcnJheVtpXSA9IG9iamVjdFRvVmFsdWUo
X2NvbnRleHQsIFthcmd1bWVudHMgb2JqZWN0QXRJbmRleDppXSk7CiAKQEAgLTUyOSw3ICs1NDIs
NyBAQCAtIChKU1ZhbHVlICopaW52b2tlTWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZCB3aXRoQXJn
dW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRzCiAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAg
cmV0dXJuIFtfY29udGV4dCB2YWx1ZUZyb21Ob3RpZnlFeGNlcHRpb246ZXhjZXB0aW9uXTsKIAot
ICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbX2NvbnRleHQg
SlNHbG9iYWxDb250ZXh0UmVmXSwgb2JqZWN0LCB0aGlzT2JqZWN0LCBhcmd1bWVudENvdW50LCBh
cmd1bWVudEFycmF5LCAmZXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2Jq
ZWN0Q2FsbEFzRnVuY3Rpb24oW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIG9iamVjdCwg
dGhpc09iamVjdCwgYXJndW1lbnRDb3VudCwgYXJndW1lbnRBcnJheS5kYXRhKCksICZleGNlcHRp
b24pOwogICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgIHJldHVybiBbX2NvbnRleHQgdmFsdWVG
cm9tTm90aWZ5RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvTWFya2VkSlNWYWx1ZVJlZkFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvTWFya2VkSlNWYWx1ZVJlZkFycmF5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOWE2Yzky
MzUyMjRlNTIwMmE4M2ZkZTk5NjlhNzFjMjM1NGE5NzY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWFya2VkSlNWYWx1ZVJlZkFycmF5LmgiCisK
KyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitNYXJrZWRKU1ZhbHVlUmVmQXJy
YXk6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheShKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgdW5z
aWduZWQgc2l6ZSkKKyAgICA6IG1fc2l6ZShzaXplKQoreworICAgIGlmIChtX3NpemUgPiBNYXJr
ZWRBcmd1bWVudEJ1ZmZlcjo6aW5saW5lQ2FwYWNpdHkpIHsKKyAgICAgICAgbV9idWZmZXIgPSBC
dWZmZXJVbmlxdWVQdHI6OmNyZWF0ZShtX3NpemUpOworICAgICAgICB0b0pTKGNvbnRleHQpLT52
bSgpLmhlYXAuYWRkbWFya2VkSlNWYWx1ZVJlZkFycmF5KHRoaXMpOworICAgICAgICBBU1NFUlQo
aXNPbkxpc3QoKSk7CisgICAgfQorfQorCitNYXJrZWRKU1ZhbHVlUmVmQXJyYXk6On5NYXJrZWRK
U1ZhbHVlUmVmQXJyYXkoKQoreworICAgIGlmIChpc09uTGlzdCgpKQorICAgICAgICByZW1vdmUo
KTsKK30KKwordm9pZCBNYXJrZWRKU1ZhbHVlUmVmQXJyYXk6OnZpc2l0QWdncmVnYXRlKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTVmFsdWVSZWYqIGJ1ZmZlciA9IGRhdGEoKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBtX3NpemU7ICsraW5kZXgpIHsKKyAg
ICAgICAgSlNWYWx1ZVJlZiB2YWx1ZSA9IGJ1ZmZlcltpbmRleF07CisjaWYgIUNQVShBRERSRVNT
NjQpCisgICAgICAgIEpTQ2VsbCoganNDZWxsID0gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihj
b25zdF9jYXN0PE9wYXF1ZUpTVmFsdWUqPih2YWx1ZSkpOworICAgICAgICBpZiAoIWpzQ2VsbCkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVk
KGpzQ2VsbCk7IC8vIFdlIHNob3VsZCBtYXJrIHRoZSB3cmFwcGVyIGl0c2VsZiB0byBrZWVwIEpT
VmFsdWVSZWYgbGl2ZS4KKyNlbHNlCisgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQo
Yml0d2lzZV9jYXN0PEpTVmFsdWU+KHZhbHVlKSk7CisjZW5kaWYKKyAgICB9Cit9CisKK30gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9NYXJr
ZWRKU1ZhbHVlUmVmQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvTWFya2VkSlNW
YWx1ZVJlZkFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkZTUwZTIwODI3OTcwNmY0NmE4YTNlMmI1ZDE2
YWVhYTc0NzMzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
TWFya2VkSlNWYWx1ZVJlZkFycmF5LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
QXJnTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3JiaWRIZWFwQWxsb2NhdGlvbi5oPgorI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25tb3ZhYmxlLmg+CisKK25h
bWVzcGFjZSBKU0MgeworCitjbGFzcyBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkgZmluYWwgOiBwdWJs
aWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8TWFya2VkSlNWYWx1ZVJlZkFycmF5PiB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTWFya2VkSlNWYWx1ZVJlZkFycmF5KTsKKyAgICBXVEZfTUFLRV9O
T05NT1ZBQkxFKE1hcmtlZEpTVmFsdWVSZWZBcnJheSk7CisgICAgV1RGX0ZPUkJJRF9IRUFQX0FM
TE9DQVRJT047CitwdWJsaWM6CisgICAgdXNpbmcgQnVmZmVyVW5pcXVlUHRyID0gQ2FnZWRVbmlx
dWVQdHI8R2lnYWNhZ2U6OkpTVmFsdWUsIEpTVmFsdWVSZWY+OworICAgIHN0YXRpYyBjb25zdGV4
cHIgc2l6ZV90IGlubGluZUNhcGFjaXR5ID0gTWFya2VkQXJndW1lbnRCdWZmZXI6OmlubGluZUNh
cGFjaXR5OworCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgTWFya2VkSlNWYWx1ZVJlZkFycmF5KEpT
R2xvYmFsQ29udGV4dFJlZiwgdW5zaWduZWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5NYXJr
ZWRKU1ZhbHVlUmVmQXJyYXkoKTsKKworICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4g
bV9zaXplOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fc2l6ZTsgfQor
CisgICAgSlNWYWx1ZVJlZiYgb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gZGF0
YSgpW2luZGV4XTsgfQorCisgICAgY29uc3QgSlNWYWx1ZVJlZiogZGF0YSgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxNYXJrZWRKU1ZhbHVlUmVmQXJyYXkqPih0aGlz
KS0+ZGF0YSgpOworICAgIH0KKworICAgIEpTVmFsdWVSZWYqIGRhdGEoKQorICAgIHsKKyAgICAg
ICAgaWYgKG1fYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIG1fYnVmZmVyLmdldChtX3NpemUp
OworICAgICAgICByZXR1cm4gbV9pbmxpbmVCdWZmZXI7CisgICAgfQorCisgICAgdm9pZCB2aXNp
dEFnZ3JlZ2F0ZShTbG90VmlzaXRvciYpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1fc2l6
ZTsKKyAgICBKU1ZhbHVlUmVmIG1faW5saW5lQnVmZmVyW2lubGluZUNhcGFjaXR5XSB7IH07Cisg
ICAgQnVmZmVyVW5pcXVlUHRyIG1fYnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL21pbmlkb20uYyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvbWluaWRvbS5jCmluZGV4IDZlYmIzOTlhYzBi
OTg1MThhMTQzMTU2NGVmMDViOThiZTdhMGY1YjEuLmY0YTA3NGM3YjAwNjQwMTViOTM0MGMxYTg1
MDUzMmRiYjc0ZTBjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvbWluaWRvbS5jCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvbWluaWRv
bS5jCkBAIC04OCwxMCArODgsMTEgQEAgc3RhdGljIEpTVmFsdWVSZWYgcHJpbnQoSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNPYmplY3RSZWYgdGgKICAgICBpZiAo
YXJndW1lbnRDb3VudCA+IDApIHsKICAgICAgICAgSlNTdHJpbmdSZWYgc3RyaW5nID0gSlNWYWx1
ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CiAgICAgICAg
IHNpemVfdCBudW1DaGFycyA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShzdHJp
bmcpOwotICAgICAgICBjaGFyIHN0cmluZ1VURjhbbnVtQ2hhcnNdOworICAgICAgICBjaGFyKiBz
dHJpbmdVVEY4ID0gKGNoYXIqKW1hbGxvYyhudW1DaGFycyk7CiAgICAgICAgIEpTU3RyaW5nR2V0
VVRGOENTdHJpbmcoc3RyaW5nLCBzdHJpbmdVVEY4LCBudW1DaGFycyk7CiAgICAgICAgIHByaW50
ZigiJXNcbiIsIHN0cmluZ1VURjgpOwogICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc3RyaW5nKTsK
KyAgICAgICAgZnJlZShzdHJpbmdVVEY4KTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaS5jcHAKaW5kZXggMmE5Zjg2YWE0ZWYxNzE0ZjZjNTMwYzU5ZGUzYjI1ZGJmZGUy
ZGQ1ZC4uZTljNWJjZjcxNTU3ODFmNDE4ZWYyZjg5NzU1OWIxYWU3ZDlhMGI4NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dElubGluZXMuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk1hcmtlZEpTVmFs
dWVSZWZBcnJheS5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0UmVmUHJp
dmF0ZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmUHJpdmF0ZS5oPgpA
QCAtNDIsNiArNDMsNyBAQAogCiBleHRlcm4gIkMiIHZvaWQgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZygpOwogZXh0ZXJuICJDIiBpbnQgdGVzdENBUElWaWFDcHAoY29uc3QgY2hhciogZmlsdGVyKTsK
K2V4dGVybiAiQyIgdm9pZCBKU1N5bmNocm9ub3VzR2FyYmFnZUNvbGxlY3RGb3JEZWJ1Z2dpbmco
SlNDb250ZXh0UmVmKTsKIAogY2xhc3MgQVBJU3RyaW5nIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShBUElTdHJpbmcpOwpAQCAtMTQ0LDYgKzE0Niw3IEBAIGNsYXNzIFRlc3RBUEkgewogICAg
IHZvaWQgcHJvbWlzZVVuaGFuZGxlZFJlamVjdGlvbkZyb21VbmhhbmRsZWRSZWplY3Rpb25DYWxs
YmFjaygpOwogICAgIHZvaWQgcHJvbWlzZUVhcmx5SGFuZGxlZFJlamVjdGlvbnMoKTsKICAgICB2
b2lkIHRvcENhbGxGcmFtZUFjY2VzcygpOworICAgIHZvaWQgbWFya2VkSlNWYWx1ZUFycmF5QW5k
R0MoKTsKIAogICAgIGludCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBtX2ZhaWxlZDsgfQogCkBA
IC02MjAsNiArNjIzLDMzIEBAIHZvaWQgVGVzdEFQSTo6dG9wQ2FsbEZyYW1lQWNjZXNzKCkKICAg
ICB9CiB9CiAKK3ZvaWQgVGVzdEFQSTo6bWFya2VkSlNWYWx1ZUFycmF5QW5kR0MoKQoreworICAg
IGF1dG8gdGVzdE1hcmtlZEpTVmFsdWVBcnJheSA9IFsmXSh1bnNpZ25lZCBjb3VudCkgeworICAg
ICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSB0b0pTKGNvbnRleHQpOworICAgICAgICBKU0M6OkpT
TG9ja0hvbGRlciBsb2NrZXIoZ2xvYmFsT2JqZWN0LT52bSgpKTsKKyAgICAgICAgSlNDOjpNYXJr
ZWRKU1ZhbHVlUmVmQXJyYXkgdmFsdWVzKGNvbnRleHQsIGNvdW50KTsKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgICAg
IFN0cmluZyB0YXJnZXQgPSBtYWtlU3RyaW5nKCJQcmVmaXgiLCBpbmRleCk7CisgICAgICAgICAg
ICBhdXRvIGhvbGRlciA9IE9wYXF1ZUpTU3RyaW5nOjp0cnlDcmVhdGUodGFyZ2V0KTsKKyAgICAg
ICAgICAgIEpTVmFsdWVSZWYgc3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgaG9s
ZGVyLmdldCgpKTsKKyAgICAgICAgICAgIHZhbHVlc1tpbmRleF0gPSBzdHJpbmc7CisgICAgICAg
IH0KKyAgICAgICAgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVidWdnaW5nKGNvbnRl
eHQpOworICAgICAgICBib29sIG9rID0gdHJ1ZTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRl
eCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgICAgIFN0cmluZyB0YXJn
ZXQgPSBtYWtlU3RyaW5nKCJQcmVmaXgiLCBpbmRleCk7CisgICAgICAgICAgICBhdXRvIGhvbGRl
ciA9IE9wYXF1ZUpTU3RyaW5nOjp0cnlDcmVhdGUodGFyZ2V0KTsKKyAgICAgICAgICAgIEpTVmFs
dWVSZWYgc3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgaG9sZGVyLmdldCgpKTsK
KyAgICAgICAgICAgIGlmICghSlNWYWx1ZUlzU3RyaWN0RXF1YWwoY29udGV4dCwgdmFsdWVzW2lu
ZGV4XSwgc3RyaW5nKSkKKyAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICB9Cisg
ICAgICAgIGNoZWNrKG9rLCAiSGVsZCBKU1N0cmluZyBzaG91bGQgYmUgYWxpdmUgYW5kIGNvcnJl
Y3QuIik7CisgICAgfTsKKyAgICB0ZXN0TWFya2VkSlNWYWx1ZUFycmF5KDQpOworICAgIHRlc3RN
YXJrZWRKU1ZhbHVlQXJyYXkoMTAwMCk7Cit9CisKIHZvaWQgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZygpCiB7CiAgICAgSlNDOjpDb25maWc6OmNvbmZpZ3VyZUZvclRlc3RpbmcoKTsKQEAgLTY1OSw2
ICs2ODksNyBAQCBpbnQgdGVzdENBUElWaWFDcHAoY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJV
Tihwcm9taXNlVW5oYW5kbGVkUmVqZWN0aW9uKCkpOwogICAgIFJVTihwcm9taXNlVW5oYW5kbGVk
UmVqZWN0aW9uRnJvbVVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKCkpOwogICAgIFJVTihwcm9t
aXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpKTsKKyAgICBSVU4obWFya2VkSlNWYWx1ZUFycmF5
QW5kR0MoKSk7CiAKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKSB7CiAgICAgICAgIGRhdGFMb2dM
bigiRmlsdGVyZWQgYWxsIHRlc3RzOiBFUlJPUiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA3ZTAzMjY4N2U3ZTM1M2Zk
YzYxZDAyZWI3NTAwZGJlM2Q0MzQ3YzExLi43ZTYyNTNmODQ0MzY2ZjJkNmUzNDRhNmNhY2I3OGJj
MjZkYjkwYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZwpAQCAtOTgsNyArOTgsNyBAQCBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJ
T04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBDTEFOR19XQVJOX0RP
Q1VNRU5UQVRJT05fQ09NTUVOVFMgPSBZRVM7CiBQUkVCSU5ESU5HID0gTk87Ci1XQVJOSU5HX0NG
TEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25k
aXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNl
bGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2Vk
IC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5n
cyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xv
Z2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOworV0FSTklOR19DRkxBR1MgPSAt
V2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwt
dW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlz
c2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50
ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0
LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNv
bXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAogSEVBREVSX1NFQVJDSF9QQVRI
UyA9IC4gIiR7QlVJTFRfUFJPRFVDVFNfRElSfS91c3IvbG9jYWwvaW5jbHVkZSIgJChIRUFERVJf
U0VBUkNIX1BBVEhTKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YWZjZTAx
NWY5MGJiMjUxMDRjOGI2MWUxYjcyOTVjNjdjYzAxY2IxLi45ZTBlZTFkZTllMzQ3OGMwZGEzMjg1
M2NmMTZiZDIyNTcyYWMyYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTg0
OSw2ICsxODQ5LDcgQEAKIAkJRTNDNzlDQUIxREI5QTREQzAwRDFFQ0E0IC8qIERPTUpJVEVmZmVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDNzlD
QUExREI5QTRENjAwRDFFQ0E0IC8qIERPTUpJVEVmZmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQzhFRDQzMjNBMURCQ0IwMDEzMTk1OCAv
KiBJc29JbmxpbmVkSGVhcENlbGxUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0M4RUQ0MjIzQTFEQkM1MDAxMzE5NTggLyogSXNvSW5saW5lZEhl
YXBDZWxsVHlwZS5oICovOyB9OwogCQlFM0QyMzlDOTFCODI5QzFDMDBCQkVGNjcgLyogSlNNb2R1
bGVFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNEMjM5QzcxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0QzNTE1
RjI0MUI4OUQ3MDA4REMxNkUgLyogTWFya2VkSlNWYWx1ZVJlZkFycmF5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QzNTE1RDI0MUI4OUNFMDA4REMx
NkUgLyogTWFya2VkSlNWYWx1ZVJlZkFycmF5LmggKi87IH07CiAJCUUzRDg3Nzc0MUU2NUMwQTAw
MEJFOTQ1QSAvKiBCeXRlY29kZUR1bXBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNEODc3NzIxRTY1QzA4OTAwQkU5NDVBIC8qIEJ5dGVjb2RlRHVt
cGVyLmggKi87IH07CiAJCUUzRUUxMzc2MjFGQkQ0MzUwMEQ4M0M0QiAvKiBFcnJvclR5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRUUxMzc0MjFG
QkQ0MzQwMEQ4M0M0QiAvKiBFcnJvclR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0YyM0E3RjFFQ0YxM0VFMDA5NzhEOTkgLyogU25pcHBl
dFNsb3dQYXRoQ2FsbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzRjIzQTdFMUVDRjEzRTUwMDk3OEQ5OSAvKiBTbmlwcGV0U2xvd1BhdGhDYWxscy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MDI2
LDYgKzUwMjcsOCBAQAogCQlFM0QyNjQyODFEMzhDMDQyMDAwQkUxNzQgLyogQnl0ZWNvZGVHcmFw
aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlY29kZUdyYXBoLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRDI2NDI5MUQzOEMwNDIwMDBCRTE3NCAvKiBC
eXRlY29kZVJld3JpdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEJ5dGVjb2RlUmV3cml0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0Qy
NjQyQTFEMzhDMDQyMDAwQkUxNzQgLyogQnl0ZWNvZGVSZXdyaXRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlY29kZVJld3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzRDM1MTVEMjQxQjg5Q0UwMDhEQzE2RSAvKiBNYXJrZWRKU1ZhbHVlUmVm
QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFya2VkSlNWYWx1ZVJlZkFycmF5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRDM1MTVFMjQxQjg5Q0YwMDhEQzE2RSAvKiBNYXJrZWRK
U1ZhbHVlUmVmQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFya2VkSlNWYWx1ZVJlZkFy
cmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNEODc3NzExRTY1QzA4OTAw
QkU5NDVBIC8qIEJ5dGVjb2RlRHVtcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEJ5dGVjb2RlRHVtcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNEODc3NzIxRTY1QzA4OTAwQkU5NDVBIC8qIEJ5dGVjb2RlRHVtcGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVjb2RlRHVtcGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzRUUxMzc0MjFGQkQ0MzQwMEQ4M0M0QiAvKiBFcnJvclR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXJyb3JUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC02NDExLDYgKzY0MTQsOCBAQAogCQkJCTdBOTc3NEE3MjA2Qjgy
QzkwMDhEMDNEMCAvKiBKU1dlYWtWYWx1ZS5oICovLAogCQkJCTg2RTNDNjBDMTY3QkFCODcwMDZE
NzYwQSAvKiBKU1dyYXBwZXJNYXAuaCAqLywKIAkJCQk4NkUzQzYwQjE2N0JBQjg3MDA2RDc2MEEg
LyogSlNXcmFwcGVyTWFwLm1tICovLAorCQkJCUUzRDM1MTVFMjQxQjg5Q0YwMDhEQzE2RSAvKiBN
YXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwICovLAorCQkJCUUzRDM1MTVEMjQxQjg5Q0UwMDhEQzE2
RSAvKiBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaCAqLywKIAkJCQk4NkYzRUVCOTE2OENDRjc1MDA3
N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCAqLywKIAkJCQk4NkYzRUVCQTE2OENDRjc1
MDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0gKi8sCiAJCQkJODZGM0VFQjYxNjg1
NUE1QjAwNzdCOTJBIC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi8sCkBAIC05OTYzLDYgKzk5Njgs
NyBAQAogCQkJCTE0MkQ2RjA5MTM1MzlBMjgwMEIwMkU4NiAvKiBNYXJrZWRCbG9jay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY3QzVGQjgxRDg4OEEwQzAwNDRGNUUyIC8qIE1hcmtlZEJsb2NrSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNDQ4Q0IxM0ExNzZFQzAwRjVCQTFBIC8qIE1h
cmtlZEJsb2NrU2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0QzNTE1RjI0MUI4OUQ3MDA4REMx
NkUgLyogTWFya2VkSlNWYWx1ZVJlZkFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQyRjNE
QjEzOUY0QkUyMDA0OTEwMzEgLyogTWFya2VkU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
N0RGMTM1MUUyOTcwREMwMDk1OTUxQiAvKiBNYXJrZWRTcGFjZUlubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNjYwRTM4MUUwNTE3QkIwMDMxNDYyQyAvKiBNYXJraW5nQ29uc3RyYWludC5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggZTAwOTY2Njgy
YjUyMjE0NGJjNDg5MTA1OWYzOWUxYmMyODY2Y2Y5Yy4uYzdiNjM4YmM0MDExYzljZDQ0ZTE2Mjk5
N2UwOTNjOGUwNGU0MjBhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNDAsNiAr
NDAsNyBAQCBBUEkvSlNWYWx1ZVJlZi5jcHAKIEFQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAogQVBJL0pTV2Vha1ByaXZhdGUuY3BwCiBBUEkvSlNXZWFrVmFsdWUuY3BwCitBUEkvTWFy
a2VkSlNWYWx1ZVJlZkFycmF5LmNwcAogQVBJL09wYXF1ZUpTU3RyaW5nLmNwcAogCiBhc3NlbWJs
ZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAKaW5kZXggMDA3ZThiNTgwZGYwNzE5NTJiYjBhMzU2MWM1ZmNiNjQxNTMwY2E1YS4uMmIyZDc2
N2VjODExNDYzYTU5NTcxYTM1MTE0YzUwY2Q3MDVjNWExNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrLmgiCiAjaW5jbHVkZSAiTWFjaGluZVN0YWNrTWFya2VyLmgiCiAjaW5jbHVkZSAiTWFy
a1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQuaCIKKyNpbmNsdWRlICJNYXJrZWRKU1ZhbHVlUmVmQXJy
YXkuaCIKICNpbmNsdWRlICJNYXJrZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJNYXJraW5n
Q29uc3RyYWludFNldC5oIgogI2luY2x1ZGUgIlByZXZlbnRDb2xsZWN0aW9uU2NvcGUuaCIKQEAg
LTI3NTgsNiArMjc1OSwxMCBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAg
ICAgICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhzbG90VmlzaXRvciwg
Km1fbWFya0xpc3RTZXQpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBtX21hcmtlZEpT
VmFsdWVSZWZBcnJheXMuZm9yRWFjaChbJl0gKE1hcmtlZEpTVmFsdWVSZWZBcnJheSogYXJyYXkp
IHsKKyAgICAgICAgICAgICAgICBhcnJheS0+dmlzaXRBZ2dyZWdhdGUoc2xvdFZpc2l0b3IpOwor
ICAgICAgICAgICAgfSk7CisKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBTZXRSb290
TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RN
YXJrUmVhc29uOjpWTUV4Y2VwdGlvbnMpOwogICAgICAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFw
cGVuZFVuYmFycmllcmVkKG1fdm0uZXhjZXB0aW9uKCkpOwpAQCAtMzAwMiw2ICszMDA3LDEyIEBA
IHZvaWQgSGVhcDo6c2V0Qm9udXNWaXNpdG9yVGFzayhSZWZQdHI8U2hhcmVkVGFzazx2b2lkKFNs
b3RWaXNpdG9yJik+PiB0YXNrKQogICAgIG1fbWFya2luZ0NvbmRpdGlvblZhcmlhYmxlLm5vdGlm
eUFsbCgpOwogfQogCisKK3ZvaWQgSGVhcDo6YWRkbWFya2VkSlNWYWx1ZVJlZkFycmF5KE1hcmtl
ZEpTVmFsdWVSZWZBcnJheSogYXJyYXkpCit7CisgICAgbV9tYXJrZWRKU1ZhbHVlUmVmQXJyYXlz
LmFwcGVuZChhcnJheSk7Cit9CisKIHZvaWQgSGVhcDo6cnVuVGFza0luUGFyYWxsZWwoUmVmUHRy
PFNoYXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPj4gdGFzaykKIHsKICAgICB1bnNpZ25lZCBp
bml0aWFsUmVmQ291bnQgPSB0YXNrLT5yZWZDb3VudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5oCmluZGV4IDIzN2YxOGZhZGQzZWNhOTY5MDg3NzMwYmRlMzBmNTQ2ODQ1MTdiMzguLjA3YmVm
NjljMTU5Njg5OWYyNWI4MGQxMTg0NzkwNjU5YmUyMTAyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmgKQEAgLTczLDYgKzczLDcgQEAgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwog
Y2xhc3MgTWFjaGluZVRocmVhZHM7CiBjbGFzcyBNYXJrU3RhY2tBcnJheTsKIGNsYXNzIE1hcmtT
dGFja01lcmdpbmdDb25zdHJhaW50OworY2xhc3MgTWFya2VkSlNWYWx1ZVJlZkFycmF5OwogY2xh
c3MgQmxvY2tEaXJlY3Rvcnk7CiBjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlcjsKIGNsYXNzIE1h
cmtpbmdDb25zdHJhaW50OwpAQCAtMjQwLDYgKzI0MSw3IEBAIGNsYXNzIEhlYXAgewogICAgIEpT
X0VYUE9SVF9QUklWQVRFIHN0ZDo6dW5pcXVlX3B0cjxUeXBlQ291bnRTZXQ+IG9iamVjdFR5cGVD
b3VudHMoKTsKIAogICAgIEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPiYgbWFya0xpc3RT
ZXQoKTsKKyAgICB2b2lkIGFkZG1hcmtlZEpTVmFsdWVSZWZBcnJheShNYXJrZWRKU1ZhbHVlUmVm
QXJyYXkqKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZvckVh
Y2hQcm90ZWN0ZWRDZWxsKGNvbnN0IEZ1bmN0b3ImKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jdG9yPiB2b2lkIGZvckVhY2hDb2RlQmxvY2soY29uc3QgRnVuY3RvciYpOwpAQCAtNjE3LDYg
KzYxOSw3IEBAIGNsYXNzIEhlYXAgewogCiAgICAgUHJvdGVjdENvdW50U2V0IG1fcHJvdGVjdGVk
VmFsdWVzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVy
Kj4+IG1fbWFya0xpc3RTZXQ7CisgICAgU2VudGluZWxMaW5rZWRMaXN0PE1hcmtlZEpTVmFsdWVS
ZWZBcnJheSwgQmFzaWNSYXdTZW50aW5lbE5vZGU8TWFya2VkSlNWYWx1ZVJlZkFycmF5Pj4gbV9t
YXJrZWRKU1ZhbHVlUmVmQXJyYXlzOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1hY2hpbmVUaHJl
YWRzPiBtX21hY2hpbmVUaHJlYWRzOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZFNwYWNlLmgKaW5kZXggYWQzNjYyMmYxYjU3ZGQ2NmJjY2YzZDlhYTRmZjIxODYwYzMxMjcw
YS4uODkzNmU1MWE2YmU3MzY3YmY1YTFhMzk5NjA0YmYxN2RmZGM3NDlkNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCkBAIC0xNzMsMTEgKzE3Myw2IEBAIGNsYXNz
IE1hcmtlZFNwYWNlIHsKICAgICAvLyBXaGVuIHRoaXMgaXMgdHJ1ZSBpdCBtZWFucyB0aGF0IHdl
IGhhdmUgZmxpcHBlZCBidXQgdGhlIG1hcmsgYml0cyBoYXZlbid0IGNvbnZlcmdlZCB5ZXQuCiAg
ICAgYm9vbCBpc01hcmtpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzTWFya2luZzsgfQogICAgIAot
ICAgIFdlYWtTZXQqIGFjdGl2ZVdlYWtTZXRzQmVnaW4oKSB7IHJldHVybiBtX2FjdGl2ZVdlYWtT
ZXRzLmJlZ2luKCk7IH0KLSAgICBXZWFrU2V0KiBhY3RpdmVXZWFrU2V0c0VuZCgpIHsgcmV0dXJu
IG1fYWN0aXZlV2Vha1NldHMuZW5kKCk7IH0KLSAgICBXZWFrU2V0KiBuZXdBY3RpdmVXZWFrU2V0
c0JlZ2luKCkgeyByZXR1cm4gbV9uZXdBY3RpdmVXZWFrU2V0cy5iZWdpbigpOyB9Ci0gICAgV2Vh
a1NldCogbmV3QWN0aXZlV2Vha1NldHNFbmQoKSB7IHJldHVybiBtX25ld0FjdGl2ZVdlYWtTZXRz
LmVuZCgpOyB9Ci0gICAgCiAgICAgdm9pZCBkdW1wQml0cyhQcmludFN0cmVhbSYgPSBXVEY6OmRh
dGFGaWxlKCkpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBzdGQ6OmFycmF5
PHNpemVfdCwgbnVtU2l6ZUNsYXNzZXM+IHNfc2l6ZUNsYXNzRm9yU2l6ZVN0ZXA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKaW5kZXggOTQ5YjliMDkxYTlmNWEzNWNmMDVj
ZTRjYWZlMjc0Mjg0MzBmMmE2ZS4uNzY1ZWE1OGFjMTBmY2Q4NGYzZmYzNzUyOGU3OWY2Yzc4NTRl
ZjFlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaApAQCAtMzYsNyAr
MzYsNyBAQCBjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6IHB1YmxpYyBSZWNvcmRPdmVyZmxv
dyB7CiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gUmVjb3JkT3ZlcmZsb3c7Ci0gICAgc3Rh
dGljIGNvbnN0IHNpemVfdCBpbmxpbmVDYXBhY2l0eSA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSA4OwogICAgIHR5cGVkZWYgSGFzaFNldDxNYXJrZWRB
cmd1bWVudEJ1ZmZlcio+IExpc3RTZXQ7CiAKICAgICAvLyBDb25zdHJ1Y3RvciBmb3IgYSByZWFk
LXdyaXRlIGxpc3QsIHRvIHdoaWNoIHlvdSBtYXkgYXBwZW5kIHZhbHVlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9XVEYvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA0MzkwNzUyMTk4ZDFiNDlmNjhjYmViZWEz
NDQzYjczNDBjMWUzNzMwLi5lOGFjMTczYzU3NWZhMDZiOGY5ODg5ODU0YzRmZGIxMDEzODZhMzdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKKysr
IGIvU291cmNlL1dURi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC05Nyw3ICs5Nyw3
IEBAIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURf
RlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBQUkVCSU5E
SU5HID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdj
aGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5z
IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNz
aW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAt
V3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1j
b25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdo
OworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJz
Y3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1h
dD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3Jl
dHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAt
V3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0
b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsK
IEhFQURFUl9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikkKFdURl9JTlNUQUxM
X1BBVEhfUFJFRklYKS91c3IvbG9jYWwvaW5jbHVkZSAkKERTVFJPT1QpJChXVEZfSU5TVEFMTF9Q
QVRIX1BSRUZJWCkvdXNyL2xvY2FsL2luY2x1ZGUgJChpbmhlcml0ZWQpOwogU1lTVEVNX0hFQURF
Ul9TRUFSQ0hfUEFUSFMgPSAkKFNES19ESVIpJChXVEZfSU5TVEFMTF9QQVRIX1BSRUZJWCkvdXNy
L2xvY2FsL2luY2x1ZGUgJChpbmhlcml0ZWQpOwogTElCUkFSWV9TRUFSQ0hfUEFUSFMgPSAkKFNE
S19ESVIpJChXVEZfSU5TVEFMTF9QQVRIX1BSRUZJWCkvdXNyL2xvY2FsL2xpYiAkKGluaGVyaXRl
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1VVSUQuY3BwCmluZGV4IDNjNzQzMzE1ODRiZDVjYmEwZDdlODM0YjJjMmZlZDlhYjViODM1OTQu
LmNlOWZjYjBhNzFjNjI4YWM0YmNmMTU1YjgxMmE0NGRkOWVlOWUwYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1VVSUQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCkBAIC03
MCw4ICs3MCw5IEBAIFN0cmluZyBib290U2Vzc2lvblVVSURTdHJpbmcoKQogICAgIHN0YXRpYyBM
YXp5TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBib290U2Vzc2lvblVVSUQ7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgW10gewot
ICAgICAgICBzaXplX3QgdXVpZExlbmd0aCA9IDM3OwotICAgICAgICBjaGFyIHV1aWRbdXVpZExl
bmd0aF07CisgICAgICAgIGNvbnN0ZXhwciBzaXplX3QgbWF4VVVJRExlbmd0aCA9IDM3OworICAg
ICAgICBjaGFyIHV1aWRbbWF4VVVJRExlbmd0aF07CisgICAgICAgIHNpemVfdCB1dWlkTGVuZ3Ro
ID0gbWF4VVVJRExlbmd0aDsKICAgICAgICAgaWYgKHN5c2N0bGJ5bmFtZSgia2Vybi5ib290c2Vz
c2lvbnV1aWQiLCB1dWlkLCAmdXVpZExlbmd0aCwgbnVsbHB0ciwgMCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGJvb3RTZXNzaW9uVVVJRC5jb25zdHJ1Y3Qoc3RhdGljX2Nhc3Q8Y29u
c3QgY2hhcio+KHV1aWQpLCB1dWlkTGVuZ3RoIC0gMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCAzZDRjNTUzZjUwMTU4ODE0NzZlZGM5NzUzMDJi
NjY4N2JhMTBmYmU0Li40M2MxNTUzODAyODcxNmY5ODRkM2FlZDc3YjFjM2Y5ZmMwNzY1Yjc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTg4LDcg
Kzg4LDcgQEAgR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFM
SVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19X
QVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRy
YSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6
ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0
LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1X
cmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3Ry
dWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1w
bGljaXQtZmFsbHRocm91Z2ggLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uOworV0FSTklOR19D
RkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29u
ZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1z
ZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tl
ZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmlu
Z3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9s
b2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYSAtV25vLXVua25vd24t
d2FybmluZy1vcHRpb247CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJH
RVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZp
eDppZGVudGlmaWVyKSk7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMw
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9CYXNlLnhj
Y29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcK
aW5kZXggODE0YmU4M2M5ZWMwOWE1ZjMxYmU1NWM2NmM0YWJhNzU4ODE3YjI5NS4uMDA4M2UyYWFh
YTMzOTdkNmNiODk0YWM4MTdlNGQyY2FhYjYxMjY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTg4LDcgKzg4LDcgQEAgR0NDX1dB
Uk5fU0lHTl9DT01QQVJFID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlF
UzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJ
QUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAt
V2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tl
bnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21p
c3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xz
IC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFs
LWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91
Z2ggLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0
aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1m
b3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJp
dGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUt
ZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUg
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYSAtV25vLXVua25vd24td2FybmluZy1vcHRpb247
CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1t
CmluZGV4IGViYTFiYjBjZTQwMzdkZjM3MWU1MmYwMjVlNmRhNmEwMTZiODBmYmYuLmY0NDZmN2Vj
MWYwYjFhNzZhNGE0NTRlZmJkMTVhODg2YWNmYzRmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQpAQCAtMjIw
LDggKzIyMCw5IEBAIGJvb2wgd3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aW50CiAgICAgd3JhcHBlZEtFSy5zaHJp
bmsod3JhcHBlZEtFS1NpemUpOwogCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGVuY3J5cHRlZEtleShr
ZXkuc2l6ZSgpKTsKLSAgICBzaXplX3QgdGFnTGVuZ3RoID0gMTY7Ci0gICAgdWludDhfdCB0YWdb
dGFnTGVuZ3RoXTsKKyAgICBjb25zdGV4cHIgc2l6ZV90IG1heFRhZ0xlbmd0aCA9IDE2OworICAg
IHNpemVfdCB0YWdMZW5ndGggPSBtYXhUYWdMZW5ndGg7CisgICAgdWludDhfdCB0YWdbbWF4VGFn
TGVuZ3RoXTsKIAogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
c3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0VuY3J5cHQsIGtDQ0FsZ29yaXRobUFFUzEyOCwga2Vr
LmRhdGEoKSwga2VrLnNpemUoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggODZmZGExMjk5MmZjNWU2MjA0NGQ1MDE2ZTA3
MzI2OGU1NmU4YWRiZC4uY2MzN2Y4NmMyY2M3ZDYxNjU3ZDA5NDIwNWMyNTQ2YmQ2NGVlNmU3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcKQEAgLTY0LDcgKzY0LDcgQEAgQ0xBTkdfV0FSTl9PQkpDX0lNUExJQ0lUX1JFVEFJTl9T
RUxGID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUwogR0NDX1dBUk5f
VU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTCi1X
QVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1X
Y29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2Zvcm1hdC1zZWN1cml0eSAtV21pc3NpbmctZm9y
bWF0LWF0dHJpYnV0ZSAtV3BvaW50ZXItYXJpdGggLVd3cml0ZS1zdHJpbmdzIC1Xbm8tdW51c2Vk
LXBhcmFtZXRlciAtV2V4aXQtdGltZS1kZXN0cnVjdG9yczsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdh
bGwgLVcgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRp
YWxpemVkIC1XZm9ybWF0LXNlY3VyaXR5IC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XcG9p
bnRlci1hcml0aCAtV3dyaXRlLXN0cmluZ3MgLVduby11bnVzZWQtcGFyYW1ldGVyIC1XZXhpdC10
aW1lLWRlc3RydWN0b3JzIC1XdmxhOwogCiBFTkdJTkVFUklOR19CVUlMRF9ERUZJTkVTID0gJChF
TkdJTkVFUklOR19CVUlMRF9ERUZJTkVTXyQoRU5HSU5FRVJJTkdfQlVJTEQpKTsKIEVOR0lORUVS
SU5HX0JVSUxEX0RFRklORVNfMSA9IEVOR0lORUVSSU5HX0JVSUxEPTE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggNzhkMWM3NzU5M2FlMDk4MzYxNGU0
YTBjMmExZWU1MWE5NmU2MWQ5YS4uZDZhOTEwOWE1OTA4N2ZjYmFhNWI4NjFhMGQ0ZjM5YzM1M2Rm
OWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAt
ODYsNyArODYsNyBAQCBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9V
TlVTRURfVkFSSUFCTEUgPSBZRVM7CiBPVEhFUl9NSUdGTEFHUyA9IC1GJChCVUlMVF9QUk9EVUNU
U19ESVIpOwogUFJFQklORElORyA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJh
IC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXpl
ZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdC1zZWN1cml0eSAtV2luaXQtc2VsZiAtV21pc3Npbmct
Zm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVduby11bnVzZWQtcGFyYW1ldGVy
IC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3Jp
dGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMg
LVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOworV0FSTklOR19D
RkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29u
ZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdC1zZWN1cml0eSAt
V2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4g
LVduby11bnVzZWQtcGFyYW1ldGVyIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFu
dC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAt
V2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZh
bGx0aHJvdWdoIC1XdmxhOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZm
aXg6aWRlbnRpZmllcikpOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEz
MDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9C
YXNlLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvQmFz
ZS54Y2NvbmZpZwppbmRleCAyMDIzMTI5MTI3MjQzZDlkMzYxYjQ3M2IxYTVhZTZlNWVmMzFiNTAx
Li5kYThiZTlmNmExZmFhYWZlMzdhNWJjMjE2ZWU1OTFkYzI1YjY1YjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAg
LTg4LDcgKzg4LDcgQEAgQ0xBTkdfV0FSTl9ET0NVTUVOVEFUSU9OX0NPTU1FTlRTID0gWUVTOwog
T1RIRVJfTUlHRkxBR1MgPSAtRiQoQlVJTFRfUFJPRFVDVFNfRElSKTsKIENMQU5HX0FOQUxZWkVS
X0xPQ0FMSVpBQklMSVRZX05PTkxPQ0FMSVpFRCA9IFlFUzsKIFBSRUJJTkRJTkcgPSBOTzsKLVdB
Uk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0
cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2Vj
dXJpdHkgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5v
cmV0dXJuIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdy
ZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1
Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBs
aWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3Qt
cXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRy
YS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1h
dHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV3BhY2tl
ZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmlu
Z3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9s
b2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxs
b2MvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9ibWFsbG9jL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggYzAwMGZiNjIxN2MzMGU1NmVmOTY1ZjRkZThhY2Nl
ZDM0YTQwZjU5NC4uYjQwNDk3MGE2YzM0N2M1YzA4ZTMzZmExOWRjNzlhZTg4YzQ0YThmNCAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysg
Yi9Tb3VyY2UvYm1hbGxvYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC05NCw3ICs5
NCw3IEBAIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVT
RURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBQUkVC
SU5ESU5HID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwg
LVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9r
ZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdt
aXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNs
cyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2Jh
bC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJv
dWdoOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1z
dWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zv
cm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1u
b3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRl
ZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3Zs
YTsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIp
KTsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI5MWVkNDJjMjg5NzZm
NmE5Y2M5NDFhM2I0NGMyZjEwY2FlNWRkNTcuLmJkODI3NmNkYjU2M2Q2MzQxNGRlNGE1MjdkMjdi
NDFmYjdiMTJhZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1h
cnJheSAoVkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA5MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6
CisgICAgICAgICogbGxkYi9sbGRiV2ViS2l0VGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWc6CisKIDIwMjAtMDMtMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBXS1dlYlZpZXcuX25lZ290aWF0ZWRMZWdhY3lUTFMgc2hvdWxk
IGJlIGNvcnJlY3QgYWZ0ZXIgYmFjay9mb3J3YXJkIG5hdmlnYXRpb25zCmRpZmYgLS1naXQgYS9U
b29scy9Db250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcg
Yi9Ub29scy9Db250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcKaW5kZXggYzE2N2RkMzI0NTE0MGJkODJiNmQ1NzEzOTdhMTFhYjQ0MmJmZDIxNC4uNjdlNDc3
NTRhZTUyNTgwMDhjNmJjYzczYjIxZTFjYzBmYmM2N2E0YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ29u
dGVudEV4dGVuc2lvblRlc3Rlci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1Rv
b2xzL0NvbnRlbnRFeHRlbnNpb25UZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpA
QCAtNjUsNyArNjUsNyBAQCBHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOwogR0ND
X1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElP
TiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdT
ID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRv
a2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1X
bWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVj
bHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9i
YWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhy
b3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXIt
c3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2lu
Zy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXIt
YXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRp
bWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBh
cmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVz
dGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRU
ZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA5MTRhOTIxODQxN2IzZWZi
NTJmZjUyMTE2ZjgzMTRhYjYzYTU2YzQ2Li4yZTk3NTRhYjc0ZmM4OTkzYjUwMGU5YjU4NmUzYzAx
OWVjNGRmYWUzIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtODIsNyArODIsNyBAQCBHQ0NfV0FSTl9V
TkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9
IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9W
QVJJQUJMRSA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2Ny
aXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3Jt
YXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGgg
LVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVz
dHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdp
bXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdjYXN0LXF1YWwgLVdjaGFy
LXN1YnNjcmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3Np
bmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVy
LWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10
aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21w
YXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiAKIEhFQURFUl9TRUFSQ0hfUEFUSFMg
PSAke0JVSUxUX1BST0RVQ1RTX0RJUn0vdXNyL2xvY2FsL2luY2x1ZGU7CiAKZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMGYwOTMwNzczZGVlMWRmYzM5YzBjZWY2N2IyYjRhODgzNjc2MDdlYS4uZjQyZGVmYTNi
NGU0MzY4MzAwZGIzYjMwZDE4MDM1ZDNiNDI3Y2MwMyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgor
CisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNZWRpYVRpbWUv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAyMC0wMi0xNyAgRG9uIE9sbXN0ZWFk
ICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gVXNlIGJ1aWx0aW4g
dGFyZ2V0cwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9NZWRpYVRpbWUvQ29uZmlndXJh
dGlvbnMvQmFzZS54Y2NvbmZpZyBiL1BlcmZvcm1hbmNlVGVzdHMvTWVkaWFUaW1lL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggMzVjMDg4OWY4YTViOGM2MmQwMmZlOTU3MTMyNzI2
N2Q1NTczNzJiYi4uMTAxMTU2YWRmZWNjYTQyMjllZTgyYzVmMmMyMDJjNThmYWE1NGVlOCAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9NZWRpYVRpbWUvQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL01lZGlhVGltZS9Db25maWd1cmF0aW9ucy9C
YXNlLnhjY29uZmlnCkBAIC04Miw3ICs4Miw3IEBAIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVU
T1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVT
RURfVkFSSUFCTEUgPSBZRVM7CiBQUkVCSU5ESU5HID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9IC1X
YWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdleHRyYS10b2tlbnMg
LVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Np
bmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1X
dW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNv
bnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2g7
CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNj
cmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9y
bWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRo
IC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRl
c3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1X
aW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiBIRUFERVJfU0VBUkNIX1BBVEhTID0gJChCVUlM
VF9QUk9EVUNUU19ESVIpL3Vzci9sb2NhbC9pbmNsdWRlICQoRFNUUk9PVCkvdXNyL2xvY2FsL2lu
Y2x1ZGUgaWN1ICQoSEVBREVSX1NFQVJDSF9QQVRIUyk7CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393579</attachid>
            <date>2020-03-13 23:22:50 -0700</date>
            <delta_ts>2020-03-14 19:04:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209043-20200313232249.patch</filename>
            <type>text/plain</type>
            <size>52309</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZGRkNzFlZjI0ZmFlMzEyZTNhNDBiMGE2ZjMwYWVjYmE1Y2JhOWQ0Li5mNWNhN2I5ZDYwZjI5Y2Rm
YzU2MTgwNzczNDY3M2YxYzMzMmRjMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBkaXNhYmxlcyB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkuIElmIHRoaXMgZmVhdHVyZSB1
c2VzIHVzZXItaW5wdXQsIHVzZXIgY2FuCisgICAgICAgIGNvbnRyb2wgdGhlIHN0YWNrIGhlaWdo
dCBjb25zdW1lZCBieSBDKysgY29kZS4gVGhpcyBwYXRjaCBhdm9pZHMgdXNpbmcgVkxBLiBUbyBh
Y2hpZXZlIHRoYXQsCisKKyAgICAgICAgICAgIDEuIFdlIHNldCBgLVd2bGFgIHdhcm5pbmcgb3B0
aW9uIHRvIHRyaWdnZXIgd2FybmluZ3MgaWYgaXQgaXMgdXNlZC4KKyAgICAgICAgICAgIDIuIElu
dHJvZHVjZSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkgZm9yIEFQSS4gVGhpcyByZXBsYWNlcyBgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbdmFyaWFibGVMZW5ndGhdYCB1c2UgY2FzZS4KKyAgICAgICAgICAg
ICAgIE1hcmtlZEpTVmFsdWVSZWZBcnJheSByZWdpc3RlcnMgaXRzZWxmIHRvIEpTQyBHQyBzbyB0
aGF0IEdDIGNhbiBtYXJrIGl0IGFzIGEgc3Ryb25nIHJvb3QuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY3VycmVudEFyZ3VtZW50c10pOgorICAg
ICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAoLVtKU1ZhbHVlIGNhbGxXaXRoQXJndW1l
bnRzOl0pOgorICAgICAgICAoLVtKU1ZhbHVlIGNvbnN0cnVjdFdpdGhBcmd1bWVudHM6XSk6Cisg
ICAgICAgICgtW0pTVmFsdWUgaW52b2tlTWV0aG9kOndpdGhBcmd1bWVudHM6XSk6CisgICAgICAg
ICogQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpN
YXJrZWRKU1ZhbHVlUmVmQXJyYXk6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgIChK
U0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheTo6fk1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAg
ICAgIChKU0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheTo6dmlzaXRBZ2dyZWdhdGUpOgorICAgICAg
ICAqIEFQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaDogQWRkZWQuCisgICAgICAgICogQVBJL3Rl
c3RzL21pbmlkb20uYzoKKyAgICAgICAgKHByaW50KToKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVz
dGFwaS5jcHA6CisgICAgICAgIChUZXN0QVBJOjptYXJrZWRKU1ZhbHVlQXJyYXlBbmRHQyk6Cisg
ICAgICAgICh0ZXN0Q0FQSVZpYUNwcCk6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZzoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6Cisg
ICAgICAgIChKU0M6OkhlYXA6OmFkZENvcmVDb25zdHJhaW50cyk6CisgICAgICAgIChKU0M6Okhl
YXA6OmFkZG1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgICogaGVhcC9IZWFwLmg6Cisg
ICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5oOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6
YWN0aXZlV2Vha1NldHNCZWdpbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNl
OjphY3RpdmVXZWFrU2V0c0VuZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNl
OjpuZXdBY3RpdmVXZWFrU2V0c0JlZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2Vk
U3BhY2U6Om5ld0FjdGl2ZVdlYWtTZXRzRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0FyZ0xpc3QuaDoKKwogMjAyMC0wMy0xMyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBjb25maWdTaXplVG9Qcm90ZWN0IHNob3VsZCBiZSAxNktCCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJh
YzRmYzBmYzVkMzJlYjE4Yjc1ZTRmZGI5ZjY5YzM1Y2JkOGQ5NTUuLjk5NjBhNDQ3Yzg1ZGE5Mjhj
YzU0N2QzNTgxYmM0Zjg3ZDUxMTY5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMTMg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90
IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoK
KyAgICAgICAgKiB3dGYvVVVJRC5jcHA6CisgICAgICAgIChXVEY6OmJvb3RTZXNzaW9uVVVJRFN0
cmluZyk6CisKIDIwMjAtMDMtMTMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29jb2FdIFB1c2ggYXBwbGljYXRpb25TREtWZXJzaW9uKCkgZG93
biBmcm9tIFdlYkNvcmUgaW50byBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZjhjMmNhNzE5YjNlNDM4MjFh
ZWQ4NDE1ZGM4NTUyMmVhOGU1YTA4Li5iNjdmNDlkMjA5MzM4ZDQyMDVhMmFhOTYxNTExM2JkMTFi
ZjA2ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDMtMTMgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJp
YWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAgICAgICAg
KiBjcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorICAgICAgICAoV2ViQ29yZTo6dW53cmFw
U2VyaWFsaXplZENyeXB0b0tleSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpyZWZyZXNoQXVkaW9DYXB0dXJl
RGV2aWNlcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlRGlzcGxheUlE
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzY3Jl
ZW5DYXB0dXJlRGV2aWNlcyk6CisKIDIwMjAtMDMtMTMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgU1ZHTWF0cml4IHNob3VsZCBoYXZlIHRoZSBhY2Nlc3Mg
cmlnaHQgb2YgaXRzIG93bmVyIFNWR1RyYW5zZm9ybSBhbHdheXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmlu
ZGV4IDBmY2ExZjdmZGUzNTA3NmVhYmE2Njg1Y2Q1MWM3OWVmZTI0YjY5MGYuLmJkNjkyZTc2OWZm
MjlmNjU3NmJkODM5OGMzODZjMDEyYzM4NmEyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDIwLTAzLTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNDMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWc6CisKIDIwMjAtMDMtMTIgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gX0FYU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUVuYWJsZWQgc2hvdWxkIG5vdCBiZSBjYWxsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CmluZGV4IGMzZjUxN2QzNTRiOWZkYzhmZjhiYjkzNGUzNGI0M2JkZjkwZDI4YWMuLjdkZGMwMjM3
MWJkNjljOWRlYmU4OThmODhlMTYwZTM2ZTE5OWExZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5
IChWTEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDkwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisKIDIwMjAtMDMtMTAgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI1Mzc1OSk6IFdl
YiBJbnNwZWN0b3I6IEF1ZGl0czogcmVzdWx0cyBmb2xkZXIgZG9lc24ndCBnZXQgc2VsZWN0ZWQg
YnkgcHJlc3NpbmcgQXJyb3cgRG93biBrZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNThmNGVmMDQ1YTFmY2MzN2Y4
ZWNlYThiOTA3MTQwMDIyOGE5YTE1MS4uNWY0ZWNjNDJkMzU1ODA3YmRlMzY5ZDgxYTIzMDgzMDJh
NGQ5NWYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlh
YmxlLWxlbmd0aC1hcnJheSAoVkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorCiAyMDIwLTAz
LTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgV0tXZWJWaWV3Ll9uZWdvdGlhdGVkTGVnYWN5VExTIHNob3VsZCBiZSBjb3JyZWN0IGFmdGVy
IGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IGMxYWU4N2MxOGE3ZWVhZjAzNTNlYzgzMzEwNjQ5ZWIyMWExNjNlYTMuLmM2MDA1MzJkNDY0ZWU4
NzdiMzE1YjYzODQ0NTY3YWVmYjU0MWFhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAo
VkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5
MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorCiAyMDIwLTAzLTEyICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3QgcHJlZmVyZW5jZSBoYW5k
bGluZyBhbmQgbmFtaW5nIGNvbnZlbnRpb25zIGluIEFwcEJvdW5kIGJyb3dzaW5nIHByZWZlcmVu
Y2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxv
Yy9DaGFuZ2VMb2cKaW5kZXggZTUzNzg3Yjg5MGRiYzM4OWMxNDQyY2YyODFkN2VjNWVlNzA1OWNi
MS4uZmNhMmI2ZGUyMGI5NjVlMTg3NDhiMDBkNTAzMmMwNDRjZWE5NGVjYiAxMDA2NDQKLS0tIGEv
U291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChW
TEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkw
NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisKIDIwMjAtMDMtMTMgIFNhYW0gQmFyYXRpICA8
c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgY29uZmlnU2l6ZVRvUHJvdGVjdCBzaG91bGQg
YmUgMTZLQgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQu
bW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQppbmRleCA5MTJjZWIz
ZTllYzFjMWFmN2Q2NWYxMmExZTAwMjEwNjgxMjQyYWMwLi5iODUzYjgxYjdiNzI2MTg1Y2U1NjI1
MTUzZjcxYWJiZWUyOGEwOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5t
bQpAQCAtMjMyLDEwICsyMzIsMTAgQEAgKyAoTlNBcnJheSAqKWN1cnJlbnRBcmd1bWVudHMKICAg
ICBpZiAoIWVudHJ5LT5jdXJyZW50QXJndW1lbnRzKSB7CiAgICAgICAgIEpTQ29udGV4dCAqY29u
dGV4dCA9IFtKU0NvbnRleHQgY3VycmVudENvbnRleHRdOwogICAgICAgICBzaXplX3QgY291bnQg
PSBlbnRyeS0+YXJndW1lbnRDb3VudDsKLSAgICAgICAgSlNWYWx1ZSAqIGFyZ3VtZW50QXJyYXlb
Y291bnRdOwotICAgICAgICBmb3IgKHNpemVfdCBpID0wOyBpIDwgY291bnQ7ICsraSkKLSAgICAg
ICAgICAgIGFyZ3VtZW50QXJyYXlbaV0gPSBbSlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmVu
dHJ5LT5hcmd1bWVudHNbaV0gaW5Db250ZXh0OmNvbnRleHRdOwotICAgICAgICBlbnRyeS0+Y3Vy
cmVudEFyZ3VtZW50cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOmFyZ3VtZW50
QXJyYXkgY291bnQ6Y291bnRdOworICAgICAgICBOU011dGFibGVBcnJheSAqYXJndW1lbnRzID0g
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpjb3VudF07CisgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAgIFthcmd1bWVu
dHMgc2V0T2JqZWN0OltKU1ZhbHVlIHZhbHVlV2l0aEpTVmFsdWVSZWY6ZW50cnktPmFyZ3VtZW50
c1tpXSBpbkNvbnRleHQ6Y29udGV4dF0gYXRJbmRleGVkU3Vic2NyaXB0OmldOworICAgICAgICBl
bnRyeS0+Y3VycmVudEFyZ3VtZW50cyA9IGFyZ3VtZW50czsKICAgICB9CiAKICAgICByZXR1cm4g
ZW50cnktPmN1cnJlbnRBcmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmFsdWUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0K
aW5kZXggZTE4YTVjZjc3NzA0NjhjNmVkMDU5NzhiOTBkY2JkMzdjN2M4NGM5YS4uZjYwZDFmYjMz
ZTQ2YzUzNzMzYzA5MDMxMjM5ZDhmNjliNGFiMTNkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZS5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCAiSlNWYWx1ZUludGVybmFsLmgi
CiAjaW1wb3J0ICJKU1ZhbHVlUHJpdmF0ZS5oIgogI2ltcG9ydCAiSlNXcmFwcGVyTWFwLmgiCisj
aW1wb3J0ICJNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaCIKICNpbXBvcnQgIk9iamNSdW50aW1lRXh0
cmFzLmgiCiAjaW1wb3J0ICJKU0NJbmxpbmVzLmgiCiAjaW1wb3J0ICJKU0NKU1ZhbHVlLmgiCkBA
IC00NzIsOCArNDczLDEyIEBAIC0gKEJPT0wpaXNJbnN0YW5jZU9mOihpZCl2YWx1ZQogCiAtIChK
U1ZhbHVlICopY2FsbFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiB7Cisg
ICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhbX2NvbnRleHQgSlNH
bG9iYWxDb250ZXh0UmVmXSk7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKKwogICAgIE5TVUludGVnZXIgYXJn
dW1lbnRDb3VudCA9IFthcmd1bWVudEFycmF5IGNvdW50XTsKLSAgICBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1thcmd1bWVudENvdW50XTsKKyAgICBKU0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSBhcmd1
bWVudHMoW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIGFyZ3VtZW50Q291bnQpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmd1bWVudENvdW50OyArK2kpCiAgICAgICAgIGFy
Z3VtZW50c1tpXSA9IG9iamVjdFRvVmFsdWUoX2NvbnRleHQsIFthcmd1bWVudEFycmF5IG9iamVj
dEF0SW5kZXg6aV0pOwogCkBAIC00ODIsNyArNDg3LDcgQEAgLSAoSlNWYWx1ZSAqKWNhbGxXaXRo
QXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJheQogICAgIGlmIChleGNlcHRpb24pCiAg
ICAgICAgIHJldHVybiBbX2NvbnRleHQgdmFsdWVGcm9tTm90aWZ5RXhjZXB0aW9uOmV4Y2VwdGlv
bl07CiAKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW19j
b250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIG9iamVjdCwgMCwgYXJndW1lbnRDb3VudCwgYXJn
dW1lbnRzLCAmZXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0Q2Fs
bEFzRnVuY3Rpb24oW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIG9iamVjdCwgMCwgYXJn
dW1lbnRDb3VudCwgYXJndW1lbnRzLmRhdGEoKSwgJmV4Y2VwdGlvbik7CiAgICAgaWYgKGV4Y2Vw
dGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4dCB2YWx1ZUZyb21Ob3RpZnlFeGNlcHRpb246
ZXhjZXB0aW9uXTsKIApAQCAtNDkxLDggKzQ5NiwxMiBAQCAtIChKU1ZhbHVlICopY2FsbFdpdGhB
cmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiAKIC0gKEpTVmFsdWUgKiljb25zdHJ1
Y3RXaXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJheQogeworICAgIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlMoW19jb250ZXh0IEpTR2xvYmFsQ29udGV4
dFJlZl0pOworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIEpTQzo6
SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CisKICAgICBOU1VJbnRlZ2VyIGFyZ3VtZW50Q291bnQg
PSBbYXJndW1lbnRBcnJheSBjb3VudF07Ci0gICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbYXJndW1l
bnRDb3VudF07CisgICAgSlNDOjpNYXJrZWRKU1ZhbHVlUmVmQXJyYXkgYXJndW1lbnRzKFtfY29u
dGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBhcmd1bWVudENvdW50KTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgYXJndW1lbnRDb3VudDsgKytpKQogICAgICAgICBhcmd1bWVudHNbaV0g
PSBvYmplY3RUb1ZhbHVlKF9jb250ZXh0LCBbYXJndW1lbnRBcnJheSBvYmplY3RBdEluZGV4Omld
KTsKIApAQCAtNTAxLDcgKzUxMCw3IEBAIC0gKEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRoQXJndW1l
bnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJheQogICAgIGlmIChleGNlcHRpb24pCiAgICAgICAg
IHJldHVybiBbX2NvbnRleHQgdmFsdWVGcm9tTm90aWZ5RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAK
LSAgICBKU09iamVjdFJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yKFtfY29u
dGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBvYmplY3QsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50
cywgJmV4Y2VwdGlvbik7CisgICAgSlNPYmplY3RSZWYgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXND
b25zdHJ1Y3RvcihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgb2JqZWN0LCBhcmd1bWVu
dENvdW50LCBhcmd1bWVudHMuZGF0YSgpLCAmZXhjZXB0aW9uKTsKICAgICBpZiAoZXhjZXB0aW9u
KQogICAgICAgICByZXR1cm4gW19jb250ZXh0IHZhbHVlRnJvbU5vdGlmeUV4Y2VwdGlvbjpleGNl
cHRpb25dOwogCkBAIC01MTAsOCArNTE5LDEyIEBAIC0gKEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRo
QXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRBcnJheQogCiAtIChKU1ZhbHVlICopaW52b2tl
TWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZCB3aXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1l
bnRzCiB7CisgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhbX2Nv
bnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSk7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKKwogICAgIE5TVUlu
dGVnZXIgYXJndW1lbnRDb3VudCA9IFthcmd1bWVudHMgY291bnRdOwotICAgIEpTVmFsdWVSZWYg
YXJndW1lbnRBcnJheVthcmd1bWVudENvdW50XTsKKyAgICBKU0M6Ok1hcmtlZEpTVmFsdWVSZWZB
cnJheSBhcmd1bWVudEFycmF5KFtfY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBhcmd1bWVu
dENvdW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXJndW1lbnRDb3VudDsgKytp
KQogICAgICAgICBhcmd1bWVudEFycmF5W2ldID0gb2JqZWN0VG9WYWx1ZShfY29udGV4dCwgW2Fy
Z3VtZW50cyBvYmplY3RBdEluZGV4OmldKTsKIApAQCAtNTI5LDcgKzU0Miw3IEBAIC0gKEpTVmFs
dWUgKilpbnZva2VNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9kIHdpdGhBcmd1bWVudHM6KE5TQXJy
YXkgKilhcmd1bWVudHMKICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICByZXR1cm4gW19jb250
ZXh0IHZhbHVlRnJvbU5vdGlmeUV4Y2VwdGlvbjpleGNlcHRpb25dOwogCi0gICAgSlNWYWx1ZVJl
ZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFtfY29udGV4dCBKU0dsb2JhbENvbnRl
eHRSZWZdLCBvYmplY3QsIHRoaXNPYmplY3QsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50QXJyYXks
ICZleGNlcHRpb24pOworICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXNGdW5j
dGlvbihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgb2JqZWN0LCB0aGlzT2JqZWN0LCBh
cmd1bWVudENvdW50LCBhcmd1bWVudEFycmF5LmRhdGEoKSwgJmV4Y2VwdGlvbik7CiAgICAgaWYg
KGV4Y2VwdGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4dCB2YWx1ZUZyb21Ob3RpZnlFeGNl
cHRpb246ZXhjZXB0aW9uXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9N
YXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5YTZjOTIzNTIyNGU1MjAyYTgz
ZmRlOTk2OWE3MWMyMzU0YTk3NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaCIKKworI2luY2x1ZGUgIkpT
Q0lubGluZXMuaCIKKyNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCisjaW5jbHVkZSAiSlNPYmplY3Qu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK01hcmtlZEpTVmFsdWVSZWZBcnJheTo6TWFya2VkSlNW
YWx1ZVJlZkFycmF5KEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCB1bnNpZ25lZCBzaXplKQor
ICAgIDogbV9zaXplKHNpemUpCit7CisgICAgaWYgKG1fc2l6ZSA+IE1hcmtlZEFyZ3VtZW50QnVm
ZmVyOjppbmxpbmVDYXBhY2l0eSkgeworICAgICAgICBtX2J1ZmZlciA9IEJ1ZmZlclVuaXF1ZVB0
cjo6Y3JlYXRlKG1fc2l6ZSk7CisgICAgICAgIHRvSlMoY29udGV4dCktPnZtKCkuaGVhcC5hZGRt
YXJrZWRKU1ZhbHVlUmVmQXJyYXkodGhpcyk7CisgICAgICAgIEFTU0VSVChpc09uTGlzdCgpKTsK
KyAgICB9Cit9CisKK01hcmtlZEpTVmFsdWVSZWZBcnJheTo6fk1hcmtlZEpTVmFsdWVSZWZBcnJh
eSgpCit7CisgICAgaWYgKGlzT25MaXN0KCkpCisgICAgICAgIHJlbW92ZSgpOworfQorCit2b2lk
IE1hcmtlZEpTVmFsdWVSZWZBcnJheTo6dmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCit7CisgICAgSlNWYWx1ZVJlZiogYnVmZmVyID0gZGF0YSgpOworICAgIGZvciAodW5zaWdu
ZWQgaW5kZXggPSAwOyBpbmRleCA8IG1fc2l6ZTsgKytpbmRleCkgeworICAgICAgICBKU1ZhbHVl
UmVmIHZhbHVlID0gYnVmZmVyW2luZGV4XTsKKyNpZiAhQ1BVKEFERFJFU1M2NCkKKyAgICAgICAg
SlNDZWxsKiBqc0NlbGwgPSByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KGNvbnN0X2Nhc3Q8T3Bh
cXVlSlNWYWx1ZSo+KHZhbHVlKSk7CisgICAgICAgIGlmICghanNDZWxsKQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQoanNDZWxsKTsgLy8g
V2Ugc2hvdWxkIG1hcmsgdGhlIHdyYXBwZXIgaXRzZWxmIHRvIGtlZXAgSlNWYWx1ZVJlZiBsaXZl
LgorI2Vsc2UKKyAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZChiaXR3aXNlX2Nhc3Q8
SlNWYWx1ZT4odmFsdWUpKTsKKyNlbmRpZgorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL01hcmtlZEpTVmFsdWVSZWZB
cnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYWRlNTBlMjA4Mjc5NzA2ZjQ2YThhM2UyYjVkMTZhZWFhNzQ3MzNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9NYXJrZWRKU1ZhbHVl
UmVmQXJyYXkuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBcmdMaXN0LmgiCisj
aW5jbHVkZSA8d3RmL0ZvcmJpZEhlYXBBbGxvY2F0aW9uLmg+CisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL05vbm1vdmFibGUuaD4KKworbmFtZXNwYWNlIEpTQyB7
CisKK2NsYXNzIE1hcmtlZEpTVmFsdWVSZWZBcnJheSBmaW5hbCA6IHB1YmxpYyBCYXNpY1Jhd1Nl
bnRpbmVsTm9kZTxNYXJrZWRKU1ZhbHVlUmVmQXJyYXk+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShNYXJrZWRKU1ZhbHVlUmVmQXJyYXkpOworICAgIFdURl9NQUtFX05PTk1PVkFCTEUoTWFy
a2VkSlNWYWx1ZVJlZkFycmF5KTsKKyAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKK3B1
YmxpYzoKKyAgICB1c2luZyBCdWZmZXJVbmlxdWVQdHIgPSBDYWdlZFVuaXF1ZVB0cjxHaWdhY2Fn
ZTo6SlNWYWx1ZSwgSlNWYWx1ZVJlZj47CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgaW5s
aW5lQ2FwYWNpdHkgPSBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6aW5saW5lQ2FwYWNpdHk7CisKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkoSlNHbG9iYWxDb250ZXh0
UmVmLCB1bnNpZ25lZCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgfk1hcmtlZEpTVmFsdWVSZWZB
cnJheSgpOworCisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKyAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9zaXplOyB9CisKKyAgICBKU1ZhbHVl
UmVmJiBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBkYXRhKClbaW5kZXhdOyB9
CisKKyAgICBjb25zdCBKU1ZhbHVlUmVmKiBkYXRhKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBjb25zdF9jYXN0PE1hcmtlZEpTVmFsdWVSZWZBcnJheSo+KHRoaXMpLT5kYXRhKCk7Cisg
ICAgfQorCisgICAgSlNWYWx1ZVJlZiogZGF0YSgpCisgICAgeworICAgICAgICBpZiAobV9idWZm
ZXIpCisgICAgICAgICAgICByZXR1cm4gbV9idWZmZXIuZ2V0KG1fc2l6ZSk7CisgICAgICAgIHJl
dHVybiBtX2lubGluZUJ1ZmZlcjsKKyAgICB9CisKKyAgICB2b2lkIHZpc2l0QWdncmVnYXRlKFNs
b3RWaXNpdG9yJik7CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9zaXplOworICAgIEpTVmFs
dWVSZWYgbV9pbmxpbmVCdWZmZXJbaW5saW5lQ2FwYWNpdHldIHsgfTsKKyAgICBCdWZmZXJVbmlx
dWVQdHIgbV9idWZmZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvbWluaWRvbS5jIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9taW5pZG9tLmMKaW5kZXggNmViYjM5OWFjMGI5ODUxOGExNDMxNTY0
ZWYwNWI5OGJlN2EwZjViMS4uZjRhMDc0YzdiMDA2NDAxNWI5MzQwYzFhODUwNTMyZGJiNzRlMGNh
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9taW5pZG9tLmMK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9taW5pZG9tLmMKQEAgLTg4LDEw
ICs4OCwxMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBwcmludChKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgb2JqZWN0LCBKU09iamVjdFJlZiB0aAogICAgIGlmIChhcmd1bWVudENvdW50
ID4gMCkgewogICAgICAgICBKU1N0cmluZ1JlZiBzdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5
KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKICAgICAgICAgc2l6ZV90IG51bUNo
YXJzID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKHN0cmluZyk7Ci0gICAgICAg
IGNoYXIgc3RyaW5nVVRGOFtudW1DaGFyc107CisgICAgICAgIGNoYXIqIHN0cmluZ1VURjggPSAo
Y2hhciopbWFsbG9jKG51bUNoYXJzKTsKICAgICAgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhz
dHJpbmcsIHN0cmluZ1VURjgsIG51bUNoYXJzKTsKICAgICAgICAgcHJpbnRmKCIlc1xuIiwgc3Ry
aW5nVVRGOCk7CiAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShzdHJpbmcpOworICAgICAgICBmcmVl
KHN0cmluZ1VURjgpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L3Rlc3RhcGkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNw
cAppbmRleCAyYTlmODZhYTRlZjE3MTRmNmM1MzBjNTlkZTNiMjVkYmZkZTJkZDVkLi5lOWM1YmNm
NzE1NTc4MWY0MThlZjJmODk3NTU5YjFhZTdkOWEwYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJK
U0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0SW5saW5lcy5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiTWFya2VkSlNWYWx1ZVJlZkFycmF5Lmgi
CiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRSZWZQcml2YXRlLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RSZWZQcml2YXRlLmg+CkBAIC00Miw2ICs0Myw3
IEBACiAKIGV4dGVybiAiQyIgdm9pZCBjb25maWd1cmVKU0NGb3JUZXN0aW5nKCk7CiBleHRlcm4g
IkMiIGludCB0ZXN0Q0FQSVZpYUNwcChjb25zdCBjaGFyKiBmaWx0ZXIpOworZXh0ZXJuICJDIiB2
b2lkIEpTU3luY2hyb25vdXNHYXJiYWdlQ29sbGVjdEZvckRlYnVnZ2luZyhKU0NvbnRleHRSZWYp
OwogCiBjbGFzcyBBUElTdHJpbmcgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFQSVN0cmlu
Zyk7CkBAIC0xNDQsNiArMTQ2LDcgQEAgY2xhc3MgVGVzdEFQSSB7CiAgICAgdm9pZCBwcm9taXNl
VW5oYW5kbGVkUmVqZWN0aW9uRnJvbVVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKCk7CiAgICAg
dm9pZCBwcm9taXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpOwogICAgIHZvaWQgdG9wQ2FsbEZy
YW1lQWNjZXNzKCk7CisgICAgdm9pZCBtYXJrZWRKU1ZhbHVlQXJyYXlBbmRHQygpOwogCiAgICAg
aW50IGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbGVkOyB9CiAKQEAgLTYyMCw2ICs2MjMs
MzMgQEAgdm9pZCBUZXN0QVBJOjp0b3BDYWxsRnJhbWVBY2Nlc3MoKQogICAgIH0KIH0KIAordm9p
ZCBUZXN0QVBJOjptYXJrZWRKU1ZhbHVlQXJyYXlBbmRHQygpCit7CisgICAgYXV0byB0ZXN0TWFy
a2VkSlNWYWx1ZUFycmF5ID0gWyZdKHVuc2lnbmVkIGNvdW50KSB7CisgICAgICAgIGF1dG8qIGds
b2JhbE9iamVjdCA9IHRvSlMoY29udGV4dCk7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxv
Y2tlcihnbG9iYWxPYmplY3QtPnZtKCkpOworICAgICAgICBKU0M6Ok1hcmtlZEpTVmFsdWVSZWZB
cnJheSB2YWx1ZXMoY29udGV4dCwgY291bnQpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4
ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICAgICAgU3RyaW5nIHRhcmdl
dCA9IG1ha2VTdHJpbmcoIlByZWZpeCIsIGluZGV4KTsKKyAgICAgICAgICAgIGF1dG8gaG9sZGVy
ID0gT3BhcXVlSlNTdHJpbmc6OnRyeUNyZWF0ZSh0YXJnZXQpOworICAgICAgICAgICAgSlNWYWx1
ZVJlZiBzdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBob2xkZXIuZ2V0KCkpOwor
ICAgICAgICAgICAgdmFsdWVzW2luZGV4XSA9IHN0cmluZzsKKyAgICAgICAgfQorICAgICAgICBK
U1N5bmNocm9ub3VzR2FyYmFnZUNvbGxlY3RGb3JEZWJ1Z2dpbmcoY29udGV4dCk7CisgICAgICAg
IGJvb2wgb2sgPSB0cnVlOworICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXgg
PCBjb3VudDsgKytpbmRleCkgeworICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IG1ha2VTdHJp
bmcoIlByZWZpeCIsIGluZGV4KTsKKyAgICAgICAgICAgIGF1dG8gaG9sZGVyID0gT3BhcXVlSlNT
dHJpbmc6OnRyeUNyZWF0ZSh0YXJnZXQpOworICAgICAgICAgICAgSlNWYWx1ZVJlZiBzdHJpbmcg
PSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBob2xkZXIuZ2V0KCkpOworICAgICAgICAgICAg
aWYgKCFKU1ZhbHVlSXNTdHJpY3RFcXVhbChjb250ZXh0LCB2YWx1ZXNbaW5kZXhdLCBzdHJpbmcp
KQorICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2so
b2ssICJIZWxkIEpTU3RyaW5nIHNob3VsZCBiZSBhbGl2ZSBhbmQgY29ycmVjdC4iKTsKKyAgICB9
OworICAgIHRlc3RNYXJrZWRKU1ZhbHVlQXJyYXkoNCk7CisgICAgdGVzdE1hcmtlZEpTVmFsdWVB
cnJheSgxMDAwKTsKK30KKwogdm9pZCBjb25maWd1cmVKU0NGb3JUZXN0aW5nKCkKIHsKICAgICBK
U0M6OkNvbmZpZzo6Y29uZmlndXJlRm9yVGVzdGluZygpOwpAQCAtNjU5LDYgKzY4OSw3IEBAIGlu
dCB0ZXN0Q0FQSVZpYUNwcChjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHByb21pc2VVbmhh
bmRsZWRSZWplY3Rpb24oKSk7CiAgICAgUlVOKHByb21pc2VVbmhhbmRsZWRSZWplY3Rpb25Gcm9t
VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2soKSk7CiAgICAgUlVOKHByb21pc2VFYXJseUhhbmRs
ZWRSZWplY3Rpb25zKCkpOworICAgIFJVTihtYXJrZWRKU1ZhbHVlQXJyYXlBbmRHQygpKTsKIAog
ICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpIHsKICAgICAgICAgZGF0YUxvZ0xuKCJGaWx0ZXJlZCBh
bGwgdGVzdHM6IEVSUk9SIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IDdlMDMyNjg3ZTdlMzUzZmRjNjFkMDJlYjc1MDBk
YmUzZDQzNDdjMTEuLjdlNjI1M2Y4NDQzNjZmMmQ2ZTM0NGE2Y2FjYjc4YmMyNmRiOTBhNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCkBAIC05OCw3ICs5OCw3IEBAIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdD
Q19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKIENMQU5HX1dBUk5fRE9DVU1FTlRBVElPTl9D
T01NRU5UUyA9IFlFUzsKIFBSRUJJTkRJTkcgPSBOTzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwg
LVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5p
dGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3Npbmct
Zm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFy
aXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1l
LWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJl
IC1XaW1wbGljaXQtZmFsbHRocm91Z2g7CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEg
LVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVk
IC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1h
dHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIC1XdmxhOwogCiBIRUFERVJfU0VBUkNIX1BBVEhTID0gLiAiJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9pbmNsdWRlIiAkKEhFQURFUl9TRUFSQ0hfUEFUSFMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRhZmNlMDE1ZjkwYmIyNTEwNGM4
YjYxZTFiNzI5NWM2N2NjMDFjYjEuLjllMGVlMWRlOWUzNDc4YzBkYTMyODUzY2YxNmJkMjI1NzJh
YzJjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODQ5LDYgKzE4NDksNyBA
QAogCQlFM0M3OUNBQjFEQjlBNERDMDBEMUVDQTQgLyogRE9NSklURWZmZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M3OUNBQTFEQjlBNEQ2MDBE
MUVDQTQgLyogRE9NSklURWZmZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTNDOEVENDMyM0ExREJDQjAwMTMxOTU4IC8qIElzb0lubGluZWRI
ZWFwQ2VsbFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzQzhFRDQyMjNBMURCQzUwMDEzMTk1OCAvKiBJc29JbmxpbmVkSGVhcENlbGxUeXBlLmgg
Ki87IH07CiAJCUUzRDIzOUM5MUI4MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QyMzlD
NzFCODI5QzFDMDBCQkVGNjcgLyogSlNNb2R1bGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzRDM1MTVGMjQxQjg5RDcwMDhE
QzE2RSAvKiBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDM1MTVEMjQxQjg5Q0UwMDhEQzE2RSAvKiBNYXJrZWRK
U1ZhbHVlUmVmQXJyYXkuaCAqLzsgfTsKIAkJRTNEODc3NzQxRTY1QzBBMDAwQkU5NDVBIC8qIEJ5
dGVjb2RlRHVtcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFM0Q4Nzc3MjFFNjVDMDg5MDBCRTk0NUEgLyogQnl0ZWNvZGVEdW1wZXIuaCAqLzsgfTsK
IAkJRTNFRTEzNzYyMUZCRDQzNTAwRDgzQzRCIC8qIEVycm9yVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFRTEzNzQyMUZCRDQzNDAwRDgzQzRC
IC8qIEVycm9yVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzRjIzQTdGMUVDRjEzRUUwMDk3OEQ5OSAvKiBTbmlwcGV0U2xvd1BhdGhDYWxs
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGMjNB
N0UxRUNGMTNFNTAwOTc4RDk5IC8qIFNuaXBwZXRTbG93UGF0aENhbGxzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUwMjYsNiArNTAyNyw4IEBA
CiAJCUUzRDI2NDI4MUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZUdyYXBoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVjb2RlR3JhcGguaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTNEMjY0MjkxRDM4QzA0MjAwMEJFMTc0IC8qIEJ5dGVjb2RlUmV3cml0
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0ZWNvZGVSZXdy
aXRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRDI2NDJBMUQzOEMwNDIw
MDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJ5dGVjb2RlUmV3cml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTNEMzUxNUQyNDFCODlDRTAwOERDMTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJheS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTNEMzUxNUUyNDFCODlDRjAwOERDMTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJh
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0Q4Nzc3MTFFNjVDMDg5MDBCRTk0NUEgLyogQnl0
ZWNvZGVEdW1wZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0
ZWNvZGVEdW1wZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0Q4Nzc3MjFF
NjVDMDg5MDBCRTk0NUEgLyogQnl0ZWNvZGVEdW1wZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQnl0ZWNvZGVEdW1wZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNFRTEzNzQyMUZCRDQzNDAwRDgzQzRCIC8qIEVycm9yVHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFcnJvclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTY0MTEsNiArNjQxNCw4IEBACiAJCQkJN0E5Nzc0QTcyMDZCODJDOTAwOEQwM0QwIC8q
IEpTV2Vha1ZhbHVlLmggKi8sCiAJCQkJODZFM0M2MEMxNjdCQUI4NzAwNkQ3NjBBIC8qIEpTV3Jh
cHBlck1hcC5oICovLAogCQkJCTg2RTNDNjBCMTY3QkFCODcwMDZENzYwQSAvKiBKU1dyYXBwZXJN
YXAubW0gKi8sCisJCQkJRTNEMzUxNUUyNDFCODlDRjAwOERDMTZFIC8qIE1hcmtlZEpTVmFsdWVS
ZWZBcnJheS5jcHAgKi8sCisJCQkJRTNEMzUxNUQyNDFCODlDRTAwOERDMTZFIC8qIE1hcmtlZEpT
VmFsdWVSZWZBcnJheS5oICovLAogCQkJCTg2RjNFRUI5MTY4Q0NGNzUwMDc3QjkyQSAvKiBPYmpD
Q2FsbGJhY2tGdW5jdGlvbi5oICovLAogCQkJCTg2RjNFRUJBMTY4Q0NGNzUwMDc3QjkyQSAvKiBP
YmpDQ2FsbGJhY2tGdW5jdGlvbi5tbSAqLywKIAkJCQk4NkYzRUVCNjE2ODU1QTVCMDA3N0I5MkEg
LyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLywKQEAgLTk5NjMsNiArOTk2OCw3IEBACiAJCQkJMTQy
RDZGMDkxMzUzOUEyODAwQjAyRTg2IC8qIE1hcmtlZEJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjdDNUZCODFEODg4QTBDMDA0NEY1RTIgLyogTWFya2VkQmxvY2tJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDE0NDhDQjEzQTE3NkVDMDBGNUJBMUEgLyogTWFya2VkQmxvY2tTZXQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUUzRDM1MTVGMjQxQjg5RDcwMDhEQzE2RSAvKiBNYXJrZWRK
U1ZhbHVlUmVmQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDJGM0RCMTM5RjRCRTIwMDQ5
MTAzMSAvKiBNYXJrZWRTcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3REYxMzUxRTI5NzBE
QzAwOTU5NTFCIC8qIE1hcmtlZFNwYWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
NjBFMzgxRTA1MTdCQjAwMzE0NjJDIC8qIE1hcmtpbmdDb25zdHJhaW50LmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRleCBlMDA5NjY2ODJiNTIyMTQ0YmM0ODkx
MDU5ZjM5ZTFiYzI4NjZjZjljLi5jN2I2MzhiYzQwMTFjOWNkNDRlMTYyOTk3ZTA5M2M4ZTA0ZTQy
MGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CkBAIC00MCw2ICs0MCw3IEBAIEFQSS9K
U1ZhbHVlUmVmLmNwcAogQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCiBBUEkvSlNX
ZWFrUHJpdmF0ZS5jcHAKIEFQSS9KU1dlYWtWYWx1ZS5jcHAKK0FQSS9NYXJrZWRKU1ZhbHVlUmVm
QXJyYXkuY3BwCiBBUEkvT3BhcXVlSlNTdHJpbmcuY3BwCiAKIGFzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCAwMDdl
OGI1ODBkZjA3MTk1MmJiMGEzNTYxYzVmY2I2NDE1MzBjYTVhLi4yYjJkNzY3ZWM4MTE0NjNhNTk1
NzFhMzUxMTRjNTBjZDcwNWM1YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApA
QCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb2RlQmxvY2suaCIKICNp
bmNsdWRlICJNYWNoaW5lU3RhY2tNYXJrZXIuaCIKICNpbmNsdWRlICJNYXJrU3RhY2tNZXJnaW5n
Q29uc3RyYWludC5oIgorI2luY2x1ZGUgIk1hcmtlZEpTVmFsdWVSZWZBcnJheS5oIgogI2luY2x1
ZGUgIk1hcmtlZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hcmtpbmdDb25zdHJhaW50U2V0
LmgiCiAjaW5jbHVkZSAiUHJldmVudENvbGxlY3Rpb25TY29wZS5oIgpAQCAtMjc1OCw2ICsyNzU5
LDEwIEBAIHZvaWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICAgICAgICAgICAgICBN
YXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKHNsb3RWaXNpdG9yLCAqbV9tYXJrTGlzdFNl
dCk7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIG1fbWFya2VkSlNWYWx1ZVJlZkFycmF5
cy5mb3JFYWNoKFsmXSAoTWFya2VkSlNWYWx1ZVJlZkFycmF5KiBhcnJheSkgeworICAgICAgICAg
ICAgICAgIGFycmF5LT52aXNpdEFnZ3JlZ2F0ZShzbG90VmlzaXRvcik7CisgICAgICAgICAgICB9
KTsKKwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2Nv
cGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OlZN
RXhjZXB0aW9ucyk7CiAgICAgICAgICAgICAgICAgc2xvdFZpc2l0b3IuYXBwZW5kVW5iYXJyaWVy
ZWQobV92bS5leGNlcHRpb24oKSk7CkBAIC0zMDAyLDYgKzMwMDcsMTIgQEAgdm9pZCBIZWFwOjpz
ZXRCb251c1Zpc2l0b3JUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+
IHRhc2spCiAgICAgbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGUubm90aWZ5QWxsKCk7CiB9CiAK
Kwordm9pZCBIZWFwOjphZGRtYXJrZWRKU1ZhbHVlUmVmQXJyYXkoTWFya2VkSlNWYWx1ZVJlZkFy
cmF5KiBhcnJheSkKK3sKKyAgICBtX21hcmtlZEpTVmFsdWVSZWZBcnJheXMuYXBwZW5kKGFycmF5
KTsKK30KKwogdm9pZCBIZWFwOjpydW5UYXNrSW5QYXJhbGxlbChSZWZQdHI8U2hhcmVkVGFzazx2
b2lkKFNsb3RWaXNpdG9yJik+PiB0YXNrKQogewogICAgIHVuc2lnbmVkIGluaXRpYWxSZWZDb3Vu
dCA9IHRhc2stPnJlZkNvdW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggMjM3
ZjE4ZmFkZDNlY2E5NjkwODc3MzBiZGUzMGY1NDY4NDUxN2IzOC4uMDdiZWY2OWMxNTk2ODk5ZjI1
YjgwZDExODQ3OTA2NTliZTIxMDI5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaApAQCAt
NzMsNiArNzMsNyBAQCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFzcyBNYWNoaW5l
VGhyZWFkczsKIGNsYXNzIE1hcmtTdGFja0FycmF5OwogY2xhc3MgTWFya1N0YWNrTWVyZ2luZ0Nv
bnN0cmFpbnQ7CitjbGFzcyBNYXJrZWRKU1ZhbHVlUmVmQXJyYXk7CiBjbGFzcyBCbG9ja0RpcmVj
dG9yeTsKIGNsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyOwogY2xhc3MgTWFya2luZ0NvbnN0cmFp
bnQ7CkBAIC0yNDAsNiArMjQxLDcgQEAgY2xhc3MgSGVhcCB7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RkOjp1bmlxdWVfcHRyPFR5cGVDb3VudFNldD4gb2JqZWN0VHlwZUNvdW50cygpOwogCiAg
ICAgSGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZlcio+JiBtYXJrTGlzdFNldCgpOworICAgIHZv
aWQgYWRkbWFya2VkSlNWYWx1ZVJlZkFycmF5KE1hcmtlZEpTVmFsdWVSZWZBcnJheSopOwogICAg
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaFByb3RlY3RlZENl
bGwoY29uc3QgRnVuY3RvciYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQg
Zm9yRWFjaENvZGVCbG9jayhjb25zdCBGdW5jdG9yJik7CkBAIC02MTcsNiArNjE5LDcgQEAgY2xh
c3MgSGVhcCB7CiAKICAgICBQcm90ZWN0Q291bnRTZXQgbV9wcm90ZWN0ZWRWYWx1ZXM7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPj4gbV9tYXJrTGlz
dFNldDsKKyAgICBTZW50aW5lbExpbmtlZExpc3Q8TWFya2VkSlNWYWx1ZVJlZkFycmF5LCBCYXNp
Y1Jhd1NlbnRpbmVsTm9kZTxNYXJrZWRKU1ZhbHVlUmVmQXJyYXk+PiBtX21hcmtlZEpTVmFsdWVS
ZWZBcnJheXM7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWFjaGluZVRocmVhZHM+IG1fbWFjaGlu
ZVRocmVhZHM7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YXJrZWRTcGFjZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApp
bmRleCBhZDM2NjIyZjFiNTdkZDY2YmNjZjNkOWFhNGZmMjE4NjBjMzEyNzBhLi44OTM2ZTUxYTZi
ZTczNjdiZjVhMWEzOTk2MDRiZjE3ZGZkYzc0OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtlZFNwYWNlLmgKQEAgLTE3MywxMSArMTczLDYgQEAgY2xhc3MgTWFya2VkU3BhY2Ug
ewogICAgIC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2UgaGF2ZSBmbGlwcGVk
IGJ1dCB0aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KICAgICBib29sIGlzTWFy
a2luZygpIGNvbnN0IHsgcmV0dXJuIG1faXNNYXJraW5nOyB9CiAgICAgCi0gICAgV2Vha1NldCog
YWN0aXZlV2Vha1NldHNCZWdpbigpIHsgcmV0dXJuIG1fYWN0aXZlV2Vha1NldHMuYmVnaW4oKTsg
fQotICAgIFdlYWtTZXQqIGFjdGl2ZVdlYWtTZXRzRW5kKCkgeyByZXR1cm4gbV9hY3RpdmVXZWFr
U2V0cy5lbmQoKTsgfQotICAgIFdlYWtTZXQqIG5ld0FjdGl2ZVdlYWtTZXRzQmVnaW4oKSB7IHJl
dHVybiBtX25ld0FjdGl2ZVdlYWtTZXRzLmJlZ2luKCk7IH0KLSAgICBXZWFrU2V0KiBuZXdBY3Rp
dmVXZWFrU2V0c0VuZCgpIHsgcmV0dXJuIG1fbmV3QWN0aXZlV2Vha1NldHMuZW5kKCk7IH0KLSAg
ICAKICAgICB2b2lkIGR1bXBCaXRzKFByaW50U3RyZWFtJiA9IFdURjo6ZGF0YUZpbGUoKSk7CiAg
ICAgCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHN0ZDo6YXJyYXk8c2l6ZV90LCBudW1T
aXplQ2xhc3Nlcz4gc19zaXplQ2xhc3NGb3JTaXplU3RlcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ0xpc3QuaAppbmRleCA5NDliOWIwOTFhOWY1YTM1Y2YwNWNlNGNhZmUyNzQyODQz
MGYyYTZlLi43NjVlYTU4YWMxMGZjZDg0ZjNmZjM3NTI4ZTc5ZjZjNzg1NGVmMWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNz
IE1hcmtlZEFyZ3VtZW50QnVmZmVyIDogcHVibGljIFJlY29yZE92ZXJmbG93IHsKIAogcHVibGlj
OgogICAgIHVzaW5nIEJhc2UgPSBSZWNvcmRPdmVyZmxvdzsKLSAgICBzdGF0aWMgY29uc3Qgc2l6
ZV90IGlubGluZUNhcGFjaXR5ID0gODsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBpbmxp
bmVDYXBhY2l0eSA9IDg7CiAgICAgdHlwZWRlZiBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVy
Kj4gTGlzdFNldDsKIAogICAgIC8vIENvbnN0cnVjdG9yIGZvciBhIHJlYWQtd3JpdGUgbGlzdCwg
dG8gd2hpY2ggeW91IG1heSBhcHBlbmQgdmFsdWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dURi9Db25maWd1cmF0aW9ucy9C
YXNlLnhjY29uZmlnCmluZGV4IDQzOTA3NTIxOThkMWI0OWY2OGNiZWJlYTM0NDNiNzM0MGMxZTM3
MzAuLmU4YWMxNzNjNTc1ZmEwNmI4Zjk4ODk4NTRjNGZkYjEwMTM4NmEzN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV1RG
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTk3LDcgKzk3LDcgQEAgR0NDX1dBUk5f
VU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlF
UzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKIFBSRUJJTkRJTkcgPSBOTzsKLVdB
Uk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0
cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAt
V2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4g
LVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0
ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAt
V3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2g7CitXQVJOSU5HX0NG
TEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25k
aXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNl
bGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2Vk
IC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5n
cyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xv
Z2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1XdmxhOwogSEVBREVSX1NFQVJD
SF9QQVRIUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKSQoV1RGX0lOU1RBTExfUEFUSF9QUkVGSVgp
L3Vzci9sb2NhbC9pbmNsdWRlICQoRFNUUk9PVCkkKFdURl9JTlNUQUxMX1BBVEhfUFJFRklYKS91
c3IvbG9jYWwvaW5jbHVkZSAkKGluaGVyaXRlZCk7CiBTWVNURU1fSEVBREVSX1NFQVJDSF9QQVRI
UyA9ICQoU0RLX0RJUikkKFdURl9JTlNUQUxMX1BBVEhfUFJFRklYKS91c3IvbG9jYWwvaW5jbHVk
ZSAkKGluaGVyaXRlZCk7CiBMSUJSQVJZX1NFQVJDSF9QQVRIUyA9ICQoU0RLX0RJUikkKFdURl9J
TlNUQUxMX1BBVEhfUFJFRklYKS91c3IvbG9jYWwvbGliICQoaW5oZXJpdGVkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwIGIvU291cmNlL1dURi93dGYvVVVJRC5jcHAKaW5k
ZXggM2M3NDMzMTU4NGJkNWNiYTBkN2U4MzRiMmMyZmVkOWFiNWI4MzU5NC4uY2U5ZmNiMGE3MWM2
MjhhYzRiY2YxNTViODEyYTQ0ZGQ5ZWU5ZTBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VVVJRC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVVVJRC5jcHAKQEAgLTcwLDggKzcwLDkgQEAg
U3RyaW5nIGJvb3RTZXNzaW9uVVVJRFN0cmluZygpCiAgICAgc3RhdGljIExhenlOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IGJvb3RTZXNzaW9uVVVJRDsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZUtleTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbXSB7Ci0gICAgICAgIHNpemVf
dCB1dWlkTGVuZ3RoID0gMzc7Ci0gICAgICAgIGNoYXIgdXVpZFt1dWlkTGVuZ3RoXTsKKyAgICAg
ICAgY29uc3RleHByIHNpemVfdCBtYXhVVUlETGVuZ3RoID0gMzc7CisgICAgICAgIGNoYXIgdXVp
ZFttYXhVVUlETGVuZ3RoXTsKKyAgICAgICAgc2l6ZV90IHV1aWRMZW5ndGggPSBtYXhVVUlETGVu
Z3RoOwogICAgICAgICBpZiAoc3lzY3RsYnluYW1lKCJrZXJuLmJvb3RzZXNzaW9udXVpZCIsIHV1
aWQsICZ1dWlkTGVuZ3RoLCBudWxscHRyLCAwKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgYm9vdFNlc3Npb25VVUlELmNvbnN0cnVjdChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4odXVp
ZCksIHV1aWRMZW5ndGggLSAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnCmluZGV4IDNkNGM1NTNmNTAxNTg4MTQ3NmVkYzk3NTMwMmI2Njg3YmExMGZiZTQu
LjQzYzE1NTM4MDI4NzE2Zjk4NGQzYWVkNzdiMWMzZjlmYzA3NjViNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKKysrIGIvU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtODgsNyArODgsNyBAQCBHQ0Nf
V0FSTl9TSUdOX0NPTVBBUkUgPSBZRVM7CiBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0g
WUVTOwogR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZB
UklBQkxFID0gWUVTOwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFs
IC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRv
a2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1X
bWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVj
bHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9i
YWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhy
b3VnaCAtV25vLXVua25vd24td2FybmluZy1vcHRpb247CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxs
IC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmlu
aXRpYWxpemVkIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5n
LWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1h
cml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGlt
ZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFy
ZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1XdmxhIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlv
bjsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIp
KTsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA4MTRiZTgz
YzllYzA5YTVmMzFiZTU1YzY2YzRhYmE3NTg4MTdiMjk1Li4wMDgzZTJhYWFhMzM5N2Q2Y2I4OTRh
YzgxN2U0ZDJjYWFiNjEyNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJh
dGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtODgsNyArODgsNyBAQCBHQ0NfV0FSTl9TSUdOX0NPTVBB
UkUgPSBZRVM7CiBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwogR0NDX1dBUk5f
VU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwot
V0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3Jp
cHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0y
IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVy
biAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dy
aXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3Jz
IC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV25vLXVua25v
d24td2FybmluZy1vcHRpb247CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0
LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0
cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1
dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFu
dC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAt
V2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZh
bGx0aHJvdWdoIC1XdmxhIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKIAogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KaW5kZXggZWJhMWJi
MGNlNDAzN2RmMzcxZTUyZjAyNWU2ZGE2YTAxNmI4MGZiZi4uM2U0Nzk2OTFiOWYwZGY3MmFiNTlh
ZjdhNmZiOTE0ZjdkMGMyMDU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21h
Yy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCkBAIC0yMjAsOCArMjIwLDkgQEAg
Ym9vbCB3cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIG1hc3Rl
cktleSwgY29uc3QgVmVjdG9yPHVpbnQKICAgICB3cmFwcGVkS0VLLnNocmluayh3cmFwcGVkS0VL
U2l6ZSk7CiAKICAgICBWZWN0b3I8dWludDhfdD4gZW5jcnlwdGVkS2V5KGtleS5zaXplKCkpOwot
ICAgIHNpemVfdCB0YWdMZW5ndGggPSAxNjsKLSAgICB1aW50OF90IHRhZ1t0YWdMZW5ndGhdOwor
ICAgIGNvbnN0ZXhwciBzaXplX3QgbWF4VGFnTGVuZ3RoID0gMTY7CisgICAgc2l6ZV90IHRhZ0xl
bmd0aCA9IG1heFRhZ0xlbmd0aDsKKyAgICB1aW50OF90IHRhZ1ttYXhUYWdMZW5ndGhdOwogCiAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBzdGF0dXMgPSBDQ0Ny
eXB0b3JHQ00oa0NDRW5jcnlwdCwga0NDQWxnb3JpdGhtQUVTMTI4LCBrZWsuZGF0YSgpLCBrZWsu
c2l6ZSgpLApAQCAtMjg3LDggKzI4OCw5IEBAIGJvb2wgdW53cmFwU2VyaWFsaXplZENyeXB0b0tl
eShjb25zdCBWZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBrZWsuc2hyaW5rKGtla1NpemUpOwogCi0gICAgc2l6ZV90
IHRhZ0xlbmd0aCA9IDE2OwotICAgIHVpbnQ4X3QgYWN0dWFsVGFnW3RhZ0xlbmd0aF07CisgICAg
Y29uc3RleHByIHNpemVfdCBtYXhUYWdMZW5ndGggPSAxNjsKKyAgICBzaXplX3QgdGFnTGVuZ3Ro
ID0gbWF4VGFnTGVuZ3RoOworICAgIHVpbnQ4X3QgYWN0dWFsVGFnW21heFRhZ0xlbmd0aF07CiAK
ICAgICBrZXkucmVzaXplKGVuY3J5cHRlZEtleS5zaXplKCkpOwogICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDlkN2JlYTg2OWI1Mzc3MzkyNmQy
MDA4NTczZjBjYzQ3OTg1MzhkNTMuLjQzY2Y2OWQ0YzRjODQwYjY0Njg3NWM0YjVjMzM3OWZiMzhm
YjA1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJl
bmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zOTMsOCArMzkzLDggQEAgV2ViR0xBbnkgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0NHTGVudW0gdGFyZ2V0
LCBHQ0cKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIG1fY29udGV4dC0+Z2V0SW50ZXJuYWxmb3Jt
YXRpdih0YXJnZXQsIGludGVybmFsZm9ybWF0LCBHcmFwaGljc0NvbnRleHRHTDo6TlVNX1NBTVBM
RV9DT1VOVFMsIDEsICZudW1WYWx1ZXMpOwogCi0gICAgR0NHTGludCBwYXJhbXNbbnVtVmFsdWVz
XTsKLSAgICBtX2NvbnRleHQtPmdldEludGVybmFsZm9ybWF0aXYodGFyZ2V0LCBpbnRlcm5hbGZv
cm1hdCwgcG5hbWUsIG51bVZhbHVlcywgcGFyYW1zKTsKKyAgICBWZWN0b3I8R0NHTGludD4gcGFy
YW1zKG51bVZhbHVlcyk7CisgICAgbV9jb250ZXh0LT5nZXRJbnRlcm5hbGZvcm1hdGl2KHRhcmdl
dCwgaW50ZXJuYWxmb3JtYXQsIHBuYW1lLCBudW1WYWx1ZXMsIHBhcmFtcy5kYXRhKCkpOwogI2Vs
c2UKICAgICAvLyBPbiBkZXNrdG9wIE9wZW5HTCA0LjEgb3IgYmVsb3cgd2UgbXVzdCBlbXVsYXRl
IGdsR2V0SW50ZXJuYWxmb3JtYXRpdi4KIApAQCAtNDIzLDEyICs0MjMsMTIgQEAgV2ViR0xBbnkg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0NHTGVu
dW0gdGFyZ2V0LCBHQ0cKICAgICAvLyBTaW5jZSBtdWx0aXNhbXBsaW5nIGlzIG5vdCBzdXBwb3J0
ZWQgZm9yIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBpbnRlcm5hbCBmb3JtYXRzLAogICAg
IC8vIHRoZSB2YWx1ZSBvZiBHTF9OVU1fU0FNUExFX0NPVU5UUyB3aWxsIGJlIHplcm8gZm9yIHN1
Y2ggZm9ybWF0cy4KICAgICBudW1WYWx1ZXMgPSBpc0ludGVnZXJGb3JtYXQoaW50ZXJuYWxmb3Jt
YXQpID8gMCA6IHNhbXBsZXMuc2l6ZSgpOwotICAgIEdDR0xpbnQgcGFyYW1zW251bVZhbHVlc107
CisgICAgVmVjdG9yPEdDR0xpbnQ+IHBhcmFtcyhudW1WYWx1ZXMpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90PihudW1WYWx1ZXMpOyArK2kpCiAgICAgICAg
IHBhcmFtc1tpXSA9IHNhbXBsZXNbaV07CiAjZW5kaWYKIAotICAgIHJldHVybiBJbnQzMkFycmF5
Ojp0cnlDcmVhdGUocGFyYW1zLCBudW1WYWx1ZXMpOworICAgIHJldHVybiBJbnQzMkFycmF5Ojp0
cnlDcmVhdGUocGFyYW1zLmRhdGEoKSwgbnVtVmFsdWVzKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjppbnZhbGlkYXRlRnJhbWVidWZmZXIoR0NHTGVudW0sIGNvbnN0IFZlY3Rv
cjxHQ0dMZW51bT4mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
ci5jcHAKaW5kZXggOGNjZDg4MTFiZTJkYTE3Y2ZmYTcxMzA2YTFmNWVjYzdkODFkZGZmMy4uYWU5
NThiMmY5MWVjNjgxYzdhZGFmN2JlMjgxYmUzYTE0Y2Q0NTM1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC0xNjcsOCArMTY3LDggQEAgdm9p
ZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmlj
ZXMoTm90aWZ5SWZEZXZpY2VzSGEKICAgICB9CiAKICAgICBzaXplX3QgZGV2aWNlQ291bnQgPSBk
YXRhU2l6ZSAvIHNpemVvZihBdWRpb09iamVjdElEKTsKLSAgICBBdWRpb09iamVjdElEIGRldmlj
ZUlEc1tkZXZpY2VDb3VudF07Ci0gICAgZXJyID0gQXVkaW9PYmplY3RHZXRQcm9wZXJ0eURhdGEo
a0F1ZGlvT2JqZWN0U3lzdGVtT2JqZWN0LCAmYWRkcmVzcywgMCwgbnVsbHB0ciwgJmRhdGFTaXpl
LCBkZXZpY2VJRHMpOworICAgIFZlY3RvcjxBdWRpb09iamVjdElEPiBkZXZpY2VJRHMoZGV2aWNl
Q291bnQpOworICAgIGVyciA9IEF1ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKGtBdWRpb09iamVj
dFN5c3RlbU9iamVjdCwgJmFkZHJlc3MsIDAsIG51bGxwdHIsICZkYXRhU2l6ZSwgZGV2aWNlSURz
LmRhdGEoKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBMT0coTWVkaWEsICJDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoJXApIGZhaWxl
ZCB0byBnZXQgZGV2aWNlIGxpc3QgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikm
ZXJyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjLm1tCmluZGV4IDU4MmE3MjMzMzNkOWI0NWUwMWI2ZTNmNDdhMzBkZWM5MDAwYzNl
NTkuLjUzOGVmZjkwYmFkNWMzNzAzMDUyZTMyOWI4MGQzZjM1OGI5YWY2ZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KQEAgLTYyLDggKzYyLDggQEAg
c3RhdGljIE9wdGlvbmFsPENHRGlyZWN0RGlzcGxheUlEPiB1cGRhdGVEaXNwbGF5SUQoQ0dEaXJl
Y3REaXNwbGF5SUQgZGlzcGxheUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
IH0KIAotICAgIENHRGlyZWN0RGlzcGxheUlEIGFjdGl2ZURpc3BsYXlzW2Rpc3BsYXlDb3VudF07
Ci0gICAgZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdChkaXNwbGF5Q291bnQsICYoYWN0aXZl
RGlzcGxheXNbMF0pLCAmZGlzcGxheUNvdW50KTsKKyAgICBWZWN0b3I8Q0dEaXJlY3REaXNwbGF5
SUQ+IGFjdGl2ZURpc3BsYXlzKGRpc3BsYXlDb3VudCk7CisgICAgZXJyID0gQ0dHZXRBY3RpdmVE
aXNwbGF5TGlzdChkaXNwbGF5Q291bnQsIGFjdGl2ZURpc3BsYXlzLmRhdGEoKSwgJmRpc3BsYXlD
b3VudCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkNHR2V0
QWN0aXZlRGlzcGxheUxpc3QoKSByZXR1cm5lZCBlcnJvciAlZCB3aGVuIHRyeWluZyB0byBnZXQg
dGhlIGFjdGl2ZSBkaXNwbGF5IGxpc3QiLCBzdGF0aWNfY2FzdDxpbnQ+KGVycikpOwogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMzE5LDggKzMxOSw4IEBAIHZvaWQgU2NyZWVuRGlz
cGxheUNhcHR1cmVTb3VyY2VNYWM6OnNjcmVlbkNhcHR1cmVEZXZpY2VzKFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIENHRGlyZWN0RGlzcGxheUlE
IGFjdGl2ZURpc3BsYXlzW2Rpc3BsYXlDb3VudF07Ci0gICAgZXJyID0gQ0dHZXRBY3RpdmVEaXNw
bGF5TGlzdChkaXNwbGF5Q291bnQsICYoYWN0aXZlRGlzcGxheXNbMF0pLCAmZGlzcGxheUNvdW50
KTsKKyAgICBWZWN0b3I8Q0dEaXJlY3REaXNwbGF5SUQ+IGFjdGl2ZURpc3BsYXlzKGRpc3BsYXlD
b3VudCk7CisgICAgZXJyID0gQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdChkaXNwbGF5Q291bnQsIGFj
dGl2ZURpc3BsYXlzLmRhdGEoKSwgJmRpc3BsYXlDb3VudCk7CiAgICAgaWYgKGVycikgewogICAg
ICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkNHR2V0QWN0aXZlRGlzcGxheUxpc3QoKSByZXR1cm5l
ZCBlcnJvciAlZCB3aGVuIHRyeWluZyB0byBnZXQgdGhlIGFjdGl2ZSBkaXNwbGF5IGxpc3QiLCAo
aW50KWVycik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggODZmZGExMjk5MmZjNWU2MjA0NGQ1
MDE2ZTA3MzI2OGU1NmU4YWRiZC4uY2MzN2Y4NmMyY2M3ZDYxNjU3ZDA5NDIwNWMyNTQ2YmQ2NGVl
NmU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWcKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWcKQEAgLTY0LDcgKzY0LDcgQEAgQ0xBTkdfV0FSTl9PQkpDX0lNUExJQ0lUX1JF
VEFJTl9TRUxGID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUwogR0ND
X1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0g
WUVTCi1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3Jp
cHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2Zvcm1hdC1zZWN1cml0eSAtV21pc3Np
bmctZm9ybWF0LWF0dHJpYnV0ZSAtV3BvaW50ZXItYXJpdGggLVd3cml0ZS1zdHJpbmdzIC1Xbm8t
dW51c2VkLXBhcmFtZXRlciAtV2V4aXQtdGltZS1kZXN0cnVjdG9yczsKK1dBUk5JTkdfQ0ZMQUdT
ID0gLVdhbGwgLVcgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11
bmluaXRpYWxpemVkIC1XZm9ybWF0LXNlY3VyaXR5IC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRl
IC1XcG9pbnRlci1hcml0aCAtV3dyaXRlLXN0cmluZ3MgLVduby11bnVzZWQtcGFyYW1ldGVyIC1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XdmxhOwogCiBFTkdJTkVFUklOR19CVUlMRF9ERUZJTkVT
ID0gJChFTkdJTkVFUklOR19CVUlMRF9ERUZJTkVTXyQoRU5HSU5FRVJJTkdfQlVJTEQpKTsKIEVO
R0lORUVSSU5HX0JVSUxEX0RFRklORVNfMSA9IEVOR0lORUVSSU5HX0JVSUxEPTE7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggNzhkMWM3NzU5M2FlMDk4
MzYxNGU0YTBjMmExZWU1MWE5NmU2MWQ5YS4uZDZhOTEwOWE1OTA4N2ZjYmFhNWI4NjFhMGQ0ZjM5
YzM1M2RmOWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZwpAQCAtODYsNyArODYsNyBAQCBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0Nf
V0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBPVEhFUl9NSUdGTEFHUyA9IC1GJChCVUlMVF9Q
Uk9EVUNUU19ESVIpOwogUFJFQklORElORyA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0
aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdC1zZWN1cml0eSAtV2luaXQtc2VsZiAtV21p
c3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVduby11bnVzZWQtcGFy
YW1ldGVyIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVm
IC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1
Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOworV0FS
TklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRz
IC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdC1zZWN1
cml0eSAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9y
ZXR1cm4gLVduby11bnVzZWQtcGFyYW1ldGVyIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIC1XdmxhOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9
ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VDpzdWZmaXg6aWRlbnRpZmllcikpOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMg
PSAxMDEzMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZwppbmRleCAyMDIzMTI5MTI3MjQzZDlkMzYxYjQ3M2IxYTVhZTZlNWVm
MzFiNTAxLi5kYThiZTlmNmExZmFhYWZlMzdhNWJjMjE2ZWU1OTFkYzI1YjY1YjE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcKQEAgLTg4LDcgKzg4LDcgQEAgQ0xBTkdfV0FSTl9ET0NVTUVOVEFUSU9OX0NPTU1FTlRTID0g
WUVTOwogT1RIRVJfTUlHRkxBR1MgPSAtRiQoQlVJTFRfUFJPRFVDVFNfRElSKTsKIENMQU5HX0FO
QUxZWkVSX0xPQ0FMSVpBQklMSVRZX05PTkxPQ0FMSVpFRCA9IFlFUzsKIFBSRUJJTkRJTkcgPSBO
TzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vi
c2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3Jt
YXQtc2VjdXJpdHkgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNz
aW5nLW5vcmV0dXJuIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV3BhY2tlZCAtV3BvaW50ZXItYXJp
dGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUt
ZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUg
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAt
V2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQg
LVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZv
cm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAt
V3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRl
LXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1X
dGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAogVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01B
Sk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L2JtYWxsb2MvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9ibWFsbG9jL0Nv
bmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggYzAwMGZiNjIxN2MzMGU1NmVmOTY1ZjRk
ZThhY2NlZDM0YTQwZjU5NC4uYjQwNDk3MGE2YzM0N2M1YzA4ZTMzZmExOWRjNzlhZTg4YzQ0YThm
NCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZworKysgYi9Tb3VyY2UvYm1hbGxvYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC05
NCw3ICs5NCw3IEBAIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVM7CiBHQ0NfV0FS
Tl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7
CiBQUkVCSU5ESU5HID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0
LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0
cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1
dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFu
dC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAt
V2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZh
bGx0aHJvdWdoOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1X
Y2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2Vu
cyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlz
c2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMg
LVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwt
Y29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3Vn
aCAtV3ZsYTsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50
aWZpZXIpKTsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI5MWVkNDJj
Mjg5NzZmNmE5Y2M5NDFhM2I0NGMyZjEwY2FlNWRkNTcuLmJkODI3NmNkYjU2M2Q2MzQxNGRlNGE1
MjdkMjdiNDFmYjdiMTJhZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxl
bmd0aC1hcnJheSAoVkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDb250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWc6CisgICAgICAgICogbGxkYi9sbGRiV2ViS2l0VGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWc6CisKIDIwMjAtMDMtMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBXS1dlYlZpZXcuX25lZ290aWF0ZWRMZWdhY3lUTFMg
c2hvdWxkIGJlIGNvcnJlY3QgYWZ0ZXIgYmFjay9mb3J3YXJkIG5hdmlnYXRpb25zCmRpZmYgLS1n
aXQgYS9Ub29scy9Db250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcgYi9Ub29scy9Db250ZW50RXh0ZW5zaW9uVGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2Uu
eGNjb25maWcKaW5kZXggYzE2N2RkMzI0NTE0MGJkODJiNmQ1NzEzOTdhMTFhYjQ0MmJmZDIxNC4u
NjdlNDc3NTRhZTUyNTgwMDhjNmJjYzczYjIxZTFjYzBmYmM2N2E0YiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ29udGVudEV4dGVuc2lvblRlc3Rlci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisr
KyBiL1Rvb2xzL0NvbnRlbnRFeHRlbnNpb25UZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2Nv
bmZpZwpAQCAtNjUsNyArNjUsNyBAQCBHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVT
OwogR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9G
VU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdf
Q0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4
dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmli
dXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRh
bnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMg
LVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1m
YWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAt
V2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1X
bWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3Bv
aW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdl
eGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2Fs
LWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAogVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2Vi
S2l0VGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Ub29scy9sbGRiL2xsZGJX
ZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA5MTRhOTIxODQx
N2IzZWZiNTJmZjUyMTE2ZjgzMTRhYjYzYTU2YzQ2Li4yZTk3NTRhYjc0ZmM4OTkzYjUwMGU5YjU4
NmUzYzAxOWVjNGRmYWUzIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRU
ZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtODIsNyArODIsNyBAQCBHQ0Nf
V0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOwogR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9B
VVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VO
VVNFRF9WQVJJQUJMRSA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2Nhc3QtcXVhbCAtV2NoYXIt
c3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2lu
Zy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXIt
YXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRp
bWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBh
cmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdjYXN0LXF1YWwg
LVdjaGFyLXN1YnNjcmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAt
V21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdw
b2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNh
bC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiAKIEhFQURFUl9TRUFSQ0hf
UEFUSFMgPSAke0JVSUxUX1BST0RVQ1RTX0RJUn0vdXNyL2xvY2FsL2luY2x1ZGU7CiAKZGlmZiAt
LWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMGYwOTMwNzczZGVlMWRmYzM5YzBjZWY2N2IyYjRhODgzNjc2MDdlYS4uZjQy
ZGVmYTNiNGU0MzY4MzAwZGIzYjMwZDE4MDM1ZDNiNDI3Y2MwMyAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAyMC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxB
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNZWRp
YVRpbWUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAyMC0wMi0xNyAgRG9uIE9s
bXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gVXNlIGJ1
aWx0aW4gdGFyZ2V0cwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9NZWRpYVRpbWUvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1BlcmZvcm1hbmNlVGVzdHMvTWVkaWFUaW1lL0Nv
bmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggMzVjMDg4OWY4YTViOGM2MmQwMmZlOTU3
MTMyNzI2N2Q1NTczNzJiYi4uMTAxMTU2YWRmZWNjYTQyMjllZTgyYzVmMmMyMDJjNThmYWE1NGVl
OCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9NZWRpYVRpbWUvQ29uZmlndXJhdGlvbnMv
QmFzZS54Y2NvbmZpZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL01lZGlhVGltZS9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnCkBAIC04Miw3ICs4Miw3IEBAIEdDQ19XQVJOX1VOSU5JVElBTEla
RURfQVVUT1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FS
Tl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBQUkVCSU5ESU5HID0gTk87Ci1XQVJOSU5HX0NGTEFH
UyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdleHRyYS10
b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAt
V21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRl
Y2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xv
YmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRo
cm91Z2g7CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFy
LXN1YnNjcmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3Np
bmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVy
LWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10
aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21w
YXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiBIRUFERVJfU0VBUkNIX1BBVEhTID0g
JChCVUlMVF9QUk9EVUNUU19ESVIpL3Vzci9sb2NhbC9pbmNsdWRlICQoRFNUUk9PVCkvdXNyL2xv
Y2FsL2luY2x1ZGUgaWN1ICQoSEVBREVSX1NFQVJDSF9QQVRIUyk7CiAKIFRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7Cg==
</data>
<flag name="review"
          id="408981"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393610</attachid>
            <date>2020-03-15 02:55:36 -0700</date>
            <delta_ts>2020-03-15 02:55:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209043-20200315025536.patch</filename>
            <type>text/plain</type>
            <size>54684</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZGQ2MzIxMmQyOTJiNWQ3ODdkMjE4NzI1OTU5MjQ1YTRmMzQxZGVjLi4wMjRhYjBhMjU4ODNlNDc2
OWNhNWYxZjQ2YzIzNWM0MGZlYjljZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgVGhpcyBwYXRjaCBkaXNh
YmxlcyB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkuIElmIHRoaXMgZmVhdHVyZSB1c2VzIHVz
ZXItaW5wdXQsIHVzZXIgY2FuCisgICAgICAgIGNvbnRyb2wgdGhlIHN0YWNrIGhlaWdodCBjb25z
dW1lZCBieSBDKysgY29kZS4gVGhpcyBwYXRjaCBhdm9pZHMgdXNpbmcgVkxBLiBUbyBhY2hpZXZl
IHRoYXQsCisKKyAgICAgICAgICAgIDEuIFdlIHNldCBgLVd2bGFgIHdhcm5pbmcgb3B0aW9uIHRv
IHRyaWdnZXIgd2FybmluZ3MgaWYgaXQgaXMgdXNlZC4KKyAgICAgICAgICAgIDIuIEludHJvZHVj
ZSBNYXJrZWRKU1ZhbHVlUmVmQXJyYXkgZm9yIEFQSS4gVGhpcyByZXBsYWNlcyBgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbdmFyaWFibGVMZW5ndGhdYCB1c2UgY2FzZS4KKyAgICAgICAgICAgICAgIE1h
cmtlZEpTVmFsdWVSZWZBcnJheSByZWdpc3RlcnMgaXRzZWxmIHRvIEpTQyBHQyBzbyB0aGF0IEdD
IGNhbiBtYXJrIGl0IGFzIGEgc3Ryb25nIHJvb3QuCisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0
Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY3VycmVudEFyZ3VtZW50c10pOgorICAgICAgICAq
IEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAoLVtKU1ZhbHVlIGNhbGxXaXRoQXJndW1lbnRzOl0p
OgorICAgICAgICAoLVtKU1ZhbHVlIGNvbnN0cnVjdFdpdGhBcmd1bWVudHM6XSk6CisgICAgICAg
ICgtW0pTVmFsdWUgaW52b2tlTWV0aG9kOndpdGhBcmd1bWVudHM6XSk6CisgICAgICAgICogQVBJ
L01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRK
U1ZhbHVlUmVmQXJyYXk6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgIChKU0M6Ok1h
cmtlZEpTVmFsdWVSZWZBcnJheTo6fk1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgIChK
U0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheTo6dmlzaXRBZ2dyZWdhdGUpOgorICAgICAgICAqIEFQ
SS9NYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaDogQWRkZWQuCisgICAgICAgICogQVBJL3Rlc3RzL21p
bmlkb20uYzoKKyAgICAgICAgKHByaW50KToKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5j
cHA6CisgICAgICAgIChUZXN0QVBJOjptYXJrZWRKU1ZhbHVlQXJyYXlBbmRHQyk6CisgICAgICAg
ICh0ZXN0Q0FQSVZpYUNwcCk6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZzoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAg
IChKU0M6OkhlYXA6OmFkZENvcmVDb25zdHJhaW50cyk6CisgICAgICAgIChKU0M6OkhlYXA6OmFk
ZE1hcmtlZEpTVmFsdWVSZWZBcnJheSk6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAg
ICogaGVhcC9NYXJrZWRTcGFjZS5oOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6YWN0aXZl
V2Vha1NldHNCZWdpbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjphY3Rp
dmVXZWFrU2V0c0VuZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpuZXdB
Y3RpdmVXZWFrU2V0c0JlZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6
Om5ld0FjdGl2ZVdlYWtTZXRzRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FyZ0xp
c3QuaDoKKwogMjAyMC0wMy0xNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLiBGaXggd2luZG93cyBidWlsZCBieSBtYWtpbmcgY29uZmlnU2l6
ZVRvUHJvdGVjdCBzdGF5IDRLQi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYmFjNGZjMGZjNWQzMmViMThiNzVlNGZkYjlmNjlj
MzVjYmQ4ZDk1NS4uMjAxMzdiNWYwMDNjMjAxZjkyMDMyYmYxNTU5NTQ2MTI4NzU3MmZkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgorCisgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAo
VkxBKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5
MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIHd0Zi9VVUlELmNwcDoKKyAgICAgICAg
KFdURjo6Ym9vdFNlc3Npb25VVUlEU3RyaW5nKToKKwogMjAyMC0wMy0xMyAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gUHVzaCBhcHBs
aWNhdGlvblNES1ZlcnNpb24oKSBkb3duIGZyb20gV2ViQ29yZSBpbnRvIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDU4NDM2ZWYzN2U3OTAxNTljMWZiMjZmZGY0MzNjZTI2NDBhMzA2OTQuLjc0Mjg0NDhjZTAz
NmQ0YjJiYTAxYjk2YjM1YWI2OWJhNTc2NjhjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAg
ICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDQzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhj
Y29uZmlnOgorICAgICAgICAqIGNyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjp3cmFwU2VyaWFsaXplZENyeXB0b0tleSk6CisgICAgICAg
IChXZWJDb3JlOjp1bndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnJl
ZnJlc2hBdWRpb0NhcHR1cmVEZXZpY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3Jl
Ojp1cGRhdGVEaXNwbGF5SUQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWM6OnNjcmVlbkNhcHR1cmVEZXZpY2VzKToKKwogMjAyMC0wMy0xNCAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbWlzc2luZyBjaGVj
a3MgbmVlZGVkIGZvciBBcHBCb3VuZCBRdWlyawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMGZjYTFm
N2ZkZTM1MDc2ZWFiYTY2ODVjZDUxYzc5ZWZlMjRiNjkwZi4uZGNhNThjYjI5NmI4NmVkMGY0ZDFj
NDg5M2M0YjdiODkxYjUzYzJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMjAtMDMtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2Nv
bmZpZzoKKwogMjAyMC0wMy0xMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCBz
aG91bGQgbm90IGJlIGNhbGxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggYzNmNTE3ZDM1
NGI5ZmRjOGZmOGJiOTM0ZTM0YjQzYmRmOTBkMjhhYy4uNDM3OGE2YzRkMGE1ZTgxMDMxYzJmZTll
NDlkODJkYThiMDExNThkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMjAtMDMtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAg
ICAgICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAg
IFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZzoKKwogMjAyMC0wMy0xMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjUzNzU5KTogV2ViIEluc3BlY3RvcjogQXVkaXRzOiBy
ZXN1bHRzIGZvbGRlciBkb2Vzbid0IGdldCBzZWxlY3RlZCBieSBwcmVzc2luZyBBcnJvdyBEb3du
IGtleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA4OTY2NjQ4ZjZjMmUyMDNlOWM4NDkyZTAxMzFmYWE4NGMwZGE0NTVi
Li40ZTJiM2U2NWI1Y2JkZjVlMjMwZjcyZmQ0OWY5NjI0MDBhMjgxMjU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTAzLTE1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNDMK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIENvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICogVUlQcm9jZXNzL19XS1RvdWNoRXZlbnRHZW5l
cmF0b3IubW06CisgICAgICAgICgtW19XS1RvdWNoRXZlbnRHZW5lcmF0b3IgdG91Y2hEb3duOnRv
dWNoQ291bnQ6XSk6CisgICAgICAgICgtW19XS1RvdWNoRXZlbnRHZW5lcmF0b3IgbGlmdFVwOnRv
dWNoQ291bnQ6XSk6CisgICAgICAgICgtW19XS1RvdWNoRXZlbnRHZW5lcmF0b3IgbW92ZVRvUG9p
bnRzOnRvdWNoQ291bnQ6ZHVyYXRpb246XSk6CisKIDIwMjAtMDMtMTQgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgImRlbGl2ZXIgY2FjaGVkIHJh
bmdlcyIgbG9naWMgaW4gUERGUGx1Z2luIChhbmQgb3RoZXIgc21hbGwgY2xlYW51cHMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzFhZTg3YzE4YTdlZWFmMDM1M2VjODMzMTA2NDll
YjIxYTE2M2VhMy4uZjgwMjY3YTU5MGYzZGIwMTNlNWI0ZWY5YjU1MTU4OWRiNzczZWJlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTE1ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1
c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJr
IExhbS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisKIDIwMjAt
MDMtMTIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29y
cmVjdCBwcmVmZXJlbmNlIGhhbmRsaW5nIGFuZCBuYW1pbmcgY29udmVudGlvbnMgaW4gQXBwQm91
bmQgYnJvd3NpbmcgcHJlZmVyZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwppbmRleCBlNTM3ODdiODkwZGJjMzg5YzE0
NDJjZjI4MWQ3ZWM1ZWU3MDU5Y2IxLi5lMDIzNWI0ZDlmNmFiMzI3NTlhZWM5MTBkZmE3MjM2ZjQx
Mjk3ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L2JtYWxsb2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTUgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJp
YWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwOTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKwogMjAyMC0wMy0xMyAg
U2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBjb25maWdTaXplVG9Q
cm90ZWN0IHNob3VsZCBiZSAxNktCCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ29udGV4dC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0Lm1t
CmluZGV4IDkxMmNlYjNlOWVjMWMxYWY3ZDY1ZjEyYTFlMDAyMTA2ODEyNDJhYzAuLmI4NTNiODFi
N2I3MjYxODVjZTU2MjUxNTNmNzFhYmJlZTI4YTA5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0Lm1tCkBAIC0yMzIsMTAgKzIzMiwxMCBAQCArIChOU0FycmF5ICopY3VycmVu
dEFyZ3VtZW50cwogICAgIGlmICghZW50cnktPmN1cnJlbnRBcmd1bWVudHMpIHsKICAgICAgICAg
SlNDb250ZXh0ICpjb250ZXh0ID0gW0pTQ29udGV4dCBjdXJyZW50Q29udGV4dF07CiAgICAgICAg
IHNpemVfdCBjb3VudCA9IGVudHJ5LT5hcmd1bWVudENvdW50OwotICAgICAgICBKU1ZhbHVlICog
YXJndW1lbnRBcnJheVtjb3VudF07Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPTA7IGkgPCBjb3Vu
dDsgKytpKQotICAgICAgICAgICAgYXJndW1lbnRBcnJheVtpXSA9IFtKU1ZhbHVlIHZhbHVlV2l0
aEpTVmFsdWVSZWY6ZW50cnktPmFyZ3VtZW50c1tpXSBpbkNvbnRleHQ6Y29udGV4dF07Ci0gICAg
ICAgIGVudHJ5LT5jdXJyZW50QXJndW1lbnRzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9i
amVjdHM6YXJndW1lbnRBcnJheSBjb3VudDpjb3VudF07CisgICAgICAgIE5TTXV0YWJsZUFycmF5
ICphcmd1bWVudHMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OmNv
dW50XTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAg
ICAgICAgW2FyZ3VtZW50cyBzZXRPYmplY3Q6W0pTVmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjpl
bnRyeS0+YXJndW1lbnRzW2ldIGluQ29udGV4dDpjb250ZXh0XSBhdEluZGV4ZWRTdWJzY3JpcHQ6
aV07CisgICAgICAgIGVudHJ5LT5jdXJyZW50QXJndW1lbnRzID0gYXJndW1lbnRzOwogICAgIH0K
IAogICAgIHJldHVybiBlbnRyeS0+Y3VycmVudEFyZ3VtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWYWx1ZS5tbQppbmRleCBlMThhNWNmNzc3MDQ2OGM2ZWQwNTk3OGI5MGRjYmQzN2M3Yzg0
YzlhLi5mNjBkMWZiMzNlNDZjNTM3MzNjMDkwMzEyMzlkOGY2OWI0YWIxM2Q4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0ICJKU1Zh
bHVlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkpTVmFsdWVQcml2YXRlLmgiCiAjaW1wb3J0ICJKU1dy
YXBwZXJNYXAuaCIKKyNpbXBvcnQgIk1hcmtlZEpTVmFsdWVSZWZBcnJheS5oIgogI2ltcG9ydCAi
T2JqY1J1bnRpbWVFeHRyYXMuaCIKICNpbXBvcnQgIkpTQ0lubGluZXMuaCIKICNpbXBvcnQgIkpT
Q0pTVmFsdWUuaCIKQEAgLTQ3Miw4ICs0NzMsMTIgQEAgLSAoQk9PTClpc0luc3RhbmNlT2Y6KGlk
KXZhbHVlCiAKIC0gKEpTVmFsdWUgKiljYWxsV2l0aEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3Vt
ZW50QXJyYXkKIHsKKyAgICBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pT
KFtfY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdKTsKKyAgICBKU0M6OlZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodm0pOworCiAgICAg
TlNVSW50ZWdlciBhcmd1bWVudENvdW50ID0gW2FyZ3VtZW50QXJyYXkgY291bnRdOwotICAgIEpT
VmFsdWVSZWYgYXJndW1lbnRzW2FyZ3VtZW50Q291bnRdOworICAgIEpTQzo6TWFya2VkSlNWYWx1
ZVJlZkFycmF5IGFyZ3VtZW50cyhbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJndW1l
bnRDb3VudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFyZ3VtZW50Q291bnQ7ICsr
aSkKICAgICAgICAgYXJndW1lbnRzW2ldID0gb2JqZWN0VG9WYWx1ZShfY29udGV4dCwgW2FyZ3Vt
ZW50QXJyYXkgb2JqZWN0QXRJbmRleDppXSk7CiAKQEAgLTQ4Miw3ICs0ODcsNyBAQCAtIChKU1Zh
bHVlICopY2FsbFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiAgICAgaWYg
KGV4Y2VwdGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4dCB2YWx1ZUZyb21Ob3RpZnlFeGNl
cHRpb246ZXhjZXB0aW9uXTsKIAotICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNPYmplY3RDYWxs
QXNGdW5jdGlvbihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgb2JqZWN0LCAwLCBhcmd1
bWVudENvdW50LCBhcmd1bWVudHMsICZleGNlcHRpb24pOworICAgIEpTVmFsdWVSZWYgcmVzdWx0
ID0gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwg
b2JqZWN0LCAwLCBhcmd1bWVudENvdW50LCBhcmd1bWVudHMuZGF0YSgpLCAmZXhjZXB0aW9uKTsK
ICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICByZXR1cm4gW19jb250ZXh0IHZhbHVlRnJvbU5v
dGlmeUV4Y2VwdGlvbjpleGNlcHRpb25dOwogCkBAIC00OTEsOCArNDk2LDEyIEBAIC0gKEpTVmFs
dWUgKiljYWxsV2l0aEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50QXJyYXkKIAogLSAoSlNW
YWx1ZSAqKWNvbnN0cnVjdFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiB7
CisgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhbX2NvbnRleHQg
SlNHbG9iYWxDb250ZXh0UmVmXSk7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKKwogICAgIE5TVUludGVnZXIg
YXJndW1lbnRDb3VudCA9IFthcmd1bWVudEFycmF5IGNvdW50XTsKLSAgICBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1thcmd1bWVudENvdW50XTsKKyAgICBKU0M6Ok1hcmtlZEpTVmFsdWVSZWZBcnJheSBh
cmd1bWVudHMoW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIGFyZ3VtZW50Q291bnQpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmd1bWVudENvdW50OyArK2kpCiAgICAgICAg
IGFyZ3VtZW50c1tpXSA9IG9iamVjdFRvVmFsdWUoX2NvbnRleHQsIFthcmd1bWVudEFycmF5IG9i
amVjdEF0SW5kZXg6aV0pOwogCkBAIC01MDEsNyArNTEwLDcgQEAgLSAoSlNWYWx1ZSAqKWNvbnN0
cnVjdFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiAgICAgaWYgKGV4Y2Vw
dGlvbikKICAgICAgICAgcmV0dXJuIFtfY29udGV4dCB2YWx1ZUZyb21Ob3RpZnlFeGNlcHRpb246
ZXhjZXB0aW9uXTsKIAotICAgIEpTT2JqZWN0UmVmIHJlc3VsdCA9IEpTT2JqZWN0Q2FsbEFzQ29u
c3RydWN0b3IoW19jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIG9iamVjdCwgYXJndW1lbnRD
b3VudCwgYXJndW1lbnRzLCAmZXhjZXB0aW9uKTsKKyAgICBKU09iamVjdFJlZiByZXN1bHQgPSBK
U09iamVjdENhbGxBc0NvbnN0cnVjdG9yKFtfY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBv
YmplY3QsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50cy5kYXRhKCksICZleGNlcHRpb24pOwogICAg
IGlmIChleGNlcHRpb24pCiAgICAgICAgIHJldHVybiBbX2NvbnRleHQgdmFsdWVGcm9tTm90aWZ5
RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAKQEAgLTUxMCw4ICs1MTksMTIgQEAgLSAoSlNWYWx1ZSAq
KWNvbnN0cnVjdFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudEFycmF5CiAKIC0gKEpT
VmFsdWUgKilpbnZva2VNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9kIHdpdGhBcmd1bWVudHM6KE5T
QXJyYXkgKilhcmd1bWVudHMKIHsKKyAgICBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSB0b0pTKFtfY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdKTsKKyAgICBKU0M6OlZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodm0p
OworCiAgICAgTlNVSW50ZWdlciBhcmd1bWVudENvdW50ID0gW2FyZ3VtZW50cyBjb3VudF07Ci0g
ICAgSlNWYWx1ZVJlZiBhcmd1bWVudEFycmF5W2FyZ3VtZW50Q291bnRdOworICAgIEpTQzo6TWFy
a2VkSlNWYWx1ZVJlZkFycmF5IGFyZ3VtZW50QXJyYXkoW19jb250ZXh0IEpTR2xvYmFsQ29udGV4
dFJlZl0sIGFyZ3VtZW50Q291bnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmd1
bWVudENvdW50OyArK2kpCiAgICAgICAgIGFyZ3VtZW50QXJyYXlbaV0gPSBvYmplY3RUb1ZhbHVl
KF9jb250ZXh0LCBbYXJndW1lbnRzIG9iamVjdEF0SW5kZXg6aV0pOwogCkBAIC01MjksNyArNTQy
LDcgQEAgLSAoSlNWYWx1ZSAqKWludm9rZU1ldGhvZDooTlNTdHJpbmcgKiltZXRob2Qgd2l0aEFy
Z3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50cwogICAgIGlmIChleGNlcHRpb24pCiAgICAgICAg
IHJldHVybiBbX2NvbnRleHQgdmFsdWVGcm9tTm90aWZ5RXhjZXB0aW9uOmV4Y2VwdGlvbl07CiAK
LSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW19jb250ZXh0
IEpTR2xvYmFsQ29udGV4dFJlZl0sIG9iamVjdCwgdGhpc09iamVjdCwgYXJndW1lbnRDb3VudCwg
YXJndW1lbnRBcnJheSwgJmV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09i
amVjdENhbGxBc0Z1bmN0aW9uKFtfY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBvYmplY3Qs
IHRoaXNPYmplY3QsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50QXJyYXkuZGF0YSgpLCAmZXhjZXB0
aW9uKTsKICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICByZXR1cm4gW19jb250ZXh0IHZhbHVl
RnJvbU5vdGlmeUV4Y2VwdGlvbjpleGNlcHRpb25dOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL01hcmtlZEpTVmFsdWVSZWZBcnJheS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU5OTIx
NjY3MzJlODQ5ZWE1OGVmMjY4MGU3MTRhY2RjYWZhMmJkOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvTWFya2VkSlNWYWx1ZVJlZkFycmF5LmNwcApAQCAtMCww
ICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1hcmtlZEpTVmFsdWVSZWZBcnJheS5oIgor
CisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNs
dWRlICJKU09iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworTWFya2VkSlNWYWx1ZVJlZkFy
cmF5OjpNYXJrZWRKU1ZhbHVlUmVmQXJyYXkoSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIHVu
c2lnbmVkIHNpemUpCisgICAgOiBtX3NpemUoc2l6ZSkKK3sKKyAgICBpZiAobV9zaXplID4gTWFy
a2VkQXJndW1lbnRCdWZmZXI6OmlubGluZUNhcGFjaXR5KSB7CisgICAgICAgIG1fYnVmZmVyID0g
QnVmZmVyVW5pcXVlUHRyOjpjcmVhdGUobV9zaXplKTsKKyAgICAgICAgdG9KUyhjb250ZXh0KS0+
dm0oKS5oZWFwLmFkZE1hcmtlZEpTVmFsdWVSZWZBcnJheSh0aGlzKTsKKyAgICAgICAgQVNTRVJU
KGlzT25MaXN0KCkpOworICAgIH0KK30KKworTWFya2VkSlNWYWx1ZVJlZkFycmF5Ojp+TWFya2Vk
SlNWYWx1ZVJlZkFycmF5KCkKK3sKKyAgICBpZiAoaXNPbkxpc3QoKSkKKyAgICAgICAgcmVtb3Zl
KCk7Cit9CisKK3ZvaWQgTWFya2VkSlNWYWx1ZVJlZkFycmF5Ojp2aXNpdEFnZ3JlZ2F0ZShTbG90
VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBKU1ZhbHVlUmVmKiBidWZmZXIgPSBkYXRhKCk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbV9zaXplOyArK2luZGV4KSB7Cisg
ICAgICAgIEpTVmFsdWVSZWYgdmFsdWUgPSBidWZmZXJbaW5kZXhdOworI2lmICFDUFUoQUREUkVT
UzY0KQorICAgICAgICBKU0NlbGwqIGpzQ2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4o
Y29uc3RfY2FzdDxPcGFxdWVKU1ZhbHVlKj4odmFsdWUpKTsKKyAgICAgICAgaWYgKCFqc0NlbGwp
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJl
ZChqc0NlbGwpOyAvLyBXZSBzaG91bGQgbWFyayB0aGUgd3JhcHBlciBpdHNlbGYgdG8ga2VlcCBK
U1ZhbHVlUmVmIGxpdmUuCisjZWxzZQorICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVk
KGJpdHdpc2VfY2FzdDxKU1ZhbHVlPih2YWx1ZSkpOworI2VuZGlmCisgICAgfQorfQorCit9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvTWFy
a2VkSlNWYWx1ZVJlZkFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL01hcmtlZEpT
VmFsdWVSZWZBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZGU1MGUyMDgyNzk3MDZmNDZhOGEzZTJiNWQx
NmFlYWE3NDczM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L01hcmtlZEpTVmFsdWVSZWZBcnJheS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkFyZ0xpc3QuaCIKKyNpbmNsdWRlIDx3dGYvRm9yYmlkSGVhcEFsbG9jYXRpb24uaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvTm9ubW92YWJsZS5oPgorCitu
YW1lc3BhY2UgSlNDIHsKKworY2xhc3MgTWFya2VkSlNWYWx1ZVJlZkFycmF5IGZpbmFsIDogcHVi
bGljIEJhc2ljUmF3U2VudGluZWxOb2RlPE1hcmtlZEpTVmFsdWVSZWZBcnJheT4geworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKE1hcmtlZEpTVmFsdWVSZWZBcnJheSk7CisgICAgV1RGX01BS0Vf
Tk9OTU9WQUJMRShNYXJrZWRKU1ZhbHVlUmVmQXJyYXkpOworICAgIFdURl9GT1JCSURfSEVBUF9B
TExPQ0FUSU9OOworcHVibGljOgorICAgIHVzaW5nIEJ1ZmZlclVuaXF1ZVB0ciA9IENhZ2VkVW5p
cXVlUHRyPEdpZ2FjYWdlOjpKU1ZhbHVlLCBKU1ZhbHVlUmVmPjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHNpemVfdCBpbmxpbmVDYXBhY2l0eSA9IE1hcmtlZEFyZ3VtZW50QnVmZmVyOjppbmxpbmVD
YXBhY2l0eTsKKworICAgIEpTX0VYUE9SVF9QUklWQVRFIE1hcmtlZEpTVmFsdWVSZWZBcnJheShK
U0dsb2JhbENvbnRleHRSZWYsIHVuc2lnbmVkKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+TWFy
a2VkSlNWYWx1ZVJlZkFycmF5KCk7CisKKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2l6ZTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX3NpemU7IH0K
KworICAgIEpTVmFsdWVSZWYmIG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGRh
dGEoKVtpbmRleF07IH0KKworICAgIGNvbnN0IEpTVmFsdWVSZWYqIGRhdGEoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8TWFya2VkSlNWYWx1ZVJlZkFycmF5Kj4odGhp
cyktPmRhdGEoKTsKKyAgICB9CisKKyAgICBKU1ZhbHVlUmVmKiBkYXRhKCkKKyAgICB7CisgICAg
ICAgIGlmIChtX2J1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBtX2J1ZmZlci5nZXQobV9zaXpl
KTsKKyAgICAgICAgcmV0dXJuIG1faW5saW5lQnVmZmVyOworICAgIH0KKworICAgIHZvaWQgdmlz
aXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImKTsKKworcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX3Np
emU7CisgICAgSlNWYWx1ZVJlZiBtX2lubGluZUJ1ZmZlcltpbmxpbmVDYXBhY2l0eV0geyB9Owor
ICAgIEJ1ZmZlclVuaXF1ZVB0ciBtX2J1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9taW5pZG9tLmMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL21pbmlkb20uYwppbmRleCA2ZWJiMzk5YWMw
Yjk4NTE4YTE0MzE1NjRlZjA1Yjk4YmU3YTBmNWIxLi5mNGEwNzRjN2IwMDY0MDE1YjkzNDBjMWE4
NTA1MzJkYmI3NGUwY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL21pbmlkb20uYworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL21pbmlk
b20uYwpAQCAtODgsMTAgKzg4LDExIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHByaW50KEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTT2JqZWN0UmVmIHRoCiAgICAgaWYg
KGFyZ3VtZW50Q291bnQgPiAwKSB7CiAgICAgICAgIEpTU3RyaW5nUmVmIHN0cmluZyA9IEpTVmFs
dWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwogICAgICAg
ICBzaXplX3QgbnVtQ2hhcnMgPSBKU1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoc3Ry
aW5nKTsKLSAgICAgICAgY2hhciBzdHJpbmdVVEY4W251bUNoYXJzXTsKKyAgICAgICAgY2hhciog
c3RyaW5nVVRGOCA9IChjaGFyKiltYWxsb2MobnVtQ2hhcnMpOwogICAgICAgICBKU1N0cmluZ0dl
dFVURjhDU3RyaW5nKHN0cmluZywgc3RyaW5nVVRGOCwgbnVtQ2hhcnMpOwogICAgICAgICBwcmlu
dGYoIiVzXG4iLCBzdHJpbmdVVEY4KTsKICAgICAgICAgSlNTdHJpbmdSZWxlYXNlKHN0cmluZyk7
CisgICAgICAgIGZyZWUoc3RyaW5nVVRGOCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL3Rlc3RhcGkuY3BwCmluZGV4IDJhOWY4NmFhNGVmMTcxNGY2YzUzMGM1OWRlM2IyNWRiZmRl
MmRkNWQuLmU5YzViY2Y3MTU1NzgxZjQxOGVmMmY4OTc1NTliMWFlN2Q5YTBiODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJNYXJrZWRKU1Zh
bHVlUmVmQXJyYXkuaCIKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZlBy
aXZhdGUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFJlZlByaXZhdGUuaD4K
QEAgLTQyLDYgKzQzLDcgQEAKIAogZXh0ZXJuICJDIiB2b2lkIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmcoKTsKIGV4dGVybiAiQyIgaW50IHRlc3RDQVBJVmlhQ3BwKGNvbnN0IGNoYXIqIGZpbHRlcik7
CitleHRlcm4gIkMiIHZvaWQgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVidWdnaW5n
KEpTQ29udGV4dFJlZik7CiAKIGNsYXNzIEFQSVN0cmluZyB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQVBJU3RyaW5nKTsKQEAgLTE0NCw2ICsxNDYsNyBAQCBjbGFzcyBUZXN0QVBJIHsKICAg
ICB2b2lkIHByb21pc2VVbmhhbmRsZWRSZWplY3Rpb25Gcm9tVW5oYW5kbGVkUmVqZWN0aW9uQ2Fs
bGJhY2soKTsKICAgICB2b2lkIHByb21pc2VFYXJseUhhbmRsZWRSZWplY3Rpb25zKCk7CiAgICAg
dm9pZCB0b3BDYWxsRnJhbWVBY2Nlc3MoKTsKKyAgICB2b2lkIG1hcmtlZEpTVmFsdWVBcnJheUFu
ZEdDKCk7CiAKICAgICBpbnQgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsZWQ7IH0KIApA
QCAtNjIwLDYgKzYyMywzMyBAQCB2b2lkIFRlc3RBUEk6OnRvcENhbGxGcmFtZUFjY2VzcygpCiAg
ICAgfQogfQogCit2b2lkIFRlc3RBUEk6Om1hcmtlZEpTVmFsdWVBcnJheUFuZEdDKCkKK3sKKyAg
ICBhdXRvIHRlc3RNYXJrZWRKU1ZhbHVlQXJyYXkgPSBbJl0odW5zaWduZWQgY291bnQpIHsKKyAg
ICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsKKyAgICAgICAgSlNDOjpK
U0xvY2tIb2xkZXIgbG9ja2VyKGdsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgICAgIEpTQzo6TWFy
a2VkSlNWYWx1ZVJlZkFycmF5IHZhbHVlcyhjb250ZXh0LCBjb3VudCk7CisgICAgICAgIGZvciAo
dW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgICAg
ICBTdHJpbmcgdGFyZ2V0ID0gbWFrZVN0cmluZygiUHJlZml4IiwgaW5kZXgpOworICAgICAgICAg
ICAgYXV0byBob2xkZXIgPSBPcGFxdWVKU1N0cmluZzo6dHJ5Q3JlYXRlKHRhcmdldCk7CisgICAg
ICAgICAgICBKU1ZhbHVlUmVmIHN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGhv
bGRlci5nZXQoKSk7CisgICAgICAgICAgICB2YWx1ZXNbaW5kZXhdID0gc3RyaW5nOworICAgICAg
ICB9CisgICAgICAgIEpTU3luY2hyb25vdXNHYXJiYWdlQ29sbGVjdEZvckRlYnVnZ2luZyhjb250
ZXh0KTsKKyAgICAgICAgYm9vbCBvayA9IHRydWU7CisgICAgICAgIGZvciAodW5zaWduZWQgaW5k
ZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgICAgICBTdHJpbmcgdGFy
Z2V0ID0gbWFrZVN0cmluZygiUHJlZml4IiwgaW5kZXgpOworICAgICAgICAgICAgYXV0byBob2xk
ZXIgPSBPcGFxdWVKU1N0cmluZzo6dHJ5Q3JlYXRlKHRhcmdldCk7CisgICAgICAgICAgICBKU1Zh
bHVlUmVmIHN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGhvbGRlci5nZXQoKSk7
CisgICAgICAgICAgICBpZiAoIUpTVmFsdWVJc1N0cmljdEVxdWFsKGNvbnRleHQsIHZhbHVlc1tp
bmRleF0sIHN0cmluZykpCisgICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgfQor
ICAgICAgICBjaGVjayhvaywgIkhlbGQgSlNTdHJpbmcgc2hvdWxkIGJlIGFsaXZlIGFuZCBjb3Jy
ZWN0LiIpOworICAgIH07CisgICAgdGVzdE1hcmtlZEpTVmFsdWVBcnJheSg0KTsKKyAgICB0ZXN0
TWFya2VkSlNWYWx1ZUFycmF5KDEwMDApOworfQorCiB2b2lkIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmcoKQogewogICAgIEpTQzo6Q29uZmlnOjpjb25maWd1cmVGb3JUZXN0aW5nKCk7CkBAIC02NTks
NiArNjg5LDcgQEAgaW50IHRlc3RDQVBJVmlhQ3BwKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBS
VU4ocHJvbWlzZVVuaGFuZGxlZFJlamVjdGlvbigpKTsKICAgICBSVU4ocHJvbWlzZVVuaGFuZGxl
ZFJlamVjdGlvbkZyb21VbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjaygpKTsKICAgICBSVU4ocHJv
bWlzZUVhcmx5SGFuZGxlZFJlamVjdGlvbnMoKSk7CisgICAgUlVOKG1hcmtlZEpTVmFsdWVBcnJh
eUFuZEdDKCkpOwogCiAgICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkgewogICAgICAgICBkYXRhTG9n
TG4oIkZpbHRlcmVkIGFsbCB0ZXN0czogRVJST1IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggN2UwMzI2ODdlN2UzNTNm
ZGM2MWQwMmViNzUwMGRiZTNkNDM0N2MxMS4uN2U2MjUzZjg0NDM2NmYyZDZlMzQ0YTZjYWNiNzhi
YzI2ZGI5MGE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWcKQEAgLTk4LDcgKzk4LDcgQEAgR0NDX1dBUk5fVU5VU0VEX0ZVTkNU
SU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwogQ0xBTkdfV0FSTl9E
T0NVTUVOVEFUSU9OX0NPTU1FTlRTID0gWUVTOwogUFJFQklORElORyA9IE5POwotV0FSTklOR19D
RkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29u
ZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1z
ZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tl
ZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmlu
Z3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9s
b2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZMQUdTID0g
LVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFs
LXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21p
c3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2lu
dGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhp
dC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1j
b21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiAKIEhFQURFUl9TRUFSQ0hfUEFU
SFMgPSAuICIke0JVSUxUX1BST0RVQ1RTX0RJUn0vdXNyL2xvY2FsL2luY2x1ZGUiICQoSEVBREVS
X1NFQVJDSF9QQVRIUyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGFmY2Uw
MTVmOTBiYjI1MTA0YzhiNjFlMWI3Mjk1YzY3Y2MwMWNiMS4uOWUwZWUxZGU5ZTM0NzhjMGRhMzI4
NTNjZjE2YmQyMjU3MmFjMmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4
NDksNiArMTg0OSw3IEBACiAJCUUzQzc5Q0FCMURCOUE0REMwMEQxRUNBNCAvKiBET01KSVRFZmZl
Y3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzc5
Q0FBMURCOUE0RDYwMEQxRUNBNCAvKiBET01KSVRFZmZlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0M4RUQ0MzIzQTFEQkNCMDAxMzE5NTgg
LyogSXNvSW5saW5lZEhlYXBDZWxsVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNDOEVENDIyM0ExREJDNTAwMTMxOTU4IC8qIElzb0lubGluZWRI
ZWFwQ2VsbFR5cGUuaCAqLzsgfTsKIAkJRTNEMjM5QzkxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9k
dWxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzRDIzOUM3MUI4MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNEMzUx
NUYyNDFCODlENzAwOERDMTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJheS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNEMzUxNUQyNDFCODlDRTAwOERD
MTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJheS5oICovOyB9OwogCQlFM0Q4Nzc3NDFFNjVDMEEw
MDBCRTk0NUEgLyogQnl0ZWNvZGVEdW1wZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDg3NzcyMUU2NUMwODkwMEJFOTQ1QSAvKiBCeXRlY29kZUR1
bXBlci5oICovOyB9OwogCQlFM0VFMTM3NjIxRkJENDM1MDBEODNDNEIgLyogRXJyb3JUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0VFMTM3NDIx
RkJENDM0MDBEODNDNEIgLyogRXJyb3JUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNGMjNBN0YxRUNGMTNFRTAwOTc4RDk5IC8qIFNuaXBw
ZXRTbG93UGF0aENhbGxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0YyM0E3RTFFQ0YxM0U1MDA5NzhEOTkgLyogU25pcHBldFNsb3dQYXRoQ2FsbHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTAy
Niw2ICs1MDI3LDggQEAKIAkJRTNEMjY0MjgxRDM4QzA0MjAwMEJFMTc0IC8qIEJ5dGVjb2RlR3Jh
cGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0ZWNvZGVHcmFwaC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0QyNjQyOTFEMzhDMDQyMDAwQkUxNzQgLyog
Qnl0ZWNvZGVSZXdyaXRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBCeXRlY29kZVJld3JpdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNE
MjY0MkExRDM4QzA0MjAwMEJFMTc0IC8qIEJ5dGVjb2RlUmV3cml0ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0ZWNvZGVSZXdyaXRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFM0QzNTE1RDI0MUI4OUNFMDA4REMxNkUgLyogTWFya2VkSlNWYWx1ZVJl
ZkFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEpTVmFsdWVSZWZBcnJheS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFM0QzNTE1RTI0MUI4OUNGMDA4REMxNkUgLyogTWFya2Vk
SlNWYWx1ZVJlZkFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hcmtlZEpTVmFsdWVSZWZB
cnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRDg3NzcxMUU2NUMwODkw
MEJFOTQ1QSAvKiBCeXRlY29kZUR1bXBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCeXRlY29kZUR1bXBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzRDg3NzcyMUU2NUMwODkwMEJFOTQ1QSAvKiBCeXRlY29kZUR1bXBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlY29kZUR1bXBlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFM0VFMTM3NDIxRkJENDM0MDBEODNDNEIgLyogRXJyb3JUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVycm9yVHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjQxMSw2ICs2NDE0LDggQEAKIAkJCQk3QTk3NzRBNzIwNkI4
MkM5MDA4RDAzRDAgLyogSlNXZWFrVmFsdWUuaCAqLywKIAkJCQk4NkUzQzYwQzE2N0JBQjg3MDA2
RDc2MEEgLyogSlNXcmFwcGVyTWFwLmggKi8sCiAJCQkJODZFM0M2MEIxNjdCQUI4NzAwNkQ3NjBB
IC8qIEpTV3JhcHBlck1hcC5tbSAqLywKKwkJCQlFM0QzNTE1RTI0MUI4OUNGMDA4REMxNkUgLyog
TWFya2VkSlNWYWx1ZVJlZkFycmF5LmNwcCAqLywKKwkJCQlFM0QzNTE1RDI0MUI4OUNFMDA4REMx
NkUgLyogTWFya2VkSlNWYWx1ZVJlZkFycmF5LmggKi8sCiAJCQkJODZGM0VFQjkxNjhDQ0Y3NTAw
NzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggKi8sCiAJCQkJODZGM0VFQkExNjhDQ0Y3
NTAwNzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLm1tICovLAogCQkJCTg2RjNFRUI2MTY4
NTVBNUIwMDc3QjkyQSAvKiBPYmpjUnVudGltZUV4dHJhcy5oICovLApAQCAtOTk2Myw2ICs5OTY4
LDcgQEAKIAkJCQkxNDJENkYwOTEzNTM5QTI4MDBCMDJFODYgLyogTWFya2VkQmxvY2suaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGN0M1RkI4MUQ4ODhBMEMwMDQ0RjVFMiAvKiBNYXJrZWRCbG9ja0lu
bGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTQ0OENCMTNBMTc2RUMwMEY1QkExQSAvKiBN
YXJrZWRCbG9ja1NldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNEMzUxNUYyNDFCODlENzAwOERD
MTZFIC8qIE1hcmtlZEpTVmFsdWVSZWZBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTREMkYz
REIxMzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtlZFNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjdERjEzNTFFMjk3MERDMDA5NTk1MUIgLyogTWFya2VkU3BhY2VJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjY2MEUzODFFMDUxN0JCMDAzMTQ2MkMgLyogTWFya2luZ0NvbnN0cmFpbnQu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CmluZGV4IGUwMDk2NjY4
MmI1MjIxNDRiYzQ4OTEwNTlmMzllMWJjMjg2NmNmOWMuLmM3YjYzOGJjNDAxMWM5Y2Q0NGUxNjI5
OTdlMDkzYzhlMDRlNDIwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTQwLDYg
KzQwLDcgQEAgQVBJL0pTVmFsdWVSZWYuY3BwCiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0
ZS5jcHAKIEFQSS9KU1dlYWtQcml2YXRlLmNwcAogQVBJL0pTV2Vha1ZhbHVlLmNwcAorQVBJL01h
cmtlZEpTVmFsdWVSZWZBcnJheS5jcHAKIEFQSS9PcGFxdWVKU1N0cmluZy5jcHAKIAogYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwCmluZGV4IDAwN2U4YjU4MGRmMDcxOTUyYmIwYTM1NjFjNWZjYjY0MTUzMGNhNWEuLjZjNTgx
NDhjMWVlMjY0MmJjYTI2ZDdhMmYwNzZhMDBhNzQ5N2ExYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNv
ZGVCbG9jay5oIgogI2luY2x1ZGUgIk1hY2hpbmVTdGFja01hcmtlci5oIgogI2luY2x1ZGUgIk1h
cmtTdGFja01lcmdpbmdDb25zdHJhaW50LmgiCisjaW5jbHVkZSAiTWFya2VkSlNWYWx1ZVJlZkFy
cmF5LmgiCiAjaW5jbHVkZSAiTWFya2VkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTWFya2lu
Z0NvbnN0cmFpbnRTZXQuaCIKICNpbmNsdWRlICJQcmV2ZW50Q29sbGVjdGlvblNjb3BlLmgiCkBA
IC0yNzU4LDYgKzI3NTksMTAgQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAg
ICAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyOjptYXJrTGlzdHMoc2xvdFZpc2l0b3Is
ICptX21hcmtMaXN0U2V0KTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgbV9tYXJrZWRK
U1ZhbHVlUmVmQXJyYXlzLmZvckVhY2goWyZdIChNYXJrZWRKU1ZhbHVlUmVmQXJyYXkqIGFycmF5
KSB7CisgICAgICAgICAgICAgICAgYXJyYXktPnZpc2l0QWdncmVnYXRlKHNsb3RWaXNpdG9yKTsK
KyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgU2V0Um9v
dE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbjo6Vk1FeGNlcHRpb25zKTsKICAgICAgICAgICAgICAgICBzbG90VmlzaXRvci5h
cHBlbmRVbmJhcnJpZXJlZChtX3ZtLmV4Y2VwdGlvbigpKTsKQEAgLTMwMDIsNiArMzAwNywxMiBA
QCB2b2lkIEhlYXA6OnNldEJvbnVzVmlzaXRvclRhc2soUmVmUHRyPFNoYXJlZFRhc2s8dm9pZChT
bG90VmlzaXRvciYpPj4gdGFzaykKICAgICBtX21hcmtpbmdDb25kaXRpb25WYXJpYWJsZS5ub3Rp
ZnlBbGwoKTsKIH0KIAorCit2b2lkIEhlYXA6OmFkZE1hcmtlZEpTVmFsdWVSZWZBcnJheShNYXJr
ZWRKU1ZhbHVlUmVmQXJyYXkqIGFycmF5KQoreworICAgIG1fbWFya2VkSlNWYWx1ZVJlZkFycmF5
cy5hcHBlbmQoYXJyYXkpOworfQorCiB2b2lkIEhlYXA6OnJ1blRhc2tJblBhcmFsbGVsKFJlZlB0
cjxTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+IHRhc2spCiB7CiAgICAgdW5zaWduZWQg
aW5pdGlhbFJlZkNvdW50ID0gdGFzay0+cmVmQ291bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaAppbmRleCAyMzdmMThmYWRkM2VjYTk2OTA4NzczMGJkZTMwZjU0Njg0NTE3YjM4Li5iMGIz
NjFiMWEwZjZkZWRjZDNmOTYzM2ZkYTc0MmEzZmZhZmI4NjdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCkBAIC03Myw2ICs3Myw3IEBAIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsK
IGNsYXNzIE1hY2hpbmVUaHJlYWRzOwogY2xhc3MgTWFya1N0YWNrQXJyYXk7CiBjbGFzcyBNYXJr
U3RhY2tNZXJnaW5nQ29uc3RyYWludDsKK2NsYXNzIE1hcmtlZEpTVmFsdWVSZWZBcnJheTsKIGNs
YXNzIEJsb2NrRGlyZWN0b3J5OwogY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXI7CiBjbGFzcyBN
YXJraW5nQ29uc3RyYWludDsKQEAgLTI0MCw2ICsyNDEsNyBAQCBjbGFzcyBIZWFwIHsKICAgICBK
U19FWFBPUlRfUFJJVkFURSBzdGQ6OnVuaXF1ZV9wdHI8VHlwZUNvdW50U2V0PiBvYmplY3RUeXBl
Q291bnRzKCk7CiAKICAgICBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4mIG1hcmtMaXN0
U2V0KCk7CisgICAgdm9pZCBhZGRNYXJrZWRKU1ZhbHVlUmVmQXJyYXkoTWFya2VkSlNWYWx1ZVJl
ZkFycmF5Kik7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBmb3JF
YWNoUHJvdGVjdGVkQ2VsbChjb25zdCBGdW5jdG9yJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rvcj4gdm9pZCBmb3JFYWNoQ29kZUJsb2NrKGNvbnN0IEZ1bmN0b3ImKTsKQEAgLTYxNyw2
ICs2MTksNyBAQCBjbGFzcyBIZWFwIHsKIAogICAgIFByb3RlY3RDb3VudFNldCBtX3Byb3RlY3Rl
ZFZhbHVlczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZl
cio+PiBtX21hcmtMaXN0U2V0OworICAgIFNlbnRpbmVsTGlua2VkTGlzdDxNYXJrZWRKU1ZhbHVl
UmVmQXJyYXksIEJhc2ljUmF3U2VudGluZWxOb2RlPE1hcmtlZEpTVmFsdWVSZWZBcnJheT4+IG1f
bWFya2VkSlNWYWx1ZVJlZkFycmF5czsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNYWNoaW5lVGhy
ZWFkcz4gbV9tYWNoaW5lVGhyZWFkczsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YXJrZWRTcGFjZS5oCmluZGV4IGFkMzY2MjJmMWI1N2RkNjZiY2NmM2Q5YWE0ZmYyMTg2MGMzMTI3
MGEuLjg5MzZlNTFhNmJlNzM2N2JmNWExYTM5OTYwNGJmMTdkZmRjNzQ5ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTczLDExICsxNzMsNiBAQCBjbGFz
cyBNYXJrZWRTcGFjZSB7CiAgICAgLy8gV2hlbiB0aGlzIGlzIHRydWUgaXQgbWVhbnMgdGhhdCB3
ZSBoYXZlIGZsaXBwZWQgYnV0IHRoZSBtYXJrIGJpdHMgaGF2ZW4ndCBjb252ZXJnZWQgeWV0Lgog
ICAgIGJvb2wgaXNNYXJraW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc01hcmtpbmc7IH0KICAgICAK
LSAgICBXZWFrU2V0KiBhY3RpdmVXZWFrU2V0c0JlZ2luKCkgeyByZXR1cm4gbV9hY3RpdmVXZWFr
U2V0cy5iZWdpbigpOyB9Ci0gICAgV2Vha1NldCogYWN0aXZlV2Vha1NldHNFbmQoKSB7IHJldHVy
biBtX2FjdGl2ZVdlYWtTZXRzLmVuZCgpOyB9Ci0gICAgV2Vha1NldCogbmV3QWN0aXZlV2Vha1Nl
dHNCZWdpbigpIHsgcmV0dXJuIG1fbmV3QWN0aXZlV2Vha1NldHMuYmVnaW4oKTsgfQotICAgIFdl
YWtTZXQqIG5ld0FjdGl2ZVdlYWtTZXRzRW5kKCkgeyByZXR1cm4gbV9uZXdBY3RpdmVXZWFrU2V0
cy5lbmQoKTsgfQotICAgIAogICAgIHZvaWQgZHVtcEJpdHMoUHJpbnRTdHJlYW0mID0gV1RGOjpk
YXRhRmlsZSgpKTsKICAgICAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgc3RkOjphcnJh
eTxzaXplX3QsIG51bVNpemVDbGFzc2VzPiBzX3NpemVDbGFzc0ZvclNpemVTdGVwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCmluZGV4IDk0OWI5YjA5MWE5ZjVhMzVjZjA1
Y2U0Y2FmZTI3NDI4NDMwZjJhNmUuLjc2NWVhNThhYzEwZmNkODRmM2ZmMzc1MjhlNzlmNmM3ODU0
ZWYxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKQEAgLTM2LDcg
KzM2LDcgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZs
b3cgewogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFJlY29yZE92ZXJmbG93OwotICAgIHN0
YXRpYyBjb25zdCBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSA4OworICAgIHN0YXRpYyBjb25zdGV4
cHIgc2l6ZV90IGlubGluZUNhcGFjaXR5ID0gODsKICAgICB0eXBlZGVmIEhhc2hTZXQ8TWFya2Vk
QXJndW1lbnRCdWZmZXIqPiBMaXN0U2V0OwogCiAgICAgLy8gQ29uc3RydWN0b3IgZm9yIGEgcmVh
ZC13cml0ZSBsaXN0LCB0byB3aGljaCB5b3UgbWF5IGFwcGVuZCB2YWx1ZXMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvV1RGL0Nv
bmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggNDM5MDc1MjE5OGQxYjQ5ZjY4Y2JlYmVh
MzQ0M2I3MzQwYzFlMzczMC4uZThhYzE3M2M1NzVmYTA2YjhmOTg4OTg1NGM0ZmRiMTAxMzg2YTM3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisr
KyBiL1NvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtOTcsNyArOTcs
NyBAQCBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwogR0NDX1dBUk5fVU5VU0VE
X0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwogUFJFQklO
RElORyA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1X
Y2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2Vu
cyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlz
c2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMg
LVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwt
Y29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3Vn
aDsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vi
c2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3Jt
YXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9y
ZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYg
LVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVj
dG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7
CiBIRUFERVJfU0VBUkNIX1BBVEhTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpJChXVEZfSU5TVEFM
TF9QQVRIX1BSRUZJWCkvdXNyL2xvY2FsL2luY2x1ZGUgJChEU1RST09UKSQoV1RGX0lOU1RBTExf
UEFUSF9QUkVGSVgpL3Vzci9sb2NhbC9pbmNsdWRlICQoaW5oZXJpdGVkKTsKIFNZU1RFTV9IRUFE
RVJfU0VBUkNIX1BBVEhTID0gJChTREtfRElSKSQoV1RGX0lOU1RBTExfUEFUSF9QUkVGSVgpL3Vz
ci9sb2NhbC9pbmNsdWRlICQoaW5oZXJpdGVkKTsKIExJQlJBUllfU0VBUkNIX1BBVEhTID0gJChT
REtfRElSKSQoV1RGX0lOU1RBTExfUEFUSF9QUkVGSVgpL3Vzci9sb2NhbC9saWIgJChpbmhlcml0
ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9VVUlELmNwcAppbmRleCAzYzc0MzMxNTg0YmQ1Y2JhMGQ3ZTgzNGIyYzJmZWQ5YWI1YjgzNTk0
Li5jZTlmY2IwYTcxYzYyOGFjNGJjZjE1NWI4MTJhNDRkZDllZTllMGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9VVUlELmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcApAQCAt
NzAsOCArNzAsOSBAQCBTdHJpbmcgYm9vdFNlc3Npb25VVUlEU3RyaW5nKCkKICAgICBzdGF0aWMg
TGF6eU5ldmVyRGVzdHJveWVkPFN0cmluZz4gYm9vdFNlc3Npb25VVUlEOwogICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsK
LSAgICAgICAgc2l6ZV90IHV1aWRMZW5ndGggPSAzNzsKLSAgICAgICAgY2hhciB1dWlkW3V1aWRM
ZW5ndGhdOworICAgICAgICBjb25zdGV4cHIgc2l6ZV90IG1heFVVSURMZW5ndGggPSAzNzsKKyAg
ICAgICAgY2hhciB1dWlkW21heFVVSURMZW5ndGhdOworICAgICAgICBzaXplX3QgdXVpZExlbmd0
aCA9IG1heFVVSURMZW5ndGg7CiAgICAgICAgIGlmIChzeXNjdGxieW5hbWUoImtlcm4uYm9vdHNl
c3Npb251dWlkIiwgdXVpZCwgJnV1aWRMZW5ndGgsIG51bGxwdHIsIDApKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBib290U2Vzc2lvblVVSUQuY29uc3RydWN0KHN0YXRpY19jYXN0PGNv
bnN0IGNoYXIqPih1dWlkKSwgdXVpZExlbmd0aCAtIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggM2Q0YzU1M2Y1MDE1ODgxNDc2ZWRjOTc1MzAy
YjY2ODdiYTEwZmJlNC4uNDNjMTU1MzgwMjg3MTZmOTg0ZDNhZWQ3N2IxYzNmOWZjMDc2NWI3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC04OCw3
ICs4OCw3IEBAIEdDQ19XQVJOX1NJR05fQ09NUEFSRSA9IFlFUzsKIEdDQ19XQVJOX1VOSU5JVElB
TElaRURfQVVUT1MgPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0Nf
V0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0
cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxp
emVkIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1h
dC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAt
V3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0
cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2lt
cGxpY2l0LWZhbGx0aHJvdWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKK1dBUk5JTkdf
Q0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2Nv
bmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQt
c2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNr
ZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJp
bmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRv
bG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGEgLVduby11bmtub3du
LXdhcm5pbmctb3B0aW9uOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZm
aXg6aWRlbnRpZmllcikpOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEz
MDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CmluZGV4IDgxNGJlODNjOWVjMDlhNWYzMWJlNTVjNjZjNGFiYTc1ODgxN2IyOTUuLjAwODNlMmFh
YWEzMzk3ZDZjYjg5NGFjODE3ZTRkMmNhYWI2MTI2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC04OCw3ICs4OCw3IEBAIEdDQ19X
QVJOX1NJR05fQ09NUEFSRSA9IFlFUzsKIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZ
RVM7CiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVTRURfVkFS
SUFCTEUgPSBZRVM7Ci1XQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwg
LVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9r
ZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdt
aXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNs
cyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2Jh
bC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJv
dWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwg
LVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5p
dGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3Npbmct
Zm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFy
aXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1l
LWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJl
IC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGEgLVduby11bmtub3duLXdhcm5pbmctb3B0aW9u
OwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikp
OwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5t
bQppbmRleCBlYmExYmIwY2U0MDM3ZGYzNzFlNTJmMDI1ZTZkYTZhMDE2YjgwZmJmLi4zZTQ3OTY5
MWI5ZjBkZjcyYWI1OWFmN2E2ZmI5MTRmN2QwYzIwNTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KQEAgLTIy
MCw4ICsyMjAsOSBAQCBib29sIHdyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgbWFzdGVyS2V5LCBjb25zdCBWZWN0b3I8dWludAogICAgIHdyYXBwZWRLRUsuc2hy
aW5rKHdyYXBwZWRLRUtTaXplKTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiBlbmNyeXB0ZWRLZXko
a2V5LnNpemUoKSk7Ci0gICAgc2l6ZV90IHRhZ0xlbmd0aCA9IDE2OwotICAgIHVpbnQ4X3QgdGFn
W3RhZ0xlbmd0aF07CisgICAgY29uc3RleHByIHNpemVfdCBtYXhUYWdMZW5ndGggPSAxNjsKKyAg
ICBzaXplX3QgdGFnTGVuZ3RoID0gbWF4VGFnTGVuZ3RoOworICAgIHVpbnQ4X3QgdGFnW21heFRh
Z0xlbmd0aF07CiAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NFbmNyeXB0LCBrQ0NBbGdvcml0aG1BRVMxMjgsIGtl
ay5kYXRhKCksIGtlay5zaXplKCksCkBAIC0yODcsOCArMjg4LDkgQEAgYm9vbCB1bndyYXBTZXJp
YWxpemVkQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbWFzdGVyS2V5LCBjb25zdCBW
ZWN0b3I8dWkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGtlay5zaHJpbmsoa2VrU2l6ZSk7
CiAKLSAgICBzaXplX3QgdGFnTGVuZ3RoID0gMTY7Ci0gICAgdWludDhfdCBhY3R1YWxUYWdbdGFn
TGVuZ3RoXTsKKyAgICBjb25zdGV4cHIgc2l6ZV90IG1heFRhZ0xlbmd0aCA9IDE2OworICAgIHNp
emVfdCB0YWdMZW5ndGggPSBtYXhUYWdMZW5ndGg7CisgICAgdWludDhfdCBhY3R1YWxUYWdbbWF4
VGFnTGVuZ3RoXTsKIAogICAgIGtleS5yZXNpemUoZW5jcnlwdGVkS2V5LnNpemUoKSk7CiAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggOWQ3YmVh
ODY5YjUzNzczOTI2ZDIwMDg1NzNmMGNjNDc5ODUzOGQ1My4uNDNjZjY5ZDRjNGM4NDBiNjQ2ODc1
YzRiNWMzMzc5ZmIzOGZiMDU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTM5Myw4ICszOTMsOCBAQCBXZWJH
TEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihH
Q0dMZW51bSB0YXJnZXQsIEdDRwogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgbV9jb250ZXh0LT5n
ZXRJbnRlcm5hbGZvcm1hdGl2KHRhcmdldCwgaW50ZXJuYWxmb3JtYXQsIEdyYXBoaWNzQ29udGV4
dEdMOjpOVU1fU0FNUExFX0NPVU5UUywgMSwgJm51bVZhbHVlcyk7CiAKLSAgICBHQ0dMaW50IHBh
cmFtc1tudW1WYWx1ZXNdOwotICAgIG1fY29udGV4dC0+Z2V0SW50ZXJuYWxmb3JtYXRpdih0YXJn
ZXQsIGludGVybmFsZm9ybWF0LCBwbmFtZSwgbnVtVmFsdWVzLCBwYXJhbXMpOworICAgIFZlY3Rv
cjxHQ0dMaW50PiBwYXJhbXMobnVtVmFsdWVzKTsKKyAgICBtX2NvbnRleHQtPmdldEludGVybmFs
Zm9ybWF0aXYodGFyZ2V0LCBpbnRlcm5hbGZvcm1hdCwgcG5hbWUsIG51bVZhbHVlcywgcGFyYW1z
LmRhdGEoKSk7CiAjZWxzZQogICAgIC8vIE9uIGRlc2t0b3AgT3BlbkdMIDQuMSBvciBiZWxvdyB3
ZSBtdXN0IGVtdWxhdGUgZ2xHZXRJbnRlcm5hbGZvcm1hdGl2LgogCkBAIC00MjMsMTIgKzQyMywx
MiBAQCBXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBh
cmFtZXRlcihHQ0dMZW51bSB0YXJnZXQsIEdDRwogICAgIC8vIFNpbmNlIG11bHRpc2FtcGxpbmcg
aXMgbm90IHN1cHBvcnRlZCBmb3Igc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGludGVybmFs
IGZvcm1hdHMsCiAgICAgLy8gdGhlIHZhbHVlIG9mIEdMX05VTV9TQU1QTEVfQ09VTlRTIHdpbGwg
YmUgemVybyBmb3Igc3VjaCBmb3JtYXRzLgogICAgIG51bVZhbHVlcyA9IGlzSW50ZWdlckZvcm1h
dChpbnRlcm5hbGZvcm1hdCkgPyAwIDogc2FtcGxlcy5zaXplKCk7Ci0gICAgR0NHTGludCBwYXJh
bXNbbnVtVmFsdWVzXTsKKyAgICBWZWN0b3I8R0NHTGludD4gcGFyYW1zKG51bVZhbHVlcyk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KG51bVZhbHVlcyk7
ICsraSkKICAgICAgICAgcGFyYW1zW2ldID0gc2FtcGxlc1tpXTsKICNlbmRpZgogCi0gICAgcmV0
dXJuIEludDMyQXJyYXk6OnRyeUNyZWF0ZShwYXJhbXMsIG51bVZhbHVlcyk7CisgICAgcmV0dXJu
IEludDMyQXJyYXk6OnRyeUNyZWF0ZShwYXJhbXMuZGF0YSgpLCBudW1WYWx1ZXMpOwogfQogCiB2
b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQ0dMZW51
bSwgY29uc3QgVmVjdG9yPEdDR0xlbnVtPiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyLmNwcAppbmRleCA4Y2NkODgxMWJlMmRhMTdjZmZhNzEzMDZhMWY1ZWNj
N2Q4MWRkZmYzLi5hZTk1OGIyZjkxZWM2ODFjN2FkYWY3YmUyODFiZTNhMTRjZDQ1MzVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTE2Nyw4
ICsxNjcsOCBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpyZWZyZXNoQXVk
aW9DYXB0dXJlRGV2aWNlcyhOb3RpZnlJZkRldmljZXNIYQogICAgIH0KIAogICAgIHNpemVfdCBk
ZXZpY2VDb3VudCA9IGRhdGFTaXplIC8gc2l6ZW9mKEF1ZGlvT2JqZWN0SUQpOwotICAgIEF1ZGlv
T2JqZWN0SUQgZGV2aWNlSURzW2RldmljZUNvdW50XTsKLSAgICBlcnIgPSBBdWRpb09iamVjdEdl
dFByb3BlcnR5RGF0YShrQXVkaW9PYmplY3RTeXN0ZW1PYmplY3QsICZhZGRyZXNzLCAwLCBudWxs
cHRyLCAmZGF0YVNpemUsIGRldmljZUlEcyk7CisgICAgVmVjdG9yPEF1ZGlvT2JqZWN0SUQ+IGRl
dmljZUlEcyhkZXZpY2VDb3VudCk7CisgICAgZXJyID0gQXVkaW9PYmplY3RHZXRQcm9wZXJ0eURh
dGEoa0F1ZGlvT2JqZWN0U3lzdGVtT2JqZWN0LCAmYWRkcmVzcywgMCwgbnVsbHB0ciwgJmRhdGFT
aXplLCBkZXZpY2VJRHMuZGF0YSgpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIExPRyhNZWRp
YSwgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpyZWZyZXNoQXVkaW9DYXB0dXJlRGV2
aWNlcyglcCkgZmFpbGVkIHRvIGdldCBkZXZpY2UgbGlzdCAlZCAoJS40cykiLCB0aGlzLCAoaW50
KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KaW5kZXggNTgyYTcyMzMzM2Q5YjQ1ZTAxYjZlM2Y0
N2EzMGRlYzkwMDBjM2U1OS4uNTM4ZWZmOTBiYWQ1YzM3MDMwNTJlMzI5YjgwZDNmMzU4YjlhZjZk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Nj
cmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQpAQCAt
NjIsOCArNjIsOCBAQCBzdGF0aWMgT3B0aW9uYWw8Q0dEaXJlY3REaXNwbGF5SUQ+IHVwZGF0ZURp
c3BsYXlJRChDR0RpcmVjdERpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgfQogCi0gICAgQ0dEaXJlY3REaXNwbGF5SUQgYWN0aXZlRGlzcGxheXNb
ZGlzcGxheUNvdW50XTsKLSAgICBlcnIgPSBDR0dldEFjdGl2ZURpc3BsYXlMaXN0KGRpc3BsYXlD
b3VudCwgJihhY3RpdmVEaXNwbGF5c1swXSksICZkaXNwbGF5Q291bnQpOworICAgIFZlY3RvcjxD
R0RpcmVjdERpc3BsYXlJRD4gYWN0aXZlRGlzcGxheXMoZGlzcGxheUNvdW50KTsKKyAgICBlcnIg
PSBDR0dldEFjdGl2ZURpc3BsYXlMaXN0KGRpc3BsYXlDb3VudCwgYWN0aXZlRGlzcGxheXMuZGF0
YSgpLCAmZGlzcGxheUNvdW50KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
KE1lZGlhLCAiQ0dHZXRBY3RpdmVEaXNwbGF5TGlzdCgpIHJldHVybmVkIGVycm9yICVkIHdoZW4g
dHJ5aW5nIHRvIGdldCB0aGUgYWN0aXZlIGRpc3BsYXkgbGlzdCIsIHN0YXRpY19jYXN0PGludD4o
ZXJyKSk7CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0zMTksOCArMzE5LDggQEAg
dm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c2NyZWVuQ2FwdHVyZURldmljZXMo
VmVjdG9yPENhcHR1cmVEZXZpY2U+JgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ0dE
aXJlY3REaXNwbGF5SUQgYWN0aXZlRGlzcGxheXNbZGlzcGxheUNvdW50XTsKLSAgICBlcnIgPSBD
R0dldEFjdGl2ZURpc3BsYXlMaXN0KGRpc3BsYXlDb3VudCwgJihhY3RpdmVEaXNwbGF5c1swXSks
ICZkaXNwbGF5Q291bnQpOworICAgIFZlY3RvcjxDR0RpcmVjdERpc3BsYXlJRD4gYWN0aXZlRGlz
cGxheXMoZGlzcGxheUNvdW50KTsKKyAgICBlcnIgPSBDR0dldEFjdGl2ZURpc3BsYXlMaXN0KGRp
c3BsYXlDb3VudCwgYWN0aXZlRGlzcGxheXMuZGF0YSgpLCAmZGlzcGxheUNvdW50KTsKICAgICBp
ZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ0dHZXRBY3RpdmVEaXNwbGF5
TGlzdCgpIHJldHVybmVkIGVycm9yICVkIHdoZW4gdHJ5aW5nIHRvIGdldCB0aGUgYWN0aXZlIGRp
c3BsYXkgbGlzdCIsIChpbnQpZXJyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA4NmZkYTEy
OTkyZmM1ZTYyMDQ0ZDUwMTZlMDczMjY4ZTU2ZThhZGJkLi5jYzM3Zjg2YzJjYzdkNjE2NTdkMDk0
MjA1YzI1NDZiZDY0ZWU2ZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtNjQsNyArNjQsNyBAQCBDTEFOR19XQVJOX09C
SkNfSU1QTElDSVRfUkVUQUlOX1NFTEYgPSBZRVM7CiBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FV
VE9TID0gWUVTCiBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiBHQ0NfV0FSTl9VTlVT
RURfVkFSSUFCTEUgPSBZRVMKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVcgLVdjYXN0LXF1YWwg
LVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZm9ybWF0LXNl
Y3VyaXR5IC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XcG9pbnRlci1hcml0aCAtV3dyaXRl
LXN0cmluZ3MgLVduby11bnVzZWQtcGFyYW1ldGVyIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzOwor
V0FSTklOR19DRkxBR1MgPSAtV2FsbCAtVyAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAt
V2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdmb3JtYXQtc2VjdXJpdHkgLVdtaXNzaW5nLWZv
cm1hdC1hdHRyaWJ1dGUgLVdwb2ludGVyLWFyaXRoIC1Xd3JpdGUtc3RyaW5ncyAtV25vLXVudXNl
ZC1wYXJhbWV0ZXIgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVd2bGE7CiAKIEVOR0lORUVSSU5H
X0JVSUxEX0RFRklORVMgPSAkKEVOR0lORUVSSU5HX0JVSUxEX0RFRklORVNfJChFTkdJTkVFUklO
R19CVUlMRCkpOwogRU5HSU5FRVJJTkdfQlVJTERfREVGSU5FU18xID0gRU5HSU5FRVJJTkdfQlVJ
TEQ9MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA3
OGQxYzc3NTkzYWUwOTgzNjE0ZTRhMGMyYTFlZTUxYTk2ZTYxZDlhLi5kNmE5MTA5YTU5MDg3ZmNi
YWE1Yjg2MWEwZDRmMzljMzUzZGY5ZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCkBAIC04Niw3ICs4Niw3IEBAIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElP
TiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKIE9USEVSX01JR0ZMQUdT
ID0gLUYkKEJVSUxUX1BST0RVQ1RTX0RJUik7CiBQUkVCSU5ESU5HID0gTk87Ci1XQVJOSU5HX0NG
TEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25k
aXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0LXNlY3VyaXR5IC1X
aW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAt
V25vLXVudXNlZC1wYXJhbWV0ZXIgLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50
LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1X
Z2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFs
bHRocm91Z2g7CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdj
aGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5z
IC1XZm9ybWF0LXNlY3VyaXR5IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRl
IC1XbWlzc2luZy1ub3JldHVybiAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdwYWNrZWQgLVdwb2lu
dGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhp
dC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1j
b21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVd2bGE7CiAKIFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7CiBUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL19XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9f
V0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tCmluZGV4IDY0N2Q4ZTkxNTViYzgzMGJmNjM4YTI5NzRl
Y2ZlMmVlODZkNDBmMTkuLjAzYmMzNmNkNDhkNWZmMmRkNmY0YTQ2OTU5ZjM3MmRkNDQ2YzcxM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL19XS1RvdWNoRXZlbnRHZW5lcmF0
b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvX1dLVG91Y2hFdmVudEdlbmVyYXRv
ci5tbQpAQCAtMjk0LDEyICsyOTQsMTIgQEAgLSAodm9pZCl0b3VjaERvd246KENHUG9pbnQpbG9j
YXRpb24gdG91Y2hDb3VudDooTlNVSW50ZWdlcil0b3VjaENvdW50CiB7CiAgICAgdG91Y2hDb3Vu
dCA9IHN0ZDo6bWluKHRvdWNoQ291bnQsIEhJRE1heFRvdWNoQ291bnQpOwogCi0gICAgQ0dQb2lu
dCBsb2NhdGlvbnNbdG91Y2hDb3VudF07CisgICAgVmVjdG9yPENHUG9pbnQ+IGxvY2F0aW9ucyh0
b3VjaENvdW50KTsKIAogICAgIGZvciAoTlNVSW50ZWdlciBpbmRleCA9IDA7IGluZGV4IDwgdG91
Y2hDb3VudDsgKytpbmRleCkKICAgICAgICAgbG9jYXRpb25zW2luZGV4XSA9IGxvY2F0aW9uOwog
ICAgIAotICAgIFtzZWxmIHRvdWNoRG93bkF0UG9pbnRzOmxvY2F0aW9ucyB0b3VjaENvdW50OnRv
dWNoQ291bnRdOworICAgIFtzZWxmIHRvdWNoRG93bkF0UG9pbnRzOmxvY2F0aW9ucy5kYXRhKCkg
dG91Y2hDb3VudDp0b3VjaENvdW50XTsKIH0KIAogLSAodm9pZCl0b3VjaERvd246KENHUG9pbnQp
bG9jYXRpb24KQEAgLTMyNywxMiArMzI3LDEyIEBAIC0gKHZvaWQpbGlmdFVwOihDR1BvaW50KWxv
Y2F0aW9uIHRvdWNoQ291bnQ6KE5TVUludGVnZXIpdG91Y2hDb3VudAogewogICAgIHRvdWNoQ291
bnQgPSBzdGQ6Om1pbih0b3VjaENvdW50LCBISURNYXhUb3VjaENvdW50KTsKIAotICAgIENHUG9p
bnQgbG9jYXRpb25zW3RvdWNoQ291bnRdOworICAgIFZlY3RvcjxDR1BvaW50PiBsb2NhdGlvbnMo
dG91Y2hDb3VudCk7CiAKICAgICBmb3IgKE5TVUludGVnZXIgaW5kZXggPSAwOyBpbmRleCA8IHRv
dWNoQ291bnQ7ICsraW5kZXgpCiAgICAgICAgIGxvY2F0aW9uc1tpbmRleF0gPSBsb2NhdGlvbjsK
ICAgICAKLSAgICBbc2VsZiBsaWZ0VXBBdFBvaW50czpsb2NhdGlvbnMgdG91Y2hDb3VudDp0b3Vj
aENvdW50XTsKKyAgICBbc2VsZiBsaWZ0VXBBdFBvaW50czpsb2NhdGlvbnMuZGF0YSgpIHRvdWNo
Q291bnQ6dG91Y2hDb3VudF07CiB9CiAKIC0gKHZvaWQpbGlmdFVwOihDR1BvaW50KWxvY2F0aW9u
CkBAIC0zNDQsOCArMzQ0LDggQEAgLSAodm9pZCltb3ZlVG9Qb2ludHM6KENHUG9pbnQqKW5ld0xv
Y2F0aW9ucyB0b3VjaENvdW50OihOU1VJbnRlZ2VyKXRvdWNoQ291bnQgZHUKIHsKICAgICB0b3Vj
aENvdW50ID0gc3RkOjptaW4odG91Y2hDb3VudCwgSElETWF4VG91Y2hDb3VudCk7CiAKLSAgICBD
R1BvaW50IHN0YXJ0TG9jYXRpb25zW3RvdWNoQ291bnRdOwotICAgIENHUG9pbnQgbmV4dExvY2F0
aW9uc1t0b3VjaENvdW50XTsKKyAgICBWZWN0b3I8Q0dQb2ludD4gc3RhcnRMb2NhdGlvbnModG91
Y2hDb3VudCk7CisgICAgVmVjdG9yPENHUG9pbnQ+IG5leHRMb2NhdGlvbnModG91Y2hDb3VudCk7
CiAKICAgICBDRkFic29sdXRlVGltZSBzdGFydFRpbWUgPSBDRkFic29sdXRlVGltZUdldEN1cnJl
bnQoKTsKICAgICBDRlRpbWVJbnRlcnZhbCBlbGFwc2VkID0gMDsKQEAgLTM2MSw3ICszNjEsNyBA
QCAtICh2b2lkKW1vdmVUb1BvaW50czooQ0dQb2ludCopbmV3TG9jYXRpb25zIHRvdWNoQ291bnQ6
KE5TVUludGVnZXIpdG91Y2hDb3VudCBkdQogCiAgICAgICAgICAgICBuZXh0TG9jYXRpb25zW2ld
ID0gY2FsY3VsYXRlTmV4dEN1cnZlTG9jYXRpb24oc3RhcnRMb2NhdGlvbnNbaV0sIG5ld0xvY2F0
aW9uc1tpXSwgaW50ZXJ2YWwpOwogICAgICAgICB9Ci0gICAgICAgIFtzZWxmIF91cGRhdGVUb3Vj
aFBvaW50czpuZXh0TG9jYXRpb25zIGNvdW50OnRvdWNoQ291bnRdOworICAgICAgICBbc2VsZiBf
dXBkYXRlVG91Y2hQb2ludHM6bmV4dExvY2F0aW9ucy5kYXRhKCkgY291bnQ6dG91Y2hDb3VudF07
CiAKICAgICAgICAgZGVsYXlCZXR3ZWVuTW92ZShldmVudEluZGV4KyssIGVsYXBzZWQpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnCmluZGV4IDIwMjMxMjkxMjcyNDNkOWQzNjFiNDczYjFhNWFlNmU1ZWYzMWI1MDEu
LmRhOGJlOWY2YTFmYWFhZmUzN2E1YmMyMTZlZTU5MWRjMjViNjViMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAt
ODgsNyArODgsNyBAQCBDTEFOR19XQVJOX0RPQ1VNRU5UQVRJT05fQ09NTUVOVFMgPSBZRVM7CiBP
VEhFUl9NSUdGTEFHUyA9IC1GJChCVUlMVF9QUk9EVUNUU19ESVIpOwogQ0xBTkdfQU5BTFlaRVJf
TE9DQUxJWkFCSUxJVFlfTk9OTE9DQUxJWkVEID0gWUVTOwogUFJFQklORElORyA9IE5POwotV0FS
TklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRz
IC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdC1zZWN1
cml0eSAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9y
ZXR1cm4gLVduby11bnVzZWQtcGFyYW1ldGVyIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoOworV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1x
dWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCAtV2V4dHJh
LXRva2VucyAtV2Zvcm1hdC1zZWN1cml0eSAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0
dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVduby11bnVzZWQtcGFyYW1ldGVyIC1XcGFja2Vk
IC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5n
cyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xv
Z2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1XdmxhOwogCiBUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOwogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL2JtYWxsb2MvQ29uZmlndXJh
dGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCBjMDAwZmI2MjE3YzMwZTU2ZWY5NjVmNGRlOGFjY2Vk
MzRhNDBmNTk0Li5iNDA0OTcwYTZjMzQ3YzVjMDhlMzNmYTE5ZGM3OWFlODhjNDRhOGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBi
L1NvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTk0LDcgKzk0
LDcgQEAgR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNF
RF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKIFBSRUJJ
TkRJTkcgPSBOTzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAt
V2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tl
bnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21p
c3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xz
IC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFs
LWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91
Z2g7CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1
YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVkIC1XZXh0cmEtdG9rZW5zIC1XZm9y
bWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5v
cmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVm
IC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1
Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1Xdmxh
OwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikp
OwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjkxZWQ0MmMyODk3NmY2
YTljYzk0MWEzYjQ0YzJmMTBjYWU1ZGQ1Ny4uODMzM2NiZjJlOWE2Mzk3OWZmNzA3Mzc2NTY3MDc2
ZDZlYTg5MTM0MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAzLTE1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVr
aUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFy
cmF5IChWTEEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDkwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIENv
bnRlbnRFeHRlbnNpb25UZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAgICAg
ICAgKiBsbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoK
KwogMjAyMC0wMy0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFdLV2ViVmlldy5fbmVnb3RpYXRlZExlZ2FjeVRMUyBzaG91bGQgYmUgY29y
cmVjdCBhZnRlciBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL0Nv
bnRlbnRFeHRlbnNpb25UZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1Rvb2xz
L0NvbnRlbnRFeHRlbnNpb25UZXN0ZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRl
eCBjMTY3ZGQzMjQ1MTQwYmQ4MmI2ZDU3MTM5N2ExMWFiNDQyYmZkMjE0Li42N2U0Nzc1NGFlNTI1
ODAwOGM2YmNjNzNiMjFlMWNjMGZiYzY3YTRiIDEwMDY0NAotLS0gYS9Ub29scy9Db250ZW50RXh0
ZW5zaW9uVGVzdGVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKKysrIGIvVG9vbHMvQ29u
dGVudEV4dGVuc2lvblRlc3Rlci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC02NSw3
ICs2NSw3IEBAIEdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7CiBHQ0NfV0FSTl9V
TklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVT
OwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwotV0FSTklOR19DRkxBR1MgPSAtV2Fs
bCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1X
Zm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5n
LW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3Vu
ZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25z
dHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOwor
V0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3Jp
cHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1h
dC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAt
V3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0
cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2lt
cGxpY2l0LWZhbGx0aHJvdWdoIC1XdmxhOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Jf
MTMgPSAxMDEzMDA7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IDkxNGE5MjE4NDE3YjNlZmI1MmZmNTIx
MTZmODMxNGFiNjNhNTZjNDYuLjJlOTc1NGFiNzRmYzg5OTNiNTAwZTliNTg2ZTNjMDE5ZWM0ZGZh
ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCkBAIC04Miw3ICs4Miw3IEBAIEdDQ19XQVJOX1VOREVDTEFS
RURfU0VMRUNUT1IgPSBZRVM7CiBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwog
R0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxF
ID0gTk87Ci1XQVJOSU5HX0NGTEFHUyA9IC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1X
ZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRy
aWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVu
ZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9y
cyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0
LWZhbGx0aHJvdWdoOworV0FSTklOR19DRkxBR1MgPSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2Ny
aXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3Jt
YXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGgg
LVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVz
dHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdp
bXBsaWNpdC1mYWxsdGhyb3VnaCAtV3ZsYTsKIAogSEVBREVSX1NFQVJDSF9QQVRIUyA9ICR7QlVJ
TFRfUFJPRFVDVFNfRElSfS91c3IvbG9jYWwvaW5jbHVkZTsKIApkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCAw
ZjA5MzA3NzNkZWUxZGZjMzljMGNlZjY3YjJiNGE4ODM2NzYwN2VhLi43MWU2YmY1NmM4MTlmMWYx
ZjYyOGNlZDcwYjk4M2FiMmY5MGQwNWFiIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0No
YW5nZUxvZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIwLTAzLTE1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIE1lZGlhVGltZS9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnOgorCiAyMDIwLTAyLTE3ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3Rl
YWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBVc2UgYnVpbHRpbiB0YXJnZXRzCmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL01lZGlhVGltZS9Db25maWd1cmF0aW9ucy9CYXNlLnhj
Y29uZmlnIGIvUGVyZm9ybWFuY2VUZXN0cy9NZWRpYVRpbWUvQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZwppbmRleCAzNWMwODg5ZjhhNWI4YzYyZDAyZmU5NTcxMzI3MjY3ZDU1NzM3MmJiLi4x
MDExNTZhZGZlY2NhNDIyOWVlODJjNWYyYzIwMmM1OGZhYTU0ZWU4IDEwMDY0NAotLS0gYS9QZXJm
b3JtYW5jZVRlc3RzL01lZGlhVGltZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvTWVkaWFUaW1lL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcK
QEAgLTgyLDcgKzgyLDcgQEAgR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdD
Q19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9
IFlFUzsKIFBSRUJJTkRJTkcgPSBOTzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAt
V2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1X
aW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAt
V3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRl
LXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1X
dGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsKK1dBUk5JTkdfQ0ZM
QUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJh
LXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRl
IC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQt
ZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdn
bG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxs
dGhyb3VnaCAtV3ZsYTsKIEhFQURFUl9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvdXNyL2xvY2FsL2luY2x1ZGUgJChEU1RST09UKS91c3IvbG9jYWwvaW5jbHVkZSBpY3UgJChI
RUFERVJfU0VBUkNIX1BBVEhTKTsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAk
KFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6
c3VmZml4OmlkZW50aWZpZXIpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>