<?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>219468</bug_id>
          
          <creation_ts>2020-12-02 17:55:16 -0800</creation_ts>
          <short_desc>[GPU Process] Record changes in GraphicsContextState as individual DisplayList items</short_desc>
          <delta_ts>2022-02-10 16:16:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=221550</see_also>
          <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>
          <dependson>220079</dependson>
    
    <dependson>221550</dependson>
    
    <dependson>221637</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1711547</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-02 17:55:16 -0800</bug_when>
    <thetext>SHOULD NEVER BE REACHED
Source/WebKit/Platform/IPC/Encoder.h(110) : static RefPtr&lt;WebCore::SharedBuffer&gt; IPC::Encoder::encodeSingleObject(const T &amp;) [T = WebCore::DisplayList::SetState]
WTFCrash
WTFCrashWithInfo(int, char const*, char const*, int)
WTF::RefPtr&lt;WebCore::SharedBuffer, WTF::RawPtrTraits&lt;WebCore::SharedBuffer&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::SharedBuffer&gt; &gt; IPC::Encoder::encodeSingleObject&lt;WebCore::DisplayList::SetState&gt;(WebCore::DisplayList::SetState const&amp;)
WebKit::RemoteImageBufferProxy&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::encodeItem(WebCore::DisplayList::ItemHandle) const
non-virtual thunk to WebKit::RemoteImageBufferProxy&lt;WebKit::ImageBufferShareableMappedIOSurfaceBackend&gt;::encodeItem(WebCore::DisplayList::ItemHandle) const
WebCore::DisplayList::ItemBuffer::appendEncodedData(WebCore::DisplayList::ItemHandle)
void WebCore::DisplayList::ItemBuffer::append&lt;WebCore::DisplayList::SetState, WebCore::GraphicsContextState const&amp;, WTF::OptionSet&lt;WebCore::GraphicsContextState::Change&gt;&amp;&gt;(WebCore::GraphicsContextState const&amp;, WTF::OptionSet&lt;WebCore::GraphicsContextState::Change&gt;&amp;)
void WebCore::DisplayList::DisplayList::append&lt;WebCore::DisplayList::SetState, WebCore::GraphicsContextState const&amp;, WTF::OptionSet&lt;WebCore::GraphicsContextState::Change&gt;&amp;&gt;(WebCore::GraphicsContextState const&amp;, WTF::OptionSet&lt;WebCore::GraphicsContextState::Change&gt;&amp;)
void WebCore::DisplayList::Recorder::append&lt;WebCore::DisplayList::SetState, WebCore::GraphicsContextState const&amp;, WTF::OptionSet&lt;WebCore::GraphicsContextState::Change&gt;&amp;&gt;(WebCore::GraphicsContextState const&amp;, WTF::OptionSet&lt;WebCore::GraphicsContextState::Change&gt;&amp;)
WebCore::DisplayList::Recorder::appendStateChangeItem(WebCore::GraphicsContextStateChange const&amp;, WTF::OptionSet&lt;WebCore::GraphicsContextState::Change&gt;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711548</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-02 17:55:32 -0800</bug_when>
    <thetext>For example, canvas/philip/tests/2d.composite.globalAlpha.canvaspattern.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711549</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-02 17:56:04 -0800</bug_when>
    <thetext>The problem is, SetState is encoded using encodeSingleObject, but it has things like Pattern hanging off of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711565</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-02 19:22:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/71921036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711569</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-02 19:28:23 -0800</bug_when>
    <thetext>And Pattern has an Image that it encodes with ImageHandle. We either need a subdisplaylist for the pattern or to instead cache that image ahead of time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715914</commentid>
    <comment_count>5</comment_count>
      <attachid>416572</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-12-19 12:06:45 -0800</bug_when>
    <thetext>Created attachment 416572
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715949</commentid>
    <comment_count>6</comment_count>
      <attachid>416584</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-12-20 11:00:50 -0800</bug_when>
    <thetext>Created attachment 416584
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715990</commentid>
    <comment_count>7</comment_count>
      <attachid>416597</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-12-21 01:33:12 -0800</bug_when>
    <thetext>Created attachment 416597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725979</commentid>
    <comment_count>8</comment_count>
      <attachid>419374</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-05 01:48:59 -0800</bug_when>
    <thetext>Created attachment 419374
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725982</commentid>
    <comment_count>9</comment_count>
      <attachid>419375</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-05 02:06:37 -0800</bug_when>
    <thetext>Created attachment 419375
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726203</commentid>
    <comment_count>10</comment_count>
      <attachid>419437</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-05 11:22:11 -0800</bug_when>
    <thetext>Created attachment 419437
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726288</commentid>
    <comment_count>11</comment_count>
      <attachid>419468</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-05 14:48:41 -0800</bug_when>
    <thetext>Created attachment 419468
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726369</commentid>
    <comment_count>12</comment_count>
      <attachid>419493</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-05 21:57:26 -0800</bug_when>
    <thetext>Created attachment 419493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726376</commentid>
    <comment_count>13</comment_count>
      <attachid>419497</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-06 00:50:25 -0800</bug_when>
    <thetext>Created attachment 419497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726786</commentid>
    <comment_count>14</comment_count>
      <attachid>419497</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-08 14:02:14 -0800</bug_when>
    <thetext>Comment on attachment 419497
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:170
&gt; +class SetInlineState {

It looks like SetInlineState doesn&apos;t include RGBA (non-extended) stroke color or fill changes, which (IIRC) make up the bulk of state changes in Paths, Lines and Arcs in MotionMark. I think this could encompass changes to fill and stroke color that only use SRGBA&lt;uint8_t&gt; as well, to keep most of the state change items in these fully inline in those three subtests.

Though, perhaps this could be done as a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727184</commentid>
    <comment_count>15</comment_count>
      <attachid>419497</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-09 12:44:15 -0800</bug_when>
    <thetext>Comment on attachment 419497
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:170
&gt;&gt; +class SetInlineState {
&gt; 
&gt; It looks like SetInlineState doesn&apos;t include RGBA (non-extended) stroke color or fill changes, which (IIRC) make up the bulk of state changes in Paths, Lines and Arcs in MotionMark. I think this could encompass changes to fill and stroke color that only use SRGBA&lt;uint8_t&gt; as well, to keep most of the state change items in these fully inline in those three subtests.
&gt; 
&gt; Though, perhaps this could be done as a followup.

Yes this is right. I wrote a similar comment in the ChangeLog above. &quot;Future work is to make SetInlineState handle more cases for colors and gradients.&quot; But I will try to do this inline changes in the patch of this bug to avoid introducing regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728980</commentid>
    <comment_count>16</comment_count>
      <attachid>420236</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-14 00:50:20 -0800</bug_when>
    <thetext>Created attachment 420236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729007</commentid>
    <comment_count>17</comment_count>
      <attachid>420249</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-14 12:52:29 -0800</bug_when>
    <thetext>Created attachment 420249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729273</commentid>
    <comment_count>18</comment_count>
      <attachid>420343</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-15 11:38:32 -0800</bug_when>
    <thetext>Created attachment 420343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730155</commentid>
    <comment_count>19</comment_count>
      <attachid>420601</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-16 22:53:45 -0800</bug_when>
    <thetext>Created attachment 420601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730202</commentid>
    <comment_count>20</comment_count>
      <attachid>420617</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-02-17 01:45:58 -0800</bug_when>
    <thetext>Created attachment 420617
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416572</attachid>
            <date>2020-12-19 12:06:45 -0800</date>
            <delta_ts>2020-12-20 11:00:47 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-219468-20201219120644.patch</filename>
            <type>text/plain</type>
            <size>114819</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgzNGE5ZDk2NzUwMTk4
ZTZmNDgzZmM0MjkwMTY4YTMzY2ViNzBkNS4uMjE3NGFhNTBmMGY0ZDExOTg5OGYyZGJhNDhhYzQ0
MjQ1MmMwYzVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIwLTEyLTE5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIEdQVSBQcm9jZXNzOiBD
YW52YXMgcGF0dGVybiB0ZXN0cyBhc3NlcnQgdW5kZXIgZW5jb2RlU2luZ2xlT2JqZWN0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSGVhZGVycy5j
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjo6Q29uY3JldGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhZGllbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6R3JhZGllbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFkaWVudDo6c3RvcHNTb3J0ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
ZGllbnQ6OkNvbG9yU3RvcDo6ZW5jb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYWRpZW50OjpDb2xvclN0b3A6OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpHcmFkaWVudDo6TGluZWFyRGF0YTo6ZW5jb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkdyYWRpZW50OjpMaW5lYXJEYXRhOjpkZWNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OlJhZGlhbERhdGE6OmVuY29kZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6UmFkaWFsRGF0YTo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50OjpDb25pY0RhdGE6OmVuY29kZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6Q29uaWNEYXRhOjpkZWNv
ZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OmVuY29kZSBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6ZGVjb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VCdWZmZXI6OnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6Ok5hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdGl2ZUltYWdlOjp+TmF0aXZlSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpOYXRpdmVJbWFn
ZTo6YWRkT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6
OnJlbW92ZU9ic2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXR0ZXJuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYXR0ZXJuOjpQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9QYXR0ZXJuLmg6CisgICAgICAgIChXZWJDb3JlOjpQYXR0ZXJuOjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdSZXNvdXJjZS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlOjp+UmVuZGVyaW5nUmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6OnJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZTo6YWRk
T2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6OnJlbW92ZU9i
c2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlOjpSZW5kZXJpbmdS
ZXNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjptX2ZvbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjptX3BhdHRlcm5zKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjptX2dyYWRpZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdDo6c2hvdWxkRHVtcEZvckZsYWdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6cGF0dGVybnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpncmFkaWVudHMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpjYWNoZVBhdHRlcm4pOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpjYWNoZUdyYWRpZW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBs
eSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpTZXRTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OmFwcGx5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpjaGFuZ2VGbGFncyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0cm9rZUdyYWRpZW50
SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3Rh
dGU6OnN0cm9rZVBhdHRlcm5JZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZmlsbEdyYWRpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OmZpbGxQYXR0ZXJuSWRlbnRpZmll
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OmRlY29k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQ6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RX
aXRoR3JhZGllbnQ6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0
U3RhdGU6OnN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpjb250YWluc09ubHlJbmxpbmVTdGF0ZUNo
YW5nZXMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXI6OkRlbGVnYXRlOjpjYWNoZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVyOjpEZWxlZ2F0ZTo6Y2FjaGVHcmFkaWVudCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpSZXBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YXBwbHlTZXRTdGF0ZUl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjphcHBseUl0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmg6CisKIDIw
MjAtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
UHJvY2Vzc10gaHR0cHM6Ly93d3cud2F2ZXBsYXllci5pbmZvL2NyZWF0ZW1lZGlhZWxlbWVudHNv
dXJjZS10ZXN0LyBkZW1vIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2OTM0ODhlYTc5Njg1OWUwOTRh
MDY3M2U1OTUwNDg5MzRlZWRjM2EuLjhjODg1Y2IyYzVjYWE5Y2Q5MzhkZjljNjc0YzE3NDc2MzNl
MDJjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMTItMTkgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgR1BVIFByb2Nlc3M6IENhbnZhcyBw
YXR0ZXJuIHRlc3RzIGFzc2VydCB1bmRlciBlbmNvZGVTaW5nbGVPYmplY3QoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpzdWJtaXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjYWNoZVBhdHRlcm4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjYWNoZUdyYWRpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZVJlc291cmNlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVz
c2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVQYXR0
ZXJuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVHcmFkaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW5kZXJp
bmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVh
c2VSZW1vdGVSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNl
Q2FjaGU6OnBhdHRlcm5zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZTo6Z3JhZGllbnRzIGNvbnN0KToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvR3JhZGllbnRS
ZWZlcmVuY2UuaDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm0vSVBDL1BhdHRlcm5SZWZlcmVu
Y2UuaDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxSZWY8UGF0dGVybj4+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PFJlZjxQYXR0ZXJuPj46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8R3Jh
ZGllbnQ6OkNvbG9yU3RvcD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
R3JhZGllbnQ6OkNvbG9yU3RvcD46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8R3JhZGllbnQ6OkxpbmVhckRhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEdyYWRpZW50OjpMaW5lYXJEYXRhPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxHcmFkaWVudDo6UmFkaWFsRGF0YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OlJhZGlhbERhdGE+OjpkZWNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEdyYWRpZW50OjpDb25pY0RhdGE+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYWRpZW50OjpDb25pY0RhdGE+OjpkZWNvZGUpOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxHcmFkaWVudD4+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxHcmFkaWVudD4+OjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVm
ZmVyUHJveHk6On5SZW1vdGVJbWFnZUJ1ZmZlclByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlRm9udCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y2FjaGVQYXR0ZXJuKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZUdyYWRpZW50
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNl
UmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUltYWdl
QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxl
YXNlUmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmNhY2hlUGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6Y2FjaGVHcmFkaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VOYXRpdmVJbWFnZSk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5Lmg6CisKIDIwMjAtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUHJvY2Vzc10gaHR0cHM6Ly93d3cud2F2ZXBsYXllci5pbmZvL2NyZWF0
ZW1lZGlhZWxlbWVudHNvdXJjZS10ZXN0LyBkZW1vIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCAwNDNjODZhNjlhNDdlY2NlNTNiYzEyYWIxZWIxMDMxZTM4YjM2MDYyLi4xZWY3ODIzYjlm
ZmEyZjRmN2QzMWRjZjYwNTdlOGIwMDFiN2I3MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEy
NTksNiArMTI1OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1v
dGVWaWRlb1NhbXBsZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvUm91bmRlZFJlY3QuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGE4NzUzNGNiZGM4NWFhMzZmZjhmY2U0YjBlMDliNjA4OTNm
OTU5MjguLjQ2ZTczODg4MTNkZWQxYTUwYjMxZWQ2NTY4ZmRiOWViMDAwNTVkZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIx
OTQsNiArMjE5NCw3IEBACiAJCTcyNkQ1NkUyMjUzQUUyOEQwMDAyRUY5MCAvKiBQbGF0Zm9ybUlt
YWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjZE
NTZFMTI1M0FFMDQzMDAwMkVGOTAgLyogUGxhdGZvcm1JbWFnZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNkQ1NkUzMjUzQUUzNjYwMDAyRUY5
MCAvKiBOYXRpdmVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI3QTdGM0EyNDA3
OEI4NDAwNEQyOTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJCQUMzQUIyM0UxRTU0NDAwOEQ3
NDFDIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyODMwMUREMjU4RTgxN0YwMDM0REI3NiAv
KiBSZW5kZXJpbmdSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzI4MzAxREIyNThFODE3RjAwMzREQjc2IC8qIFJlbmRlcmluZ1Jlc291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI5
OUJDNjcyM0Q2QTUzMjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOTlCQzY0MjNENjg2QTYw
MENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI5OUJDNjgyM0Q2QTUzRTAwQ0M2ODgzIC8q
IFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI5RDA1MzAyNTMx
NDI0MzAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5RDA1MkUyNTMxM0UyNjAwNDIy
MDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDEyOSw2ICsxMDEzMCw3IEBACiAJCTcy
N0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI4
MzAxREIyNThFODE3RjAwMzREQjc2IC8qIFJlbmRlcmluZ1Jlc291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlcmluZ1Jlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcy
OTlCQzY0MjNENjg2QTYwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFscGhhUHJlbXVsdGlwbGljYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY3MDUsNiArMjY3MDcsNyBAQAogCQkJCTA3M0ExNTUx
MjE3N0EzOTgwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5jcHAgKi8sCiAJCQkJMDczQTE1
NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8sCiAJCQkJNzI5OUJD
NjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLywKKwkJCQk3MjgzMDFEQjI1
OEU4MTdGMDAzNERCNzYgLyogUmVuZGVyaW5nUmVzb3VyY2UuaCAqLywKIAkJCQk3MjlEMDUyRTI1
MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi8sCiAJCQkJ
QTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLywKIAkJCQlBNzNG
OTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLywKQEAgLTM0MTg4LDYgKzM0
MTkxLDcgQEAKIAkJCQkwOEYyRjAwQTEyMTNFNjE3MDBEQ0VDNDggLyogUmVuZGVySW1hZ2VSZXNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg2NDFENDgxMjE0MkY3RDAwOERFOUY2IC8qIFJl
bmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Mjk5QkM2
ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzI4MzAxREQyNThFODE3RjAwMzREQjc2IC8qIFJlbmRlcmluZ1Jlc291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NTZDN0M0QjIyMTIzOTk3MDA5QjA2Q0Eg
LyogUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDg3
ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVySW5saW5lLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZm
ZXIuaAppbmRleCAxZjI0NWJjZWJhNzJjZTEzN2U5MGM2MWU1NWY1MWEzMzgxYjgwNjg1Li4yODlm
MWNlNWMwYTRkZTc2Y2Y3NWMyYWRhZjVjYzY4YmZhYzQxMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC01
OCw5ICs1OCw5IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIENvbmNyZXRlSW1hZ2VCdWZm
ZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBzdGQ6
OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCA9IG51bGxwdHIsIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCi0gICAgICAgIDogbV9wYXJhbWV0ZXJzKHBh
cmFtZXRlcnMpCisgICAgICAgIDogSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQorICAgICAgICAsIG1fcGFyYW1ldGVycyhwYXJhbWV0ZXJzKQogICAgICAgICAsIG1fYmFj
a2VuZChXVEZNb3ZlKGJhY2tlbmQpKQotICAgICAgICAsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICB7CiAgICAgfQogCkBAIC03
Myw4ICs3Myw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFyQmFja2VuZCgpIG92ZXJyaWRl
IHsgbV9iYWNrZW5kID0gbnVsbHB0cjsgfQogICAgIEltYWdlQnVmZmVyQmFja2VuZCogZW5zdXJl
QmFja2VuZENyZWF0ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2JhY2tlbmQuZ2V0KCk7
IH0KIAotICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcjsgfQotCiAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3Qgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2JhY2tlbmQpOwpAQCAtMjk2LDcgKzI5NCw2IEBA
IHByb3RlY3RlZDoKIAogICAgIEltYWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyBtX3BhcmFt
ZXRlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiBtX2JhY2tlbmQ7Ci0gICAg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCmluZGV4IGUxNzBmOTZhMWI2ZWY1MzViYzVhODIzY2Ex
MWQ3YTc1MDQyMWVmY2QuLmMzYjg5OWQ0ZWQ5OTVjMmE2NGI1NmE0Yjk3NTdjMDIwYTZhM2M0YzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAKQEAg
LTM2LDE4ICszNiwxNyBAQCB1c2luZyBXVEY6OnBhaXJJbnRIYXNoOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlZjxHcmFkaWVudD4gR3JhZGllbnQ6OmNyZWF0ZShEYXRhJiYgZGF0YSkKK1Jl
ZjxHcmFkaWVudD4gR3JhZGllbnQ6OmNyZWF0ZShEYXRhJiYgZGF0YSwgUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBHcmFkaWVudChXVEZNb3ZlKGRhdGEpKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgR3JhZGllbnQoV1RGTW92ZShkYXRhKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKSk7CiB9CiAKLUdyYWRpZW50OjpHcmFkaWVudChEYXRhJiYgZGF0YSkKLSAgICA6IG1fZGF0
YShXVEZNb3ZlKGRhdGEpKQorR3JhZGllbnQ6OkdyYWRpZW50KERhdGEmJiBkYXRhLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIDog
UmVuZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9k
YXRhKFdURk1vdmUoZGF0YSkpCiB7CiB9CiAKLUdyYWRpZW50Ojp+R3JhZGllbnQoKSA9IGRlZmF1
bHQ7Ci0KIHZvaWQgR3JhZGllbnQ6OmFkanVzdFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoRmxv
YXRTaXplJiBzaXplLCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZykKIHsKICAgICBpZiAoc3JjUmVjdC5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnQuaAppbmRleCA4MWU5Y2UxYjhlOTFhNTI1MjBjMzcxNzk3OGU3
YmQ0YTM3YTZlOWRjLi4yY2Q5NmYyZjhhYWVkZjU5NTgxY2U0ODI3YTVlNmJhOTU4Mzc4NjM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNp
bmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2UuaCIK
ICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAt
NjEsMTQgKzYyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0UmVjdDsKIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKIAotY2xhc3MgR3JhZGllbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHcmFkaWVudD4geworY2xhc3MgR3JhZGllbnQgOiBwdWJsaWMgUmVuZGVyaW5nUmVzb3VyY2Ug
ewogcHVibGljOgogICAgIHN0cnVjdCBDb2xvclN0b3AgewogICAgICAgICBmbG9hdCBvZmZzZXQg
eyAwIH07CiAgICAgICAgIENvbG9yIGNvbG9yOwotCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENvbG9yU3RvcD4gZGVjb2RlKERlY29k
ZXImKTsKICAgICB9OwogCiAgICAgdXNpbmcgQ29sb3JTdG9wVmVjdG9yID0gVmVjdG9yPENvbG9y
U3RvcCwgMj47CkBAIC03Niw5ICs3NCw2IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgTGluZWFyRGF0
YSB7CiAgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQwOwogICAgICAgICBGbG9hdFBvaW50IHBvaW50
MTsKLQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxMaW5lYXJEYXRhPiBkZWNvZGUoRGVjb2RlciYpOwogICAgIH07CiAKICAgICBzdHJ1
Y3QgUmFkaWFsRGF0YSB7CkBAIC04NywyNCArODIsMTYgQEAgcHVibGljOgogICAgICAgICBmbG9h
dCBzdGFydFJhZGl1czsKICAgICAgICAgZmxvYXQgZW5kUmFkaXVzOwogICAgICAgICBmbG9hdCBh
c3BlY3RSYXRpbzsgLy8gRm9yIGVsbGlwdGljYWwgZ3JhZGllbnQsIHdpZHRoIC8gaGVpZ2h0Lgot
Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFJhZGlhbERhdGE+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIHN0cnVjdCBD
b25pY0RhdGEgewogICAgICAgICBGbG9hdFBvaW50IHBvaW50MDsKICAgICAgICAgZmxvYXQgYW5n
bGVSYWRpYW5zOwotCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPENvbmljRGF0YT4gZGVjb2RlKERlY29kZXImKTsKICAgICB9OwogCiAg
ICAgdXNpbmcgRGF0YSA9IFZhcmlhbnQ8TGluZWFyRGF0YSwgUmFkaWFsRGF0YSwgQ29uaWNEYXRh
PjsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8R3JhZGllbnQ+IGNyZWF0ZShEYXRh
JiYpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgfkdyYWRpZW50KCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxHcmFkaWVudD4gY3JlYXRlKERhdGEmJiwgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKTsKIAog
ICAgIGJvb2wgaXNaZXJvU2l6ZSgpIGNvbnN0OwogCkBAIC0xMTQsNiArMTAxLDcgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U29ydGVkQ29sb3JTdG9wcyhDb2xvclN0b3BW
ZWN0b3ImJik7CiAKICAgICBjb25zdCBDb2xvclN0b3BWZWN0b3ImIHN0b3BzKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdG9wczsgfQorICAgIGJvb2wgc3RvcHNTb3J0ZWQoKSBjb25zdCB7IHJldHVybiBt
X3N0b3BzU29ydGVkOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNwcmVhZE1ldGhv
ZChHcmFkaWVudFNwcmVhZE1ldGhvZCk7CiAgICAgR3JhZGllbnRTcHJlYWRNZXRob2Qgc3ByZWFk
TWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9zcHJlYWRNZXRob2Q7IH0KQEAgLTEzOSwxMSArMTI3
LDggQEAgcHVibGljOgogICAgIElEMkQxQnJ1c2gqIGNyZWF0ZUJydXNoKElEMkQxUmVuZGVyVGFy
Z2V0Kik7CiAjZW5kaWYKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8UmVmPEdyYWRpZW50Pj4gZGVjb2RlKERlY29kZXImKTsKLQogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBHcmFkaWVudChEYXRhJiYpOworICAgIGV4cGxpY2l0IEdyYWRpZW50KERh
dGEmJiwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgc29ydFN0b3Bz
KCkgY29uc3Q7CiAgICAgdm9pZCBzdG9wc0NoYW5nZWQoKTsKQEAgLTE2OCwxNTIgKzE1Myw2IEBA
IHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQg
R3JhZGllbnQ6OkNvbG9yU3RvcDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0g
ICAgZW5jb2RlciA8PCBvZmZzZXQ7Ci0gICAgZW5jb2RlciA8PCBjb2xvcjsKLX0KLQotdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4gT3B0aW9uYWw8R3JhZGllbnQ6OkNvbG9yU3RvcD4gR3JhZGll
bnQ6OkNvbG9yU3RvcDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8
ZmxvYXQ+IG9mZnNldDsKLSAgICBkZWNvZGVyID4+IG9mZnNldDsKLSAgICBpZiAoIW9mZnNldCkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPENvbG9yPiBjb2xv
cjsKLSAgICBkZWNvZGVyID4+IGNvbG9yOwotICAgIGlmICghY29sb3IpCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4ge3sgKm9mZnNldCwgKmNvbG9yIH19OwotfQot
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIEdyYWRpZW50OjpMaW5lYXJEYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50MDsK
LSAgICBlbmNvZGVyIDw8IHBvaW50MTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4g
T3B0aW9uYWw8R3JhZGllbnQ6OkxpbmVhckRhdGE+IEdyYWRpZW50OjpMaW5lYXJEYXRhOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxGbG9hdFBvaW50PiBwb2ludDA7
Ci0gICAgZGVjb2RlciA+PiBwb2ludDA7Ci0gICAgaWYgKCFwb2ludDApCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0KLSAgICBPcHRpb25hbDxGbG9hdFBvaW50PiBwb2ludDE7Ci0gICAg
ZGVjb2RlciA+PiBwb2ludDE7Ci0gICAgaWYgKCFwb2ludDEpCi0gICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4ge3sgKnBvaW50MCwgKnBvaW50MSB9fTsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBHcmFkaWVudDo6UmFkaWFsRGF0YTo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCBwb2ludDA7Ci0gICAg
ZW5jb2RlciA8PCBwb2ludDE7Ci0gICAgZW5jb2RlciA8PCBzdGFydFJhZGl1czsKLSAgICBlbmNv
ZGVyIDw8IGVuZFJhZGl1czsKLSAgICBlbmNvZGVyIDw8IGFzcGVjdFJhdGlvOwotfQotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBPcHRpb25hbDxHcmFkaWVudDo6UmFkaWFsRGF0YT4gR3Jh
ZGllbnQ6OlJhZGlhbERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlv
bmFsPEZsb2F0UG9pbnQ+IHBvaW50MDsKLSAgICBkZWNvZGVyID4+IHBvaW50MDsKLSAgICBpZiAo
IXBvaW50MCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPEZs
b2F0UG9pbnQ+IHBvaW50MTsKLSAgICBkZWNvZGVyID4+IHBvaW50MTsKLSAgICBpZiAoIXBvaW50
MSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPGZsb2F0PiBz
dGFydFJhZGl1czsKLSAgICBkZWNvZGVyID4+IHN0YXJ0UmFkaXVzOwotICAgIGlmICghc3RhcnRS
YWRpdXMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBPcHRpb25hbDxmbG9h
dD4gZW5kUmFkaXVzOwotICAgIGRlY29kZXIgPj4gZW5kUmFkaXVzOwotICAgIGlmICghZW5kUmFk
aXVzKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8ZmxvYXQ+
IGFzcGVjdFJhdGlvOwotICAgIGRlY29kZXIgPj4gYXNwZWN0UmF0aW87Ci0gICAgaWYgKCFhc3Bl
Y3RSYXRpbykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyAq
cG9pbnQwLCAqcG9pbnQxLCAqc3RhcnRSYWRpdXMsICplbmRSYWRpdXMsICphc3BlY3RSYXRpbyB9
fTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBHcmFkaWVudDo6Q29uaWNE
YXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IHBv
aW50MDsKLSAgICBlbmNvZGVyIDw8IGFuZ2xlUmFkaWFuczsKLX0KLQotdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4gT3B0aW9uYWw8R3JhZGllbnQ6OkNvbmljRGF0YT4gR3JhZGllbnQ6OkNvbmlj
RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8RmxvYXRQb2lu
dD4gcG9pbnQwOwotICAgIGRlY29kZXIgPj4gcG9pbnQwOwotICAgIGlmICghcG9pbnQwKQotICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8ZmxvYXQ+IGFuZ2xlUmFk
aWFuczsKLSAgICBkZWNvZGVyID4+IGFuZ2xlUmFkaWFuczsKLSAgICBpZiAoIWFuZ2xlUmFkaWFu
cykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyAqcG9pbnQw
LCAqYW5nbGVSYWRpYW5zIH19OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lk
IEdyYWRpZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVy
IDw8IG1fZGF0YTsKLSAgICBlbmNvZGVyIDw8IG1fc3RvcHM7Ci0gICAgZW5jb2RlciA8PCBtX3N0
b3BzU29ydGVkOwotICAgIGVuY29kZXIgPDwgbV9zcHJlYWRNZXRob2Q7Ci0gICAgZW5jb2RlciA8
PCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbjsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4gT3B0aW9uYWw8UmVmPEdyYWRpZW50Pj4gR3JhZGllbnQ6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPERhdGE+IGRhdGE7Ci0gICAgZGVjb2RlciA+PiBk
YXRhOwotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBh
dXRvIGdyYWRpZW50ID0gR3JhZGllbnQ6OmNyZWF0ZShXVEZNb3ZlKCpkYXRhKSk7Ci0KLSAgICBP
cHRpb25hbDxDb2xvclN0b3BWZWN0b3I+IHN0b3BzOwotICAgIGRlY29kZXIgPj4gc3RvcHM7Ci0g
ICAgaWYgKCFzdG9wcykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBPcHRpb25h
bDxib29sPiBzdG9wc1NvcnRlZDsKLSAgICBkZWNvZGVyID4+IHN0b3BzU29ydGVkOwotICAgIGlm
ICghc3RvcHNTb3J0ZWQuaGFzVmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
LSAgICBpZiAoKnN0b3BzU29ydGVkKQotICAgICAgICBncmFkaWVudC0+c2V0U29ydGVkQ29sb3JT
dG9wcyhXVEZNb3ZlKCpzdG9wcykpOwotICAgIGVsc2UgewotICAgICAgICBmb3IgKGF1dG8mIHN0
b3AgOiAqc3RvcHMpCi0gICAgICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKFdURk1vdmUo
c3RvcCkpOwotICAgIH0KLQotICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIHNwcmVhZE1ldGhvZDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNwcmVhZE1ldGhvZCkpCi0gICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0gICAgZ3JhZGllbnQtPnNldFNwcmVhZE1ldGhvZChzcHJlYWRNZXRob2Qp
OwotCi0gICAgT3B0aW9uYWw8QWZmaW5lVHJhbnNmb3JtPiBncmFkaWVudFNwYWNlVHJhbnNmb3Jt
YXRpb247Ci0gICAgZGVjb2RlciA+PiBncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb247Ci0gICAg
aWYgKCFncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24pCi0gICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgZ3JhZGllbnQtPnNldEdyYWRpZW50U3BhY2VUcmFuc2Zvcm0oV1RGTW92ZSgq
Z3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uKSk7Ci0KLSAgICByZXR1cm4gZ3JhZGllbnQ7Ci19
Cit1c2luZyBHcmFkaWVudEhhc2hNYXAgPSBIYXNoTWFwPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciwgUmVmPEdyYWRpZW50Pj47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmlu
ZGV4IDc4NDQ3N2EyZWZhYTYyMzkxYTZmODBjMGQ5NDFkMjg4NDg2YTUzZjMuLjM2OWE5OWJkYTg2
OTU2NTNhYTJiYjQyZTY5Mzg2MzcxOTY2OWZlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzcsMjYgKzc3LDYg
QEAgcHJpdmF0ZToKICAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6ZmxhZykgJiYgKG1fc3RhdGUucHJvcGVydHkgIT0gc3RhdGUucHJvcGVydHkpKSBc
CiAgICAgICAgIGNoYW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6ZmxhZyk7CiAK
LUdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZSgpCi0gICAgOiBzaG91
bGRBbnRpYWxpYXModHJ1ZSkKLSAgICAsIHNob3VsZFNtb290aEZvbnRzKHRydWUpCi0gICAgLCBz
aG91bGRTdWJwaXhlbFF1YW50aXplRm9udHModHJ1ZSkKLSAgICAsIHNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zKGZhbHNlKQotI2lmIFVTRShDRykKLSAgICAvLyBDb3JlIEdyYXBoaWNzIGluY29ycmVj
dGx5IHJlbmRlcnMgc2hhZG93cyB3aXRoIHJhZGl1cyA+IDhweCAoPHJkYXI6Ly9wcm9ibGVtLzgx
MDM0NDI+KSwKLSAgICAvLyBidXQgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGlzIGJ1Z2d5IGJlaGF2
aW9yIGZvciBjYW52YXMgYW5kIC13ZWJraXQtYm94LXNoYWRvdy4KLSAgICAsIHNoYWRvd3NVc2VM
ZWdhY3lSYWRpdXMoZmFsc2UpCi0jZW5kaWYKLSAgICAsIGRyYXdMdW1pbmFuY2VNYXNrKGZhbHNl
KQotewotfQotCi1HcmFwaGljc0NvbnRleHRTdGF0ZTo6fkdyYXBoaWNzQ29udGV4dFN0YXRlKCkg
PSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJikgPSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpID0gZGVmYXVs
dDsKLUdyYXBoaWNzQ29udGV4dFN0YXRlJiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6b3BlcmF0b3I9
KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJikgPSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0
U3RhdGUmIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpvcGVyYXRvcj0oR3JhcGhpY3NDb250ZXh0U3Rh
dGUmJikgPSBkZWZhdWx0OwotCiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZTo6Y2hhbmdlc0Zyb21TdGF0ZShjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSYgc3RhdGUpIGNvbnN0CiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDI1YzY2NDRmMTI5N2Zj
NDdjMzg3MmViNWQ1OGViMmYwZGU0MWI1NTYuLmQwZWM3ZDcwYTU3Yzg1NTM5OTMwMDA2M2M3ZWY4
ODc0OTFlYTNiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGFzaEFycmF5
LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNp
bmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKQEAgLTg3LDcgKzg4LDYg
QEAgY2xhc3MgR2x5cGhCdWZmZXI7CiAKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEZs
b2F0Um91bmRlZFJlY3Q7Ci1jbGFzcyBHcmFkaWVudDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dElt
cGw7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU7CiBjbGFzcyBJbWFnZUJ1
ZmZlcjsKQEAgLTE1OCwxNiArMTU4LDUwIEBAIE9wdGlvbmFsPERvY3VtZW50TWFya2VyTGluZVN0
eWxlPiBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAg
cmV0dXJuIHt7ICptb2RlLCAqc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgfX07CiB9CiAKLXN0cnVj
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250
ZXh0U3RhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB+R3JhcGhpY3NDb250ZXh0U3RhdGUoKTsK
K3N0cnVjdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSB7CisgICAgR3JhcGhpY3NDb250ZXh0
SW5saW5lU3RhdGUoKQorICAgICAgICA6IHNob3VsZEFudGlhbGlhcyh0cnVlKQorICAgICAgICAs
IHNob3VsZFNtb290aEZvbnRzKHRydWUpCisgICAgICAgICwgc2hvdWxkU3VicGl4ZWxRdWFudGl6
ZUZvbnRzKHRydWUpCisgICAgICAgICwgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoZmFsc2UpCisj
aWYgVVNFKENHKQorICAgICAgICAvLyBDb3JlIEdyYXBoaWNzIGluY29ycmVjdGx5IHJlbmRlcnMg
c2hhZG93cyB3aXRoIHJhZGl1cyA+IDhweCAoPHJkYXI6Ly9wcm9ibGVtLzgxMDM0NDI+KSwKKyAg
ICAgICAgLy8gYnV0IHdlIG5lZWQgdG8gcHJlc2VydmUgdGhpcyBidWdneSBiZWhhdmlvciBmb3Ig
Y2FudmFzIGFuZCAtd2Via2l0LWJveC1zaGFkb3cuCisgICAgICAgICwgc2hhZG93c1VzZUxlZ2Fj
eVJhZGl1cyhmYWxzZSkKKyNlbmRpZgorICAgICAgICAsIGRyYXdMdW1pbmFuY2VNYXNrKGZhbHNl
KQorICAgIHsKKyAgICB9CiAKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZShjb25zdCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRl
KEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOworICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CisK
KyAgICBmbG9hdCBzdHJva2VUaGlja25lc3MgeyAwIH07CisgICAgZmxvYXQgc2hhZG93Qmx1ciB7
IDAgfTsKKworICAgIFRleHREcmF3aW5nTW9kZUZsYWdzIHRleHREcmF3aW5nTW9kZSB7IFRleHRE
cmF3aW5nTW9kZTo6RmlsbCB9OworCisgICAgU3Ryb2tlU3R5bGUgc3Ryb2tlU3R5bGUgeyBTb2xp
ZFN0cm9rZSB9OworICAgIFdpbmRSdWxlIGZpbGxSdWxlIHsgV2luZFJ1bGU6Ok5vblplcm8gfTsK
KworICAgIGZsb2F0IGFscGhhIHsgMSB9OworICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0
ZU9wZXJhdG9yIHsgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIgfTsKKyAgICBCbGVuZE1v
ZGUgYmxlbmRNb2RlIHsgQmxlbmRNb2RlOjpOb3JtYWwgfTsKKyAgICBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5IHsgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRl
ZmF1bHQgfTsKIAotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlJiBvcGVyYXRvcj0oY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYgb3BlcmF0b3I9KEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOworICAgIGJvb2wgc2hvdWxk
QW50aWFsaWFzIDogMTsKKyAgICBib29sIHNob3VsZFNtb290aEZvbnRzIDogMTsKKyAgICBib29s
IHNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyA6IDE7CisgICAgYm9vbCBzaGFkb3dzSWdub3Jl
VHJhbnNmb3JtcyA6IDE7CisjaWYgVVNFKENHKQorICAgIGJvb2wgc2hhZG93c1VzZUxlZ2FjeVJh
ZGl1cyA6IDE7CisjZW5kaWYKKyAgICBib29sIGRyYXdMdW1pbmFuY2VNYXNrIDogMTsKKyNpZiBI
QVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQorICAgIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgOiAx
OworI2VuZGlmCit9OwogCitzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgOiBwdWJsaWMgR3Jh
cGhpY3NDb250ZXh0SW5saW5lU3RhdGUgewogICAgIGVudW0gQ2hhbmdlIDogdWludDMyX3Qgewog
ICAgICAgICBTdHJva2VHcmFkaWVudENoYW5nZSAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDAs
CiAgICAgICAgIFN0cm9rZVBhdHRlcm5DaGFuZ2UgICAgICAgICAgICAgICAgICAgICA9IDEgPDwg
MSwKQEAgLTE5Myw0NCArMjI3LDE4IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAg
ICAgICAgIFVzZURhcmtBcHBlYXJhbmNlQ2hhbmdlICAgICAgICAgICAgICAgICA9IDEgPDwgMjAs
CiAjZW5kaWYKICAgICB9OworCiAgICAgdXNpbmcgU3RhdGVDaGFuZ2VGbGFncyA9IE9wdGlvblNl
dDxDaGFuZ2U+OwogCiAgICAgUmVmUHRyPEdyYWRpZW50PiBzdHJva2VHcmFkaWVudDsKICAgICBS
ZWZQdHI8UGF0dGVybj4gc3Ryb2tlUGF0dGVybjsKLSAgICAKKwogICAgIFJlZlB0cjxHcmFkaWVu
dD4gZmlsbEdyYWRpZW50OwogICAgIFJlZlB0cjxQYXR0ZXJuPiBmaWxsUGF0dGVybjsKIAotICAg
IEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7Ci0KLSAgICBmbG9hdCBzdHJva2VUaGlja25lc3MgeyAw
IH07Ci0gICAgZmxvYXQgc2hhZG93Qmx1ciB7IDAgfTsKLQotICAgIFRleHREcmF3aW5nTW9kZUZs
YWdzIHRleHREcmF3aW5nTW9kZSB7IFRleHREcmF3aW5nTW9kZTo6RmlsbCB9OwotCiAgICAgQ29s
b3Igc3Ryb2tlQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKICAgICBDb2xvciBmaWxsQ29sb3IgeyBD
b2xvcjo6YmxhY2sgfTsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKLQotICAgIFN0cm9rZVN0eWxl
IHN0cm9rZVN0eWxlIHsgU29saWRTdHJva2UgfTsKLSAgICBXaW5kUnVsZSBmaWxsUnVsZSB7IFdp
bmRSdWxlOjpOb25aZXJvIH07Ci0KLSAgICBmbG9hdCBhbHBoYSB7IDEgfTsKLSAgICBDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciB7IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VP
dmVyIH07Ci0gICAgQmxlbmRNb2RlIGJsZW5kTW9kZSB7IEJsZW5kTW9kZTo6Tm9ybWFsIH07Ci0g
ICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB7IEludGVy
cG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0IH07Ci0KLSAgICBib29sIHNob3VsZEFudGlhbGlhcyA6
IDE7Ci0gICAgYm9vbCBzaG91bGRTbW9vdGhGb250cyA6IDE7Ci0gICAgYm9vbCBzaG91bGRTdWJw
aXhlbFF1YW50aXplRm9udHMgOiAxOwotICAgIGJvb2wgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMg
OiAxOwotI2lmIFVTRShDRykKLSAgICBib29sIHNoYWRvd3NVc2VMZWdhY3lSYWRpdXMgOiAxOwot
I2VuZGlmCi0gICAgYm9vbCBkcmF3THVtaW5hbmNlTWFzayA6IDE7Ci0jaWYgSEFWRShPU19EQVJL
X01PREVfU1VQUE9SVCkKLSAgICBib29sIHVzZURhcmtBcHBlYXJhbmNlIDogMTsKLSNlbmRpZgog
fTsKIAogc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGJhODQ2MjVhNTQ3MzMz
NDAwYWU4YTlkNjJkODI4OGYzMGM3ODJlMzAuLjRmYWFiN2U5YjJmYzNjMmM5MDRiYjk0NTAzNWE0
YWRhMzVlYzgwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0Rmx1c2hJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kLmgiCiAjaW5jbHVkZSAi
UmVuZGVyaW5nTW9kZS5oIgotI2luY2x1ZGUgIlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIlJlbmRlcmluZ1Jlc291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNz
IERyYXdpbmdDb250ZXh0Owogc3RydWN0IEl0ZW1CdWZmZXJIYW5kbGU7CiB9CiAKLWNsYXNzIElt
YWdlQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8SW1hZ2VCdWZmZXI+LCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8SW1hZ2VCdWZmZXI+IHsKK2NsYXNzIEltYWdlQnVmZmVyIDogcHVibGljIFJlbmRl
cmluZ1Jlc291cmNlIHsKIHB1YmxpYzoKICAgICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRl
ciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0
cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFNo
b3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUgPSAxLCBDb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQgPSBQaXhl
bEZvcm1hdDo6QkdSQTgsIGNvbnN0IEhvc3RXaW5kb3cqID0gbnVsbHB0cik7CkBAIC03MSw3ICs3
MSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBjYW5NYXBCYWNraW5nU3RvcmUoKSBjb25z
dCA9IDA7Ci0gICAgdmlydHVhbCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAKICAgICB2aXJ0dWFs
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hDb250ZXh0KCkgPSAwOwpAQCAtMTM2LDcgKzEzNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCA9IDA7CiAgICAgCiBwcm90
ZWN0ZWQ6Ci0gICAgSW1hZ2VCdWZmZXIoKSA9IGRlZmF1bHQ7CisgICAgdXNpbmcgUmVuZGVyaW5n
UmVzb3VyY2U6OlJlbmRlcmluZ1Jlc291cmNlOwogCiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZl
SW1hZ2U+IHNpbmtJbnRvTmF0aXZlSW1hZ2UoKSA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8SW1h
Z2U+IHNpbmtJbnRvSW1hZ2UoUHJlc2VydmVSZXNvbHV0aW9uID0gUHJlc2VydmVSZXNvbHV0aW9u
OjpObykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TmF0aXZlSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZl
SW1hZ2UuY3BwCmluZGV4IDBhMzE1NTg1MDM0OTVlMmRlOTM3ZTcyNjkzMWVjNzg4MGNmNjlhMjcu
LmNmMDU5ZjYzMmVlNmEwNTIwNjVlN2Q3NDQwOTU5OWQxYTIxMjcwZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5jcHAKQEAgLTI2LDggKzI2
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogCi0j
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UmVmUHRyPE5hdGl2ZUltYWdlPiBOYXRpdmVJbWFnZTo6Y3JlYXRlKFBsYXRmb3JtSW1hZ2VQdHIm
JiBwbGF0Zm9ybUltYWdlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQpAQCAtMzgsMTUgKzM2LDkgQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBO
YXRpdmVJbWFnZTo6Y3JlYXRlKFBsYXRmb3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdlLCBSZW5k
ZXIKIH0KIAogTmF0aXZlSW1hZ2U6Ok5hdGl2ZUltYWdlKFBsYXRmb3JtSW1hZ2VQdHImJiBwbGF0
Zm9ybUltYWdlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKQotICAgIDogbV9wbGF0Zm9ybUltYWdlKFdURk1vdmUocGxhdGZvcm1JbWFnZSkp
Ci0gICAgLCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcihyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCi17Ci19Ci0KLU5hdGl2ZUltYWdlOjp+TmF0aXZlSW1hZ2UoKQorICAgIDogUmVu
ZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9wbGF0
Zm9ybUltYWdlKFdURk1vdmUocGxhdGZvcm1JbWFnZSkpCiB7Ci0gICAgZm9yIChhdXRvIG9ic2Vy
dmVyIDogbV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT5yZWxlYXNlTmF0aXZlSW1hZ2Uo
bV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaApp
bmRleCA5NDViOGRlOThkNGI5ODhjZWQ5YTI2NWQxNmU1OTQwMTMxZDEzODBjLi42ZjM5MTY0NDkx
MDJhNDQ4YmQ1MzExZTA2YzdlYmZlOWRkYWNlZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKQEAgLTMwLDI5ICszMCwxNiBAQAogI2luY2x1
ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtSW1h
Z2UuaCIKLSNpbmNsdWRlICJSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCIKLSNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgIlJlbmRlcmluZ1Jlc291cmNlLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTmF0aXZlSW1h
Z2UgOiBwdWJsaWMgUmVmQ291bnRlZDxOYXRpdmVJbWFnZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxOYXRpdmVJbWFnZT4geworY2xhc3MgTmF0aXZlSW1hZ2UgOiBwdWJsaWMgUmVuZGVyaW5nUmVz
b3VyY2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGNsYXNz
IE9ic2VydmVyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBk
ZWZhdWx0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikgPSAwOwotICAgIHByb3RlY3RlZDoKLSAgICAgICAgT2JzZXJ2
ZXIoKSA9IGRlZmF1bHQ7Ci0gICAgfTsKLQogICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCBSZWZQ
dHI8TmF0aXZlSW1hZ2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYsIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSk7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB+TmF0aXZlSW1hZ2UoKTsKLQogICAgIGNvbnN0IFBsYXRm
b3JtSW1hZ2VQdHImIHBsYXRmb3JtSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtSW1h
Z2U7IH0KICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7
IH0KIApAQCAtNjAsMTggKzQ3LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc0FscGhhKCkgY29u
c3Q7CiAgICAgQ29sb3Igc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCkgY29uc3Q7CiAKLSAgICB2b2lk
IGFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikgeyBtX29ic2VydmVycy5hZGQoJm9ic2Vy
dmVyKTsgfQotICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1f
b2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOyB9Ci0gICAgCiAgICAgdm9pZCBjbGVhclN1Ymlt
YWdlcygpOwogCiBwcml2YXRlOgotICAgIE5hdGl2ZUltYWdlKFBsYXRmb3JtSW1hZ2VQdHImJik7
CiAgICAgTmF0aXZlSW1hZ2UoUGxhdGZvcm1JbWFnZVB0ciYmLCBSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwogCiAgICAgUGxhdGZvcm1JbWFnZVB0ciBtX3BsYXRmb3JtSW1hZ2U7Ci0gICAg
SGFzaFNldDxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwotICAgIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKIH07CiAKIHVzaW5nIE5hdGl2
ZUltYWdlSGFzaE1hcCA9IEhhc2hNYXA8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBSZWY8
TmF0aXZlSW1hZ2U+PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BhdHRlcm4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVy
bi5jcHAKaW5kZXggNzk2YTA3YzE4NmI2MmZmNGU2YjZlYTI2MTA3ZmY5ZmM0YzQzOGU3MS4uNzA4
MDA3Yzk4YWM0NTJiNmQ0YzY1OTI0NzM4MjkxOWZhZjM1Mjc2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKQEAgLTMxLDIwICszMSwxOSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVhdGUoUmVmPElt
YWdlPiYmIHRpbGVJbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCitSZWY8UGF0dGVy
bj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwg
Ym9vbCByZXBlYXRZLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhdHRlcm4oV1RGTW92
ZSh0aWxlSW1hZ2UpLCByZXBlYXRYLCByZXBlYXRZKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUGF0dGVybihXVEZNb3ZlKHRpbGVJbWFnZSksIHJlcGVhdFgsIHJlcGVhdFksIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikpOwogfQogCi1QYXR0ZXJuOjpQYXR0ZXJuKFJlZjxJbWFnZT4m
JiBpbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCi0gICAgOiBtX3RpbGVJbWFnZShX
VEZNb3ZlKGltYWdlKSkKK1BhdHRlcm46OlBhdHRlcm4oUmVmPEltYWdlPiYmIGltYWdlLCBib29s
IHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICA6IFJlbmRlcmluZ1Jlc291cmNlKHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikKKyAgICAsIG1fdGlsZUltYWdlKFdURk1vdmUoaW1hZ2UpKQog
ICAgICwgbV9yZXBlYXRYKHJlcGVhdFgpCiAgICAgLCBtX3JlcGVhdFkocmVwZWF0WSkKIHsKIH0K
IAotUGF0dGVybjo6flBhdHRlcm4oKSA9IGRlZmF1bHQ7Ci0KIHZvaWQgUGF0dGVybjo6c2V0UGF0
dGVyblNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblNwYWNlVHJh
bnNmb3JtYXRpb24pCiB7CiAgICAgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbiA9IHBhdHRl
cm5TcGFjZVRyYW5zZm9ybWF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0dGVybi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGF0dGVybi5oCmluZGV4IGFiY2Q0NGZhYmM3YTA1MDA2ZjFlMzU0Y2VkZjVmMTdjMThlNDNjMzMu
LjhmMjI0ODg3ZWIyOWM3M2VhMTlkNDYwNGUyOTc4ODIyM2EyNzljNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKQEAgLTU3LDEwICs1Nyw5IEBAIGNsYXNz
IEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VIYW5kbGU7CiAKLWNs
YXNzIFBhdHRlcm4gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxQYXR0ZXJuPiB7CitjbGFzcyBQ
YXR0ZXJuIGZpbmFsIDogcHVibGljIFJlbmRlcmluZ1Jlc291cmNlIHsKIHB1YmxpYzoKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShSZWY8SW1hZ2U+JiYgdGls
ZUltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
flBhdHRlcm4oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0
ZShSZWY8SW1hZ2U+JiYgdGlsZUltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpKTsKIAogICAgIEltYWdlJiB0aWxlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX3Rp
bGVJbWFnZS5nZXQoKTsgfQogCkBAIC03NSwxMSArNzQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBy
ZXBlYXRYKCkgY29uc3QgeyByZXR1cm4gbV9yZXBlYXRYOyB9CiAgICAgYm9vbCByZXBlYXRZKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXBlYXRZOyB9CiAKLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPFJlZjxQYXR0ZXJuPj4gZGVjb2RlKERlY29kZXImKTsKLQogcHJp
dmF0ZToKLSAgICBQYXR0ZXJuKFJlZjxJbWFnZT4mJiwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVh
dFkpOworICAgIFBhdHRlcm4oUmVmPEltYWdlPiYmLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0
WSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJbWFnZT4gbV90aWxl
SW1hZ2U7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247
CkBAIC04Nyw0NCArODMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9yZXBlYXRZOwogfTsKIAot
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgUGF0dGVybjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Ci17Ci0gICAgSW1hZ2VIYW5kbGUgaW1hZ2VIYW5kbGU7Ci0gICAgaW1hZ2VI
YW5kbGUuaW1hZ2UgPSBtX3RpbGVJbWFnZS5wdHIoKTsKLSAgICBlbmNvZGVyIDw8IGltYWdlSGFu
ZGxlOwotICAgIGVuY29kZXIgPDwgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKLSAgICBl
bmNvZGVyIDw8IG1fcmVwZWF0WDsKLSAgICBlbmNvZGVyIDw8IG1fcmVwZWF0WTsKLX0KLQotdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLU9wdGlvbmFsPFJlZjxQYXR0ZXJuPj4gUGF0dGVybjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8SW1hZ2VIYW5kbGU+IGltYWdl
SGFuZGxlOwotICAgIGRlY29kZXIgPj4gaW1hZ2VIYW5kbGU7Ci0gICAgaWYgKCFpbWFnZUhhbmRs
ZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPEFmZmluZVRy
YW5zZm9ybT4gcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247Ci0gICAgZGVjb2RlciA+PiBwYXR0
ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKLSAgICBpZiAoIXBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0
aW9uKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8Ym9vbD4g
cmVwZWF0WDsKLSAgICBkZWNvZGVyID4+IHJlcGVhdFg7Ci0gICAgaWYgKCFyZXBlYXRYKQotICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WTsK
LSAgICBkZWNvZGVyID4+IHJlcGVhdFk7Ci0gICAgaWYgKCFyZXBlYXRZKQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgYXV0byBwYXR0ZXJuID0gUGF0dGVybjo6Y3JlYXRlKGlt
YWdlSGFuZGxlLT5pbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCAqcmVwZWF0WCwgKnJlcGVhdFkpOwot
ICAgIHBhdHRlcm4tPnNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSgqcGF0dGVyblNwYWNlVHJhbnNm
b3JtYXRpb24pOwotICAgIHJldHVybiBwYXR0ZXJuOwotfQordXNpbmcgUGF0dGVybkhhc2hNYXAg
PSBIYXNoTWFwPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVmPFBhdHRlcm4+PjsKIAog
fSAvL25hbWVzcGFjZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZW5kZXJpbmdSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVuZGVyaW5nUmVzb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmE0YjBkZjNmN2JlNTdiN2QwODdl
ZGQ4NzhhNmNlZDk4MTRmODkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2UuaApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBSZW5kZXJpbmdSZXNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbmRlcmluZ1Jl
c291cmNlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbmRlcmluZ1Jlc291cmNlPiB7CitwdWJs
aWM6CisgICAgY2xhc3MgT2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+
T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVuZGVy
aW5nUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSA9IDA7CisgICAgcHJvdGVj
dGVkOgorICAgICAgICBPYnNlcnZlcigpID0gZGVmYXVsdDsKKyAgICB9OworCisgICAgdmlydHVh
bCB+UmVuZGVyaW5nUmVzb3VyY2UoKQorICAgIHsKKyAgICAgICAgZm9yIChhdXRvIG9ic2VydmVy
IDogbV9vYnNlcnZlcnMpCisgICAgICAgICAgICBvYnNlcnZlci0+cmVsZWFzZVJlbmRlcmluZ1Jl
c291cmNlKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB9CisKKyAgICBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7IH0KKworICAgIHZvaWQg
YWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2
ZXIpOyB9CisgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV9v
YnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7IH0KKworcHJvdGVjdGVkOgorICAgIFJlbmRlcmlu
Z1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCisgICAgICAgIDogbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAgICBIYXNoU2V0PE9ic2Vy
dmVyKj4gbV9vYnNlcnZlcnM7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggYTk0NzlmMjZjNzU3MjVjZTc3ZWFkZjE1OWIw
MmU0MjhjODNjYmZkNS4uMDIwZTc4MDY4ZjJjYjJjNDk0NWFjZGY1NjI3YzBiYzlmODhhM2VjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC01Myw2ICs1Myw5IEBAIHZvaWQgRGlzcGxh
eUxpc3Q6OmR1bXAoKSBjb25zdAogRGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0KERpc3BsYXlMaXN0
JiYgb3RoZXIpCiAgICAgOiBtX2ltYWdlQnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faW1h
Z2VCdWZmZXJzLCB7IH0pKQogICAgICwgbV9uYXRpdmVJbWFnZXMoc3RkOjpleGNoYW5nZShvdGhl
ci5tX25hdGl2ZUltYWdlcywgeyB9KSkKKyAgICAsIG1fZm9udHMoc3RkOjpleGNoYW5nZShvdGhl
ci5tX2ZvbnRzLCB7IH0pKQorICAgICwgbV9wYXR0ZXJucyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
cGF0dGVybnMsIHsgfSkpCisgICAgLCBtX2dyYWRpZW50cyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
Z3JhZGllbnRzLCB7IH0pKQogICAgICwgbV9pdGVtcyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faXRl
bXMsIG51bGxwdHIpKQogICAgICwgbV9kcmF3aW5nSXRlbUV4dGVudHMoc3RkOjpleGNoYW5nZShv
dGhlci5tX2RyYXdpbmdJdGVtRXh0ZW50cywgeyB9KSkKIHsKQEAgLTcwLDYgKzczLDkgQEAgRGlz
cGxheUxpc3QmIERpc3BsYXlMaXN0OjpvcGVyYXRvcj0oRGlzcGxheUxpc3QmJiBvdGhlcikKIHsK
ICAgICBtX2ltYWdlQnVmZmVycyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pbWFnZUJ1ZmZlcnMs
IHsgfSk7CiAgICAgbV9uYXRpdmVJbWFnZXMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fbmF0aXZl
SW1hZ2VzLCB7IH0pOworICAgIG1fZm9udHMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZm9udHMs
IHsgfSk7CisgICAgbV9wYXR0ZXJucyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9wYXR0ZXJucywg
eyB9KTsKKyAgICBtX2dyYWRpZW50cyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9ncmFkaWVudHMs
IHsgfSk7CiAgICAgbV9pdGVtcyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtcywgbnVsbHB0
cik7CiAgICAgbV9kcmF3aW5nSXRlbUV4dGVudHMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZHJh
d2luZ0l0ZW1FeHRlbnRzLCB7IH0pOwogICAgIHJldHVybiAqdGhpczsKQEAgLTgyLDYgKzg4LDkg
QEAgdm9pZCBEaXNwbGF5TGlzdDo6Y2xlYXIoKQogICAgIG1fZHJhd2luZ0l0ZW1FeHRlbnRzLmNs
ZWFyKCk7CiAgICAgbV9pbWFnZUJ1ZmZlcnMuY2xlYXIoKTsKICAgICBtX25hdGl2ZUltYWdlcy5j
bGVhcigpOworICAgIG1fZm9udHMuY2xlYXIoKTsKKyAgICBtX3BhdHRlcm5zLmNsZWFyKCk7Cisg
ICAgbV9ncmFkaWVudHMuY2xlYXIoKTsKIH0KIAogYm9vbCBEaXNwbGF5TGlzdDo6c2hvdWxkRHVt
cEZvckZsYWdzKEFzVGV4dEZsYWdzIGZsYWdzLCBJdGVtSGFuZGxlIGl0ZW0pCkBAIC05MSwxMCAr
MTAwLDEwIEBAIGJvb2wgRGlzcGxheUxpc3Q6OnNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFn
cyBmbGFncywgSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICBpZiAoIShmbGFncyAmIEFzVGV4dEZs
YWc6OkluY2x1ZGVzUGxhdGZvcm1PcGVyYXRpb25zKSkgewogICAgICAgICAgICAgY29uc3QgYXV0
byYgc3RhdGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+KCk7CiAgICAgICAgICAgICAvLyBGSVhN
RTogZm9yIG5vdywgb25seSBkcm9wIHRoZSBpdGVtIGlmIHRoZSBvbmx5IHN0YXRlLWNoYW5nZSBm
bGFncyBhcmUgcGxhdGZvcm0tc3BlY2lmaWMuCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0
YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4
ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQorICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5jaGFuZ2VG
bGFncygpID09IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9u
dHNDaGFuZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBp
ZiAoc3RhdGVJdGVtLnN0YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQorICAgICAgICAgICAgaWYgKHN0
YXRlSXRlbS5jaGFuZ2VGbGFncygpID09IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJw
aXhlbFF1YW50aXplRm9udHNDaGFuZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAppbmRleCBhOTAy
ZjM4MzQxMzYxZmU4ZjU3NWMwZTg0NDFhMmVhZTFlOWI4OTU1Li4zYTU4YmI0YjA3ZDIyNzRjNzAz
NTMzY2JlZjkzNjFmYzEwMzIwZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaApAQCAtMjksOCAr
MjksMTAgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1UeXBlLmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNs
dWRlICJQYXR0ZXJuLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNzYsNiArNzgs
OCBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwJiBpbWFnZUJ1ZmZlcnMo
KSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVyczsgfQogICAgIGNvbnN0IE5hdGl2ZUltYWdl
SGFzaE1hcCYgbmF0aXZlSW1hZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVJbWFnZXM7IH0K
ICAgICBjb25zdCBGb250UmVuZGVyaW5nUmVzb3VyY2VNYXAmIGZvbnRzKCkgY29uc3QgeyByZXR1
cm4gbV9mb250czsgfQorICAgIGNvbnN0IFBhdHRlcm5IYXNoTWFwJiBwYXR0ZXJucygpIGNvbnN0
IHsgcmV0dXJuIG1fcGF0dGVybnM7IH0KKyAgICBjb25zdCBHcmFkaWVudEhhc2hNYXAmIGdyYWRp
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhZGllbnRzOyB9CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEl0ZW1CdWZmZXJDbGllbnQoSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQqKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEl0ZW1CdWZmZXJDbGllbnQoSXRlbUJ1ZmZlcldyaXRp
bmdDbGllbnQqKTsKQEAgLTE4OCwxMSArMTkyLDI3IEBAIHByaXZhdGU6CiAgICAgICAgIH0pOwog
ICAgIH0KIAorICAgIHZvaWQgY2FjaGVQYXR0ZXJuKFBhdHRlcm4mIHBhdHRlcm4pCisgICAgewor
ICAgICAgICBtX3BhdHRlcm5zLmVuc3VyZShwYXR0ZXJuLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcigpLCBbJl0oKSB7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZihwYXR0ZXJuKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgdm9pZCBjYWNoZUdyYWRpZW50KEdyYWRpZW50JiBncmFk
aWVudCkKKyAgICB7CisgICAgICAgIG1fZ3JhZGllbnRzLmVuc3VyZShncmFkaWVudC5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgWyZdKCkgeworICAgICAgICAgICAgcmV0dXJuIG1ha2VS
ZWYoZ3JhZGllbnQpOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBzdGF0aWMgYm9vbCBzaG91
bGREdW1wRm9yRmxhZ3MoQXNUZXh0RmxhZ3MsIEl0ZW1IYW5kbGUpOwogCiAgICAgSW1hZ2VCdWZm
ZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2
ZUltYWdlczsKICAgICBGb250UmVuZGVyaW5nUmVzb3VyY2VNYXAgbV9mb250czsKKyAgICBQYXR0
ZXJuSGFzaE1hcCBtX3BhdHRlcm5zOworICAgIEdyYWRpZW50SGFzaE1hcCBtX2dyYWRpZW50czsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SXRlbUJ1ZmZlcj4gbV9pdGVtczsKICAgICBWZWN0b3I8T3B0
aW9uYWw8RmxvYXRSZWN0Pj4gbV9kcmF3aW5nSXRlbUV4dGVudHM7CiAgICAgYm9vbCBtX3RyYWNr
c0RyYXdpbmdJdGVtRXh0ZW50cyB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggNWY5YzllMmE4NDExZmJmY2E1ZmVjNmU5OWNkODI2YTM4
ODk3ZWIwOC4uNjVkODNjZDU2MzVkMWE0NDZiOTk0NTVkMmM0NzIwMzgxMTg2MjdlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTg5LDcgKzg5LDcg
QEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6IHsKLSAgICAg
ICAgZ2V0PFNldFN0YXRlPigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRM
aW5lQ2FwOiB7CkBAIC0zNTQsMTAgKzM1NCw2IEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVzdHJveSgp
CiAgICAgICAgIGdldDxTZXRMaW5lRGFzaD4oKS5+U2V0TGluZURhc2goKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogewotICAgICAgICBnZXQ8
U2V0U3RhdGU+KCkuflNldFN0YXRlKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U3Ryb2tlUGF0aDogewogICAgICAgICBnZXQ8U3Ryb2tlUGF0aD4oKS5+U3Ry
b2tlUGF0aCgpOwogICAgICAgICByZXR1cm47CkBAIC01MTAsNiArNTA2LDEwIEBAIHZvaWQgSXRl
bUhhbmRsZTo6ZGVzdHJveSgpCiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFs
bHlfZGVzdHJ1Y3RpYmxlPFNldE1pdGVyTGltaXQ+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6IHsKKyAgICAgICAgZ2V0PFNldFN0
YXRlPigpLn5TZXRTdGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNhc2UgSXRl
bVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogewogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6
aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRTdHJva2VUaGlja25lc3M+Ojp2YWx1ZSk7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCAy
MzI1OTYzYzk5YmI4YmNjZDhmMjc3MmY2YzdmMjhkYzg1YWM5NWUzLi5jMTdmODg0Y2RhNTdiOGI3
ZTcxNTQ5MzFhNDM0NmExYWIyNTk2ZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuY3BwCkBAIC0yMDksMjQgKzIwOSw2MSBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3Ryb2tlVGhpY2tuZXNzJiBzdGF0ZSkKICAgICBy
ZXR1cm4gdHM7CiB9CiAKLVNldFN0YXRlOjpTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdz
KQotICAgIDogbV9zdGF0ZShzdGF0ZSwgZmxhZ3MpCitTZXRTdGF0ZTo6U2V0U3RhdGUoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MsIGNvbnN0IEdyYXBo
aWNzQ29udGV4dFN0YXRlJiBzdGF0ZSkKKyAgICA6IG1fY2hhbmdlRmxhZ3MoY2hhbmdlRmxhZ3Mp
CisgICAgLCBtX2lubGluZVN0YXRlKHN0YXRlKQorICAgICwgbV9zdHJva2VHcmFkaWVudElkZW50
aWZpZXIoc3RhdGUuc3Ryb2tlR3JhZGllbnQgPyBzdGF0ZS5zdHJva2VHcmFkaWVudC0+cmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgOiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkK
KyAgICAsIG1fc3Ryb2tlUGF0dGVybklkZW50aWZpZXIoc3RhdGUuc3Ryb2tlUGF0dGVybiA/IHN0
YXRlLnN0cm9rZVBhdHRlcm4tPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIDogUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpCisgICAgLCBtX2ZpbGxHcmFkaWVudElkZW50aWZpZXIo
c3RhdGUuZmlsbEdyYWRpZW50ID8gc3RhdGUuZmlsbEdyYWRpZW50LT5yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIoKSA6IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKQorICAgICwgbV9m
aWxsUGF0dGVybklkZW50aWZpZXIoc3RhdGUuZmlsbFBhdHRlcm4gPyBzdGF0ZS5maWxsUGF0dGVy
bi0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgOiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIoKSkKKyAgICAsIG1fc3Ryb2tlQ29sb3Ioc3RhdGUuc3Ryb2tlQ29sb3IpCisgICAgLCBt
X2ZpbGxDb2xvcihzdGF0ZS5maWxsQ29sb3IpCisgICAgLCBtX3NoYWRvd0NvbG9yKHN0YXRlLnNo
YWRvd0NvbG9yKQogewogfQogCi1TZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGVDaGFuZ2UmIHN0YXRlQ2hhbmdlKQotICAgIDogbV9zdGF0ZShzdGF0ZUNoYW5nZSkK
K1NldFN0YXRlOjpTZXRTdGF0ZShHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyBjaGFuZ2VGbGFncywgY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmIGlubGluZVN0
YXRlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVy
LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0dGVybklkZW50aWZpZXIsIFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmaWxsR3JhZGllbnRJZGVudGlmaWVyLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JZGVudGlmaWVyLCBjb25zdCBDb2xvciYg
c3Ryb2tlQ29sb3IsIGNvbnN0IENvbG9yJiBmaWxsQ29sb3IsIGNvbnN0IENvbG9yJiBzaGFkb3dD
b2xvcikKKyAgICA6IG1fY2hhbmdlRmxhZ3MoY2hhbmdlRmxhZ3MpCisgICAgLCBtX2lubGluZVN0
YXRlKGlubGluZVN0YXRlKQorICAgICwgbV9zdHJva2VHcmFkaWVudElkZW50aWZpZXIoc3Ryb2tl
R3JhZGllbnRJZGVudGlmaWVyKQorICAgICwgbV9zdHJva2VQYXR0ZXJuSWRlbnRpZmllcihzdHJv
a2VQYXR0ZXJuSWRlbnRpZmllcikKKyAgICAsIG1fZmlsbEdyYWRpZW50SWRlbnRpZmllcihmaWxs
R3JhZGllbnRJZGVudGlmaWVyKQorICAgICwgbV9maWxsUGF0dGVybklkZW50aWZpZXIoZmlsbFBh
dHRlcm5JZGVudGlmaWVyKQorICAgICwgbV9zdHJva2VDb2xvcihzdHJva2VDb2xvcikKKyAgICAs
IG1fZmlsbENvbG9yKGZpbGxDb2xvcikKKyAgICAsIG1fc2hhZG93Q29sb3Ioc2hhZG93Q29sb3Ip
CiB7CiB9CiAKLXZvaWQgU2V0U3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkg
Y29uc3QKK3ZvaWQgU2V0U3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3Jh
ZGllbnQqIHN0cm9rZUdyYWRpZW50LCBQYXR0ZXJuKiBzdHJva2VQYXR0ZXJuLCBHcmFkaWVudCog
ZmlsbEdyYWRpZW50LCBQYXR0ZXJuKiBmaWxsUGF0dGVybikgY29uc3QKIHsKLSAgICBtX3N0YXRl
LmFwcGx5KGNvbnRleHQpOworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHN0YXRlQ2hh
bmdlOworCisgICAgc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncyA9IG1fY2hhbmdlRmxhZ3M7Cisg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5HcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZTo6b3BlcmF0
b3I9KG1faW5saW5lU3RhdGUpOworICAgIAorICAgIGlmIChzdHJva2VHcmFkaWVudCkKKyAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IHN0cm9rZUdyYWRpZW50Owor
CisgICAgaWYgKHN0cm9rZVBhdHRlcm4pCisgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ry
b2tlUGF0dGVybiA9IHN0cm9rZVBhdHRlcm47CisKKyAgICBpZiAoZmlsbEdyYWRpZW50KQorICAg
ICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxHcmFkaWVudCA9IGZpbGxHcmFkaWVudDsKKwor
ICAgIGlmIChmaWxsUGF0dGVybikKKyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUGF0
dGVybiA9IGZpbGxQYXR0ZXJuOworCisgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VDb2xv
ciA9IG1fc3Ryb2tlQ29sb3I7CisgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsQ29sb3IgPSBt
X2ZpbGxDb2xvcjsKKyAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd0NvbG9yID0gbV9zaGFk
b3dDb2xvcjsKKworICAgIHN0YXRlQ2hhbmdlLmFwcGx5KGNvbnRleHQpOwogfQogCi1zdGF0aWMg
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3RhdGUmIHN0
YXRlKQorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFNldFN0YXRlJikKIHsKLSAgICB0cyA8PCBzdGF0ZS5zdGF0ZSgpOworLy8gICAgdHMgPDwgc3Rh
dGUuc3RhdGUoKTsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oCmluZGV4IGVhOGFjYWRlNjU3NTE0MDEzMDgwZjI3MWJkNzJiZWZkMzExNTEwYTguLjQx
ZGIwOTM0NTU0MzExNzkyMzFlNzU0MDhlOGEyNjI5NmY3YTE1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaApAQCAtMjU0LDEwNiArMjU0LDU1IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFNl
dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MpOwotICAgIFdFQkNPUkVfRVhQT1JUIFNldFN0YXRlKGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJik7Ci0gICAgCi0gICAgY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGVDaGFuZ2UmIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQotCi0gICAg
c3RhdGljIHZvaWQgYnVpbGRlclN0YXRlKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MpOwor
ICAgIFNldFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzLCBjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNldFN0YXRlKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzLCBjb25zdCBHcmFwaGljc0NvbnRl
eHRJbmxpbmVTdGF0ZSYsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VHcmFkaWVu
dElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VQYXR0ZXJuSWRl
bnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxHcmFkaWVudElkZW50aWZp
ZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmaWxsUGF0dGVybklkZW50aWZpZXIsIGNv
bnN0IENvbG9yJiBzdHJva2VDb2xvciwgY29uc3QgQ29sb3ImIGZpbGxDb2xvciwgY29uc3QgQ29s
b3ImIHNoYWRvd0NvbG9yKTsKIAotICAgIHN0YXRpYyB2b2lkIGR1bXBTdGF0ZUNoYW5nZXMoV1RG
OjpUZXh0U3RyZWFtJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2NoYW5nZUZsYWdz
OyB9CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZUdyYWRpZW50SWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyOyB9CisgICAg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRlcm5JZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9zdHJva2VQYXR0ZXJuSWRlbnRpZmllcjsgfQorICAgIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBmaWxsR3JhZGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9maWxsR3JhZGllbnRJZGVudGlmaWVyOyB9CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGZpbGxQYXR0ZXJuSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbFBhdHRlcm5J
ZGVudGlmaWVyOyB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFNldFN0YXRlPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgdm9pZCBhcHBseShHcmFwaGlj
c0NvbnRleHQmKSBjb25zdDsKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIEdyYWRp
ZW50KiBzdHJva2VHcmFkaWVudCwgUGF0dGVybiogc3Ryb2tlUGF0dGVybiwgR3JhZGllbnQqIGZp
bGxHcmFkaWVudCwgUGF0dGVybiogZmlsbFBhdHRlcm4pIGNvbnN0OwogCiBwcml2YXRlOgotICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIG1fc3RhdGU7CisgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgbV9jaGFuZ2VGbGFnczsKKyAgICBHcmFwaGljc0NvbnRl
eHRJbmxpbmVTdGF0ZSBtX2lubGluZVN0YXRlOworCisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIG1fc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyOworICAgIFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBtX3N0cm9rZVBhdHRlcm5JZGVudGlmaWVyOworICAgIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBtX2ZpbGxHcmFkaWVudElkZW50aWZpZXI7CisgICAgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIG1fZmlsbFBhdHRlcm5JZGVudGlmaWVyOworCisgICAgQ29sb3IgbV9z
dHJva2VDb2xvcjsKKyAgICBDb2xvciBtX2ZpbGxDb2xvcjsKKyAgICBDb2xvciBtX3NoYWRvd0Nv
bG9yOwogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2V0U3RhdGU6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGF1dG8gY2hhbmdlRmxhZ3MgPSBtX3N0
YXRlLm1fY2hhbmdlRmxhZ3M7Ci0gICAgZW5jb2RlciA8PCBjaGFuZ2VGbGFnczsKLQotICAgIGF1
dG8mIHN0YXRlID0gbV9zdGF0ZS5tX3N0YXRlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpIHsKLSAgICAg
ICAgZW5jb2RlciA8PCAhIXN0YXRlLnN0cm9rZUdyYWRpZW50OwotICAgICAgICBpZiAoc3RhdGUu
c3Ryb2tlR3JhZGllbnQpCi0gICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5zdHJva2VHcmFk
aWVudDsKLSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2UpKSB7Ci0gICAgICAgIGVuY29kZXIgPDwgISFz
dGF0ZS5zdHJva2VQYXR0ZXJuOwotICAgICAgICBpZiAoc3RhdGUuc3Ryb2tlUGF0dGVybikKLSAg
ICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRlLnN0cm9rZVBhdHRlcm47Ci0gICAgfQotCi0gICAg
aWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGll
bnRDaGFuZ2UpKSB7Ci0gICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5maWxsR3JhZGllbnQ7Ci0g
ICAgICAgIGlmIChzdGF0ZS5maWxsR3JhZGllbnQpCi0gICAgICAgICAgICBlbmNvZGVyIDw8ICpz
dGF0ZS5maWxsR3JhZGllbnQ7Ci0gICAgfQotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUGF0dGVybkNoYW5nZSkpIHsKLSAgICAgICAgZW5j
b2RlciA8PCAhIXN0YXRlLmZpbGxQYXR0ZXJuOwotICAgICAgICBpZiAoc3RhdGUuZmlsbFBhdHRl
cm4pCi0gICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5maWxsUGF0dGVybjsKLSAgICB9Ci0K
LSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRv
d0NoYW5nZSkpIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dPZmZzZXQ7Ci0gICAg
ICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93Qmx1cjsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0
ZS5zaGFkb3dDb2xvcjsKLSNpZiBVU0UoQ0cpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hh
ZG93c1VzZUxlZ2FjeVJhZGl1czsKLSNlbmRpZiAvLyBVU0UoQ0cpCi0gICAgfQotCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25l
c3NDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZVRoaWNrbmVzczsKLQot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6VGV4dERy
YXdpbmdNb2RlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS50ZXh0RHJhd2luZ01v
ZGU7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0cm9rZUNvbG9yQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zdHJva2VDb2xv
cjsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
RmlsbENvbG9yQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5maWxsQ29sb3I7Ci0K
LSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9r
ZVN0eWxlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zdHJva2VTdHlsZTsKLQot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFJ1
bGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbGxSdWxlOwotCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpDb21wb3NpdGVPcGVy
YXRpb25DaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmNvbXBvc2l0ZU9wZXJhdG9y
OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpC
bGVuZE1vZGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmJsZW5kTW9kZTsKLQot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuaW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0
YXRlLmFscGhhOworICAgIGVuY29kZXIgPDwgbV9jaGFuZ2VGbGFnczsKKyAgICBlbmNvZGVyLmVu
Y29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPigmbV9p
bmxpbmVTdGF0ZSksIHNpemVvZihHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSksIDEpOworICAg
IAorICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dHJva2VHcmFkaWVudENoYW5nZSkpCisgICAgICAgIGVuY29kZXIgPDwgbV9zdHJva2VHcmFkaWVu
dElkZW50aWZpZXI7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlNob3VsZEFudGlhbGlhc0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3Rh
dGUuc2hvdWxkQW50aWFsaWFzOworICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdHJva2VQYXR0ZXJuQ2hhbmdlKSkKKyAgICAgICAgZW5jb2RlciA8
PCBtX3N0cm9rZVBhdHRlcm5JZGVudGlmaWVyOwogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTbW9vdGhGb250c0NoYW5nZSkpCi0gICAg
ICAgIGVuY29kZXIgPDwgc3RhdGUuc2hvdWxkU21vb3RoRm9udHM7CisgICAgaWYgKG1fY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkp
CisgICAgICAgIGVuY29kZXIgPDwgbV9maWxsR3JhZGllbnRJZGVudGlmaWVyOwogCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhl
bFF1YW50aXplRm9udHNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZFN1
YnBpeGVsUXVhbnRpemVGb250czsKKyAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6RmlsbFBhdHRlcm5DaGFuZ2UpKQorICAgICAgICBlbmNvZGVyIDw8
IG1fZmlsbFBhdHRlcm5JZGVudGlmaWVyOwogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSkpCi0g
ICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisgICAgZW5j
b2RlciA8PCBtX3N0cm9rZUNvbG9yOworICAgIGVuY29kZXIgPDwgbV9maWxsQ29sb3I7CisgICAg
ZW5jb2RlciA8PCBtX3NoYWRvd0NvbG9yOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpA
QCAtMzYzLDIyOCArMzEyLDU1IEBAIE9wdGlvbmFsPFNldFN0YXRlPiBTZXRTdGF0ZTo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiAgICAgZGVjb2RlciA+PiBjaGFuZ2VGbGFnczsKICAgICBpZiAo
IWNoYW5nZUZsYWdzKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIEdy
YXBoaWNzQ29udGV4dElubGluZVN0YXRlIGlubGluZVN0YXRlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJmlubGluZVN0
YXRlKSwgc2l6ZW9mKEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlKSwgMSkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0
ZUNoYW5nZTsKLSAgICBzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzID0gKmNoYW5nZUZsYWdzOwot
Ci0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0cm9rZUdyYWRpZW50Q2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29s
PiBoYXNTdHJva2VHcmFkaWVudDsKLSAgICAgICAgZGVjb2RlciA+PiBoYXNTdHJva2VHcmFkaWVu
dDsKLSAgICAgICAgaWYgKCFoYXNTdHJva2VHcmFkaWVudC5oYXNWYWx1ZSgpKQotICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBpZiAoaGFzU3Ryb2tlR3JhZGllbnQu
dmFsdWUoKSkgewotICAgICAgICAgICAgYXV0byBzdHJva2VHcmFkaWVudCA9IEdyYWRpZW50Ojpk
ZWNvZGUoZGVjb2Rlcik7Ci0gICAgICAgICAgICBpZiAoIXN0cm9rZUdyYWRpZW50KQotICAgICAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgICAgIHN0YXRlQ2hhbmdl
Lm1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBXVEZNb3ZlKCpzdHJva2VHcmFkaWVudCk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVybkNoYW5nZSkpIHsKLSAgICAgICAg
T3B0aW9uYWw8Ym9vbD4gaGFzU3Ryb2tlUGF0dGVybjsKLSAgICAgICAgZGVjb2RlciA+PiBoYXNT
dHJva2VQYXR0ZXJuOwotICAgICAgICBpZiAoIWhhc1N0cm9rZVBhdHRlcm4uaGFzVmFsdWUoKSkK
LSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgaWYgKGhhc1N0cm9r
ZVBhdHRlcm4udmFsdWUoKSkgewotICAgICAgICAgICAgYXV0byBzdHJva2VQYXR0ZXJuID0gUGF0
dGVybjo6ZGVjb2RlKGRlY29kZXIpOwotICAgICAgICAgICAgaWYgKCFzdHJva2VQYXR0ZXJuKQot
ICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgICAgIHN0YXRl
Q2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IFdURk1vdmUoKnN0cm9rZVBhdHRlcm4pOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpIHsKLSAgICAg
ICAgT3B0aW9uYWw8Ym9vbD4gaGFzRmlsbEdyYWRpZW50OwotICAgICAgICBkZWNvZGVyID4+IGhh
c0ZpbGxHcmFkaWVudDsKLSAgICAgICAgaWYgKCFoYXNGaWxsR3JhZGllbnQuaGFzVmFsdWUoKSkK
LSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgaWYgKGhhc0ZpbGxH
cmFkaWVudC52YWx1ZSgpKSB7Ci0gICAgICAgICAgICBhdXRvIGZpbGxHcmFkaWVudCA9IEdyYWRp
ZW50OjpkZWNvZGUoZGVjb2Rlcik7Ci0gICAgICAgICAgICBpZiAoIWZpbGxHcmFkaWVudCkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNo
YW5nZS5tX3N0YXRlLmZpbGxHcmFkaWVudCA9IFdURk1vdmUoKmZpbGxHcmFkaWVudCk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFBhdHRlcm5DaGFuZ2UpKSB7Ci0gICAgICAgIE9w
dGlvbmFsPGJvb2w+IGhhc0ZpbGxQYXR0ZXJuOwotICAgICAgICBkZWNvZGVyID4+IGhhc0ZpbGxQ
YXR0ZXJuOwotICAgICAgICBpZiAoIWhhc0ZpbGxQYXR0ZXJuLmhhc1ZhbHVlKCkpCi0gICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmIChoYXNGaWxsUGF0dGVybi52
YWx1ZSgpKSB7Ci0gICAgICAgICAgICBhdXRvIGZpbGxQYXR0ZXJuID0gUGF0dGVybjo6ZGVjb2Rl
KGRlY29kZXIpOwotICAgICAgICAgICAgaWYgKCFmaWxsUGF0dGVybikKLSAgICAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRl
LmZpbGxQYXR0ZXJuID0gV1RGTW92ZSgqZmlsbFBhdHRlcm4pOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBz
aGFkb3dPZmZzZXQ7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93T2Zmc2V0OwotICAgICAgICBp
ZiAoIXNoYWRvd09mZnNldCkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAg
ICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dPZmZzZXQgPSAqc2hhZG93T2Zmc2V0Owot
Ci0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzaGFkb3dCbHVyOwotICAgICAgICBkZWNvZGVyID4+
IHNoYWRvd0JsdXI7Ci0gICAgICAgIGlmICghc2hhZG93Qmx1cikKLSAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dCbHVy
ID0gKnNoYWRvd0JsdXI7Ci0KLSAgICAgICAgT3B0aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOwot
ICAgICAgICBkZWNvZGVyID4+IHNoYWRvd0NvbG9yOwotICAgICAgICBpZiAoIXNoYWRvd0NvbG9y
KQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5n
ZS5tX3N0YXRlLnNoYWRvd0NvbG9yID0gKnNoYWRvd0NvbG9yOwotCi0jaWYgVVNFKENHKQotICAg
ICAgICBPcHRpb25hbDxib29sPiBzaGFkb3dzVXNlTGVnYWN5UmFkaXVzOwotICAgICAgICBkZWNv
ZGVyID4+IHNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7Ci0gICAgICAgIGlmICghc2hhZG93c1VzZUxl
Z2FjeVJhZGl1cykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAg
c3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVzID0gKnNoYWRvd3NVc2VM
ZWdhY3lSYWRpdXM7Ci0jZW5kaWYgLy8gVVNFKENHKQotICAgIH0KLQotICAgIGlmIChzdGF0ZUNo
YW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VU
aGlja25lc3NDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzdHJva2VUaGlja25l
c3M7Ci0gICAgICAgIGRlY29kZXIgPj4gc3Ryb2tlVGhpY2tuZXNzOwotICAgICAgICBpZiAoIXN0
cm9rZVRoaWNrbmVzcykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VUaGlja25lc3MgPSAqc3Ryb2tlVGhpY2tuZXNz
OwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpUZXh0RHJhd2luZ01vZGVDaGFuZ2UpKSB7Ci0gICAgICAgIE9w
dGlvbmFsPFRleHREcmF3aW5nTW9kZUZsYWdzPiB0ZXh0RHJhd2luZ01vZGU7Ci0gICAgICAgIGRl
Y29kZXIgPj4gdGV4dERyYXdpbmdNb2RlOwotICAgICAgICBpZiAoIXRleHREcmF3aW5nTW9kZSkK
LSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2Uu
bV9zdGF0ZS50ZXh0RHJhd2luZ01vZGUgPSBXVEZNb3ZlKCp0ZXh0RHJhd2luZ01vZGUpOwotICAg
IH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Q29s
b3I+IHN0cm9rZUNvbG9yOwotICAgICAgICBkZWNvZGVyID4+IHN0cm9rZUNvbG9yOwotICAgICAg
ICBpZiAoIXN0cm9rZUNvbG9yKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZUNvbG9yID0gKnN0cm9rZUNvbG9yOwot
ICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPENv
bG9yPiBmaWxsQ29sb3I7Ci0gICAgICAgIGRlY29kZXIgPj4gZmlsbENvbG9yOwotICAgICAgICBp
ZiAoIWZpbGxDb2xvcikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsQ29sb3IgPSAqZmlsbENvbG9yOwotICAgIH0KLQot
ICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpTdHJva2VTdHlsZUNoYW5nZSkpIHsKLSAgICAgICAgU3Ryb2tlU3R5bGUgc3Ryb2tl
U3R5bGU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Ryb2tlU3R5bGUpKQotICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRl
LnN0cm9rZVN0eWxlID0gc3Ryb2tlU3R5bGU7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdl
Lm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxSdWxlQ2hh
bmdlKSkgewotICAgICAgICBPcHRpb25hbDxXaW5kUnVsZT4gZmlsbFJ1bGU7Ci0gICAgICAgIGRl
Y29kZXIgPj4gZmlsbFJ1bGU7Ci0gICAgICAgIGlmICghZmlsbFJ1bGUpCi0gICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFJ1
bGUgPSAqZmlsbFJ1bGU7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxh
Z3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJhdGlvbkNoYW5n
ZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0b3I+IGNvbXBvc2l0ZU9wZXJh
dG9yOwotICAgICAgICBkZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9yOwotICAgICAgICBpZiAo
IWNvbXBvc2l0ZU9wZXJhdG9yKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmNvbXBvc2l0ZU9wZXJhdG9yID0gKmNvbXBvc2l0
ZU9wZXJhdG9yOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UpKSB7Ci0gICAgICAg
IE9wdGlvbmFsPEJsZW5kTW9kZT4gYmxlbmRNb2RlOwotICAgICAgICBkZWNvZGVyID4+IGJsZW5k
TW9kZTsKLSAgICAgICAgaWYgKCFibGVuZE1vZGUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuYmxlbmRNb2RlID0gKmJsZW5k
TW9kZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZSkp
IHsKLSAgICAgICAgT3B0aW9uYWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+IGltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHk7Ci0gICAgICAgIGRlY29kZXIgPj4gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0
eTsKLSAgICAgICAgaWYgKCFpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KQorICAgIE9wdGlvbmFs
PFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyID0g
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7CisgICAgaWYgKGNoYW5nZUZsYWdzLT5jb250
YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7CisgICAg
ICAgIGRlY29kZXIgPj4gc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyOworICAgICAgICBpZiAoIXN0
cm9rZUdyYWRpZW50SWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5
ID0gKmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk7CiAgICAgfQogCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkFscGhhQ2hh
bmdlKSkgewotICAgICAgICBPcHRpb25hbDxmbG9hdD4gYWxwaGE7Ci0gICAgICAgIGRlY29kZXIg
Pj4gYWxwaGE7Ci0gICAgICAgIGlmICghYWxwaGEpCisgICAgT3B0aW9uYWw8UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyPiBzdHJva2VQYXR0ZXJuSWRlbnRpZmllciA9IFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcigpOworICAgIGlmIChjaGFuZ2VGbGFncy0+Y29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2UpKSB7CisgICAgICAgIGRlY29kZXIgPj4g
c3Ryb2tlUGF0dGVybklkZW50aWZpZXI7CisgICAgICAgIGlmICghc3Ryb2tlUGF0dGVybklkZW50
aWZpZXIpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRl
Q2hhbmdlLm1fc3RhdGUuYWxwaGEgPSAqYWxwaGE7CiAgICAgfQogCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZEFu
dGlhbGlhc0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkQW50aWFsaWFz
OwotICAgICAgICBkZWNvZGVyID4+IHNob3VsZEFudGlhbGlhczsKLSAgICAgICAgaWYgKCFzaG91
bGRBbnRpYWxpYXMpCisgICAgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBm
aWxsR3JhZGllbnRJZGVudGlmaWVyID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7Cisg
ICAgaWYgKGNoYW5nZUZsYWdzLT5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdy
YWRpZW50Q2hhbmdlKSkgeworICAgICAgICBkZWNvZGVyID4+IGZpbGxHcmFkaWVudElkZW50aWZp
ZXI7CisgICAgICAgIGlmICghZmlsbEdyYWRpZW50SWRlbnRpZmllcikKICAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRB
bnRpYWxpYXMgPSAqc2hvdWxkQW50aWFsaWFzOwogICAgIH0KIAotICAgIGlmIChzdGF0ZUNoYW5n
ZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTbW9v
dGhGb250c0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkU21vb3RoRm9u
dHM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgICAgIGlmICgh
c2hvdWxkU21vb3RoRm9udHMpCisgICAgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyPiBmaWxsUGF0dGVybklkZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIo
KTsKKyAgICBpZiAoY2hhbmdlRmxhZ3MtPmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpG
aWxsUGF0dGVybkNoYW5nZSkpIHsKKyAgICAgICAgZGVjb2RlciA+PiBmaWxsUGF0dGVybklkZW50
aWZpZXI7CisgICAgICAgIGlmICghZmlsbFBhdHRlcm5JZGVudGlmaWVyKQogICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNob3Vs
ZFNtb290aEZvbnRzID0gKnNob3VsZFNtb290aEZvbnRzOwogICAgIH0KIAotICAgIGlmIChzdGF0
ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91
bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+
IHNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czsKLSAgICAgICAgZGVjb2RlciA+PiBzaG91bGRT
dWJwaXhlbFF1YW50aXplRm9udHM7Ci0gICAgICAgIGlmICghc2hvdWxkU3VicGl4ZWxRdWFudGl6
ZUZvbnRzKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0
ZUNoYW5nZS5tX3N0YXRlLnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyA9ICpzaG91bGRTdWJw
aXhlbFF1YW50aXplRm9udHM7Ci0gICAgfQorICAgIE9wdGlvbmFsPENvbG9yPiBzdHJva2VDb2xv
cjsKKyAgICBkZWNvZGVyID4+IHN0cm9rZUNvbG9yOworICAgIGlmICghc3Ryb2tlQ29sb3IpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXNDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zOwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwotICAg
ICAgICBpZiAoIXNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxDb2xvcj4gZmlsbENvbG9yOworICAgIGRlY29kZXIg
Pj4gZmlsbENvbG9yOworICAgIGlmICghZmlsbENvbG9yKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXMgPSAqc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgfQorICAgIE9wdGlvbmFsPENv
bG9yPiBzaGFkb3dDb2xvcjsKKyAgICBkZWNvZGVyID4+IHNoYWRvd0NvbG9yOworICAgIGlmICgh
c2hhZG93Q29sb3IpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4g
eyBzdGF0ZUNoYW5nZSB9OworICAgIHJldHVybiB7eyAqY2hhbmdlRmxhZ3MsIGlubGluZVN0YXRl
LCAqc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyLCAqc3Ryb2tlUGF0dGVybklkZW50aWZpZXIsICpm
aWxsR3JhZGllbnRJZGVudGlmaWVyLCAqZmlsbFBhdHRlcm5JZGVudGlmaWVyLCAqc3Ryb2tlQ29s
b3IsICpmaWxsQ29sb3IsICpzaGFkb3dDb2xvciB9fTsKIH0KIAogY2xhc3MgU2V0TGluZUNhcCB7
CkBAIC0xNjE0LDcgKzEzOTAsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBGaWxs
UmVjdFdpdGhHcmFkaWVudDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAg
ZW5jb2RlciA8PCBtX3JlY3Q7Ci0gICAgZW5jb2RlciA8PCBtX2dyYWRpZW50LmdldCgpOworICAg
IGVuY29kZXIgPDwgbV9ncmFkaWVudDsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAg
LTE2MjUsNyArMTQwMSw4IEBAIE9wdGlvbmFsPEZpbGxSZWN0V2l0aEdyYWRpZW50PiBGaWxsUmVj
dFdpdGhHcmFkaWVudDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFyZWN0KQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgYXV0byBncmFkaWVudCA9IEdyYWRp
ZW50OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgT3B0aW9uYWw8UmVmPEdyYWRpZW50Pj4gZ3JhZGll
bnQ7CisgICAgZGVjb2RlciA+PiBncmFkaWVudDsKICAgICBpZiAoIWdyYWRpZW50KQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAKaW5kZXggYjk0ODNkZjQyZGQ5MDE4N2IxZjY5ZGQ5MWI1ZWZiNGQ0OTBiNDJlYi4u
Y2NlNjczZDFlZmE5NDNlZTQ5MTQ2NzA1ZDJkNjMyODQwZmMzMDFjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtNTksNDkgKzU5LDMzIEBAIHZvaWQgUmVj
b3JkZXI6OnB1dEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0
Rm9ybWF0LCBjb25zdCBXCiAgICAgYXBwZW5kPFB1dEltYWdlRGF0YT4oaW5wdXRGb3JtYXQsIGlt
YWdlRGF0YSwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKIH0KIAotc3RhdGljIGJv
b2wgY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlQ2hhbmdlJiBjaGFuZ2VzLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyBjaGFuZ2VGbGFncykKK3ZvaWQgUmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncywgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlKQogewotICAgIHN0YXRpYyBjb25zdGV4cHIgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgaW5saW5lU3RhdGVDaGFuZ2VGbGFncyB7
Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UsCi0g
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSwKLSAgICAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSwKLSAgICAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSwKLSAgICB9OwotCi0gICAgaWYgKGNoYW5n
ZUZsYWdzICE9IChjaGFuZ2VGbGFncyAmIGlubGluZVN0YXRlQ2hhbmdlRmxhZ3MpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLnN0cm9r
ZUNvbG9yLmlzSW5saW5lKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAm
JiAhY2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci5pc0lubGluZSgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OkZpbGxHcmFkaWVudENoYW5nZSkKLSAgICAgICAgJiYgKCFjaGFuZ2VzLm1fc3RhdGUuZmls
bEdyYWRpZW50IHx8ICFTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKCpjaGFuZ2VzLm1f
c3RhdGUuZmlsbEdyYWRpZW50KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biB0cnVlOwotfQotCi12b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQotewotICAgIGlmICghY29udGFpbnNPbmx5
SW5saW5lU3RhdGVDaGFuZ2VzKGNoYW5nZXMsIGNoYW5nZUZsYWdzKSkgewotICAgICAgICBhcHBl
bmQ8U2V0U3RhdGU+KGNoYW5nZXMubV9zdGF0ZSwgY2hhbmdlRmxhZ3MpOwotICAgICAgICByZXR1
cm47CisgICAgaWYgKHN0YXRlLnN0cm9rZUdyYWRpZW50KSB7CisgICAgICAgIGlmIChtX2RlbGVn
YXRlKQorICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+Y2FjaGVHcmFkaWVudCgqc3RhdGUuc3Ryb2tl
R3JhZGllbnQpOworICAgICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlR3JhZGllbnQoKnN0YXRlLnN0
cm9rZUdyYWRpZW50KTsKICAgICB9CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNl
dElubGluZVN0cm9rZUNvbG9yPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlQ29sb3IuYXNJbmxpbmUo
KSk7CisgICAgaWYgKHN0YXRlLnN0cm9rZVBhdHRlcm4pIHsKKyAgICAgICAgaWYgKG1fZGVsZWdh
dGUpCisgICAgICAgICAgICBtX2RlbGVnYXRlLT5jYWNoZVBhdHRlcm4oKnN0YXRlLnN0cm9rZVBh
dHRlcm4pOworICAgICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlUGF0dGVybigqc3RhdGUuc3Ryb2tl
UGF0dGVybik7CisgICAgfQogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0
U3Ryb2tlVGhpY2tuZXNzPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzKTsKKyAgICBp
ZiAoc3RhdGUuZmlsbEdyYWRpZW50KSB7CisgICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAg
ICAgICAgbV9kZWxlZ2F0ZS0+Y2FjaGVHcmFkaWVudCgqc3RhdGUuZmlsbEdyYWRpZW50KTsKKyAg
ICAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZUdyYWRpZW50KCpzdGF0ZS5maWxsR3JhZGllbnQpOwor
ICAgIH0KIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6RmlsbENvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4o
Y2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci5hc0lubGluZSgpKTsKKyAgICBpZiAoc3RhdGUuZmls
bFBhdHRlcm4pIHsKKyAgICAgICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgICAgICBtX2RlbGVn
YXRlLT5jYWNoZVBhdHRlcm4oKnN0YXRlLmZpbGxQYXR0ZXJuKTsKKyAgICAgICAgbV9kaXNwbGF5
TGlzdC5jYWNoZVBhdHRlcm4oKnN0YXRlLmZpbGxQYXR0ZXJuKTsKKyAgICB9CiAKLSAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENo
YW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCpjaGFuZ2VzLm1f
c3RhdGUuZmlsbEdyYWRpZW50KTsKKyAgICBhcHBlbmQ8U2V0U3RhdGU+KGNoYW5nZUZsYWdzLCBz
dGF0ZSk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBl
IHR5cGUpCkBAIC0xMTgsNyArMTAyLDcgQEAgdm9pZCBSZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW1P
ZlR5cGUoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRl
Q2hhbmdlRmxhZ3MgY2hhbmdlc0Zyb21MYXN0U3RhdGUgPSBzdGF0ZUNoYW5nZXMuY2hhbmdlc0Zy
b21TdGF0ZShjdXJyZW50U3RhdGUoKS5sYXN0RHJhd2luZ1N0YXRlKTsKICAgICAgICAgaWYgKGNo
YW5nZXNGcm9tTGFzdFN0YXRlKSB7CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxh
eUxpc3RzLCBzdHJlYW0gPDwgInByZS1kcmF3aW5nLCBzYXZpbmcgc3RhdGUgIiA8PCBHcmFwaGlj
c0NvbnRleHRTdGF0ZUNoYW5nZShzdGF0ZUNoYW5nZXMubV9zdGF0ZSwgY2hhbmdlc0Zyb21MYXN0
U3RhdGUpKTsKLSAgICAgICAgICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShzdGF0ZUNoYW5nZXMs
IGNoYW5nZXNGcm9tTGFzdFN0YXRlKTsKKyAgICAgICAgICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRl
bShjaGFuZ2VzRnJvbUxhc3RTdGF0ZSwgc3RhdGVDaGFuZ2VzLm1fc3RhdGUpOwogICAgICAgICAg
ICAgc3RhdGVDaGFuZ2VzLm1fY2hhbmdlRmxhZ3MgPSB7IH07CiAgICAgICAgICAgICBjdXJyZW50
U3RhdGUoKS5sYXN0RHJhd2luZ1N0YXRlID0gc3RhdGVDaGFuZ2VzLm1fc3RhdGU7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IGI0MDNhZWE0ZmJi
YTNjMjUyMjIwZGU4YzBhZTJmNGNhYWNjNWUzOTIuLjA4ZWFmNTM3OTFiYWE2YjUyYzg4YWQ5OTM5
ZmU2NjAxNTg0MmRkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApA
QCAtNjksNiArNjksOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYWNoZU5hdGl2
ZUltYWdlKE5hdGl2ZUltYWdlJikgeyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NhY2hlZElt
YWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICAgICAgdmlydHVhbCB2b2lkIGNhY2hlRm9udChGb250JikgeyB9CisgICAgICAgIHZpcnR1YWwg
dm9pZCBjYWNoZVBhdHRlcm4oUGF0dGVybiYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fj
aGVHcmFkaWVudChHcmFkaWVudCYpIHsgfQogICAgIH07CiAKICAgICB2b2lkIGZsdXNoQ29udGV4
dChGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcikgeyBhcHBlbmQ8Rmx1c2hDb250ZXh0PihpZGVu
dGlmaWVyKTsgfQpAQCAtMTc0LDcgKzE3Niw3IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKTsKIAotICAgIHZvaWQgYXBwZW5k
U3RhdGVDaGFuZ2VJdGVtKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiwgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MpOworICAgIHZvaWQgYXBwZW5kU3RhdGVD
aGFuZ2VJdGVtKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzLCBjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYpOwogCiAgICAgRmxvYXRSZWN0IGV4dGVudEZyb21Mb2NhbEJv
dW5kcyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlcGxheWVyLmNwcAppbmRleCA0MmUxNDEyZTU0ODQ2YjBhMmJkODQ1NjNlYmFmNjI5
NjhhNTUzYjdjLi42NWZiN2E4NTQyZmM5YzExYzM2YjkyZDAxYmQzNGI2NGI3MTMzMjJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCkBAIC0zNCwxMiArMzQsMTQg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLVJlcGxh
eWVyOjpSZXBsYXllcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IERpc3BsYXlMaXN0
JiBkaXNwbGF5TGlzdCwgY29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwKiBpbWFnZUJ1ZmZlcnMsIGNv
bnN0IE5hdGl2ZUltYWdlSGFzaE1hcCogbmF0aXZlSW1hZ2VzLCBjb25zdCBGb250UmVuZGVyaW5n
UmVzb3VyY2VNYXAqIGZvbnRzLCBEZWxlZ2F0ZSogZGVsZWdhdGUpCitSZXBsYXllcjo6UmVwbGF5
ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBEaXNwbGF5TGlzdCYgZGlzcGxheUxp
c3QsIGNvbnN0IEltYWdlQnVmZmVySGFzaE1hcCogaW1hZ2VCdWZmZXJzLCBjb25zdCBOYXRpdmVJ
bWFnZUhhc2hNYXAqIG5hdGl2ZUltYWdlcywgY29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFw
KiBmb250cywgY29uc3QgUGF0dGVybkhhc2hNYXAqIHBhdHRlcm5zLCBjb25zdCBHcmFkaWVudEhh
c2hNYXAqIGdyYWRpZW50cywgRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCiAgICAgLCBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQogICAgICwgbV9pbWFnZUJ1
ZmZlcnMoaW1hZ2VCdWZmZXJzID8gKmltYWdlQnVmZmVycyA6IG1fZGlzcGxheUxpc3QuaW1hZ2VC
dWZmZXJzKCkpCiAgICAgLCBtX25hdGl2ZUltYWdlcyhuYXRpdmVJbWFnZXMgPyAqbmF0aXZlSW1h
Z2VzIDogbV9kaXNwbGF5TGlzdC5uYXRpdmVJbWFnZXMoKSkKICAgICAsIG1fZm9udHMoZm9udHMg
PyAqZm9udHMgOiBtX2Rpc3BsYXlMaXN0LmZvbnRzKCkpCisgICAgLCBtX3BhdHRlcm5zKHBhdHRl
cm5zID8gKnBhdHRlcm5zIDogbV9kaXNwbGF5TGlzdC5wYXR0ZXJucygpKQorICAgICwgbV9ncmFk
aWVudHMoZ3JhZGllbnRzID8gKmdyYWRpZW50cyA6IG1fZGlzcGxheUxpc3QuZ3JhZGllbnRzKCkp
CiAgICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogfQpAQCAtODIsNiArODQsMzkgQEAgaW5s
aW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5Rm9u
dEl0ZW0oR3JhcGhpY3NDb250ZXgKICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOwogfQog
CitpbmxpbmUgc3RhdGljIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBw
bHlTZXRTdGF0ZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBQYXR0ZXJuSGFz
aE1hcCYgcGF0dGVybnMsIGNvbnN0IEdyYWRpZW50SGFzaE1hcCYgZ3JhZGllbnRzLCBJdGVtSGFu
ZGxlIGl0ZW0pCit7CisgICAgYXV0byYgc2V0U3RhdGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+
KCk7CisgICAgCisgICAgR3JhZGllbnQqIHN0cm9rZUdyYWRpZW50ID0gbnVsbHB0cjsKKyAgICBQ
YXR0ZXJuKiBzdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKKyAgICBHcmFkaWVudCogZmlsbEdyYWRp
ZW50ID0gbnVsbHB0cjsKKyAgICBQYXR0ZXJuKiBmaWxsUGF0dGVybiA9IG51bGxwdHI7CisKKyAg
ICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0uc3Ryb2tlR3JhZGll
bnRJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgaWYgKCEoc3Ryb2tlR3JhZGllbnQgPSBncmFkaWVu
dHMuZ2V0KHJlc291cmNlSWRlbnRpZmllcikpKQorICAgICAgICAgICAgcmV0dXJuIHJlc291cmNl
SWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBz
ZXRTdGF0ZUl0ZW0uc3Ryb2tlUGF0dGVybklkZW50aWZpZXIoKSkgeworICAgICAgICBpZiAoIShz
dHJva2VQYXR0ZXJuID0gcGF0dGVybnMuZ2V0KHJlc291cmNlSWRlbnRpZmllcikpKQorICAgICAg
ICAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBpZiAoYXV0byBy
ZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0uZmlsbEdyYWRpZW50SWRlbnRpZmllcigp
KSB7CisgICAgICAgIGlmICghKGZpbGxHcmFkaWVudCA9IGdyYWRpZW50cy5nZXQocmVzb3VyY2VJ
ZGVudGlmaWVyKSkpCisgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOworICAg
IH0KKworICAgIGlmIChhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRlSXRlbS5maWxs
UGF0dGVybklkZW50aWZpZXIoKSkgeworICAgICAgICBpZiAoIShmaWxsUGF0dGVybiA9IHBhdHRl
cm5zLmdldChyZXNvdXJjZUlkZW50aWZpZXIpKSkKKyAgICAgICAgICAgIHJldHVybiByZXNvdXJj
ZUlkZW50aWZpZXI7CisgICAgfQorCisgICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRleHQsIHN0
cm9rZUdyYWRpZW50LCBzdHJva2VQYXR0ZXJuLCBmaWxsR3JhZGllbnQsIGZpbGxQYXR0ZXJuKTsK
KyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBzdGQ6OnBhaXI8T3B0aW9uYWw8U3RvcFJl
cGxheVJlYXNvbj4sIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IFJlcGxh
eWVyOjphcHBseUl0ZW0oSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGlmIChtX2RlbGVnYXRlICYm
IG1fZGVsZWdhdGUtPmFwcGx5KGl0ZW0sIG1fY29udGV4dCkpCkBAIC0xMTcsNiArMTUyLDEyIEBA
IHN0ZDo6cGFpcjxPcHRpb25hbDxTdG9wUmVwbGF5UmVhc29uPiwgT3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPj4gUmVwCiAgICAgICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwg
V1RGOjpudWxsb3B0IH07CiAgICAgfQogCisgICAgaWYgKGl0ZW0uaXM8U2V0U3RhdGU+KCkpIHsK
KyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5
U2V0U3RhdGVJdGVtKG1fY29udGV4dCwgbV9wYXR0ZXJucywgbV9ncmFkaWVudHMsIGl0ZW0pKQor
ICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291
cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CisgICAgICAg
IHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CisgICAgfQorCiAgICAgaXRl
bS5hcHBseShtX2NvbnRleHQpOwogICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxs
b3B0IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaAppbmRleCBkNDE0
YTZmYTA1MDJlMTZmNzc5ZmJhNjJkMjI0MTk2MzQyM2ViMGFmLi5iNjFmZDdmMzAxNzQwNWE5MmRm
ZjYyNDlmM2NkMmFhM2E0MmU1MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmgKQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgUmVwbGF5ZXIgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFJlcGxheWVyKTsKIHB1YmxpYzoKICAgICBjbGFzcyBEZWxlZ2F0ZTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBSZXBsYXllcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBEaXNwbGF5TGlz
dCYsIGNvbnN0IEltYWdlQnVmZmVySGFzaE1hcCogPSBudWxscHRyLCBjb25zdCBOYXRpdmVJbWFn
ZUhhc2hNYXAqID0gbnVsbHB0ciwgY29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFwKiA9IG51
bGxwdHIsIERlbGVnYXRlKiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlcGxheWVy
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IERpc3BsYXlMaXN0JiwgY29uc3QgSW1hZ2VCdWZmZXJI
YXNoTWFwKiA9IG51bGxwdHIsIGNvbnN0IE5hdGl2ZUltYWdlSGFzaE1hcCogPSBudWxscHRyLCBj
b25zdCBGb250UmVuZGVyaW5nUmVzb3VyY2VNYXAqID0gbnVsbHB0ciwgY29uc3QgUGF0dGVybkhh
c2hNYXAqID0gbnVsbHB0ciwgY29uc3QgR3JhZGllbnRIYXNoTWFwKiA9IG51bGxwdHIsIERlbGVn
YXRlKiA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5SZXBsYXllcigpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgUmVwbGF5UmVzdWx0IHJlcGxheShjb25zdCBGbG9hdFJlY3QmIGluaXRp
YWxDbGlwID0geyB9LCBib29sIHRyYWNrUmVwbGF5TGlzdCA9IGZhbHNlKTsKQEAgLTc2LDYgKzc2
LDggQEAgcHJpdmF0ZToKICAgICBjb25zdCBJbWFnZUJ1ZmZlckhhc2hNYXAmIG1faW1hZ2VCdWZm
ZXJzOwogICAgIGNvbnN0IE5hdGl2ZUltYWdlSGFzaE1hcCYgbV9uYXRpdmVJbWFnZXM7CiAgICAg
Y29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFwJiBtX2ZvbnRzOworICAgIGNvbnN0IFBhdHRl
cm5IYXNoTWFwJiBtX3BhdHRlcm5zOworICAgIGNvbnN0IEdyYWRpZW50SGFzaE1hcCYgbV9ncmFk
aWVudHM7CiAgICAgRGVsZWdhdGUqIG1fZGVsZWdhdGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKaW5kZXggMjQ1ODNhZTA3MDFjZWIzYjFhZmJiZGY5NGYwZWE2MDE3YjU5NDMwMi4uZWFl
ZDgxYTdiZDYxZjExNjJhNDNhMWMwZjQ2MWQ3ZjdlM2RlZTExNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcApAQCAtMTQ5LDYgKzE0OSw4IEBAIERpc3BsYXlMaXN0OjpSZXBsYXlSZXN1bHQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6c3VibWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwCiAgICAg
ICAgICZyZW1vdGVSZXNvdXJjZUNhY2hlKCkuaW1hZ2VCdWZmZXJzKCksCiAgICAgICAgICZyZW1v
dGVSZXNvdXJjZUNhY2hlKCkubmF0aXZlSW1hZ2VzKCksCiAgICAgICAgICZyZW1vdGVSZXNvdXJj
ZUNhY2hlKCkuZm9udHMoKSwKKyAgICAgICAgJnJlbW90ZVJlc291cmNlQ2FjaGUoKS5wYXR0ZXJu
cygpLAorICAgICAgICAmcmVtb3RlUmVzb3VyY2VDYWNoZSgpLmdyYWRpZW50cygpLAogICAgICAg
ICByZXBsYXllckRlbGVnYXRlCiAgICAgfS5yZXBsYXkoKTsKIH0KQEAgLTMwMiwxNCArMzA0LDI0
IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVGb250KFJlZjxGb250PiYmIGZv
bnQpCiAgICAgICAgIHdha2VVcEFuZEFwcGx5RGlzcGxheUxpc3Qoc3RkOjpleGNoYW5nZShtX3Bl
bmRpbmdXYWtldXBJbmZvLCBXVEY6Om51bGxvcHQpLT5hcmd1bWVudHMpOwogfQogCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNhY2hlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJu
KQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZVBhdHRlcm4oV1RGTW92ZShwYXR0
ZXJuKSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVHcmFkaWVudChS
ZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNh
Y2hlR3JhZGllbnQoV1RGTW92ZShncmFkaWVudCkpOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmRlbGV0ZUFsbEZvbnRzKCkKIHsKICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUu
ZGVsZXRlQWxsRm9udHMoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxl
YXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJl
bmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLnJlbGVhc2VSZW1v
dGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVz
b3VyY2VDYWNoZS5yZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVTaGFy
ZWREaXNwbGF5TGlzdEhhbmRsZShEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5oCmluZGV4IDdhNWEwYjZhOThlYmZmMWJiY2MxOTcxYjcwZGUxMTAwYTliOTlkYzgu
LmEyYWM1NDFmZmY4MTU5YmE5ZTA0ZDg1N2Q2OGM5OTRiNTJjZjZjOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaApAQCAtNDcsNyArNDcsOSBAQCBjbGFzcyBEaXNwbGF5TGlzdDsKIGNsYXNzIEl0ZW07
CiB9CiBjbGFzcyBGbG9hdFNpemU7CitjbGFzcyBHcmFkaWVudDsKIGNsYXNzIE5hdGl2ZUltYWdl
OworY2xhc3MgUGF0dGVybjsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwogfQpAQCAtMTExLDggKzExMywxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRp
b24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdl
RGF0YVJlZmVyZW5jZSYmKT4mJik7CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKTsKICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CisgICAgdm9p
ZCBjYWNoZVBhdHRlcm4oUmVmPFdlYkNvcmU6OlBhdHRlcm4+JiYpOworICAgIHZvaWQgY2FjaGVH
cmFkaWVudChSZWY8V2ViQ29yZTo6R3JhZGllbnQ+JiYpOwogICAgIHZvaWQgZGVsZXRlQWxsRm9u
dHMoKTsKLSAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRDcmVhdGVT
aGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklk
ZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcik7CiAKICAg
ICBzdHJ1Y3QgUGVuZGluZ1dha2V1cEluZm9ybWF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW4KaW5kZXggMjBmNGU0NzhlMjcyOWM2MTNhOTRkNjIxZmRlZTI0MDM1
MGYzZTRlYS4uMDVmZjM0ZTU2YmZhMGYxNWJlMjRlOTAxMzBiNmZjZTVlZTI0NWM0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTI4LDkgKzI4LDExIEBAIG1l
c3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgTm90UmVmQ291bnRlZCB7CiAgICAgR2V0
SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91
dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJ
bWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIENhY2hlTmF0aXZl
SW1hZ2UoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAg
ICAgQ2FjaGVGb250KElQQzo6Rm9udFJlZmVyZW5jZSBmb250KQorICAgIENhY2hlUGF0dGVybihJ
UEM6OlBhdHRlcm5SZWZlcmVuY2UgcGF0dGVybikKKyAgICBDYWNoZUdyYWRpZW50KElQQzo6R3Jh
ZGllbnRSZWZlcmVuY2UgZ3JhZGllbnQpCiAgICAgRGVsZXRlQWxsRm9udHMoKQogICAgIERpZENy
ZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVm
ZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxl
IGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9u
QnVmZmVySWRlbnRpZmllcikKLSAgICBSZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAg
ICBSZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAppbmRleCA4MWRkZTBiZmZjZjBiZDZjYzFj
MjhlNWRkMjQ2Mzc0YjM0NjQ2Mjc4Li5hNDg2OGI4ZjNiMjU0NGUxMzliOWNiZTk4ZTZhMTBlYzUz
NGFkYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC01NCwxMiArNTQsMjUgQEAgdm9pZCBSZW1v
dGVSZXNvdXJjZUNhY2hlOjpjYWNoZUZvbnQoUmVmPEZvbnQ+JiYgZm9udCkKICAgICBBU1NFUlRf
VU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQogCisKK3ZvaWQgUmVt
b3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVQYXR0ZXJuKFJlZjxQYXR0ZXJuPiYmIHBhdHRlcm4pCit7
CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3BhdHRlcm5zLmFkZChwYXR0ZXJuLT5yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKSwgV1RGTW92ZShwYXR0ZXJuKSk7CisgICAgQVNTRVJUX1VOVVNF
RChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKK30KKwordm9pZCBSZW1vdGVSZXNv
dXJjZUNhY2hlOjpjYWNoZUdyYWRpZW50KFJlZjxHcmFkaWVudD4mJiBncmFkaWVudCkKK3sKKyAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1fZ3JhZGllbnRzLmFkZChncmFkaWVudC0+cmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKCksIFdURk1vdmUoZ3JhZGllbnQpKTsKKyAgICBBU1NFUlRfVU5VU0VE
KGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworfQorCiB2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGU6OmRlbGV0ZUFsbEZvbnRzKCkKIHsKICAgICBtX2ZvbnRzLmNsZWFyKCk7CiB9CiAK
LXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJl
bW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGlmICht
X2ltYWdlQnVmZmVycy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNjcsNiArODAsMTAgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpy
ZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmQKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChtX2ZvbnRzLnJlbW92ZShyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpKQogICAgICAgICByZXR1cm47CisgICAgaWYgKG1fcGF0dGVybnMucmVtb3ZlKHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9n
cmFkaWVudHMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJl
dHVybjsKICAgICAvLyBDYWNoaW5nIHRoZSByZW1vdGUgcmVzb3VyY2Ugc2hvdWxkIGhhdmUgaGFw
cGVuZWQgYmVmb3JlIHJlbGVhc2luZyBpdC4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZS5oCmluZGV4IDJjZWQ5MDlmNDgxMTBjNjY2NTZkZTFiZmUzODExZGJhYmFhYTlm
NGYuLjVmNjcyZDM3ZjY2MDcwMTZhZjhmMjc2NzRlYjRmZGI0NjcyYzE2YjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGUuaApAQCAtMjgsOCArMjgsMTAgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNs
dWRlIDxXZWJDb3JlL0ZvbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYWRpZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1h
Z2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhdHRlcm4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAK
QEAgLTQ1LDE3ICs0NywyMyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGNh
Y2hlZEltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAg
ICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKFJlZjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4mJik7CiAg
ICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOworICAgIHZvaWQgY2FjaGVQ
YXR0ZXJuKFJlZjxXZWJDb3JlOjpQYXR0ZXJuPiYmKTsKKyAgICB2b2lkIGNhY2hlR3JhZGllbnQo
UmVmPFdlYkNvcmU6OkdyYWRpZW50PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7Ci0g
ICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgY29uc3QgV2ViQ29yZTo6SW1hZ2VC
dWZmZXJIYXNoTWFwJiBpbWFnZUJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVy
czsgfQogICAgIGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlSGFzaE1hcCYgbmF0aXZlSW1hZ2Vz
KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVJbWFnZXM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpG
b250UmVuZGVyaW5nUmVzb3VyY2VNYXAmIGZvbnRzKCkgY29uc3QgeyByZXR1cm4gbV9mb250czsg
fQorICAgIGNvbnN0IFdlYkNvcmU6OlBhdHRlcm5IYXNoTWFwJiBwYXR0ZXJucygpIGNvbnN0IHsg
cmV0dXJuIG1fcGF0dGVybnM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpHcmFkaWVudEhhc2hNYXAm
IGdyYWRpZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhZGllbnRzOyB9CiAKIHByaXZhdGU6CiAg
ICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIFdlYkNv
cmU6Ok5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUltYWdlczsKICAgICBXZWJDb3JlOjpGb250
UmVuZGVyaW5nUmVzb3VyY2VNYXAgbV9mb250czsKKyAgICBXZWJDb3JlOjpQYXR0ZXJuSGFzaE1h
cCBtX3BhdHRlcm5zOworICAgIFdlYkNvcmU6OkdyYWRpZW50SGFzaE1hcCBtX2dyYWRpZW50czsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvR3JhZGllbnRSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0dyYWRpZW50UmVmZXJlbmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI5N2Q2YTc5YWUxYzk0OGVlNzcz
M2JlZDQxNTMzMzA3Nzg1MjhmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0dyYWRpZW50UmVmZXJlbmNlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEdyYWRpZW50OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25h
bWVzcGFjZSBJUEMgeworCit1c2luZyBHcmFkaWVudFJlZmVyZW5jZSA9IFJlZjxXZWJDb3JlOjpH
cmFkaWVudD47CisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvUGF0dGVyblJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvUGF0dGVyblJlZmVyZW5jZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwOTFmZDhmNjQ2ODM5NDc5MjEz
ODQ0NmQ2NzYyNDg0NWIzOTdkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9QYXR0ZXJuUmVmZXJlbmNlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFBhdHRlcm47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFt
ZXNwYWNlIElQQyB7CisKK3VzaW5nIFBhdHRlcm5SZWZlcmVuY2UgPSBSZWY8V2ViQ29yZTo6UGF0
dGVybj47CisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggMGQ4ZGUwNDlmNGI1MGNiZTdjOTllNzEwNjgyOTY2OTNlZTUxODgx
Yy4uM2ZlMmM3YTY1MjhlNjJkODkyYmQ0NmNkY2JkMjE0Nzc3YTI5N2I3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMDUsNiArMjA1LDggQEAgZGVmIHR5
cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICByZXR1cm4gZnJvemVu
c2V0KFsKICAgICAgICAgJ0lQQzo6RGF0YVJlZmVyZW5jZScsCiAgICAgICAgICdJUEM6OkZvbnRS
ZWZlcmVuY2UnLAorICAgICAgICAnSVBDOjpHcmFkaWVudFJlZmVyZW5jZScsCisgICAgICAgICdJ
UEM6OlBhdHRlcm5SZWZlcmVuY2UnLAogICAgICAgICAnTWFjaFNlbmRSaWdodCcsCiAgICAgICAg
ICdNZWRpYVRpbWUnLAogICAgICAgICAnU3RyaW5nJywKQEAgLTIyMiw3ICsyMjQsNiBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29y
ZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllcicsCi0gICAgICAgICdXZWJDb3JlOjpOYXRpdmVJbWFnZVJlZmVyZW5jZScs
CiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5JywKICAgICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBk
NzY2NTRiNjRmNjJhMDkxY2Q5MzZkZmMwM2YwMDRhZGZjMTk5Y2I1Li40ZjZiNGU4MjFhMThlMTU2
NWE0ZGY1NGNjNzk4Y2M5ZWUxYmFiZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTEwOTksNyArMTA5OSw3IEBAIGJvb2wgQXJndW1l
bnRDb2RlcjxJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbWFnZUhhbmRs
ZSYgaW1hZ2VIYW5kCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxS
ZWY8Rm9udD4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmPFdlYkNvcmU6OkZv
bnQ+JiBmb250KQordm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBSZWY8Rm9udD4mIGZvbnQpCiB7CiAgICAgZW5jb2RlciA8PCBmb250
LT5vcmlnaW4oKTsKICAgICBlbmNvZGVyIDw8IChmb250LT5pc0ludGVyc3RpdGlhbCgpID8gRm9u
dDo6SW50ZXJzdGl0aWFsOjpZZXMgOiBGb250OjpJbnRlcnN0aXRpYWw6Ok5vKTsKQEAgLTExNDUs
NiArMTE0NSwyMDUgQEAgT3B0aW9uYWw8UmVmPEZvbnQ+PiBBcmd1bWVudENvZGVyPFJlZjxGb250
Pj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHJldHVybiBGb250OjpjcmVhdGUocGxh
dGZvcm1EYXRhLnZhbHVlKCksIG9yaWdpbi52YWx1ZSgpLCBpc0ludGVyc3RpdGlhbC52YWx1ZSgp
LCB2aXNpYmlsaXR5LnZhbHVlKCksIGlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2sudmFsdWUoKSwg
cmVuZGVyaW5nUmVyc291Y2VJZGVudGlmaWVyKTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPFJl
ZjxQYXR0ZXJuPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8UGF0dGVybj4m
IHBhdHRlcm4pCit7CisgICAgSW1hZ2VIYW5kbGUgaW1hZ2VIYW5kbGU7CisgICAgaW1hZ2VIYW5k
bGUuaW1hZ2UgPSBtYWtlUmVmKHBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKKyAgICBlbmNvZGVyIDw8
IGltYWdlSGFuZGxlOworICAgIGVuY29kZXIgPDwgcGF0dGVybi0+cGF0dGVyblNwYWNlVHJhbnNm
b3JtKCk7CisgICAgZW5jb2RlciA8PCBwYXR0ZXJuLT5yZXBlYXRYKCk7CisgICAgZW5jb2RlciA8
PCBwYXR0ZXJuLT5yZXBlYXRZKCk7CisgICAgZW5jb2RlciA8PCBwYXR0ZXJuLT5yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKTsKK30KKworT3B0aW9uYWw8UmVmPFBhdHRlcm4+PiBBcmd1bWVu
dENvZGVyPFJlZjxQYXR0ZXJuPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9w
dGlvbmFsPEltYWdlSGFuZGxlPiBpbWFnZUhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGltYWdlSGFu
ZGxlOworICAgIGlmICghaW1hZ2VIYW5kbGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBPcHRpb25hbDxBZmZpbmVUcmFuc2Zvcm0+IHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0
aW9uOworICAgIGRlY29kZXIgPj4gcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CisgICAgaWYg
KCFwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHJlcGVhdFg7CisgICAgZGVjb2RlciA+PiByZXBlYXRY
OworICAgIGlmICghcmVwZWF0WCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPGJvb2w+IHJlcGVhdFk7CisgICAgZGVjb2RlciA+PiByZXBlYXRZOworICAgIGlm
ICghcmVwZWF0WSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFs
PFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gcmVuZGVyaW5nUmVyc291Y2VJZGVudGlmaWVy
OworICAgIGRlY29kZXIgPj4gcmVuZGVyaW5nUmVyc291Y2VJZGVudGlmaWVyOworICAgIGlmICgh
cmVuZGVyaW5nUmVyc291Y2VJZGVudGlmaWVyLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIHBhdHRlcm4gPSBQYXR0ZXJuOjpjcmVhdGUoaW1hZ2VI
YW5kbGUtPmltYWdlLnJlbGVhc2VOb25OdWxsKCksICpyZXBlYXRYLCAqcmVwZWF0WSwgKnJlbmRl
cmluZ1JlcnNvdWNlSWRlbnRpZmllcik7CisgICAgcGF0dGVybi0+c2V0UGF0dGVyblNwYWNlVHJh
bnNmb3JtKCpwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbik7CisgICAgcmV0dXJuIHBhdHRlcm47
Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxHcmFkaWVudDo6Q29sb3JTdG9wPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEdyYWRpZW50OjpDb2xvclN0b3AmIHN0b3ApCit7CisgICAg
ZW5jb2RlciA8PCBzdG9wLm9mZnNldDsKKyAgICBlbmNvZGVyIDw8IHN0b3AuY29sb3I7Cit9CisK
K09wdGlvbmFsPEdyYWRpZW50OjpDb2xvclN0b3A+IEFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OkNv
bG9yU3RvcD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPGZsb2F0
PiBvZmZzZXQ7CisgICAgZGVjb2RlciA+PiBvZmZzZXQ7CisgICAgaWYgKCFvZmZzZXQpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxDb2xvcj4gY29sb3I7Cisg
ICAgZGVjb2RlciA+PiBjb2xvcjsKKyAgICBpZiAoIWNvbG9yKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7ICpvZmZzZXQsICpjb2xvciB9fTsKK30KKwordm9p
ZCBBcmd1bWVudENvZGVyPEdyYWRpZW50OjpMaW5lYXJEYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEdyYWRpZW50OjpMaW5lYXJEYXRhJiBkYXRhKQoreworICAgIGVuY29kZXIg
PDwgZGF0YS5wb2ludDA7CisgICAgZW5jb2RlciA8PCBkYXRhLnBvaW50MTsKK30KKworT3B0aW9u
YWw8R3JhZGllbnQ6OkxpbmVhckRhdGE+IEFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OkxpbmVhckRh
dGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxGbG9hdFBvaW50
PiBwb2ludDA7CisgICAgZGVjb2RlciA+PiBwb2ludDA7CisgICAgaWYgKCFwb2ludDApCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGbG9hdFBvaW50PiBwb2lu
dDE7CisgICAgZGVjb2RlciA+PiBwb2ludDE7CisgICAgaWYgKCFwb2ludDEpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKnBvaW50MCwgKnBvaW50MSB9fTsK
K30KKwordm9pZCBBcmd1bWVudENvZGVyPEdyYWRpZW50OjpSYWRpYWxEYXRhPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEdyYWRpZW50OjpSYWRpYWxEYXRhJiBkYXRhKQoreworICAg
IGVuY29kZXIgPDwgZGF0YS5wb2ludDA7CisgICAgZW5jb2RlciA8PCBkYXRhLnBvaW50MTsKKyAg
ICBlbmNvZGVyIDw8IGRhdGEuc3RhcnRSYWRpdXM7CisgICAgZW5jb2RlciA8PCBkYXRhLmVuZFJh
ZGl1czsKKyAgICBlbmNvZGVyIDw8IGRhdGEuYXNwZWN0UmF0aW87Cit9CisKK09wdGlvbmFsPEdy
YWRpZW50OjpSYWRpYWxEYXRhPiBBcmd1bWVudENvZGVyPEdyYWRpZW50OjpSYWRpYWxEYXRhPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8RmxvYXRQb2ludD4gcG9p
bnQwOworICAgIGRlY29kZXIgPj4gcG9pbnQwOworICAgIGlmICghcG9pbnQwKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8RmxvYXRQb2ludD4gcG9pbnQxOwor
ICAgIGRlY29kZXIgPj4gcG9pbnQxOworICAgIGlmICghcG9pbnQxKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8ZmxvYXQ+IHN0YXJ0UmFkaXVzOworICAgIGRl
Y29kZXIgPj4gc3RhcnRSYWRpdXM7CisgICAgaWYgKCFzdGFydFJhZGl1cykKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGZsb2F0PiBlbmRSYWRpdXM7CisgICAg
ZGVjb2RlciA+PiBlbmRSYWRpdXM7CisgICAgaWYgKCFlbmRSYWRpdXMpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxmbG9hdD4gYXNwZWN0UmF0aW87CisgICAg
ZGVjb2RlciA+PiBhc3BlY3RSYXRpbzsKKyAgICBpZiAoIWFzcGVjdFJhdGlvKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7ICpwb2ludDAsICpwb2ludDEsICpz
dGFydFJhZGl1cywgKmVuZFJhZGl1cywgKmFzcGVjdFJhdGlvIH19OworfQorCit2b2lkIEFyZ3Vt
ZW50Q29kZXI8R3JhZGllbnQ6OkNvbmljRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBHcmFkaWVudDo6Q29uaWNEYXRhJiBkYXRhKQoreworICAgIGVuY29kZXIgPDwgZGF0YS5w
b2ludDA7CisgICAgZW5jb2RlciA8PCBkYXRhLmFuZ2xlUmFkaWFuczsKK30KKworT3B0aW9uYWw8
R3JhZGllbnQ6OkNvbmljRGF0YT4gQXJndW1lbnRDb2RlcjxHcmFkaWVudDo6Q29uaWNEYXRhPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8RmxvYXRQb2ludD4gcG9p
bnQwOworICAgIGRlY29kZXIgPj4gcG9pbnQwOworICAgIGlmICghcG9pbnQwKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8ZmxvYXQ+IGFuZ2xlUmFkaWFuczsK
KyAgICBkZWNvZGVyID4+IGFuZ2xlUmFkaWFuczsKKyAgICBpZiAoIWFuZ2xlUmFkaWFucykKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqcG9pbnQwLCAqYW5n
bGVSYWRpYW5zIH19OworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPEdyYWRpZW50Pj46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8R3JhZGllbnQ+JiBncmFkaWVudCkKK3sK
KyAgICBlbmNvZGVyIDw8IGdyYWRpZW50LT5kYXRhKCk7CisgICAgZW5jb2RlciA8PCBncmFkaWVu
dC0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7CisKKyAgICBlbmNvZGVyIDw8IGdyYWRp
ZW50LT5zdG9wcygpOworICAgIGVuY29kZXIgPDwgZ3JhZGllbnQtPnN0b3BzU29ydGVkKCk7Cisg
ICAgZW5jb2RlciA8PCBncmFkaWVudC0+c3ByZWFkTWV0aG9kKCk7CisgICAgZW5jb2RlciA8PCBn
cmFkaWVudC0+Z3JhZGllbnRTcGFjZVRyYW5zZm9ybSgpOworfQorCitPcHRpb25hbDxSZWY8R3Jh
ZGllbnQ+PiBBcmd1bWVudENvZGVyPFJlZjxHcmFkaWVudD4+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBPcHRpb25hbDxHcmFkaWVudDo6RGF0YT4gZGF0YTsKKyAgICBkZWNvZGVy
ID4+IGRhdGE7CisgICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiByZW5kZXJpbmdSZXJz
b3VjZUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiByZW5kZXJpbmdSZXJzb3VjZUlkZW50aWZp
ZXI7CisgICAgaWYgKCFyZW5kZXJpbmdSZXJzb3VjZUlkZW50aWZpZXIuaGFzVmFsdWUoKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVu
dDo6Y3JlYXRlKFdURk1vdmUoKmRhdGEpLCAqcmVuZGVyaW5nUmVyc291Y2VJZGVudGlmaWVyKTsK
KworICAgIE9wdGlvbmFsPEdyYWRpZW50OjpDb2xvclN0b3BWZWN0b3I+IHN0b3BzOworICAgIGRl
Y29kZXIgPj4gc3RvcHM7CisgICAgaWYgKCFzdG9wcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICBPcHRpb25hbDxib29sPiBzdG9wc1NvcnRlZDsKKyAgICBkZWNvZGVyID4+IHN0
b3BzU29ydGVkOworICAgIGlmICghc3RvcHNTb3J0ZWQuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAoKnN0b3BzU29ydGVkKQorICAgICAgICBncmFkaWVu
dC0+c2V0U29ydGVkQ29sb3JTdG9wcyhXVEZNb3ZlKCpzdG9wcykpOworICAgIGVsc2UgeworICAg
ICAgICBmb3IgKGF1dG8mIHN0b3AgOiAqc3RvcHMpCisgICAgICAgICAgICBncmFkaWVudC0+YWRk
Q29sb3JTdG9wKFdURk1vdmUoc3RvcCkpOworICAgIH0KKworICAgIEdyYWRpZW50U3ByZWFkTWV0
aG9kIHNwcmVhZE1ldGhvZDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNwcmVhZE1ldGhvZCkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgZ3JhZGllbnQtPnNldFNwcmVhZE1l
dGhvZChzcHJlYWRNZXRob2QpOworCisgICAgT3B0aW9uYWw8QWZmaW5lVHJhbnNmb3JtPiBncmFk
aWVudFNwYWNlVHJhbnNmb3JtYXRpb247CisgICAgZGVjb2RlciA+PiBncmFkaWVudFNwYWNlVHJh
bnNmb3JtYXRpb247CisgICAgaWYgKCFncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24pCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgZ3JhZGllbnQtPnNldEdyYWRpZW50U3BhY2VU
cmFuc2Zvcm0oV1RGTW92ZSgqZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uKSk7CisKKyAgICBy
ZXR1cm4gZ3JhZGllbnQ7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CiAgICAgZW5jb2RlciA8
PCBjdXJzb3IudHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAppbmRleCBmZTc4NThmZjljYTZhNGZjYzU5ZjEyNDNiMzgxMzQ0ZWM1ZGZmY2FjLi45
MWU2NDczYzI4YTM2OGI0MjgxNjA0OTE4MWViMjgxZmU2ZWExNzNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzAsMTEgKzMwLDExIEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdl
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnB1dE1vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya0xvYWRNZXRyaWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KQEAgLTExOSw2
ICsxMTksNyBAQCBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9u
OwogY2xhc3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CitjbGFz
cyBQYXR0ZXJuOwogY2xhc3MgUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbjsKIGNsYXNz
IFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlZ2lvbjsKQEAgLTQxMyw5ICs0MTQsOSBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNyZWRlbnRpYWw+IHsKICAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXIm
LCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkN1cnNvcj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Q3Vyc29yJik7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlSGFuZGxlPiB7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYpOworICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Oklt
YWdlSGFuZGxlJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJlZjxX
ZWJDb3JlOjpGb250Pj4gewpAQCAtNDI1LDkgKzQyNiwzOSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFJlZjxXZWJDb3JlOjpGb250Pj4gewogICAgIHN0YXRpYyBPcHRpb25hbDxX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhPiBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYpOwog
fTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRs
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW1h
Z2VIYW5kbGUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxSZWY8V2ViQ29yZTo6UGF0dGVybj4+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFJlZjxXZWJDb3JlOjpQYXR0ZXJuPiYpOworICAgIHN0YXRpYyBPcHRp
b25hbDxSZWY8V2ViQ29yZTo6UGF0dGVybj4+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYWRpZW50OjpDb2xvclN0b3A+
IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkdyYWRp
ZW50OjpDb2xvclN0b3AmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6R3JhZGllbnQ6
OkNvbG9yU3RvcD4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhZGllbnQ6OkxpbmVhckRhdGE+IHsKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkdyYWRpZW50OjpMaW5lYXJEYXRh
Jik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkdyYWRpZW50OjpMaW5lYXJEYXRhPiBk
ZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpHcmFkaWVudDo6UmFkaWFsRGF0YT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhZGllbnQ6OlJhZGlhbERhdGEmKTsKKyAgICBzdGF0
aWMgT3B0aW9uYWw8V2ViQ29yZTo6R3JhZGllbnQ6OlJhZGlhbERhdGE+IGRlY29kZShEZWNvZGVy
Jik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYWRp
ZW50OjpDb25pY0RhdGE+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkdyYWRpZW50OjpDb25pY0RhdGEmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2Vi
Q29yZTo6R3JhZGllbnQ6OkNvbmljRGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmVmPFdlYkNvcmU6OkdyYWRpZW50Pj4geworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgUmVmPFdlYkNvcmU6OkdyYWRpZW50
PiYpOworICAgIHN0YXRpYyBPcHRpb25hbDxSZWY8V2ViQ29yZTo6R3JhZGllbnQ+PiBkZWNvZGUo
RGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpDdXJzb3I+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OkN1cnNvciYpOworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkN1cnNvciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIzNzMwMDVlOWJlODI4ZDAy
Mzc1YmI0NDFhYzNjZGE5OWZhYTYyMmEuLmY1OGYxYmU0NmZmM2M3Njk2NDY4NzExNWJlMmM5Zjg4
MWVkMzczN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDQ2NCw2ICs0NDY0LDggQEAKIAkJNzI3QTdGMzgyNDA3ODhGMDAwNEQyOTMx
IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM5MjQwNzg4RjEwMDREMjkzMSAv
KiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcyN0E3RjQ5MjQwOEFFRTYwMDREMjkzMSAvKiBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzI4MzAxRDgyNThEMzlCRDAwMzREQjc2IC8qIFBhdHRlcm5SZWZl
cmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0dGVyblJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3MjgzMDFEOTI1OEQzOURBMDAzNERCNzYgLyogR3JhZGllbnRSZWZl
cmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhZGllbnRSZWZlcmVuY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlj
a2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2Vy
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMwMDg3
ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3MkI1MzE1NzI1M0MxRTREMDA0OTI5NUEgLyogUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODgxLDYgKzY4ODMsNyBAQAogCQkJCUJD
MDMyREEwMTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmggKi8sCiAJCQkJOUJEOEFCNDkyNTgy
MEU1MjAwNTM4NkY4IC8qIEZvbnRSZWZlcmVuY2UuaCAqLywKIAkJCQk0MTUxRTVDMzFGQkI5MEE5
MDBFNDdFMkQgLyogRm9ybURhdGFSZWZlcmVuY2UuaCAqLywKKwkJCQk3MjgzMDFEOTI1OEQzOURB
MDAzNERCNzYgLyogR3JhZGllbnRSZWZlcmVuY2UuaCAqLywKIAkJCQlDMENFNzJBQzEyNDdFNzhE
MDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oICovLAogCQkJCTFDOUFGMzYxMjQxMzREMjMwMEQz
RUMwMiAvKiBJbWFnZURhdGFSZWZlcmVuY2UuaCAqLywKIAkJCQk5QkY1RUM2MzI1NDEwRTk5MDA5
ODRFNzcgLyogSlNJUENCaW5kaW5nLmNwcCAqLywKQEAgLTY4OTIsNiArNjg5NSw3IEBACiAJCQkJ
MUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5oICovLAogCQkJ
CTFBQUIwMzc3MTg1QTdDNkEwMEVERjUwMSAvKiBNZXNzYWdlU2VuZGVyLmNwcCAqLywKIAkJCQkx
QUFCMDM3ODE4NUE3QzZBMDBFREY1MDEgLyogTWVzc2FnZVNlbmRlci5oICovLAorCQkJCTcyODMw
MUQ4MjU4RDM5QkQwMDM0REI3NiAvKiBQYXR0ZXJuUmVmZXJlbmNlLmggKi8sCiAJCQkJMkRDMTgw
MDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwICovLAogCQkJCTVDQzVE
QjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJMkRDMTg1
NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCBlOGEyMzI3YjBiYzkyMzkzMTE1MWU3Nzli
YTFjOWRiN2MzYWMxNGVlLi5lOTJlMGM3Y2I1ZmUwN2Q2MDQzYWRiMGFiYWQyMzcyYjU3Yzg5Y2U0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoKTsKICAg
ICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eSgpLnJlbGVhc2VJbWFnZUJ1ZmZlcihtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7
Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZWxlYXNlUmVtb3RlUmVz
b3VyY2UobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS0+cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKG1fcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkKQEAgLTE5MCwxMiArMTkwLDYgQEAg
cHJvdGVjdGVkOgogICAgICAgICBjbGVhckRpc3BsYXlMaXN0KCk7CiAgICAgfQogCi0gICAgdm9p
ZCBjYWNoZU5hdGl2ZUltYWdlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJiBpbWFnZSkgb3ZlcnJpZGUK
LSAgICB7Ci0gICAgICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAg
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkoKS5jYWNoZU5hdGl2ZUltYWdlKGltYWdlKTsKLSAgICB9Ci0KICAgICBib29sIGlzQ2Fj
aGVkSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBj
b25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSkKQEAgLTIwNSw2ICsxOTksMzAgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4g
Y2FjaGVkSW1hZ2VCdWZmZXI7CiAgICAgfQogCisgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKFdl
YkNvcmU6Ok5hdGl2ZUltYWdlJiBpbWFnZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmICht
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKKyAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5jYWNoZU5hdGl2ZUlt
YWdlKGltYWdlKTsKKyAgICB9CisKKyAgICB2b2lkIGNhY2hlRm9udChXZWJDb3JlOjpGb250JiBm
b250KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KQorICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eSgpLmNhY2hlRm9udChmb250KTsKKyAgICB9CisKKyAgICB2b2lk
IGNhY2hlUGF0dGVybihXZWJDb3JlOjpQYXR0ZXJuJiBwYXR0ZXJuKSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgICAgICAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgp
LmNhY2hlUGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisKKyAgICB2b2lkIGNhY2hlR3JhZGllbnQo
V2ViQ29yZTo6R3JhZGllbnQmIGdyYWRpZW50KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYg
KG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgICAgICAgICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmNhY2hlR3JhZGll
bnQoZ3JhZGllbnQpOworICAgIH0KKwogICAgIHZvaWQgY2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1
ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbmV4dEltYWdlQnVmZmVy
KSBmaW5hbAogICAgIHsKICAgICAgICAgYm9vbCB3YXNFbXB0eSA9IG1fZHJhd2luZ0NvbnRleHQu
ZGlzcGxheUxpc3QoKS5pc0VtcHR5KCk7CkBAIC0yNDEsMTIgKzI1OSw2IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoKTsKICAgICB9CiAKLSAgICB2b2lkIGNh
Y2hlRm9udChXZWJDb3JlOjpGb250JiBmb250KSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgaWYg
KG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQotICAgICAgICAgICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmNhY2hlRm9udChm
b250KTsKLSAgICB9Ci0KICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRs
ZSBjcmVhdGVJdGVtQnVmZmVyKHNpemVfdCBjYXBhY2l0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIGlmIChMSUtFTFkobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGUzNzMxNjdhMjhhZGNjMjVkMDM1
ZDgzM2VlY2QzZDMzOTE0MWIwNTUuLjUzNjVmYWQwMTU5YWQxYzAwY2M4ZTU1NDFhM2NhNzhlN2Nk
Yzk2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTE1
Niw5ICsxNTYsMTkgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0
aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUKICAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDYWNoZU5hdGl2ZUltYWdlKGhhbmRsZSwgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9
CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZUZvbnQoUmVmPFdlYkNv
cmU6OkZvbnQ+JiYgZm9udCkKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNo
ZUZvbnQoRm9udCYgZm9udCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpDYWNoZUZvbnQoV1RGTW92ZShmb250KSksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNhY2hl
Rm9udChtYWtlUmVmKGZvbnQpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZVBhdHRlcm4oUGF0dGVybiYg
cGF0dGVybikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpD
YWNoZVBhdHRlcm4obWFrZVJlZihwYXR0ZXJuKSksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y2FjaGVHcmFkaWVu
dChHcmFkaWVudCYgZ3JhZGllbnQpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Q2FjaGVHcmFkaWVudChtYWtlUmVmKGdyYWRpZW50KSksIG1fcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6ZGVsZXRlQWxsRm9udHMoKQpAQCAtMTY2LDEyICsxNzYsMTIgQEAgdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmRlbGV0ZUFsbEZvbnRzKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpEZWxldGVBbGxGb250cygpLCBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJl
bGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJl
bGVhc2VSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGlmIChyZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgPT0gbV9jdXJyZW50RGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXIpCiAgICAg
ICAgIG1fY3VycmVudERlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyID0gV1RGOjpudWxs
b3B0OwogCi0gICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFz
ZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OlJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmgKaW5kZXggZWMyOGRiNTc1MjU5OWFlZGVjZWRhOTA1ODkzZjFiYTk3YTE4MWEwMi4uYzEyNWQ4
NWM4MzI5NGMwY2Y2YWYwMzE2OTVhNzFmYjAyNWY3MWE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oCkBAIC04Myw5ICs4MywxMSBAQCBwdWJsaWM6CiAgICAgUmVmUHRy
PFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlw
bGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7
Ci0gICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOworICAgIHZvaWQgY2Fj
aGVGb250KFdlYkNvcmU6OkZvbnQmKTsKKyAgICB2b2lkIGNhY2hlUGF0dGVybihXZWJDb3JlOjpQ
YXR0ZXJuJik7CisgICAgdm9pZCBjYWNoZUdyYWRpZW50KFdlYkNvcmU6OkdyYWRpZW50Jik7CiAg
ICAgdm9pZCBkZWxldGVBbGxGb250cygpOwotICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNl
KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZWxlYXNl
UmVuZGVyaW5nUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
IAogICAgIGVudW0gY2xhc3MgRGlkUmVjZWl2ZUJhY2tlbmRDcmVhdGlvblJlc3VsdCA6IGJvb2wg
ewogICAgICAgICBSZWNlaXZlZEFueVJlc3BvbnNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuY3BwCmluZGV4IDBjZTk0NWU3MDVkOTgyNzBmZmIwYzkxMGY4YTVhYWMxZTAxN2FmNmYu
LjAzZGY4YWJiMGY2ZGQ2ZDM4MjYzMzc3M2U0NGM2NjVkZTQ4ZmM4NTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5Ojp+UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkKICAgICAgICAgaW1hZ2UtPnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OmNhY2hlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQordm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIm
IGltYWdlQnVmZmVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRk
KGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihp
bWFnZUJ1ZmZlcikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNO
ZXdFbnRyeSk7CkBAIC0xMDEsNiArMTAxLDE1IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiBpbWFnZSkKICAgICBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jYWNoZU5hdGl2ZUltYWdlKGhhbmRsZSwgaW1hZ2UucmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpOwogfQogCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX25hdGl2ZUltYWdl
cy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAmJiAhbV9wYXR0ZXJucy5yZW1v
dmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAmJiAhbV9ncmFkaWVudHMucmVtb3ZlKHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRl
bGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlLgorICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpOworfQorCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
Y2FjaGVGb250KEZvbnQmIGZvbnQpCiB7CiAgICAgYXV0byByZXN1bHQgPSBtX2ZvbnRJZGVudGlm
aWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5lbnN1cmUoZm9udC5yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKSwgWyZdIHsKQEAgLTExNSwxMyArMTI0LDI4IEBAIHZvaWQgUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUZvbnQoRm9udCYgZm9udCkKICAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY2FjaGVGb250KG1ha2VSZWYoZm9udCkpOwogfQog
Ci12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVQYXR0ZXJuKFBhdHRlcm4mIHBhdHRlcm4p
CiB7Ci0gICAgaWYgKCFtX25hdGl2ZUltYWdlcy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKSkKLSAgICAgICAgcmV0dXJuOworICAgIG1fcGF0dGVybnMuZW5zdXJlKHBhdHRlcm4u
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFsmXSgpIHsKKyAgICAgICAgLy8gU2V0IGl0
c2VsZiBhcyBhbiBvYnNlcnZlciB0byBQYXR0ZXJuLCBzbyByZWxlYXNlUmVuZGVyaW5nUmVzb3Vy
Y2UoKSBnZXRzIGNhbGxlZC4KKyAgICAgICAgcGF0dGVybi5hZGRPYnNlcnZlcigqdGhpcyk7CiAK
LSAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyByZXNvdXJjZS4KLSAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgLy8gVGVsbCB0aGUgR1BVIHByb2Nl
c3MgdG8gY2FjaGUgdGhpcyByZXNvdXJjZS4KKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY2FjaGVQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICByZXR1cm4gbWFrZVdlYWtQ
dHIocGF0dGVybik7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpjYWNoZUdyYWRpZW50KEdyYWRpZW50JiBncmFkaWVudCkKK3sKKyAgICBtX2dyYWRpZW50cy5l
bnN1cmUoZ3JhZGllbnQucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFsmXSgpIHsKKyAg
ICAgICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBHcmFkaWVudCwgc28gcmVsZWFz
ZVJlbmRlcmluZ1Jlc291cmNlKCkgZ2V0cyBjYWxsZWQuCisgICAgICAgIGdyYWRpZW50LmFkZE9i
c2VydmVyKCp0aGlzKTsKKworICAgICAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byBjYWNo
ZSB0aGlzIHJlc291cmNlLgorICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
YWNoZUdyYWRpZW50KGdyYWRpZW50KTsKKyAgICAgICAgcmV0dXJuIG1ha2VXZWFrUHRyKGdyYWRp
ZW50KTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZp
bmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKQEAgLTEzOCw3ICsxNjIsNyBAQCB2b2lkIFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQogCiAgICAgZm9y
IChhdXRvJiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNp
b25NYXApIHsKICAgICAgICAgaWYgKG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gLSBp
dGVtLnZhbHVlID49IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSkK
LSAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVS
ZXNvdXJjZShpdGVtLmtleSk7CisgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5yZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoaXRlbS5rZXkpOwogICAgIH0KIAogICAgICsr
bV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5oCmluZGV4IDYxMDU4YzM1NzUxNzIwOWY0MDNlMzdmNDEyZDgxNjAxZGU4OGM0MzcuLjFh
Y2RlZmVkNDBiMWRkMWJhZWRlNjlmZTBhNGFhZDY1ZWQ3N2FkZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuaApAQCAtMzMsMTQgKzMzLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEZvbnQ7CitjbGFzcyBHcmFkaWVudDsKIGNsYXNzIEltYWdlQnVmZmVyOworY2xh
c3MgUGF0dGVybjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTsKIAotY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IDogcHVi
bGljIFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjpPYnNlcnZlciB7CitjbGFzcyBSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6Ok9ic2VydmVy
IHsKIHB1YmxpYzoKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5Jik7CiAgICAgflJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpOwpAQCAtNTAs
MjEgKzUyLDI3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBjYWNoZU5hdGl2ZUlt
YWdlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJik7Ci0KKyAgICB2b2lkIGNhY2hlRm9udChXZWJDb3Jl
OjpGb250Jik7CisgICAgdm9pZCBjYWNoZVBhdHRlcm4oV2ViQ29yZTo6UGF0dGVybiYpOworICAg
IHZvaWQgY2FjaGVHcmFkaWVudChXZWJDb3JlOjpHcmFkaWVudCYpOworICAgIAogICAgIHVzaW5n
IEltYWdlQnVmZmVySGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj47CiAgICAgY29uc3QgSW1h
Z2VCdWZmZXJIYXNoTWFwJiBpbWFnZUJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVm
ZmVyczsgfQogCi0gICAgdm9pZCBjYWNoZUZvbnQoV2ViQ29yZTo6Rm9udCYpOwogICAgIHZvaWQg
ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsK
IAogcHJpdmF0ZToKICAgICB1c2luZyBOYXRpdmVJbWFnZUhhc2hNYXAgPSBIYXNoTWFwPFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2Vha1B0cjxXZWJDb3JlOjpOYXRpdmVJ
bWFnZT4+OworICAgIHVzaW5nIFBhdHRlcm5IYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6UGF0dGVybj4+OworICAg
IHVzaW5nIEdyYWRpZW50SGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OkdyYWRpZW50Pj47CiAgICAgCi0gICAgdm9p
ZCByZWxlYXNlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogCiAgICAgSW1hZ2VCdWZmZXJI
YXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUlt
YWdlczsKKyAgICBQYXR0ZXJuSGFzaE1hcCBtX3BhdHRlcm5zOworICAgIEdyYWRpZW50SGFzaE1h
cCBtX2dyYWRpZW50czsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLCB1aW50NjRfdD4gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0
ZVZlcnNpb25NYXA7CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJl
bmRlcmluZ1VwZGF0ZSB7IDAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416584</attachid>
            <date>2020-12-20 11:00:50 -0800</date>
            <delta_ts>2020-12-21 01:33:10 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-219468-20201220110049.patch</filename>
            <type>text/plain</type>
            <size>138656</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgzNGE5ZDk2NzUwMTk4
ZTZmNDgzZmM0MjkwMTY4YTMzY2ViNzBkNS4uMjI3ZmFmZDIyMDIzMzlhZGIxNjQxNGVkMTk5YTA1
N2E3OTY4M2Q0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNyBAQAorMjAyMC0xMi0yMCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBHUFUgUHJvY2Vzczog
Q2FudmFzIHBhdHRlcm4gdGVzdHMgYXNzZXJ0IHVuZGVyIGVuY29kZVNpbmdsZU9iamVjdCgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI6OkNvbmNyZXRlSW1hZ2VCdWZmZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYWRpZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OkdyYWRpZW50
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhZGllbnQ6OnN0b3BzU29ydGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YWRpZW50OjpDb2xvclN0b3A6OmVuY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpHcmFkaWVudDo6Q29sb3JTdG9wOjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6R3JhZGllbnQ6OkxpbmVhckRhdGE6OmVuY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpHcmFkaWVudDo6TGluZWFyRGF0YTo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYWRpZW50OjpSYWRpYWxEYXRhOjplbmNvZGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OlJhZGlhbERhdGE6OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6Q29uaWNEYXRhOjplbmNvZGUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OkNvbmljRGF0YTo6ZGVj
b2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50OjplbmNvZGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZSk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZTo6R3JhcGhpY3ND
b250ZXh0SW5saW5lU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9O
YXRpdmVJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXRpdmVJbWFnZTo6TmF0aXZlSW1h
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6On5OYXRpdmVJbWFnZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjphZGRPYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpOYXRpdmVJbWFnZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVy
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OlBhdHRlcm4pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRl
cm46OmVuY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXR0ZXJuOjpk
ZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ1Jl
c291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6On5S
ZW5kZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZTo6
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlOjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2U6OlJlbmRlcmluZ1Jlc291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Om1fZm9udHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Om1fcGF0dGVy
bnMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Om1fZ3JhZGllbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I9KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6Y2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpzaG91bGREdW1wRm9yRmxhZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpwYXR0ZXJucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6OmdyYWRpZW50cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6OmNhY2hl
UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6OmNh
Y2hlR3JhZGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1IYW5kbGU6OmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
SGFuZGxlOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFu
ZGxlOjpjb3B5VG8gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpzaXplT2ZJdGVtSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
aXNEcmF3aW5nSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJ
dGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRT
dHJva2VUaGlja25lc3M6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0
ZTo6U2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjph
cHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmls
bEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxH
cmFkaWVudDo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6YXBwbHkgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9r
ZUNvbG9yOjphcHBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpTZXRTdGF0ZTo6Y2hhbmdlRmxhZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpzdHJva2VHcmFkaWVudElkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpzdHJva2VQYXR0ZXJu
SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3Rh
dGU6OmZpbGxHcmFkaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlNldFN0YXRlOjpmaWxsUGF0dGVybklkZW50aWZpZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpzdHJva2VDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OmZpbGxDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnNoYWRvd0NvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6c3RhdGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpkZWNvZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50OjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdy
YWRpZW50OjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZUZpbGxDb2xvcjo6U2V0SW5saW5lRmlsbENvbG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OmNvbG9yIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6
U2V0SW5saW5lU3Ryb2tlQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjphcHBlbmRTdGF0
ZUNoYW5nZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjp3
aWxsQXBwZW5kSXRlbU9mVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29u
dGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpEZWxlZ2F0ZTo6Y2FjaGVQYXR0ZXJuKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6OmNhY2hl
R3JhZGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlcGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBs
YXllcjo6UmVwbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmFwcGx5U2V0
U3RhdGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBw
bHlJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZXBsYXllci5oOgorCiAyMDIwLTEyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0dQVVByb2Nlc3NdIGh0dHBzOi8vd3d3LndhdmVwbGF5ZXIuaW5m
by9jcmVhdGVtZWRpYWVsZW1lbnRzb3VyY2UtdGVzdC8gZGVtbyBpcyBmbGFreQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBhNjkzNDg4ZWE3OTY4NTllMDk0YTA2NzNlNTk1MDQ4OTM0ZWVkYzNhLi42ZDZkMDUyYjQ1YWQx
ZDQxNWZkN2QxMDMyMTk2ZGQ2N2I2Yzk2MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisy
MDIwLTEyLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAg
IEdQVSBQcm9jZXNzOiBDYW52YXMgcGF0dGVybiB0ZXN0cyBhc3NlcnQgdW5kZXIgZW5jb2RlU2lu
Z2xlT2JqZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3VibWl0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVQYXR0ZXJuKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVHcmFkaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlY29kZUl0ZW0p
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3Rl
UmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNv
dXJjZUNhY2hlOjpjYWNoZVBhdHRlcm4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlOjpjYWNoZUdyYWRpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6cGF0dGVybnMgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpncmFkaWVudHMgY29uc3QpOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9HcmFkaWVudFJlZmVyZW5jZS5oOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvUGF0dGVyblJlZmVyZW5jZS5oOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGUpOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxQYXR0ZXJuPj46OmVuY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmPFBhdHRlcm4+Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxHcmFkaWVudDo6Q29sb3JTdG9wPjo6ZW5jb2RlKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxHcmFkaWVudDo6Q29sb3JTdG9wPjo6ZGVjb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxHcmFkaWVudDo6TGluZWFyRGF0YT46OmVuY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OkxpbmVhckRhdGE+OjpkZWNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYWRpZW50OjpSYWRpYWxEYXRhPjo6ZW5j
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxHcmFkaWVudDo6UmFkaWFsRGF0YT46
OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OkNvbmljRGF0
YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OkNvbmlj
RGF0YT46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmPEdyYWRpZW50
Pj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmPEdyYWRpZW50Pj46
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6flJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Y2FjaGVGb250KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpjYWNoZVBhdHRlcm4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmNhY2hlR3JhZGllbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVQYXR0ZXJuKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUdyYWRpZW50KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1Vw
ZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFz
ZU5hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDoKKwogMjAyMC0xMi0xNyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQcm9jZXNzXSBodHRwczovL3d3dy53
YXZlcGxheWVyLmluZm8vY3JlYXRlbWVkaWFlbGVtZW50c291cmNlLXRlc3QvIGRlbW8gaXMgZmxh
a3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDA0M2M4NmE2OWE0N2VjY2U1M2JjMTJhYjFlYjEwMzFl
MzhiMzYwNjIuLjFlZjc4MjNiOWZmYTJmNGY3ZDMxZGNmNjA1N2U4YjAwMWI3YjcyMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtMTI1OSw2ICsxMjU5LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9SZW5kZXJpbmdSZXNvdXJjZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTg3NTM0Y2JkYzg1YWEz
NmZmOGZjZTRiMGUwOWI2MDg5M2Y5NTkyOC4uNDZlNzM4ODgxM2RlZDFhNTBiMzFlZDY1NjhmZGI5
ZWIwMDA1NWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjE5NCw2ICsyMTk0LDcgQEAKIAkJNzI2RDU2RTIyNTNBRTI4RDAw
MDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcyNkQ1NkUxMjUzQUUwNDMwMDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI2
RDU2RTMyNTNBRTM2NjAwMDJFRjkwIC8qIE5hdGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGNjFEODIwOUY0MDAyMkM0QzcgLyog
TmF0aXZlSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3MjdBN0YzQTI0MDc4Qjg0MDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MkJBQzNBQjIzRTFFNTQ0MDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI4MzAx
REQyNThFODE3RjAwMzREQjc2IC8qIFJlbmRlcmluZ1Jlc291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzMDFEQjI1OEU4MTdGMDAzNERCNzYg
LyogUmVuZGVyaW5nUmVzb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3Mjk5QkM2NzIzRDZBNTMyMDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0
aXBsaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Mjk5QkM2
ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJl
bmRlcmluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMTI5
LDYgKzEwMTMwLDcgQEAKIAkJNzI3QUZFRDExQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRVhUc1JHQi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQyMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRz
UkdCLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVYVHNSR0IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNS
R0IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3MjgzMDFEQjI1OEU4MTdGMDAzNERCNzYgLyogUmVuZGVyaW5nUmVz
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyaW5nUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVs
dGlwbGljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyog
UmVuZGVyaW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjcwNSw2ICsyNjcw
Nyw3IEBACiAJCQkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxl
LmNwcCAqLywKIAkJCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1w
bGUuaCAqLywKIAkJCQk3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5o
ICovLAorCQkJCTcyODMwMURCMjU4RTgxN0YwMDM0REI3NiAvKiBSZW5kZXJpbmdSZXNvdXJjZS5o
ICovLAogCQkJCTcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIuaCAqLywKIAkJCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJl
Y3QuY3BwICovLAogCQkJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5o
ICovLApAQCAtMzQxODgsNiArMzQxOTEsNyBAQAogCQkJCTA4RjJGMDBBMTIxM0U2MTcwMERDRUM0
OCAvKiBSZW5kZXJJbWFnZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODY0MUQ0ODEy
MTQyRjdEMDA4REU5RjYgLyogUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk3MjgzMDFERDI1OEU4MTdGMDAzNERCNzYgLyogUmVuZGVyaW5n
UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyOUQwNTMwMjUzMTQyNDMwMDQyMjA5OCAv
KiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1NkM3
QzRCMjIxMjM5OTcwMDlCMDZDQSAvKiBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDRUE0ODc4MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJJbmxpbmUuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IDFmMjQ1YmNlYmE3MmNlMTM3ZTkwYzYxZTU1
ZjUxYTMzODFiODA2ODUuLjI4OWYxY2U1YzBhNGRlNzZjZjc1YzJhZGFmNWNjNjhiZmFjNDEyZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0
ZUltYWdlQnVmZmVyLmgKQEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAg
ICAgQ29uY3JldGVJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kID0g
bnVsbHB0ciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKLSAgICAg
ICAgOiBtX3BhcmFtZXRlcnMocGFyYW1ldGVycykKKyAgICAgICAgOiBJbWFnZUJ1ZmZlcihyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAgICwgbV9wYXJhbWV0ZXJzKHBhcmFtZXRl
cnMpCiAgICAgICAgICwgbV9iYWNrZW5kKFdURk1vdmUoYmFja2VuZCkpCi0gICAgICAgICwgbV9y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQog
ICAgIHsKICAgICB9CiAKQEAgLTczLDggKzczLDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY2xl
YXJCYWNrZW5kKCkgb3ZlcnJpZGUgeyBtX2JhY2tlbmQgPSBudWxscHRyOyB9CiAgICAgSW1hZ2VC
dWZmZXJCYWNrZW5kKiBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fYmFja2VuZC5nZXQoKTsgfQogCi0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOyB9Ci0KICAgICBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQoKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fYmFja2VuZCk7
CkBAIC0yOTYsNyArMjk0LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5k
OjpQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5
cGU+IG1fYmFja2VuZDsKLSAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAKaW5kZXggZTE3MGY5
NmExYjZlZjUzNWJjNWE4MjNjYTExZDdhNzUwNDIxZWZjZC4uYzNiODk5ZDRlZDk5NWMyYTY0YjU2
YTRiOTc1N2MwMjBhNmEzYzRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhZGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmNwcApAQCAtMzYsMTggKzM2LDE3IEBAIHVzaW5nIFdURjo6cGFpckludEhh
c2g7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEdyYWRpZW50PiBHcmFkaWVudDo6Y3Jl
YXRlKERhdGEmJiBkYXRhKQorUmVmPEdyYWRpZW50PiBHcmFkaWVudDo6Y3JlYXRlKERhdGEmJiBk
YXRhLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdyYWRpZW50KFdURk1vdmUoZGF0YSkp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHcmFkaWVudChXVEZNb3ZlKGRhdGEpLCByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKTsKIH0KIAotR3JhZGllbnQ6OkdyYWRpZW50KERhdGEm
JiBkYXRhKQotICAgIDogbV9kYXRhKFdURk1vdmUoZGF0YSkpCitHcmFkaWVudDo6R3JhZGllbnQo
RGF0YSYmIGRhdGEsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCisgICAgOiBSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCisgICAgLCBtX2RhdGEoV1RGTW92ZShkYXRhKSkKIHsKIH0KIAotR3JhZGllbnQ6
On5HcmFkaWVudCgpID0gZGVmYXVsdDsKLQogdm9pZCBHcmFkaWVudDo6YWRqdXN0UGFyYW1ldGVy
c0ZvclRpbGVkRHJhd2luZyhGbG9hdFNpemUmIHNpemUsIEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nKQogewogICAgIGlmIChzcmNSZWN0LmlzRW1wdHkoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCmluZGV4IDgxZTljZTFi
OGU5MWE1MjUyMGMzNzE3OTc4ZTdiZDRhMzdhNmU5ZGMuLjJjZDk2ZjJmOGFhZWRmNTk1ODFjZTQ4
MjdhNWU2YmE5NTgzNzg2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVk
ZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKKyNpbmNsdWRlICJS
ZW5kZXJpbmdSZXNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCkBAIC02MSwxNCArNjIsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogCi1jbGFzcyBHcmFkaWVu
dCA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYWRpZW50PiB7CitjbGFzcyBHcmFkaWVudCA6IHB1Ymxp
YyBSZW5kZXJpbmdSZXNvdXJjZSB7CiBwdWJsaWM6CiAgICAgc3RydWN0IENvbG9yU3RvcCB7CiAg
ICAgICAgIGZsb2F0IG9mZnNldCB7IDAgfTsKICAgICAgICAgQ29sb3IgY29sb3I7Ci0KLSAgICAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8Q29s
b3JTdG9wPiBkZWNvZGUoRGVjb2RlciYpOwogICAgIH07CiAKICAgICB1c2luZyBDb2xvclN0b3BW
ZWN0b3IgPSBWZWN0b3I8Q29sb3JTdG9wLCAyPjsKQEAgLTc2LDkgKzc0LDYgQEAgcHVibGljOgog
ICAgIHN0cnVjdCBMaW5lYXJEYXRhIHsKICAgICAgICAgRmxvYXRQb2ludCBwb2ludDA7CiAgICAg
ICAgIEZsb2F0UG9pbnQgcG9pbnQxOwotCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPExpbmVhckRhdGE+IGRlY29kZShEZWNvZGVyJik7
CiAgICAgfTsKIAogICAgIHN0cnVjdCBSYWRpYWxEYXRhIHsKQEAgLTg3LDI0ICs4MiwxNiBAQCBw
dWJsaWM6CiAgICAgICAgIGZsb2F0IHN0YXJ0UmFkaXVzOwogICAgICAgICBmbG9hdCBlbmRSYWRp
dXM7CiAgICAgICAgIGZsb2F0IGFzcGVjdFJhdGlvOyAvLyBGb3IgZWxsaXB0aWNhbCBncmFkaWVu
dCwgd2lkdGggLyBoZWlnaHQuCi0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmFkaWFsRGF0YT4gZGVjb2RlKERlY29kZXImKTsKICAg
ICB9OwogCiAgICAgc3RydWN0IENvbmljRGF0YSB7CiAgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQw
OwogICAgICAgICBmbG9hdCBhbmdsZVJhZGlhbnM7Ci0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8Q29uaWNEYXRhPiBkZWNvZGUoRGVj
b2RlciYpOwogICAgIH07CiAKICAgICB1c2luZyBEYXRhID0gVmFyaWFudDxMaW5lYXJEYXRhLCBS
YWRpYWxEYXRhLCBDb25pY0RhdGE+OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxH
cmFkaWVudD4gY3JlYXRlKERhdGEmJik7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB+R3JhZGllbnQo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEdyYWRpZW50PiBjcmVhdGUoRGF0YSYm
LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI6OmdlbmVyYXRlKCkpOwogCiAgICAgYm9vbCBpc1plcm9TaXplKCkgY29uc3Q7CiAKQEAgLTEx
NCw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTb3J0ZWRD
b2xvclN0b3BzKENvbG9yU3RvcFZlY3RvciYmKTsKIAogICAgIGNvbnN0IENvbG9yU3RvcFZlY3Rv
ciYgc3RvcHMoKSBjb25zdCB7IHJldHVybiBtX3N0b3BzOyB9CisgICAgYm9vbCBzdG9wc1NvcnRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcHNTb3J0ZWQ7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U3ByZWFkTWV0aG9kKEdyYWRpZW50U3ByZWFkTWV0aG9kKTsKICAgICBHcmFkaWVu
dFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX3NwcmVhZE1ldGhv
ZDsgfQpAQCAtMTM5LDExICsxMjcsOCBAQCBwdWJsaWM6CiAgICAgSUQyRDFCcnVzaCogY3JlYXRl
QnJ1c2goSUQyRDFSZW5kZXJUYXJnZXQqKTsKICNlbmRpZgogCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8R3JhZGllbnQ+PiBkZWNvZGUoRGVj
b2RlciYpOwotCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEdyYWRpZW50KERhdGEmJik7CisgICAg
ZXhwbGljaXQgR3JhZGllbnQoRGF0YSYmLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
CiAgICAgdm9pZCBzb3J0U3RvcHMoKSBjb25zdDsKICAgICB2b2lkIHN0b3BzQ2hhbmdlZCgpOwpA
QCAtMTY4LDE1MiArMTUzLDYgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotdGVtcGxhdGU8dHlw
ZW5hbWUgRW5jb2Rlcj4gdm9pZCBHcmFkaWVudDo6Q29sb3JTdG9wOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IG9mZnNldDsKLSAgICBlbmNvZGVyIDw8
IGNvbG9yOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBPcHRpb25hbDxHcmFkaWVu
dDo6Q29sb3JTdG9wPiBHcmFkaWVudDo6Q29sb3JTdG9wOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBPcHRpb25hbDxmbG9hdD4gb2Zmc2V0OwotICAgIGRlY29kZXIgPj4gb2Zmc2V0
OwotICAgIGlmICghb2Zmc2V0KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAg
T3B0aW9uYWw8Q29sb3I+IGNvbG9yOwotICAgIGRlY29kZXIgPj4gY29sb3I7Ci0gICAgaWYgKCFj
b2xvcikKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyAqb2Zm
c2V0LCAqY29sb3IgfX07Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgR3Jh
ZGllbnQ6OkxpbmVhckRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAg
IGVuY29kZXIgPDwgcG9pbnQwOwotICAgIGVuY29kZXIgPDwgcG9pbnQxOwotfQotCi10ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPiBPcHRpb25hbDxHcmFkaWVudDo6TGluZWFyRGF0YT4gR3JhZGll
bnQ6OkxpbmVhckRhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFs
PEZsb2F0UG9pbnQ+IHBvaW50MDsKLSAgICBkZWNvZGVyID4+IHBvaW50MDsKLSAgICBpZiAoIXBv
aW50MCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPEZsb2F0
UG9pbnQ+IHBvaW50MTsKLSAgICBkZWNvZGVyID4+IHBvaW50MTsKLSAgICBpZiAoIXBvaW50MSkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyAqcG9pbnQwLCAq
cG9pbnQxIH19OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIEdyYWRpZW50
OjpSYWRpYWxEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNv
ZGVyIDw8IHBvaW50MDsKLSAgICBlbmNvZGVyIDw8IHBvaW50MTsKLSAgICBlbmNvZGVyIDw8IHN0
YXJ0UmFkaXVzOwotICAgIGVuY29kZXIgPDwgZW5kUmFkaXVzOwotICAgIGVuY29kZXIgPDwgYXNw
ZWN0UmF0aW87Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IE9wdGlvbmFsPEdyYWRp
ZW50OjpSYWRpYWxEYXRhPiBHcmFkaWVudDo6UmFkaWFsRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCi17Ci0gICAgT3B0aW9uYWw8RmxvYXRQb2ludD4gcG9pbnQwOwotICAgIGRlY29kZXIg
Pj4gcG9pbnQwOwotICAgIGlmICghcG9pbnQwKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgT3B0aW9uYWw8RmxvYXRQb2ludD4gcG9pbnQxOwotICAgIGRlY29kZXIgPj4gcG9p
bnQxOwotICAgIGlmICghcG9pbnQxKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0g
ICAgT3B0aW9uYWw8ZmxvYXQ+IHN0YXJ0UmFkaXVzOwotICAgIGRlY29kZXIgPj4gc3RhcnRSYWRp
dXM7Ci0gICAgaWYgKCFzdGFydFJhZGl1cykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
LQotICAgIE9wdGlvbmFsPGZsb2F0PiBlbmRSYWRpdXM7Ci0gICAgZGVjb2RlciA+PiBlbmRSYWRp
dXM7Ci0gICAgaWYgKCFlbmRSYWRpdXMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0K
LSAgICBPcHRpb25hbDxmbG9hdD4gYXNwZWN0UmF0aW87Ci0gICAgZGVjb2RlciA+PiBhc3BlY3RS
YXRpbzsKLSAgICBpZiAoIWFzcGVjdFJhdGlvKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgcmV0dXJuIHt7ICpwb2ludDAsICpwb2ludDEsICpzdGFydFJhZGl1cywgKmVuZFJh
ZGl1cywgKmFzcGVjdFJhdGlvIH19OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIEdyYWRpZW50OjpDb25pY0RhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAot
ewotICAgIGVuY29kZXIgPDwgcG9pbnQwOwotICAgIGVuY29kZXIgPDwgYW5nbGVSYWRpYW5zOwot
fQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBPcHRpb25hbDxHcmFkaWVudDo6Q29uaWNE
YXRhPiBHcmFkaWVudDo6Q29uaWNEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAg
ICBPcHRpb25hbDxGbG9hdFBvaW50PiBwb2ludDA7Ci0gICAgZGVjb2RlciA+PiBwb2ludDA7Ci0g
ICAgaWYgKCFwb2ludDApCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBPcHRp
b25hbDxmbG9hdD4gYW5nbGVSYWRpYW5zOwotICAgIGRlY29kZXIgPj4gYW5nbGVSYWRpYW5zOwot
ICAgIGlmICghYW5nbGVSYWRpYW5zKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0g
ICAgcmV0dXJuIHt7ICpwb2ludDAsICphbmdsZVJhZGlhbnMgfX07Ci19Ci0KLXRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+IHZvaWQgR3JhZGllbnQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAotewotICAgIGVuY29kZXIgPDwgbV9kYXRhOwotICAgIGVuY29kZXIgPDwgbV9zdG9wczsK
LSAgICBlbmNvZGVyIDw8IG1fc3RvcHNTb3J0ZWQ7Ci0gICAgZW5jb2RlciA8PCBtX3NwcmVhZE1l
dGhvZDsKLSAgICBlbmNvZGVyIDw8IG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uOwotfQot
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBPcHRpb25hbDxSZWY8R3JhZGllbnQ+PiBHcmFk
aWVudDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8RGF0YT4gZGF0
YTsKLSAgICBkZWNvZGVyID4+IGRhdGE7Ci0gICAgaWYgKCFkYXRhKQotICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRlKFdURk1v
dmUoKmRhdGEpKTsKLQotICAgIE9wdGlvbmFsPENvbG9yU3RvcFZlY3Rvcj4gc3RvcHM7Ci0gICAg
ZGVjb2RlciA+PiBzdG9wczsKLSAgICBpZiAoIXN0b3BzKQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotICAgIE9wdGlvbmFsPGJvb2w+IHN0b3BzU29ydGVkOwotICAgIGRlY29kZXIgPj4g
c3RvcHNTb3J0ZWQ7Ci0gICAgaWYgKCFzdG9wc1NvcnRlZC5oYXNWYWx1ZSgpKQotICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGlmICgqc3RvcHNTb3J0ZWQpCi0gICAgICAgIGdyYWRp
ZW50LT5zZXRTb3J0ZWRDb2xvclN0b3BzKFdURk1vdmUoKnN0b3BzKSk7Ci0gICAgZWxzZSB7Ci0g
ICAgICAgIGZvciAoYXV0byYgc3RvcCA6ICpzdG9wcykKLSAgICAgICAgICAgIGdyYWRpZW50LT5h
ZGRDb2xvclN0b3AoV1RGTW92ZShzdG9wKSk7Ci0gICAgfQotCi0gICAgR3JhZGllbnRTcHJlYWRN
ZXRob2Qgc3ByZWFkTWV0aG9kOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3ByZWFkTWV0aG9k
KSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBncmFkaWVudC0+c2V0U3ByZWFk
TWV0aG9kKHNwcmVhZE1ldGhvZCk7Ci0KLSAgICBPcHRpb25hbDxBZmZpbmVUcmFuc2Zvcm0+IGdy
YWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbjsKLSAgICBkZWNvZGVyID4+IGdyYWRpZW50U3BhY2VU
cmFuc2Zvcm1hdGlvbjsKLSAgICBpZiAoIWdyYWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbikKLSAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBncmFkaWVudC0+c2V0R3JhZGllbnRTcGFj
ZVRyYW5zZm9ybShXVEZNb3ZlKCpncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24pKTsKLQotICAg
IHJldHVybiBncmFkaWVudDsKLX0KK3VzaW5nIEdyYWRpZW50SGFzaE1hcCA9IEhhc2hNYXA8UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBSZWY8R3JhZGllbnQ+PjsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAKaW5kZXggNzg0NDc3YTJlZmFhNjIzOTFhNmY4MGMwZDk0MWQyODg0
ODZhNTNmMy4uMzY5YTk5YmRhODY5NTY1M2FhMmJiNDJlNjkzODYzNzE5NjY5ZmUzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCkBAIC03NywyNiArNzcsNiBAQCBwcml2YXRlOgogICAgIGlmIChtX2NoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpmbGFnKSAmJiAobV9zdGF0ZS5wcm9wZXJ0eSAh
PSBzdGF0ZS5wcm9wZXJ0eSkpIFwKICAgICAgICAgY2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpmbGFnKTsKIAotR3JhcGhpY3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4
dFN0YXRlKCkKLSAgICA6IHNob3VsZEFudGlhbGlhcyh0cnVlKQotICAgICwgc2hvdWxkU21vb3Ro
Rm9udHModHJ1ZSkKLSAgICAsIHNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyh0cnVlKQotICAg
ICwgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoZmFsc2UpCi0jaWYgVVNFKENHKQotICAgIC8vIENv
cmUgR3JhcGhpY3MgaW5jb3JyZWN0bHkgcmVuZGVycyBzaGFkb3dzIHdpdGggcmFkaXVzID4gOHB4
ICg8cmRhcjovL3Byb2JsZW0vODEwMzQ0Mj4pLAotICAgIC8vIGJ1dCB3ZSBuZWVkIHRvIHByZXNl
cnZlIHRoaXMgYnVnZ3kgYmVoYXZpb3IgZm9yIGNhbnZhcyBhbmQgLXdlYmtpdC1ib3gtc2hhZG93
LgotICAgICwgc2hhZG93c1VzZUxlZ2FjeVJhZGl1cyhmYWxzZSkKLSNlbmRpZgotICAgICwgZHJh
d0x1bWluYW5jZU1hc2soZmFsc2UpCi17Ci19Ci0KLUdyYXBoaWNzQ29udGV4dFN0YXRlOjp+R3Jh
cGhpY3NDb250ZXh0U3RhdGUoKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3Jh
cGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7
Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUoR3JhcGhpY3NDb250
ZXh0U3RhdGUmJikgPSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3RhdGUmIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpvcGVyYXRvcj0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1
bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZSYgR3JhcGhpY3NDb250ZXh0U3RhdGU6Om9wZXJhdG9y
PShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKSA9IGRlZmF1bHQ7Ci0KIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlOjpjaGFuZ2Vz
RnJvbVN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSkgY29uc3QKIHsKICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFnczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgK
aW5kZXggMjVjNjY0NGYxMjk3ZmM0N2MzODcyZWI1ZDU4ZWIyZjBkZTQxYjU1Ni4uMTlhZDExYTA3
MzZiZmQ3Mzk1YzgxZDljNzhmNWM3NmI3ODFlNzA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJEYXNoQXJyYXkuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NUeXBlcy5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlv
bi5oIgpAQCAtODcsNyArODgsNiBAQCBjbGFzcyBHbHlwaEJ1ZmZlcjsKIAogY2xhc3MgQWZmaW5l
VHJhbnNmb3JtOwogY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEdyYWRpZW50OwogY2xh
c3MgR3JhcGhpY3NDb250ZXh0SW1wbDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJp
dmF0ZTsKIGNsYXNzIEltYWdlQnVmZmVyOwpAQCAtMTU4LDE2ICsxNTgsNyBAQCBPcHRpb25hbDxE
b2N1bWVudE1hcmtlckxpbmVTdHlsZT4gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZAogICAgIHJldHVybiB7eyAqbW9kZSwgKnNob3VsZFVzZURhcmtBcHBlYXJh
bmNlIH19OwogfQogCi1zdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewotICAgIFdFQkNPUkVf
RVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgfkdyYXBo
aWNzQ29udGV4dFN0YXRlKCk7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZShjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0
YXRlKEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOwotCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGUm
IG9wZXJhdG9yPShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlJiBvcGVyYXRvcj0oR3JhcGhpY3NDb250ZXh0U3RhdGUm
Jik7Ci0KK3N0cnVjdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSB7CiAgICAgZW51bSBDaGFu
Z2UgOiB1aW50MzJfdCB7CiAgICAgICAgIFN0cm9rZUdyYWRpZW50Q2hhbmdlICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMCwKICAgICAgICAgU3Ryb2tlUGF0dGVybkNoYW5nZSAgICAgICAgICAg
ICAgICAgICAgID0gMSA8PCAxLApAQCAtMTkzLDEzICsxODQsMjIgQEAgc3RydWN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlIHsKICAgICAgICAgVXNlRGFya0FwcGVhcmFuY2VDaGFuZ2UgICAgICAgICAg
ICAgICAgID0gMSA8PCAyMCwKICNlbmRpZgogICAgIH07CisKICAgICB1c2luZyBTdGF0ZUNoYW5n
ZUZsYWdzID0gT3B0aW9uU2V0PENoYW5nZT47CiAKLSAgICBSZWZQdHI8R3JhZGllbnQ+IHN0cm9r
ZUdyYWRpZW50OwotICAgIFJlZlB0cjxQYXR0ZXJuPiBzdHJva2VQYXR0ZXJuOwotICAgIAotICAg
IFJlZlB0cjxHcmFkaWVudD4gZmlsbEdyYWRpZW50OwotICAgIFJlZlB0cjxQYXR0ZXJuPiBmaWxs
UGF0dGVybjsKKyAgICBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSgpCisgICAgICAgIDogc2hv
dWxkQW50aWFsaWFzKHRydWUpCisgICAgICAgICwgc2hvdWxkU21vb3RoRm9udHModHJ1ZSkKKyAg
ICAgICAgLCBzaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHModHJ1ZSkKKyAgICAgICAgLCBzaGFk
b3dzSWdub3JlVHJhbnNmb3JtcyhmYWxzZSkKKyNpZiBVU0UoQ0cpCisgICAgICAgIC8vIENvcmUg
R3JhcGhpY3MgaW5jb3JyZWN0bHkgcmVuZGVycyBzaGFkb3dzIHdpdGggcmFkaXVzID4gOHB4ICg8
cmRhcjovL3Byb2JsZW0vODEwMzQ0Mj4pLAorICAgICAgICAvLyBidXQgd2UgbmVlZCB0byBwcmVz
ZXJ2ZSB0aGlzIGJ1Z2d5IGJlaGF2aW9yIGZvciBjYW52YXMgYW5kIC13ZWJraXQtYm94LXNoYWRv
dy4KKyAgICAgICAgLCBzaGFkb3dzVXNlTGVnYWN5UmFkaXVzKGZhbHNlKQorI2VuZGlmCisgICAg
ICAgICwgZHJhd0x1bWluYW5jZU1hc2soZmFsc2UpCisgICAgeworICAgIH0KIAogICAgIEZsb2F0
U2l6ZSBzaGFkb3dPZmZzZXQ7CiAKQEAgLTIwOCwxMCArMjA4LDYgQEAgc3RydWN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlIHsKIAogICAgIFRleHREcmF3aW5nTW9kZUZsYWdzIHRleHREcmF3aW5nTW9k
ZSB7IFRleHREcmF3aW5nTW9kZTo6RmlsbCB9OwogCi0gICAgQ29sb3Igc3Ryb2tlQ29sb3IgeyBD
b2xvcjo6YmxhY2sgfTsKLSAgICBDb2xvciBmaWxsQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKLSAg
ICBDb2xvciBzaGFkb3dDb2xvcjsKLQogICAgIFN0cm9rZVN0eWxlIHN0cm9rZVN0eWxlIHsgU29s
aWRTdHJva2UgfTsKICAgICBXaW5kUnVsZSBmaWxsUnVsZSB7IFdpbmRSdWxlOjpOb25aZXJvIH07
CiAKQEAgLTIzMyw2ICsyMjksMTggQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKICNl
bmRpZgogfTsKIAorc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIDogcHVibGljIEdyYXBoaWNz
Q29udGV4dElubGluZVN0YXRlIHsKKyAgICBSZWZQdHI8R3JhZGllbnQ+IHN0cm9rZUdyYWRpZW50
OworICAgIFJlZlB0cjxQYXR0ZXJuPiBzdHJva2VQYXR0ZXJuOworCisgICAgUmVmUHRyPEdyYWRp
ZW50PiBmaWxsR3JhZGllbnQ7CisgICAgUmVmUHRyPFBhdHRlcm4+IGZpbGxQYXR0ZXJuOworCisg
ICAgQ29sb3Igc3Ryb2tlQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKKyAgICBDb2xvciBmaWxsQ29s
b3IgeyBDb2xvcjo6YmxhY2sgfTsKKyAgICBDb2xvciBzaGFkb3dDb2xvcjsKK307CisKIHN0cnVj
dCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVD
aGFuZ2UoKSA9IGRlZmF1bHQ7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UoY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVD
aGFuZ2VGbGFncyBmbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCmluZGV4IGJhODQ2MjVhNTQ3MzMzNDAwYWU4YTlkNjJkODI4OGYzMGM3ODJl
MzAuLjRmYWFiN2U5YjJmYzNjMmM5MDRiYjk0NTAzNWE0YWRhMzVlYzgwMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMzAsNyArMzAs
NyBAQAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
SW1hZ2VCdWZmZXJCYWNrZW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nTW9kZS5oIgotI2luY2x1
ZGUgIlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbmRlcmluZ1Jl
c291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIERyYXdpbmdDb250ZXh0Owogc3RydWN0
IEl0ZW1CdWZmZXJIYW5kbGU7CiB9CiAKLWNsYXNzIEltYWdlQnVmZmVyIDogcHVibGljIFJlZkNv
dW50ZWQ8SW1hZ2VCdWZmZXI+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SW1hZ2VCdWZmZXI+IHsK
K2NsYXNzIEltYWdlQnVmZmVyIDogcHVibGljIFJlbmRlcmluZ1Jlc291cmNlIHsKIHB1YmxpYzoK
ICAgICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUu
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5k
ZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlID0gQ29s
b3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQgPSBQaXhlbEZvcm1hdDo6QkdSQTgsIGNvbnN0IEhv
c3RXaW5kb3cqID0gbnVsbHB0cik7CkBAIC03MSw3ICs3MSw2IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBjYW5NYXBCYWNraW5nU3RvcmUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4geyB9OyB9CiAKICAgICB2aXJ0dWFsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb250ZXh0KCkgPSAwOwpAQCAt
MTM2LDcgKzEzNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtTGF5ZXIoKSBjb25zdCA9IDA7CiAgICAgCiBwcm90ZWN0ZWQ6Ci0gICAgSW1hZ2VCdWZmZXIo
KSA9IGRlZmF1bHQ7CisgICAgdXNpbmcgUmVuZGVyaW5nUmVzb3VyY2U6OlJlbmRlcmluZ1Jlc291
cmNlOwogCiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IHNpbmtJbnRvTmF0aXZlSW1h
Z2UoKSA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IHNpbmtJbnRvSW1hZ2UoUHJlc2Vy
dmVSZXNvbHV0aW9uID0gUHJlc2VydmVSZXNvbHV0aW9uOjpObykgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuY3BwCmluZGV4IDBhMzE1NTg1
MDM0OTVlMmRlOTM3ZTcyNjkzMWVjNzg4MGNmNjlhMjcuLmNmMDU5ZjYzMmVlNmEwNTIwNjVlN2Q3
NDQwOTU5OWQxYTIxMjcwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL05hdGl2ZUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9OYXRpdmVJbWFnZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBOYXRp
dmVJbWFnZTo6Y3JlYXRlKFBsYXRmb3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdlLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAtMzgs
MTUgKzM2LDkgQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBOYXRpdmVJbWFnZTo6Y3JlYXRlKFBsYXRm
b3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdlLCBSZW5kZXIKIH0KIAogTmF0aXZlSW1hZ2U6Ok5h
dGl2ZUltYWdlKFBsYXRmb3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdlLCBSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIDogbV9wbGF0
Zm9ybUltYWdlKFdURk1vdmUocGxhdGZvcm1JbWFnZSkpCi0gICAgLCBtX3JlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCi17Ci19Ci0KLU5hdGl2
ZUltYWdlOjp+TmF0aXZlSW1hZ2UoKQorICAgIDogUmVuZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9wbGF0Zm9ybUltYWdlKFdURk1vdmUocGxhdGZv
cm1JbWFnZSkpCiB7Ci0gICAgZm9yIChhdXRvIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCi0gICAg
ICAgIG9ic2VydmVyLT5yZWxlYXNlTmF0aXZlSW1hZ2UobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAppbmRleCA5NDViOGRlOThkNGI5ODhjZWQ5
YTI2NWQxNmU1OTQwMTMxZDEzODBjLi4xNzdhOTg1NTM3Zjg2OWJjNTJjYTJhZmQ5MTNkYTY3MDg0
N2RjMWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRp
dmVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUlt
YWdlLmgKQEAgLTMwLDI5ICszMCwxNiBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAi
SW50U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtSW1hZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJpbmdSZXNvdXJjZS5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTmF0aXZlSW1hZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxO
YXRpdmVJbWFnZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOYXRpdmVJbWFnZT4geworY2xhc3Mg
TmF0aXZlSW1hZ2UgOiBwdWJsaWMgUmVuZGVyaW5nUmVzb3VyY2UgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGNsYXNzIE9ic2VydmVyIHsKLSAgICBwdWJsaWM6
Ci0gICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OwotICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgPSAw
OwotICAgIHByb3RlY3RlZDoKLSAgICAgICAgT2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7Ci0gICAgfTsK
LQogICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNyZWF0ZShQ
bGF0Zm9ybUltYWdlUHRyJiYsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA9IFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB+
TmF0aXZlSW1hZ2UoKTsKLQogICAgIGNvbnN0IFBsYXRmb3JtSW1hZ2VQdHImIHBsYXRmb3JtSW1h
Z2UoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtSW1hZ2U7IH0KICAgICBSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7IH0KIApAQCAtNjAsMTggKzQ3LDEyIEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0FscGhhKCkgY29uc3Q7CiAgICAgQ29sb3Igc2luZ2xlUGl4
ZWxTb2xpZENvbG9yKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJiBv
YnNlcnZlcikgeyBtX29ic2VydmVycy5hZGQoJm9ic2VydmVyKTsgfQotICAgIHZvaWQgcmVtb3Zl
T2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2
ZXIpOyB9Ci0gICAgCiAgICAgdm9pZCBjbGVhclN1YmltYWdlcygpOwogCiBwcml2YXRlOgotICAg
IE5hdGl2ZUltYWdlKFBsYXRmb3JtSW1hZ2VQdHImJik7CiAgICAgTmF0aXZlSW1hZ2UoUGxhdGZv
cm1JbWFnZVB0ciYmLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgUGxhdGZv
cm1JbWFnZVB0ciBtX3BsYXRmb3JtSW1hZ2U7Ci0gICAgSGFzaFNldDxPYnNlcnZlcio+IG1fb2Jz
ZXJ2ZXJzOwotICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcjsKIH07CiAKIHVzaW5nIE5hdGl2ZUltYWdlSGFzaE1hcCA9IEhhc2hNYXA8
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBSZWY8TmF0aXZlSW1hZ2U+PjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKaW5kZXggNzk2YTA3YzE4NmI2
MmZmNGU2YjZlYTI2MTA3ZmY5ZmM0YzQzOGU3MS4uNzA4MDA3Yzk4YWM0NTJiNmQ0YzY1OTI0NzM4
MjkxOWZhZjM1Mjc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0
dGVybi5jcHAKQEAgLTMxLDIwICszMSwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJl
ZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVhdGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwgYm9vbCBy
ZXBlYXRYLCBib29sIHJlcGVhdFkpCitSZWY8UGF0dGVybj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxJ
bWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZLCBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFBhdHRlcm4oV1RGTW92ZSh0aWxlSW1hZ2UpLCByZXBlYXRYLCBy
ZXBlYXRZKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF0dGVybihXVEZNb3ZlKHRpbGVJ
bWFnZSksIHJlcGVhdFgsIHJlcGVhdFksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpOwog
fQogCi1QYXR0ZXJuOjpQYXR0ZXJuKFJlZjxJbWFnZT4mJiBpbWFnZSwgYm9vbCByZXBlYXRYLCBi
b29sIHJlcGVhdFkpCi0gICAgOiBtX3RpbGVJbWFnZShXVEZNb3ZlKGltYWdlKSkKK1BhdHRlcm46
OlBhdHRlcm4oUmVmPEltYWdlPiYmIGltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
KyAgICA6IFJlbmRlcmluZ1Jlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAg
ICAsIG1fdGlsZUltYWdlKFdURk1vdmUoaW1hZ2UpKQogICAgICwgbV9yZXBlYXRYKHJlcGVhdFgp
CiAgICAgLCBtX3JlcGVhdFkocmVwZWF0WSkKIHsKIH0KIAotUGF0dGVybjo6flBhdHRlcm4oKSA9
IGRlZmF1bHQ7Ci0KIHZvaWQgUGF0dGVybjo6c2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pCiB7CiAgICAgbV9w
YXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbiA9IHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCmluZGV4IGFiY2Q0NGZh
YmM3YTA1MDA2ZjFlMzU0Y2VkZjVmMTdjMThlNDNjMzMuLjJlYTM4NTdiZWYxOTUzOGQwNGFmYTFj
Njc0Y2FhYjEwN2EyZTA3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BhdHRlcm4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
YXR0ZXJuLmgKQEAgLTU3LDEwICs1Nyw5IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNz
IEltYWdlOwogY2xhc3MgSW1hZ2VIYW5kbGU7CiAKLWNsYXNzIFBhdHRlcm4gZmluYWwgOiBwdWJs
aWMgUmVmQ291bnRlZDxQYXR0ZXJuPiB7CitjbGFzcyBQYXR0ZXJuIGZpbmFsIDogcHVibGljIFJl
bmRlcmluZ1Jlc291cmNlIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
PFBhdHRlcm4+IGNyZWF0ZShSZWY8SW1hZ2U+JiYgdGlsZUltYWdlLCBib29sIHJlcGVhdFgsIGJv
b2wgcmVwZWF0WSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgflBhdHRlcm4oKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShSZWY8SW1hZ2U+JiYgdGlsZUltYWdl
LCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
ID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKTsKIAogICAgIEltYWdl
JiB0aWxlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX3RpbGVJbWFnZS5nZXQoKTsgfQogCkBAIC03
NSwxMSArNzQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXBlYXRYKCkgY29uc3QgeyByZXR1cm4g
bV9yZXBlYXRYOyB9CiAgICAgYm9vbCByZXBlYXRZKCkgY29uc3QgeyByZXR1cm4gbV9yZXBlYXRZ
OyB9CiAKLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJlZjxQ
YXR0ZXJuPj4gZGVjb2RlKERlY29kZXImKTsKLQogcHJpdmF0ZToKLSAgICBQYXR0ZXJuKFJlZjxJ
bWFnZT4mJiwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpOworICAgIFBhdHRlcm4oUmVmPElt
YWdlPiYmLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKIAogICAgIFJlZjxJbWFnZT4gbV90aWxlSW1hZ2U7CiAgICAgQWZmaW5lVHJhbnNm
b3JtIG1fcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CkBAIC04Nyw0NCArODMsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9yZXBlYXRZOwogfTsKIAotdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
LXZvaWQgUGF0dGVybjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgSW1h
Z2VIYW5kbGUgaW1hZ2VIYW5kbGU7Ci0gICAgaW1hZ2VIYW5kbGUuaW1hZ2UgPSBtX3RpbGVJbWFn
ZS5wdHIoKTsKLSAgICBlbmNvZGVyIDw8IGltYWdlSGFuZGxlOwotICAgIGVuY29kZXIgPDwgbV9w
YXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKLSAgICBlbmNvZGVyIDw8IG1fcmVwZWF0WDsKLSAg
ICBlbmNvZGVyIDw8IG1fcmVwZWF0WTsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLU9w
dGlvbmFsPFJlZjxQYXR0ZXJuPj4gUGF0dGVybjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17
Ci0gICAgT3B0aW9uYWw8SW1hZ2VIYW5kbGU+IGltYWdlSGFuZGxlOwotICAgIGRlY29kZXIgPj4g
aW1hZ2VIYW5kbGU7Ci0gICAgaWYgKCFpbWFnZUhhbmRsZSkKLSAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gcGF0dGVyblNwYWNlVHJh
bnNmb3JtYXRpb247Ci0gICAgZGVjb2RlciA+PiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsK
LSAgICBpZiAoIXBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WDsKLSAgICBkZWNvZGVyID4+
IHJlcGVhdFg7Ci0gICAgaWYgKCFyZXBlYXRYKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WTsKLSAgICBkZWNvZGVyID4+IHJlcGVhdFk7
Ci0gICAgaWYgKCFyZXBlYXRZKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAg
YXV0byBwYXR0ZXJuID0gUGF0dGVybjo6Y3JlYXRlKGltYWdlSGFuZGxlLT5pbWFnZS5yZWxlYXNl
Tm9uTnVsbCgpLCAqcmVwZWF0WCwgKnJlcGVhdFkpOwotICAgIHBhdHRlcm4tPnNldFBhdHRlcm5T
cGFjZVRyYW5zZm9ybSgqcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOwotICAgIHJldHVybiBw
YXR0ZXJuOwotfQordXNpbmcgUGF0dGVybkhhc2hNYXAgPSBIYXNoTWFwPFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciwgUmVmPFBhdHRlcm4+PjsKIAogfSAvL25hbWVzcGFjZQotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdSZXNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MmE0YjBkZjNmN2JlNTdiN2QwODdlZGQ4NzhhNmNlZDk4MTRmODkzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5n
UmVzb3VyY2UuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJpbmdSZXNvdXJj
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbmRlcmluZ1Jlc291cmNlPiwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFJlbmRlcmluZ1Jlc291cmNlPiB7CitwdWJsaWM6CisgICAgY2xhc3MgT2JzZXJ2ZXIg
eworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKSA9IDA7CisgICAgcHJvdGVjdGVkOgorICAgICAgICBPYnNlcnZlcigp
ID0gZGVmYXVsdDsKKyAgICB9OworCisgICAgdmlydHVhbCB+UmVuZGVyaW5nUmVzb3VyY2UoKQor
ICAgIHsKKyAgICAgICAgZm9yIChhdXRvIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAg
ICAgICBvYnNlcnZlci0+cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKG1fcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB9CisKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI7IH0KKworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9i
c2VydmVyKSB7IG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOyB9CisgICAgdm9pZCByZW1vdmVP
YnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV9vYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZl
cik7IH0KKworcHJvdGVjdGVkOgorICAgIFJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgICAgIDogbV9y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQor
ICAgIHsKKyAgICB9CisKKyAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CisgICAg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAK
aW5kZXggYTk0NzlmMjZjNzU3MjVjZTc3ZWFkZjE1OWIwMmU0MjhjODNjYmZkNS4uNDYxZmRiM2Mz
MDljMDAyNGFkZWNjYzhjNjA0YjY3ZjBkZDNmNzkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3Qu
Y3BwCkBAIC01Myw2ICs1Myw5IEBAIHZvaWQgRGlzcGxheUxpc3Q6OmR1bXAoKSBjb25zdAogRGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0KERpc3BsYXlMaXN0JiYgb3RoZXIpCiAgICAgOiBtX2ltYWdl
QnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faW1hZ2VCdWZmZXJzLCB7IH0pKQogICAgICwg
bV9uYXRpdmVJbWFnZXMoc3RkOjpleGNoYW5nZShvdGhlci5tX25hdGl2ZUltYWdlcywgeyB9KSkK
KyAgICAsIG1fZm9udHMoc3RkOjpleGNoYW5nZShvdGhlci5tX2ZvbnRzLCB7IH0pKQorICAgICwg
bV9wYXR0ZXJucyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcGF0dGVybnMsIHsgfSkpCisgICAgLCBt
X2dyYWRpZW50cyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZ3JhZGllbnRzLCB7IH0pKQogICAgICwg
bV9pdGVtcyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faXRlbXMsIG51bGxwdHIpKQogICAgICwgbV9k
cmF3aW5nSXRlbUV4dGVudHMoc3RkOjpleGNoYW5nZShvdGhlci5tX2RyYXdpbmdJdGVtRXh0ZW50
cywgeyB9KSkKIHsKQEAgLTcwLDYgKzczLDkgQEAgRGlzcGxheUxpc3QmIERpc3BsYXlMaXN0Ojpv
cGVyYXRvcj0oRGlzcGxheUxpc3QmJiBvdGhlcikKIHsKICAgICBtX2ltYWdlQnVmZmVycyA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pbWFnZUJ1ZmZlcnMsIHsgfSk7CiAgICAgbV9uYXRpdmVJbWFn
ZXMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fbmF0aXZlSW1hZ2VzLCB7IH0pOworICAgIG1fZm9u
dHMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZm9udHMsIHsgfSk7CisgICAgbV9wYXR0ZXJucyA9
IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9wYXR0ZXJucywgeyB9KTsKKyAgICBtX2dyYWRpZW50cyA9
IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9ncmFkaWVudHMsIHsgfSk7CiAgICAgbV9pdGVtcyA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtcywgbnVsbHB0cik7CiAgICAgbV9kcmF3aW5nSXRlbUV4
dGVudHMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZHJhd2luZ0l0ZW1FeHRlbnRzLCB7IH0pOwog
ICAgIHJldHVybiAqdGhpczsKQEAgLTgyLDYgKzg4LDkgQEAgdm9pZCBEaXNwbGF5TGlzdDo6Y2xl
YXIoKQogICAgIG1fZHJhd2luZ0l0ZW1FeHRlbnRzLmNsZWFyKCk7CiAgICAgbV9pbWFnZUJ1ZmZl
cnMuY2xlYXIoKTsKICAgICBtX25hdGl2ZUltYWdlcy5jbGVhcigpOworICAgIG1fZm9udHMuY2xl
YXIoKTsKKyAgICBtX3BhdHRlcm5zLmNsZWFyKCk7CisgICAgbV9ncmFkaWVudHMuY2xlYXIoKTsK
IH0KIAogYm9vbCBEaXNwbGF5TGlzdDo6c2hvdWxkRHVtcEZvckZsYWdzKEFzVGV4dEZsYWdzIGZs
YWdzLCBJdGVtSGFuZGxlIGl0ZW0pCkBAIC05MSwxMCArMTAwLDEwIEBAIGJvb2wgRGlzcGxheUxp
c3Q6OnNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFncyBmbGFncywgSXRlbUhhbmRsZSBpdGVt
KQogICAgICAgICBpZiAoIShmbGFncyAmIEFzVGV4dEZsYWc6OkluY2x1ZGVzUGxhdGZvcm1PcGVy
YXRpb25zKSkgewogICAgICAgICAgICAgY29uc3QgYXV0byYgc3RhdGVJdGVtID0gaXRlbS5nZXQ8
U2V0U3RhdGU+KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogZm9yIG5vdywgb25seSBkcm9wIHRo
ZSBpdGVtIGlmIHRoZSBvbmx5IHN0YXRlLWNoYW5nZSBmbGFncyBhcmUgcGxhdGZvcm0tc3BlY2lm
aWMuCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQor
ICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5jaGFuZ2VGbGFncygpID09IEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlKCkubV9j
aGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6
ZUZvbnRzQ2hhbmdlKQorICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5jaGFuZ2VGbGFncygpID09
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2Up
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwpAQCAtMjAzLDEyICsyMTIsNiBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRs
ZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBwZW5kPENvbmNhdGVuYXRlQ1RNPihpdGVtLmdldDxD
b25jYXRlbmF0ZUNUTT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICBy
ZXR1cm4gYXBwZW5kPFNldENUTT4oaXRlbS5nZXQ8U2V0Q1RNPigpKTsKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5s
aW5lRmlsbEdyYWRpZW50PihpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCkpOwotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIGFwcGVu
ZDxTZXRJbmxpbmVGaWxsQ29sb3I+KGl0ZW0uZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKSk7Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBh
cHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KGl0ZW0uZ2V0PFNldElubGluZVN0cm9rZUNvbG9y
PigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIHJl
dHVybiBhcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPihpdGVtLmdldDxTZXRTdHJva2VUaGlja25l
c3M+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3Qu
aAppbmRleCBhOTAyZjM4MzQxMzYxZmU4ZjU3NWMwZTg0NDFhMmVhZTFlOWI4OTU1Li4zYTU4YmI0
YjA3ZDIyNzRjNzAzNTMzY2JlZjkzNjFmYzEwMzIwZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3Qu
aApAQCAtMjksOCArMjksMTAgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1UeXBlLmgiCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkdyYWRp
ZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZm
ZXIuaCIKKyNpbmNsdWRlICJQYXR0ZXJuLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNzYsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwJiBp
bWFnZUJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVyczsgfQogICAgIGNvbnN0
IE5hdGl2ZUltYWdlSGFzaE1hcCYgbmF0aXZlSW1hZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9uYXRp
dmVJbWFnZXM7IH0KICAgICBjb25zdCBGb250UmVuZGVyaW5nUmVzb3VyY2VNYXAmIGZvbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9mb250czsgfQorICAgIGNvbnN0IFBhdHRlcm5IYXNoTWFwJiBwYXR0
ZXJucygpIGNvbnN0IHsgcmV0dXJuIG1fcGF0dGVybnM7IH0KKyAgICBjb25zdCBHcmFkaWVudEhh
c2hNYXAmIGdyYWRpZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhZGllbnRzOyB9CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEl0ZW1CdWZmZXJDbGllbnQoSXRlbUJ1ZmZlclJlYWRpbmdD
bGllbnQqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEl0ZW1CdWZmZXJDbGllbnQoSXRl
bUJ1ZmZlcldyaXRpbmdDbGllbnQqKTsKQEAgLTE4OCwxMSArMTkyLDI3IEBAIHByaXZhdGU6CiAg
ICAgICAgIH0pOwogICAgIH0KIAorICAgIHZvaWQgY2FjaGVQYXR0ZXJuKFBhdHRlcm4mIHBhdHRl
cm4pCisgICAgeworICAgICAgICBtX3BhdHRlcm5zLmVuc3VyZShwYXR0ZXJuLnJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcigpLCBbJl0oKSB7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZihw
YXR0ZXJuKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgdm9pZCBjYWNoZUdyYWRpZW50KEdy
YWRpZW50JiBncmFkaWVudCkKKyAgICB7CisgICAgICAgIG1fZ3JhZGllbnRzLmVuc3VyZShncmFk
aWVudC5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgWyZdKCkgeworICAgICAgICAgICAg
cmV0dXJuIG1ha2VSZWYoZ3JhZGllbnQpOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBzdGF0
aWMgYm9vbCBzaG91bGREdW1wRm9yRmxhZ3MoQXNUZXh0RmxhZ3MsIEl0ZW1IYW5kbGUpOwogCiAg
ICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFz
aE1hcCBtX25hdGl2ZUltYWdlczsKICAgICBGb250UmVuZGVyaW5nUmVzb3VyY2VNYXAgbV9mb250
czsKKyAgICBQYXR0ZXJuSGFzaE1hcCBtX3BhdHRlcm5zOworICAgIEdyYWRpZW50SGFzaE1hcCBt
X2dyYWRpZW50czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SXRlbUJ1ZmZlcj4gbV9pdGVtczsKICAg
ICBWZWN0b3I8T3B0aW9uYWw8RmxvYXRSZWN0Pj4gbV9kcmF3aW5nSXRlbUV4dGVudHM7CiAgICAg
Ym9vbCBtX3RyYWNrc0RyYXdpbmdJdGVtRXh0ZW50cyB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggNWY5YzllMmE4NDExZmJmY2E1ZmVj
NmU5OWNkODI2YTM4ODk3ZWIwOC4uOWE5NTgxODE0OTM1OTVkNmIzNTYzODUwYzMyZDU5Mjk0NDcz
MWFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAg
LTcyLDI0ICs3MiwxMiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCkKICAgICAgICAgZ2V0PFNldENUTT4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
IHsKLSAgICAgICAgZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKS5hcHBseShjb250ZXh0KTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
Q29sb3I6IHsKLSAgICAgICAgZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKS5hcHBseShjb250ZXh0
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVT
dHJva2VDb2xvcjogewotICAgICAgICBnZXQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCkuYXBwbHko
Y29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0
U3Ryb2tlVGhpY2tuZXNzOiB7CiAgICAgICAgIGdldDxTZXRTdHJva2VUaGlja25lc3M+KCkuYXBw
bHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3RhdGU6IHsKLSAgICAgICAgZ2V0PFNldFN0YXRlPigpLmFwcGx5KGNvbnRleHQpOworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7CkBAIC0xMjEsNyArMTA5LDcgQEAgdm9pZCBJdGVt
SGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6IHsKLSAgICAgICAg
Z2V0PENsaXBUb0ltYWdlQnVmZmVyPigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBl
OjpDbGlwT3V0VG9QYXRoOiB7CkBAIC0xNDAsMTUgKzEyOCwxNSBAQCB2b2lkIEl0ZW1IYW5kbGU6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZm
ZXI6IHsKLSAgICAgICAgZ2V0PERyYXdJbWFnZUJ1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOiB7Ci0gICAgICAgIGdldDxEcmF3TmF0aXZl
SW1hZ2U+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOiB7
Ci0gICAgICAgIGdldDxEcmF3UGF0dGVybj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd1JlY3Q6IHsKQEAgLTM1NCwxMCArMzQyLDYgQEAgdm9pZCBJdGVtSGFuZGxlOjpk
ZXN0cm95KCkKICAgICAgICAgZ2V0PFNldExpbmVEYXNoPigpLn5TZXRMaW5lRGFzaCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7Ci0gICAg
ICAgIGdldDxTZXRTdGF0ZT4oKS5+U2V0U3RhdGUoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
ICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VQYXRoOiB7CiAgICAgICAgIGdldDxTdHJva2VQYXRo
PigpLn5TdHJva2VQYXRoKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ4NiwxOCArNDcwLDYgQEAg
dm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0Q1RNPjo6dmFsdWUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogewotICAgICAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVG
aWxsQ29sb3I+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxHcmFkaWVudD46OnZhbHVl
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVT
dHJva2VDb2xvcjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rl
c3RydWN0aWJsZTxTZXRJbmxpbmVTdHJva2VDb2xvcj46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7CiAgICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldExpbmVDYXA+Ojp2YWx1
ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTUxMCw2ICs0ODIsMTAgQEAgdm9pZCBJdGVtSGFuZGxl
OjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0
cnVjdGlibGU8U2V0TWl0ZXJMaW1pdD46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogeworICAgICAgICBnZXQ8U2V0U3RhdGU+KCku
flNldFN0YXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3Ryb2tlVGhpY2tuZXNzOiB7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2
aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldFN0cm9rZVRoaWNrbmVzcz46OnZhbHVlKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtNzQxLDE4ICs3MTcsNiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmNvcHlUbyhJdGVt
SGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAogICAgICAgICBuZXcgKGl0ZW1PZmZzZXQpIFNldENU
TShnZXQ8U2V0Q1RNPigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6IHsKLSAgICAgICAgbmV3IChpdGVtT2Zmc2V0KSBTZXRJ
bmxpbmVGaWxsQ29sb3IoZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0g
ICAgICAgIG5ldyAoaXRlbU9mZnNldCkgU2V0SW5saW5lRmlsbEdyYWRpZW50KGdldDxTZXRJbmxp
bmVGaWxsR3JhZGllbnQ+KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgSXRl
bVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOiB7Ci0gICAgICAgIG5ldyAoaXRlbU9mZnNldCkg
U2V0SW5saW5lU3Ryb2tlQ29sb3IoZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7CiAgICAg
ICAgIG5ldyAoaXRlbU9mZnNldCkgU2V0TGluZUNhcChnZXQ8U2V0TGluZUNhcD4oKSk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRl
eCBjMGM3M2I4M2JkNTJlYWEwNGE5NTE3ODE4MDQ0NTM5NDdiYmM5NWU5Li5iZGNlMzFhNjBiNzZj
ZmUzYWQ2NzhmZWU5ZTk4NmQ4ZjQxN2E5ODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuY3BwCkBAIC00OCwxMiArNDgsNiBAQCBzdGF0aWMgc2l6ZV90IHNpemVPZkl0
ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2YoQ29uY2F0ZW5h
dGVDVE0pOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0dXJuIHNpemVv
ZihTZXRDVE0pOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAg
ICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVGaWxsR3JhZGllbnQpOwotICAgIGNhc2UgSXRl
bVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxp
bmVGaWxsQ29sb3IpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgot
ICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZVN0cm9rZUNvbG9yKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3Ry
b2tlVGhpY2tuZXNzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKQEAgLTE4OSw5ICsx
ODMsNiBAQCBib29sIGlzRHJhd2luZ0l0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1U
eXBlOjpTYXZlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgSXRlbVR5cGU6
OlNldENUTToKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgIGNhc2UgSXRlbVR5cGU6OlNl
dElubGluZVN0cm9rZUNvbG9yOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0TGluZURhc2g6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpv
aW46CkBAIC0zMDIsOSArMjkzLDYgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTYXZlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOgogICAg
IGNhc2UgSXRlbVR5cGU6OlNldENUTToKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
Q29sb3I6Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgogICAgIGNhc2UgSXRlbVR5cGU6OlNl
dExpbmVDYXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0TWl0ZXJMaW1pdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5o
CmluZGV4IDBlOTQ3YTA2ZGFiNWEyZGZiNDc2OTA4MmY4Y2FjNTQ4YWY4OTM0M2IuLjQ2Yzc2YzEz
YTBjYWNjN2FiY2Y2MDZlNzlmMGJmYTI0N2M0MGNlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbVR5cGUuaApAQCAtMzYsOSArMzYsNiBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDog
dWludDhfdCB7CiAgICAgU2NhbGUsCiAgICAgQ29uY2F0ZW5hdGVDVE0sCiAgICAgU2V0Q1RNLAot
ICAgIFNldElubGluZUZpbGxHcmFkaWVudCwKLSAgICBTZXRJbmxpbmVGaWxsQ29sb3IsCi0gICAg
U2V0SW5saW5lU3Ryb2tlQ29sb3IsCiAgICAgU2V0U3Ryb2tlVGhpY2tuZXNzLAogICAgIFNldFN0
YXRlLAogICAgIFNldExpbmVDYXAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAK
aW5kZXggMjMyNTk2M2M5OWJiOGJjY2Q4ZjI3NzJmNmM3ZjI4ZGM4NWFjOTVlMy4uNzJkZTNkM2Iy
NjI1MWYxMWY4YTlkNDRkNjU2NjMxOTMxNTgwNDZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmNwcApAQCAtMTE1LDExOCArMTE1LDc0IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25jYXRlbmF0ZUNUTSYgaXRlbSkKICAg
ICByZXR1cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdy
YWRpZW50KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKLSAgICA6IG1fZGF0YShncmFkaWVudC5k
YXRhKCkpCi0gICAgLCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbihncmFkaWVudC5ncmFk
aWVudFNwYWNlVHJhbnNmb3JtKCkpCi0gICAgLCBtX3NwcmVhZE1ldGhvZChncmFkaWVudC5zcHJl
YWRNZXRob2QoKSkKLSAgICAsIG1fY29sb3JTdG9wQ291bnQoc3RhdGljX2Nhc3Q8dWludDhfdD4o
Z3JhZGllbnQuc3RvcHMoKS5zaXplKCkpKQotewotICAgIFJFTEVBU0VfQVNTRVJUKG1fY29sb3JT
dG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAgIGZvciAodWludDhfdCBpID0gMDsg
aSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkgewotICAgICAgICBtX29mZnNldHNbaV0gPSBncmFk
aWVudC5zdG9wcygpW2ldLm9mZnNldDsKLSAgICAgICAgbV9jb2xvcnNbaV0gPSBncmFkaWVudC5z
dG9wcygpW2ldLmNvbG9yLmFzSW5saW5lKCk7Ci0gICAgfQotfQotCi1SZWY8R3JhZGllbnQ+IFNl
dElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQoKSBjb25zdAotewotICAgIGF1dG8gZ3JhZGll
bnQgPSBHcmFkaWVudDo6Y3JlYXRlKEdyYWRpZW50OjpEYXRhKG1fZGF0YSkpOwotICAgIGZvciAo
dWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkKLSAgICAgICAgZ3JhZGll
bnQtPmFkZENvbG9yU3RvcCh7IG1fb2Zmc2V0c1tpXSwgQ29sb3IobV9jb2xvcnNbaV0pIH0pOwot
ICAgIGdyYWRpZW50LT5zZXRTcHJlYWRNZXRob2QobV9zcHJlYWRNZXRob2QpOwotICAgIGdyYWRp
ZW50LT5zZXRHcmFkaWVudFNwYWNlVHJhbnNmb3JtKG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0
aW9uKTsKLSAgICByZXR1cm4gZ3JhZGllbnQ7Ci19Ci0KLVNldElubGluZUZpbGxHcmFkaWVudDo6
U2V0SW5saW5lRmlsbEdyYWRpZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBT
UkdCQTx1aW50OF90PiBjb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6
RGF0YSYgZGF0YSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3Jt
YXRpb24sIEdyYWRpZW50U3ByZWFkTWV0aG9kIHNwcmVhZE1ldGhvZCwgdWludDhfdCBjb2xvclN0
b3BDb3VudCkKLSAgICA6IG1fZGF0YShkYXRhKQotICAgICwgbV9ncmFkaWVudFNwYWNlVHJhbnNm
b3JtYXRpb24oZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uKQotICAgICwgbV9zcHJlYWRNZXRo
b2Qoc3ByZWFkTWV0aG9kKQotICAgICwgbV9jb2xvclN0b3BDb3VudChjb2xvclN0b3BDb3VudCkK
LXsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENv
dW50KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kp
IHsKLSAgICAgICAgbV9vZmZzZXRzW2ldID0gb2Zmc2V0c1tpXTsKLSAgICAgICAgbV9jb2xvcnNb
aV0gPSBjb2xvcnNbaV07Ci0gICAgfQotfQotCi12b2lkIFNldElubGluZUZpbGxHcmFkaWVudDo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAotewotICAgIGlmIChtX2NvbG9y
U3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KQotICAgICAgICBjb250ZXh0LnNldEZpbGxH
cmFkaWVudChncmFkaWVudCgpKTsKLX0KLQotYm9vbCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Omlz
SW5saW5lKGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKK3ZvaWQgU2V0U3Ryb2tlVGhpY2tuZXNz
OjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7Ci0gICAgaWYgKGdyYWRp
ZW50LnN0b3BzKCkuc2l6ZSgpID4gU2V0SW5saW5lRmlsbEdyYWRpZW50OjptYXhDb2xvclN0b3BD
b3VudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZm9yIChhdXRvJiBjb2xvclN0b3Ag
OiBncmFkaWVudC5zdG9wcygpKSB7Ci0gICAgICAgIGlmICghY29sb3JTdG9wLmNvbG9yLmlzSW5s
aW5lKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRy
dWU7CisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MobV90aGlja25lc3MpOwogfQogCi1z
dGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5s
aW5lRmlsbEdyYWRpZW50JikKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBTZXRTdHJva2VUaGlja25lc3MmIHN0YXRlKQogewotICAgIC8vIEZJWE1F
OiBEdW1wIGdyYWRpZW50IGRhdGEuCisgICAgdHMuZHVtcFByb3BlcnR5KCJ0aGlja25lc3MiLCBz
dGF0ZS50aGlja25lc3MoKSk7CiAgICAgcmV0dXJuIHRzOwogfQogCi12b2lkIFNldElubGluZUZp
bGxDb2xvcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAorU2V0U3RhdGU6
OlNldFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZs
YWdzLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUpCisgICAgOiBtX2NoYW5nZUZs
YWdzKGNoYW5nZUZsYWdzKQorICAgICwgbV9pbmxpbmVTdGF0ZShzdGF0ZSkKKyAgICAsIG1fc3Ry
b2tlR3JhZGllbnRJZGVudGlmaWVyKHN0YXRlLnN0cm9rZUdyYWRpZW50ID8gc3RhdGUuc3Ryb2tl
R3JhZGllbnQtPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIDogUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKCkpCisgICAgLCBtX3N0cm9rZVBhdHRlcm5JZGVudGlmaWVyKHN0YXRlLnN0
cm9rZVBhdHRlcm4gPyBzdGF0ZS5zdHJva2VQYXR0ZXJuLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIoKSA6IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKQorICAgICwgbV9maWxsR3Jh
ZGllbnRJZGVudGlmaWVyKHN0YXRlLmZpbGxHcmFkaWVudCA/IHN0YXRlLmZpbGxHcmFkaWVudC0+
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgOiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIoKSkKKyAgICAsIG1fZmlsbFBhdHRlcm5JZGVudGlmaWVyKHN0YXRlLmZpbGxQYXR0ZXJuID8g
c3RhdGUuZmlsbFBhdHRlcm4tPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIDogUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpCisgICAgLCBtX3N0cm9rZUNvbG9yKHN0YXRlLnN0cm9r
ZUNvbG9yKQorICAgICwgbV9maWxsQ29sb3Ioc3RhdGUuZmlsbENvbG9yKQorICAgICwgbV9zaGFk
b3dDb2xvcihzdGF0ZS5zaGFkb3dDb2xvcikKKyAgICAsIG1fc3RhdGUoeyBzdGF0ZSwgY2hhbmdl
RmxhZ3MgfSkKIHsKLSAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvcigpKTsKIH0KIAotc3Rh
dGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldElubGlu
ZUZpbGxDb2xvciYgc3RhdGUpCitTZXRTdGF0ZTo6U2V0U3RhdGUoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MsIGNvbnN0IEdyYXBoaWNzQ29udGV4dElu
bGluZVN0YXRlJiBpbmxpbmVTdGF0ZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9r
ZUdyYWRpZW50SWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZVBh
dHRlcm5JZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbEdyYWRpZW50
SWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxQYXR0ZXJuSWRlbnRp
ZmllciwgY29uc3QgQ29sb3ImIHN0cm9rZUNvbG9yLCBjb25zdCBDb2xvciYgZmlsbENvbG9yLCBj
b25zdCBDb2xvciYgc2hhZG93Q29sb3IpCisgICAgOiBtX2NoYW5nZUZsYWdzKGNoYW5nZUZsYWdz
KQorICAgICwgbV9pbmxpbmVTdGF0ZShpbmxpbmVTdGF0ZSkKKyAgICAsIG1fc3Ryb2tlR3JhZGll
bnRJZGVudGlmaWVyKHN0cm9rZUdyYWRpZW50SWRlbnRpZmllcikKKyAgICAsIG1fc3Ryb2tlUGF0
dGVybklkZW50aWZpZXIoc3Ryb2tlUGF0dGVybklkZW50aWZpZXIpCisgICAgLCBtX2ZpbGxHcmFk
aWVudElkZW50aWZpZXIoZmlsbEdyYWRpZW50SWRlbnRpZmllcikKKyAgICAsIG1fZmlsbFBhdHRl
cm5JZGVudGlmaWVyKGZpbGxQYXR0ZXJuSWRlbnRpZmllcikKKyAgICAsIG1fc3Ryb2tlQ29sb3Io
c3Ryb2tlQ29sb3IpCisgICAgLCBtX2ZpbGxDb2xvcihmaWxsQ29sb3IpCisgICAgLCBtX3NoYWRv
d0NvbG9yKHNoYWRvd0NvbG9yKQogewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBzdGF0
ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7CiB9CiAKLXZvaWQgU2V0SW5saW5lU3Ryb2tlQ29s
b3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3ZvaWQgU2V0U3RhdGU6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhZGllbnQqIHN0cm9rZUdyYWRpZW50
LCBQYXR0ZXJuKiBzdHJva2VQYXR0ZXJuLCBHcmFkaWVudCogZmlsbEdyYWRpZW50LCBQYXR0ZXJu
KiBmaWxsUGF0dGVybikgY29uc3QKIHsKLSAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9y
KCkpOwotfQorICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHN0YXRlQ2hhbmdlOwogCi1z
dGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5s
aW5lU3Ryb2tlQ29sb3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBz
dGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7Ci19CisgICAgc3RhdGVDaGFuZ2UubV9jaGFu
Z2VGbGFncyA9IG1fY2hhbmdlRmxhZ3M7CisgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5HcmFwaGlj
c0NvbnRleHRJbmxpbmVTdGF0ZTo6b3BlcmF0b3I9KG1faW5saW5lU3RhdGUpOworICAgIAorICAg
IGlmIChzdHJva2VHcmFkaWVudCkKKyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VH
cmFkaWVudCA9IHN0cm9rZUdyYWRpZW50OwogCi12b2lkIFNldFN0cm9rZVRoaWNrbmVzczo6YXBw
bHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAotewotICAgIGNvbnRleHQuc2V0U3Ry
b2tlVGhpY2tuZXNzKG1fdGhpY2tuZXNzKTsKLX0KKyAgICBpZiAoc3Ryb2tlUGF0dGVybikKKyAg
ICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gc3Ryb2tlUGF0dGVybjsK
IAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNl
dFN0cm9rZVRoaWNrbmVzcyYgc3RhdGUpCi17Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJ0aGlja25l
c3MiLCBzdGF0ZS50aGlja25lc3MoKSk7Ci0gICAgcmV0dXJuIHRzOwotfQorICAgIGlmIChmaWxs
R3JhZGllbnQpCisgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbEdyYWRpZW50ID0gZmls
bEdyYWRpZW50OwogCi1TZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBmbGFncykK
LSAgICA6IG1fc3RhdGUoc3RhdGUsIGZsYWdzKQotewotfQorICAgIGlmIChmaWxsUGF0dGVybikK
KyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUGF0dGVybiA9IGZpbGxQYXR0ZXJuOwog
Ci1TZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIHN0
YXRlQ2hhbmdlKQotICAgIDogbV9zdGF0ZShzdGF0ZUNoYW5nZSkKLXsKLX0KKyAgICBzdGF0ZUNo
YW5nZS5tX3N0YXRlLnN0cm9rZUNvbG9yID0gbV9zdHJva2VDb2xvcjsKKyAgICBzdGF0ZUNoYW5n
ZS5tX3N0YXRlLmZpbGxDb2xvciA9IG1fZmlsbENvbG9yOworICAgIHN0YXRlQ2hhbmdlLm1fc3Rh
dGUuc2hhZG93Q29sb3IgPSBtX3NoYWRvd0NvbG9yOwogCi12b2lkIFNldFN0YXRlOjphcHBseShH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgbV9zdGF0ZS5hcHBseShjb250
ZXh0KTsKKyAgICBzdGF0ZUNoYW5nZS5hcHBseShjb250ZXh0KTsKIH0KIAogc3RhdGljIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0YXRlJiBzdGF0ZSkK
IHsKLSAgICB0cyA8PCBzdGF0ZS5zdGF0ZSgpOworICAgIGlmIChzdGF0ZS5zdGF0ZSgpKQorICAg
ICAgICB0cyA8PCAqc3RhdGUuc3RhdGUoKTsKICAgICByZXR1cm4gdHM7CiB9CiAKQEAgLTMwMiwx
MSArMjU4LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IENsaXBPdXQmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi1OT19SRVRVUk5fRFVF
X1RPX0FTU0VSVCB2b2lkIENsaXBUb0ltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQm
KSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIENsaXBUb0lt
YWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFdlYkNvcmU6OkltYWdl
QnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKIHsKICAgICBjb250ZXh0LmNsaXBUb0ltYWdlQnVm
ZmVyKGltYWdlQnVmZmVyLCBtX2Rlc3RpbmF0aW9uUmVjdCk7CkBAIC00MjEsMTEgKzM3Miw2IEBA
IHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3
R2x5cGhzJiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAotTk9fUkVUVVJOX0RVRV9UT19BU1NF
UlQgdm9pZCBEcmF3SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZvaWQgRHJhd0ltYWdlQnVmZmVyOjph
cHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFdlYkNvcmU6OkltYWdlQnVmZmVyJiBpbWFn
ZUJ1ZmZlcikgY29uc3QKIHsKICAgICBjb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZl
ciwgbV9kZXN0aW5hdGlvblJlY3QsIG1fc3JjUmVjdCwgbV9vcHRpb25zKTsKQEAgLTQzOSwxMSAr
Mzg1LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IERyYXdJbWFnZUJ1ZmZlciYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLU5PX1JFVFVS
Tl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRl
eHQmKSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIERyYXdO
YXRpdmVJbWFnZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOYXRpdmVJbWFnZSYg
aW1hZ2UpIGNvbnN0CiB7CiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIG1faW1h
Z2VTaXplLCBtX2Rlc3RpbmF0aW9uUmVjdCwgbV9zcmNSZWN0LCBtX29wdGlvbnMpOwpAQCAtNDcw
LDExICs0MTEsNiBAQCBEcmF3UGF0dGVybjo6RHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYQogewogfQogCi1OT19SRVRVUk5f
RFVFX1RPX0FTU0VSVCB2b2lkIERyYXdQYXR0ZXJuOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBj
b25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIERyYXdQYXR0ZXJu
OjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5hdGl2ZUltYWdlJiBpbWFnZSkgY29u
c3QKIHsKICAgICBjb250ZXh0LmRyYXdQYXR0ZXJuKGltYWdlLCBtX2ltYWdlU2l6ZSwgbV9kZXN0
aW5hdGlvbiwgbV90aWxlUmVjdCwgbV9wYXR0ZXJuVHJhbnNmb3JtLCBtX3BoYXNlLCBtX3NwYWNp
bmcsIG1fb3B0aW9ucyk7CkBAIC0xMDI0LDkgKzk2MCw2IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5
cGU6OlNjYWxlOiB0cyA8PCAic2NhbGUiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRD
VE06IHRzIDw8ICJzZXQtY3RtIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5h
dGVDVE06IHRzIDw8ICJjb25jYXRlbnRhdGUtY3RtIjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB0cyA8PCAic2V0LWlubGluZS1maWxsLWdyYWRpZW50
IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB0cyA8PCAi
c2V0LWlubGluZS1maWxsLWNvbG9yIjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lU3Ryb2tlQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLXN0cm9rZS1jb2xvciI7IGJyZWFrOwog
ICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogdHMgPDwgInNldC1zdHJva2Ut
dGhpY2tuZXNzIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6IHRzIDw8ICJz
ZXQtc3RhdGUiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB0cyA8PCAi
c2V0LWxpbmUtY2FwIjsgYnJlYWs7CkBAIC0xMTA3LDE1ICsxMDQwLDYgQEAgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRl
bVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxDb25jYXRlbmF0
ZUNUTT4oKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bEdyYWRpZW50OgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjoKLSAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKLSAgICAg
ICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCk7Ci0gICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKICAgICAgICAgdHMgPDwg
aXRlbS5nZXQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IGVhOGFjYWRlNjU3NTE0MDEzMDgwZjI3MWJkNzJi
ZWZkMzExNTEwYTguLjg2OGU2MjhkZWQ2M2JhMWRmZmRiMWQzZWE5OGRjZDY0Y2M1YjgzYTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtMTY3LDY4ICsxNjcsNiBAQCBwcml2
YXRlOgogICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKIH07CiAKLWNsYXNzIFNldElu
bGluZUZpbGxHcmFkaWVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlw
ZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4
X3QgbWF4Q29sb3JTdG9wQ291bnQgPSA0OwotCi0gICAgU2V0SW5saW5lRmlsbEdyYWRpZW50KGNv
bnN0IEdyYWRpZW50Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0SW5saW5lRmlsbEdyYWRpZW50
KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xvcnNb
bWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYsCi0gICAgICAgIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uLCBHcmFkaWVudFNw
cmVhZE1ldGhvZCwgdWludDhfdCBjb2xvclN0b3BDb3VudCk7Ci0KLSAgICBzdGF0aWMgYm9vbCBp
c0lubGluZShjb25zdCBHcmFkaWVudCYpOwotICAgIFJlZjxHcmFkaWVudD4gZ3JhZGllbnQoKSBj
b25zdDsKLQotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZh
dGU6Ci0gICAgZmxvYXQgbV9vZmZzZXRzW21heENvbG9yU3RvcENvdW50XTsKLSAgICBTUkdCQTx1
aW50OF90PiBtX2NvbG9yc1ttYXhDb2xvclN0b3BDb3VudF07Ci0gICAgR3JhZGllbnQ6OkRhdGEg
bV9kYXRhOwotICAgIEFmZmluZVRyYW5zZm9ybSBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlv
bjsKLSAgICBHcmFkaWVudFNwcmVhZE1ldGhvZCBtX3NwcmVhZE1ldGhvZCB7IEdyYWRpZW50U3By
ZWFkTWV0aG9kOjpQYWQgfTsKLSAgICB1aW50OF90IG1fY29sb3JTdG9wQ291bnQgeyAwIH07Ci19
OwotCi1jbGFzcyBTZXRJbmxpbmVGaWxsQ29sb3IgewotcHVibGljOgotICAgIHN0YXRpYyBjb25z
dGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOwot
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwotICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0KLSAgICBTZXRJbmxpbmVG
aWxsQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JEYXRhKQotICAgICAgICA6IG1fY29sb3JEYXRh
KGNvbG9yRGF0YSkKLSAgICB7Ci0gICAgfQotCi0gICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJl
dHVybiB7IG1fY29sb3JEYXRhIH07IH0KLSAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYp
IGNvbnN0OwotCi1wcml2YXRlOgotICAgIFNSR0JBPHVpbnQ4X3Q+IG1fY29sb3JEYXRhOwotfTsK
LQotY2xhc3MgU2V0SW5saW5lU3Ryb2tlQ29sb3IgewotcHVibGljOgotICAgIHN0YXRpYyBjb25z
dGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLQotICAgIFNldElubGlu
ZVN0cm9rZUNvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yRGF0YSkKLSAgICAgICAgOiBtX2NvbG9y
RGF0YShjb2xvckRhdGEpCi0gICAgewotICAgIH0KLQotICAgIENvbG9yIGNvbG9yKCkgY29uc3Qg
eyByZXR1cm4geyBtX2NvbG9yRGF0YSB9OyB9Ci0KLSAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFNSR0JBPHVpbnQ4X3Q+IG1fY29sb3JEYXRh
OwotfTsKLQogY2xhc3MgU2V0U3Ryb2tlVGhpY2tuZXNzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
Y29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVz
czsKQEAgLTI1NCwxMDYgKzE5Miw2MyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGlzSW5saW5lSXRlbSA9IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0Ry
YXdpbmdJdGVtID0gZmFsc2U7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZs
YWdzKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZUNoYW5nZSYpOwotICAgIAotICAgIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdl
JiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBT
ZXRTdGF0ZShHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncywgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncywgY29uc3QgR3JhcGhpY3NDb250ZXh0SW5s
aW5lU3RhdGUmLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlR3JhZGllbnRJZGVu
dGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0dGVybklkZW50aWZp
ZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmaWxsR3JhZGllbnRJZGVudGlmaWVyLCBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JZGVudGlmaWVyLCBjb25zdCBD
b2xvciYgc3Ryb2tlQ29sb3IsIGNvbnN0IENvbG9yJiBmaWxsQ29sb3IsIGNvbnN0IENvbG9yJiBz
aGFkb3dDb2xvcik7CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyBjaGFuZ2VGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbmdlRmxhZ3M7IH0KKyAgICBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zdHJva2VHcmFkaWVudElkZW50aWZpZXI7IH0KKyAgICBSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0dGVybklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X3N0cm9rZVBhdHRlcm5JZGVudGlmaWVyOyB9CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGZpbGxHcmFkaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxHcmFkaWVu
dElkZW50aWZpZXI7IH0KKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRl
cm5JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9maWxsUGF0dGVybklkZW50aWZpZXI7IH0K
IAotICAgIHN0YXRpYyB2b2lkIGJ1aWxkZXJTdGF0ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZs
YWdzKTsKKyAgICBDb2xvciBzdHJva2VDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Ryb2tlQ29s
b3I7IH0KKyAgICBDb2xvciBmaWxsQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxDb2xvcjsg
fQorICAgIENvbG9yIHNoYWRvd0NvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9zaGFkb3dDb2xvcjsg
fQogCi0gICAgc3RhdGljIHZvaWQgZHVtcFN0YXRlQ2hhbmdlcyhXVEY6OlRleHRTdHJlYW0mLCBj
b25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNo
YW5nZUZsYWdzKTsKKyAgICBjb25zdCBPcHRpb25hbDxHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5n
ZT4mIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogCiAgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTZXRTdGF0ZT4gZGVjb2RlKERlY29kZXImKTsK
IAotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmLCBHcmFkaWVudCogc3Ryb2tlR3JhZGllbnQsIFBhdHRlcm4qIHN0
cm9rZVBhdHRlcm4sIEdyYWRpZW50KiBmaWxsR3JhZGllbnQsIFBhdHRlcm4qIGZpbGxQYXR0ZXJu
KSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBtX3N0
YXRlOworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIG1fY2hhbmdl
RmxhZ3M7CisgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgbV9pbmxpbmVTdGF0ZTsKKwor
ICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3N0cm9rZUdyYWRpZW50SWRlbnRpZmll
cjsKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9zdHJva2VQYXR0ZXJuSWRlbnRp
ZmllcjsKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9maWxsR3JhZGllbnRJZGVu
dGlmaWVyOworICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ZpbGxQYXR0ZXJuSWRl
bnRpZmllcjsKKworICAgIENvbG9yIG1fc3Ryb2tlQ29sb3I7CisgICAgQ29sb3IgbV9maWxsQ29s
b3I7CisgICAgQ29sb3IgbV9zaGFkb3dDb2xvcjsKKyAgICAKKyAgICBPcHRpb25hbDxHcmFwaGlj
c0NvbnRleHRTdGF0ZUNoYW5nZT4gbV9zdGF0ZTsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+CiB2b2lkIFNldFN0YXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAg
ICBhdXRvIGNoYW5nZUZsYWdzID0gbV9zdGF0ZS5tX2NoYW5nZUZsYWdzOwotICAgIGVuY29kZXIg
PDwgY2hhbmdlRmxhZ3M7Ci0KLSAgICBhdXRvJiBzdGF0ZSA9IG1fc3RhdGUubV9zdGF0ZTsKLQot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tl
R3JhZGllbnRDaGFuZ2UpKSB7Ci0gICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5zdHJva2VHcmFk
aWVudDsKLSAgICAgICAgaWYgKHN0YXRlLnN0cm9rZUdyYWRpZW50KQotICAgICAgICAgICAgZW5j
b2RlciA8PCAqc3RhdGUuc3Ryb2tlR3JhZGllbnQ7Ci0gICAgfQotCi0gICAgaWYgKGNoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VQYXR0ZXJuQ2hhbmdlKSkg
ewotICAgICAgICBlbmNvZGVyIDw8ICEhc3RhdGUuc3Ryb2tlUGF0dGVybjsKLSAgICAgICAgaWYg
KHN0YXRlLnN0cm9rZVBhdHRlcm4pCi0gICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5zdHJv
a2VQYXR0ZXJuOwotICAgIH0KLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlKSkgewotICAgICAgICBlbmNvZGVyIDw8
ICEhc3RhdGUuZmlsbEdyYWRpZW50OwotICAgICAgICBpZiAoc3RhdGUuZmlsbEdyYWRpZW50KQot
ICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGUuZmlsbEdyYWRpZW50OwotICAgIH0KLQotICAg
IGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFBhdHRl
cm5DaGFuZ2UpKSB7Ci0gICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5maWxsUGF0dGVybjsKLSAg
ICAgICAgaWYgKHN0YXRlLmZpbGxQYXR0ZXJuKQotICAgICAgICAgICAgZW5jb2RlciA8PCAqc3Rh
dGUuZmlsbFBhdHRlcm47Ci0gICAgfQotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKSB7Ci0gICAgICAgIGVuY29kZXIgPDwg
c3RhdGUuc2hhZG93T2Zmc2V0OwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd0JsdXI7
Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93Q29sb3I7Ci0jaWYgVVNFKENHKQotICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7Ci0jZW5kaWYgLy8g
VVNFKENHKQotICAgIH0KLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U3Ryb2tlVGhpY2tuZXNzQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBz
dGF0ZS5zdHJva2VUaGlja25lc3M7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlRleHREcmF3aW5nTW9kZUNoYW5nZSkpCi0gICAgICAgIGVuY29k
ZXIgPDwgc3RhdGUudGV4dERyYXdpbmdNb2RlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSkpCi0gICAgICAgIGVu
Y29kZXIgPDwgc3RhdGUuc3Ryb2tlQ29sb3I7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSkpCi0gICAgICAgIGVuY29k
ZXIgPDwgc3RhdGUuZmlsbENvbG9yOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VTdHlsZUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIg
PDwgc3RhdGUuc3Ryb2tlU3R5bGU7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OkZpbGxSdWxlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBz
dGF0ZS5maWxsUnVsZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6Q29tcG9zaXRlT3BlcmF0aW9uQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8
PCBzdGF0ZS5jb21wb3NpdGVPcGVyYXRvcjsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6QmxlbmRNb2RlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0ZS5ibGVuZE1vZGU7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OkltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHlDaGFuZ2UpKQotICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk7Ci0KLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkFscGhhQ2hhbmdl
KSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5hbHBoYTsKKyAgICBlbmNvZGVyIDw8IG1fY2hh
bmdlRmxhZ3M7CisgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1aW50OF90Kj4oJm1faW5saW5lU3RhdGUpLCBzaXplb2YoR3JhcGhpY3NDb250
ZXh0SW5saW5lU3RhdGUpLCAxKTsKKyAgICAKKyAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKQorICAgICAgICBl
bmNvZGVyIDw8IG1fc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyOwogCi0gICAgaWYgKGNoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXNDaGFuZ2Up
KQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZEFudGlhbGlhczsKKyAgICBpZiAobV9j
aGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVybkNo
YW5nZSkpCisgICAgICAgIGVuY29kZXIgPDwgbV9zdHJva2VQYXR0ZXJuSWRlbnRpZmllcjsKIAot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxk
U21vb3RoRm9udHNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZFNtb290
aEZvbnRzOworICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKQorICAgICAgICBlbmNvZGVyIDw8IG1fZmlsbEdyYWRp
ZW50SWRlbnRpZmllcjsKIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKSkKLSAgICAgICAg
ZW5jb2RlciA8PCBzdGF0ZS5zaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM7CisgICAgaWYgKG1f
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hh
bmdlKSkKKyAgICAgICAgZW5jb2RlciA8PCBtX2ZpbGxQYXR0ZXJuSWRlbnRpZmllcjsKIAotICAg
IGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0ln
bm9yZVRyYW5zZm9ybXNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zOworICAgIGVuY29kZXIgPDwgbV9zdHJva2VDb2xvcjsKKyAgICBlbmNv
ZGVyIDw8IG1fZmlsbENvbG9yOworICAgIGVuY29kZXIgPDwgbV9zaGFkb3dDb2xvcjsKIH0KIAog
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTM2MywyMjggKzI1OCw1NSBAQCBPcHRpb25hbDxT
ZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGRlY29kZXIg
Pj4gY2hhbmdlRmxhZ3M7CiAgICAgaWYgKCFjaGFuZ2VGbGFncykKICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICAKKyAgICBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSBpbmxpbmVT
dGF0ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDhfdCo+KCZpbmxpbmVTdGF0ZSksIHNpemVvZihHcmFwaGljc0NvbnRleHRJbmxp
bmVTdGF0ZSksIDEpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVDaGFuZ2Ugc3RhdGVDaGFuZ2U7Ci0gICAgc3RhdGVDaGFuZ2UubV9jaGFu
Z2VGbGFncyA9ICpjaGFuZ2VGbGFnczsKLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkp
IHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaGFzU3Ryb2tlR3JhZGllbnQ7Ci0gICAgICAgIGRl
Y29kZXIgPj4gaGFzU3Ryb2tlR3JhZGllbnQ7Ci0gICAgICAgIGlmICghaGFzU3Ryb2tlR3JhZGll
bnQuaGFzVmFsdWUoKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgaWYgKGhhc1N0cm9rZUdyYWRpZW50LnZhbHVlKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc3Ry
b2tlR3JhZGllbnQgPSBHcmFkaWVudDo6ZGVjb2RlKGRlY29kZXIpOwotICAgICAgICAgICAgaWYg
KCFzdHJva2VHcmFkaWVudCkKLSAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
Ci0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZUdyYWRpZW50ID0gV1RGTW92
ZSgqc3Ryb2tlR3JhZGllbnQpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBh
dHRlcm5DaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IGhhc1N0cm9rZVBhdHRlcm47
Ci0gICAgICAgIGRlY29kZXIgPj4gaGFzU3Ryb2tlUGF0dGVybjsKLSAgICAgICAgaWYgKCFoYXNT
dHJva2VQYXR0ZXJuLmhhc1ZhbHVlKCkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgICAgIGlmIChoYXNTdHJva2VQYXR0ZXJuLnZhbHVlKCkpIHsKLSAgICAgICAgICAg
IGF1dG8gc3Ryb2tlUGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNvZGVyKTsKLSAgICAgICAg
ICAgIGlmICghc3Ryb2tlUGF0dGVybikKLSAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBX
VEZNb3ZlKCpzdHJva2VQYXR0ZXJuKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzdGF0
ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxs
R3JhZGllbnRDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IGhhc0ZpbGxHcmFkaWVu
dDsKLSAgICAgICAgZGVjb2RlciA+PiBoYXNGaWxsR3JhZGllbnQ7Ci0gICAgICAgIGlmICghaGFz
RmlsbEdyYWRpZW50Lmhhc1ZhbHVlKCkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgICAgIGlmIChoYXNGaWxsR3JhZGllbnQudmFsdWUoKSkgewotICAgICAgICAgICAg
YXV0byBmaWxsR3JhZGllbnQgPSBHcmFkaWVudDo6ZGVjb2RlKGRlY29kZXIpOwotICAgICAgICAg
ICAgaWYgKCFmaWxsR3JhZGllbnQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLQotICAgICAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEZN
b3ZlKCpmaWxsR3JhZGllbnQpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0
ZXJuQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBoYXNGaWxsUGF0dGVybjsKLSAg
ICAgICAgZGVjb2RlciA+PiBoYXNGaWxsUGF0dGVybjsKLSAgICAgICAgaWYgKCFoYXNGaWxsUGF0
dGVybi5oYXNWYWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAg
ICAgICBpZiAoaGFzRmlsbFBhdHRlcm4udmFsdWUoKSkgewotICAgICAgICAgICAgYXV0byBmaWxs
UGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNvZGVyKTsKLSAgICAgICAgICAgIGlmICghZmls
bFBhdHRlcm4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAg
ICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUGF0dGVybiA9IFdURk1vdmUoKmZpbGxQYXR0
ZXJuKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKSB7Ci0gICAg
ICAgIE9wdGlvbmFsPEZsb2F0U2l6ZT4gc2hhZG93T2Zmc2V0OwotICAgICAgICBkZWNvZGVyID4+
IHNoYWRvd09mZnNldDsKLSAgICAgICAgaWYgKCFzaGFkb3dPZmZzZXQpCi0gICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93
T2Zmc2V0ID0gKnNoYWRvd09mZnNldDsKLQotICAgICAgICBPcHRpb25hbDxmbG9hdD4gc2hhZG93
Qmx1cjsKLSAgICAgICAgZGVjb2RlciA+PiBzaGFkb3dCbHVyOwotICAgICAgICBpZiAoIXNoYWRv
d0JsdXIpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRl
Q2hhbmdlLm1fc3RhdGUuc2hhZG93Qmx1ciA9ICpzaGFkb3dCbHVyOwotCi0gICAgICAgIE9wdGlv
bmFsPENvbG9yPiBzaGFkb3dDb2xvcjsKLSAgICAgICAgZGVjb2RlciA+PiBzaGFkb3dDb2xvcjsK
LSAgICAgICAgaWYgKCFzaGFkb3dDb2xvcikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dDb2xvciA9ICpzaGFkb3dD
b2xvcjsKLQotI2lmIFVTRShDRykKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hhZG93c1VzZUxl
Z2FjeVJhZGl1czsKLSAgICAgICAgZGVjb2RlciA+PiBzaGFkb3dzVXNlTGVnYWN5UmFkaXVzOwot
ICAgICAgICBpZiAoIXNoYWRvd3NVc2VMZWdhY3lSYWRpdXMpCi0gICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93c1VzZUxl
Z2FjeVJhZGl1cyA9ICpzaGFkb3dzVXNlTGVnYWN5UmFkaXVzOwotI2VuZGlmIC8vIFVTRShDRykK
LSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlVGhpY2tuZXNzQ2hhbmdlKSkgewotICAgICAgICBPcHRp
b25hbDxmbG9hdD4gc3Ryb2tlVGhpY2tuZXNzOwotICAgICAgICBkZWNvZGVyID4+IHN0cm9rZVRo
aWNrbmVzczsKLSAgICAgICAgaWYgKCFzdHJva2VUaGlja25lc3MpCi0gICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlVGhp
Y2tuZXNzID0gKnN0cm9rZVRoaWNrbmVzczsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2Uu
bV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6VGV4dERyYXdpbmdN
b2RlQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxUZXh0RHJhd2luZ01vZGVGbGFncz4gdGV4
dERyYXdpbmdNb2RlOwotICAgICAgICBkZWNvZGVyID4+IHRleHREcmF3aW5nTW9kZTsKLSAgICAg
ICAgaWYgKCF0ZXh0RHJhd2luZ01vZGUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUudGV4dERyYXdpbmdNb2RlID0gV1RGTW92
ZSgqdGV4dERyYXdpbmdNb2RlKTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2Up
KSB7Ci0gICAgICAgIE9wdGlvbmFsPENvbG9yPiBzdHJva2VDb2xvcjsKLSAgICAgICAgZGVjb2Rl
ciA+PiBzdHJva2VDb2xvcjsKLSAgICAgICAgaWYgKCFzdHJva2VDb2xvcikKLSAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJv
a2VDb2xvciA9ICpzdHJva2VDb2xvcjsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9j
aGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdl
KSkgewotICAgICAgICBPcHRpb25hbDxDb2xvcj4gZmlsbENvbG9yOwotICAgICAgICBkZWNvZGVy
ID4+IGZpbGxDb2xvcjsKLSAgICAgICAgaWYgKCFmaWxsQ29sb3IpCi0gICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbENvbG9y
ID0gKmZpbGxDb2xvcjsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlU3R5bGVDaGFuZ2UpKSB7Ci0g
ICAgICAgIFN0cm9rZVN0eWxlIHN0cm9rZVN0eWxlOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHN0cm9rZVN0eWxlKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAg
ICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VTdHlsZSA9IHN0cm9rZVN0eWxlOwotICAg
IH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpGaWxsUnVsZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8V2luZFJ1
bGU+IGZpbGxSdWxlOwotICAgICAgICBkZWNvZGVyID4+IGZpbGxSdWxlOwotICAgICAgICBpZiAo
IWZpbGxSdWxlKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBz
dGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxSdWxlID0gKmZpbGxSdWxlOwotICAgIH0KLQotICAgIGlm
IChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpDb21wb3NpdGVPcGVyYXRpb25DaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPENvbXBvc2l0
ZU9wZXJhdG9yPiBjb21wb3NpdGVPcGVyYXRvcjsKLSAgICAgICAgZGVjb2RlciA+PiBjb21wb3Np
dGVPcGVyYXRvcjsKLSAgICAgICAgaWYgKCFjb21wb3NpdGVPcGVyYXRvcikKLSAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5jb21w
b3NpdGVPcGVyYXRvciA9ICpjb21wb3NpdGVPcGVyYXRvcjsKLSAgICB9Ci0KLSAgICBpZiAoc3Rh
dGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6Qmxl
bmRNb2RlQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxCbGVuZE1vZGU+IGJsZW5kTW9kZTsK
LSAgICAgICAgZGVjb2RlciA+PiBibGVuZE1vZGU7Ci0gICAgICAgIGlmICghYmxlbmRNb2RlKQot
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5t
X3N0YXRlLmJsZW5kTW9kZSA9ICpibGVuZE1vZGU7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHlDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPEludGVycG9sYXRp
b25RdWFsaXR5PiBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5OwotICAgICAgICBkZWNvZGVyID4+
IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk7Ci0gICAgICAgIGlmICghaW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eSkKKyAgICBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHN0
cm9rZUdyYWRpZW50SWRlbnRpZmllciA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOwor
ICAgIGlmIChjaGFuZ2VGbGFncy0+Y29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9r
ZUdyYWRpZW50Q2hhbmdlKSkgeworICAgICAgICBkZWNvZGVyID4+IHN0cm9rZUdyYWRpZW50SWRl
bnRpZmllcjsKKyAgICAgICAgaWYgKCFzdHJva2VHcmFkaWVudElkZW50aWZpZXIpCiAgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUu
aW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSA9ICppbWFnZUludGVycG9sYXRpb25RdWFsaXR5Owog
ICAgIH0KIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpBbHBoYUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+
IGFscGhhOwotICAgICAgICBkZWNvZGVyID4+IGFscGhhOwotICAgICAgICBpZiAoIWFscGhhKQor
ICAgIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc3Ryb2tlUGF0dGVybklk
ZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKTsKKyAgICBpZiAoY2hhbmdl
RmxhZ3MtPmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VQYXR0ZXJuQ2hhbmdl
KSkgeworICAgICAgICBkZWNvZGVyID4+IHN0cm9rZVBhdHRlcm5JZGVudGlmaWVyOworICAgICAg
ICBpZiAoIXN0cm9rZVBhdHRlcm5JZGVudGlmaWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmFscGhhID0gKmFscGhhOwog
ICAgIH0KIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXNDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlv
bmFsPGJvb2w+IHNob3VsZEFudGlhbGlhczsKLSAgICAgICAgZGVjb2RlciA+PiBzaG91bGRBbnRp
YWxpYXM7Ci0gICAgICAgIGlmICghc2hvdWxkQW50aWFsaWFzKQorICAgIE9wdGlvbmFsPFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcj4gZmlsbEdyYWRpZW50SWRlbnRpZmllciA9IFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpOworICAgIGlmIChjaGFuZ2VGbGFncy0+Y29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpIHsKKyAgICAgICAgZGVjb2Rl
ciA+PiBmaWxsR3JhZGllbnRJZGVudGlmaWVyOworICAgICAgICBpZiAoIWZpbGxHcmFkaWVudElk
ZW50aWZpZXIpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0
YXRlQ2hhbmdlLm1fc3RhdGUuc2hvdWxkQW50aWFsaWFzID0gKnNob3VsZEFudGlhbGlhczsKICAg
ICB9CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U2hvdWxkU21vb3RoRm9udHNDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlv
bmFsPGJvb2w+IHNob3VsZFNtb290aEZvbnRzOwotICAgICAgICBkZWNvZGVyID4+IHNob3VsZFNt
b290aEZvbnRzOwotICAgICAgICBpZiAoIXNob3VsZFNtb290aEZvbnRzKQorICAgIE9wdGlvbmFs
PFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gZmlsbFBhdHRlcm5JZGVudGlmaWVyID0gUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7CisgICAgaWYgKGNoYW5nZUZsYWdzLT5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFBhdHRlcm5DaGFuZ2UpKSB7CisgICAgICAgIGRl
Y29kZXIgPj4gZmlsbFBhdHRlcm5JZGVudGlmaWVyOworICAgICAgICBpZiAoIWZpbGxQYXR0ZXJu
SWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAg
c3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRTbW9vdGhGb250cyA9ICpzaG91bGRTbW9vdGhGb250
czsKICAgICB9CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKSkg
ewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM7Ci0g
ICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotICAgICAgICBp
ZiAoIXNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cykKLSAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRTdWJwaXhlbFF1
YW50aXplRm9udHMgPSAqc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotICAgIH0KKyAgICBP
cHRpb25hbDxDb2xvcj4gc3Ryb2tlQ29sb3I7CisgICAgZGVjb2RlciA+PiBzdHJva2VDb2xvcjsK
KyAgICBpZiAoIXN0cm9rZUNvbG9yKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0g
ICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25h
bDxib29sPiBzaGFkb3dzSWdub3JlVHJhbnNmb3JtczsKLSAgICAgICAgZGVjb2RlciA+PiBzaGFk
b3dzSWdub3JlVHJhbnNmb3JtczsKLSAgICAgICAgaWYgKCFzaGFkb3dzSWdub3JlVHJhbnNmb3Jt
cykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8Q29sb3I+
IGZpbGxDb2xvcjsKKyAgICBkZWNvZGVyID4+IGZpbGxDb2xvcjsKKyAgICBpZiAoIWZpbGxDb2xv
cikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5t
X3N0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID0gKnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
OwotICAgIH0KKyAgICBPcHRpb25hbDxDb2xvcj4gc2hhZG93Q29sb3I7CisgICAgZGVjb2RlciA+
PiBzaGFkb3dDb2xvcjsKKyAgICBpZiAoIXNoYWRvd0NvbG9yKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHsgc3RhdGVDaGFuZ2UgfTsKKyAgICByZXR1cm4ge3sg
KmNoYW5nZUZsYWdzLCBpbmxpbmVTdGF0ZSwgKnN0cm9rZUdyYWRpZW50SWRlbnRpZmllciwgKnN0
cm9rZVBhdHRlcm5JZGVudGlmaWVyLCAqZmlsbEdyYWRpZW50SWRlbnRpZmllciwgKmZpbGxQYXR0
ZXJuSWRlbnRpZmllciwgKnN0cm9rZUNvbG9yLCAqZmlsbENvbG9yLCAqc2hhZG93Q29sb3IgfX07
CiB9CiAKIGNsYXNzIFNldExpbmVDYXAgewpAQCAtNzU3LDggKzQ3OSw2IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBj
b25zdDsKIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwogICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9u
UmVjdDsKQEAgLTEwMzcsOCArNzU3LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBseShHcmFw
aGljc0NvbnRleHQmLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogCi0gICAgTk9fUkVU
VVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKLQog
ICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RG
OjpudWxsb3B0OyB9CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBH
cmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogCkBA
IC0xMDY4LDcgKzc4Niw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQogICAgIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblJlY3Q7IH0KIAotICAgIE5P
X1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7
CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0Owog
CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBX
VEY6Om51bGxvcHQ7IH0KQEAgLTEwOTgsNyArODE1LDYgQEAgcHVibGljOgogICAgIEZsb2F0UG9p
bnQgcGhhc2UoKSBjb25zdCB7IHJldHVybiBtX3BoYXNlOyB9CiAgICAgRmxvYXRTaXplIHNwYWNp
bmcoKSBjb25zdCB7IHJldHVybiBtX3NwYWNpbmc7IH0KIAotICAgIE5PX1JFVFVSTl9EVUVfVE9f
QVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8
RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0K
QEAgLTE2MTQsNyArMTMzMCw3IEBAIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIEZpbGxS
ZWN0V2l0aEdyYWRpZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBl
bmNvZGVyIDw8IG1fcmVjdDsKLSAgICBlbmNvZGVyIDw8IG1fZ3JhZGllbnQuZ2V0KCk7CisgICAg
ZW5jb2RlciA8PCBtX2dyYWRpZW50OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAt
MTYyNSw3ICsxMzQxLDggQEAgT3B0aW9uYWw8RmlsbFJlY3RXaXRoR3JhZGllbnQ+IEZpbGxSZWN0
V2l0aEdyYWRpZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIXJlY3QpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBhdXRvIGdyYWRpZW50ID0gR3JhZGll
bnQ6OmRlY29kZShkZWNvZGVyKTsKKyAgICBPcHRpb25hbDxSZWY8R3JhZGllbnQ+PiBncmFkaWVu
dDsKKyAgICBkZWNvZGVyID4+IGdyYWRpZW50OwogICAgIGlmICghZ3JhZGllbnQpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTIyOTAsOSArMjAwNyw2IEBAIHRlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZSwKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkNvbmNhdGVuYXRlQ1RNLAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50LAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0SW5saW5lRmlsbENvbG9yLAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRTdGF0ZSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dExpbmVDYXAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXgg
Yjk0ODNkZjQyZGQ5MDE4N2IxZjY5ZGQ5MWI1ZWZiNGQ0OTBiNDJlYi4uY2NlNjczZDFlZmE5NDNl
ZTQ5MTQ2NzA1ZDJkNjMyODQwZmMzMDFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcApAQCAtNTksNDkgKzU5LDMzIEBAIHZvaWQgUmVjb3JkZXI6OnB1dEltYWdl
RGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBX
CiAgICAgYXBwZW5kPFB1dEltYWdlRGF0YT4oaW5wdXRGb3JtYXQsIGltYWdlRGF0YSwgc3JjUmVj
dCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKIH0KIAotc3RhdGljIGJvb2wgY29udGFpbnNPbmx5
SW5saW5lU3RhdGVDaGFuZ2VzKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBjaGFu
Z2VzLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykK
K3ZvaWQgUmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncywgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlKQogewotICAgIHN0YXRpYyBjb25zdGV4cHIgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MgaW5saW5lU3RhdGVDaGFuZ2VGbGFncyB7Ci0gICAgICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UsCi0gICAgICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSwKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGU6OkZpbGxDb2xvckNoYW5nZSwKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZp
bGxHcmFkaWVudENoYW5nZSwKLSAgICB9OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzICE9IChjaGFu
Z2VGbGFncyAmIGlubGluZVN0YXRlQ2hhbmdlRmxhZ3MpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
cm9rZUNvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLnN0cm9rZUNvbG9yLmlzSW5saW5l
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0
YXRlLmZpbGxDb2xvci5pc0lubGluZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVu
dENoYW5nZSkKLSAgICAgICAgJiYgKCFjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50IHx8ICFT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRp
ZW50KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi12
b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZs
YWdzIGNoYW5nZUZsYWdzKQotewotICAgIGlmICghY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFu
Z2VzKGNoYW5nZXMsIGNoYW5nZUZsYWdzKSkgewotICAgICAgICBhcHBlbmQ8U2V0U3RhdGU+KGNo
YW5nZXMubV9zdGF0ZSwgY2hhbmdlRmxhZ3MpOwotICAgICAgICByZXR1cm47CisgICAgaWYgKHN0
YXRlLnN0cm9rZUdyYWRpZW50KSB7CisgICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICAg
ICAgbV9kZWxlZ2F0ZS0+Y2FjaGVHcmFkaWVudCgqc3RhdGUuc3Ryb2tlR3JhZGllbnQpOworICAg
ICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlR3JhZGllbnQoKnN0YXRlLnN0cm9rZUdyYWRpZW50KTsK
ICAgICB9CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZVN0cm9rZUNv
bG9yPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlQ29sb3IuYXNJbmxpbmUoKSk7CisgICAgaWYgKHN0
YXRlLnN0cm9rZVBhdHRlcm4pIHsKKyAgICAgICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgICAg
ICBtX2RlbGVnYXRlLT5jYWNoZVBhdHRlcm4oKnN0YXRlLnN0cm9rZVBhdHRlcm4pOworICAgICAg
ICBtX2Rpc3BsYXlMaXN0LmNhY2hlUGF0dGVybigqc3RhdGUuc3Ryb2tlUGF0dGVybik7CisgICAg
fQogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dHJva2VUaGlja25lc3NDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNz
PihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzKTsKKyAgICBpZiAoc3RhdGUuZmlsbEdy
YWRpZW50KSB7CisgICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICAgICAgbV9kZWxlZ2F0
ZS0+Y2FjaGVHcmFkaWVudCgqc3RhdGUuZmlsbEdyYWRpZW50KTsKKyAgICAgICAgbV9kaXNwbGF5
TGlzdC5jYWNoZUdyYWRpZW50KCpzdGF0ZS5maWxsR3JhZGllbnQpOworICAgIH0KIAotICAgIGlm
IChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hh
bmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oY2hhbmdlcy5tX3N0YXRl
LmZpbGxDb2xvci5hc0lubGluZSgpKTsKKyAgICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pIHsKKyAg
ICAgICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgICAgICBtX2RlbGVnYXRlLT5jYWNoZVBhdHRl
cm4oKnN0YXRlLmZpbGxQYXR0ZXJuKTsKKyAgICAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZVBhdHRl
cm4oKnN0YXRlLmZpbGxQYXR0ZXJuKTsKKyAgICB9CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpCi0gICAgICAg
IGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRp
ZW50KTsKKyAgICBhcHBlbmQ8U2V0U3RhdGU+KGNoYW5nZUZsYWdzLCBzdGF0ZSk7CiB9CiAKIHZv
aWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlIHR5cGUpCkBAIC0xMTgs
NyArMTAyLDcgQEAgdm9pZCBSZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUg
dHlwZSkKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hh
bmdlc0Zyb21MYXN0U3RhdGUgPSBzdGF0ZUNoYW5nZXMuY2hhbmdlc0Zyb21TdGF0ZShjdXJyZW50
U3RhdGUoKS5sYXN0RHJhd2luZ1N0YXRlKTsKICAgICAgICAgaWYgKGNoYW5nZXNGcm9tTGFzdFN0
YXRlKSB7CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0g
PDwgInByZS1kcmF3aW5nLCBzYXZpbmcgc3RhdGUgIiA8PCBHcmFwaGljc0NvbnRleHRTdGF0ZUNo
YW5nZShzdGF0ZUNoYW5nZXMubV9zdGF0ZSwgY2hhbmdlc0Zyb21MYXN0U3RhdGUpKTsKLSAgICAg
ICAgICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShzdGF0ZUNoYW5nZXMsIGNoYW5nZXNGcm9tTGFz
dFN0YXRlKTsKKyAgICAgICAgICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjaGFuZ2VzRnJvbUxh
c3RTdGF0ZSwgc3RhdGVDaGFuZ2VzLm1fc3RhdGUpOwogICAgICAgICAgICAgc3RhdGVDaGFuZ2Vz
Lm1fY2hhbmdlRmxhZ3MgPSB7IH07CiAgICAgICAgICAgICBjdXJyZW50U3RhdGUoKS5sYXN0RHJh
d2luZ1N0YXRlID0gc3RhdGVDaGFuZ2VzLm1fc3RhdGU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IGI0MDNhZWE0ZmJiYTNjMjUyMjIwZGU4YzBh
ZTJmNGNhYWNjNWUzOTIuLjA4ZWFmNTM3OTFiYWE2YjUyYzg4YWQ5OTM5ZmU2NjAxNTg0MmRkYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtNjksNiArNjksOCBA
QCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUlt
YWdlJikgeyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NhY2hlZEltYWdlQnVmZmVyKGNvbnN0
IEltYWdlQnVmZmVyJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCB2
b2lkIGNhY2hlRm9udChGb250JikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBjYWNoZVBhdHRl
cm4oUGF0dGVybiYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVHcmFkaWVudChHcmFk
aWVudCYpIHsgfQogICAgIH07CiAKICAgICB2b2lkIGZsdXNoQ29udGV4dChGbHVzaElkZW50aWZp
ZXIgaWRlbnRpZmllcikgeyBhcHBlbmQ8Rmx1c2hDb250ZXh0PihpZGVudGlmaWVyKTsgfQpAQCAt
MTc0LDcgKzE3Niw3IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsQXBw
ZW5kSXRlbU9mVHlwZShJdGVtVHlwZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRBcHBl
bmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKTsKIAotICAgIHZvaWQgYXBwZW5kU3RhdGVDaGFuZ2VJdGVt
KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MpOworICAgIHZvaWQgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzLCBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYpOwogCiAgICAgRmxvYXRSZWN0IGV4dGVudEZyb21Mb2NhbEJvdW5kcyhjb25zdCBGbG9h
dFJlY3QmKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
LmNwcAppbmRleCA0MmUxNDEyZTU0ODQ2YjBhMmJkODQ1NjNlYmFmNjI5NjhhNTUzYjdjLi42NWZi
N2E4NTQyZmM5YzExYzM2YjkyZDAxYmQzNGI2NGI3MTMzMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCkBAIC0zNCwxMiArMzQsMTQgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLVJlcGxheWVyOjpSZXBsYXllcihH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwg
Y29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwKiBpbWFnZUJ1ZmZlcnMsIGNvbnN0IE5hdGl2ZUltYWdl
SGFzaE1hcCogbmF0aXZlSW1hZ2VzLCBjb25zdCBGb250UmVuZGVyaW5nUmVzb3VyY2VNYXAqIGZv
bnRzLCBEZWxlZ2F0ZSogZGVsZWdhdGUpCitSZXBsYXllcjo6UmVwbGF5ZXIoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNvbnN0IEltYWdl
QnVmZmVySGFzaE1hcCogaW1hZ2VCdWZmZXJzLCBjb25zdCBOYXRpdmVJbWFnZUhhc2hNYXAqIG5h
dGl2ZUltYWdlcywgY29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFwKiBmb250cywgY29uc3Qg
UGF0dGVybkhhc2hNYXAqIHBhdHRlcm5zLCBjb25zdCBHcmFkaWVudEhhc2hNYXAqIGdyYWRpZW50
cywgRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBt
X2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQogICAgICwgbV9pbWFnZUJ1ZmZlcnMoaW1hZ2VCdWZm
ZXJzID8gKmltYWdlQnVmZmVycyA6IG1fZGlzcGxheUxpc3QuaW1hZ2VCdWZmZXJzKCkpCiAgICAg
LCBtX25hdGl2ZUltYWdlcyhuYXRpdmVJbWFnZXMgPyAqbmF0aXZlSW1hZ2VzIDogbV9kaXNwbGF5
TGlzdC5uYXRpdmVJbWFnZXMoKSkKICAgICAsIG1fZm9udHMoZm9udHMgPyAqZm9udHMgOiBtX2Rp
c3BsYXlMaXN0LmZvbnRzKCkpCisgICAgLCBtX3BhdHRlcm5zKHBhdHRlcm5zID8gKnBhdHRlcm5z
IDogbV9kaXNwbGF5TGlzdC5wYXR0ZXJucygpKQorICAgICwgbV9ncmFkaWVudHMoZ3JhZGllbnRz
ID8gKmdyYWRpZW50cyA6IG1fZGlzcGxheUxpc3QuZ3JhZGllbnRzKCkpCiAgICAgLCBtX2RlbGVn
YXRlKGRlbGVnYXRlKQogewogfQpAQCAtODIsNiArODQsMzkgQEAgaW5saW5lIHN0YXRpYyBPcHRp
b25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5Rm9udEl0ZW0oR3JhcGhpY3ND
b250ZXgKICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOwogfQogCitpbmxpbmUgc3RhdGlj
IE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlTZXRTdGF0ZUl0ZW0o
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBQYXR0ZXJuSGFzaE1hcCYgcGF0dGVybnMs
IGNvbnN0IEdyYWRpZW50SGFzaE1hcCYgZ3JhZGllbnRzLCBJdGVtSGFuZGxlIGl0ZW0pCit7Cisg
ICAgYXV0byYgc2V0U3RhdGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+KCk7CisgICAgCisgICAg
R3JhZGllbnQqIHN0cm9rZUdyYWRpZW50ID0gbnVsbHB0cjsKKyAgICBQYXR0ZXJuKiBzdHJva2VQ
YXR0ZXJuID0gbnVsbHB0cjsKKyAgICBHcmFkaWVudCogZmlsbEdyYWRpZW50ID0gbnVsbHB0cjsK
KyAgICBQYXR0ZXJuKiBmaWxsUGF0dGVybiA9IG51bGxwdHI7CisKKyAgICBpZiAoYXV0byByZXNv
dXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0uc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyKCkp
IHsKKyAgICAgICAgaWYgKCEoc3Ryb2tlR3JhZGllbnQgPSBncmFkaWVudHMuZ2V0KHJlc291cmNl
SWRlbnRpZmllcikpKQorICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKKyAg
ICB9CisKKyAgICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0uc3Ry
b2tlUGF0dGVybklkZW50aWZpZXIoKSkgeworICAgICAgICBpZiAoIShzdHJva2VQYXR0ZXJuID0g
cGF0dGVybnMuZ2V0KHJlc291cmNlSWRlbnRpZmllcikpKQorICAgICAgICAgICAgcmV0dXJuIHJl
c291cmNlSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZp
ZXIgPSBzZXRTdGF0ZUl0ZW0uZmlsbEdyYWRpZW50SWRlbnRpZmllcigpKSB7CisgICAgICAgIGlm
ICghKGZpbGxHcmFkaWVudCA9IGdyYWRpZW50cy5nZXQocmVzb3VyY2VJZGVudGlmaWVyKSkpCisg
ICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOworICAgIH0KKworICAgIGlmIChh
dXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRlSXRlbS5maWxsUGF0dGVybklkZW50aWZp
ZXIoKSkgeworICAgICAgICBpZiAoIShmaWxsUGF0dGVybiA9IHBhdHRlcm5zLmdldChyZXNvdXJj
ZUlkZW50aWZpZXIpKSkKKyAgICAgICAgICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7Cisg
ICAgfQorCisgICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRleHQsIHN0cm9rZUdyYWRpZW50LCBz
dHJva2VQYXR0ZXJuLCBmaWxsR3JhZGllbnQsIGZpbGxQYXR0ZXJuKTsKKyAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworfQorCiBzdGQ6OnBhaXI8T3B0aW9uYWw8U3RvcFJlcGxheVJlYXNvbj4sIE9w
dGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IFJlcGxheWVyOjphcHBseUl0ZW0o
SXRlbUhhbmRsZSBpdGVtKQogewogICAgIGlmIChtX2RlbGVnYXRlICYmIG1fZGVsZWdhdGUtPmFw
cGx5KGl0ZW0sIG1fY29udGV4dCkpCkBAIC0xMTcsNiArMTUyLDEyIEBAIHN0ZDo6cGFpcjxPcHRp
b25hbDxTdG9wUmVwbGF5UmVhc29uPiwgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyPj4gUmVwCiAgICAgICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07
CiAgICAgfQogCisgICAgaWYgKGl0ZW0uaXM8U2V0U3RhdGU+KCkpIHsKKyAgICAgICAgaWYgKGF1
dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5U2V0U3RhdGVJdGVtKG1f
Y29udGV4dCwgbV9wYXR0ZXJucywgbV9ncmFkaWVudHMsIGl0ZW0pKQorICAgICAgICAgICAgcmV0
dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1p
c3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CisgICAgICAgIHJldHVybiB7IFdURjo6
bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CisgICAgfQorCiAgICAgaXRlbS5hcHBseShtX2NvbnRl
eHQpOwogICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaAppbmRleCBkNDE0YTZmYTA1MDJlMTZmNzc5
ZmJhNjJkMjI0MTk2MzQyM2ViMGFmLi5iNjFmZDdmMzAxNzQwNWE5MmRmZjYyNDlmM2NkMmFhM2E0
MmU1MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKQEAgLTU3LDcg
KzU3LDcgQEAgY2xhc3MgUmVwbGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlcGxh
eWVyKTsKIHB1YmxpYzoKICAgICBjbGFzcyBEZWxlZ2F0ZTsKLSAgICBXRUJDT1JFX0VYUE9SVCBS
ZXBsYXllcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBEaXNwbGF5TGlzdCYsIGNvbnN0IEltYWdl
QnVmZmVySGFzaE1hcCogPSBudWxscHRyLCBjb25zdCBOYXRpdmVJbWFnZUhhc2hNYXAqID0gbnVs
bHB0ciwgY29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFwKiA9IG51bGxwdHIsIERlbGVnYXRl
KiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlcGxheWVyKEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IERpc3BsYXlMaXN0JiwgY29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwKiA9IG51bGxw
dHIsIGNvbnN0IE5hdGl2ZUltYWdlSGFzaE1hcCogPSBudWxscHRyLCBjb25zdCBGb250UmVuZGVy
aW5nUmVzb3VyY2VNYXAqID0gbnVsbHB0ciwgY29uc3QgUGF0dGVybkhhc2hNYXAqID0gbnVsbHB0
ciwgY29uc3QgR3JhZGllbnRIYXNoTWFwKiA9IG51bGxwdHIsIERlbGVnYXRlKiA9IG51bGxwdHIp
OwogICAgIFdFQkNPUkVfRVhQT1JUIH5SZXBsYXllcigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
UmVwbGF5UmVzdWx0IHJlcGxheShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwID0geyB9LCBi
b29sIHRyYWNrUmVwbGF5TGlzdCA9IGZhbHNlKTsKQEAgLTc2LDYgKzc2LDggQEAgcHJpdmF0ZToK
ICAgICBjb25zdCBJbWFnZUJ1ZmZlckhhc2hNYXAmIG1faW1hZ2VCdWZmZXJzOwogICAgIGNvbnN0
IE5hdGl2ZUltYWdlSGFzaE1hcCYgbV9uYXRpdmVJbWFnZXM7CiAgICAgY29uc3QgRm9udFJlbmRl
cmluZ1Jlc291cmNlTWFwJiBtX2ZvbnRzOworICAgIGNvbnN0IFBhdHRlcm5IYXNoTWFwJiBtX3Bh
dHRlcm5zOworICAgIGNvbnN0IEdyYWRpZW50SGFzaE1hcCYgbV9ncmFkaWVudHM7CiAgICAgRGVs
ZWdhdGUqIG1fZGVsZWdhdGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggMjQ1
ODNhZTA3MDFjZWIzYjFhZmJiZGY5NGYwZWE2MDE3YjU5NDMwMi4uOTMyZmNhYTM2MTk1ZWU0ODdm
NGNhMDI3YzY3YTA1MTgyNThkNzVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtMTQ5
LDYgKzE0OSw4IEBAIERpc3BsYXlMaXN0OjpSZXBsYXlSZXN1bHQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6c3VibWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwCiAgICAgICAgICZyZW1vdGVSZXNv
dXJjZUNhY2hlKCkuaW1hZ2VCdWZmZXJzKCksCiAgICAgICAgICZyZW1vdGVSZXNvdXJjZUNhY2hl
KCkubmF0aXZlSW1hZ2VzKCksCiAgICAgICAgICZyZW1vdGVSZXNvdXJjZUNhY2hlKCkuZm9udHMo
KSwKKyAgICAgICAgJnJlbW90ZVJlc291cmNlQ2FjaGUoKS5wYXR0ZXJucygpLAorICAgICAgICAm
cmVtb3RlUmVzb3VyY2VDYWNoZSgpLmdyYWRpZW50cygpLAogICAgICAgICByZXBsYXllckRlbGVn
YXRlCiAgICAgfS5yZXBsYXkoKTsKIH0KQEAgLTMwMiwxNCArMzA0LDI0IEBAIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVGb250KFJlZjxGb250PiYmIGZvbnQpCiAgICAgICAgIHdh
a2VVcEFuZEFwcGx5RGlzcGxheUxpc3Qoc3RkOjpleGNoYW5nZShtX3BlbmRpbmdXYWtldXBJbmZv
LCBXVEY6Om51bGxvcHQpLT5hcmd1bWVudHMpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmNhY2hlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQoreworICAgIG1fcmVt
b3RlUmVzb3VyY2VDYWNoZS5jYWNoZVBhdHRlcm4oV1RGTW92ZShwYXR0ZXJuKSk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYg
Z3JhZGllbnQpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlR3JhZGllbnQoV1RG
TW92ZShncmFkaWVudCkpOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlbGV0
ZUFsbEZvbnRzKCkKIHsKICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuZGVsZXRlQWxsRm9udHMo
KTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNl
KFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
CiB7Ci0gICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5yZWxl
YXNlUmVuZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAog
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhh
bmRsZShEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcikKQEAgLTQwMCw5ICs0MTIsNiBAQCBPcHRp
b25hbDxEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZT4gV0FSTl9VTlVTRURfUkVUVVJOIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmRlYwogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTYXZl
OgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIERpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExp
bmVDYXA6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgogICAg
IGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmgKaW5kZXggN2E1YTBiNmE5OGViZmYxYmJjYzE5NzFiNzBkZTExMDBhOWI5OWRjOC4uYTJh
YzU0MWZmZjgxNTliYTllMDRkODU3ZDY4Yzk5NGI1MmNmNmM5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCkBAIC00Nyw3ICs0Nyw5IEBAIGNsYXNzIERpc3BsYXlMaXN0OwogY2xhc3MgSXRlbTsKIH0K
IGNsYXNzIEZsb2F0U2l6ZTsKK2NsYXNzIEdyYWRpZW50OwogY2xhc3MgTmF0aXZlSW1hZ2U7Citj
bGFzcyBQYXR0ZXJuOwogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKIGVudW0gY2xh
c3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiB9CkBAIC0xMTEsOCArMTEzLDEwIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBv
dXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRh
UmVmZXJlbmNlJiYpPiYmKTsKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVh
YmxlQml0bWFwOjpIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKKyAgICB2b2lkIGNh
Y2hlUGF0dGVybihSZWY8V2ViQ29yZTo6UGF0dGVybj4mJik7CisgICAgdm9pZCBjYWNoZUdyYWRp
ZW50KFJlZjxXZWJDb3JlOjpHcmFkaWVudD4mJik7CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygp
OwotICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZENyZWF0ZVNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRp
ZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKTsKIAogICAgIHN0
cnVjdCBQZW5kaW5nV2FrZXVwSW5mb3JtYXRpb24gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgppbmRleCAyMGY0ZTQ3OGUyNzI5YzYxM2E5NGQ2MjFmZGVlMjQwMzUwZjNl
NGVhLi4wNWZmMzRlNTZiZmEwZjE1YmUyNGU5MDEzMGI2ZmNlNWVlMjQ1YzQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMjgsOSArMjgsMTEgQEAgbWVzc2Fn
ZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIHsKICAgICBHZXRJbWFn
ZURhdGEoZW51bTp1aW50OF90IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0
Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIC0+IChJUEM6OkltYWdl
RGF0YVJlZmVyZW5jZSBpbWFnZURhdGEpIFN5bmNocm9ub3VzCiAgICAgQ2FjaGVOYXRpdmVJbWFn
ZShXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICBD
YWNoZUZvbnQoSVBDOjpGb250UmVmZXJlbmNlIGZvbnQpCisgICAgQ2FjaGVQYXR0ZXJuKElQQzo6
UGF0dGVyblJlZmVyZW5jZSBwYXR0ZXJuKQorICAgIENhY2hlR3JhZGllbnQoSVBDOjpHcmFkaWVu
dFJlZmVyZW5jZSBncmFkaWVudCkKICAgICBEZWxldGVBbGxGb250cygpCiAgICAgRGlkQ3JlYXRl
U2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFu
ZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZm
ZXJJZGVudGlmaWVyKQotICAgIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIFJl
bGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCmluZGV4IDgxZGRlMGJmZmNmMGJkNmNjMWMyOGU1
ZGQyNDYzNzRiMzQ2NDYyNzguLmE0ODY4YjhmM2IyNTQ0ZTEzOWI5Y2JlOThlNmExMGVjNTM0YWRh
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKQEAgLTU0LDEyICs1NCwyNSBAQCB2b2lkIFJlbW90ZVJl
c291cmNlQ2FjaGU6OmNhY2hlRm9udChSZWY8Rm9udD4mJiBmb250KQogICAgIEFTU0VSVF9VTlVT
RUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKKwordm9pZCBSZW1vdGVS
ZXNvdXJjZUNhY2hlOjpjYWNoZVBhdHRlcm4oUmVmPFBhdHRlcm4+JiYgcGF0dGVybikKK3sKKyAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1fcGF0dGVybnMuYWRkKHBhdHRlcm4tPnJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHBhdHRlcm4pKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFk
ZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworfQorCit2b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGU6OmNhY2hlR3JhZGllbnQoUmVmPEdyYWRpZW50PiYmIGdyYWRpZW50KQoreworICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9ncmFkaWVudHMuYWRkKGdyYWRpZW50LT5yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIoKSwgV1RGTW92ZShncmFkaWVudCkpOworICAgIEFTU0VSVF9VTlVTRUQoYWRk
UmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Cit9CisKIHZvaWQgUmVtb3RlUmVzb3VyY2VD
YWNoZTo6ZGVsZXRlQWxsRm9udHMoKQogewogICAgIG1fZm9udHMuY2xlYXIoKTsKIH0KIAotdm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3Rl
UmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKG1faW1h
Z2VCdWZmZXJzLnJlbW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICBy
ZXR1cm47CkBAIC02Nyw2ICs4MCwxMCBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVh
c2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZAogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKG1fZm9udHMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9wYXR0ZXJucy5yZW1vdmUocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX2dyYWRp
ZW50cy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJu
OwogICAgIC8vIENhY2hpbmcgdGhlIHJlbW90ZSByZXNvdXJjZSBzaG91bGQgaGF2ZSBoYXBwZW5l
ZCBiZWZvcmUgcmVsZWFzaW5nIGl0LgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlLmgKaW5kZXggMmNlZDkwOWY0ODExMGM2NjY1NmRlMWJmZTM4MTFkYmFiYWFhOWY0Zi4u
NWY2NzJkMzdmNjYwNzAxNmFmOGYyNzY3NGViNGZkYjQ2NzJjMTZiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5o
CkBAIC0yOCw4ICsyOCwxMCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUg
PFdlYkNvcmUvRm9udC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUGF0dGVybi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIApAQCAt
NDUsMTcgKzQ3LDIzIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogY2FjaGVk
SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIGNhY2hlTmF0aXZlSW1hZ2UoUmVmPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiYmKTsKICAgICB2
b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CisgICAgdm9pZCBjYWNoZVBhdHRl
cm4oUmVmPFdlYkNvcmU6OlBhdHRlcm4+JiYpOworICAgIHZvaWQgY2FjaGVHcmFkaWVudChSZWY8
V2ViQ29yZTo6R3JhZGllbnQ+JiYpOwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKLSAgICB2
b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICBjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZl
ckhhc2hNYXAmIGltYWdlQnVmZmVycygpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VCdWZmZXJzOyB9
CiAgICAgY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VIYXNoTWFwJiBuYXRpdmVJbWFnZXMoKSBj
b25zdCB7IHJldHVybiBtX25hdGl2ZUltYWdlczsgfQogICAgIGNvbnN0IFdlYkNvcmU6OkZvbnRS
ZW5kZXJpbmdSZXNvdXJjZU1hcCYgZm9udHMoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRzOyB9Cisg
ICAgY29uc3QgV2ViQ29yZTo6UGF0dGVybkhhc2hNYXAmIHBhdHRlcm5zKCkgY29uc3QgeyByZXR1
cm4gbV9wYXR0ZXJuczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkdyYWRpZW50SGFzaE1hcCYgZ3Jh
ZGllbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ncmFkaWVudHM7IH0KIAogcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlckhhc2hNYXAgbV9pbWFnZUJ1ZmZlcnM7CiAgICAgV2ViQ29yZTo6
TmF0aXZlSW1hZ2VIYXNoTWFwIG1fbmF0aXZlSW1hZ2VzOwogICAgIFdlYkNvcmU6OkZvbnRSZW5k
ZXJpbmdSZXNvdXJjZU1hcCBtX2ZvbnRzOworICAgIFdlYkNvcmU6OlBhdHRlcm5IYXNoTWFwIG1f
cGF0dGVybnM7CisgICAgV2ViQ29yZTo6R3JhZGllbnRIYXNoTWFwIG1fZ3JhZGllbnRzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9HcmFkaWVudFJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
R3JhZGllbnRSZWZlcmVuY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjk3ZDZhNzlhZTFjOTQ4ZWU3NzMzYmVk
NDE1MzMzMDc3ODUyOGY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvR3JhZGllbnRSZWZlcmVuY2UuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgR3JhZGllbnQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIElQQyB7CisKK3VzaW5nIEdyYWRpZW50UmVmZXJlbmNlID0gUmVmPFdlYkNvcmU6OkdyYWRp
ZW50PjsKKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9QYXR0ZXJuUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9QYXR0ZXJuUmVmZXJlbmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA5MWZkOGY2NDY4Mzk0NzkyMTM4NDQ2
ZDY3NjI0ODQ1YjM5N2Q0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL1BhdHRlcm5SZWZlcmVuY2UuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUGF0dGVybjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3Bh
Y2UgSVBDIHsKKwordXNpbmcgUGF0dGVyblJlZmVyZW5jZSA9IFJlZjxXZWJDb3JlOjpQYXR0ZXJu
PjsKKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCAwZDhkZTA0OWY0YjUwY2JlN2M5OWU3MTA2ODI5NjY5M2VlNTE4ODFjLi4z
ZmUyYzdhNjUyOGU2MmQ4OTJiZDQ2Y2RjYmQyMTQ3NzdhMjk3Yjc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIwNSw2ICsyMDUsOCBAQCBkZWYgdHlwZXNf
dGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgIHJldHVybiBmcm96ZW5zZXQo
WwogICAgICAgICAnSVBDOjpEYXRhUmVmZXJlbmNlJywKICAgICAgICAgJ0lQQzo6Rm9udFJlZmVy
ZW5jZScsCisgICAgICAgICdJUEM6OkdyYWRpZW50UmVmZXJlbmNlJywKKyAgICAgICAgJ0lQQzo6
UGF0dGVyblJlZmVyZW5jZScsCiAgICAgICAgICdNYWNoU2VuZFJpZ2h0JywKICAgICAgICAgJ01l
ZGlhVGltZScsCiAgICAgICAgICdTdHJpbmcnLApAQCAtMjIyLDcgKzIyNCw2IEBAIGRlZiB0eXBl
c190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVNlc3Npb25J
ZGVudGlmaWVyJywKLSAgICAgICAgJ1dlYkNvcmU6Ok5hdGl2ZUltYWdlUmVmZXJlbmNlJywKICAg
ICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBsdWdp
bkxvYWRDbGllbnRQb2xpY3knLAogICAgICAgICAnV2ViQ29yZTo6UG9pbnRlcklEJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGQ3NjY1
NGI2NGY2MmEwOTFjZDkzNmRmYzAzZjAwNGFkZmMxOTljYjUuLjRmNmI0ZTgyMWExOGUxNTY1YTRk
ZjU0Y2M3OThjYzllZTFiYWJlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTA5OSw3ICsxMDk5LDcgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPEltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEltYWdlSGFuZGxlJiBp
bWFnZUhhbmQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFJlZjxG
b250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4m
IGZvbnQpCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFJlZjxGb250PiYgZm9udCkKIHsKICAgICBlbmNvZGVyIDw8IGZvbnQtPm9y
aWdpbigpOwogICAgIGVuY29kZXIgPDwgKGZvbnQtPmlzSW50ZXJzdGl0aWFsKCkgPyBGb250OjpJ
bnRlcnN0aXRpYWw6OlllcyA6IEZvbnQ6OkludGVyc3RpdGlhbDo6Tm8pOwpAQCAtMTE0NSw2ICsx
MTQ1LDIwNSBAQCBPcHRpb25hbDxSZWY8Rm9udD4+IEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgcmV0dXJuIEZvbnQ6OmNyZWF0ZShwbGF0Zm9y
bURhdGEudmFsdWUoKSwgb3JpZ2luLnZhbHVlKCksIGlzSW50ZXJzdGl0aWFsLnZhbHVlKCksIHZp
c2liaWxpdHkudmFsdWUoKSwgaXNUZXh0T3JpZW50YXRpb25GYWxsYmFjay52YWx1ZSgpLCByZW5k
ZXJpbmdSZXJzb3VjZUlkZW50aWZpZXIpOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPFBh
dHRlcm4+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxQYXR0ZXJuPiYgcGF0
dGVybikKK3sKKyAgICBJbWFnZUhhbmRsZSBpbWFnZUhhbmRsZTsKKyAgICBpbWFnZUhhbmRsZS5p
bWFnZSA9IG1ha2VSZWYocGF0dGVybi0+dGlsZUltYWdlKCkpOworICAgIGVuY29kZXIgPDwgaW1h
Z2VIYW5kbGU7CisgICAgZW5jb2RlciA8PCBwYXR0ZXJuLT5wYXR0ZXJuU3BhY2VUcmFuc2Zvcm0o
KTsKKyAgICBlbmNvZGVyIDw8IHBhdHRlcm4tPnJlcGVhdFgoKTsKKyAgICBlbmNvZGVyIDw8IHBh
dHRlcm4tPnJlcGVhdFkoKTsKKyAgICBlbmNvZGVyIDw8IHBhdHRlcm4tPnJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcigpOworfQorCitPcHRpb25hbDxSZWY8UGF0dGVybj4+IEFyZ3VtZW50Q29k
ZXI8UmVmPFBhdHRlcm4+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9u
YWw8SW1hZ2VIYW5kbGU+IGltYWdlSGFuZGxlOworICAgIGRlY29kZXIgPj4gaW1hZ2VIYW5kbGU7
CisgICAgaWYgKCFpbWFnZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247
CisgICAgZGVjb2RlciA+PiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKKyAgICBpZiAoIXBh
dHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WDsKKyAgICBkZWNvZGVyID4+IHJlcGVhdFg7Cisg
ICAgaWYgKCFyZXBlYXRYKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0
aW9uYWw8Ym9vbD4gcmVwZWF0WTsKKyAgICBkZWNvZGVyID4+IHJlcGVhdFk7CisgICAgaWYgKCFy
ZXBlYXRZKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiByZW5kZXJpbmdSZXJzb3VjZUlkZW50aWZpZXI7Cisg
ICAgZGVjb2RlciA+PiByZW5kZXJpbmdSZXJzb3VjZUlkZW50aWZpZXI7CisgICAgaWYgKCFyZW5k
ZXJpbmdSZXJzb3VjZUlkZW50aWZpZXIuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIGF1dG8gcGF0dGVybiA9IFBhdHRlcm46OmNyZWF0ZShpbWFnZUhhbmRs
ZS0+aW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgKnJlcGVhdFgsICpyZXBlYXRZLCAqcmVuZGVyaW5n
UmVyc291Y2VJZGVudGlmaWVyKTsKKyAgICBwYXR0ZXJuLT5zZXRQYXR0ZXJuU3BhY2VUcmFuc2Zv
cm0oKnBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKTsKKyAgICByZXR1cm4gcGF0dGVybjsKK30K
Kwordm9pZCBBcmd1bWVudENvZGVyPEdyYWRpZW50OjpDb2xvclN0b3A+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgR3JhZGllbnQ6OkNvbG9yU3RvcCYgc3RvcCkKK3sKKyAgICBlbmNv
ZGVyIDw8IHN0b3Aub2Zmc2V0OworICAgIGVuY29kZXIgPDwgc3RvcC5jb2xvcjsKK30KKworT3B0
aW9uYWw8R3JhZGllbnQ6OkNvbG9yU3RvcD4gQXJndW1lbnRDb2RlcjxHcmFkaWVudDo6Q29sb3JT
dG9wPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8ZmxvYXQ+IG9m
ZnNldDsKKyAgICBkZWNvZGVyID4+IG9mZnNldDsKKyAgICBpZiAoIW9mZnNldCkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPENvbG9yPiBjb2xvcjsKKyAgICBk
ZWNvZGVyID4+IGNvbG9yOworICAgIGlmICghY29sb3IpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKm9mZnNldCwgKmNvbG9yIH19OworfQorCit2b2lkIEFy
Z3VtZW50Q29kZXI8R3JhZGllbnQ6OkxpbmVhckRhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgR3JhZGllbnQ6OkxpbmVhckRhdGEmIGRhdGEpCit7CisgICAgZW5jb2RlciA8PCBk
YXRhLnBvaW50MDsKKyAgICBlbmNvZGVyIDw8IGRhdGEucG9pbnQxOworfQorCitPcHRpb25hbDxH
cmFkaWVudDo6TGluZWFyRGF0YT4gQXJndW1lbnRDb2RlcjxHcmFkaWVudDo6TGluZWFyRGF0YT46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBv
aW50MDsKKyAgICBkZWNvZGVyID4+IHBvaW50MDsKKyAgICBpZiAoIXBvaW50MCkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBvaW50MTsK
KyAgICBkZWNvZGVyID4+IHBvaW50MTsKKyAgICBpZiAoIXBvaW50MSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqcG9pbnQwLCAqcG9pbnQxIH19OworfQor
Cit2b2lkIEFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OlJhZGlhbERhdGE+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgR3JhZGllbnQ6OlJhZGlhbERhdGEmIGRhdGEpCit7CisgICAgZW5j
b2RlciA8PCBkYXRhLnBvaW50MDsKKyAgICBlbmNvZGVyIDw8IGRhdGEucG9pbnQxOworICAgIGVu
Y29kZXIgPDwgZGF0YS5zdGFydFJhZGl1czsKKyAgICBlbmNvZGVyIDw8IGRhdGEuZW5kUmFkaXVz
OworICAgIGVuY29kZXIgPDwgZGF0YS5hc3BlY3RSYXRpbzsKK30KKworT3B0aW9uYWw8R3JhZGll
bnQ6OlJhZGlhbERhdGE+IEFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OlJhZGlhbERhdGE+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxGbG9hdFBvaW50PiBwb2ludDA7
CisgICAgZGVjb2RlciA+PiBwb2ludDA7CisgICAgaWYgKCFwb2ludDApCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGbG9hdFBvaW50PiBwb2ludDE7CisgICAg
ZGVjb2RlciA+PiBwb2ludDE7CisgICAgaWYgKCFwb2ludDEpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxmbG9hdD4gc3RhcnRSYWRpdXM7CisgICAgZGVjb2Rl
ciA+PiBzdGFydFJhZGl1czsKKyAgICBpZiAoIXN0YXJ0UmFkaXVzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8ZmxvYXQ+IGVuZFJhZGl1czsKKyAgICBkZWNv
ZGVyID4+IGVuZFJhZGl1czsKKyAgICBpZiAoIWVuZFJhZGl1cykKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGZsb2F0PiBhc3BlY3RSYXRpbzsKKyAgICBkZWNv
ZGVyID4+IGFzcGVjdFJhdGlvOworICAgIGlmICghYXNwZWN0UmF0aW8pCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKnBvaW50MCwgKnBvaW50MSwgKnN0YXJ0
UmFkaXVzLCAqZW5kUmFkaXVzLCAqYXNwZWN0UmF0aW8gfX07Cit9CisKK3ZvaWQgQXJndW1lbnRD
b2RlcjxHcmFkaWVudDo6Q29uaWNEYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEdyYWRpZW50OjpDb25pY0RhdGEmIGRhdGEpCit7CisgICAgZW5jb2RlciA8PCBkYXRhLnBvaW50
MDsKKyAgICBlbmNvZGVyIDw8IGRhdGEuYW5nbGVSYWRpYW5zOworfQorCitPcHRpb25hbDxHcmFk
aWVudDo6Q29uaWNEYXRhPiBBcmd1bWVudENvZGVyPEdyYWRpZW50OjpDb25pY0RhdGE+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxGbG9hdFBvaW50PiBwb2ludDA7
CisgICAgZGVjb2RlciA+PiBwb2ludDA7CisgICAgaWYgKCFwb2ludDApCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxmbG9hdD4gYW5nbGVSYWRpYW5zOworICAg
IGRlY29kZXIgPj4gYW5nbGVSYWRpYW5zOworICAgIGlmICghYW5nbGVSYWRpYW5zKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7ICpwb2ludDAsICphbmdsZVJh
ZGlhbnMgfX07Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxSZWY8R3JhZGllbnQ+Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxHcmFkaWVudD4mIGdyYWRpZW50KQoreworICAg
IGVuY29kZXIgPDwgZ3JhZGllbnQtPmRhdGEoKTsKKyAgICBlbmNvZGVyIDw8IGdyYWRpZW50LT5y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKTsKKworICAgIGVuY29kZXIgPDwgZ3JhZGllbnQt
PnN0b3BzKCk7CisgICAgZW5jb2RlciA8PCBncmFkaWVudC0+c3RvcHNTb3J0ZWQoKTsKKyAgICBl
bmNvZGVyIDw8IGdyYWRpZW50LT5zcHJlYWRNZXRob2QoKTsKKyAgICBlbmNvZGVyIDw8IGdyYWRp
ZW50LT5ncmFkaWVudFNwYWNlVHJhbnNmb3JtKCk7Cit9CisKK09wdGlvbmFsPFJlZjxHcmFkaWVu
dD4+IEFyZ3VtZW50Q29kZXI8UmVmPEdyYWRpZW50Pj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIE9wdGlvbmFsPEdyYWRpZW50OjpEYXRhPiBkYXRhOworICAgIGRlY29kZXIgPj4g
ZGF0YTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJlbmRlcmluZ1JlcnNvdWNl
SWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IHJlbmRlcmluZ1JlcnNvdWNlSWRlbnRpZmllcjsK
KyAgICBpZiAoIXJlbmRlcmluZ1JlcnNvdWNlSWRlbnRpZmllci5oYXNWYWx1ZSgpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgYXV0byBncmFkaWVudCA9IEdyYWRpZW50Ojpj
cmVhdGUoV1RGTW92ZSgqZGF0YSksICpyZW5kZXJpbmdSZXJzb3VjZUlkZW50aWZpZXIpOworCisg
ICAgT3B0aW9uYWw8R3JhZGllbnQ6OkNvbG9yU3RvcFZlY3Rvcj4gc3RvcHM7CisgICAgZGVjb2Rl
ciA+PiBzdG9wczsKKyAgICBpZiAoIXN0b3BzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgIE9wdGlvbmFsPGJvb2w+IHN0b3BzU29ydGVkOworICAgIGRlY29kZXIgPj4gc3RvcHNT
b3J0ZWQ7CisgICAgaWYgKCFzdG9wc1NvcnRlZC5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIGlmICgqc3RvcHNTb3J0ZWQpCisgICAgICAgIGdyYWRpZW50LT5z
ZXRTb3J0ZWRDb2xvclN0b3BzKFdURk1vdmUoKnN0b3BzKSk7CisgICAgZWxzZSB7CisgICAgICAg
IGZvciAoYXV0byYgc3RvcCA6ICpzdG9wcykKKyAgICAgICAgICAgIGdyYWRpZW50LT5hZGRDb2xv
clN0b3AoV1RGTW92ZShzdG9wKSk7CisgICAgfQorCisgICAgR3JhZGllbnRTcHJlYWRNZXRob2Qg
c3ByZWFkTWV0aG9kOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3ByZWFkTWV0aG9kKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBncmFkaWVudC0+c2V0U3ByZWFkTWV0aG9k
KHNwcmVhZE1ldGhvZCk7CisKKyAgICBPcHRpb25hbDxBZmZpbmVUcmFuc2Zvcm0+IGdyYWRpZW50
U3BhY2VUcmFuc2Zvcm1hdGlvbjsKKyAgICBkZWNvZGVyID4+IGdyYWRpZW50U3BhY2VUcmFuc2Zv
cm1hdGlvbjsKKyAgICBpZiAoIWdyYWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbikKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBncmFkaWVudC0+c2V0R3JhZGllbnRTcGFjZVRyYW5z
Zm9ybShXVEZNb3ZlKCpncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24pKTsKKworICAgIHJldHVy
biBncmFkaWVudDsKK30KKwogdm9pZCBBcmd1bWVudENvZGVyPEN1cnNvcj46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBDdXJzb3ImIGN1cnNvcikKIHsKICAgICBlbmNvZGVyIDw8IGN1
cnNvci50eXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCmluZGV4IGZlNzg1OGZmOWNhNmE0ZmNjNTlmMTI0M2IzODEzNDRlYzVkZmZjYWMuLjkxZTY0
NzNjMjhhMzY4YjQyODE2MDQ5MTgxZWIyODFmZTZlYTE3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zMCwxMSArMzAsMTEgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9HcmFkaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEYXRh
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lu
cHV0TW9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
TG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgpAQCAtMTE5LDYgKzEx
OSw3IEBAIGNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rpb247CiBj
bGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKK2NsYXNzIFBh
dHRlcm47CiBjbGFzcyBQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOwogY2xhc3MgUHJv
dGVjdGlvblNwYWNlOwogY2xhc3MgUmVnaW9uOwpAQCAtNDEzLDkgKzQxNCw5IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q3JlZGVudGlhbD4gewogICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIFdl
YkNvcmU6OkNyZWRlbnRpYWwmKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6Q3Vyc29yPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDdXJzb3ImKTsKK3RlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VIYW5kbGU+IHsKKyAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkltYWdlSGFuZGxlJik7CisgICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW1hZ2VI
YW5kbGUmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmVmPFdlYkNv
cmU6OkZvbnQ+PiB7CkBAIC00MjUsOSArNDI2LDM5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8UmVmPFdlYkNvcmU6OkZvbnQ+PiB7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNv
cmU6OkZvbnRQbGF0Zm9ybURhdGE+IGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJik7CiB9Owog
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlSGFuZGxlPiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbWFnZUhh
bmRsZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OkltYWdlSGFuZGxlJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFJlZjxXZWJDb3JlOjpQYXR0ZXJuPj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgUmVmPFdlYkNvcmU6OlBhdHRlcm4+Jik7CisgICAgc3RhdGljIE9wdGlvbmFs
PFJlZjxXZWJDb3JlOjpQYXR0ZXJuPj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhZGllbnQ6OkNvbG9yU3RvcD4gewor
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhZGllbnQ6
OkNvbG9yU3RvcCYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpHcmFkaWVudDo6Q29s
b3JTdG9wPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpHcmFkaWVudDo6TGluZWFyRGF0YT4geworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhZGllbnQ6OkxpbmVhckRhdGEmKTsK
KyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6R3JhZGllbnQ6OkxpbmVhckRhdGE+IGRlY29k
ZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkdyYWRpZW50OjpSYWRpYWxEYXRhPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpHcmFkaWVudDo6UmFkaWFsRGF0YSYpOworICAgIHN0YXRpYyBP
cHRpb25hbDxXZWJDb3JlOjpHcmFkaWVudDo6UmFkaWFsRGF0YT4gZGVjb2RlKERlY29kZXImKTsK
K307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhZGllbnQ6
OkNvbmljRGF0YT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6R3JhZGllbnQ6OkNvbmljRGF0YSYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3Jl
OjpHcmFkaWVudDo6Q29uaWNEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWY8V2ViQ29yZTo6R3JhZGllbnQ+PiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBSZWY8V2ViQ29yZTo6R3JhZGllbnQ+Jik7
CisgICAgc3RhdGljIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpHcmFkaWVudD4+IGRlY29kZShEZWNv
ZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkN1
cnNvcj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
Q3Vyc29yJik7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6Q3Vyc29yJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjM3MzAwNWU5YmU4MjhkMDIzNzVi
YjQ0MWFjM2NkYTk5ZmFhNjIyYS4uZjU4ZjFiZTQ2ZmYzYzc2OTY0Njg3MTE1YmUyYzlmODgxZWQz
NzM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC00NDY0LDYgKzQ0NjQsOCBAQAogCQk3MjdBN0YzODI0MDc4OEYwMDA0RDI5MzEgLyog
UGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzkyNDA3ODhGMTAwNEQyOTMxIC8qIElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzI3QTdGNDkyNDA4QUVFNjAwNEQyOTMxIC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3MjgzMDFEODI1OEQzOUJEMDAzNERCNzYgLyogUGF0dGVyblJlZmVyZW5j
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXR0ZXJuUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTcyODMwMUQ5MjU4RDM5REEwMDM0REI3NiAvKiBHcmFkaWVudFJlZmVyZW5j
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHcmFkaWVudFJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjhFODZFRjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RjAxNzk1MTg4QzAwODc4NzlF
IC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViQ29sb3JQaWNrZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyQjUzMTU3MjUzQzFFNEQwMDQ5Mjk1QSAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY4ODEsNiArNjg4Myw3IEBACiAJCQkJQkMwMzJE
QTAxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuaCAqLywKIAkJCQk5QkQ4QUI0OTI1ODIwRTUy
MDA1Mzg2RjggLyogRm9udFJlZmVyZW5jZS5oICovLAogCQkJCTQxNTFFNUMzMUZCQjkwQTkwMEU0
N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5oICovLAorCQkJCTcyODMwMUQ5MjU4RDM5REEwMDM0
REI3NiAvKiBHcmFkaWVudFJlZmVyZW5jZS5oICovLAogCQkJCUMwQ0U3MkFDMTI0N0U3OEQwMEJD
MEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggKi8sCiAJCQkJMUM5QUYzNjEyNDEzNEQyMzAwRDNFQzAy
IC8qIEltYWdlRGF0YVJlZmVyZW5jZS5oICovLAogCQkJCTlCRjVFQzYzMjU0MTBFOTkwMDk4NEU3
NyAvKiBKU0lQQ0JpbmRpbmcuY3BwICovLApAQCAtNjg5Miw2ICs2ODk1LDcgQEAKIAkJCQkxQTNF
RUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi8sCiAJCQkJMUFB
QjAzNzcxODVBN0M2QTAwRURGNTAxIC8qIE1lc3NhZ2VTZW5kZXIuY3BwICovLAogCQkJCTFBQUIw
Mzc4MTg1QTdDNkEwMEVERjUwMSAvKiBNZXNzYWdlU2VuZGVyLmggKi8sCisJCQkJNzI4MzAxRDgy
NThEMzlCRDAwMzREQjc2IC8qIFBhdHRlcm5SZWZlcmVuY2UuaCAqLywKIAkJCQkyREMxODAwMUQ5
MERERDE1RkM2OTkxQTkgLyogU2hhcmVkQnVmZmVyQ29weS5jcHAgKi8sCiAJCQkJNUNDNURCOTEy
MTQ4OEUxNjAwNkNCOEE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCAqLywKIAkJCQkyREMxODU1RURC
RkI4NTBCQTBCNkQwNkQgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGU4YTIzMjdiMGJjOTIzOTMxMTUxZTc3OWJhMWM5
ZGI3YzNhYzE0ZWUuLjc3ZjMwZTQ1NzBmZWY5ODI0OGIwYTM1YWMxODMyMmRjNmNhYTI1MTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgpOwogICAgICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
KCkucmVsZWFzZUltYWdlQnVmZmVyKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAg
ICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LT5yZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UobV9yZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAogICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBj
cmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKQpAQCAtMTkwLDEyICsxOTAsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIGNsZWFyRGlzcGxheUxpc3QoKTsKICAgICB9CiAKLSAgICB2b2lkIGNh
Y2hlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2UmIGltYWdlKSBvdmVycmlkZQotICAg
IHsKLSAgICAgICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQotICAgICAgICAg
ICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eSgpLmNhY2hlTmF0aXZlSW1hZ2UoaW1hZ2UpOwotICAgIH0KLQogICAgIGJvb2wgaXNDYWNoZWRJ
bWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIGNvbnN0
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KQpAQCAtMjA1LDYgKzE5OSwzMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBjYWNo
ZWRJbWFnZUJ1ZmZlcjsKICAgICB9CiAKKyAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoV2ViQ29y
ZTo6TmF0aXZlSW1hZ2UmIGltYWdlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmNhY2hlTmF0aXZlSW1hZ2Uo
aW1hZ2UpOworICAgIH0KKworICAgIHZvaWQgY2FjaGVGb250KFdlYkNvcmU6OkZvbnQmIGZvbnQp
IG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkpCisgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5KCkuY2FjaGVGb250KGZvbnQpOworICAgIH0KKworICAgIHZvaWQgY2Fj
aGVQYXR0ZXJuKFdlYkNvcmU6OlBhdHRlcm4mIHBhdHRlcm4pIG92ZXJyaWRlCisgICAgeworICAg
ICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCisgICAgICAgICAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkuY2Fj
aGVQYXR0ZXJuKHBhdHRlcm4pOworICAgIH0KKworICAgIHZvaWQgY2FjaGVHcmFkaWVudChXZWJD
b3JlOjpHcmFkaWVudCYgZ3JhZGllbnQpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAobV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCisgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkuY2FjaGVHcmFkaWVudChn
cmFkaWVudCk7CisgICAgfQorCiAgICAgdm9pZCBjaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVy
KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBuZXh0SW1hZ2VCdWZmZXIpIGZp
bmFsCiAgICAgewogICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNw
bGF5TGlzdCgpLmlzRW1wdHkoKTsKQEAgLTI0MSwxMiArMjU5LDYgQEAgcHJvdGVjdGVkOgogICAg
ICAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgpOwogICAgIH0KIAotICAgIHZvaWQgY2FjaGVG
b250KFdlYkNvcmU6OkZvbnQmIGZvbnQpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAobV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkuY2FjaGVGb250KGZvbnQp
OwotICAgIH0KLQogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySGFuZGxlIGNy
ZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBvdmVycmlkZQogICAgIHsKICAgICAgICAg
aWYgKExJS0VMWShtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCkBAIC0zMjksOSArMzQx
LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2F2ZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNjYWxlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
Q1RNOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbENvbG9yOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46CiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGUzNzMxNjdhMjhhZGNjMjVkMDM1ZDgz
M2VlY2QzZDMzOTE0MWIwNTUuLjUzNjVmYWQwMTU5YWQxYzAwY2M4ZTU1NDFhM2NhNzhlN2NkYzk2
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTE1Niw5
ICsxNTYsMTkgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hlTmF0aXZl
SW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUKICAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDYWNoZU5hdGl2ZUltYWdlKGhhbmRsZSwgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZUZvbnQoUmVmPFdlYkNvcmU6
OkZvbnQ+JiYgZm9udCkKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZUZv
bnQoRm9udCYgZm9udCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpDYWNoZUZvbnQoV1RGTW92ZShmb250KSksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNhY2hlRm9u
dChtYWtlUmVmKGZvbnQpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7Cit9CisKK3Zv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZVBhdHRlcm4oUGF0dGVybiYgcGF0
dGVybikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDYWNo
ZVBhdHRlcm4obWFrZVJlZihwYXR0ZXJuKSksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIp
OworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y2FjaGVHcmFkaWVudChH
cmFkaWVudCYgZ3JhZGllbnQpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Q2FjaGVHcmFkaWVudChtYWtlUmVmKGdyYWRpZW50KSksIG1fcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
ZGVsZXRlQWxsRm9udHMoKQpAQCAtMTY2LDEyICsxNzYsMTIgQEAgdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmRlbGV0ZUFsbEZvbnRzKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpEZWxldGVBbGxGb250cygpLCBtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVh
c2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVh
c2VSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGlmIChyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgPT0gbV9jdXJyZW50RGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXIpCiAgICAgICAg
IG1fY3VycmVudERlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0
OwogCi0gICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFzZVJl
bW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OlJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
aW5kZXggZWMyOGRiNTc1MjU5OWFlZGVjZWRhOTA1ODkzZjFiYTk3YTE4MWEwMi4uYzEyNWQ4NWM4
MzI5NGMwY2Y2YWYwMzE2OTVhNzFmYjAyNWY3MWE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oCkBAIC04Myw5ICs4MywxMSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFdl
YkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChjb25zdCBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0g
ICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOworICAgIHZvaWQgY2FjaGVG
b250KFdlYkNvcmU6OkZvbnQmKTsKKyAgICB2b2lkIGNhY2hlUGF0dGVybihXZWJDb3JlOjpQYXR0
ZXJuJik7CisgICAgdm9pZCBjYWNoZUdyYWRpZW50KFdlYkNvcmU6OkdyYWRpZW50Jik7CiAgICAg
dm9pZCBkZWxldGVBbGxGb250cygpOwotICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZWxlYXNlUmVu
ZGVyaW5nUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAog
ICAgIGVudW0gY2xhc3MgRGlkUmVjZWl2ZUJhY2tlbmRDcmVhdGlvblJlc3VsdCA6IGJvb2wgewog
ICAgICAgICBSZWNlaXZlZEFueVJlc3BvbnNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuY3BwCmluZGV4IDBjZTk0NWU3MDVkOTgyNzBmZmIwYzkxMGY4YTVhYWMxZTAxN2FmNmYuLjAz
ZGY4YWJiMGY2ZGQ2ZDM4MjYzMzc3M2U0NGM2NjVkZTQ4ZmM4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5Ojp+UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkKICAgICAgICAgaW1hZ2UtPnJlbW92
ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNh
Y2hlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQordm9pZCBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGlt
YWdlQnVmZmVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKGlt
YWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihpbWFn
ZUJ1ZmZlcikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdF
bnRyeSk7CkBAIC0xMDEsNiArMTAxLDE1IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiBpbWFnZSkKICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jYWNoZU5hdGl2ZUltYWdlKGhhbmRsZSwgaW1hZ2UucmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKCkpOwogfQogCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX25hdGl2ZUltYWdlcy5y
ZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAmJiAhbV9wYXR0ZXJucy5yZW1vdmUo
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAmJiAhbV9ncmFkaWVudHMucmVtb3ZlKHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRlbGwg
dGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlLgorICAgIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOworfQorCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2Fj
aGVGb250KEZvbnQmIGZvbnQpCiB7CiAgICAgYXV0byByZXN1bHQgPSBtX2ZvbnRJZGVudGlmaWVy
VG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5lbnN1cmUoZm9udC5yZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIoKSwgWyZdIHsKQEAgLTExNSwxMyArMTI0LDI4IEBAIHZvaWQgUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUZvbnQoRm9udCYgZm9udCkKICAgICAgICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY2FjaGVGb250KG1ha2VSZWYoZm9udCkpOwogfQogCi12
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVQYXR0ZXJuKFBhdHRlcm4mIHBhdHRlcm4pCiB7
Ci0gICAgaWYgKCFtX25hdGl2ZUltYWdlcy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKSkKLSAgICAgICAgcmV0dXJuOworICAgIG1fcGF0dGVybnMuZW5zdXJlKHBhdHRlcm4ucmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFsmXSgpIHsKKyAgICAgICAgLy8gU2V0IGl0c2Vs
ZiBhcyBhbiBvYnNlcnZlciB0byBQYXR0ZXJuLCBzbyByZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2Uo
KSBnZXRzIGNhbGxlZC4KKyAgICAgICAgcGF0dGVybi5hZGRPYnNlcnZlcigqdGhpcyk7CiAKLSAg
ICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyByZXNvdXJjZS4KLSAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgLy8gVGVsbCB0aGUgR1BVIHByb2Nlc3Mg
dG8gY2FjaGUgdGhpcyByZXNvdXJjZS4KKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY2FjaGVQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICByZXR1cm4gbWFrZVdlYWtQdHIo
cGF0dGVybik7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpj
YWNoZUdyYWRpZW50KEdyYWRpZW50JiBncmFkaWVudCkKK3sKKyAgICBtX2dyYWRpZW50cy5lbnN1
cmUoZ3JhZGllbnQucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFsmXSgpIHsKKyAgICAg
ICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBHcmFkaWVudCwgc28gcmVsZWFzZVJl
bmRlcmluZ1Jlc291cmNlKCkgZ2V0cyBjYWxsZWQuCisgICAgICAgIGdyYWRpZW50LmFkZE9ic2Vy
dmVyKCp0aGlzKTsKKworICAgICAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byBjYWNoZSB0
aGlzIHJlc291cmNlLgorICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jYWNo
ZUdyYWRpZW50KGdyYWRpZW50KTsKKyAgICAgICAgcmV0dXJuIG1ha2VXZWFrUHRyKGdyYWRpZW50
KTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKCkKQEAgLTEzOCw3ICsxNjIsNyBAQCB2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQogCiAgICAgZm9yIChh
dXRvJiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25N
YXApIHsKICAgICAgICAgaWYgKG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gLSBpdGVt
LnZhbHVlID49IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSkKLSAg
ICAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNv
dXJjZShpdGVtLmtleSk7CisgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5yZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoaXRlbS5rZXkpOwogICAgIH0KIAogICAgICsrbV9j
dXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oCmluZGV4IDYxMDU4YzM1NzUxNzIwOWY0MDNlMzdmNDEyZDgxNjAxZGU4OGM0MzcuLjFhY2Rl
ZmVkNDBiMWRkMWJhZWRlNjlmZTBhNGFhZDY1ZWQ3N2FkZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuaApAQCAtMzMsMTQgKzMzLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEZvbnQ7CitjbGFzcyBHcmFkaWVudDsKIGNsYXNzIEltYWdlQnVmZmVyOworY2xhc3Mg
UGF0dGVybjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTsKIAotY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IDogcHVibGlj
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjpPYnNlcnZlciB7CitjbGFzcyBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6Ok9ic2VydmVyIHsK
IHB1YmxpYzoKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5Jik7CiAgICAgflJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpOwpAQCAtNTAsMjEg
KzUyLDI3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdl
KFdlYkNvcmU6Ok5hdGl2ZUltYWdlJik7Ci0KKyAgICB2b2lkIGNhY2hlRm9udChXZWJDb3JlOjpG
b250Jik7CisgICAgdm9pZCBjYWNoZVBhdHRlcm4oV2ViQ29yZTo6UGF0dGVybiYpOworICAgIHZv
aWQgY2FjaGVHcmFkaWVudChXZWJDb3JlOjpHcmFkaWVudCYpOworICAgIAogICAgIHVzaW5nIElt
YWdlQnVmZmVySGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj47CiAgICAgY29uc3QgSW1hZ2VC
dWZmZXJIYXNoTWFwJiBpbWFnZUJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVy
czsgfQogCi0gICAgdm9pZCBjYWNoZUZvbnQoV2ViQ29yZTo6Rm9udCYpOwogICAgIHZvaWQgZGlk
RmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKIAog
cHJpdmF0ZToKICAgICB1c2luZyBOYXRpdmVJbWFnZUhhc2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2Vha1B0cjxXZWJDb3JlOjpOYXRpdmVJbWFn
ZT4+OworICAgIHVzaW5nIFBhdHRlcm5IYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6UGF0dGVybj4+OworICAgIHVz
aW5nIEdyYWRpZW50SGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OkdyYWRpZW50Pj47CiAgICAgCi0gICAgdm9pZCBy
ZWxlYXNlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogCiAgICAgSW1hZ2VCdWZmZXJIYXNo
TWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUltYWdl
czsKKyAgICBQYXR0ZXJuSGFzaE1hcCBtX3BhdHRlcm5zOworICAgIEdyYWRpZW50SGFzaE1hcCBt
X2dyYWRpZW50czsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLCB1aW50NjRfdD4gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZl
cnNpb25NYXA7CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRl
cmluZ1VwZGF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBmMDQ1ZmYxNDNhZDFiYjk2ZDQ4OTdmMjI2MjViZDBhOTU2NTI4NGEyLi44
NGJjN2E5ODY5MzFkZjUwMTQ4NGViMTJiYTZiNGFjYjE4NDMyNmEzIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAt
MTItMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgR1BV
IFByb2Nlc3M6IENhbnZhcyBwYXR0ZXJuIHRlc3RzIGFzc2VydCB1bmRlciBlbmNvZGVTaW5nbGVP
YmplY3QoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDIwLTEyLTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbd2Via2l0c2NtcHldIENvcnJlY3QgbW9jayBgZ2l0IGxvZ2AgY2Fs
bCBpbiBzdGFuZGFyZCBnaXQgcmVwb3NpdG9yaWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXggZjcwMGM1NjI5
ZjYwNmU1YzI2ZGYxNmIyMGJiMWRlYTk1NGU4MDdhNS4uOWZlNGI3Y2RjNTVhMzU3M2EyMDRhYTM3
MWNhN2U1NGU4MGNkMjEzYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApAQCAtNjUsMTEgKzY1LDE0IEBAIFRFU1Qo
RGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAgICAgYXV0byBncmFkaWVudCA9IGNyZWF0
ZUdyYWRpZW50KCk7CiAgICAgYXV0byBwYXRoID0gY3JlYXRlQ29tcGxleFBhdGgoKTsKIAorICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOworICAgIHN0YXRlLmZpbGxDb2xvciA9IENvbG9y
OjpyZWQ7CisKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDUwOyArK2kpIHsKICAgICAgICAgbGlz
dC5hcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigxLjUpOwogICAgICAgICBsaXN0LmFwcGVuZDxG
aWxsUGF0aD4ocGF0aCk7CiAgICAgICAgIGxpc3QuYXBwZW5kPEZpbGxSZWN0V2l0aEdyYWRpZW50
PihGbG9hdFJlY3QgeyAxLiwgMS4sIDEwLiwgMTAuIH0sIGdyYWRpZW50KTsKLSAgICAgICAgbGlz
dC5hcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihDb2xvcjo6cmVkKTsKKyAgICAgICAgbGlzdC5h
cHBlbmQ8U2V0U3RhdGU+KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UsIHN0
YXRlKTsKICNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKICAgICAgICAgbGlzdC5hcHBlbmQ8
U3Ryb2tlSW5saW5lUGF0aD4oSW5saW5lUGF0aERhdGEgeyBMaW5lRGF0YSB7eyAwLiwgMC4gfSwg
eyAxMC4sIDE1LiB9fX0pOwogI2VuZGlmCkBAIC0xMDIsMTEgKzEwNSwxMSBAQCBURVNUKERpc3Bs
YXlMaXN0VGVzdHMsIEFwcGVuZEl0ZW1zKQogICAgICAgICAgICAgRVhQRUNUX0VRKCZpdGVtLmdy
YWRpZW50KCksIGdyYWRpZW50LnB0cigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
Ci0gICAgICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogeworICAgICAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogewogICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGhhbmRs
ZS5pc0RyYXdpbmdJdGVtKCkpOwotICAgICAgICAgICAgRVhQRUNUX1RSVUUoaGFuZGxlLmlzPFNl
dElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgICAgICAgICBhdXRvJiBpdGVtID0gaGFuZGxlLmdl
dDxTZXRJbmxpbmVGaWxsQ29sb3I+KCk7Ci0gICAgICAgICAgICBFWFBFQ1RfRVEoaXRlbS5jb2xv
cigpLCBDb2xvcjo6cmVkKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGhhbmRsZS5pczxTZXRT
dGF0ZT4oKSk7CisgICAgICAgICAgICBhdXRvJiBpdGVtID0gaGFuZGxlLmdldDxTZXRTdGF0ZT4o
KTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShpdGVtLmZpbGxDb2xvcigpLCBDb2xvcjo6cmVkKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjaWYgRU5BQkxFKElOTElORV9QQVRIX0RB
VEEpCkBAIC0yMTUsOSArMjE4LDkgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVy
Q2xpZW50KQogICAgIGxpc3Quc2V0SXRlbUJ1ZmZlckNsaWVudCgmd3JpdGVyKTsKIAogICAgIGF1
dG8gcGF0aCA9IGNyZWF0ZUNvbXBsZXhQYXRoKCk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5l
U3Ryb2tlQ29sb3I+KENvbG9yOjpibHVlKTsKKyAgICBsaXN0LmFwcGVuZDxTZXRTdHJva2VUaGlj
a25lc3M+KDEwKTsKICAgICBsaXN0LmFwcGVuZDxTdHJva2VQYXRoPihwYXRoKTsKLSAgICBsaXN0
LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oQ29sb3I6OnJlZCk7CisgICAgbGlzdC5hcHBl
bmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigyMCk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlUGF0aD4o
cGF0aCk7CiAKICAgICBEaXNwbGF5TGlzdCBzaGFsbG93Q29weSB7eyBJdGVtQnVmZmVySGFuZGxl
IHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgbGlzdC5zaXplSW5C
eXRlcygpIH0gfX07CkBAIC0yMzAsOSArMjMzLDkgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJ
dGVtQnVmZmVyQ2xpZW50KQogCiAgICAgRVhQRUNUX0ZBTFNFKHNoYWxsb3dDb3B5LmlzRW1wdHko
KSk7CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlcy5zaXplKCksIDRVKTsKLSAgICBFWFBFQ1RfRVEo
aXRlbVR5cGVzWzBdLCBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIEVYUEVD
VF9FUShpdGVtVHlwZXNbMF0sIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MpOwogICAgIEVY
UEVDVF9FUShpdGVtVHlwZXNbMV0sIEl0ZW1UeXBlOjpTdHJva2VQYXRoKTsKLSAgICBFWFBFQ1Rf
RVEoaXRlbVR5cGVzWzJdLCBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIEVY
UEVDVF9FUShpdGVtVHlwZXNbMl0sIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MpOwogICAg
IEVYUEVDVF9FUShpdGVtVHlwZXNbM10sIEl0ZW1UeXBlOjpTdHJva2VQYXRoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0
VGVzdHNDRy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxh
eUxpc3RUZXN0c0NHLmNwcAppbmRleCBkOWM4MzMxNGNhYzE1NTVkMTgyYzk3Y2ZiNmFjMWFlZThi
MTdmY2VjLi4yMWE3ODcxZDQ4NDgyNjQwMjM2NzE1YTUwZGI4YTcxYmI0MWI3NTE0IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0
c0NHLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxh
eUxpc3RUZXN0c0NHLmNwcApAQCAtNTEsMTEgKzUxLDE2IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0
cywgUmVwbGF5V2l0aE1pc3NpbmdSZXNvdXJjZSkKICAgICBhdXRvIGltYWdlQnVmZmVySWRlbnRp
ZmllciA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIAogICAgIERp
c3BsYXlMaXN0IGxpc3Q7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgc3RhdGU7CiAKLSAgICBs
aXN0LmFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KENvbG9yOjpncmVlbik7CisgICAgc3RhdGUu
ZmlsbENvbG9yID0gQ29sb3I6OmJsdWU7CisgICAgbGlzdC5hcHBlbmQ8U2V0U3RhdGU+KEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UsIHN0YXRlKTsKICAgICBsaXN0LmFwcGVu
ZDxGaWxsUmVjdD4oY29udGV4dEJvdW5kcyk7CisKICAgICBsaXN0LmFwcGVuZDxEcmF3SW1hZ2VC
dWZmZXI+KGltYWdlQnVmZmVySWRlbnRpZmllciwgY29udGV4dEJvdW5kcywgY29udGV4dEJvdW5k
cywgSW1hZ2VQYWludGluZ09wdGlvbnMgeyB9KTsKLSAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVT
dHJva2VDb2xvcj4oQ29sb3I6OnJlZCk7CisKKyAgICBzdGF0ZS5zdHJva2VDb2xvciA9IENvbG9y
OjpyZWQ7CisgICAgbGlzdC5hcHBlbmQ8U2V0U3RhdGU+KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dHJva2VDb2xvckNoYW5nZSwgc3RhdGUpOwogICAgIGxpc3QuYXBwZW5kPFN0cm9rZUxpbmU+KEZs
b2F0UG9pbnQgeyAwLCBjb250ZXh0SGVpZ2h0IH0sIEZsb2F0UG9pbnQgeyBjb250ZXh0V2lkdGgs
IDAgfSk7CiAKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTZmMTljZmJhZWYwM2EzY2JkYTQwMTQwNDQzMDgxMjFj
Y2ZlZDZhOS4uMzVhNWVhOTRkYWE0Zjg2MjU2ODA2ZGVkNzE5M2IwZWM4OTEyYTU3YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDIwLTEyLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBw
bGUuY29tPgorCisgICAgICAgIEdQVSBQcm9jZXNzOiBDYW52YXMgcGF0dGVybiB0ZXN0cyBhc3Nl
cnQgdW5kZXIgZW5jb2RlU2luZ2xlT2JqZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3Qt
ZXhwZWN0ZWQudHh0OgorCiAyMDIwLTEyLTE3ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBs
ZS5jb20+CiAKICAgICAgICAgWyBCaWcgU3VyIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jb250ZW50LXR5cGUvc2NyaXB0LndpbmRvdy5odG1sIGlzIGZhaWxpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0
LWV4cGVjdGVkLnR4dAppbmRleCAxNDUxYjE5MjUzYzMyMzg5MjhiYmQ5ZjVlNWRlYmI5Mjc0YzUw
ZDU3Li40MzQzNmEzMTY1OGNjYTNiYjk1OWMyNjg4N2NkMTk2ZGNjYjUzNGUxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QtZXhw
ZWN0ZWQudHh0CkBAIC03LDcgKzcsOCBAQAogICAoc2hhZG93cy1pZ25vcmUtdHJhbnNmb3JtcyAx
KSkKIChmaWxsLXJlY3QKICAgKHJlY3QgYXQgKDEwLDEwKSBzaXplIDU1eDUwKSBleHRlbnQgYXQg
KDEwLDE0MCkgc2l6ZSA1NXg1MCkKLShzZXQtaW5saW5lLWZpbGwtY29sb3IKLSAgKGNvbG9yICMw
MDAwQzg4MCkpCisoc2V0LXN0YXRlCisgIChjaGFuZ2UtZmxhZ3MgMTI4KQorICAoZmlsbC1jb2xv
ciAjMDAwMEM4ODApKQogKGZpbGwtcmVjdAogICAocmVjdCBhdCAoMzAsMzApIHNpemUgNTV4NTAp
IGV4dGVudCBhdCAoMzAsMTIwKSBzaXplIDU1eDUwKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416597</attachid>
            <date>2020-12-21 01:33:12 -0800</date>
            <delta_ts>2021-02-05 01:48:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219468-20201221013311.patch</filename>
            <type>text/plain</type>
            <size>138123</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgzNGE5ZDk2NzUwMTk4
ZTZmNDgzZmM0MjkwMTY4YTMzY2ViNzBkNS4uZjMwMzdiOTYyNWI5OWY1NTA5MzdlOTc2NmQ0MWJl
ZjZjMjczZWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAyMC0xMi0yMSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
OiBJbXBsZW1lbnQgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRlbQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIFJlbmRlcmluZ1Jlc291cmNl
IGFuZCBtYWtlIGl0IHRoZSBiYXNlIGNsYXNzIG9mIE5hdGl2ZUltYWdlLAorICAgICAgICBJbWFn
ZUJ1ZmZlciwgRm9udCwgR3JhZGllbnQgYW5kIFBhdHRlcm4uCisKKyAgICAgICAgTW92ZSB0aGUg
UE9EIHR5cGUgbWVtYmVycyBvZiBHcmFwaGljc0NvbnRleHRTdGF0ZSB0byBhIG5ldyBzdHJ1Y3R1
cmUgbmFtZWQKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUuIFRoaXMgbmV3IHN0
cnVjdHVyZSBjYW4gYmUgZW5jb2RlZCBhbmQgZGVjb2RlZAorICAgICAgICBhcyBhbiBhcnJheSBv
ZiBieXRlcy4KKworICAgICAgICBTZXRTdGF0ZSB3aWxsIGVuY29kZSBpdHMgR3JhcGhpY3NDb250
ZXh0U3RhdGVDaGFuZ2UgYXMgR3JhcGhpY3NDb250ZXh0U3RhdGUKKyAgICAgICAgOjpTdGF0ZUNo
YW5nZUZsYWdzIGFuZCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSBpbiBhZGRpdGlvbiB0byBh
IHNldCBvZgorICAgICAgICBDb2xvcnMgYW5kIGEgc2V0IG9mIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcnMuCisKKyAgICAgICAgUG9pbnRlcnMgb2YgUmVuZGVyaW5nUmVzb3VyY2VzIHdpbGwg
YmUgcGFzc2VkIHRvIFNldFN0YXRlOjphcHBseSgpIHdoaWNoCisgICAgICAgIHdpbGwgYmUgYXNz
aWduZWQgdG8gdGhlIG1lbWJlcnMgb2YgdGhlIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlOjpt
X3N0YXRlLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29u
Y3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZl
cjo6Q29uY3JldGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFkaWVudDo6R3JhZGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6c3RvcHNTb3J0ZWQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OkNvbG9yU3RvcDo6ZW5jb2RlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50OjpDb2xvclN0b3A6OmRl
Y29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6TGluZWFyRGF0YTo6
ZW5jb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50OjpMaW5l
YXJEYXRhOjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OlJh
ZGlhbERhdGE6OmVuY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFk
aWVudDo6UmFkaWFsRGF0YTo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdy
YWRpZW50OjpDb25pY0RhdGE6OmVuY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpHcmFkaWVudDo6Q29uaWNEYXRhOjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6R3JhZGllbnQ6OmVuY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpHcmFkaWVudDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dElubGluZVN0YXRlOjpHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVyOjpyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5hdGl2ZUltYWdlOjpOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpOYXRp
dmVJbWFnZTo6fk5hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6OmFkZE9i
c2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjpyZW1vdmVP
YnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXR0ZXJuOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGF0dGVybjo6UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVy
bi5oOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6ZW5jb2RlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2UuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZTo6flJlbmRlcmluZ1Jlc291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlOjpyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6OmFkZE9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlOjpyZW1vdmVPYnNlcnZlcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZTo6UmVuZGVyaW5nUmVzb3VyY2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6bV9mb250cyk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6bV9wYXR0ZXJucyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6bV9ncmFkaWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0OjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxh
eUxpc3Q6OnNob3VsZER1bXBGb3JGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3Q6OnBhdHRlcm5zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdDo6Z3JhZGllbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6Y2FjaGVQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6Y2FjaGVHcmFkaWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmNvcHlUbyBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpTZXRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6bV9maWxsUGF0dGVybklkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjphcHBseSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFk
aWVudDo6Z3JhZGllbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6aXNJbmxp
bmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZp
bGxDb2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yOjphcHBseSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6c3RhdGVDaGFuZ2UgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpzdHJva2VHcmFk
aWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNl
dFN0YXRlOjpzdHJva2VQYXR0ZXJuSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OmZpbGxHcmFkaWVudElkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpmaWxsUGF0dGVybklkZW50
aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpk
ZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRp
ZW50OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxS
ZWN0V2l0aEdyYWRpZW50OjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldElubGluZUZpbGxDb2xvcjo6U2V0SW5saW5lRmlsbENvbG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OmNvbG9yIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJv
a2VDb2xvcjo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yOjpjb2xvciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0YXRlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0Ojpjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRl
OjpjYWNoZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpEZWxlZ2F0ZTo6Y2FjaGVHcmFkaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpSZXBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6YXBwbHlTZXRTdGF0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlcGxheWVyOjphcHBseUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmg6CisKIDIwMjAtMTItMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gaHR0cHM6Ly93
d3cud2F2ZXBsYXllci5pbmZvL2NyZWF0ZW1lZGlhZWxlbWVudHNvdXJjZS10ZXN0LyBkZW1vIGlz
IGZsYWt5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGE2OTM0ODhlYTc5Njg1OWUwOTRhMDY3M2U1OTUwNDg5MzRlZWRj
M2EuLmVkYjk5N2NiOTFiNDg3NzNhZTE0MWFiZWM4NmFhNTkwOTE0ZDk2YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzEgQEAKKzIwMjAtMTItMjEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXTogSW1wbGVtZW50IFNldFN0YXRlIERpc3Bs
YXlMaXN0IGl0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFsbG93IGNhY2hpbmcgdGhlIEdyYWRpZW50IGFuZCBQYXR0ZXJuIGFzIFJlbmRlcmluZ1Jl
c291cmNlcy4gVXNlIHRoZWlyCisgICAgICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcnMg
dG8gcmVjb3JkIHRoZW0gaW4gdGhlIFNldFN0YXRlIGl0ZW0uIE1vdmUKKyAgICAgICAgZW5jb2Rp
bmcgYW5kIGRlY29kaW5nIHRoZW0gdG8gSVBDLiBQYXNzIHRoZSBsaXN0IG9mIGNhY2hlZCBncmFk
aWVudHMgYW5kCisgICAgICAgIGNhY2hlZCBwYXR0ZXJucyB0byB0aGUgRGlzcGxheUxpc3Q6OlJl
cGxheWVyIHdoZW4gcmVwbGF5aW5nIGEgRGlzcGxheUxpc3QKKyAgICAgICAgaW4gR1BVUC4gTWFu
YWdlIHRoZSBsaWZlIGN5Y2xlIG9mIHRoZSBHcmFkaWVudCBhbmQgUGF0dGVybiBpbiBHUFVQIHRo
ZSAKKyAgICAgICAgc2FtZSB3YXkgd2UgZG8gZm9yIE5hdGl2ZUltYWdlcy4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN1Ym1pdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNhY2hlUGF0dGVybik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNhY2hlR3JhZGllbnQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWNvZGVJdGVtKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZVJlc291
cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZTo6Y2FjaGVQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNo
ZTo6Y2FjaGVHcmFkaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6
OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291
cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGU6OnBhdHRlcm5zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVzb3VyY2VDYWNoZTo6Z3JhZGllbnRzIGNvbnN0KToKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvR3JhZGllbnRSZWZlcmVuY2UuaDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm0vSVBD
L1BhdHRlcm5SZWZlcmVuY2UuaDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxSZWY8UGF0dGVybj4+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFJlZjxQYXR0ZXJuPj46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8R3JhZGllbnQ6OkNvbG9yU3RvcD46OmVuY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OkNvbG9yU3RvcD46OmRlY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OkxpbmVhckRhdGE+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYWRpZW50OjpMaW5lYXJEYXRhPjo6ZGVjb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxHcmFkaWVudDo6UmFkaWFsRGF0YT46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OlJhZGlhbERhdGE+OjpkZWNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYWRpZW50OjpDb25pY0RhdGE+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYWRpZW50OjpDb25pY0RhdGE+
OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxHcmFkaWVudD4+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxHcmFkaWVudD4+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6On5SZW1vdGVJbWFnZUJ1ZmZlclByb3h5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNhY2hl
Rm9udCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y2Fj
aGVQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpjYWNoZUdyYWRpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpyZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpjYWNoZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpyZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlUGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVHcmFkaWVudCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VOYXRp
dmVJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6CisKIDIwMjAtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gaHR0cHM6Ly93d3cud2F2ZXBs
YXllci5pbmZvL2NyZWF0ZW1lZGlhZWxlbWVudHNvdXJjZS10ZXN0LyBkZW1vIGlzIGZsYWt5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCAwNDNjODZhNjlhNDdlY2NlNTNiYzEyYWIxZWIxMDMxZTM4YjM2
MDYyLi4xZWY3ODIzYjlmZmEyZjRmN2QzMWRjZjYwNTdlOGIwMDFiN2I3MjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTEyNTksNiArMTI1OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVu
ZGVyaW5nUmVzb3VyY2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRlZFJlY3QuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE4NzUzNGNiZGM4NWFhMzZmZjhm
Y2U0YjBlMDliNjA4OTNmOTU5MjguLjQ2ZTczODg4MTNkZWQxYTUwYjMxZWQ2NTY4ZmRiOWViMDAw
NTVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTIxOTQsNiArMjE5NCw3IEBACiAJCTcyNkQ1NkUyMjUzQUUyOEQwMDAyRUY5
MCAvKiBQbGF0Zm9ybUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MjZENTZFMTI1M0FFMDQzMDAwMkVGOTAgLyogUGxhdGZvcm1JbWFnZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNkQ1NkUz
MjUzQUUzNjYwMDAyRUY5MCAvKiBOYXRpdmVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2
ZUltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzI3QTdGM0EyNDA3OEI4NDAwNEQyOTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJCQUMz
QUIyM0UxRTU0NDAwOEQ3NDFDIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyODMwMUREMjU4
RTgxN0YwMDM0REI3NiAvKiBSZW5kZXJpbmdSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4MzAxREIyNThFODE3RjAwMzREQjc2IC8qIFJl
bmRlcmluZ1Jlc291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzI5OUJDNjcyM0Q2QTUzMjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcy
OTlCQzY0MjNENjg2QTYwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI5OUJDNjgyM0Q2
QTUzRTAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJp
bmdNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzI5RDA1MzAyNTMxNDI0MzAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5RDA1
MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDEyOSw2ICsx
MDEzMCw3IEBACiAJCTcyN0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzI4MzAxREIyNThFODE3RjAwMzREQjc2IC8qIFJlbmRlcmluZ1Jlc291cmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1Jlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyOTlCQzY0MjNENjg2QTYwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFscGhhUHJlbXVsdGlwbGljYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRl
cmluZ01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY3MDUsNiArMjY3MDcsNyBA
QAogCQkJCTA3M0ExNTUxMjE3N0EzOTgwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5jcHAg
Ki8sCiAJCQkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmgg
Ki8sCiAJCQkJNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLywK
KwkJCQk3MjgzMDFEQjI1OEU4MTdGMDAzNERCNzYgLyogUmVuZGVyaW5nUmVzb3VyY2UuaCAqLywK
IAkJCQk3MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyLmggKi8sCiAJCQkJQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNw
cCAqLywKIAkJCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLywK
QEAgLTM0MTg4LDYgKzM0MTkxLDcgQEAKIAkJCQkwOEYyRjAwQTEyMTNFNjE3MDBEQ0VDNDggLyog
UmVuZGVySW1hZ2VSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg2NDFENDgxMjE0MkY3
RDAwOERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzI4MzAxREQyNThFODE3RjAwMzREQjc2IC8qIFJlbmRlcmluZ1Jlc291
cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NTZDN0M0QjIy
MTIzOTk3MDA5QjA2Q0EgLyogUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VBNDg3ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVySW5saW5lLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCAxZjI0NWJjZWJhNzJjZTEzN2U5MGM2MWU1NWY1MWEz
MzgxYjgwNjg1Li4yODlmMWNlNWMwYTRkZTc2Y2Y3NWMyYWRhZjVjYzY4YmZhYzQxMmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oCkBAIC01OCw5ICs1OCw5IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIENv
bmNyZXRlSW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLCBzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCA9IG51bGxw
dHIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCi0gICAgICAgIDog
bV9wYXJhbWV0ZXJzKHBhcmFtZXRlcnMpCisgICAgICAgIDogSW1hZ2VCdWZmZXIocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICAsIG1fcGFyYW1ldGVycyhwYXJhbWV0ZXJzKQog
ICAgICAgICAsIG1fYmFja2VuZChXVEZNb3ZlKGJhY2tlbmQpKQotICAgICAgICAsIG1fcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICB7
CiAgICAgfQogCkBAIC03Myw4ICs3Myw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFyQmFj
a2VuZCgpIG92ZXJyaWRlIHsgbV9iYWNrZW5kID0gbnVsbHB0cjsgfQogICAgIEltYWdlQnVmZmVy
QmFja2VuZCogZW5zdXJlQmFja2VuZENyZWF0ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2JhY2tlbmQuZ2V0KCk7IH0KIAotICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcjsgfQotCiAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2JhY2tlbmQpOwpAQCAt
Mjk2LDcgKzI5NCw2IEBAIHByb3RlY3RlZDoKIAogICAgIEltYWdlQnVmZmVyQmFja2VuZDo6UGFy
YW1ldGVycyBtX3BhcmFtZXRlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiBt
X2JhY2tlbmQ7Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCmluZGV4IGUxNzBmOTZhMWI2
ZWY1MzViYzVhODIzY2ExMWQ3YTc1MDQyMWVmY2QuLmMzYjg5OWQ0ZWQ5OTVjMmE2NGI1NmE0Yjk3
NTdjMDIwYTZhM2M0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudC5jcHAKQEAgLTM2LDE4ICszNiwxNyBAQCB1c2luZyBXVEY6OnBhaXJJbnRIYXNoOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxHcmFkaWVudD4gR3JhZGllbnQ6OmNyZWF0ZShE
YXRhJiYgZGF0YSkKK1JlZjxHcmFkaWVudD4gR3JhZGllbnQ6OmNyZWF0ZShEYXRhJiYgZGF0YSwg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHcmFkaWVudChXVEZNb3ZlKGRhdGEpKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JhZGllbnQoV1RGTW92ZShkYXRhKSwgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSk7CiB9CiAKLUdyYWRpZW50OjpHcmFkaWVudChEYXRhJiYgZGF0
YSkKLSAgICA6IG1fZGF0YShXVEZNb3ZlKGRhdGEpKQorR3JhZGllbnQ6OkdyYWRpZW50KERhdGEm
JiBkYXRhLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKQorICAgIDogUmVuZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQorICAgICwgbV9kYXRhKFdURk1vdmUoZGF0YSkpCiB7CiB9CiAKLUdyYWRpZW50Ojp+R3Jh
ZGllbnQoKSA9IGRlZmF1bHQ7Ci0KIHZvaWQgR3JhZGllbnQ6OmFkanVzdFBhcmFtZXRlcnNGb3JU
aWxlZERyYXdpbmcoRmxvYXRTaXplJiBzaXplLCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZykKIHsKICAgICBpZiAoc3JjUmVjdC5pc0VtcHR5KCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAppbmRleCA4MWU5Y2UxYjhlOTFh
NTI1MjBjMzcxNzk3OGU3YmQ0YTM3YTZlOWRjLi4yY2Q5NmYyZjhhYWVkZjU5NTgxY2U0ODI3YTVl
NmJhOTU4Mzc4NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRp
ZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkZs
b2F0UG9pbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCisjaW5jbHVkZSAiUmVuZGVy
aW5nUmVzb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIApAQCAtNjEsMTQgKzYyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEZsb2F0UmVjdDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAotY2xhc3MgR3JhZGllbnQgOiBw
dWJsaWMgUmVmQ291bnRlZDxHcmFkaWVudD4geworY2xhc3MgR3JhZGllbnQgOiBwdWJsaWMgUmVu
ZGVyaW5nUmVzb3VyY2UgewogcHVibGljOgogICAgIHN0cnVjdCBDb2xvclN0b3AgewogICAgICAg
ICBmbG9hdCBvZmZzZXQgeyAwIH07CiAgICAgICAgIENvbG9yIGNvbG9yOwotCi0gICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENvbG9yU3Rv
cD4gZGVjb2RlKERlY29kZXImKTsKICAgICB9OwogCiAgICAgdXNpbmcgQ29sb3JTdG9wVmVjdG9y
ID0gVmVjdG9yPENvbG9yU3RvcCwgMj47CkBAIC03Niw5ICs3NCw2IEBAIHB1YmxpYzoKICAgICBz
dHJ1Y3QgTGluZWFyRGF0YSB7CiAgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQwOwogICAgICAgICBG
bG9hdFBvaW50IHBvaW50MTsKLQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+IHN0YXRpYyBPcHRpb25hbDxMaW5lYXJEYXRhPiBkZWNvZGUoRGVjb2RlciYpOwogICAg
IH07CiAKICAgICBzdHJ1Y3QgUmFkaWFsRGF0YSB7CkBAIC04NywyNCArODIsMTYgQEAgcHVibGlj
OgogICAgICAgICBmbG9hdCBzdGFydFJhZGl1czsKICAgICAgICAgZmxvYXQgZW5kUmFkaXVzOwog
ICAgICAgICBmbG9hdCBhc3BlY3RSYXRpbzsgLy8gRm9yIGVsbGlwdGljYWwgZ3JhZGllbnQsIHdp
ZHRoIC8gaGVpZ2h0LgotCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPFJhZGlhbERhdGE+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsK
IAogICAgIHN0cnVjdCBDb25pY0RhdGEgewogICAgICAgICBGbG9hdFBvaW50IHBvaW50MDsKICAg
ICAgICAgZmxvYXQgYW5nbGVSYWRpYW5zOwotCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENvbmljRGF0YT4gZGVjb2RlKERlY29kZXIm
KTsKICAgICB9OwogCiAgICAgdXNpbmcgRGF0YSA9IFZhcmlhbnQ8TGluZWFyRGF0YSwgUmFkaWFs
RGF0YSwgQ29uaWNEYXRhPjsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8R3JhZGll
bnQ+IGNyZWF0ZShEYXRhJiYpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgfkdyYWRpZW50KCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxHcmFkaWVudD4gY3JlYXRlKERhdGEmJiwgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpKTsKIAogICAgIGJvb2wgaXNaZXJvU2l6ZSgpIGNvbnN0OwogCkBAIC0xMTQsNiAr
MTAxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U29ydGVkQ29sb3JT
dG9wcyhDb2xvclN0b3BWZWN0b3ImJik7CiAKICAgICBjb25zdCBDb2xvclN0b3BWZWN0b3ImIHN0
b3BzKCkgY29uc3QgeyByZXR1cm4gbV9zdG9wczsgfQorICAgIGJvb2wgc3RvcHNTb3J0ZWQoKSBj
b25zdCB7IHJldHVybiBtX3N0b3BzU29ydGVkOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNwcmVhZE1ldGhvZChHcmFkaWVudFNwcmVhZE1ldGhvZCk7CiAgICAgR3JhZGllbnRTcHJl
YWRNZXRob2Qgc3ByZWFkTWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9zcHJlYWRNZXRob2Q7IH0K
QEAgLTEzOSwxMSArMTI3LDggQEAgcHVibGljOgogICAgIElEMkQxQnJ1c2gqIGNyZWF0ZUJydXNo
KElEMkQxUmVuZGVyVGFyZ2V0Kik7CiAjZW5kaWYKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmVmPEdyYWRpZW50Pj4gZGVjb2RlKERlY29kZXIm
KTsKLQogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBHcmFkaWVudChEYXRhJiYpOworICAgIGV4cGxp
Y2l0IEdyYWRpZW50KERhdGEmJiwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAg
IHZvaWQgc29ydFN0b3BzKCkgY29uc3Q7CiAgICAgdm9pZCBzdG9wc0NoYW5nZWQoKTsKQEAgLTE2
OCwxNTIgKzE1Myw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IEVuY29kZXI+IHZvaWQgR3JhZGllbnQ6OkNvbG9yU3RvcDo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCBvZmZzZXQ7Ci0gICAgZW5jb2RlciA8PCBjb2xv
cjsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gT3B0aW9uYWw8R3JhZGllbnQ6OkNv
bG9yU3RvcD4gR3JhZGllbnQ6OkNvbG9yU3RvcDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17
Ci0gICAgT3B0aW9uYWw8ZmxvYXQ+IG9mZnNldDsKLSAgICBkZWNvZGVyID4+IG9mZnNldDsKLSAg
ICBpZiAoIW9mZnNldCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlv
bmFsPENvbG9yPiBjb2xvcjsKLSAgICBkZWNvZGVyID4+IGNvbG9yOwotICAgIGlmICghY29sb3Ip
Ci0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4ge3sgKm9mZnNldCwg
KmNvbG9yIH19OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIEdyYWRpZW50
OjpMaW5lYXJEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNv
ZGVyIDw8IHBvaW50MDsKLSAgICBlbmNvZGVyIDw8IHBvaW50MTsKLX0KLQotdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4gT3B0aW9uYWw8R3JhZGllbnQ6OkxpbmVhckRhdGE+IEdyYWRpZW50OjpM
aW5lYXJEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxGbG9h
dFBvaW50PiBwb2ludDA7Ci0gICAgZGVjb2RlciA+PiBwb2ludDA7Ci0gICAgaWYgKCFwb2ludDAp
Ci0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBPcHRpb25hbDxGbG9hdFBvaW50
PiBwb2ludDE7Ci0gICAgZGVjb2RlciA+PiBwb2ludDE7Ci0gICAgaWYgKCFwb2ludDEpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4ge3sgKnBvaW50MCwgKnBvaW50
MSB9fTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBHcmFkaWVudDo6UmFk
aWFsRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8
PCBwb2ludDA7Ci0gICAgZW5jb2RlciA8PCBwb2ludDE7Ci0gICAgZW5jb2RlciA8PCBzdGFydFJh
ZGl1czsKLSAgICBlbmNvZGVyIDw8IGVuZFJhZGl1czsKLSAgICBlbmNvZGVyIDw8IGFzcGVjdFJh
dGlvOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBPcHRpb25hbDxHcmFkaWVudDo6
UmFkaWFsRGF0YT4gR3JhZGllbnQ6OlJhZGlhbERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQotewotICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBvaW50MDsKLSAgICBkZWNvZGVyID4+IHBv
aW50MDsKLSAgICBpZiAoIXBvaW50MCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBvaW50MTsKLSAgICBkZWNvZGVyID4+IHBvaW50MTsK
LSAgICBpZiAoIXBvaW50MSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9w
dGlvbmFsPGZsb2F0PiBzdGFydFJhZGl1czsKLSAgICBkZWNvZGVyID4+IHN0YXJ0UmFkaXVzOwot
ICAgIGlmICghc3RhcnRSYWRpdXMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAg
ICBPcHRpb25hbDxmbG9hdD4gZW5kUmFkaXVzOwotICAgIGRlY29kZXIgPj4gZW5kUmFkaXVzOwot
ICAgIGlmICghZW5kUmFkaXVzKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAg
T3B0aW9uYWw8ZmxvYXQ+IGFzcGVjdFJhdGlvOwotICAgIGRlY29kZXIgPj4gYXNwZWN0UmF0aW87
Ci0gICAgaWYgKCFhc3BlY3RSYXRpbykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgIHJldHVybiB7eyAqcG9pbnQwLCAqcG9pbnQxLCAqc3RhcnRSYWRpdXMsICplbmRSYWRpdXMs
ICphc3BlY3RSYXRpbyB9fTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBH
cmFkaWVudDo6Q29uaWNEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAg
ICBlbmNvZGVyIDw8IHBvaW50MDsKLSAgICBlbmNvZGVyIDw8IGFuZ2xlUmFkaWFuczsKLX0KLQot
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gT3B0aW9uYWw8R3JhZGllbnQ6OkNvbmljRGF0YT4g
R3JhZGllbnQ6OkNvbmljRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0
aW9uYWw8RmxvYXRQb2ludD4gcG9pbnQwOwotICAgIGRlY29kZXIgPj4gcG9pbnQwOwotICAgIGlm
ICghcG9pbnQwKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8
ZmxvYXQ+IGFuZ2xlUmFkaWFuczsKLSAgICBkZWNvZGVyID4+IGFuZ2xlUmFkaWFuczsKLSAgICBp
ZiAoIWFuZ2xlUmFkaWFucykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJl
dHVybiB7eyAqcG9pbnQwLCAqYW5nbGVSYWRpYW5zIH19OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPiB2b2lkIEdyYWRpZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
LXsKLSAgICBlbmNvZGVyIDw8IG1fZGF0YTsKLSAgICBlbmNvZGVyIDw8IG1fc3RvcHM7Ci0gICAg
ZW5jb2RlciA8PCBtX3N0b3BzU29ydGVkOwotICAgIGVuY29kZXIgPDwgbV9zcHJlYWRNZXRob2Q7
Ci0gICAgZW5jb2RlciA8PCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbjsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gT3B0aW9uYWw8UmVmPEdyYWRpZW50Pj4gR3JhZGllbnQ6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPERhdGE+IGRhdGE7Ci0g
ICAgZGVjb2RlciA+PiBkYXRhOwotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICBhdXRvIGdyYWRpZW50ID0gR3JhZGllbnQ6OmNyZWF0ZShXVEZNb3ZlKCpk
YXRhKSk7Ci0KLSAgICBPcHRpb25hbDxDb2xvclN0b3BWZWN0b3I+IHN0b3BzOwotICAgIGRlY29k
ZXIgPj4gc3RvcHM7Ci0gICAgaWYgKCFzdG9wcykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLSAgICBPcHRpb25hbDxib29sPiBzdG9wc1NvcnRlZDsKLSAgICBkZWNvZGVyID4+IHN0b3Bz
U29ydGVkOwotICAgIGlmICghc3RvcHNTb3J0ZWQuaGFzVmFsdWUoKSkKLSAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKLSAgICBpZiAoKnN0b3BzU29ydGVkKQotICAgICAgICBncmFkaWVudC0+
c2V0U29ydGVkQ29sb3JTdG9wcyhXVEZNb3ZlKCpzdG9wcykpOwotICAgIGVsc2UgewotICAgICAg
ICBmb3IgKGF1dG8mIHN0b3AgOiAqc3RvcHMpCi0gICAgICAgICAgICBncmFkaWVudC0+YWRkQ29s
b3JTdG9wKFdURk1vdmUoc3RvcCkpOwotICAgIH0KLQotICAgIEdyYWRpZW50U3ByZWFkTWV0aG9k
IHNwcmVhZE1ldGhvZDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNwcmVhZE1ldGhvZCkpCi0g
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgZ3JhZGllbnQtPnNldFNwcmVhZE1ldGhv
ZChzcHJlYWRNZXRob2QpOwotCi0gICAgT3B0aW9uYWw8QWZmaW5lVHJhbnNmb3JtPiBncmFkaWVu
dFNwYWNlVHJhbnNmb3JtYXRpb247Ci0gICAgZGVjb2RlciA+PiBncmFkaWVudFNwYWNlVHJhbnNm
b3JtYXRpb247Ci0gICAgaWYgKCFncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24pCi0gICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgZ3JhZGllbnQtPnNldEdyYWRpZW50U3BhY2VUcmFu
c2Zvcm0oV1RGTW92ZSgqZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uKSk7Ci0KLSAgICByZXR1
cm4gZ3JhZGllbnQ7Ci19Cit1c2luZyBHcmFkaWVudEhhc2hNYXAgPSBIYXNoTWFwPFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgUmVmPEdyYWRpZW50Pj47CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuY3BwCmluZGV4IDc4NDQ3N2EyZWZhYTYyMzkxYTZmODBjMGQ5NDFkMjg4NDg2YTUz
ZjMuLjM2OWE5OWJkYTg2OTU2NTNhYTJiYjQyZTY5Mzg2MzcxOTY2OWZlMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApA
QCAtNzcsMjYgKzc3LDYgQEAgcHJpdmF0ZToKICAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6ZmxhZykgJiYgKG1fc3RhdGUucHJvcGVydHkgIT0gc3Rh
dGUucHJvcGVydHkpKSBcCiAgICAgICAgIGNoYW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRT
dGF0ZTo6ZmxhZyk7CiAKLUdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0
ZSgpCi0gICAgOiBzaG91bGRBbnRpYWxpYXModHJ1ZSkKLSAgICAsIHNob3VsZFNtb290aEZvbnRz
KHRydWUpCi0gICAgLCBzaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHModHJ1ZSkKLSAgICAsIHNo
YWRvd3NJZ25vcmVUcmFuc2Zvcm1zKGZhbHNlKQotI2lmIFVTRShDRykKLSAgICAvLyBDb3JlIEdy
YXBoaWNzIGluY29ycmVjdGx5IHJlbmRlcnMgc2hhZG93cyB3aXRoIHJhZGl1cyA+IDhweCAoPHJk
YXI6Ly9wcm9ibGVtLzgxMDM0NDI+KSwKLSAgICAvLyBidXQgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0
aGlzIGJ1Z2d5IGJlaGF2aW9yIGZvciBjYW52YXMgYW5kIC13ZWJraXQtYm94LXNoYWRvdy4KLSAg
ICAsIHNoYWRvd3NVc2VMZWdhY3lSYWRpdXMoZmFsc2UpCi0jZW5kaWYKLSAgICAsIGRyYXdMdW1p
bmFuY2VNYXNrKGZhbHNlKQotewotfQotCi1HcmFwaGljc0NvbnRleHRTdGF0ZTo6fkdyYXBoaWNz
Q29udGV4dFN0YXRlKCkgPSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3RhdGU6OkdyYXBoaWNz
Q29udGV4dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJikgPSBkZWZhdWx0OwotR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0
YXRlJiYpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29udGV4dFN0YXRlJiBHcmFwaGljc0NvbnRleHRT
dGF0ZTo6b3BlcmF0b3I9KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJikgPSBkZWZhdWx0Owot
R3JhcGhpY3NDb250ZXh0U3RhdGUmIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpvcGVyYXRvcj0oR3Jh
cGhpY3NDb250ZXh0U3RhdGUmJikgPSBkZWZhdWx0OwotCiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3RhdGVDaGFuZ2VGbGFncyBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZTo6Y2hhbmdlc0Zyb21T
dGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUpIGNvbnN0CiB7CiAgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4
IDI1YzY2NDRmMTI5N2ZjNDdjMzg3MmViNWQ1OGViMmYwZGU0MWI1NTYuLjE5YWQxMWEwNzM2YmZk
NzM5NWM4MWQ5Yzc4ZjVjNzZiNzgxZTcwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiRGFzaEFycmF5LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9u
dENhc2NhZGUuaCIKKyNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlw
ZXMuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIK
QEAgLTg3LDcgKzg4LDYgQEAgY2xhc3MgR2x5cGhCdWZmZXI7CiAKIGNsYXNzIEFmZmluZVRyYW5z
Zm9ybTsKIGNsYXNzIEZsb2F0Um91bmRlZFJlY3Q7Ci1jbGFzcyBHcmFkaWVudDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dEltcGw7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU7
CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKQEAgLTE1OCwxNiArMTU4LDcgQEAgT3B0aW9uYWw8RG9jdW1l
bnRNYXJrZXJMaW5lU3R5bGU+IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2QKICAgICByZXR1cm4ge3sgKm1vZGUsICpzaG91bGRVc2VEYXJrQXBwZWFyYW5jZSB9
fTsKIH0KIAotc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBHcmFwaGljc0NvbnRleHRTdGF0ZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIH5HcmFwaGljc0Nv
bnRleHRTdGF0ZSgpOwotCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhpY3ND
b250ZXh0U3RhdGUmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRTdGF0ZShH
cmFwaGljc0NvbnRleHRTdGF0ZSYmKTsKLQotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlJiBvcGVy
YXRvcj0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYgb3BlcmF0b3I9KEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOwot
CitzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgewogICAgIGVudW0gQ2hhbmdlIDog
dWludDMyX3QgewogICAgICAgICBTdHJva2VHcmFkaWVudENoYW5nZSAgICAgICAgICAgICAgICAg
ICAgPSAxIDw8IDAsCiAgICAgICAgIFN0cm9rZVBhdHRlcm5DaGFuZ2UgICAgICAgICAgICAgICAg
ICAgICA9IDEgPDwgMSwKQEAgLTE5MywxMyArMTg0LDIyIEBAIHN0cnVjdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSB7CiAgICAgICAgIFVzZURhcmtBcHBlYXJhbmNlQ2hhbmdlICAgICAgICAgICAgICAg
ICA9IDEgPDwgMjAsCiAjZW5kaWYKICAgICB9OworCiAgICAgdXNpbmcgU3RhdGVDaGFuZ2VGbGFn
cyA9IE9wdGlvblNldDxDaGFuZ2U+OwogCi0gICAgUmVmUHRyPEdyYWRpZW50PiBzdHJva2VHcmFk
aWVudDsKLSAgICBSZWZQdHI8UGF0dGVybj4gc3Ryb2tlUGF0dGVybjsKLSAgICAKLSAgICBSZWZQ
dHI8R3JhZGllbnQ+IGZpbGxHcmFkaWVudDsKLSAgICBSZWZQdHI8UGF0dGVybj4gZmlsbFBhdHRl
cm47CisgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUoKQorICAgICAgICA6IHNob3VsZEFu
dGlhbGlhcyh0cnVlKQorICAgICAgICAsIHNob3VsZFNtb290aEZvbnRzKHRydWUpCisgICAgICAg
ICwgc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzKHRydWUpCisgICAgICAgICwgc2hhZG93c0ln
bm9yZVRyYW5zZm9ybXMoZmFsc2UpCisjaWYgVVNFKENHKQorICAgICAgICAvLyBDb3JlIEdyYXBo
aWNzIGluY29ycmVjdGx5IHJlbmRlcnMgc2hhZG93cyB3aXRoIHJhZGl1cyA+IDhweCAoPHJkYXI6
Ly9wcm9ibGVtLzgxMDM0NDI+KSwKKyAgICAgICAgLy8gYnV0IHdlIG5lZWQgdG8gcHJlc2VydmUg
dGhpcyBidWdneSBiZWhhdmlvciBmb3IgY2FudmFzIGFuZCAtd2Via2l0LWJveC1zaGFkb3cuCisg
ICAgICAgICwgc2hhZG93c1VzZUxlZ2FjeVJhZGl1cyhmYWxzZSkKKyNlbmRpZgorICAgICAgICAs
IGRyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKQorICAgIHsKKyAgICB9CiAKICAgICBGbG9hdFNpemUg
c2hhZG93T2Zmc2V0OwogCkBAIC0yMDgsMTAgKzIwOCw2IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSB7CiAKICAgICBUZXh0RHJhd2luZ01vZGVGbGFncyB0ZXh0RHJhd2luZ01vZGUgeyBU
ZXh0RHJhd2luZ01vZGU6OkZpbGwgfTsKIAotICAgIENvbG9yIHN0cm9rZUNvbG9yIHsgQ29sb3I6
OmJsYWNrIH07Ci0gICAgQ29sb3IgZmlsbENvbG9yIHsgQ29sb3I6OmJsYWNrIH07Ci0gICAgQ29s
b3Igc2hhZG93Q29sb3I7Ci0KICAgICBTdHJva2VTdHlsZSBzdHJva2VTdHlsZSB7IFNvbGlkU3Ry
b2tlIH07CiAgICAgV2luZFJ1bGUgZmlsbFJ1bGUgeyBXaW5kUnVsZTo6Tm9uWmVybyB9OwogCkBA
IC0yMzMsNiArMjI5LDE4IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAjZW5kaWYK
IH07CiAKK3N0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSA6IHB1YmxpYyBHcmFwaGljc0NvbnRl
eHRJbmxpbmVTdGF0ZSB7CisgICAgUmVmUHRyPEdyYWRpZW50PiBzdHJva2VHcmFkaWVudDsKKyAg
ICBSZWZQdHI8UGF0dGVybj4gc3Ryb2tlUGF0dGVybjsKKworICAgIFJlZlB0cjxHcmFkaWVudD4g
ZmlsbEdyYWRpZW50OworICAgIFJlZlB0cjxQYXR0ZXJuPiBmaWxsUGF0dGVybjsKKworICAgIENv
bG9yIHN0cm9rZUNvbG9yIHsgQ29sb3I6OmJsYWNrIH07CisgICAgQ29sb3IgZmlsbENvbG9yIHsg
Q29sb3I6OmJsYWNrIH07CisgICAgQ29sb3Igc2hhZG93Q29sb3I7Cit9OworCiBzdHJ1Y3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UgewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdl
KCkgPSBkZWZhdWx0OwogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKGNvbnN0IEdyYXBo
aWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdl
RmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaAppbmRleCBiYTg0NjI1YTU0NzMzMzQwMGFlOGE5ZDYyZDgyODhmMzBjNzgyZTMwLi40
ZmFhYjdlOWIyZmMzYzJjOTA0YmI5NDUwMzVhNGFkYTM1ZWM4MDJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTMwLDcgKzMwLDcgQEAK
ICNpbmNsdWRlICJEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkltYWdl
QnVmZmVyQmFja2VuZC5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ01vZGUuaCIKLSNpbmNsdWRlICJS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJpbmdSZXNvdXJj
ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBEcmF3aW5nQ29udGV4dDsKIHN0cnVjdCBJdGVt
QnVmZmVySGFuZGxlOwogfQogCi1jbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVk
PEltYWdlQnVmZmVyPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEltYWdlQnVmZmVyPiB7CitjbGFz
cyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBSZW5kZXJpbmdSZXNvdXJjZSB7CiBwdWJsaWM6CiAgICAg
Ly8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5n
UHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3Bh
Y2U6OlNSR0IsIFBpeGVsRm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OkJHUkE4LCBjb25zdCBIb3N0V2lu
ZG93KiA9IG51bGxwdHIpOwpAQCAtNzEsNyArNzEsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgY2FuTWFwQmFja2luZ1N0b3JlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIHsgfTsgfQogCiAgICAgdmlydHVhbCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29udGV4dCgpID0gMDsKQEAgLTEzNiw3
ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxh
eWVyKCkgY29uc3QgPSAwOwogICAgIAogcHJvdGVjdGVkOgotICAgIEltYWdlQnVmZmVyKCkgPSBk
ZWZhdWx0OworICAgIHVzaW5nIFJlbmRlcmluZ1Jlc291cmNlOjpSZW5kZXJpbmdSZXNvdXJjZTsK
IAogICAgIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBzaW5rSW50b05hdGl2ZUltYWdlKCkg
PSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlPiBzaW5rSW50b0ltYWdlKFByZXNlcnZlUmVz
b2x1dGlvbiA9IFByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmNwcAppbmRleCAwYTMxNTU4NTAzNDk1
ZTJkZTkzN2U3MjY5MzFlYzc4ODBjZjY5YTI3Li5jZjA1OWY2MzJlZTZhMDUyMDY1ZTdkNzQ0MDk1
OTlkMWEyMTI3MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9OYXRpdmVJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TmF0aXZlSW1hZ2UuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKIAotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTmF0aXZlSW1h
Z2U6OmNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTM4LDE1ICsz
Niw5IEBAIFJlZlB0cjxOYXRpdmVJbWFnZT4gTmF0aXZlSW1hZ2U6OmNyZWF0ZShQbGF0Zm9ybUlt
YWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwgUmVuZGVyCiB9CiAKIE5hdGl2ZUltYWdlOjpOYXRpdmVJ
bWFnZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKLSAgICA6IG1fcGxhdGZvcm1J
bWFnZShXVEZNb3ZlKHBsYXRmb3JtSW1hZ2UpKQotICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotewotfQotCi1OYXRpdmVJbWFn
ZTo6fk5hdGl2ZUltYWdlKCkKKyAgICA6IFJlbmRlcmluZ1Jlc291cmNlKHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKKyAgICAsIG1fcGxhdGZvcm1JbWFnZShXVEZNb3ZlKHBsYXRmb3JtSW1h
Z2UpKQogewotICAgIGZvciAoYXV0byBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAgICBv
YnNlcnZlci0+cmVsZWFzZU5hdGl2ZUltYWdlKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKaW5kZXggOTQ1YjhkZTk4ZDRiOTg4Y2VkOWEyNjVk
MTZlNTk0MDEzMWQxMzgwYy4uMTc3YTk4NTUzN2Y4NjliYzUyY2EyYWZkOTEzZGE2NzA4NDdkYzFm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1h
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5o
CkBAIC0zMCwyOSArMzAsMTYgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkludFNp
emUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUltYWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2UuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIE5hdGl2ZUltYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8TmF0aXZl
SW1hZ2U+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmF0aXZlSW1hZ2U+IHsKK2NsYXNzIE5hdGl2
ZUltYWdlIDogcHVibGljIFJlbmRlcmluZ1Jlc291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjbGFzcyBPYnNlcnZlciB7Ci0gICAgcHVibGljOgotICAg
ICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpID0gZGVmYXVsdDsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpID0gMDsKLSAg
ICBwcm90ZWN0ZWQ6Ci0gICAgICAgIE9ic2VydmVyKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KICAg
ICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPE5hdGl2ZUltYWdlPiBjcmVhdGUoUGxhdGZv
cm1JbWFnZVB0ciYmLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgfk5hdGl2
ZUltYWdlKCk7Ci0KICAgICBjb25zdCBQbGF0Zm9ybUltYWdlUHRyJiBwbGF0Zm9ybUltYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUltYWdlOyB9CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOyB9CiAKQEAgLTYwLDE4ICs0NywxMiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0OwogICAgIENvbG9yIHNpbmdsZVBpeGVsU29s
aWRDb2xvcigpIGNvbnN0OwogCi0gICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2
ZXIpIHsgbV9vYnNlcnZlcnMuYWRkKCZvYnNlcnZlcik7IH0KLSAgICB2b2lkIHJlbW92ZU9ic2Vy
dmVyKE9ic2VydmVyJiBvYnNlcnZlcikgeyBtX29ic2VydmVycy5yZW1vdmUoJm9ic2VydmVyKTsg
fQotICAgIAogICAgIHZvaWQgY2xlYXJTdWJpbWFnZXMoKTsKIAogcHJpdmF0ZToKLSAgICBOYXRp
dmVJbWFnZShQbGF0Zm9ybUltYWdlUHRyJiYpOwogICAgIE5hdGl2ZUltYWdlKFBsYXRmb3JtSW1h
Z2VQdHImJiwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIFBsYXRmb3JtSW1h
Z2VQdHIgbV9wbGF0Zm9ybUltYWdlOwotICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX29ic2VydmVy
czsKLSAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXI7CiB9OwogCiB1c2luZyBOYXRpdmVJbWFnZUhhc2hNYXAgPSBIYXNoTWFwPFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVmPE5hdGl2ZUltYWdlPj47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCmluZGV4IDc5NmEwN2MxODZiNjJmZjRl
NmI2ZWEyNjEwN2ZmOWZjNGM0MzhlNzEuLjcwODAwN2M5OGFjNDUyYjZkNGM2NTkyNDczODI5MTlm
YWYzNTI3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bh
dHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4u
Y3BwCkBAIC0zMSwyMCArMzEsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8UGF0
dGVybj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0
WCwgYm9vbCByZXBlYXRZKQorUmVmPFBhdHRlcm4+IFBhdHRlcm46OmNyZWF0ZShSZWY8SW1hZ2U+
JiYgdGlsZUltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBQYXR0ZXJuKFdURk1vdmUodGlsZUltYWdlKSwgcmVwZWF0WCwgcmVwZWF0
WSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhdHRlcm4oV1RGTW92ZSh0aWxlSW1hZ2Up
LCByZXBlYXRYLCByZXBlYXRZLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKTsKIH0KIAot
UGF0dGVybjo6UGF0dGVybihSZWY8SW1hZ2U+JiYgaW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCBy
ZXBlYXRZKQotICAgIDogbV90aWxlSW1hZ2UoV1RGTW92ZShpbWFnZSkpCitQYXR0ZXJuOjpQYXR0
ZXJuKFJlZjxJbWFnZT4mJiBpbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAg
OiBSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgLCBt
X3RpbGVJbWFnZShXVEZNb3ZlKGltYWdlKSkKICAgICAsIG1fcmVwZWF0WChyZXBlYXRYKQogICAg
ICwgbV9yZXBlYXRZKHJlcGVhdFkpCiB7CiB9CiAKLVBhdHRlcm46On5QYXR0ZXJuKCkgPSBkZWZh
dWx0OwotCiB2b2lkIFBhdHRlcm46OnNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybShjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQogewogICAgIG1fcGF0dGVy
blNwYWNlVHJhbnNmb3JtYXRpb24gPSBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAppbmRleCBhYmNkNDRmYWJjN2Ew
NTAwNmYxZTM1NGNlZGY1ZjE3YzE4ZTQzYzMzLi4yZWEzODU3YmVmMTk1MzhkMDRhZmExYzY3NGNh
YWIxMDdhMmUwNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QYXR0ZXJuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVy
bi5oCkBAIC01NywxMCArNTcsOSBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbWFn
ZTsKIGNsYXNzIEltYWdlSGFuZGxlOwogCi1jbGFzcyBQYXR0ZXJuIGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8UGF0dGVybj4geworY2xhc3MgUGF0dGVybiBmaW5hbCA6IHB1YmxpYyBSZW5kZXJp
bmdSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxQYXR0
ZXJuPiBjcmVhdGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJl
cGVhdFkpOwotICAgIFdFQkNPUkVfRVhQT1JUIH5QYXR0ZXJuKCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxQYXR0ZXJuPiBjcmVhdGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwgYm9v
bCByZXBlYXRYLCBib29sIHJlcGVhdFksIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA9IFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSk7CiAKICAgICBJbWFnZSYgdGls
ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gbV90aWxlSW1hZ2UuZ2V0KCk7IH0KIApAQCAtNzUsMTEg
Kzc0LDggQEAgcHVibGljOgogICAgIGJvb2wgcmVwZWF0WCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVw
ZWF0WDsgfQogICAgIGJvb2wgcmVwZWF0WSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwZWF0WTsgfQog
Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8UGF0dGVy
bj4+IGRlY29kZShEZWNvZGVyJik7Ci0KIHByaXZhdGU6Ci0gICAgUGF0dGVybihSZWY8SW1hZ2U+
JiYsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBQYXR0ZXJuKFJlZjxJbWFnZT4m
JiwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cik7CiAKICAgICBSZWY8SW1hZ2U+IG1fdGlsZUltYWdlOwogICAgIEFmZmluZVRyYW5zZm9ybSBt
X3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOwpAQCAtODcsNDQgKzgzLDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fcmVwZWF0WTsKIH07CiAKLXRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lk
IFBhdHRlcm46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIEltYWdlSGFu
ZGxlIGltYWdlSGFuZGxlOwotICAgIGltYWdlSGFuZGxlLmltYWdlID0gbV90aWxlSW1hZ2UucHRy
KCk7Ci0gICAgZW5jb2RlciA8PCBpbWFnZUhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IG1fcGF0dGVy
blNwYWNlVHJhbnNmb3JtYXRpb247Ci0gICAgZW5jb2RlciA8PCBtX3JlcGVhdFg7Ci0gICAgZW5j
b2RlciA8PCBtX3JlcGVhdFk7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25h
bDxSZWY8UGF0dGVybj4+IFBhdHRlcm46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAg
IE9wdGlvbmFsPEltYWdlSGFuZGxlPiBpbWFnZUhhbmRsZTsKLSAgICBkZWNvZGVyID4+IGltYWdl
SGFuZGxlOwotICAgIGlmICghaW1hZ2VIYW5kbGUpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0KLSAgICBPcHRpb25hbDxBZmZpbmVUcmFuc2Zvcm0+IHBhdHRlcm5TcGFjZVRyYW5zZm9y
bWF0aW9uOwotICAgIGRlY29kZXIgPj4gcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247Ci0gICAg
aWYgKCFwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikKLSAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLQotICAgIE9wdGlvbmFsPGJvb2w+IHJlcGVhdFg7Ci0gICAgZGVjb2RlciA+PiByZXBl
YXRYOwotICAgIGlmICghcmVwZWF0WCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgIE9wdGlvbmFsPGJvb2w+IHJlcGVhdFk7Ci0gICAgZGVjb2RlciA+PiByZXBlYXRZOwotICAg
IGlmICghcmVwZWF0WSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIGF1dG8g
cGF0dGVybiA9IFBhdHRlcm46OmNyZWF0ZShpbWFnZUhhbmRsZS0+aW1hZ2UucmVsZWFzZU5vbk51
bGwoKSwgKnJlcGVhdFgsICpyZXBlYXRZKTsKLSAgICBwYXR0ZXJuLT5zZXRQYXR0ZXJuU3BhY2VU
cmFuc2Zvcm0oKnBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKTsKLSAgICByZXR1cm4gcGF0dGVy
bjsKLX0KK3VzaW5nIFBhdHRlcm5IYXNoTWFwID0gSGFzaE1hcDxSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIFJlZjxQYXR0ZXJuPj47CiAKIH0gLy9uYW1lc3BhY2UKLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ1Jlc291cmNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjJhNGIwZGYzZjdiZTU3YjdkMDg3ZWRkODc4YTZjZWQ5ODE0Zjg5MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ1Jlc291
cmNlLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyaW5nUmVzb3VyY2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxSZW5kZXJpbmdSZXNvdXJjZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxSZW5kZXJpbmdSZXNvdXJjZT4geworcHVibGljOgorICAgIGNsYXNzIE9ic2VydmVyIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcikgPSAwOworICAgIHByb3RlY3RlZDoKKyAgICAgICAgT2JzZXJ2ZXIoKSA9IGRl
ZmF1bHQ7CisgICAgfTsKKworICAgIHZpcnR1YWwgflJlbmRlcmluZ1Jlc291cmNlKCkKKyAgICB7
CisgICAgICAgIGZvciAoYXV0byBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAg
b2JzZXJ2ZXItPnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShtX3JlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcik7CisgICAgfQorCisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyOyB9CisKKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZl
cikgeyBtX29ic2VydmVycy5hZGQoJm9ic2VydmVyKTsgfQorICAgIHZvaWQgcmVtb3ZlT2JzZXJ2
ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOyB9
CisKK3Byb3RlY3RlZDoKKyAgICBSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICA6IG1fcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICB7
CisgICAgfQorCisgICAgSGFzaFNldDxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOworICAgIFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4
IGE5NDc5ZjI2Yzc1NzI1Y2U3N2VhZGYxNTliMDJlNDI4YzgzY2JmZDUuLmJmZGY5YTIxMjVjZjA0
YTBhYzFmMTc4MjI2NWEwOWU5Y2E2MTQxOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApA
QCAtNTMsNiArNTMsOSBAQCB2b2lkIERpc3BsYXlMaXN0OjpkdW1wKCkgY29uc3QKIERpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdChEaXNwbGF5TGlzdCYmIG90aGVyKQogICAgIDogbV9pbWFnZUJ1ZmZl
cnMoc3RkOjpleGNoYW5nZShvdGhlci5tX2ltYWdlQnVmZmVycywgeyB9KSkKICAgICAsIG1fbmF0
aXZlSW1hZ2VzKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9uYXRpdmVJbWFnZXMsIHsgfSkpCisgICAg
LCBtX2ZvbnRzKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9mb250cywgeyB9KSkKKyAgICAsIG1fcGF0
dGVybnMoc3RkOjpleGNoYW5nZShvdGhlci5tX3BhdHRlcm5zLCB7IH0pKQorICAgICwgbV9ncmFk
aWVudHMoc3RkOjpleGNoYW5nZShvdGhlci5tX2dyYWRpZW50cywgeyB9KSkKICAgICAsIG1faXRl
bXMoc3RkOjpleGNoYW5nZShvdGhlci5tX2l0ZW1zLCBudWxscHRyKSkKICAgICAsIG1fZHJhd2lu
Z0l0ZW1FeHRlbnRzKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9kcmF3aW5nSXRlbUV4dGVudHMsIHsg
fSkpCiB7CkBAIC03MCw2ICs3Myw5IEBAIERpc3BsYXlMaXN0JiBEaXNwbGF5TGlzdDo6b3BlcmF0
b3I9KERpc3BsYXlMaXN0JiYgb3RoZXIpCiB7CiAgICAgbV9pbWFnZUJ1ZmZlcnMgPSBzdGQ6OmV4
Y2hhbmdlKG90aGVyLm1faW1hZ2VCdWZmZXJzLCB7IH0pOwogICAgIG1fbmF0aXZlSW1hZ2VzID0g
c3RkOjpleGNoYW5nZShvdGhlci5tX25hdGl2ZUltYWdlcywgeyB9KTsKKyAgICBtX2ZvbnRzID0g
c3RkOjpleGNoYW5nZShvdGhlci5tX2ZvbnRzLCB7IH0pOworICAgIG1fcGF0dGVybnMgPSBzdGQ6
OmV4Y2hhbmdlKG90aGVyLm1fcGF0dGVybnMsIHsgfSk7CisgICAgbV9ncmFkaWVudHMgPSBzdGQ6
OmV4Y2hhbmdlKG90aGVyLm1fZ3JhZGllbnRzLCB7IH0pOwogICAgIG1faXRlbXMgPSBzdGQ6OmV4
Y2hhbmdlKG90aGVyLm1faXRlbXMsIG51bGxwdHIpOwogICAgIG1fZHJhd2luZ0l0ZW1FeHRlbnRz
ID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2RyYXdpbmdJdGVtRXh0ZW50cywgeyB9KTsKICAgICBy
ZXR1cm4gKnRoaXM7CkBAIC04Miw2ICs4OCw5IEBAIHZvaWQgRGlzcGxheUxpc3Q6OmNsZWFyKCkK
ICAgICBtX2RyYXdpbmdJdGVtRXh0ZW50cy5jbGVhcigpOwogICAgIG1faW1hZ2VCdWZmZXJzLmNs
ZWFyKCk7CiAgICAgbV9uYXRpdmVJbWFnZXMuY2xlYXIoKTsKKyAgICBtX2ZvbnRzLmNsZWFyKCk7
CisgICAgbV9wYXR0ZXJucy5jbGVhcigpOworICAgIG1fZ3JhZGllbnRzLmNsZWFyKCk7CiB9CiAK
IGJvb2wgRGlzcGxheUxpc3Q6OnNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFncyBmbGFncywg
SXRlbUhhbmRsZSBpdGVtKQpAQCAtOTEsMTAgKzEwMCwxMCBAQCBib29sIERpc3BsYXlMaXN0Ojpz
aG91bGREdW1wRm9yRmxhZ3MoQXNUZXh0RmxhZ3MgZmxhZ3MsIEl0ZW1IYW5kbGUgaXRlbSkKICAg
ICAgICAgaWYgKCEoZmxhZ3MgJiBBc1RleHRGbGFnOjpJbmNsdWRlc1BsYXRmb3JtT3BlcmF0aW9u
cykpIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHN0YXRlSXRlbSA9IGl0ZW0uZ2V0PFNldFN0
YXRlPigpOwogICAgICAgICAgICAgLy8gRklYTUU6IGZvciBub3csIG9ubHkgZHJvcCB0aGUgaXRl
bSBpZiB0aGUgb25seSBzdGF0ZS1jaGFuZ2UgZmxhZ3MgYXJlIHBsYXRmb3JtLXNwZWNpZmljLgot
ICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkKKyAgICAg
ICAgICAgIGlmIChzdGF0ZUl0ZW0uc3RhdGVDaGFuZ2UoKS5tX2NoYW5nZUZsYWdzID09IEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0
YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4
ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQorICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZUNo
YW5nZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250c0NoYW5nZSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC0yMDMsMTIgKzIxMiw2IEBAIHZvaWQgRGlzcGxh
eUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJldHVybiBhcHBlbmQ8Q29u
Y2F0ZW5hdGVDVE0+KGl0ZW0uZ2V0PENvbmNhdGVuYXRlQ1RNPigpKTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRDVE06CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0Q1RNPihpdGVtLmdldDxTZXRD
VE0+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAg
ICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KGl0ZW0uZ2V0PFNldElubGlu
ZUZpbGxHcmFkaWVudD4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9y
OgotICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oaXRlbS5nZXQ8U2V0
SW5saW5lRmlsbENvbG9yPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VD
b2xvcjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oaXRlbS5n
ZXQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9r
ZVRoaWNrbmVzczoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KGl0
ZW0uZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Rh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCmluZGV4IGE5MDJmMzgzNDEzNjFmZThmNTc1YzBlODQ0
MWEyZWFlMWU5Yjg5NTUuLjNhNThiYjRiMDdkMjI3NGM3MDM1MzNjYmVmOTM2MWZjMTAzMjBkZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oCkBAIC0yOSw4ICsyOSwxMCBAQAogI2luY2x1ZGUgIkRp
c3BsYXlMaXN0SXRlbVR5cGUuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJG
b250LmgiCisjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlBhdHRlcm4uaCIKICNpbmNs
dWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Niw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICBjb25z
dCBJbWFnZUJ1ZmZlckhhc2hNYXAmIGltYWdlQnVmZmVycygpIGNvbnN0IHsgcmV0dXJuIG1faW1h
Z2VCdWZmZXJzOyB9CiAgICAgY29uc3QgTmF0aXZlSW1hZ2VIYXNoTWFwJiBuYXRpdmVJbWFnZXMo
KSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUltYWdlczsgfQogICAgIGNvbnN0IEZvbnRSZW5kZXJp
bmdSZXNvdXJjZU1hcCYgZm9udHMoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRzOyB9CisgICAgY29u
c3QgUGF0dGVybkhhc2hNYXAmIHBhdHRlcm5zKCkgY29uc3QgeyByZXR1cm4gbV9wYXR0ZXJuczsg
fQorICAgIGNvbnN0IEdyYWRpZW50SGFzaE1hcCYgZ3JhZGllbnRzKCkgY29uc3QgeyByZXR1cm4g
bV9ncmFkaWVudHM7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SXRlbUJ1ZmZlckNs
aWVudChJdGVtQnVmZmVyUmVhZGluZ0NsaWVudCopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0SXRlbUJ1ZmZlckNsaWVudChJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCopOwpAQCAtMTg4LDEx
ICsxOTIsMjcgQEAgcHJpdmF0ZToKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgdm9pZCBjYWNo
ZVBhdHRlcm4oUGF0dGVybiYgcGF0dGVybikKKyAgICB7CisgICAgICAgIG1fcGF0dGVybnMuZW5z
dXJlKHBhdHRlcm4ucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFsmXSgpIHsKKyAgICAg
ICAgICAgIHJldHVybiBtYWtlUmVmKHBhdHRlcm4pOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICB2b2lkIGNhY2hlR3JhZGllbnQoR3JhZGllbnQmIGdyYWRpZW50KQorICAgIHsKKyAgICAgICAg
bV9ncmFkaWVudHMuZW5zdXJlKGdyYWRpZW50LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
LCBbJl0oKSB7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZihncmFkaWVudCk7CisgICAgICAg
IH0pOworICAgIH0KKwogICAgIHN0YXRpYyBib29sIHNob3VsZER1bXBGb3JGbGFncyhBc1RleHRG
bGFncywgSXRlbUhhbmRsZSk7CiAKICAgICBJbWFnZUJ1ZmZlckhhc2hNYXAgbV9pbWFnZUJ1ZmZl
cnM7CiAgICAgTmF0aXZlSW1hZ2VIYXNoTWFwIG1fbmF0aXZlSW1hZ2VzOwogICAgIEZvbnRSZW5k
ZXJpbmdSZXNvdXJjZU1hcCBtX2ZvbnRzOworICAgIFBhdHRlcm5IYXNoTWFwIG1fcGF0dGVybnM7
CisgICAgR3JhZGllbnRIYXNoTWFwIG1fZ3JhZGllbnRzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
dGVtQnVmZmVyPiBtX2l0ZW1zOwogICAgIFZlY3RvcjxPcHRpb25hbDxGbG9hdFJlY3Q+PiBtX2Ry
YXdpbmdJdGVtRXh0ZW50czsKICAgICBib29sIG1fdHJhY2tzRHJhd2luZ0l0ZW1FeHRlbnRzIHsg
dHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAppbmRl
eCA1ZjljOWUyYTg0MTFmYmZjYTVmZWM2ZTk5Y2Q4MjZhMzg4OTdlYjA4Li45YTk1ODE4MTQ5MzU5
NWQ2YjM1NjM4NTBjMzJkNTkyOTQ0NzMxYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtNzIsMjQgKzcyLDEyIEBAIHZvaWQgSXRlbUhhbmRsZTo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgICAgICBnZXQ8U2V0Q1RNPigpLmFw
cGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6
OlNldElubGluZUZpbGxHcmFkaWVudDogewotICAgICAgICBnZXQ8U2V0SW5saW5lRmlsbEdyYWRp
ZW50PigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2Ug
SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogewotICAgICAgICBnZXQ8U2V0SW5saW5lRmls
bENvbG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOiB7Ci0gICAgICAgIGdldDxTZXRJbmxp
bmVTdHJva2VDb2xvcj4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHsKICAgICAgICAgZ2V0PFNl
dFN0cm9rZVRoaWNrbmVzcz4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogewotICAgICAgICBnZXQ8U2V0U3RhdGU+
KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHsKQEAgLTEy
MSw3ICsxMDksNyBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9J
bWFnZUJ1ZmZlcjogewotICAgICAgICBnZXQ8Q2xpcFRvSW1hZ2VCdWZmZXI+KCkuYXBwbHkoY29u
dGV4dCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXRUb1BhdGg6IHsKQEAgLTE0MCwxNSArMTI4
LDE1IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjogewotICAgICAgICBnZXQ8RHJhd0ltYWdlQnVmZmVy
PigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6IHsK
LSAgICAgICAgZ2V0PERyYXdOYXRpdmVJbWFnZT4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RHJhd1BhdHRlcm46IHsKLSAgICAgICAgZ2V0PERyYXdQYXR0ZXJuPigpLmFwcGx5
KGNvbnRleHQpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UmVjdDogewpAQCAtMzU0LDEwICszNDIs
NiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgICAgICBnZXQ8U2V0TGluZURhc2g+
KCkuflNldExpbmVEYXNoKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0U3RhdGU6IHsKLSAgICAgICAgZ2V0PFNldFN0YXRlPigpLn5TZXRTdGF0ZSgpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZVBhdGg6IHsK
ICAgICAgICAgZ2V0PFN0cm9rZVBhdGg+KCkuflN0cm9rZVBhdGgoKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtNDg2LDE4ICs0NzAsNiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgICAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRDVE0+Ojp2
YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbENvbG9yOiB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlf
ZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxDb2xvcj46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6IHsKLSAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0SW5s
aW5lRmlsbEdyYWRpZW50Pjo6dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOiB7Ci0gICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZVN0cm9rZUNvbG9yPjo6
dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlNldExp
bmVDYXA6IHsKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8U2V0TGluZUNhcD46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTEwLDYgKzQ4
MiwxMCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRNaXRlckxpbWl0Pjo6dmFsdWUpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7Cisg
ICAgICAgIGdldDxTZXRTdGF0ZT4oKS5+U2V0U3RhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHsKICAgICAgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0U3Ryb2tlVGhpY2tu
ZXNzPjo6dmFsdWUpOwogICAgICAgICByZXR1cm47CkBAIC03NDEsMTggKzcxNyw2IEBAIHZvaWQg
SXRlbUhhbmRsZTo6Y29weVRvKEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAg
IG5ldyAoaXRlbU9mZnNldCkgU2V0Q1RNKGdldDxTZXRDVE0+KCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogewotICAgICAg
ICBuZXcgKGl0ZW1PZmZzZXQpIFNldElubGluZUZpbGxDb2xvcihnZXQ8U2V0SW5saW5lRmlsbENv
bG9yPigpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ6IHsKLSAgICAgICAgbmV3IChpdGVtT2Zmc2V0KSBTZXRJbmxpbmVG
aWxsR3JhZGllbnQoZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHsKLSAg
ICAgICAgbmV3IChpdGVtT2Zmc2V0KSBTZXRJbmxpbmVTdHJva2VDb2xvcihnZXQ8U2V0SW5saW5l
U3Ryb2tlQ29sb3I+KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGNhc2UgSXRlbVR5
cGU6OlNldExpbmVDYXA6IHsKICAgICAgICAgbmV3IChpdGVtT2Zmc2V0KSBTZXRMaW5lQ2FwKGdl
dDxTZXRMaW5lQ2FwPigpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbVR5cGUuY3BwCmluZGV4IGMwYzczYjgzYmQ1MmVhYTA0YTk1MTc4MTgwNDQ1Mzk0
N2JiYzk1ZTkuLmJkY2UzMWE2MGI3NmNmZTNhZDY3OGZlZTllOTg2ZDhmNDE3YTk4NGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTQ4LDEyICs0OCw2IEBA
IHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAgICAg
cmV0dXJuIHNpemVvZihDb25jYXRlbmF0ZUNUTSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RN
OgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNldENUTSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZUZpbGxH
cmFkaWVudCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAg
ICByZXR1cm4gc2l6ZW9mKFNldElubGluZUZpbGxDb2xvcik7Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5saW5lU3Ry
b2tlQ29sb3IpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKICAgICAg
ICAgcmV0dXJuIHNpemVvZihTZXRTdHJva2VUaGlja25lc3MpOwogICAgIGNhc2UgSXRlbVR5cGU6
OlNldFN0YXRlOgpAQCAtMTg5LDkgKzE4Myw2IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlw
ZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2Nh
bGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElu
bGluZUZpbGxDb2xvcjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKICAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKQEAgLTMwMiw5ICsyOTMsNiBAQCBib29sIGlzSW5s
aW5lSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2Ug
SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6
CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRM
aW5lSm9pbjoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXggMGU5NDdhMDZkYWI1YTJkZmI0NzY5MDgyZjhj
YWM1NDhhZjg5MzQzYi4uNDZjNzZjMTNhMGNhY2M3YWJjZjYwNmU3OWYwYmZhMjQ3YzQwY2VjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC0zNiw5ICszNiw2IEBA
IGVudW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBTY2FsZSwKICAgICBDb25jYXRl
bmF0ZUNUTSwKICAgICBTZXRDVE0sCi0gICAgU2V0SW5saW5lRmlsbEdyYWRpZW50LAotICAgIFNl
dElubGluZUZpbGxDb2xvciwKLSAgICBTZXRJbmxpbmVTdHJva2VDb2xvciwKICAgICBTZXRTdHJv
a2VUaGlja25lc3MsCiAgICAgU2V0U3RhdGUsCiAgICAgU2V0TGluZUNhcCwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCAyMzI1OTYzYzk5YmI4YmNjZDhmMjc3MmY2Yzdm
MjhkYzg1YWM5NWUzLi43ZDhkZDE4YWJiYTUzZjllNDhiYjU1MGI4ZmRjZGI2NDQ2NWY4NWI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC0xMTUsODkgKzExNSw2IEBA
IHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25j
YXRlbmF0ZUNUTSYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFk
aWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKLSAg
ICA6IG1fZGF0YShncmFkaWVudC5kYXRhKCkpCi0gICAgLCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zv
cm1hdGlvbihncmFkaWVudC5ncmFkaWVudFNwYWNlVHJhbnNmb3JtKCkpCi0gICAgLCBtX3NwcmVh
ZE1ldGhvZChncmFkaWVudC5zcHJlYWRNZXRob2QoKSkKLSAgICAsIG1fY29sb3JTdG9wQ291bnQo
c3RhdGljX2Nhc3Q8dWludDhfdD4oZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkpKQotewotICAgIFJF
TEVBU0VfQVNTRVJUKG1fY29sb3JTdG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAg
IGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkgewotICAgICAg
ICBtX29mZnNldHNbaV0gPSBncmFkaWVudC5zdG9wcygpW2ldLm9mZnNldDsKLSAgICAgICAgbV9j
b2xvcnNbaV0gPSBncmFkaWVudC5zdG9wcygpW2ldLmNvbG9yLmFzSW5saW5lKCk7Ci0gICAgfQot
fQotCi1SZWY8R3JhZGllbnQ+IFNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQoKSBjb25z
dAotewotICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRlKEdyYWRpZW50OjpEYXRh
KG1fZGF0YSkpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7
ICsraSkKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCh7IG1fb2Zmc2V0c1tpXSwgQ29s
b3IobV9jb2xvcnNbaV0pIH0pOwotICAgIGdyYWRpZW50LT5zZXRTcHJlYWRNZXRob2QobV9zcHJl
YWRNZXRob2QpOwotICAgIGdyYWRpZW50LT5zZXRHcmFkaWVudFNwYWNlVHJhbnNmb3JtKG1fZ3Jh
ZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uKTsKLSAgICByZXR1cm4gZ3JhZGllbnQ7Ci19Ci0KLVNl
dElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KGZsb2F0IG9mZnNldHNb
bWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xvcnNbbWF4Q29sb3JTdG9wQ291
bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYgZGF0YSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBn
cmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24sIEdyYWRpZW50U3ByZWFkTWV0aG9kIHNwcmVhZE1l
dGhvZCwgdWludDhfdCBjb2xvclN0b3BDb3VudCkKLSAgICA6IG1fZGF0YShkYXRhKQotICAgICwg
bV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24oZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9u
KQotICAgICwgbV9zcHJlYWRNZXRob2Qoc3ByZWFkTWV0aG9kKQotICAgICwgbV9jb2xvclN0b3BD
b3VudChjb2xvclN0b3BDb3VudCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENv
dW50IDw9IG1heENvbG9yU3RvcENvdW50KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBt
X2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAgICAgICAgbV9vZmZzZXRzW2ldID0gb2Zmc2V0c1tp
XTsKLSAgICAgICAgbV9jb2xvcnNbaV0gPSBjb2xvcnNbaV07Ci0gICAgfQotfQotCi12b2lkIFNl
dElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25z
dAotewotICAgIGlmIChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KQotICAg
ICAgICBjb250ZXh0LnNldEZpbGxHcmFkaWVudChncmFkaWVudCgpKTsKLX0KLQotYm9vbCBTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKLXsK
LSAgICBpZiAoZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkgPiBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
Om1heENvbG9yU3RvcENvdW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBmb3IgKGF1
dG8mIGNvbG9yU3RvcCA6IGdyYWRpZW50LnN0b3BzKCkpIHsKLSAgICAgICAgaWYgKCFjb2xvclN0
b3AuY29sb3IuaXNJbmxpbmUoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IFNldElubGluZUZpbGxHcmFkaWVudCYpCi17Ci0gICAgLy8gRklY
TUU6IER1bXAgZ3JhZGllbnQgZGF0YS4KLSAgICByZXR1cm4gdHM7Ci19Ci0KLXZvaWQgU2V0SW5s
aW5lRmlsbENvbG9yOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Ci17Ci0g
ICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IoKSk7Ci19Ci0KLXN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVGaWxsQ29sb3ImIHN0
YXRlKQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAg
ICByZXR1cm4gdHM7Ci19Ci0KLXZvaWQgU2V0SW5saW5lU3Ryb2tlQ29sb3I6OmFwcGx5KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9y
KGNvbG9yKCkpOwotfQotCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgY29uc3QgU2V0SW5saW5lU3Ryb2tlQ29sb3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQ
cm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KIHZv
aWQgU2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNv
bnN0CiB7CiAgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MobV90aGlja25lc3MpOwpAQCAt
MjA5LDI0ICsxMjYsMzcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFNldFN0cm9rZVRoaWNrbmVzcyYgc3RhdGUpCiAgICAgcmV0dXJuIHRzOwog
fQogCi1TZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRl
LCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBmbGFncykKLSAgICA6IG1f
c3RhdGUoc3RhdGUsIGZsYWdzKQorU2V0U3RhdGU6OlNldFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzLCBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYgc3RhdGUpCisgICAgOiBtX3N0YXRlQ2hhbmdlKHsgc3RhdGUsIGNoYW5nZUZsYWdzIH0p
CisgICAgLCBtX3N0cm9rZUdyYWRpZW50SWRlbnRpZmllcihzdGF0ZS5zdHJva2VHcmFkaWVudCA/
IHN0YXRlLnN0cm9rZUdyYWRpZW50LT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSA6IFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKQorICAgICwgbV9zdHJva2VQYXR0ZXJuSWRlbnRp
ZmllcihzdGF0ZS5zdHJva2VQYXR0ZXJuID8gc3RhdGUuc3Ryb2tlUGF0dGVybi0+cmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKCkgOiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKKyAg
ICAsIG1fZmlsbEdyYWRpZW50SWRlbnRpZmllcihzdGF0ZS5maWxsR3JhZGllbnQgPyBzdGF0ZS5m
aWxsR3JhZGllbnQtPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIDogUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKCkpCisgICAgLCBtX2ZpbGxQYXR0ZXJuSWRlbnRpZmllcihzdGF0ZS5m
aWxsUGF0dGVybiA/IHN0YXRlLmZpbGxQYXR0ZXJuLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIoKSA6IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKQogewogfQogCi1TZXRTdGF0ZTo6
U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIHN0YXRlQ2hhbmdlKQot
ICAgIDogbV9zdGF0ZShzdGF0ZUNoYW5nZSkKK1NldFN0YXRlOjpTZXRTdGF0ZShjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UsIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciBzdHJva2VHcmFkaWVudElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBzdHJva2VQYXR0ZXJuSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IGZpbGxHcmFkaWVudElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmaWxs
UGF0dGVybklkZW50aWZpZXIpCisgICAgOiBtX3N0YXRlQ2hhbmdlKHN0YXRlQ2hhbmdlKQorICAg
ICwgbV9zdHJva2VHcmFkaWVudElkZW50aWZpZXIoc3Ryb2tlR3JhZGllbnRJZGVudGlmaWVyKQor
ICAgICwgbV9zdHJva2VQYXR0ZXJuSWRlbnRpZmllcihzdHJva2VQYXR0ZXJuSWRlbnRpZmllcikK
KyAgICAsIG1fZmlsbEdyYWRpZW50SWRlbnRpZmllcihmaWxsR3JhZGllbnRJZGVudGlmaWVyKQor
ICAgICwgbV9maWxsUGF0dGVybklkZW50aWZpZXIoZmlsbFBhdHRlcm5JZGVudGlmaWVyKQogewog
fQogCi12b2lkIFNldFN0YXRlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0
Cit2b2lkIFNldFN0YXRlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYWRpZW50
KiBzdHJva2VHcmFkaWVudCwgUGF0dGVybiogc3Ryb2tlUGF0dGVybiwgR3JhZGllbnQqIGZpbGxH
cmFkaWVudCwgUGF0dGVybiogZmlsbFBhdHRlcm4pIGNvbnN0CiB7Ci0gICAgbV9zdGF0ZS5hcHBs
eShjb250ZXh0KTsKKyAgICBtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBz
dHJva2VHcmFkaWVudDsKKyAgICBtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9
IHN0cm9rZVBhdHRlcm47CisgICAgbV9zdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxHcmFkaWVudCA9
IGZpbGxHcmFkaWVudDsKKyAgICBtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4gPSBm
aWxsUGF0dGVybjsKKworICAgIG1fc3RhdGVDaGFuZ2UuYXBwbHkoY29udGV4dCk7CiB9CiAKIHN0
YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRTdGF0
ZSYgc3RhdGUpCiB7Ci0gICAgdHMgPDwgc3RhdGUuc3RhdGUoKTsKKyAgICB0cyA8PCBzdGF0ZS5z
dGF0ZUNoYW5nZSgpOwogICAgIHJldHVybiB0czsKIH0KIApAQCAtMzAyLDExICsyMzIsNiBAQCBz
dGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ2xpcE91
dCYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZv
aWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFw
cGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdl
QnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQuY2xpcFRvSW1hZ2VCdWZmZXIoaW1hZ2VCdWZm
ZXIsIG1fZGVzdGluYXRpb25SZWN0KTsKQEAgLTQyMSwxMSArMzQ2LDYgQEAgc3RhdGljIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdHbHlwaHMmIGl0ZW0p
CiAgICAgcmV0dXJuIHRzOwogfQogCi1OT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIERyYXdJ
bWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKLXsKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLX0KLQogdm9pZCBEcmF3SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25z
dAogewogICAgIGNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBtX2Rlc3RpbmF0
aW9uUmVjdCwgbV9zcmNSZWN0LCBtX29wdGlvbnMpOwpAQCAtNDM5LDExICszNTksNiBAQCBzdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0ltYWdl
QnVmZmVyJiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAotTk9fUkVUVVJOX0RVRV9UT19BU1NF
UlQgdm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZvaWQgRHJhd05hdGl2ZUltYWdlOjph
cHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5hdGl2ZUltYWdlJiBpbWFnZSkgY29uc3QK
IHsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVz
dGluYXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CkBAIC00NzAsMTEgKzM4NSw2IEBA
IERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1h
Z2VJZGVudGlmaWVyLCBjb25zdCBGbG9hCiB7CiB9CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJU
IHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgTmF0aXZlSW1hZ2UmIGltYWdlKSBjb25zdAogewogICAgIGNv
bnRleHQuZHJhd1BhdHRlcm4oaW1hZ2UsIG1faW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9uLCBtX3Rp
bGVSZWN0LCBtX3BhdHRlcm5UcmFuc2Zvcm0sIG1fcGhhc2UsIG1fc3BhY2luZywgbV9vcHRpb25z
KTsKQEAgLTEwMjQsOSArOTM0LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6IHRz
IDw8ICJzY2FsZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTTogdHMgPDwgInNl
dC1jdG0iOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTTogdHMgPDwg
ImNvbmNhdGVudGF0ZS1jdG0iOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVG
aWxsR3JhZGllbnQ6IHRzIDw8ICJzZXQtaW5saW5lLWZpbGwtZ3JhZGllbnQiOyBicmVhazsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLWZp
bGwtY29sb3IiOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xv
cjogdHMgPDwgInNldC1pbmxpbmUtc3Ryb2tlLWNvbG9yIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOiB0cyA8PCAic2V0LXN0cm9rZS10aGlja25lc3MiOyBi
cmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogdHMgPDwgInNldC1zdGF0ZSI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHRzIDw8ICJzZXQtbGluZS1jYXAi
OyBicmVhazsKQEAgLTExMDcsMTUgKzEwMTQsNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0
ZW5hdGVDVE06CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PENvbmNhdGVuYXRlQ1RNPigpOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0g
ICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICB0
cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAgICAgICB0cyA8PCBpdGVt
LmdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKTsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRT
dHJva2VUaGlja25lc3M+KCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKaW5kZXggZWE4YWNhZGU2NTc1MTQwMTMwODBmMjcxYmQ3MmJlZmQzMTE1MTBhOC4u
ZGRlMWNjNDhhMzJkMmFjNGIxZDdkMzVkNTQ3ZGExMjdhODgxMzgwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtcy5oCkBAIC0xNjcsNjggKzE2Nyw2IEBAIHByaXZhdGU6CiAgICAgQWZm
aW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwogfTsKIAotY2xhc3MgU2V0SW5saW5lRmlsbEdyYWRp
ZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0g
SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDsKLSAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3
aW5nSXRlbSA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBtYXhDb2xvclN0
b3BDb3VudCA9IDQ7Ci0KLSAgICBTZXRJbmxpbmVGaWxsR3JhZGllbnQoY29uc3QgR3JhZGllbnQm
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXRJbmxpbmVGaWxsR3JhZGllbnQoZmxvYXQgb2Zmc2V0
c1ttYXhDb2xvclN0b3BDb3VudF0sIFNSR0JBPHVpbnQ4X3Q+IGNvbG9yc1ttYXhDb2xvclN0b3BD
b3VudF0sIGNvbnN0IEdyYWRpZW50OjpEYXRhJiwKLSAgICAgICAgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24sIEdyYWRpZW50U3ByZWFkTWV0aG9kLCB1
aW50OF90IGNvbG9yU3RvcENvdW50KTsKLQotICAgIHN0YXRpYyBib29sIGlzSW5saW5lKGNvbnN0
IEdyYWRpZW50Jik7Ci0gICAgUmVmPEdyYWRpZW50PiBncmFkaWVudCgpIGNvbnN0OwotCi0gICAg
dm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBmbG9h
dCBtX29mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdOwotICAgIFNSR0JBPHVpbnQ4X3Q+IG1fY29s
b3JzW21heENvbG9yU3RvcENvdW50XTsKLSAgICBHcmFkaWVudDo6RGF0YSBtX2RhdGE7Ci0gICAg
QWZmaW5lVHJhbnNmb3JtIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uOwotICAgIEdyYWRp
ZW50U3ByZWFkTWV0aG9kIG1fc3ByZWFkTWV0aG9kIHsgR3JhZGllbnRTcHJlYWRNZXRob2Q6OlBh
ZCB9OwotICAgIHVpbnQ4X3QgbV9jb2xvclN0b3BDb3VudCB7IDAgfTsKLX07Ci0KLWNsYXNzIFNl
dElubGluZUZpbGxDb2xvciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlw
ZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLQotICAgIFNldElubGluZUZpbGxDb2xvcihTUkdC
QTx1aW50OF90PiBjb2xvckRhdGEpCi0gICAgICAgIDogbV9jb2xvckRhdGEoY29sb3JEYXRhKQot
ICAgIHsKLSAgICB9Ci0KLSAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xv
ckRhdGEgfTsgfQotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXBy
aXZhdGU6Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvckRhdGE7Ci19OwotCi1jbGFzcyBTZXRJ
bmxpbmVTdHJva2VDb2xvciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlw
ZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjsKLSAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOwotCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3Io
U1JHQkE8dWludDhfdD4gY29sb3JEYXRhKQotICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0
YSkKLSAgICB7Ci0gICAgfQotCi0gICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiB7IG1f
Y29sb3JEYXRhIH07IH0KLQotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7
Ci0KLXByaXZhdGU6Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvckRhdGE7Ci19OwotCiBjbGFz
cyBTZXRTdHJva2VUaGlja25lc3MgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRl
bVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOwpAQCAtMjU0LDcw
ICsxOTIsMzggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0
ZW0gPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZh
bHNlOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmKTsK
LSAgICAKLSAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJik7CisgICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGVDaGFuZ2UmLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlR3JhZGllbnRJ
ZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0dGVybklkZW50
aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmaWxsR3JhZGllbnRJZGVudGlmaWVy
LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JZGVudGlmaWVyKTsKIAot
ICAgIHN0YXRpYyB2b2lkIGJ1aWxkZXJTdGF0ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdz
KTsKKyAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlQ2hhbmdlOyB9CiAKLSAgICBzdGF0aWMgdm9pZCBkdW1wU3Rh
dGVDaGFuZ2VzKFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwg
R3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MpOworICAgIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBzdHJva2VHcmFkaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX3N0cm9rZUdyYWRpZW50SWRlbnRpZmllcjsgfQorICAgIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciBzdHJva2VQYXR0ZXJuSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Ryb2tl
UGF0dGVybklkZW50aWZpZXI7IH0KKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmls
bEdyYWRpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbEdyYWRpZW50SWRlbnRp
ZmllcjsgfQorICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmaWxsUGF0dGVybklkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxQYXR0ZXJuSWRlbnRpZmllcjsgfQogCiAgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTZXRTdGF0ZT4gZGVjb2Rl
KERlY29kZXImKTsKIAotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Cisg
ICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBHcmFkaWVudCogc3Ryb2tlR3JhZGllbnQs
IFBhdHRlcm4qIHN0cm9rZVBhdHRlcm4sIEdyYWRpZW50KiBmaWxsR3JhZGllbnQsIFBhdHRlcm4q
IGZpbGxQYXR0ZXJuKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZUNoYW5nZSBtX3N0YXRlOworICAgIG11dGFibGUgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Ug
bV9zdGF0ZUNoYW5nZTsKKworICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3N0cm9r
ZUdyYWRpZW50SWRlbnRpZmllcjsKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9z
dHJva2VQYXR0ZXJuSWRlbnRpZmllcjsKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
bV9maWxsR3JhZGllbnRJZGVudGlmaWVyOworICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBtX2ZpbGxQYXR0ZXJuSWRlbnRpZmllcjsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
CiB2b2lkIFNldFN0YXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBh
dXRvIGNoYW5nZUZsYWdzID0gbV9zdGF0ZS5tX2NoYW5nZUZsYWdzOworICAgIGF1dG8gY2hhbmdl
RmxhZ3MgPSBtX3N0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3M7CiAgICAgZW5jb2RlciA8PCBjaGFu
Z2VGbGFnczsKIAotICAgIGF1dG8mIHN0YXRlID0gbV9zdGF0ZS5tX3N0YXRlOwotCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVu
dENoYW5nZSkpIHsKLSAgICAgICAgZW5jb2RlciA8PCAhIXN0YXRlLnN0cm9rZUdyYWRpZW50Owot
ICAgICAgICBpZiAoc3RhdGUuc3Ryb2tlR3JhZGllbnQpCi0gICAgICAgICAgICBlbmNvZGVyIDw8
ICpzdGF0ZS5zdHJva2VHcmFkaWVudDsKLSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2UpKSB7Ci0gICAg
ICAgIGVuY29kZXIgPDwgISFzdGF0ZS5zdHJva2VQYXR0ZXJuOwotICAgICAgICBpZiAoc3RhdGUu
c3Ryb2tlUGF0dGVybikKLSAgICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRlLnN0cm9rZVBhdHRl
cm47Ci0gICAgfQotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKSB7Ci0gICAgICAgIGVuY29kZXIgPDwgISFzdGF0
ZS5maWxsR3JhZGllbnQ7Ci0gICAgICAgIGlmIChzdGF0ZS5maWxsR3JhZGllbnQpCi0gICAgICAg
ICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5maWxsR3JhZGllbnQ7Ci0gICAgfQotCi0gICAgaWYgKGNo
YW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUGF0dGVybkNoYW5n
ZSkpIHsKLSAgICAgICAgZW5jb2RlciA8PCAhIXN0YXRlLmZpbGxQYXR0ZXJuOwotICAgICAgICBp
ZiAoc3RhdGUuZmlsbFBhdHRlcm4pCi0gICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5maWxs
UGF0dGVybjsKLSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5z
aGFkb3dPZmZzZXQ7Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93Qmx1cjsKLSAgICAg
ICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dDb2xvcjsKLSNpZiBVU0UoQ0cpCi0gICAgICAgIGVu
Y29kZXIgPDwgc3RhdGUuc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSNlbmRpZiAvLyBVU0UoQ0cp
Ci0gICAgfQotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0
cm9rZVRoaWNrbmVzczsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6VGV4dERyYXdpbmdNb2RlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBz
dGF0ZS50ZXh0RHJhd2luZ01vZGU7CisgICAgYXV0byYgc3RhdGUgPSBtX3N0YXRlQ2hhbmdlLm1f
c3RhdGU7CisgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCB1aW50OF90Kj4oJnN0YXRlKSwgc2l6ZW9mKEdyYXBoaWNzQ29udGV4dElubGluZVN0
YXRlKSwgMSk7CiAKICAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zdHJv
a2VDb2xvcjsKQEAgLTMyNSwzNSArMjMxLDIwIEBAIHZvaWQgU2V0U3RhdGU6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0
ZS5maWxsQ29sb3I7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0cm9rZVN0eWxlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5z
dHJva2VTdHlsZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6RmlsbFJ1bGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbGxS
dWxlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpDb21wb3NpdGVPcGVyYXRpb25DaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmNv
bXBvc2l0ZU9wZXJhdG9yOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRl
LmJsZW5kTW9kZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZSkpCi0gICAgICAgIGVuY29k
ZXIgPDwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsKLQotICAgIGlmIChjaGFuZ2VG
bGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKQotICAgICAg
ICBlbmNvZGVyIDw8IHN0YXRlLmFscGhhOworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSkKKyAgICAgICAgZW5jb2RlciA8PCBz
dGF0ZS5zaGFkb3dDb2xvcjsKIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U2hvdWxkQW50aWFsaWFzQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8
PCBzdGF0ZS5zaG91bGRBbnRpYWxpYXM7CisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpCisgICAgICAgIGVuY29k
ZXIgPDwgbV9zdHJva2VHcmFkaWVudElkZW50aWZpZXI7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3Mu
Y29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFNtb290aEZvbnRzQ2hhbmdlKSkK
LSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaG91bGRTbW9vdGhGb250czsKKyAgICBpZiAoY2hh
bmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFu
Z2UpKQorICAgICAgICBlbmNvZGVyIDw8IG1fc3Ryb2tlUGF0dGVybklkZW50aWZpZXI7CiAKLSAg
ICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1
YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hv
dWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlKSkKKyAgICAgICAgZW5jb2Rl
ciA8PCBtX2ZpbGxHcmFkaWVudElkZW50aWZpZXI7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zQ2hhbmdl
KSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dzSWdub3JlVHJhbnNmb3JtczsKKyAg
ICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0
ZXJuQ2hhbmdlKSkKKyAgICAgICAgZW5jb2RlciA8PCBtX2ZpbGxQYXR0ZXJuSWRlbnRpZmllcjsK
IH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTM2NiwyMjUgKzI1Nyw2NCBAQCBPcHRp
b25hbDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogCiAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Ugc3RhdGVDaGFuZ2U7CiAgICAgc3RhdGVDaGFuZ2Uu
bV9jaGFuZ2VGbGFncyA9ICpjaGFuZ2VGbGFnczsKKyAgICAKKyAgICBhdXRvJiBzdGF0ZSA9IHN0
YXRlQ2hhbmdlLm1fc3RhdGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0
YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmc3RhdGUpLCBzaXplb2YoR3JhcGhpY3NDb250
ZXh0SW5saW5lU3RhdGUpLCAxKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAg
IGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaGFz
U3Ryb2tlR3JhZGllbnQ7Ci0gICAgICAgIGRlY29kZXIgPj4gaGFzU3Ryb2tlR3JhZGllbnQ7Ci0g
ICAgICAgIGlmICghaGFzU3Ryb2tlR3JhZGllbnQuaGFzVmFsdWUoKSkKLSAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgaWYgKGhhc1N0cm9rZUdyYWRpZW50LnZhbHVl
KCkpIHsKLSAgICAgICAgICAgIGF1dG8gc3Ryb2tlR3JhZGllbnQgPSBHcmFkaWVudDo6ZGVjb2Rl
KGRlY29kZXIpOwotICAgICAgICAgICAgaWYgKCFzdHJva2VHcmFkaWVudCkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnN0cm9rZUdyYWRpZW50ID0gV1RGTW92ZSgqc3Ryb2tlR3JhZGllbnQpOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlv
bmFsPGJvb2w+IGhhc1N0cm9rZVBhdHRlcm47Ci0gICAgICAgIGRlY29kZXIgPj4gaGFzU3Ryb2tl
UGF0dGVybjsKLSAgICAgICAgaWYgKCFoYXNTdHJva2VQYXR0ZXJuLmhhc1ZhbHVlKCkpCi0gICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmIChoYXNTdHJva2VQYXR0
ZXJuLnZhbHVlKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc3Ryb2tlUGF0dGVybiA9IFBhdHRlcm46
OmRlY29kZShkZWNvZGVyKTsKLSAgICAgICAgICAgIGlmICghc3Ryb2tlUGF0dGVybikKLSAgICAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNoYW5n
ZS5tX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEZNb3ZlKCpzdHJva2VQYXR0ZXJuKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKSB7Ci0gICAgICAgIE9w
dGlvbmFsPGJvb2w+IGhhc0ZpbGxHcmFkaWVudDsKLSAgICAgICAgZGVjb2RlciA+PiBoYXNGaWxs
R3JhZGllbnQ7Ci0gICAgICAgIGlmICghaGFzRmlsbEdyYWRpZW50Lmhhc1ZhbHVlKCkpCi0gICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmIChoYXNGaWxsR3JhZGll
bnQudmFsdWUoKSkgewotICAgICAgICAgICAgYXV0byBmaWxsR3JhZGllbnQgPSBHcmFkaWVudDo6
ZGVjb2RlKGRlY29kZXIpOwotICAgICAgICAgICAgaWYgKCFmaWxsR3JhZGllbnQpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICAgICAgc3RhdGVDaGFuZ2Uu
bV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEZNb3ZlKCpmaWxsR3JhZGllbnQpOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25h
bDxib29sPiBoYXNGaWxsUGF0dGVybjsKLSAgICAgICAgZGVjb2RlciA+PiBoYXNGaWxsUGF0dGVy
bjsKLSAgICAgICAgaWYgKCFoYXNGaWxsUGF0dGVybi5oYXNWYWx1ZSgpKQotICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBpZiAoaGFzRmlsbFBhdHRlcm4udmFsdWUo
KSkgewotICAgICAgICAgICAgYXV0byBmaWxsUGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNv
ZGVyKTsKLSAgICAgICAgICAgIGlmICghZmlsbFBhdHRlcm4pCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxs
UGF0dGVybiA9IFdURk1vdmUoKmZpbGxQYXR0ZXJuKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTaGFkb3dDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPEZsb2F0U2l6ZT4gc2hhZG93
T2Zmc2V0OwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd09mZnNldDsKLSAgICAgICAgaWYgKCFz
aGFkb3dPZmZzZXQpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAg
IHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93T2Zmc2V0ID0gKnNoYWRvd09mZnNldDsKLQotICAg
ICAgICBPcHRpb25hbDxmbG9hdD4gc2hhZG93Qmx1cjsKLSAgICAgICAgZGVjb2RlciA+PiBzaGFk
b3dCbHVyOwotICAgICAgICBpZiAoIXNoYWRvd0JsdXIpCi0gICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93Qmx1ciA9ICpz
aGFkb3dCbHVyOwotCi0gICAgICAgIE9wdGlvbmFsPENvbG9yPiBzaGFkb3dDb2xvcjsKLSAgICAg
ICAgZGVjb2RlciA+PiBzaGFkb3dDb2xvcjsKLSAgICAgICAgaWYgKCFzaGFkb3dDb2xvcikKLSAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9z
dGF0ZS5zaGFkb3dDb2xvciA9ICpzaGFkb3dDb2xvcjsKLQotI2lmIFVTRShDRykKLSAgICAgICAg
T3B0aW9uYWw8Ym9vbD4gc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSAgICAgICAgZGVjb2RlciA+
PiBzaGFkb3dzVXNlTGVnYWN5UmFkaXVzOwotICAgICAgICBpZiAoIXNoYWRvd3NVc2VMZWdhY3lS
YWRpdXMpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRl
Q2hhbmdlLm1fc3RhdGUuc2hhZG93c1VzZUxlZ2FjeVJhZGl1cyA9ICpzaGFkb3dzVXNlTGVnYWN5
UmFkaXVzOwotI2VuZGlmIC8vIFVTRShDRykKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2Uu
bV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlVGhpY2tu
ZXNzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxmbG9hdD4gc3Ryb2tlVGhpY2tuZXNzOwot
ICAgICAgICBkZWNvZGVyID4+IHN0cm9rZVRoaWNrbmVzczsKLSAgICAgICAgaWYgKCFzdHJva2VU
aGlja25lc3MpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0
YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzID0gKnN0cm9rZVRoaWNrbmVzczsKLSAg
ICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6VGV4dERyYXdpbmdNb2RlQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25h
bDxUZXh0RHJhd2luZ01vZGVGbGFncz4gdGV4dERyYXdpbmdNb2RlOwotICAgICAgICBkZWNvZGVy
ID4+IHRleHREcmF3aW5nTW9kZTsKLSAgICAgICAgaWYgKCF0ZXh0RHJhd2luZ01vZGUpCi0gICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3Rh
dGUudGV4dERyYXdpbmdNb2RlID0gV1RGTW92ZSgqdGV4dERyYXdpbmdNb2RlKTsKLSAgICB9Ci0K
LSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKSB7CisgICAgaWYgKGNoYW5nZUZsYWdzLT5jb250
YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKSB7CiAgICAgICAg
IE9wdGlvbmFsPENvbG9yPiBzdHJva2VDb2xvcjsKICAgICAgICAgZGVjb2RlciA+PiBzdHJva2VD
b2xvcjsKICAgICAgICAgaWYgKCFzdHJva2VDb2xvcikKICAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VDb2xvciA9ICpz
dHJva2VDb2xvcjsKKyAgICAgICAgc3RhdGUuc3Ryb2tlQ29sb3IgPSAqc3Ryb2tlQ29sb3I7CiAg
ICAgfQogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSkpIHsKKyAgICBpZiAoY2hhbmdlRmxhZ3Mt
PmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpKSB7CiAgICAg
ICAgIE9wdGlvbmFsPENvbG9yPiBmaWxsQ29sb3I7CiAgICAgICAgIGRlY29kZXIgPj4gZmlsbENv
bG9yOwogICAgICAgICBpZiAoIWZpbGxDb2xvcikKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsQ29sb3IgPSAqZmlsbENv
bG9yOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VTdHlsZUNoYW5nZSkpIHsKLSAgICAgICAgU3Ry
b2tlU3R5bGUgc3Ryb2tlU3R5bGU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Ryb2tl
U3R5bGUpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0
ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZVN0eWxlID0gc3Ryb2tlU3R5bGU7Ci0gICAgfQotCi0gICAg
aWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OkZpbGxSdWxlQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxXaW5kUnVsZT4gZmlsbFJ1
bGU7Ci0gICAgICAgIGRlY29kZXIgPj4gZmlsbFJ1bGU7Ci0gICAgICAgIGlmICghZmlsbFJ1bGUp
Ci0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdl
Lm1fc3RhdGUuZmlsbFJ1bGUgPSAqZmlsbFJ1bGU7CisgICAgICAgIHN0YXRlLmZpbGxDb2xvciA9
ICpmaWxsQ29sb3I7CiAgICAgfQogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3Mu
Y29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJhdGlvbkNoYW5nZSkp
IHsKLSAgICAgICAgT3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0b3I+IGNvbXBvc2l0ZU9wZXJhdG9y
OwotICAgICAgICBkZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9yOwotICAgICAgICBpZiAoIWNv
bXBvc2l0ZU9wZXJhdG9yKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAg
ICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmNvbXBvc2l0ZU9wZXJhdG9yID0gKmNvbXBvc2l0ZU9w
ZXJhdG9yOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UpKSB7Ci0gICAgICAgIE9w
dGlvbmFsPEJsZW5kTW9kZT4gYmxlbmRNb2RlOwotICAgICAgICBkZWNvZGVyID4+IGJsZW5kTW9k
ZTsKLSAgICAgICAgaWYgKCFibGVuZE1vZGUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuYmxlbmRNb2RlID0gKmJsZW5kTW9k
ZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZSkpIHsK
LSAgICAgICAgT3B0aW9uYWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+IGltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHk7Ci0gICAgICAgIGRlY29kZXIgPj4gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsK
LSAgICAgICAgaWYgKCFpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KQotICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHkgPSAqaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsKLSAgICB9Ci0K
LSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBhbHBoYTsK
LSAgICAgICAgZGVjb2RlciA+PiBhbHBoYTsKLSAgICAgICAgaWYgKCFhbHBoYSkKKyAgICBpZiAo
Y2hhbmdlRmxhZ3MtPmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2Up
KSB7CisgICAgICAgIE9wdGlvbmFsPENvbG9yPiBzaGFkb3dDb2xvcjsKKyAgICAgICAgZGVjb2Rl
ciA+PiBzaGFkb3dDb2xvcjsKKyAgICAgICAgaWYgKCFzaGFkb3dDb2xvcikKICAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5hbHBo
YSA9ICphbHBoYTsKKyAgICAgICAgc3RhdGUuc2hhZG93Q29sb3IgPSAqc2hhZG93Q29sb3I7CiAg
ICAgfQogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlNob3VsZEFudGlhbGlhc0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9u
YWw8Ym9vbD4gc2hvdWxkQW50aWFsaWFzOwotICAgICAgICBkZWNvZGVyID4+IHNob3VsZEFudGlh
bGlhczsKLSAgICAgICAgaWYgKCFzaG91bGRBbnRpYWxpYXMpCisgICAgT3B0aW9uYWw8UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzdHJva2VHcmFkaWVudElkZW50aWZpZXIgPSBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKTsKKyAgICBpZiAoY2hhbmdlRmxhZ3MtPmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpIHsKKyAgICAgICAgZGVj
b2RlciA+PiBzdHJva2VHcmFkaWVudElkZW50aWZpZXI7CisgICAgICAgIGlmICghc3Ryb2tlR3Jh
ZGllbnRJZGVudGlmaWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAg
ICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNob3VsZEFudGlhbGlhcyA9ICpzaG91bGRBbnRpYWxp
YXM7CiAgICAgfQogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMo
R3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFNtb290aEZvbnRzQ2hhbmdlKSkgewotICAgICAg
ICBPcHRpb25hbDxib29sPiBzaG91bGRTbW9vdGhGb250czsKLSAgICAgICAgZGVjb2RlciA+PiBz
aG91bGRTbW9vdGhGb250czsKLSAgICAgICAgaWYgKCFzaG91bGRTbW9vdGhGb250cykKKyAgICBP
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHN0cm9rZVBhdHRlcm5JZGVudGlm
aWVyID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7CisgICAgaWYgKGNoYW5nZUZsYWdz
LT5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVybkNoYW5nZSkpIHsK
KyAgICAgICAgZGVjb2RlciA+PiBzdHJva2VQYXR0ZXJuSWRlbnRpZmllcjsKKyAgICAgICAgaWYg
KCFzdHJva2VQYXR0ZXJuSWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRTbW9vdGhGb250cyA9ICpz
aG91bGRTbW9vdGhGb250czsKICAgICB9CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VG
bGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6
ZUZvbnRzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRTdWJwaXhlbFF1
YW50aXplRm9udHM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZv
bnRzOwotICAgICAgICBpZiAoIXNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cykKKyAgICBPcHRp
b25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGZpbGxHcmFkaWVudElkZW50aWZpZXIg
PSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKTsKKyAgICBpZiAoY2hhbmdlRmxhZ3MtPmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKSB7CisgICAg
ICAgIGRlY29kZXIgPj4gZmlsbEdyYWRpZW50SWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFmaWxs
R3JhZGllbnRJZGVudGlmaWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyA9
ICpzaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM7CiAgICAgfQogCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaGFkb3dz
SWdub3JlVHJhbnNmb3JtczsKLSAgICAgICAgZGVjb2RlciA+PiBzaGFkb3dzSWdub3JlVHJhbnNm
b3JtczsKLSAgICAgICAgaWYgKCFzaGFkb3dzSWdub3JlVHJhbnNmb3JtcykKKyAgICBPcHRpb25h
bDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGZpbGxQYXR0ZXJuSWRlbnRpZmllciA9IFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOworICAgIGlmIChjaGFuZ2VGbGFncy0+Y29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hhbmdlKSkgeworICAgICAgICBk
ZWNvZGVyID4+IGZpbGxQYXR0ZXJuSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFmaWxsUGF0dGVy
bklkZW50aWZpZXIpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAg
IHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPSAqc2hhZG93c0ln
bm9yZVRyYW5zZm9ybXM7CiAgICAgfQogCi0gICAgcmV0dXJuIHsgc3RhdGVDaGFuZ2UgfTsKKyAg
ICByZXR1cm4ge3sgc3RhdGVDaGFuZ2UsICpzdHJva2VHcmFkaWVudElkZW50aWZpZXIsICpzdHJv
a2VQYXR0ZXJuSWRlbnRpZmllciwgKmZpbGxHcmFkaWVudElkZW50aWZpZXIsICpmaWxsUGF0dGVy
bklkZW50aWZpZXIgfX07CiB9CiAKIGNsYXNzIFNldExpbmVDYXAgewpAQCAtNzU3LDggKzQ4Nyw2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6
SW1hZ2VCdWZmZXImKSBjb25zdDsKIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQg
YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwogICAgIEZsb2F0UmVj
dCBtX2Rlc3RpbmF0aW9uUmVjdDsKQEAgLTEwMzcsOCArNzY1LDYgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0
OwogCi0gICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRl
eHQmKSBjb25zdDsKLQogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29u
c3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2Nh
bEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0
aW9uUmVjdDsgfQogCkBAIC0xMDY4LDcgKzc5NCw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9h
dFJlY3QmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQogICAgIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblJl
Y3Q7IH0KIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJ
bWFnZSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBj
b25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KQEAgLTEwOTgsNyArODIzLDYgQEAgcHVibGlj
OgogICAgIEZsb2F0UG9pbnQgcGhhc2UoKSBjb25zdCB7IHJldHVybiBtX3BoYXNlOyB9CiAgICAg
RmxvYXRTaXplIHNwYWNpbmcoKSBjb25zdCB7IHJldHVybiBtX3NwYWNpbmc7IH0KIAotICAgIE5P
X1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7
CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0Owog
CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBX
VEY6Om51bGxvcHQ7IH0KQEAgLTE2MTQsNyArMTMzOCw3IEBAIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+CiB2b2lkIEZpbGxSZWN0V2l0aEdyYWRpZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG1fcmVjdDsKLSAgICBlbmNvZGVyIDw8IG1fZ3JhZGll
bnQuZ2V0KCk7CisgICAgZW5jb2RlciA8PCBtX2dyYWRpZW50OwogfQogCiB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgpAQCAtMTYyNSw3ICsxMzQ5LDggQEAgT3B0aW9uYWw8RmlsbFJlY3RXaXRoR3Jh
ZGllbnQ+IEZpbGxSZWN0V2l0aEdyYWRpZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICBpZiAoIXJlY3QpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBhdXRvIGdy
YWRpZW50ID0gR3JhZGllbnQ6OmRlY29kZShkZWNvZGVyKTsKKyAgICBPcHRpb25hbDxSZWY8R3Jh
ZGllbnQ+PiBncmFkaWVudDsKKyAgICBkZWNvZGVyID4+IGdyYWRpZW50OwogICAgIGlmICghZ3Jh
ZGllbnQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTIyOTAsOSArMjAxNSw2
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlPiB7CiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZSwKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTSwKICAgICBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNLAotICAgIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50LAotICAgIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yLAotICAgIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IsCiAgICAgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MsCiAgICAgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdGF0ZSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldExpbmVDYXAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAKaW5kZXggYjk0ODNkZjQyZGQ5MDE4N2IxZjY5ZGQ5MWI1ZWZiNGQ0OTBiNDJlYi4u
Y2NlNjczZDFlZmE5NDNlZTQ5MTQ2NzA1ZDJkNjMyODQwZmMzMDFjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtNTksNDkgKzU5LDMzIEBAIHZvaWQgUmVj
b3JkZXI6OnB1dEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0
Rm9ybWF0LCBjb25zdCBXCiAgICAgYXBwZW5kPFB1dEltYWdlRGF0YT4oaW5wdXRGb3JtYXQsIGlt
YWdlRGF0YSwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKIH0KIAotc3RhdGljIGJv
b2wgY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlQ2hhbmdlJiBjaGFuZ2VzLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyBjaGFuZ2VGbGFncykKK3ZvaWQgUmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncywgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlKQogewotICAgIHN0YXRpYyBjb25zdGV4cHIgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgaW5saW5lU3RhdGVDaGFuZ2VGbGFncyB7
Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UsCi0g
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSwKLSAgICAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSwKLSAgICAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSwKLSAgICB9OwotCi0gICAgaWYgKGNoYW5n
ZUZsYWdzICE9IChjaGFuZ2VGbGFncyAmIGlubGluZVN0YXRlQ2hhbmdlRmxhZ3MpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLnN0cm9r
ZUNvbG9yLmlzSW5saW5lKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAm
JiAhY2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci5pc0lubGluZSgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OkZpbGxHcmFkaWVudENoYW5nZSkKLSAgICAgICAgJiYgKCFjaGFuZ2VzLm1fc3RhdGUuZmls
bEdyYWRpZW50IHx8ICFTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKCpjaGFuZ2VzLm1f
c3RhdGUuZmlsbEdyYWRpZW50KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biB0cnVlOwotfQotCi12b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQotewotICAgIGlmICghY29udGFpbnNPbmx5
SW5saW5lU3RhdGVDaGFuZ2VzKGNoYW5nZXMsIGNoYW5nZUZsYWdzKSkgewotICAgICAgICBhcHBl
bmQ8U2V0U3RhdGU+KGNoYW5nZXMubV9zdGF0ZSwgY2hhbmdlRmxhZ3MpOwotICAgICAgICByZXR1
cm47CisgICAgaWYgKHN0YXRlLnN0cm9rZUdyYWRpZW50KSB7CisgICAgICAgIGlmIChtX2RlbGVn
YXRlKQorICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+Y2FjaGVHcmFkaWVudCgqc3RhdGUuc3Ryb2tl
R3JhZGllbnQpOworICAgICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlR3JhZGllbnQoKnN0YXRlLnN0
cm9rZUdyYWRpZW50KTsKICAgICB9CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNl
dElubGluZVN0cm9rZUNvbG9yPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlQ29sb3IuYXNJbmxpbmUo
KSk7CisgICAgaWYgKHN0YXRlLnN0cm9rZVBhdHRlcm4pIHsKKyAgICAgICAgaWYgKG1fZGVsZWdh
dGUpCisgICAgICAgICAgICBtX2RlbGVnYXRlLT5jYWNoZVBhdHRlcm4oKnN0YXRlLnN0cm9rZVBh
dHRlcm4pOworICAgICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlUGF0dGVybigqc3RhdGUuc3Ryb2tl
UGF0dGVybik7CisgICAgfQogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0
U3Ryb2tlVGhpY2tuZXNzPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzKTsKKyAgICBp
ZiAoc3RhdGUuZmlsbEdyYWRpZW50KSB7CisgICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAg
ICAgICAgbV9kZWxlZ2F0ZS0+Y2FjaGVHcmFkaWVudCgqc3RhdGUuZmlsbEdyYWRpZW50KTsKKyAg
ICAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZUdyYWRpZW50KCpzdGF0ZS5maWxsR3JhZGllbnQpOwor
ICAgIH0KIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6RmlsbENvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4o
Y2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci5hc0lubGluZSgpKTsKKyAgICBpZiAoc3RhdGUuZmls
bFBhdHRlcm4pIHsKKyAgICAgICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgICAgICBtX2RlbGVn
YXRlLT5jYWNoZVBhdHRlcm4oKnN0YXRlLmZpbGxQYXR0ZXJuKTsKKyAgICAgICAgbV9kaXNwbGF5
TGlzdC5jYWNoZVBhdHRlcm4oKnN0YXRlLmZpbGxQYXR0ZXJuKTsKKyAgICB9CiAKLSAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENo
YW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCpjaGFuZ2VzLm1f
c3RhdGUuZmlsbEdyYWRpZW50KTsKKyAgICBhcHBlbmQ8U2V0U3RhdGU+KGNoYW5nZUZsYWdzLCBz
dGF0ZSk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBl
IHR5cGUpCkBAIC0xMTgsNyArMTAyLDcgQEAgdm9pZCBSZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW1P
ZlR5cGUoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRl
Q2hhbmdlRmxhZ3MgY2hhbmdlc0Zyb21MYXN0U3RhdGUgPSBzdGF0ZUNoYW5nZXMuY2hhbmdlc0Zy
b21TdGF0ZShjdXJyZW50U3RhdGUoKS5sYXN0RHJhd2luZ1N0YXRlKTsKICAgICAgICAgaWYgKGNo
YW5nZXNGcm9tTGFzdFN0YXRlKSB7CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxh
eUxpc3RzLCBzdHJlYW0gPDwgInByZS1kcmF3aW5nLCBzYXZpbmcgc3RhdGUgIiA8PCBHcmFwaGlj
c0NvbnRleHRTdGF0ZUNoYW5nZShzdGF0ZUNoYW5nZXMubV9zdGF0ZSwgY2hhbmdlc0Zyb21MYXN0
U3RhdGUpKTsKLSAgICAgICAgICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShzdGF0ZUNoYW5nZXMs
IGNoYW5nZXNGcm9tTGFzdFN0YXRlKTsKKyAgICAgICAgICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRl
bShjaGFuZ2VzRnJvbUxhc3RTdGF0ZSwgc3RhdGVDaGFuZ2VzLm1fc3RhdGUpOwogICAgICAgICAg
ICAgc3RhdGVDaGFuZ2VzLm1fY2hhbmdlRmxhZ3MgPSB7IH07CiAgICAgICAgICAgICBjdXJyZW50
U3RhdGUoKS5sYXN0RHJhd2luZ1N0YXRlID0gc3RhdGVDaGFuZ2VzLm1fc3RhdGU7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IGI0MDNhZWE0ZmJi
YTNjMjUyMjIwZGU4YzBhZTJmNGNhYWNjNWUzOTIuLjA4ZWFmNTM3OTFiYWE2YjUyYzg4YWQ5OTM5
ZmU2NjAxNTg0MmRkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApA
QCAtNjksNiArNjksOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYWNoZU5hdGl2
ZUltYWdlKE5hdGl2ZUltYWdlJikgeyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NhY2hlZElt
YWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICAgICAgdmlydHVhbCB2b2lkIGNhY2hlRm9udChGb250JikgeyB9CisgICAgICAgIHZpcnR1YWwg
dm9pZCBjYWNoZVBhdHRlcm4oUGF0dGVybiYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fj
aGVHcmFkaWVudChHcmFkaWVudCYpIHsgfQogICAgIH07CiAKICAgICB2b2lkIGZsdXNoQ29udGV4
dChGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcikgeyBhcHBlbmQ8Rmx1c2hDb250ZXh0PihpZGVu
dGlmaWVyKTsgfQpAQCAtMTc0LDcgKzE3Niw3IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKTsKIAotICAgIHZvaWQgYXBwZW5k
U3RhdGVDaGFuZ2VJdGVtKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiwgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MpOworICAgIHZvaWQgYXBwZW5kU3RhdGVD
aGFuZ2VJdGVtKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzLCBjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYpOwogCiAgICAgRmxvYXRSZWN0IGV4dGVudEZyb21Mb2NhbEJv
dW5kcyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlcGxheWVyLmNwcAppbmRleCA0MmUxNDEyZTU0ODQ2YjBhMmJkODQ1NjNlYmFmNjI5
NjhhNTUzYjdjLi42NWZiN2E4NTQyZmM5YzExYzM2YjkyZDAxYmQzNGI2NGI3MTMzMjJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCkBAIC0zNCwxMiArMzQsMTQg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLVJlcGxh
eWVyOjpSZXBsYXllcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IERpc3BsYXlMaXN0
JiBkaXNwbGF5TGlzdCwgY29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwKiBpbWFnZUJ1ZmZlcnMsIGNv
bnN0IE5hdGl2ZUltYWdlSGFzaE1hcCogbmF0aXZlSW1hZ2VzLCBjb25zdCBGb250UmVuZGVyaW5n
UmVzb3VyY2VNYXAqIGZvbnRzLCBEZWxlZ2F0ZSogZGVsZWdhdGUpCitSZXBsYXllcjo6UmVwbGF5
ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBEaXNwbGF5TGlzdCYgZGlzcGxheUxp
c3QsIGNvbnN0IEltYWdlQnVmZmVySGFzaE1hcCogaW1hZ2VCdWZmZXJzLCBjb25zdCBOYXRpdmVJ
bWFnZUhhc2hNYXAqIG5hdGl2ZUltYWdlcywgY29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFw
KiBmb250cywgY29uc3QgUGF0dGVybkhhc2hNYXAqIHBhdHRlcm5zLCBjb25zdCBHcmFkaWVudEhh
c2hNYXAqIGdyYWRpZW50cywgRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCiAgICAgLCBtX2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQogICAgICwgbV9pbWFnZUJ1
ZmZlcnMoaW1hZ2VCdWZmZXJzID8gKmltYWdlQnVmZmVycyA6IG1fZGlzcGxheUxpc3QuaW1hZ2VC
dWZmZXJzKCkpCiAgICAgLCBtX25hdGl2ZUltYWdlcyhuYXRpdmVJbWFnZXMgPyAqbmF0aXZlSW1h
Z2VzIDogbV9kaXNwbGF5TGlzdC5uYXRpdmVJbWFnZXMoKSkKICAgICAsIG1fZm9udHMoZm9udHMg
PyAqZm9udHMgOiBtX2Rpc3BsYXlMaXN0LmZvbnRzKCkpCisgICAgLCBtX3BhdHRlcm5zKHBhdHRl
cm5zID8gKnBhdHRlcm5zIDogbV9kaXNwbGF5TGlzdC5wYXR0ZXJucygpKQorICAgICwgbV9ncmFk
aWVudHMoZ3JhZGllbnRzID8gKmdyYWRpZW50cyA6IG1fZGlzcGxheUxpc3QuZ3JhZGllbnRzKCkp
CiAgICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogfQpAQCAtODIsNiArODQsMzkgQEAgaW5s
aW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5Rm9u
dEl0ZW0oR3JhcGhpY3NDb250ZXgKICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOwogfQog
CitpbmxpbmUgc3RhdGljIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBw
bHlTZXRTdGF0ZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBQYXR0ZXJuSGFz
aE1hcCYgcGF0dGVybnMsIGNvbnN0IEdyYWRpZW50SGFzaE1hcCYgZ3JhZGllbnRzLCBJdGVtSGFu
ZGxlIGl0ZW0pCit7CisgICAgYXV0byYgc2V0U3RhdGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+
KCk7CisgICAgCisgICAgR3JhZGllbnQqIHN0cm9rZUdyYWRpZW50ID0gbnVsbHB0cjsKKyAgICBQ
YXR0ZXJuKiBzdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKKyAgICBHcmFkaWVudCogZmlsbEdyYWRp
ZW50ID0gbnVsbHB0cjsKKyAgICBQYXR0ZXJuKiBmaWxsUGF0dGVybiA9IG51bGxwdHI7CisKKyAg
ICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0uc3Ryb2tlR3JhZGll
bnRJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgaWYgKCEoc3Ryb2tlR3JhZGllbnQgPSBncmFkaWVu
dHMuZ2V0KHJlc291cmNlSWRlbnRpZmllcikpKQorICAgICAgICAgICAgcmV0dXJuIHJlc291cmNl
SWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBz
ZXRTdGF0ZUl0ZW0uc3Ryb2tlUGF0dGVybklkZW50aWZpZXIoKSkgeworICAgICAgICBpZiAoIShz
dHJva2VQYXR0ZXJuID0gcGF0dGVybnMuZ2V0KHJlc291cmNlSWRlbnRpZmllcikpKQorICAgICAg
ICAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBpZiAoYXV0byBy
ZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0uZmlsbEdyYWRpZW50SWRlbnRpZmllcigp
KSB7CisgICAgICAgIGlmICghKGZpbGxHcmFkaWVudCA9IGdyYWRpZW50cy5nZXQocmVzb3VyY2VJ
ZGVudGlmaWVyKSkpCisgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOworICAg
IH0KKworICAgIGlmIChhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRlSXRlbS5maWxs
UGF0dGVybklkZW50aWZpZXIoKSkgeworICAgICAgICBpZiAoIShmaWxsUGF0dGVybiA9IHBhdHRl
cm5zLmdldChyZXNvdXJjZUlkZW50aWZpZXIpKSkKKyAgICAgICAgICAgIHJldHVybiByZXNvdXJj
ZUlkZW50aWZpZXI7CisgICAgfQorCisgICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRleHQsIHN0
cm9rZUdyYWRpZW50LCBzdHJva2VQYXR0ZXJuLCBmaWxsR3JhZGllbnQsIGZpbGxQYXR0ZXJuKTsK
KyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBzdGQ6OnBhaXI8T3B0aW9uYWw8U3RvcFJl
cGxheVJlYXNvbj4sIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IFJlcGxh
eWVyOjphcHBseUl0ZW0oSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGlmIChtX2RlbGVnYXRlICYm
IG1fZGVsZWdhdGUtPmFwcGx5KGl0ZW0sIG1fY29udGV4dCkpCkBAIC0xMTcsNiArMTUyLDEyIEBA
IHN0ZDo6cGFpcjxPcHRpb25hbDxTdG9wUmVwbGF5UmVhc29uPiwgT3B0aW9uYWw8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPj4gUmVwCiAgICAgICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwg
V1RGOjpudWxsb3B0IH07CiAgICAgfQogCisgICAgaWYgKGl0ZW0uaXM8U2V0U3RhdGU+KCkpIHsK
KyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5
U2V0U3RhdGVJdGVtKG1fY29udGV4dCwgbV9wYXR0ZXJucywgbV9ncmFkaWVudHMsIGl0ZW0pKQor
ICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291
cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CisgICAgICAg
IHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CisgICAgfQorCiAgICAgaXRl
bS5hcHBseShtX2NvbnRleHQpOwogICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxs
b3B0IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaAppbmRleCBkNDE0
YTZmYTA1MDJlMTZmNzc5ZmJhNjJkMjI0MTk2MzQyM2ViMGFmLi5iNjFmZDdmMzAxNzQwNWE5MmRm
ZjYyNDlmM2NkMmFhM2E0MmU1MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmgKQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgUmVwbGF5ZXIgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFJlcGxheWVyKTsKIHB1YmxpYzoKICAgICBjbGFzcyBEZWxlZ2F0ZTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBSZXBsYXllcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBEaXNwbGF5TGlz
dCYsIGNvbnN0IEltYWdlQnVmZmVySGFzaE1hcCogPSBudWxscHRyLCBjb25zdCBOYXRpdmVJbWFn
ZUhhc2hNYXAqID0gbnVsbHB0ciwgY29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFwKiA9IG51
bGxwdHIsIERlbGVnYXRlKiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlcGxheWVy
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IERpc3BsYXlMaXN0JiwgY29uc3QgSW1hZ2VCdWZmZXJI
YXNoTWFwKiA9IG51bGxwdHIsIGNvbnN0IE5hdGl2ZUltYWdlSGFzaE1hcCogPSBudWxscHRyLCBj
b25zdCBGb250UmVuZGVyaW5nUmVzb3VyY2VNYXAqID0gbnVsbHB0ciwgY29uc3QgUGF0dGVybkhh
c2hNYXAqID0gbnVsbHB0ciwgY29uc3QgR3JhZGllbnRIYXNoTWFwKiA9IG51bGxwdHIsIERlbGVn
YXRlKiA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5SZXBsYXllcigpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgUmVwbGF5UmVzdWx0IHJlcGxheShjb25zdCBGbG9hdFJlY3QmIGluaXRp
YWxDbGlwID0geyB9LCBib29sIHRyYWNrUmVwbGF5TGlzdCA9IGZhbHNlKTsKQEAgLTc2LDYgKzc2
LDggQEAgcHJpdmF0ZToKICAgICBjb25zdCBJbWFnZUJ1ZmZlckhhc2hNYXAmIG1faW1hZ2VCdWZm
ZXJzOwogICAgIGNvbnN0IE5hdGl2ZUltYWdlSGFzaE1hcCYgbV9uYXRpdmVJbWFnZXM7CiAgICAg
Y29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFwJiBtX2ZvbnRzOworICAgIGNvbnN0IFBhdHRl
cm5IYXNoTWFwJiBtX3BhdHRlcm5zOworICAgIGNvbnN0IEdyYWRpZW50SGFzaE1hcCYgbV9ncmFk
aWVudHM7CiAgICAgRGVsZWdhdGUqIG1fZGVsZWdhdGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKaW5kZXggMjQ1ODNhZTA3MDFjZWIzYjFhZmJiZGY5NGYwZWE2MDE3YjU5NDMwMi4uOTMy
ZmNhYTM2MTk1ZWU0ODdmNGNhMDI3YzY3YTA1MTgyNThkNzVjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcApAQCAtMTQ5LDYgKzE0OSw4IEBAIERpc3BsYXlMaXN0OjpSZXBsYXlSZXN1bHQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6c3VibWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwCiAgICAg
ICAgICZyZW1vdGVSZXNvdXJjZUNhY2hlKCkuaW1hZ2VCdWZmZXJzKCksCiAgICAgICAgICZyZW1v
dGVSZXNvdXJjZUNhY2hlKCkubmF0aXZlSW1hZ2VzKCksCiAgICAgICAgICZyZW1vdGVSZXNvdXJj
ZUNhY2hlKCkuZm9udHMoKSwKKyAgICAgICAgJnJlbW90ZVJlc291cmNlQ2FjaGUoKS5wYXR0ZXJu
cygpLAorICAgICAgICAmcmVtb3RlUmVzb3VyY2VDYWNoZSgpLmdyYWRpZW50cygpLAogICAgICAg
ICByZXBsYXllckRlbGVnYXRlCiAgICAgfS5yZXBsYXkoKTsKIH0KQEAgLTMwMiwxNCArMzA0LDI0
IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVGb250KFJlZjxGb250PiYmIGZv
bnQpCiAgICAgICAgIHdha2VVcEFuZEFwcGx5RGlzcGxheUxpc3Qoc3RkOjpleGNoYW5nZShtX3Bl
bmRpbmdXYWtldXBJbmZvLCBXVEY6Om51bGxvcHQpLT5hcmd1bWVudHMpOwogfQogCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNhY2hlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJu
KQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZVBhdHRlcm4oV1RGTW92ZShwYXR0
ZXJuKSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y2FjaGVHcmFkaWVudChS
ZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNh
Y2hlR3JhZGllbnQoV1RGTW92ZShncmFkaWVudCkpOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmRlbGV0ZUFsbEZvbnRzKCkKIHsKICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUu
ZGVsZXRlQWxsRm9udHMoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxl
YXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJl
bmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLnJlbGVhc2VSZW1v
dGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVz
b3VyY2VDYWNoZS5yZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVTaGFy
ZWREaXNwbGF5TGlzdEhhbmRsZShEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcikKQEAgLTQwMCw5
ICs0MTIsNiBAQCBPcHRpb25hbDxEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZT4gV0FSTl9VTlVTRURf
UkVUVVJOIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlYwogICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTYXZlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZToK
ICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgRGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgY2FzZSBEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dExpbmVKb2luOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggN2E1YTBiNmE5OGViZmYxYmJjYzE5NzFiNzBkZTEx
MDBhOWI5OWRjOC4uYTJhYzU0MWZmZjgxNTliYTllMDRkODU3ZDY4Yzk5NGI1MmNmNmM5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oCkBAIC00Nyw3ICs0Nyw5IEBAIGNsYXNzIERpc3BsYXlMaXN0Owog
Y2xhc3MgSXRlbTsKIH0KIGNsYXNzIEZsb2F0U2l6ZTsKK2NsYXNzIEdyYWRpZW50OwogY2xhc3Mg
TmF0aXZlSW1hZ2U7CitjbGFzcyBQYXR0ZXJuOwogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiB9CkBAIC0xMTEsOCArMTEz
LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1h
Z2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYm
KTsKKyAgICB2b2lkIGNhY2hlUGF0dGVybihSZWY8V2ViQ29yZTo6UGF0dGVybj4mJik7CisgICAg
dm9pZCBjYWNoZUdyYWRpZW50KFJlZjxXZWJDb3JlOjpHcmFkaWVudD4mJik7CiAgICAgdm9pZCBk
ZWxldGVBbGxGb250cygpOwotICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZWxlYXNlUmVuZGVyaW5n
UmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lk
IGRpZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtQnVmZmVySWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlm
aWVyKTsKIAogICAgIHN0cnVjdCBQZW5kaW5nV2FrZXVwSW5mb3JtYXRpb24gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCAyMGY0ZTQ3OGUyNzI5YzYxM2E5NGQ2
MjFmZGVlMjQwMzUwZjNlNGVhLi4wNWZmMzRlNTZiZmEwZjE1YmUyNGU5MDEzMGI2ZmNlNWVlMjQ1
YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMjgsOSAr
MjgsMTEgQEAgbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVk
IHsKICAgICBHZXRJbWFnZURhdGEoZW51bTp1aW50OF90IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlw
bGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
IC0+IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGEpIFN5bmNocm9ub3VzCiAgICAg
Q2FjaGVOYXRpdmVJbWFnZShXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKICAgICBDYWNoZUZvbnQoSVBDOjpGb250UmVmZXJlbmNlIGZvbnQpCisgICAgQ2Fj
aGVQYXR0ZXJuKElQQzo6UGF0dGVyblJlZmVyZW5jZSBwYXR0ZXJuKQorICAgIENhY2hlR3JhZGll
bnQoSVBDOjpHcmFkaWVudFJlZmVyZW5jZSBncmFkaWVudCkKICAgICBEZWxldGVBbGxGb250cygp
CiAgICAgRGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
ZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQotICAgIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKQorICAgIFJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCmluZGV4IDgxZGRlMGJm
ZmNmMGJkNmNjMWMyOGU1ZGQyNDYzNzRiMzQ2NDYyNzguLmE0ODY4YjhmM2IyNTQ0ZTEzOWI5Y2Jl
OThlNmExMGVjNTM0YWRhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKQEAgLTU0LDEyICs1NCwyNSBA
QCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmNhY2hlRm9udChSZWY8Rm9udD4mJiBmb250KQog
ICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAK
Kwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjYWNoZVBhdHRlcm4oUmVmPFBhdHRlcm4+JiYg
cGF0dGVybikKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcGF0dGVybnMuYWRkKHBhdHRlcm4t
PnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHBhdHRlcm4pKTsKKyAgICBB
U1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworfQorCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGU6OmNhY2hlR3JhZGllbnQoUmVmPEdyYWRpZW50PiYmIGdyYWRp
ZW50KQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9ncmFkaWVudHMuYWRkKGdyYWRpZW50LT5y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgV1RGTW92ZShncmFkaWVudCkpOworICAgIEFT
U0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Cit9CisKIHZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZTo6ZGVsZXRlQWxsRm9udHMoKQogewogICAgIG1fZm9udHMuY2xl
YXIoKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7
CiAgICAgaWYgKG1faW1hZ2VCdWZmZXJzLnJlbW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpKQogICAgICAgICByZXR1cm47CkBAIC02Nyw2ICs4MCwxMCBAQCB2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZAogICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fZm9udHMucmVtb3ZlKHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9wYXR0ZXJu
cy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGlmIChtX2dyYWRpZW50cy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkK
KyAgICAgICAgcmV0dXJuOwogICAgIC8vIENhY2hpbmcgdGhlIHJlbW90ZSByZXNvdXJjZSBzaG91
bGQgaGF2ZSBoYXBwZW5lZCBiZWZvcmUgcmVsZWFzaW5nIGl0LgogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKaW5kZXggMmNlZDkwOWY0ODExMGM2NjY1NmRlMWJmZTM4
MTFkYmFiYWFhOWY0Zi4uNWY2NzJkMzdmNjYwNzAxNmFmOGYyNzY3NGViNGZkYjQ2NzJjMTZiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oCkBAIC0yOCw4ICsyOCwxMCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAogI2luY2x1ZGUgPFdlYkNvcmUvRm9udC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGll
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9OYXRpdmVJbWFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGF0dGVybi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KIApAQCAtNDUsMTcgKzQ3LDIzIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciogY2FjaGVkSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoUmVmPFdlYkNvcmU6Ok5hdGl2ZUlt
YWdlPiYmKTsKICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CisgICAg
dm9pZCBjYWNoZVBhdHRlcm4oUmVmPFdlYkNvcmU6OlBhdHRlcm4+JiYpOworICAgIHZvaWQgY2Fj
aGVHcmFkaWVudChSZWY8V2ViQ29yZTo6R3JhZGllbnQ+JiYpOwogICAgIHZvaWQgZGVsZXRlQWxs
Rm9udHMoKTsKLSAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNl
KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICBjb25zdCBXZWJD
b3JlOjpJbWFnZUJ1ZmZlckhhc2hNYXAmIGltYWdlQnVmZmVycygpIGNvbnN0IHsgcmV0dXJuIG1f
aW1hZ2VCdWZmZXJzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VIYXNoTWFwJiBu
YXRpdmVJbWFnZXMoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUltYWdlczsgfQogICAgIGNvbnN0
IFdlYkNvcmU6OkZvbnRSZW5kZXJpbmdSZXNvdXJjZU1hcCYgZm9udHMoKSBjb25zdCB7IHJldHVy
biBtX2ZvbnRzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UGF0dGVybkhhc2hNYXAmIHBhdHRlcm5z
KCkgY29uc3QgeyByZXR1cm4gbV9wYXR0ZXJuczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkdyYWRp
ZW50SGFzaE1hcCYgZ3JhZGllbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ncmFkaWVudHM7IH0KIAog
cHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZlckhhc2hNYXAgbV9pbWFnZUJ1ZmZlcnM7
CiAgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VIYXNoTWFwIG1fbmF0aXZlSW1hZ2VzOwogICAgIFdl
YkNvcmU6OkZvbnRSZW5kZXJpbmdSZXNvdXJjZU1hcCBtX2ZvbnRzOworICAgIFdlYkNvcmU6OlBh
dHRlcm5IYXNoTWFwIG1fcGF0dGVybnM7CisgICAgV2ViQ29yZTo6R3JhZGllbnRIYXNoTWFwIG1f
Z3JhZGllbnRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9HcmFkaWVudFJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvR3JhZGllbnRSZWZlcmVuY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjk3ZDZhNzlh
ZTFjOTQ4ZWU3NzMzYmVkNDE1MzMzMDc3ODUyOGY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvR3JhZGllbnRSZWZlcmVuY2UuaApAQCAtMCwwICsxLDQwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR3JhZGllbnQ7CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworbmFtZXNwYWNlIElQQyB7CisKK3VzaW5nIEdyYWRpZW50UmVmZXJlbmNlID0gUmVm
PFdlYkNvcmU6OkdyYWRpZW50PjsKKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9QYXR0ZXJuUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9QYXR0ZXJuUmVmZXJlbmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA5MWZkOGY2
NDY4Mzk0NzkyMTM4NDQ2ZDY3NjI0ODQ1YjM5N2Q0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1BhdHRlcm5SZWZlcmVuY2UuaApAQCAtMCwwICsxLDQwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGF0dGVybjsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCituYW1lc3BhY2UgSVBDIHsKKwordXNpbmcgUGF0dGVyblJlZmVyZW5jZSA9IFJlZjxX
ZWJDb3JlOjpQYXR0ZXJuPjsKKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAwZDhkZTA0OWY0YjUwY2JlN2M5OWU3MTA2ODI5
NjY5M2VlNTE4ODFjLi4zZmUyYzdhNjUyOGU2MmQ4OTJiZDQ2Y2RjYmQyMTQ3NzdhMjk3Yjc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIwNSw2ICsyMDUs
OCBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgIHJl
dHVybiBmcm96ZW5zZXQoWwogICAgICAgICAnSVBDOjpEYXRhUmVmZXJlbmNlJywKICAgICAgICAg
J0lQQzo6Rm9udFJlZmVyZW5jZScsCisgICAgICAgICdJUEM6OkdyYWRpZW50UmVmZXJlbmNlJywK
KyAgICAgICAgJ0lQQzo6UGF0dGVyblJlZmVyZW5jZScsCiAgICAgICAgICdNYWNoU2VuZFJpZ2h0
JywKICAgICAgICAgJ01lZGlhVGltZScsCiAgICAgICAgICdTdHJpbmcnLApAQCAtMjIyLDcgKzIy
NCw2IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAg
ICAgICdXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3Jl
OjpNZWRpYVNlc3Npb25JZGVudGlmaWVyJywKLSAgICAgICAgJ1dlYkNvcmU6Ok5hdGl2ZUltYWdl
UmVmZXJlbmNlJywKICAgICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3knLAogICAgICAgICAnV2ViQ29yZTo6UG9p
bnRlcklEJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCmluZGV4IGQ3NjY1NGI2NGY2MmEwOTFjZDkzNmRmYzAzZjAwNGFkZmMxOTljYjUuLjRmNmI0
ZTgyMWExOGUxNTY1YTRkZjU0Y2M3OThjYzllZTFiYWJlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTA5OSw3ICsxMDk5LDcgQEAg
Ym9vbCBBcmd1bWVudENvZGVyPEltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IEltYWdlSGFuZGxlJiBpbWFnZUhhbmQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1
bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8
V2ViQ29yZTo6Rm9udD4mIGZvbnQpCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxGb250PiYgZm9udCkKIHsKICAgICBlbmNv
ZGVyIDw8IGZvbnQtPm9yaWdpbigpOwogICAgIGVuY29kZXIgPDwgKGZvbnQtPmlzSW50ZXJzdGl0
aWFsKCkgPyBGb250OjpJbnRlcnN0aXRpYWw6OlllcyA6IEZvbnQ6OkludGVyc3RpdGlhbDo6Tm8p
OwpAQCAtMTE0NSw2ICsxMTQ1LDIwNSBAQCBPcHRpb25hbDxSZWY8Rm9udD4+IEFyZ3VtZW50Q29k
ZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgcmV0dXJuIEZvbnQ6
OmNyZWF0ZShwbGF0Zm9ybURhdGEudmFsdWUoKSwgb3JpZ2luLnZhbHVlKCksIGlzSW50ZXJzdGl0
aWFsLnZhbHVlKCksIHZpc2liaWxpdHkudmFsdWUoKSwgaXNUZXh0T3JpZW50YXRpb25GYWxsYmFj
ay52YWx1ZSgpLCByZW5kZXJpbmdSZXJzb3VjZUlkZW50aWZpZXIpOwogfQogCit2b2lkIEFyZ3Vt
ZW50Q29kZXI8UmVmPFBhdHRlcm4+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJl
ZjxQYXR0ZXJuPiYgcGF0dGVybikKK3sKKyAgICBJbWFnZUhhbmRsZSBpbWFnZUhhbmRsZTsKKyAg
ICBpbWFnZUhhbmRsZS5pbWFnZSA9IG1ha2VSZWYocGF0dGVybi0+dGlsZUltYWdlKCkpOworICAg
IGVuY29kZXIgPDwgaW1hZ2VIYW5kbGU7CisgICAgZW5jb2RlciA8PCBwYXR0ZXJuLT5wYXR0ZXJu
U3BhY2VUcmFuc2Zvcm0oKTsKKyAgICBlbmNvZGVyIDw8IHBhdHRlcm4tPnJlcGVhdFgoKTsKKyAg
ICBlbmNvZGVyIDw8IHBhdHRlcm4tPnJlcGVhdFkoKTsKKyAgICBlbmNvZGVyIDw8IHBhdHRlcm4t
PnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOworfQorCitPcHRpb25hbDxSZWY8UGF0dGVy
bj4+IEFyZ3VtZW50Q29kZXI8UmVmPFBhdHRlcm4+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgT3B0aW9uYWw8SW1hZ2VIYW5kbGU+IGltYWdlSGFuZGxlOworICAgIGRlY29kZXIg
Pj4gaW1hZ2VIYW5kbGU7CisgICAgaWYgKCFpbWFnZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gcGF0dGVyblNwYWNl
VHJhbnNmb3JtYXRpb247CisgICAgZGVjb2RlciA+PiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlv
bjsKKyAgICBpZiAoIXBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WDsKKyAgICBkZWNvZGVy
ID4+IHJlcGVhdFg7CisgICAgaWYgKCFyZXBlYXRYKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WTsKKyAgICBkZWNvZGVyID4+IHJlcGVh
dFk7CisgICAgaWYgKCFyZXBlYXRZKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiByZW5kZXJpbmdSZXJzb3Vj
ZUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiByZW5kZXJpbmdSZXJzb3VjZUlkZW50aWZpZXI7
CisgICAgaWYgKCFyZW5kZXJpbmdSZXJzb3VjZUlkZW50aWZpZXIuaGFzVmFsdWUoKSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGF1dG8gcGF0dGVybiA9IFBhdHRlcm46OmNy
ZWF0ZShpbWFnZUhhbmRsZS0+aW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgKnJlcGVhdFgsICpyZXBl
YXRZLCAqcmVuZGVyaW5nUmVyc291Y2VJZGVudGlmaWVyKTsKKyAgICBwYXR0ZXJuLT5zZXRQYXR0
ZXJuU3BhY2VUcmFuc2Zvcm0oKnBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKTsKKyAgICByZXR1
cm4gcGF0dGVybjsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPEdyYWRpZW50OjpDb2xvclN0b3A+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgR3JhZGllbnQ6OkNvbG9yU3RvcCYgc3Rv
cCkKK3sKKyAgICBlbmNvZGVyIDw8IHN0b3Aub2Zmc2V0OworICAgIGVuY29kZXIgPDwgc3RvcC5j
b2xvcjsKK30KKworT3B0aW9uYWw8R3JhZGllbnQ6OkNvbG9yU3RvcD4gQXJndW1lbnRDb2RlcjxH
cmFkaWVudDo6Q29sb3JTdG9wPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0
aW9uYWw8ZmxvYXQ+IG9mZnNldDsKKyAgICBkZWNvZGVyID4+IG9mZnNldDsKKyAgICBpZiAoIW9m
ZnNldCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPENvbG9y
PiBjb2xvcjsKKyAgICBkZWNvZGVyID4+IGNvbG9yOworICAgIGlmICghY29sb3IpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKm9mZnNldCwgKmNvbG9yIH19
OworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OkxpbmVhckRhdGE+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgR3JhZGllbnQ6OkxpbmVhckRhdGEmIGRhdGEpCit7Cisg
ICAgZW5jb2RlciA8PCBkYXRhLnBvaW50MDsKKyAgICBlbmNvZGVyIDw8IGRhdGEucG9pbnQxOwor
fQorCitPcHRpb25hbDxHcmFkaWVudDo6TGluZWFyRGF0YT4gQXJndW1lbnRDb2RlcjxHcmFkaWVu
dDo6TGluZWFyRGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFs
PEZsb2F0UG9pbnQ+IHBvaW50MDsKKyAgICBkZWNvZGVyID4+IHBvaW50MDsKKyAgICBpZiAoIXBv
aW50MCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZsb2F0
UG9pbnQ+IHBvaW50MTsKKyAgICBkZWNvZGVyID4+IHBvaW50MTsKKyAgICBpZiAoIXBvaW50MSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqcG9pbnQwLCAq
cG9pbnQxIH19OworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OlJhZGlhbERhdGE+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgR3JhZGllbnQ6OlJhZGlhbERhdGEmIGRh
dGEpCit7CisgICAgZW5jb2RlciA8PCBkYXRhLnBvaW50MDsKKyAgICBlbmNvZGVyIDw8IGRhdGEu
cG9pbnQxOworICAgIGVuY29kZXIgPDwgZGF0YS5zdGFydFJhZGl1czsKKyAgICBlbmNvZGVyIDw8
IGRhdGEuZW5kUmFkaXVzOworICAgIGVuY29kZXIgPDwgZGF0YS5hc3BlY3RSYXRpbzsKK30KKwor
T3B0aW9uYWw8R3JhZGllbnQ6OlJhZGlhbERhdGE+IEFyZ3VtZW50Q29kZXI8R3JhZGllbnQ6OlJh
ZGlhbERhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxGbG9h
dFBvaW50PiBwb2ludDA7CisgICAgZGVjb2RlciA+PiBwb2ludDA7CisgICAgaWYgKCFwb2ludDAp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGbG9hdFBvaW50
PiBwb2ludDE7CisgICAgZGVjb2RlciA+PiBwb2ludDE7CisgICAgaWYgKCFwb2ludDEpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxmbG9hdD4gc3RhcnRSYWRp
dXM7CisgICAgZGVjb2RlciA+PiBzdGFydFJhZGl1czsKKyAgICBpZiAoIXN0YXJ0UmFkaXVzKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8ZmxvYXQ+IGVuZFJh
ZGl1czsKKyAgICBkZWNvZGVyID4+IGVuZFJhZGl1czsKKyAgICBpZiAoIWVuZFJhZGl1cykKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGZsb2F0PiBhc3BlY3RS
YXRpbzsKKyAgICBkZWNvZGVyID4+IGFzcGVjdFJhdGlvOworICAgIGlmICghYXNwZWN0UmF0aW8p
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKnBvaW50MCwg
KnBvaW50MSwgKnN0YXJ0UmFkaXVzLCAqZW5kUmFkaXVzLCAqYXNwZWN0UmF0aW8gfX07Cit9CisK
K3ZvaWQgQXJndW1lbnRDb2RlcjxHcmFkaWVudDo6Q29uaWNEYXRhPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEdyYWRpZW50OjpDb25pY0RhdGEmIGRhdGEpCit7CisgICAgZW5jb2Rl
ciA8PCBkYXRhLnBvaW50MDsKKyAgICBlbmNvZGVyIDw8IGRhdGEuYW5nbGVSYWRpYW5zOworfQor
CitPcHRpb25hbDxHcmFkaWVudDo6Q29uaWNEYXRhPiBBcmd1bWVudENvZGVyPEdyYWRpZW50OjpD
b25pY0RhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxGbG9h
dFBvaW50PiBwb2ludDA7CisgICAgZGVjb2RlciA+PiBwb2ludDA7CisgICAgaWYgKCFwb2ludDAp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxmbG9hdD4gYW5n
bGVSYWRpYW5zOworICAgIGRlY29kZXIgPj4gYW5nbGVSYWRpYW5zOworICAgIGlmICghYW5nbGVS
YWRpYW5zKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7ICpw
b2ludDAsICphbmdsZVJhZGlhbnMgfX07Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxSZWY8R3Jh
ZGllbnQ+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxHcmFkaWVudD4mIGdy
YWRpZW50KQoreworICAgIGVuY29kZXIgPDwgZ3JhZGllbnQtPmRhdGEoKTsKKyAgICBlbmNvZGVy
IDw8IGdyYWRpZW50LT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKTsKKworICAgIGVuY29k
ZXIgPDwgZ3JhZGllbnQtPnN0b3BzKCk7CisgICAgZW5jb2RlciA8PCBncmFkaWVudC0+c3RvcHNT
b3J0ZWQoKTsKKyAgICBlbmNvZGVyIDw8IGdyYWRpZW50LT5zcHJlYWRNZXRob2QoKTsKKyAgICBl
bmNvZGVyIDw8IGdyYWRpZW50LT5ncmFkaWVudFNwYWNlVHJhbnNmb3JtKCk7Cit9CisKK09wdGlv
bmFsPFJlZjxHcmFkaWVudD4+IEFyZ3VtZW50Q29kZXI8UmVmPEdyYWRpZW50Pj46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPEdyYWRpZW50OjpEYXRhPiBkYXRhOwor
ICAgIGRlY29kZXIgPj4gZGF0YTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJl
bmRlcmluZ1JlcnNvdWNlSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IHJlbmRlcmluZ1JlcnNv
dWNlSWRlbnRpZmllcjsKKyAgICBpZiAoIXJlbmRlcmluZ1JlcnNvdWNlSWRlbnRpZmllci5oYXNW
YWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgYXV0byBncmFkaWVu
dCA9IEdyYWRpZW50OjpjcmVhdGUoV1RGTW92ZSgqZGF0YSksICpyZW5kZXJpbmdSZXJzb3VjZUlk
ZW50aWZpZXIpOworCisgICAgT3B0aW9uYWw8R3JhZGllbnQ6OkNvbG9yU3RvcFZlY3Rvcj4gc3Rv
cHM7CisgICAgZGVjb2RlciA+PiBzdG9wczsKKyAgICBpZiAoIXN0b3BzKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPGJvb2w+IHN0b3BzU29ydGVkOworICAgIGRl
Y29kZXIgPj4gc3RvcHNTb3J0ZWQ7CisgICAgaWYgKCFzdG9wc1NvcnRlZC5oYXNWYWx1ZSgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGlmICgqc3RvcHNTb3J0ZWQpCisgICAg
ICAgIGdyYWRpZW50LT5zZXRTb3J0ZWRDb2xvclN0b3BzKFdURk1vdmUoKnN0b3BzKSk7CisgICAg
ZWxzZSB7CisgICAgICAgIGZvciAoYXV0byYgc3RvcCA6ICpzdG9wcykKKyAgICAgICAgICAgIGdy
YWRpZW50LT5hZGRDb2xvclN0b3AoV1RGTW92ZShzdG9wKSk7CisgICAgfQorCisgICAgR3JhZGll
bnRTcHJlYWRNZXRob2Qgc3ByZWFkTWV0aG9kOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3By
ZWFkTWV0aG9kKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBncmFkaWVudC0+
c2V0U3ByZWFkTWV0aG9kKHNwcmVhZE1ldGhvZCk7CisKKyAgICBPcHRpb25hbDxBZmZpbmVUcmFu
c2Zvcm0+IGdyYWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbjsKKyAgICBkZWNvZGVyID4+IGdyYWRp
ZW50U3BhY2VUcmFuc2Zvcm1hdGlvbjsKKyAgICBpZiAoIWdyYWRpZW50U3BhY2VUcmFuc2Zvcm1h
dGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBncmFkaWVudC0+c2V0R3Jh
ZGllbnRTcGFjZVRyYW5zZm9ybShXVEZNb3ZlKCpncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb24p
KTsKKworICAgIHJldHVybiBncmFkaWVudDsKK30KKwogdm9pZCBBcmd1bWVudENvZGVyPEN1cnNv
cj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDdXJzb3ImIGN1cnNvcikKIHsKICAg
ICBlbmNvZGVyIDw8IGN1cnNvci50eXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCmluZGV4IGZlNzg1OGZmOWNhNmE0ZmNjNTlmMTI0M2IzODEzNDRl
YzVkZmZjYWMuLjkxZTY0NzNjMjhhMzY4YjQyODE2MDQ5MTgxZWIyODFmZTZlYTE3M2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zMCwxMSAr
MzAsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRlclR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFkaWVudC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rp
b25PcHRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNh
dGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5o
PgpAQCAtMTE5LDYgKzExOSw3IEBAIGNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGlt
aW5nRnVuY3Rpb247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTsKK2NsYXNzIFBhdHRlcm47CiBjbGFzcyBQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVnaW9uOwpAQCAtNDEzLDkgKzQx
NCw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q3JlZGVudGlh
bD4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVQbGF0Zm9ybURh
dGEoRGVjb2RlciYsIFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKIH07CiAKLXRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q3Vyc29yPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKLSAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDdXJzb3ImKTsKK3Rl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VIYW5kbGU+IHsKKyAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkltYWdlSGFuZGxl
Jik7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6SW1hZ2VIYW5kbGUmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8UmVmPFdlYkNvcmU6OkZvbnQ+PiB7CkBAIC00MjUsOSArNDI2LDM5IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmVmPFdlYkNvcmU6OkZvbnQ+PiB7CiAgICAgc3RhdGlj
IE9wdGlvbmFsPFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE+IGRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkltYWdlSGFuZGxlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpJbWFnZUhhbmRsZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkltYWdlSGFuZGxlJik7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFJlZjxXZWJDb3JlOjpQYXR0ZXJuPj4geworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgUmVmPFdlYkNvcmU6OlBhdHRlcm4+Jik7CisgICAg
c3RhdGljIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpQYXR0ZXJuPj4gZGVjb2RlKERlY29kZXImKTsK
K307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhZGllbnQ6
OkNvbG9yU3RvcD4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6R3JhZGllbnQ6OkNvbG9yU3RvcCYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3Jl
OjpHcmFkaWVudDo6Q29sb3JTdG9wPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFkaWVudDo6TGluZWFyRGF0YT4gewor
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhZGllbnQ6
OkxpbmVhckRhdGEmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6R3JhZGllbnQ6Okxp
bmVhckRhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkdyYWRpZW50OjpSYWRpYWxEYXRhPiB7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpHcmFkaWVudDo6UmFkaWFsRGF0YSYp
OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpHcmFkaWVudDo6UmFkaWFsRGF0YT4gZGVj
b2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6R3JhZGllbnQ6OkNvbmljRGF0YT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhZGllbnQ6OkNvbmljRGF0YSYpOworICAgIHN0YXRpYyBP
cHRpb25hbDxXZWJDb3JlOjpHcmFkaWVudDo6Q29uaWNEYXRhPiBkZWNvZGUoRGVjb2RlciYpOwor
fTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWY8V2ViQ29yZTo6R3JhZGll
bnQ+PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBSZWY8V2ViQ29y
ZTo6R3JhZGllbnQ+Jik7CisgICAgc3RhdGljIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpHcmFkaWVu
dD4+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkN1cnNvcj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Q3Vyc29yJik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjM3MzAw
NWU5YmU4MjhkMDIzNzViYjQ0MWFjM2NkYTk5ZmFhNjIyYS4uZjU4ZjFiZTQ2ZmYzYzc2OTY0Njg3
MTE1YmUyYzlmODgxZWQzNzM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NDY0LDYgKzQ0NjQsOCBAQAogCQk3MjdBN0YzODI0MDc4
OEYwMDA0RDI5MzEgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzkyNDA3ODhG
MTAwNEQyOTMxIC8qIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QTdGNDkyNDA4QUVFNjAwNEQyOTMxIC8qIFJlbW90ZUltYWdl
QnVmZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjgzMDFEODI1OEQzOUJEMDAzNERCNzYgLyog
UGF0dGVyblJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXR0ZXJuUmVmZXJlbmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODMwMUQ5MjU4RDM5REEwMDM0REI3NiAvKiBH
cmFkaWVudFJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFkaWVudFJlZmVyZW5jZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZFRjE3OTUxODhDMDA4Nzg3OUUgLyog
V2ViQ29sb3JQaWNrZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29sb3JQaWNrZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RjAx
Nzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyQjUzMTU3MjUzQzFFNEQwMDQ5Mjk1QSAvKiBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY4ODEsNiArNjg4Myw3
IEBACiAJCQkJQkMwMzJEQTAxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuaCAqLywKIAkJCQk5
QkQ4QUI0OTI1ODIwRTUyMDA1Mzg2RjggLyogRm9udFJlZmVyZW5jZS5oICovLAogCQkJCTQxNTFF
NUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5oICovLAorCQkJCTcyODMw
MUQ5MjU4RDM5REEwMDM0REI3NiAvKiBHcmFkaWVudFJlZmVyZW5jZS5oICovLAogCQkJCUMwQ0U3
MkFDMTI0N0U3OEQwMEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggKi8sCiAJCQkJMUM5QUYzNjEy
NDEzNEQyMzAwRDNFQzAyIC8qIEltYWdlRGF0YVJlZmVyZW5jZS5oICovLAogCQkJCTlCRjVFQzYz
MjU0MTBFOTkwMDk4NEU3NyAvKiBKU0lQQ0JpbmRpbmcuY3BwICovLApAQCAtNjg5Miw2ICs2ODk1
LDcgQEAKIAkJCQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFw
LmggKi8sCiAJCQkJMUFBQjAzNzcxODVBN0M2QTAwRURGNTAxIC8qIE1lc3NhZ2VTZW5kZXIuY3Bw
ICovLAogCQkJCTFBQUIwMzc4MTg1QTdDNkEwMEVERjUwMSAvKiBNZXNzYWdlU2VuZGVyLmggKi8s
CisJCQkJNzI4MzAxRDgyNThEMzlCRDAwMzREQjc2IC8qIFBhdHRlcm5SZWZlcmVuY2UuaCAqLywK
IAkJCQkyREMxODAwMUQ5MERERDE1RkM2OTkxQTkgLyogU2hhcmVkQnVmZmVyQ29weS5jcHAgKi8s
CiAJCQkJNUNDNURCOTEyMTQ4OEUxNjAwNkNCOEE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCAqLywK
IAkJCQkyREMxODU1RURCRkI4NTBCQTBCNkQwNkQgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGU4YTIzMjdiMGJjOTIz
OTMxMTUxZTc3OWJhMWM5ZGI3YzNhYzE0ZWUuLjc3ZjMwZTQ1NzBmZWY5ODI0OGIwYTM1YWMxODMy
MmRjNmNhYTI1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC02OCw3ICs2OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZmx1c2hEcmF3aW5nQ29u
dGV4dCgpOwogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5KCkucmVsZWFzZUltYWdlQnVmZmVyKG1fcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbGVh
c2VSZW1vdGVSZXNvdXJjZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2Uo
bV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAogICAgIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKQpAQCAtMTkwLDEy
ICsxOTAsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNsZWFyRGlzcGxheUxpc3QoKTsKICAgICB9
CiAKLSAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2UmIGltYWdl
KSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KQotICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eSgpLmNhY2hlTmF0aXZlSW1hZ2UoaW1hZ2UpOwotICAgIH0KLQogICAg
IGJvb2wgaXNDYWNoZWRJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1h
Z2VCdWZmZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIW1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5KQpAQCAtMjA1LDYgKzE5OSwzMCBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHJldHVybiBjYWNoZWRJbWFnZUJ1ZmZlcjsKICAgICB9CiAKKyAgICB2b2lkIGNhY2hlTmF0
aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2UmIGltYWdlKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgICAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmNh
Y2hlTmF0aXZlSW1hZ2UoaW1hZ2UpOworICAgIH0KKworICAgIHZvaWQgY2FjaGVGb250KFdlYkNv
cmU6OkZvbnQmIGZvbnQpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAobV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkpCisgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkuY2FjaGVGb250KGZvbnQpOworICAgIH0K
KworICAgIHZvaWQgY2FjaGVQYXR0ZXJuKFdlYkNvcmU6OlBhdHRlcm4mIHBhdHRlcm4pIG92ZXJy
aWRlCisgICAgeworICAgICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCisg
ICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5KCkuY2FjaGVQYXR0ZXJuKHBhdHRlcm4pOworICAgIH0KKworICAgIHZvaWQgY2Fj
aGVHcmFkaWVudChXZWJDb3JlOjpHcmFkaWVudCYgZ3JhZGllbnQpIG92ZXJyaWRlCisgICAgewor
ICAgICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCisgICAgICAgICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCku
Y2FjaGVHcmFkaWVudChncmFkaWVudCk7CisgICAgfQorCiAgICAgdm9pZCBjaGFuZ2VEZXN0aW5h
dGlvbkltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBuZXh0
SW1hZ2VCdWZmZXIpIGZpbmFsCiAgICAgewogICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9kcmF3
aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLmlzRW1wdHkoKTsKQEAgLTI0MSwxMiArMjU5LDYgQEAg
cHJvdGVjdGVkOgogICAgICAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgpOwogICAgIH0KIAot
ICAgIHZvaWQgY2FjaGVGb250KFdlYkNvcmU6OkZvbnQmIGZvbnQpIG92ZXJyaWRlCi0gICAgewot
ICAgICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgICAgICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCku
Y2FjaGVGb250KGZvbnQpOwotICAgIH0KLQogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
QnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgaWYgKExJS0VMWShtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkp
CkBAIC0zMjksOSArMzQxLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0Q1RNOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGUzNzMxNjdh
MjhhZGNjMjVkMDM1ZDgzM2VlY2QzZDMzOTE0MWIwNTUuLjUzNjVmYWQwMTU5YWQxYzAwY2M4ZTU1
NDFhM2NhNzhlN2NkYzk2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHAKQEAgLTE1Niw5ICsxNTYsMTkgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUKICAgICBz
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDYWNoZU5hdGl2ZUltYWdlKGhh
bmRsZSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZUZv
bnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYgZm9udCkKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpjYWNoZUZvbnQoRm9udCYgZm9udCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpDYWNoZUZvbnQoV1RGTW92ZShmb250KSksIG1fcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OkNhY2hlRm9udChtYWtlUmVmKGZvbnQpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjYWNoZVBhdHRl
cm4oUGF0dGVybiYgcGF0dGVybikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpDYWNoZVBhdHRlcm4obWFrZVJlZihwYXR0ZXJuKSksIG1fcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Y2FjaGVHcmFkaWVudChHcmFkaWVudCYgZ3JhZGllbnQpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q2FjaGVHcmFkaWVudChtYWtlUmVmKGdyYWRpZW50KSks
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6ZGVsZXRlQWxsRm9udHMoKQpAQCAtMTY2LDEyICsxNzYsMTIgQEAgdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRlbGV0ZUFsbEZvbnRzKCkKICAgICBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpEZWxldGVBbGxGb250cygpLCBtX3Jl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGlmIChyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgPT0gbV9jdXJyZW50RGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50
aWZpZXIpCiAgICAgICAgIG1fY3VycmVudERlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVy
ID0gV1RGOjpudWxsb3B0OwogCi0gICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6UmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciks
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgKaW5kZXggZWMyOGRiNTc1MjU5OWFlZGVjZWRhOTA1ODkzZjFiYTk3YTE4
MWEwMi4uYzEyNWQ4NWM4MzI5NGMwY2Y2YWYwMzE2OTVhNzFmYjAyNWY3MWE2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC04Myw5ICs4MywxMSBAQCBwdWJsaWM6
CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFs
cGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hEaXNwbGF5TGlzdEFuZENv
bW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShj
b25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7Ci0gICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOwor
ICAgIHZvaWQgY2FjaGVGb250KFdlYkNvcmU6OkZvbnQmKTsKKyAgICB2b2lkIGNhY2hlUGF0dGVy
bihXZWJDb3JlOjpQYXR0ZXJuJik7CisgICAgdm9pZCBjYWNoZUdyYWRpZW50KFdlYkNvcmU6Okdy
YWRpZW50Jik7CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwotICAgIHZvaWQgcmVsZWFzZVJl
bW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCByZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKIAogICAgIGVudW0gY2xhc3MgRGlkUmVjZWl2ZUJhY2tlbmRDcmVhdGlvblJl
c3VsdCA6IGJvb2wgewogICAgICAgICBSZWNlaXZlZEFueVJlc3BvbnNlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDBjZTk0NWU3MDVkOTgyNzBmZmIwYzkxMGY4YTVh
YWMxZTAxN2FmNmYuLjAzZGY4YWJiMGY2ZGQ2ZDM4MjYzMzc3M2U0NGM2NjVkZTQ4ZmM4NTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp+UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkKICAgICAg
ICAgaW1hZ2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdl
QnVmZmVyKQordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFn
ZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBt
YWtlV2Vha1B0cihpbWFnZUJ1ZmZlcikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBh
ZGRSZXN1bHQuaXNOZXdFbnRyeSk7CkBAIC0xMDEsNiArMTAxLDE1IEBAIHZvaWQgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiBpbWFnZSkKICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jYWNoZU5hdGl2ZUltYWdlKGhhbmRsZSwg
aW1hZ2UucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpOwogfQogCit2b2lkIFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFt
X25hdGl2ZUltYWdlcy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAmJiAhbV9w
YXR0ZXJucy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAmJiAhbV9ncmFkaWVu
dHMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlLgor
ICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJj
ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCiB2b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6Y2FjaGVGb250KEZvbnQmIGZvbnQpCiB7CiAgICAgYXV0byByZXN1bHQgPSBt
X2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5lbnN1cmUoZm9u
dC5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgWyZdIHsKQEAgLTExNSwxMyArMTI0LDI4
IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUZvbnQoRm9udCYgZm9udCkK
ICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY2FjaGVGb250KG1ha2VSZWYo
Zm9udCkpOwogfQogCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2
ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVQYXR0ZXJuKFBhdHRl
cm4mIHBhdHRlcm4pCiB7Ci0gICAgaWYgKCFtX25hdGl2ZUltYWdlcy5yZW1vdmUocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuOworICAgIG1fcGF0dGVybnMuZW5z
dXJlKHBhdHRlcm4ucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFsmXSgpIHsKKyAgICAg
ICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBQYXR0ZXJuLCBzbyByZWxlYXNlUmVu
ZGVyaW5nUmVzb3VyY2UoKSBnZXRzIGNhbGxlZC4KKyAgICAgICAgcGF0dGVybi5hZGRPYnNlcnZl
cigqdGhpcyk7CiAKLSAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyBy
ZXNvdXJjZS4KLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3Rl
UmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgLy8gVGVsbCB0
aGUgR1BVIHByb2Nlc3MgdG8gY2FjaGUgdGhpcyByZXNvdXJjZS4KKyAgICAgICAgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuY2FjaGVQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICByZXR1
cm4gbWFrZVdlYWtQdHIocGF0dGVybik7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpjYWNoZUdyYWRpZW50KEdyYWRpZW50JiBncmFkaWVudCkKK3sKKyAgICBt
X2dyYWRpZW50cy5lbnN1cmUoZ3JhZGllbnQucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCks
IFsmXSgpIHsKKyAgICAgICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBHcmFkaWVu
dCwgc28gcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKCkgZ2V0cyBjYWxsZWQuCisgICAgICAgIGdy
YWRpZW50LmFkZE9ic2VydmVyKCp0aGlzKTsKKworICAgICAgICAvLyBUZWxsIHRoZSBHUFUgcHJv
Y2VzcyB0byBjYWNoZSB0aGlzIHJlc291cmNlLgorICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jYWNoZUdyYWRpZW50KGdyYWRpZW50KTsKKyAgICAgICAgcmV0dXJuIG1ha2VX
ZWFrUHRyKGdyYWRpZW50KTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKQEAgLTEzOCw3ICsxNjIsNyBAQCB2
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUo
KQogCiAgICAgZm9yIChhdXRvJiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmlu
Z1VwZGF0ZVZlcnNpb25NYXApIHsKICAgICAgICAgaWYgKG1fY3VycmVudFJlbmRlcmluZ1VwZGF0
ZVZlcnNpb24gLSBpdGVtLnZhbHVlID49IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2Vl
cEZvbnRBbGl2ZSkKLSAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJl
bGVhc2VSZW1vdGVSZXNvdXJjZShpdGVtLmtleSk7CisgICAgICAgICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoaXRlbS5rZXkpOwogICAg
IH0KIAogICAgICsrbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5oCmluZGV4IDYxMDU4YzM1NzUxNzIwOWY0MDNlMzdmNDEyZDgxNjAx
ZGU4OGM0MzcuLjFhY2RlZmVkNDBiMWRkMWJhZWRlNjlmZTBhNGFhZDY1ZWQ3N2FkZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaApAQCAtMzMsMTQgKzMzLDE2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZvbnQ7CitjbGFzcyBHcmFkaWVudDsKIGNsYXNzIEltYWdl
QnVmZmVyOworY2xhc3MgUGF0dGVybjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKIAotY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5IDogcHVibGljIFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjpPYnNlcnZlciB7CitjbGFzcyBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2U6Ok9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Jik7CiAgICAgflJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eSgpOwpAQCAtNTAsMjEgKzUyLDI3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1
ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBj
YWNoZU5hdGl2ZUltYWdlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJik7Ci0KKyAgICB2b2lkIGNhY2hl
Rm9udChXZWJDb3JlOjpGb250Jik7CisgICAgdm9pZCBjYWNoZVBhdHRlcm4oV2ViQ29yZTo6UGF0
dGVybiYpOworICAgIHZvaWQgY2FjaGVHcmFkaWVudChXZWJDb3JlOjpHcmFkaWVudCYpOworICAg
IAogICAgIHVzaW5nIEltYWdlQnVmZmVySGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj47CiAg
ICAgY29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwJiBpbWFnZUJ1ZmZlcnMoKSBjb25zdCB7IHJldHVy
biBtX2ltYWdlQnVmZmVyczsgfQogCi0gICAgdm9pZCBjYWNoZUZvbnQoV2ViQ29yZTo6Rm9udCYp
OwogICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICB2b2lkIHJlbGVh
c2VNZW1vcnkoKTsKIAogcHJpdmF0ZToKICAgICB1c2luZyBOYXRpdmVJbWFnZUhhc2hNYXAgPSBI
YXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2Vha1B0cjxXZWJD
b3JlOjpOYXRpdmVJbWFnZT4+OworICAgIHVzaW5nIFBhdHRlcm5IYXNoTWFwID0gSGFzaE1hcDxX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6UGF0
dGVybj4+OworICAgIHVzaW5nIEdyYWRpZW50SGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OkdyYWRpZW50Pj47CiAg
ICAgCi0gICAgdm9pZCByZWxlYXNlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNvdXJj
ZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogCiAgICAg
SW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1h
cCBtX25hdGl2ZUltYWdlczsKKyAgICBQYXR0ZXJuSGFzaE1hcCBtX3BhdHRlcm5zOworICAgIEdy
YWRpZW50SGFzaE1hcCBtX2dyYWRpZW50czsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdD4gbV9mb250SWRlbnRpZmllclRvTGFzdFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb25NYXA7CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkZvbnRzVXNl
ZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMDQ1ZmYxNDNhZDFiYjk2ZDQ4OTdmMjI2MjVi
ZDBhOTU2NTI4NGEyLi41MWY0NDEzMzg4ZWQ3MDE0ZDMwM2M0ZWE0ODQ0OWYyMDVjMjFjMzFlIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjAtMTItMjEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXTogSW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0
IGl0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
OTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBhcHBlbmRpbmcgdGhlIFNldElubGluZUZpbGxDb2xvciBhbmQgU2V0SW5saW5lU3Ryb2tl
Q29sb3IgaXRlbXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlz
cGxheUxpc3RUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTEyLTE3ICBKb25hdGhh
biBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0c2NtcHldIENv
cnJlY3QgbW9jayBgZ2l0IGxvZ2AgY2FsbCBpbiBzdGFuZGFyZCBnaXQgcmVwb3NpdG9yaWVzCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAKaW5kZXggZjcwMGM1NjI5ZjYwNmU1YzI2ZGYxNmIyMGJiMWRlYTk1NGU4MDdhNS4u
ZjFhODY1ZWQ2MzE4OTFjNzU3YjNjMzQ5ODA2Y2Q5YjgyMDYzMDZmZSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApA
QCAtNjUsMTEgKzY1LDE0IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAg
ICAgYXV0byBncmFkaWVudCA9IGNyZWF0ZUdyYWRpZW50KCk7CiAgICAgYXV0byBwYXRoID0gY3Jl
YXRlQ29tcGxleFBhdGgoKTsKIAorICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOworICAg
IHN0YXRlLmZpbGxDb2xvciA9IENvbG9yOjpyZWQ7CisKICAgICBmb3IgKGludCBpID0gMDsgaSA8
IDUwOyArK2kpIHsKICAgICAgICAgbGlzdC5hcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigxLjUp
OwogICAgICAgICBsaXN0LmFwcGVuZDxGaWxsUGF0aD4ocGF0aCk7CiAgICAgICAgIGxpc3QuYXBw
ZW5kPEZpbGxSZWN0V2l0aEdyYWRpZW50PihGbG9hdFJlY3QgeyAxLiwgMS4sIDEwLiwgMTAuIH0s
IGdyYWRpZW50KTsKLSAgICAgICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihDb2xv
cjo6cmVkKTsKKyAgICAgICAgbGlzdC5hcHBlbmQ8U2V0U3RhdGU+KEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpGaWxsQ29sb3JDaGFuZ2UsIHN0YXRlKTsKICNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFU
QSkKICAgICAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlSW5saW5lUGF0aD4oSW5saW5lUGF0aERhdGEg
eyBMaW5lRGF0YSB7eyAwLiwgMC4gfSwgeyAxMC4sIDE1LiB9fX0pOwogI2VuZGlmCkBAIC0xMDIs
MTEgKzEwNSwxMSBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEFwcGVuZEl0ZW1zKQogICAgICAg
ICAgICAgRVhQRUNUX0VRKCZpdGVtLmdyYWRpZW50KCksIGdyYWRpZW50LnB0cigpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxDb2xvcjogeworICAgICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogewogICAgICAg
ICAgICAgRVhQRUNUX0ZBTFNFKGhhbmRsZS5pc0RyYXdpbmdJdGVtKCkpOwotICAgICAgICAgICAg
RVhQRUNUX1RSVUUoaGFuZGxlLmlzPFNldElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgICAgICAg
ICBhdXRvJiBpdGVtID0gaGFuZGxlLmdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCk7Ci0gICAgICAg
ICAgICBFWFBFQ1RfRVEoaXRlbS5jb2xvcigpLCBDb2xvcjo6cmVkKTsKKyAgICAgICAgICAgIEVY
UEVDVF9UUlVFKGhhbmRsZS5pczxTZXRTdGF0ZT4oKSk7CisgICAgICAgICAgICBhdXRvJiBpdGVt
ID0gaGFuZGxlLmdldDxTZXRTdGF0ZT4oKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShpdGVtLnN0
YXRlQ2hhbmdlKCkubV9zdGF0ZS5maWxsQ29sb3IsIENvbG9yOjpyZWQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKQEAgLTIxNSw5
ICsyMTgsOSBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEl0ZW1CdWZmZXJDbGllbnQpCiAgICAg
bGlzdC5zZXRJdGVtQnVmZmVyQ2xpZW50KCZ3cml0ZXIpOwogCiAgICAgYXV0byBwYXRoID0gY3Jl
YXRlQ29tcGxleFBhdGgoKTsKLSAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4o
Q29sb3I6OmJsdWUpOworICAgIGxpc3QuYXBwZW5kPFNldFN0cm9rZVRoaWNrbmVzcz4oMTApOwog
ICAgIGxpc3QuYXBwZW5kPFN0cm9rZVBhdGg+KHBhdGgpOwotICAgIGxpc3QuYXBwZW5kPFNldElu
bGluZVN0cm9rZUNvbG9yPihDb2xvcjo6cmVkKTsKKyAgICBsaXN0LmFwcGVuZDxTZXRTdHJva2VU
aGlja25lc3M+KDIwKTsKICAgICBsaXN0LmFwcGVuZDxTdHJva2VQYXRoPihwYXRoKTsKIAogICAg
IERpc3BsYXlMaXN0IHNoYWxsb3dDb3B5IHt7IEl0ZW1CdWZmZXJIYW5kbGUgeyBnbG9iYWxCdWZm
ZXJJZGVudGlmaWVyLCBnbG9iYWxJdGVtQnVmZmVyLCBsaXN0LnNpemVJbkJ5dGVzKCkgfSB9fTsK
QEAgLTIzMCw5ICsyMzMsOSBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEl0ZW1CdWZmZXJDbGll
bnQpCiAKICAgICBFWFBFQ1RfRkFMU0Uoc2hhbGxvd0NvcHkuaXNFbXB0eSgpKTsKICAgICBFWFBF
Q1RfRVEoaXRlbVR5cGVzLnNpemUoKSwgNFUpOwotICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMF0s
IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcik7CisgICAgRVhQRUNUX0VRKGl0ZW1UeXBl
c1swXSwgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcyk7CiAgICAgRVhQRUNUX0VRKGl0ZW1U
eXBlc1sxXSwgSXRlbVR5cGU6OlN0cm9rZVBhdGgpOwotICAgIEVYUEVDVF9FUShpdGVtVHlwZXNb
Ml0sIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcik7CisgICAgRVhQRUNUX0VRKGl0ZW1U
eXBlc1syXSwgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcyk7CiAgICAgRVhQRUNUX0VRKGl0
ZW1UeXBlc1szXSwgSXRlbVR5cGU6OlN0cm9rZVBhdGgpOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwCmluZGV4IGQ5YzgzMzE0Y2FjMTU1NWQxODJjOTdjZmI2YWMxYWVlOGIxN2ZjZWMuLjIxYTc4
NzFkNDg0ODI2NDAyMzY3MTVhNTBkYjhhNzFiYjQxYjc1MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwCkBAIC01MSwxMSArNTEsMTYgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBSZXBsYXlXaXRo
TWlzc2luZ1Jlc291cmNlKQogICAgIGF1dG8gaW1hZ2VCdWZmZXJJZGVudGlmaWVyID0gUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogCiAgICAgRGlzcGxheUxpc3QgbGlz
dDsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBzdGF0ZTsKIAotICAgIGxpc3QuYXBwZW5kPFNl
dElubGluZUZpbGxDb2xvcj4oQ29sb3I6OmdyZWVuKTsKKyAgICBzdGF0ZS5maWxsQ29sb3IgPSBD
b2xvcjo6Ymx1ZTsKKyAgICBsaXN0LmFwcGVuZDxTZXRTdGF0ZT4oR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OkZpbGxDb2xvckNoYW5nZSwgc3RhdGUpOwogICAgIGxpc3QuYXBwZW5kPEZpbGxSZWN0Pihj
b250ZXh0Qm91bmRzKTsKKwogICAgIGxpc3QuYXBwZW5kPERyYXdJbWFnZUJ1ZmZlcj4oaW1hZ2VC
dWZmZXJJZGVudGlmaWVyLCBjb250ZXh0Qm91bmRzLCBjb250ZXh0Qm91bmRzLCBJbWFnZVBhaW50
aW5nT3B0aW9ucyB7IH0pOwotICAgIGxpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihD
b2xvcjo6cmVkKTsKKworICAgIHN0YXRlLnN0cm9rZUNvbG9yID0gQ29sb3I6OnJlZDsKKyAgICBs
aXN0LmFwcGVuZDxTZXRTdGF0ZT4oR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hh
bmdlLCBzdGF0ZSk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlTGluZT4oRmxvYXRQb2ludCB7IDAs
IGNvbnRleHRIZWlnaHQgfSwgRmxvYXRQb2ludCB7IGNvbnRleHRXaWR0aCwgMCB9KTsKIAogICAg
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA5NmYxOWNmYmFlZjAzYTNjYmRhNDAxNDA0NDMwODEyMWNjZmVkNmE5Li45YzU5
OTEzNTk5ZWI3YzAyMGNmYzcxN2E5ZTY2ZDgzNDUxNTI2NGVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjAtMTItMjEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0dQVSBQcm9jZXNzXTogSW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2Ug
U2V0SW5saW5lRmlsbENvbG9yIGR1bXBpbmcgYnkgU2V0U3RhdGUgZHVtcGluZy4KKworICAgICAg
ICAqIGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dDoKKwogMjAy
MC0xMi0xNyAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFsg
QmlnIFN1ciBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC10
eXBlL3NjcmlwdC53aW5kb3cuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQKaW5kZXgg
MTQ1MWIxOTI1M2MzMjM4OTI4YmJkOWY1ZTVkZWJiOTI3NGM1MGQ1Ny4uNDM0MzZhMzE2NThjY2Ez
YmI5NTljMjY4ODdjZDE5NmRjY2I1MzRlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZGlzcGxh
eWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dApAQCAtNyw3ICs3
LDggQEAKICAgKHNoYWRvd3MtaWdub3JlLXRyYW5zZm9ybXMgMSkpCiAoZmlsbC1yZWN0CiAgIChy
ZWN0IGF0ICgxMCwxMCkgc2l6ZSA1NXg1MCkgZXh0ZW50IGF0ICgxMCwxNDApIHNpemUgNTV4NTAp
Ci0oc2V0LWlubGluZS1maWxsLWNvbG9yCi0gIChjb2xvciAjMDAwMEM4ODApKQorKHNldC1zdGF0
ZQorICAoY2hhbmdlLWZsYWdzIDEyOCkKKyAgKGZpbGwtY29sb3IgIzAwMDBDODgwKSkKIChmaWxs
LXJlY3QKICAgKHJlY3QgYXQgKDMwLDMwKSBzaXplIDU1eDUwKSBleHRlbnQgYXQgKDMwLDEyMCkg
c2l6ZSA1NXg1MCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419374</attachid>
            <date>2021-02-05 01:48:59 -0800</date>
            <delta_ts>2021-02-05 02:09:27 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-219468-20210205014858.patch</filename>
            <type>text/plain</type>
            <size>120071</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRjZTJmNzdhZTU3MDQ1
YTAxMjUxMzAwNjFlYjE0ZDA5MWQxNzk3Ny4uZWRiYTQ5NGU0NjJkYTVmNjc5NmE4MWU2ZDI0MDlm
YmJjZTQwYmEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAyLTA1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc106
IEltcGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm9yQ2Fu
dmFzUGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0Nv
bnRleHRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0
ZTo6R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhdHRlcm46OlBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6c2V0VGls
ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OnRpbGVJbWFnZSBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oOgorICAgICAgICAoV2ViQ29yZTo6
UGF0dGVybjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6c2hvdWxkRHVtcEZvckZsYWdz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
QnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjph
cHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJv
eSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJ
dGVtSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6
U2V0SW5saW5lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZVN0YXRlOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3Bl
cmF0b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OlNldFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6YXBwbHkgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVu
dDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmdyYWRpZW50IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
OmFwcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OmFwcGx5IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6
YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6U2V0U3RhdGU6OnN0YXRlQ2hhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpTZXRTdGF0ZTo6c3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OmZpbGxQYXR0ZXJuSW1hZ2VJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0
ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxs
Q29sb3I6OlNldElubGluZUZpbGxDb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6OlNldElu
bGluZVN0cm9rZUNvbG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6Y29sb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpzdGF0ZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmNvbnRhaW5zT25seUlubGlu
ZVN0YXRlQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjphcHBseVNldFN0YXRlSXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OmFwcGx5SXRlbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVU
aWxlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGF0dGVybkZvckRlc2NyaXB0aW9u
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmJ1aWxkUGF0dGVy
bik6CisKIDIwMjEtMDItMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2Ugc3VyZSBHUFVQcm9jZXNzIE1lZGlhUmVjb3JkZXIgaGFuZGxlcyBjb3JyZWN0
bHkgbXV0ZWQgdHJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1ZDlhMmE5MmYzMDFmYTRmNDE3MmEwYjk2ZjBk
NjBlNGZhNGI1Y2YuLmIzZTMxYzNhYTA2NTM5YjM1OTc1MzY3NzAyYjljZjUwZDdkMWZjZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDItMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXTogSW1wbGVtZW50IFNldFN0
YXRlIERpc3BsYXlMaXN0IGl0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRl
bSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8SW1hZ2VIYW5kbGU+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdlSGFuZGxlPjo6ZGVjb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIxLTAy
LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1
cmUgR1BVUHJvY2VzcyBNZWRpYVJlY29yZGVyIGhhbmRsZXMgY29ycmVjdGx5IG11dGVkIHRyYWNr
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcAppbmRleCAw
Yzg1ZjhhODM3Njc5NjZiYTI2YjVjMzMzZWQ2MGMwMWE1MGFhMTE2Li5lNWYyMjEwYWU5ODczM2U5
ODRhYjU4NGY2ZjlhM2M4NDdiNWE4MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ2FudmFzLmNwcApAQCAtMTIwMiw5ICsxMjAyLDEwIEBAIFJlZjxKU09OOjpBcnJh
eU9mPEpTT046OlZhbHVlPj4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm9yQ2FudmFzR3Jh
ZGllbnQoY29uCiAKIFJlZjxKU09OOjpBcnJheU9mPEpTT046OlZhbHVlPj4gSW5zcGVjdG9yQ2Fu
dmFzOjpidWlsZEFycmF5Rm9yQ2FudmFzUGF0dGVybihjb25zdCBDYW52YXNQYXR0ZXJuJiBjYW52
YXNQYXR0ZXJuKQogewotICAgIEltYWdlJiB0aWxlSW1hZ2UgPSBjYW52YXNQYXR0ZXJuLnBhdHRl
cm4oKS50aWxlSW1hZ2UoKTsKKyAgICBhdXRvJiB0aWxlSW1hZ2UgPSBjYW52YXNQYXR0ZXJuLnBh
dHRlcm4oKS50aWxlSW1hZ2UoKTsKKyAgICBGbG9hdFJlY3QgcmVjdCA9IHsgeyB9LCB0aWxlSW1h
Z2Uuc2l6ZSgpIH07CiAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
dGlsZUltYWdlLnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7Ci0gICAgaW1h
Z2VCdWZmZXItPmNvbnRleHQoKS5kcmF3SW1hZ2UodGlsZUltYWdlLCBGbG9hdFBvaW50KDAsIDAp
KTsKKyAgICBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLmRyYXdOYXRpdmVJbWFnZSh0aWxlSW1hZ2Us
IHRpbGVJbWFnZS5zaXplKCksIHJlY3QsIHJlY3QpOwogCiAgICAgU3RyaW5nIHJlcGVhdDsKICAg
ICBib29sIHJlcGVhdFggPSBjYW52YXNQYXR0ZXJuLnBhdHRlcm4oKS5yZXBlYXRYKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cAppbmRleCAyYTA2NzVhMTM3ZWEyMjY5NGZiMGRhY2ZhNWNkZWQxMzcxNjE5YzNiLi4xZTU5NGNi
ZWU3N2I5Njc1NWY1M2I5ZjhmNDNhOWNmYjlkNTY2MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTc3LDI2ICs3
Nyw2IEBAIHByaXZhdGU6CiAgICAgaWYgKG1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OmZsYWcpICYmIChtX3N0YXRlLnByb3BlcnR5ICE9IHN0YXRlLnByb3BlcnR5
KSkgXAogICAgICAgICBjaGFuZ2VGbGFncy5hZGQoR3JhcGhpY3NDb250ZXh0U3RhdGU6OmZsYWcp
OwogCi1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUoKQotICAgIDog
c2hvdWxkQW50aWFsaWFzKHRydWUpCi0gICAgLCBzaG91bGRTbW9vdGhGb250cyh0cnVlKQotICAg
ICwgc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzKHRydWUpCi0gICAgLCBzaGFkb3dzSWdub3Jl
VHJhbnNmb3JtcyhmYWxzZSkKLSNpZiBVU0UoQ0cpCi0gICAgLy8gQ29yZSBHcmFwaGljcyBpbmNv
cnJlY3RseSByZW5kZXJzIHNoYWRvd3Mgd2l0aCByYWRpdXMgPiA4cHggKDxyZGFyOi8vcHJvYmxl
bS84MTAzNDQyPiksCi0gICAgLy8gYnV0IHdlIG5lZWQgdG8gcHJlc2VydmUgdGhpcyBidWdneSBi
ZWhhdmlvciBmb3IgY2FudmFzIGFuZCAtd2Via2l0LWJveC1zaGFkb3cuCi0gICAgLCBzaGFkb3dz
VXNlTGVnYWN5UmFkaXVzKGZhbHNlKQotI2VuZGlmCi0gICAgLCBkcmF3THVtaW5hbmNlTWFzayhm
YWxzZSkKLXsKLX0KLQotR3JhcGhpY3NDb250ZXh0U3RhdGU6On5HcmFwaGljc0NvbnRleHRTdGF0
ZSgpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0
ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29udGV4
dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKSA9IGRl
ZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZSYgR3JhcGhpY3NDb250ZXh0U3RhdGU6Om9wZXJh
dG9yPShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6b3BlcmF0b3I9KEdyYXBoaWNzQ29udGV4
dFN0YXRlJiYpID0gZGVmYXVsdDsKLQogR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdl
RmxhZ3MgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2U6OmNoYW5nZXNGcm9tU3RhdGUoY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlKSBjb25zdAogewogICAgIEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCA0MDY0MjhlODRi
ZjQwZDZjNWU0ZjE1YWFmZWRjMGUxODZiODMxNjAyLi5iMjdjN2ZhY2FlMzcyM2RhMjM3NzFjMGQw
OTNhM2E0ZDAxOWEyMTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRhc2hB
cnJheS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgi
CisjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5j
bHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCkBAIC03OSw3ICs4
MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xh
c3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEdyYWRpZW50OwogY2xhc3MgR3JhcGhpY3NDb250
ZXh0SW1wbDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTsKIGNsYXNzIElt
YWdlQnVmZmVyOwpAQCAtMTUwLDE2ICsxNTAsNyBAQCBPcHRpb25hbDxEb2N1bWVudE1hcmtlckxp
bmVTdHlsZT4gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZAog
ICAgIHJldHVybiB7eyAqbW9kZSwgKnNob3VsZFVzZURhcmtBcHBlYXJhbmNlIH19OwogfQogCi1z
dHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewotICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNz
Q29udGV4dFN0YXRlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgfkdyYXBoaWNzQ29udGV4dFN0YXRl
KCk7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlKEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiYpOwotCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGUmIG9wZXJhdG9yPShjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBvcGVyYXRvcj0oR3JhcGhpY3NDb250ZXh0U3RhdGUmJik7Ci0KK3N0cnVjdCBH
cmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSB7CiAgICAgZW51bSBDaGFuZ2UgOiB1aW50MzJfdCB7
CiAgICAgICAgIFN0cm9rZUdyYWRpZW50Q2hhbmdlICAgICAgICAgICAgICAgICAgICA9IDEgPDwg
MCwKICAgICAgICAgU3Ryb2tlUGF0dGVybkNoYW5nZSAgICAgICAgICAgICAgICAgICAgID0gMSA8
PCAxLApAQCAtMTg2LDEyICsxNzcsMjAgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsK
ICNlbmRpZgogICAgIH07CiAgICAgdXNpbmcgU3RhdGVDaGFuZ2VGbGFncyA9IE9wdGlvblNldDxD
aGFuZ2U+OwotCi0gICAgUmVmUHRyPEdyYWRpZW50PiBzdHJva2VHcmFkaWVudDsKLSAgICBSZWZQ
dHI8UGF0dGVybj4gc3Ryb2tlUGF0dGVybjsKICAgICAKLSAgICBSZWZQdHI8R3JhZGllbnQ+IGZp
bGxHcmFkaWVudDsKLSAgICBSZWZQdHI8UGF0dGVybj4gZmlsbFBhdHRlcm47CisgICAgR3JhcGhp
Y3NDb250ZXh0SW5saW5lU3RhdGUoKQorICAgICAgICA6IHNob3VsZEFudGlhbGlhcyh0cnVlKQor
ICAgICAgICAsIHNob3VsZFNtb290aEZvbnRzKHRydWUpCisgICAgICAgICwgc2hvdWxkU3VicGl4
ZWxRdWFudGl6ZUZvbnRzKHRydWUpCisgICAgICAgICwgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMo
ZmFsc2UpCisjaWYgVVNFKENHKQorICAgICAgICAvLyBDb3JlIEdyYXBoaWNzIGluY29ycmVjdGx5
IHJlbmRlcnMgc2hhZG93cyB3aXRoIHJhZGl1cyA+IDhweCAoPHJkYXI6Ly9wcm9ibGVtLzgxMDM0
NDI+KSwKKyAgICAgICAgLy8gYnV0IHdlIG5lZWQgdG8gcHJlc2VydmUgdGhpcyBidWdneSBiZWhh
dmlvciBmb3IgY2FudmFzIGFuZCAtd2Via2l0LWJveC1zaGFkb3cuCisgICAgICAgICwgc2hhZG93
c1VzZUxlZ2FjeVJhZGl1cyhmYWxzZSkKKyNlbmRpZgorICAgICAgICAsIGRyYXdMdW1pbmFuY2VN
YXNrKGZhbHNlKQorICAgIHsKKyAgICB9CiAKICAgICBGbG9hdFNpemUgc2hhZG93T2Zmc2V0Owog
CkBAIC0yMDAsMTAgKzE5OSw2IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAKICAg
ICBUZXh0RHJhd2luZ01vZGVGbGFncyB0ZXh0RHJhd2luZ01vZGUgeyBUZXh0RHJhd2luZ01vZGU6
OkZpbGwgfTsKIAotICAgIENvbG9yIHN0cm9rZUNvbG9yIHsgQ29sb3I6OmJsYWNrIH07Ci0gICAg
Q29sb3IgZmlsbENvbG9yIHsgQ29sb3I6OmJsYWNrIH07Ci0gICAgQ29sb3Igc2hhZG93Q29sb3I7
Ci0KICAgICBBZmZpbmVUcmFuc2Zvcm0gc3Ryb2tlR3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKICAg
ICBBZmZpbmVUcmFuc2Zvcm0gZmlsbEdyYWRpZW50U3BhY2VUcmFuc2Zvcm07CiAgICAgCkBAIC0y
MjgsNiArMjIzLDI0IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAjZW5kaWYKIH07
CiAKK3N0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRJ
bmxpbmVTdGF0ZSB7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUoKSA9IGRlZmF1bHQ7CisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmIG90
aGVyKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlKG90aGVyKQorICAgIHsK
KyAgICB9CisKKyAgICBSZWZQdHI8R3JhZGllbnQ+IHN0cm9rZUdyYWRpZW50OworICAgIFJlZlB0
cjxQYXR0ZXJuPiBzdHJva2VQYXR0ZXJuOworCisgICAgUmVmUHRyPEdyYWRpZW50PiBmaWxsR3Jh
ZGllbnQ7CisgICAgUmVmUHRyPFBhdHRlcm4+IGZpbGxQYXR0ZXJuOworCisgICAgQ29sb3Igc3Ry
b2tlQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKKyAgICBDb2xvciBmaWxsQ29sb3IgeyBDb2xvcjo6
YmxhY2sgfTsKKyAgICBDb2xvciBzaGFkb3dDb2xvcjsKK307CisKIHN0cnVjdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZUNoYW5nZSB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UoKSA9IGRl
ZmF1bHQ7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UoY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBm
bGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCmluZGV4IDQzNmIz
N2Q2YzhlYzZmMDBmNGZlYjRkZDM2ZjRhMjkyM2M3Zjk2ZWEuLmRhMDEwZjNmZGNkMDY4MDU2Mjhi
ODYwY2FlMzJiZDliZTlhNDU0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2UuaApAQCAtMjEwLDExICsyMTAsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxUaW1lcj4gbV9hbmltYXRpb25TdGFydFRpbWVyOwogfTsKIAotY2xhc3MgSW1hZ2VIYW5kbGUg
ewotcHVibGljOgotICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2U7Ci19OwotCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgSW1hZ2UmKTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGF0dGVybi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0
ZXJuLmNwcAppbmRleCA3OTZhMDdjMTg2YjYyZmY0ZTZiNmVhMjYxMDdmZjlmYzRjNDM4ZTcxLi5h
NDEzNDk2NTU2YzJkMjZhYTU2NjAyNGRlNzhhYjMwOWM5MzhiZDI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcApAQCAtMjcsMjQgKzI3LDYyIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGF0dGVybi5oIgogCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVh
dGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCit7
CisgICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSB0aWxlSW1hZ2UtPm5hdGl2ZUltYWdlKCkpCisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhdHRlcm4obmF0aXZlSW1hZ2UucmVsZWFzZU5v
bk51bGwoKSwgcmVwZWF0WCwgcmVwZWF0WSkpOworCisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IElt
YWdlQnVmZmVyOjpjcmVhdGUodGlsZUltYWdlLT5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNj
ZWxlcmF0ZWQpOworICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkuZHJhd0ltYWdlKHRpbGVJbWFn
ZSwgRmxvYXRQb2ludCgwLCAwKSk7CisKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0gSW1hZ2VCdWZm
ZXI6OnNpbmtJbnRvTmF0aXZlSW1hZ2UoV1RGTW92ZShpbWFnZUJ1ZmZlcikpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBhdHRlcm4obmF0aXZlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgcmVw
ZWF0WCwgcmVwZWF0WSkpOworfQorCitSZWY8UGF0dGVybj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxO
YXRpdmVJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKQogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhdHRlcm4oV1RGTW92ZSh0aWxlSW1hZ2UpLCByZXBl
YXRYLCByZXBlYXRZKSk7CiB9CiAKLVBhdHRlcm46OlBhdHRlcm4oUmVmPEltYWdlPiYmIGltYWdl
LCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSkKK1JlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVh
dGUoYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF0
dGVybihyZXBlYXRYLCByZXBlYXRZLCBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikpOworfQor
CitQYXR0ZXJuOjpQYXR0ZXJuKFJlZjxOYXRpdmVJbWFnZT4mJiBpbWFnZSwgYm9vbCByZXBlYXRY
LCBib29sIHJlcGVhdFkpCiAgICAgOiBtX3RpbGVJbWFnZShXVEZNb3ZlKGltYWdlKSkKICAgICAs
IG1fcmVwZWF0WChyZXBlYXRYKQogICAgICwgbV9yZXBlYXRZKHJlcGVhdFkpCiB7CiB9CiAKK1Bh
dHRlcm46OlBhdHRlcm4oYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pCisgICAgOiBtX3JlcGVhdFgocmVw
ZWF0WCkKKyAgICAsIG1fcmVwZWF0WShyZXBlYXRZKQorICAgICwgbV9wYXR0ZXJuU3BhY2VUcmFu
c2Zvcm1hdGlvbihwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikKK3sKK30KKwogUGF0dGVybjo6
flBhdHRlcm4oKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgUGF0dGVybjo6c2V0VGlsZUltYWdlKFJlZjxO
YXRpdmVJbWFnZT4mJiB0aWxlSW1hZ2UpCit7CisgICAgQVNTRVJUKCFtX3RpbGVJbWFnZSk7Cisg
ICAgbV90aWxlSW1hZ2UgPSBXVEZNb3ZlKHRpbGVJbWFnZSk7Cit9CisKK05hdGl2ZUltYWdlJiBQ
YXR0ZXJuOjp0aWxlSW1hZ2UoKSBjb25zdAoreworICAgIEFTU0VSVChtX3RpbGVJbWFnZSk7Cisg
ICAgcmV0dXJuICptX3RpbGVJbWFnZTsKK30KKwogdm9pZCBQYXR0ZXJuOjpzZXRQYXR0ZXJuU3Bh
Y2VUcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1h
dGlvbikKIHsKICAgICBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uID0gcGF0dGVyblNwYWNl
VHJhbnNmb3JtYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QYXR0ZXJuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJu
LmgKaW5kZXggMmE1NjNkYTI2MTdkMWIwNDI0OGI5MGFiMDYzOWRiMmNhZjlhODhjMC4uZjhlMzJl
MWFlMjM5MGZjNDgxNTFiYjc4N2E1MmUyY2M0MDQ4Mjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaApAQCAtNTMsMTQgKzUzLDE1IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
IGNsYXNzIEltYWdlOwotY2xhc3MgSW1hZ2VIYW5kbGU7CiAKIGNsYXNzIFBhdHRlcm4gZmluYWwg
OiBwdWJsaWMgUmVmQ291bnRlZDxQYXR0ZXJuPiB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxQYXR0ZXJuPiBjcmVhdGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwgYm9v
bCByZXBlYXRYLCBib29sIHJlcGVhdFkpOworICAgIHN0YXRpYyBSZWY8UGF0dGVybj4gY3JlYXRl
KFJlZjxJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAg
ICBzdGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShSZWY8TmF0aXZlSW1hZ2U+JiYgdGlsZUltYWdl
LCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhdHRl
cm4oKTsKIAotICAgIEltYWdlJiB0aWxlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX3RpbGVJbWFn
ZS5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGlsZUltYWdlKFJlZjxOYXRp
dmVJbWFnZT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgTmF0aXZlSW1hZ2UmIHRpbGVJbWFnZSgp
IGNvbnN0OwogCiAgICAgLy8gUGF0dGVybiBzcGFjZSBpcyBhbiBhYnN0cmFjdCBzcGFjZSB0aGF0
IG1hcHMgdG8gdGhlIGRlZmF1bHQgdXNlciBzcGFjZSBieSB0aGUgdHJhbnNmb3JtYXRpb24gJ3Vz
ZXJTcGFjZVRyYW5zZm9ybWF0aW9uJwogI2lmICFVU0UoRElSRUNUMkQpCkBAIC03NywyMCArNzgs
MjAgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25h
bDxSZWY8UGF0dGVybj4+IGRlY29kZShEZWNvZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgUGF0dGVy
bihSZWY8SW1hZ2U+JiYsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShib29sIHJlcGVhdFgsIGJvb2wgcmVw
ZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbiA9
IHsgfSk7CiAKLSAgICBSZWY8SW1hZ2U+IG1fdGlsZUltYWdlOwotICAgIEFmZmluZVRyYW5zZm9y
bSBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOworICAgIFBhdHRlcm4oUmVmPE5hdGl2ZUlt
YWdlPiYmLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSk7CisgICAgUGF0dGVybihib29sIHJl
cGVhdFgsIGJvb2wgcmVwZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CisKKyAgICBSZWZQ
dHI8TmF0aXZlSW1hZ2U+IG1fdGlsZUltYWdlOwogICAgIGJvb2wgbV9yZXBlYXRYOwogICAgIGJv
b2wgbV9yZXBlYXRZOworICAgIEFmZmluZVRyYW5zZm9ybSBtX3BhdHRlcm5TcGFjZVRyYW5zZm9y
bWF0aW9uOwogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUGF0dGVybjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgSW1hZ2VIYW5kbGUgaW1hZ2VIYW5k
bGU7Ci0gICAgaW1hZ2VIYW5kbGUuaW1hZ2UgPSBtX3RpbGVJbWFnZS5wdHIoKTsKLSAgICBlbmNv
ZGVyIDw8IGltYWdlSGFuZGxlOwogICAgIGVuY29kZXIgPDwgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zv
cm1hdGlvbjsKICAgICBlbmNvZGVyIDw8IG1fcmVwZWF0WDsKICAgICBlbmNvZGVyIDw8IG1fcmVw
ZWF0WTsKQEAgLTk5LDExICsxMDAsNiBAQCB2b2lkIFBhdHRlcm46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIE9wdGlvbmFsPFJlZjxQYXR0
ZXJuPj4gUGF0dGVybjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8
SW1hZ2VIYW5kbGU+IGltYWdlSGFuZGxlOwotICAgIGRlY29kZXIgPj4gaW1hZ2VIYW5kbGU7Ci0g
ICAgaWYgKCFpbWFnZUhhbmRsZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQogICAg
IE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CiAg
ICAgZGVjb2RlciA+PiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKICAgICBpZiAoIXBhdHRl
cm5TcGFjZVRyYW5zZm9ybWF0aW9uKQpAQCAtMTE5LDkgKzExNSw3IEBAIE9wdGlvbmFsPFJlZjxQ
YXR0ZXJuPj4gUGF0dGVybjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFyZXBl
YXRZKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgYXV0byBwYXR0ZXJuID0g
UGF0dGVybjo6Y3JlYXRlKGltYWdlSGFuZGxlLT5pbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCAqcmVw
ZWF0WCwgKnJlcGVhdFkpOwotICAgIHBhdHRlcm4tPnNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSgq
cGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOwotICAgIHJldHVybiBwYXR0ZXJuOworICAgIHJl
dHVybiBQYXR0ZXJuOjpjcmVhdGUoKnJlcGVhdFgsICpyZXBlYXRZLCAqcGF0dGVyblNwYWNlVHJh
bnNmb3JtYXRpb24pOwogfQogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcAppbmRleCA1NjBm
NzQ3YThmYjY0ODFiZTRhMzAxODU4NTAwYWE5ZmExNjBmNzg2Li43N2FkOTdjY2JjNzU3ZTc3OTI4
NDI4YWI2NjM1NzFjMGEwMTM1MmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKQEAgLTM1LDExICszNSwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNhaXJvX3BhdHRlcm5fdCogUGF0dGVybjo6Y3JlYXRl
UGxhdGZvcm1QYXR0ZXJuKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIGNvbnN0CiB7Ci0gICAgYXV0
byBuYXRpdmVJbWFnZSA9IHRpbGVJbWFnZSgpLm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7
Ci0gICAgaWYgKCFuYXRpdmVJbWFnZSkKKyAgICBQbGF0Zm9ybUltYWdlUHRyIHBsYXRmb3JtSW1h
Z2UgPSB0aWxlSW1hZ2UoKS5wbGF0Zm9ybUltYWdlKCk7CisgICAgaWYgKCFwbGF0Zm9ybUltYWdl
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVy
biA9IGNhaXJvX3BhdHRlcm5fY3JlYXRlX2Zvcl9zdXJmYWNlKG5hdGl2ZUltYWdlLT5wbGF0Zm9y
bUltYWdlKCkuZ2V0KCkpOworICAgIAorICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVybiA9IGNh
aXJvX3BhdHRlcm5fY3JlYXRlX2Zvcl9zdXJmYWNlKHBsYXRmb3JtSW1hZ2UuZ2V0KCkpOwogCiAg
ICAgLy8gY2Fpcm8gbWVyZ2VzIHBhdHRlciBzcGFjZSBhbmQgdXNlciBzcGFjZSBpdHNlbGYKICAg
ICBjYWlyb19tYXRyaXhfdCBtYXRyaXggPSB0b0NhaXJvTWF0cml4KG1fcGF0dGVyblNwYWNlVHJh
bnNmb3JtYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUGF0dGVybkNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BhdHRlcm5DRy5jcHAKaW5kZXggNjk1NGM1NjY1NzBhZDdhZTZjMWU3NjBmMDc4N2QzNzcwYWNh
YTY5NC4uZWUxNzU2NDA5YWNiOGU3ZGJkNDk3NzJmNDQyMGVjOTBjYzAwYjQ5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCkBAIC01
NywxNiArNTcsMTMgQEAgc3RhdGljIHZvaWQgcGF0dGVyblJlbGVhc2VDYWxsYmFjayh2b2lkKiBp
bmZvKQogCiBDR1BhdHRlcm5SZWYgUGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdXNlclNwYWNlVHJhbnNmb3JtYXRpb24pIGNvbnN0CiB7Ci0gICAg
RmxvYXRSZWN0IHRpbGVSZWN0ID0gdGlsZUltYWdlKCkucmVjdCgpOworICAgIEZsb2F0UmVjdCB0
aWxlUmVjdCA9IHsgeyB9LCB0aWxlSW1hZ2UoKS5zaXplKCkgfTsKIAogICAgIEFmZmluZVRyYW5z
Zm9ybSBwYXR0ZXJuVHJhbnNmb3JtID0gdXNlclNwYWNlVHJhbnNmb3JtYXRpb24gKiBtX3BhdHRl
cm5TcGFjZVRyYW5zZm9ybWF0aW9uOwogICAgIHBhdHRlcm5UcmFuc2Zvcm0uc2NhbGVOb25Vbmlm
b3JtKDEsIC0xKTsKICAgICBwYXR0ZXJuVHJhbnNmb3JtLnRyYW5zbGF0ZSgwLCAtdGlsZVJlY3Qu
aGVpZ2h0KCkpOwogCi0gICAgUGxhdGZvcm1JbWFnZVB0ciBwbGF0Zm9ybUltYWdlOwotICAgIGlm
IChhdXRvIG5hdGl2ZUltYWdlID0gdGlsZUltYWdlKCkubmF0aXZlSW1hZ2UoKSkKLSAgICAgICAg
cGxhdGZvcm1JbWFnZSA9IG5hdGl2ZUltYWdlLT5wbGF0Zm9ybUltYWdlKCk7Ci0gICAgCisgICAg
UGxhdGZvcm1JbWFnZVB0ciBwbGF0Zm9ybUltYWdlID0gdGlsZUltYWdlKCkucGxhdGZvcm1JbWFn
ZSgpOwogICAgIGlmICghcGxhdGZvcm1JbWFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IGQxNTNkZmE0NWMyMWFkODczZTRkNDg0Njcx
ZjNkMDRhY2I3NDg1NGIuLjUyZTExOGRjOWMwMzQ4MTU0NjIzMmIxZWU1NWNjZWZiMzhmODZjYjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtOTEsMTAgKzkxLDEwIEBAIGJvb2wgRGlz
cGxheUxpc3Q6OnNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFncyBmbGFncywgSXRlbUhhbmRs
ZSBpdGVtKQogICAgICAgICBpZiAoIShmbGFncyAmIEFzVGV4dEZsYWc6OkluY2x1ZGVzUGxhdGZv
cm1PcGVyYXRpb25zKSkgewogICAgICAgICAgICAgY29uc3QgYXV0byYgc3RhdGVJdGVtID0gaXRl
bS5nZXQ8U2V0U3RhdGU+KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogZm9yIG5vdywgb25seSBk
cm9wIHRoZSBpdGVtIGlmIHRoZSBvbmx5IHN0YXRlLWNoYW5nZSBmbGFncyBhcmUgcGxhdGZvcm0t
c3BlY2lmaWMuCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlKCkubV9jaGFuZ2VGbGFn
cyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hh
bmdlKQorICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fY2hhbmdlRmxh
Z3MgPT0gR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0No
YW5nZSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmIChz
dGF0ZUl0ZW0uc3RhdGUoKS5tX2NoYW5nZUZsYWdzID09IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
aG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpCisgICAgICAgICAgICBpZiAoc3RhdGVJ
dGVtLnN0YXRlQ2hhbmdlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTIwMywxNiArMjAzLDEyIEBA
IHZvaWQgRGlzcGxheUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJldHVy
biBhcHBlbmQ8Q29uY2F0ZW5hdGVDVE0+KGl0ZW0uZ2V0PENvbmNhdGVuYXRlQ1RNPigpKTsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0Q1RNPihp
dGVtLmdldDxTZXRDVE0+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFk
aWVudDoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KGl0ZW0u
Z2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbENvbG9yOgotICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4o
aXRlbS5nZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVTdHJva2VDb2xvcjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVTdHJva2VD
b2xvcj4oaXRlbS5nZXQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCkpOwotICAgIGNhc2UgSXRlbVR5
cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdHJva2VU
aGlja25lc3M+KGl0ZW0uZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKSk7CisgICAgY2FzZSBJdGVt
VHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lU3Rh
dGU+KGl0ZW0uZ2V0PFNldElubGluZVN0YXRlPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRT
dGF0ZToKICAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdGF0ZT4oaXRlbS5nZXQ8U2V0U3RhdGU+
KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKKyAgICAgICAgcmV0
dXJuIGFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KGl0ZW0uZ2V0PFNldFN0cm9rZVRoaWNrbmVz
cz4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgcmV0dXJuIGFw
cGVuZDxTZXRMaW5lQ2FwPihpdGVtLmdldDxTZXRMaW5lQ2FwPigpKTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRMaW5lRGFzaDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZl
ci5jcHAKaW5kZXggNTBjOGQ4Zjc1NzdhMTY3MDVlY2Y4NTVhZDE2OTgxOGI2ZGY5OGJiYS4uOWI2
YWViZWNlYzg1MjY3ZGI2ZmE3Zjg2M2VkNTBiZDUwMWFjZDFiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1
ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTcyLDI2ICs3MiwxOCBAQCB2b2lkIEl0
ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgZ2V0PFNl
dENUTT4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6IHsKLSAgICAgICAgZ2V0PFNldElubGlu
ZUZpbGxHcmFkaWVudD4oKS5hcHBseShjb250ZXh0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVTdGF0ZTogeworICAgICAgICBnZXQ8U2V0SW5saW5lU3RhdGU+KCkuYXBwbHkoY29udGV4
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5l
RmlsbENvbG9yOiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCkuYXBwbHkoY29u
dGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lU3Ryb2tlQ29sb3I6IHsKLSAgICAgICAgZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpLmFw
cGx5KGNvbnRleHQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRl
bVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogewogICAgICAgICBnZXQ8U2V0U3Ryb2tlVGhpY2tu
ZXNzPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2Ug
SXRlbVR5cGU6OlNldFN0YXRlOiB7Ci0gICAgICAgIGdldDxTZXRTdGF0ZT4oKS5hcHBseShjb250
ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5l
Q2FwOiB7CiAgICAgICAgIGdldDxTZXRMaW5lQ2FwPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAg
ICByZXR1cm47CkBAIC0xMjEsNyArMTEzLDcgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJ
dGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6IHsKLSAgICAgICAgZ2V0PENsaXBUb0ltYWdlQnVm
ZmVyPigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOiB7
CkBAIC0xNDAsMTUgKzEzMiwxNSBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6IHsKLSAgICAgICAgZ2V0
PERyYXdJbWFnZUJ1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d05hdGl2ZUltYWdlOiB7Ci0gICAgICAgIGdldDxEcmF3TmF0aXZlSW1hZ2U+KCkuYXBwbHkoY29u
dGV4dCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOiB7Ci0gICAgICAgIGdldDxEcmF3
UGF0dGVybj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1JlY3Q6IHsK
QEAgLTQ4NiwxNiArNDc4LDggQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0Q1RNPjo6dmFs
dWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxDb2xvcjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rl
c3RydWN0aWJsZTxTZXRJbmxpbmVGaWxsQ29sb3I+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGlu
ZUZpbGxHcmFkaWVudD46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdHJva2VDb2xvcj46OnZh
bHVlKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogeworICAgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdGF0ZT46
OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRM
aW5lQ2FwOiB7CkBAIC02NjIsMTIgKzY0Niw4IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNvcHko
SXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNj
YWxlPigqdGhpcywgaXRlbU9mZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAg
ICAgICByZXR1cm4gY29weUludG88U2V0Q1RNPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88
U2V0SW5saW5lRmlsbENvbG9yPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5s
aW5lRmlsbEdyYWRpZW50PigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVT
dHJva2VDb2xvcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElu
bGluZVN0YXRlOgorICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lU3RhdGU+KCp0aGlz
LCBpdGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICBy
ZXR1cm4gY29weUludG88U2V0TGluZUNhcD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlNldExpbmVKb2luOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5
cGUuY3BwCmluZGV4IGMwYzczYjgzYmQ1MmVhYTA0YTk1MTc4MTgwNDQ1Mzk0N2JiYzk1ZTkuLjlk
ZjY5N2IyMTAwZmUyMjFlMWZlNGMxMjYzZGNhNDAxYjI4NTcxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTQ4LDE2ICs0OCwxMiBAQCBzdGF0aWMgc2l6
ZV90IHNpemVPZkl0ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXpl
b2YoQ29uY2F0ZW5hdGVDVE0pOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAg
cmV0dXJuIHNpemVvZihTZXRDVE0pOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxH
cmFkaWVudDoKLSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVGaWxsR3JhZGllbnQpOwot
ICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIHNp
emVvZihTZXRJbmxpbmVGaWxsQ29sb3IpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0
cm9rZUNvbG9yOgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZVN0cm9rZUNvbG9yKTsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6Ci0gICAgICAgIHJldHVybiBz
aXplb2YoU2V0U3Ryb2tlVGhpY2tuZXNzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVT
dGF0ZToKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVTdGF0ZSk7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3RhdGU6CiAgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3RhdGUpOworICAg
IGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKKyAgICAgICAgcmV0dXJuIHNpemVv
ZihTZXRTdHJva2VUaGlja25lc3MpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAg
ICAgICAgIHJldHVybiBzaXplb2YoU2V0TGluZUNhcCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0
TGluZURhc2g6CkBAIC0xODksOSArMTg1LDcgQEAgYm9vbCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBl
IHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2Fs
ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbENvbG9yOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAg
IGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVK
b2luOgpAQCAtMzAyLDkgKzI5Niw3IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUp
CiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKICAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bENvbG9yOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVTdGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgIGNhc2Ug
SXRlbVR5cGU6OlNldExpbmVKb2luOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCAwZTk0N2EwNmRhYjVh
MmRmYjQ3NjkwODJmOGNhYzU0OGFmODkzNDNiLi42MTVlM2FiMzRiODFkOWI5N2EwOWI1NmYwMDQ0
NzFmZmRjYmUwODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAg
LTM2LDExICszNiw5IEBAIGVudW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBTY2Fs
ZSwKICAgICBDb25jYXRlbmF0ZUNUTSwKICAgICBTZXRDVE0sCi0gICAgU2V0SW5saW5lRmlsbEdy
YWRpZW50LAotICAgIFNldElubGluZUZpbGxDb2xvciwKLSAgICBTZXRJbmxpbmVTdHJva2VDb2xv
ciwKLSAgICBTZXRTdHJva2VUaGlja25lc3MsCisgICAgU2V0SW5saW5lU3RhdGUsCiAgICAgU2V0
U3RhdGUsCisgICAgU2V0U3Ryb2tlVGhpY2tuZXNzLAogICAgIFNldExpbmVDYXAsCiAgICAgU2V0
TGluZURhc2gsCiAgICAgU2V0TGluZUpvaW4sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHAKaW5kZXggMjEzZGI5YzhjZjQyZWMxYWUyZDEzMzkzNzVkOWY1NjMwZTc2ZDc0My4uMmVm
ZWQxYmQ5ODYwZjI4NTM5NWMxMzk5YjJkM2Q1NmEwYTkzMTNmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKIAorI2luY2x1ZGUgIkJpdG1hcEltYWdl
LmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RSZXBsYXllci5oIgogI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKQEAgLTExNSw4OCArMTE2LDI0IEBAIHN0
YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25jYXRl
bmF0ZUNUTSYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVu
dDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgIDogbV9kYXRhKGdy
YWRpZW50LmRhdGEoKSkKLSAgICAsIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNw
YWNlVHJhbnNmb3JtKQotICAgICwgbV9zcHJlYWRNZXRob2QoZ3JhZGllbnQuc3ByZWFkTWV0aG9k
KCkpCi0gICAgLCBtX2NvbG9yU3RvcENvdW50KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGdyYWRpZW50
LnN0b3BzKCkuc2l6ZSgpKSkKK1NldElubGluZVN0YXRlOjpTZXRJbmxpbmVTdGF0ZShjb25zdCBH
cmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQorICAgIDogbV9zdGF0ZShzdGF0ZSkKKyAgICAs
IG1fY2hhbmdlRmxhZ3MoY2hhbmdlRmxhZ3MpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9jb2xv
clN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCk7Ci0gICAgZm9yICh1aW50OF90IGkgPSAw
OyBpIDwgbV9jb2xvclN0b3BDb3VudDsgKytpKSB7Ci0gICAgICAgIG1fb2Zmc2V0c1tpXSA9IGdy
YWRpZW50LnN0b3BzKClbaV0ub2Zmc2V0OwotICAgICAgICBtX2NvbG9yc1tpXSA9IGdyYWRpZW50
LnN0b3BzKClbaV0uY29sb3IuYXNJbmxpbmUoKTsKLSAgICB9CiB9CiAKLVNldElubGluZUZpbGxH
cmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9w
Q291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBH
cmFkaWVudDo6RGF0YSYgZGF0YSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNl
VHJhbnNmb3JtLCBHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QsIHVpbnQ4X3QgY29s
b3JTdG9wQ291bnQpCi0gICAgOiBtX2RhdGEoZGF0YSkKLSAgICAsIG1fZ3JhZGllbnRTcGFjZVRy
YW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgICwgbV9zcHJlYWRNZXRob2Qoc3By
ZWFkTWV0aG9kKQotICAgICwgbV9jb2xvclN0b3BDb3VudChjb2xvclN0b3BDb3VudCkKK3ZvaWQg
U2V0SW5saW5lU3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsK
LSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50
KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsK
LSAgICAgICAgbV9vZmZzZXRzW2ldID0gb2Zmc2V0c1tpXTsKLSAgICAgICAgbV9jb2xvcnNbaV0g
PSBjb2xvcnNbaV07Ci0gICAgfQotfQotCi1SZWY8R3JhZGllbnQ+IFNldElubGluZUZpbGxHcmFk
aWVudDo6Z3JhZGllbnQoKSBjb25zdAotewotICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6
Y3JlYXRlKEdyYWRpZW50OjpEYXRhKG1fZGF0YSkpOwotICAgIGZvciAodWludDhfdCBpID0gMDsg
aSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3Rv
cCh7IG1fb2Zmc2V0c1tpXSwgQ29sb3IobV9jb2xvcnNbaV0pIH0pOwotICAgIGdyYWRpZW50LT5z
ZXRTcHJlYWRNZXRob2QobV9zcHJlYWRNZXRob2QpOwotICAgIHJldHVybiBncmFkaWVudDsKLX0K
LQotdm9pZCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCkgY29uc3QKLXsKLSAgICBpZiAobV9jb2xvclN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BD
b3VudCkKLSAgICAgICAgY29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQoKSwgbV9ncmFk
aWVudFNwYWNlVHJhbnNmb3JtKTsKLX0KLQotYm9vbCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Omlz
SW5saW5lKGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKLXsKLSAgICBpZiAoZ3JhZGllbnQuc3Rv
cHMoKS5zaXplKCkgPiBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Om1heENvbG9yU3RvcENvdW50KQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBmb3IgKGF1dG8mIGNvbG9yU3RvcCA6IGdyYWRp
ZW50LnN0b3BzKCkpIHsKLSAgICAgICAgaWYgKCFjb2xvclN0b3AuY29sb3IuaXNJbmxpbmUoKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0ZUNoYW5nZSA9IHsgbV9zdGF0ZSwgbV9j
aGFuZ2VGbGFncyB9OworICAgIHN0YXRlQ2hhbmdlLmFwcGx5KGNvbnRleHQpOwogfQogCi1zdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5l
RmlsbEdyYWRpZW50JikKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBTZXRJbmxpbmVTdGF0ZSYpCiB7CiAgICAgLy8gRklYTUU6IER1bXAgZ3JhZGll
bnQgZGF0YS4KICAgICByZXR1cm4gdHM7CiB9CiAKLXZvaWQgU2V0SW5saW5lRmlsbENvbG9yOjph
cHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgY29udGV4dC5zZXRG
aWxsQ29sb3IoY29sb3IoKSk7Ci19Ci0KLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVGaWxsQ29sb3ImIHN0YXRlKQotewotICAgIHRz
LmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7Ci19
Ci0KLXZvaWQgU2V0SW5saW5lU3Ryb2tlQ29sb3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKCkpOwotfQot
Ci1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0
SW5saW5lU3Ryb2tlQ29sb3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3Ii
LCBzdGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KIHZvaWQgU2V0U3Ryb2tlVGhp
Y2tuZXNzOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29u
dGV4dC5zZXRTdHJva2VUaGlja25lc3MobV90aGlja25lc3MpOwpAQCAtMjA5LDIzICsxNDYsMjkg
QEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNl
dFN0cm9rZVRoaWNrbmVzcyYgc3RhdGUpCiB9CiAKIFNldFN0YXRlOjpTZXRTdGF0ZShjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNo
YW5nZUZsYWdzIGZsYWdzKQotICAgIDogbV9zdGF0ZShzdGF0ZSwgZmxhZ3MpCisgICAgOiBtX3N0
YXRlQ2hhbmdlKHN0YXRlLCBmbGFncykKIHsKIH0KIAotU2V0U3RhdGU6OlNldFN0YXRlKGNvbnN0
IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBzdGF0ZUNoYW5nZSkKLSAgICA6IG1fc3RhdGUo
c3RhdGVDaGFuZ2UpCitTZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGVDaGFuZ2UmIHN0YXRlQ2hhbmdlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tl
UGF0dGVybkltYWdlSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxQ
YXR0ZXJuSW1hZ2VJZGVudGlmaWVyKQorICAgIDogbV9zdGF0ZUNoYW5nZShzdGF0ZUNoYW5nZSkK
KyAgICAsIG1fc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcihzdHJva2VQYXR0ZXJuSW1hZ2VJ
ZGVudGlmaWVyKQorICAgICwgbV9maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcihmaWxsUGF0dGVy
bkltYWdlSWRlbnRpZmllcikKIHsKIH0KIAotdm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0KSBjb25zdAordm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBOYXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFn
ZSogZmlsbFBhdHRlcm5JbWFnZSkgY29uc3QKIHsKLSAgICBtX3N0YXRlLmFwcGx5KGNvbnRleHQp
OworICAgIGlmIChtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiAmJiBzdHJva2VQ
YXR0ZXJuSW1hZ2UpCisgICAgICAgIG1fc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VQYXR0ZXJu
LT5zZXRUaWxlSW1hZ2UobWFrZVJlZigqc3Ryb2tlUGF0dGVybkltYWdlKSk7CisgICAgaWYgKG1f
c3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUGF0dGVybiAmJiBmaWxsUGF0dGVybkltYWdlKQorICAg
ICAgICBtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4tPnNldFRpbGVJbWFnZShtYWtl
UmVmKCpmaWxsUGF0dGVybkltYWdlKSk7CisgICAgbV9zdGF0ZUNoYW5nZS5hcHBseShjb250ZXh0
KTsKIH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IFNldFN0YXRlJiBzdGF0ZSkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBTZXRTdGF0ZSYgc2V0U3RhdGUpCiB7Ci0gICAgdHMgPDwgc3RhdGUu
c3RhdGUoKTsKKyAgICB0cyA8PCBzZXRTdGF0ZS5zdGF0ZUNoYW5nZSgpOwogICAgIHJldHVybiB0
czsKIH0KIApAQCAtMzAxLDExICsyNDQsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ2xpcE91dCYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9
CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5
KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19
Ci0KIHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRl
eHQuY2xpcFRvSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIG1fZGVzdGluYXRpb25SZWN0KTsKQEAg
LTQyMCwxMSArMzU4LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IERyYXdHbHlwaHMmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi1OT19S
RVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogdm9pZCBE
cmF3SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6
SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd0ltYWdl
QnVmZmVyKGltYWdlQnVmZmVyLCBtX2Rlc3RpbmF0aW9uUmVjdCwgbV9zcmNSZWN0LCBtX29wdGlv
bnMpOwpAQCAtNDM4LDExICszNzEsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0ltYWdlQnVmZmVyJiBpdGVtKQogICAgIHJldHVybiB0
czsKIH0KIAotTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmFw
cGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci19Ci0KIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIE5hdGl2ZUltYWdlJiBpbWFnZSkgY29uc3QKIHsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJ
bWFnZShpbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb25SZWN0LCBtX3NyY1JlY3QsIG1f
b3B0aW9ucyk7CkBAIC00NjksMTEgKzM5Nyw2IEBAIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hCiB7
CiB9CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdy
YXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0K
IHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTmF0aXZl
SW1hZ2UmIGltYWdlKSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd1BhdHRlcm4oaW1hZ2UsIG1f
aW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3BhdHRlcm5UcmFuc2Zvcm0s
IG1fcGhhc2UsIG1fc3BhY2luZywgbV9vcHRpb25zKTsKQEAgLTEwMjMsMTEgKzk0Niw5IEBAIHN0
YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBl
KQogICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOiB0cyA8PCAic2NhbGUiOyBicmVhazsKICAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRDVE06IHRzIDw8ICJzZXQtY3RtIjsgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06IHRzIDw8ICJjb25jYXRlbnRhdGUtY3RtIjsgYnJlYWs7
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB0cyA8PCAic2V0LWlu
bGluZS1maWxsLWdyYWRpZW50IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5l
RmlsbENvbG9yOiB0cyA8PCAic2V0LWlubGluZS1maWxsLWNvbG9yIjsgYnJlYWs7Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLXN0cm9r
ZS1jb2xvciI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczog
dHMgPDwgInNldC1zdHJva2UtdGhpY2tuZXNzIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3RhdGU6IHRzIDw8ICJzZXQtaW5saW5lLXN0YXRlIjsgYnJlYWs7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3RhdGU6IHRzIDw8ICJzZXQtc3RhdGUiOyBicmVhazsKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHRzIDw8ICJzZXQtc3Ryb2tlLXRoaWNrbmVz
cyI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHRzIDw8ICJzZXQtbGlu
ZS1jYXAiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDogdHMgPDwgInNl
dC1saW5lLWRhc2giOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjogdHMg
PDwgInNldC1saW5lLWpvaW4iOyBicmVhazsKQEAgLTExMDYsMjEgKzEwMjcsMTUgQEAgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNh
c2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxDb25j
YXRlbmF0ZUNUTT4oKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbEdyYWRpZW50OgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQ+KCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PFNldElubGluZVN0YXRlPigpOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNl
dElubGluZUZpbGxDb2xvcj4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZVN0
cm9rZUNvbG9yPigpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgorICAgICAgICB0cyA8
PCBpdGVtLmdldDxTZXRTdGF0ZT4oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdHJva2VU
aGlja25lc3M+KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRl
OgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdGF0ZT4oKTsKLSAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0
TGluZUNhcD4oKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
aAppbmRleCAxZTAzZGU3NjQ5MzVlZTM1YTJkMGQwYzI5MmEyMzQ0NzcyNDdmNDE4Li4wODgzYTAy
NmViM2RmNzgyYThiZDA3YmE0ZjE3ZThhYTYyMzY3NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKQEAgLTE2Nyw2NSArMTY3LDE5IEBAIHByaXZhdGU6CiAgICAgQWZmaW5lVHJh
bnNmb3JtIG1fdHJhbnNmb3JtOwogfTsKIAotY2xhc3MgU2V0SW5saW5lRmlsbEdyYWRpZW50IHsK
K2NsYXNzIFNldElubGluZVN0YXRlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0
ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDsKKyAgICBz
dGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZVN0
YXRlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50OF90IG1heENvbG9yU3RvcENvdW50ID0gNDsKIAotICAgIFNldElubGlu
ZUZpbGxHcmFkaWVudChjb25zdCBHcmFkaWVudCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3Jh
ZGllbnRTcGFjZVRyYW5zZm9ybSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0SW5saW5lRmlsbEdy
YWRpZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBj
b2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGllbnRTcHJlYWRNZXRo
b2QsIHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpOwotCi0gICAgc3RhdGljIGJvb2wgaXNJbmxpbmUo
Y29uc3QgR3JhZGllbnQmKTsKLSAgICBSZWY8R3JhZGllbnQ+IGdyYWRpZW50KCkgY29uc3Q7Cisg
ICAgU2V0SW5saW5lU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmLCBHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKICAgICB2b2lkIGFwcGx5KEdy
YXBoaWNzQ29udGV4dCYpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGZsb2F0IG1fb2Zmc2V0c1tt
YXhDb2xvclN0b3BDb3VudF07Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvcnNbbWF4Q29sb3JT
dG9wQ291bnRdOwotICAgIEdyYWRpZW50OjpEYXRhIG1fZGF0YTsKLSAgICBBZmZpbmVUcmFuc2Zv
cm0gbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtOwotICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIG1f
c3ByZWFkTWV0aG9kIHsgR3JhZGllbnRTcHJlYWRNZXRob2Q6OlBhZCB9OwotICAgIHVpbnQ4X3Qg
bV9jb2xvclN0b3BDb3VudCB7IDAgfTsKLX07Ci0KLWNsYXNzIFNldElubGluZUZpbGxDb2xvciB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1U
eXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5s
aW5lSXRlbSA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0g
PSBmYWxzZTsKLQotICAgIFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvckRh
dGEpCi0gICAgICAgIDogbV9jb2xvckRhdGEoY29sb3JEYXRhKQotICAgIHsKLSAgICB9Ci0KLSAg
ICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xvckRhdGEgfTsgfQotICAgIHZv
aWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU1JHQkE8
dWludDhfdD4gbV9jb2xvckRhdGE7Ci19OwotCi1jbGFzcyBTZXRJbmxpbmVTdHJva2VDb2xvciB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1U
eXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJ
bmxpbmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRl
bSA9IGZhbHNlOwotCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWludDhfdD4gY29s
b3JEYXRhKQotICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKLSAgICB7Ci0gICAgfQot
Ci0gICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiB7IG1fY29sb3JEYXRhIH07IH0KLQot
ICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAg
U1JHQkE8dWludDhfdD4gbV9jb2xvckRhdGE7CisgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3Rh
dGUgbV9zdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBt
X2NoYW5nZUZsYWdzOwogfTsKIAogY2xhc3MgU2V0U3Ryb2tlVGhpY2tuZXNzIHsKQEAgLTI1NCwz
MCArMjA4LDMzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5n
SXRlbSA9IGZhbHNlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVD
aGFuZ2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZUNoYW5nZSYsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VQYXR0ZXJu
SW1hZ2VJZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5J
bWFnZUlkZW50aWZpZXIpOwogICAgIAotICAgIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hh
bmdlJiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KLQotICAgIHN0YXRpYyB2b2lk
IGJ1aWxkZXJTdGF0ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKKyAgICBjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UoKSBjb25zdCB7IHJldHVybiBt
X3N0YXRlQ2hhbmdlOyB9CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZVBh
dHRlcm5JbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3N0cm9rZVBhdHRlcm5JbWFn
ZUlkZW50aWZpZXI7IH0KKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRl
cm5JbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxQYXR0ZXJuSW1hZ2VJZGVu
dGlmaWVyOyB9CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wU3RhdGVDaGFuZ2VzKFdURjo6VGV4dFN0
cmVhbSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MpOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxTZXRTdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIAotICAgIHZvaWQgYXBwbHko
R3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQm
LCBOYXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSogZmlsbFBhdHRl
cm5JbWFnZSkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFu
Z2UgbV9zdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBtX3N0YXRlQ2hhbmdl
OworICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3N0cm9rZVBhdHRlcm5JbWFnZUlk
ZW50aWZpZXI7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fZmlsbFBhdHRlcm5J
bWFnZUlkZW50aWZpZXI7CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBTZXRT
dGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgYXV0byBjaGFuZ2VG
bGFncyA9IG1fc3RhdGUubV9jaGFuZ2VGbGFnczsKKyAgICBhdXRvIGNoYW5nZUZsYWdzID0gbV9z
dGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzOwogICAgIGVuY29kZXIgPDwgY2hhbmdlRmxhZ3M7CiAK
LSAgICBhdXRvJiBzdGF0ZSA9IG1fc3RhdGUubV9zdGF0ZTsKKyAgICBhdXRvJiBzdGF0ZSA9IG1f
c3RhdGVDaGFuZ2UubV9zdGF0ZTsKKyAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPigmc3RhdGUpLCBzaXplb2YoR3JhcGhpY3ND
b250ZXh0SW5saW5lU3RhdGUpLCAxKTsKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7CiAgICAgICAgIGVu
Y29kZXIgPDwgISFzdGF0ZS5zdHJva2VHcmFkaWVudDsKQEAgLTI4Nyw4ICsyNDQsMTAgQEAgdm9p
ZCBTZXRTdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBpZiAoY2hh
bmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFu
Z2UpKSB7CiAgICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5zdHJva2VQYXR0ZXJuOwotICAgICAg
ICBpZiAoc3RhdGUuc3Ryb2tlUGF0dGVybikKKyAgICAgICAgaWYgKHN0YXRlLnN0cm9rZVBhdHRl
cm4pIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc3Ryb2tlUGF0dGVybi0+dGlsZUlt
YWdlKCkucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBlbmNvZGVy
IDw8ICpzdGF0ZS5zdHJva2VQYXR0ZXJuOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGNo
YW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFu
Z2UpKSB7CkBAIC0yOTksNjAgKzI1OCwyMCBAQCB2b2lkIFNldFN0YXRlOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6RmlsbFBhdHRlcm5DaGFuZ2UpKSB7CiAgICAgICAgIGVuY29kZXIgPDwg
ISFzdGF0ZS5maWxsUGF0dGVybjsKLSAgICAgICAgaWYgKHN0YXRlLmZpbGxQYXR0ZXJuKQorICAg
ICAgICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGUuZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgpLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
OwogICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGUuZmlsbFBhdHRlcm47CisgICAgICAgIH0K
ICAgICB9CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlNoYWRvd0NoYW5nZSkpIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dPZmZz
ZXQ7Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93Qmx1cjsKLSAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0ZS5zaGFkb3dDb2xvcjsKLSNpZiBVU0UoQ0cpCi0gICAgICAgIGVuY29kZXIgPDwg
c3RhdGUuc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSNlbmRpZiAvLyBVU0UoQ0cpCi0gICAgfQot
Ci0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJv
a2VUaGlja25lc3NDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZVRoaWNr
bmVzczsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6VGV4dERyYXdpbmdNb2RlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS50ZXh0
RHJhd2luZ01vZGU7Ci0KICAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5z
dHJva2VDb2xvcjsKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5maWxs
Q29sb3I7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0cm9rZVN0eWxlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zdHJva2VT
dHlsZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6RmlsbFJ1bGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbGxSdWxlOwot
Ci0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpDb21w
b3NpdGVPcGVyYXRpb25DaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmNvbXBvc2l0
ZU9wZXJhdG9yOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmJsZW5k
TW9kZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwg
c3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKQotICAgICAgICBlbmNv
ZGVyIDw8IHN0YXRlLmFscGhhOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVy
IDw8IHN0YXRlLnNob3VsZEFudGlhbGlhczsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU21vb3RoRm9udHNDaGFuZ2UpKQotICAgICAg
ICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZFNtb290aEZvbnRzOwotCi0gICAgaWYgKGNoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXpl
Rm9udHNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZFN1YnBpeGVsUXVh
bnRpemVGb250czsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5zZm9ybXNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVy
IDw8IHN0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworICAgIGlmIChjaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSkKKyAgICAgICAgZW5j
b2RlciA8PCBzdGF0ZS5zaGFkb3dDb2xvcjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
QEAgLTM2Niw2ICsyODUsMTMgQEAgT3B0aW9uYWw8U2V0U3RhdGU+IFNldFN0YXRlOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0ZUNo
YW5nZTsKICAgICBzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzID0gKmNoYW5nZUZsYWdzOwogCisg
ICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZp
ZXI7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxQYXR0ZXJuSW1hZ2VJZGVu
dGlmaWVyOworCisgICAgYXV0byYgc3RhdGUgPSBzdGF0ZUNoYW5nZS5tX3N0YXRlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90
Kj4oJnN0YXRlKSwgc2l6ZW9mKEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlKSwgMSkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VG
bGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2Up
KSB7CiAgICAgICAgIE9wdGlvbmFsPGJvb2w+IGhhc1N0cm9rZUdyYWRpZW50OwogICAgICAgICBk
ZWNvZGVyID4+IGhhc1N0cm9rZUdyYWRpZW50OwpAQCAtMzg3LDEzICszMTMsMTcgQEAgT3B0aW9u
YWw8U2V0U3RhdGU+IFNldFN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAg
aWYgKCFoYXNTdHJva2VQYXR0ZXJuLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCi0gICAgICAgIGlmIChoYXNTdHJva2VQYXR0ZXJuLnZhbHVlKCkpIHsKLSAg
ICAgICAgICAgIGF1dG8gc3Ryb2tlUGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNvZGVyKTsK
LSAgICAgICAgICAgIGlmICghc3Ryb2tlUGF0dGVybikKLSAgICAgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgICAgICBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI+IGltYWdlSWRlbnRpZmllcjsKKyAgICAgICAgZGVjb2RlciA+PiBpbWFnZUlkZW50aWZpZXI7
CisgICAgICAgIGlmICghaW1hZ2VJZGVudGlmaWVyLmhhc1ZhbHVlKCkpCisgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0
cm9rZVBhdHRlcm4gPSBXVEZNb3ZlKCpzdHJva2VQYXR0ZXJuKTsKLSAgICAgICAgfQorICAgICAg
ICBhdXRvIHN0cm9rZVBhdHRlcm4gPSBQYXR0ZXJuOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAg
IGlmICghc3Ryb2tlUGF0dGVybikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciA9ICppbWFnZUlkZW50aWZpZXI7
CisgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IFdURk1vdmUoKnN0
cm9rZVBhdHRlcm4pOwogICAgIH0KIAogICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKSB7CkBA
IC00MTYsNjQgKzM0NiwxOCBAQCBPcHRpb25hbDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBkZWNvZGVyID4+IGhhc0ZpbGxQYXR0ZXJuOwogICAg
ICAgICBpZiAoIWhhc0ZpbGxQYXR0ZXJuLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmIChoYXNGaWxsUGF0dGVybi52YWx1ZSgpKSB7Ci0g
ICAgICAgICAgICBhdXRvIGZpbGxQYXR0ZXJuID0gUGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpOwot
ICAgICAgICAgICAgaWYgKCFmaWxsUGF0dGVybikKLSAgICAgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxQYXR0ZXJu
ID0gV1RGTW92ZSgqZmlsbFBhdHRlcm4pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHN0
YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNo
YWRvd0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBzaGFkb3dPZmZzZXQ7
Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93T2Zmc2V0OwotICAgICAgICBpZiAoIXNoYWRvd09m
ZnNldCkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVD
aGFuZ2UubV9zdGF0ZS5zaGFkb3dPZmZzZXQgPSAqc2hhZG93T2Zmc2V0OwotCi0gICAgICAgIE9w
dGlvbmFsPGZsb2F0PiBzaGFkb3dCbHVyOwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd0JsdXI7
Ci0gICAgICAgIGlmICghc2hhZG93Qmx1cikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dCbHVyID0gKnNoYWRvd0Js
dXI7Ci0KLSAgICAgICAgT3B0aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOwotICAgICAgICBkZWNv
ZGVyID4+IHNoYWRvd0NvbG9yOwotICAgICAgICBpZiAoIXNoYWRvd0NvbG9yKQorICAgICAgICAK
KyAgICAgICAgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBpbWFnZUlkZW50
aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaW1hZ2VJZGVudGlmaWVyOworICAgICAgICBpZiAo
IWltYWdlSWRlbnRpZmllci5oYXNWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd0NvbG9yID0gKnNoYWRv
d0NvbG9yOwotCi0jaWYgVVNFKENHKQotICAgICAgICBPcHRpb25hbDxib29sPiBzaGFkb3dzVXNl
TGVnYWN5UmFkaXVzOwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7
Ci0gICAgICAgIGlmICghc2hhZG93c1VzZUxlZ2FjeVJhZGl1cykKKyAgICAgICAgYXV0byBmaWxs
UGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgaWYgKCFmaWxsUGF0
dGVybikKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgc3RhdGVD
aGFuZ2UubV9zdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVzID0gKnNoYWRvd3NVc2VMZWdhY3lS
YWRpdXM7Ci0jZW5kaWYgLy8gVVNFKENHKQotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5t
X2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25l
c3NDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzdHJva2VUaGlja25lc3M7Ci0g
ICAgICAgIGRlY29kZXIgPj4gc3Ryb2tlVGhpY2tuZXNzOwotICAgICAgICBpZiAoIXN0cm9rZVRo
aWNrbmVzcykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rh
dGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VUaGlja25lc3MgPSAqc3Ryb2tlVGhpY2tuZXNzOwotICAg
IH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpUZXh0RHJhd2luZ01vZGVDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFs
PFRleHREcmF3aW5nTW9kZUZsYWdzPiB0ZXh0RHJhd2luZ01vZGU7Ci0gICAgICAgIGRlY29kZXIg
Pj4gdGV4dERyYXdpbmdNb2RlOwotICAgICAgICBpZiAoIXRleHREcmF3aW5nTW9kZSkKLSAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0
ZS50ZXh0RHJhd2luZ01vZGUgPSBXVEZNb3ZlKCp0ZXh0RHJhd2luZ01vZGUpOworICAgICAgICBm
aWxsUGF0dGVybkltYWdlSWRlbnRpZmllciA9ICppbWFnZUlkZW50aWZpZXI7CisgICAgICAgIHN0
YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4gPSBXVEZNb3ZlKCpmaWxsUGF0dGVybik7CiAg
ICAgfQogCiAgICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkgewpAQCAtNDk0LDk2ICszNzgsMTYg
QEAgT3B0aW9uYWw8U2V0U3RhdGU+IFNldFN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
ICAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsQ29sb3IgPSAqZmlsbENvbG9yOwogICAg
IH0KIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTdHJva2VTdHlsZUNoYW5nZSkpIHsKLSAgICAgICAgU3Ryb2tlU3R5bGUg
c3Ryb2tlU3R5bGU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Ryb2tlU3R5bGUpKQot
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5t
X3N0YXRlLnN0cm9rZVN0eWxlID0gc3Ryb2tlU3R5bGU7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRl
Q2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxS
dWxlQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxXaW5kUnVsZT4gZmlsbFJ1bGU7Ci0gICAg
ICAgIGRlY29kZXIgPj4gZmlsbFJ1bGU7Ci0gICAgICAgIGlmICghZmlsbFJ1bGUpCi0gICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUu
ZmlsbFJ1bGUgPSAqZmlsbFJ1bGU7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hh
bmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJhdGlv
bkNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0b3I+IGNvbXBvc2l0
ZU9wZXJhdG9yOwotICAgICAgICBkZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9yOwotICAgICAg
ICBpZiAoIWNvbXBvc2l0ZU9wZXJhdG9yKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmNvbXBvc2l0ZU9wZXJhdG9yID0gKmNv
bXBvc2l0ZU9wZXJhdG9yOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UpKSB7Ci0g
ICAgICAgIE9wdGlvbmFsPEJsZW5kTW9kZT4gYmxlbmRNb2RlOwotICAgICAgICBkZWNvZGVyID4+
IGJsZW5kTW9kZTsKLSAgICAgICAgaWYgKCFibGVuZE1vZGUpCi0gICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuYmxlbmRNb2RlID0g
KmJsZW5kTW9kZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNo
YW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+IGltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHk7Ci0gICAgICAgIGRlY29kZXIgPj4gaW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eTsKLSAgICAgICAgaWYgKCFpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KQotICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRl
LmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgPSAqaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsK
LSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGZsb2F0
PiBhbHBoYTsKLSAgICAgICAgZGVjb2RlciA+PiBhbHBoYTsKLSAgICAgICAgaWYgKCFhbHBoYSkK
LSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2Uu
bV9zdGF0ZS5hbHBoYSA9ICphbHBoYTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9j
aGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkQW50aWFsaWFz
Q2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRBbnRpYWxpYXM7Ci0gICAg
ICAgIGRlY29kZXIgPj4gc2hvdWxkQW50aWFsaWFzOwotICAgICAgICBpZiAoIXNob3VsZEFudGlh
bGlhcykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVD
aGFuZ2UubV9zdGF0ZS5zaG91bGRBbnRpYWxpYXMgPSAqc2hvdWxkQW50aWFsaWFzOwotICAgIH0K
LQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTaG91bGRTbW9vdGhGb250c0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8
Ym9vbD4gc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU21vb3Ro
Rm9udHM7Ci0gICAgICAgIGlmICghc2hvdWxkU21vb3RoRm9udHMpCi0gICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hvdWxkU21v
b3RoRm9udHMgPSAqc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1
YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hv
dWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotICAgICAgICBkZWNvZGVyID4+IHNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250czsKLSAgICAgICAgaWYgKCFzaG91bGRTdWJwaXhlbFF1YW50aXplRm9u
dHMpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hh
bmdlLm1fc3RhdGUuc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzID0gKnNob3VsZFN1YnBpeGVs
UXVhbnRpemVGb250czsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5zZm9ybXND
aGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
OwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwotICAgICAgICBp
ZiAoIXNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKQorICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKSB7Cisg
ICAgICAgIE9wdGlvbmFsPENvbG9yPiBzaGFkb3dDb2xvcjsKKyAgICAgICAgZGVjb2RlciA+PiBz
aGFkb3dDb2xvcjsKKyAgICAgICAgaWYgKCFzaGFkb3dDb2xvcikKICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dzSWdu
b3JlVHJhbnNmb3JtcyA9ICpzaGFkb3dzSWdub3JlVHJhbnNmb3JtczsKKyAgICAgICAgc3RhdGVD
aGFuZ2UubV9zdGF0ZS5zaGFkb3dDb2xvciA9ICpzaGFkb3dDb2xvcjsKICAgICB9CiAKLSAgICBy
ZXR1cm4geyBzdGF0ZUNoYW5nZSB9OworICAgIHJldHVybiB7eyBzdGF0ZUNoYW5nZSwgc3Ryb2tl
UGF0dGVybkltYWdlSWRlbnRpZmllciwgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIgfX07CiB9
CiAKIGNsYXNzIFNldExpbmVDYXAgewpAQCAtNzU3LDggKzU2MSw2IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBjb25z
dDsKIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250
ZXh0JikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwogICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uUmVj
dDsKQEAgLTEwMzksOCArODQxLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBseShHcmFwaGlj
c0NvbnRleHQmLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogCi0gICAgTk9fUkVUVVJO
X0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKLQogICAg
IE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpu
dWxsb3B0OyB9CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFw
aGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogCkBAIC0x
MDcyLDcgKzg3Miw2IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byB2
YWxpZGF0ZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7
IHJldHVybiAhIW1faW1hZ2VJZGVudGlmaWVyOyB9CiAKLSAgICBOT19SRVRVUk5fRFVFX1RPX0FT
U0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgYXBwbHko
R3JhcGhpY3NDb250ZXh0JiwgTmF0aXZlSW1hZ2UmKSBjb25zdDsKIAogICAgIE9wdGlvbmFsPEZs
b2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CkBA
IC0xMTA0LDcgKzkwMyw2IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0
byB2YWxpZGF0ZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KICAgICBib29sIGlzVmFsaWQoKSBjb25z
dCB7IHJldHVybiAhIW1faW1hZ2VJZGVudGlmaWVyOyB9CiAKLSAgICBOT19SRVRVUk5fRFVFX1RP
X0FTU0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgYXBw
bHkoR3JhcGhpY3NDb250ZXh0JiwgTmF0aXZlSW1hZ2UmKSBjb25zdDsKIAogICAgIE9wdGlvbmFs
PEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9
CkBAIC0yMzAxLDExICsyMDk5LDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNjYWxlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
Q1RNLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE0s
Ci0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGll
bnQsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29s
b3IsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VD
b2xvciwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNr
bmVzcywKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0YXRl
LAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3RhdGUsCisgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MsCiAgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwLAogICAgIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZURhc2gsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRMaW5lSm9pbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcAppbmRleCBlZGEwYjU1OTgzNWUwZDg5ZWQwYTU3ZTU4ZTUzY2YxMzg5NjM1NzFi
Li40MWZhNzYyMjZhZTYwMzU4YjIwNWNjZDNiODY0ZjcyOGQ1ZGM2ZDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC02MCw0OSArNjAsNDAgQEAgdm9pZCBS
ZWNvcmRlcjo6cHV0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5w
dXRGb3JtYXQsIGNvbnN0IFcKICAgICBhcHBlbmQ8UHV0SW1hZ2VEYXRhPihpbnB1dEZvcm1hdCwg
aW1hZ2VEYXRhLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogfQogCi1zdGF0aWMg
Ym9vbCBjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZs
YWdzIGNoYW5nZUZsYWdzKQorc3RhdGljIGJvb2wgY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFu
Z2VzKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQog
ewogICAgIHN0YXRpYyBjb25zdGV4cHIgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdl
RmxhZ3MgaW5saW5lU3RhdGVDaGFuZ2VGbGFncyB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTdHJva2VHcmFkaWVudENoYW5nZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
cm9rZVBhdHRlcm5DaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3Jh
ZGllbnRDaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUGF0dGVybkNo
YW5nZSwKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlLAog
ICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlLAotICAgICAgICBH
cmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlLAorICAgICAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlCiAgICAgfTsKIAotICAgIGlmIChjaGFuZ2VGbGFn
cyAhPSAoY2hhbmdlRmxhZ3MgJiBpbmxpbmVTdGF0ZUNoYW5nZUZsYWdzKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSkgJiYgIWNoYW5nZXMubV9zdGF0ZS5zdHJva2VDb2xv
ci5pc0lubGluZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxh
Z3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSkgJiYgIWNo
YW5nZXMubV9zdGF0ZS5maWxsQ29sb3IuaXNJbmxpbmUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpG
aWxsR3JhZGllbnRDaGFuZ2UpCi0gICAgICAgICYmICghY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFk
aWVudCB8fCAhU2V0SW5saW5lRmlsbEdyYWRpZW50Ojppc0lubGluZSgqY2hhbmdlcy5tX3N0YXRl
LmZpbGxHcmFkaWVudCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gIWNoYW5nZUZsYWdzLmNvbnRhaW5zQW55KGlubGluZVN0YXRlQ2hhbmdl
RmxhZ3MpOwogfQogCi12b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQordm9pZCBSZWNvcmRlcjo6YXBwZW5kU3Rh
dGVDaGFuZ2VJdGVtKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCiB7Ci0gICAgaWYgKCFj
b250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoY2hhbmdlcywgY2hhbmdlRmxhZ3MpKSB7Ci0g
ICAgICAgIGFwcGVuZDxTZXRTdGF0ZT4oY2hhbmdlcy5tX3N0YXRlLCBjaGFuZ2VGbGFncyk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNl
dElubGluZVN0cm9rZUNvbG9yPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlQ29sb3IuYXNJbmxpbmUo
KSk7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRTdHJva2VUaGlja25l
c3M+KGNoYW5nZXMubV9zdGF0ZS5zdHJva2VUaGlja25lc3MpOworICAgIGlmIChjb250YWluc09u
bHlJbmxpbmVTdGF0ZUNoYW5nZXMoY2hhbmdlRmxhZ3MpKQorICAgICAgICBhcHBlbmQ8U2V0SW5s
aW5lU3RhdGU+KHN0YXRlLCBjaGFuZ2VGbGFncyk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChz
dGF0ZS5zdHJva2VQYXR0ZXJuKSB7CisgICAgICAgICAgICBpZiAobV9kZWxlZ2F0ZSkKKyAgICAg
ICAgICAgICAgICBtX2RlbGVnYXRlLT5jYWNoZU5hdGl2ZUltYWdlKHN0YXRlLnN0cm9rZVBhdHRl
cm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgICAgIG1fZGlzcGxheUxpc3QuY2FjaGVOYXRpdmVJ
bWFnZShzdGF0ZS5zdHJva2VQYXR0ZXJuLT50aWxlSW1hZ2UoKSk7CisgICAgICAgIH0KIAotICAg
IGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9y
Q2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oY2hhbmdlcy5tX3N0
YXRlLmZpbGxDb2xvci5hc0lubGluZSgpKTsKKyAgICAgICAgaWYgKHN0YXRlLmZpbGxQYXR0ZXJu
KSB7CisgICAgICAgICAgICBpZiAobV9kZWxlZ2F0ZSkKKyAgICAgICAgICAgICAgICBtX2RlbGVn
YXRlLT5jYWNoZU5hdGl2ZUltYWdlKHN0YXRlLmZpbGxQYXR0ZXJuLT50aWxlSW1hZ2UoKSk7Cisg
ICAgICAgICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlTmF0aXZlSW1hZ2Uoc3RhdGUuZmlsbFBhdHRl
cm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgfQogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKQotICAgICAgICBh
cHBlbmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigqY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVu
dCwgY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKKyAgICAgICAg
YXBwZW5kPFNldFN0YXRlPihzdGF0ZSwgY2hhbmdlRmxhZ3MpOworICAgIH0KIH0KIAogdm9pZCBS
ZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUgdHlwZSkKQEAgLTExOSw3ICsx
MTAsNyBAQCB2b2lkIFJlY29yZGVyOjp3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBl
KQogICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2Vz
RnJvbUxhc3RTdGF0ZSA9IHN0YXRlQ2hhbmdlcy5jaGFuZ2VzRnJvbVN0YXRlKGN1cnJlbnRTdGF0
ZSgpLmxhc3REcmF3aW5nU3RhdGUpOwogICAgICAgICBpZiAoY2hhbmdlc0Zyb21MYXN0U3RhdGUp
IHsKICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAi
cHJlLWRyYXdpbmcsIHNhdmluZyBzdGF0ZSAiIDw8IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdl
KHN0YXRlQ2hhbmdlcy5tX3N0YXRlLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSkpOwotICAgICAgICAg
ICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKHN0YXRlQ2hhbmdlcywgY2hhbmdlc0Zyb21MYXN0U3Rh
dGUpOworICAgICAgICAgICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKHN0YXRlQ2hhbmdlcy5tX3N0
YXRlLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSk7CiAgICAgICAgICAgICBzdGF0ZUNoYW5nZXMubV9j
aGFuZ2VGbGFncyA9IHsgfTsKICAgICAgICAgICAgIGN1cnJlbnRTdGF0ZSgpLmxhc3REcmF3aW5n
U3RhdGUgPSBzdGF0ZUNoYW5nZXMubV9zdGF0ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggODlhOTkwODZhYWQxMWVhZGUwMzc1ZjFkZjE4NjRk
MzMzMzE3OTU4Yi4uN2ZjZWE0MjdkNDMxN2JjYWQwYjA4YTM0NDYyNmYxMGRkZjMwZjE2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0xNzEsNyArMTcxLDcgQEAg
cHJpdmF0ZToKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEFwcGVuZEl0ZW1PZlR5cGUo
SXRlbVR5cGUpOwogCi0gICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGVDaGFuZ2UmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VG
bGFncyk7CisgICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKICAg
ICBGbG9hdFJlY3QgZXh0ZW50RnJvbUxvY2FsQm91bmRzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCmluZGV4IDMy
NWRiOTczOWU5ZmNmMjEzMWU5MTRlNmFlNWM4NWE4MmViYWUxYzkuLjM0NjQzNjJkNjc3ZDRkNmM4
NDcyZWQ5YTdkYTM1ZDg1MTVhZjg3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZXBsYXllci5jcHAKQEAgLTcwLDYgKzcwLDI5IEBAIGlubGluZSBzdGF0aWMgT3B0aW9uYWw8UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseU5hdGl2ZUltYWdlSXRlbShHcmFwaGljCiAg
ICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKIH0KIAoraW5saW5lIHN0YXRpYyBPcHRpb25h
bDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5U2V0U3RhdGVJdGVtKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgTmF0aXZlSW1hZ2VIYXNoTWFwJiBuYXRpdmVJbWFnZXMs
IEl0ZW1IYW5kbGUgaXRlbSkKK3sKKyAgICBhdXRvJiBzZXRTdGF0ZUl0ZW0gPSBpdGVtLmdldDxT
ZXRTdGF0ZT4oKTsKKworICAgIE5hdGl2ZUltYWdlKiBzdHJva2VQYXR0ZXJuSW1hZ2UgPSBudWxs
cHRyOworICAgIE5hdGl2ZUltYWdlKiBmaWxsUGF0dGVybkltYWdlID0gbnVsbHB0cjsKKyAgICAK
KyAgICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0uc3Ryb2tlUGF0
dGVybkltYWdlSWRlbnRpZmllcigpKSB7CisgICAgICAgIHN0cm9rZVBhdHRlcm5JbWFnZSA9IG5h
dGl2ZUltYWdlcy5nZXQocmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFzdHJva2VQ
YXR0ZXJuSW1hZ2UpCisgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOworICAg
IH0KKworICAgIGlmIChhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRlSXRlbS5maWxs
UGF0dGVybkltYWdlSWRlbnRpZmllcigpKSB7CisgICAgICAgIGZpbGxQYXR0ZXJuSW1hZ2UgPSBu
YXRpdmVJbWFnZXMuZ2V0KHJlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIGlmICghZmlsbFBh
dHRlcm5JbWFnZSkKKyAgICAgICAgICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7CisgICAg
fQorCisgICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRleHQsIHN0cm9rZVBhdHRlcm5JbWFnZSwg
ZmlsbFBhdHRlcm5JbWFnZSk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwogdGVtcGxh
dGU8Y2xhc3MgVD4KIGlubGluZSBzdGF0aWMgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyPiBhcHBseUZvbnRJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9u
dFJlbmRlcmluZ1Jlc291cmNlTWFwJiBmb250cywgSXRlbUhhbmRsZSBpdGVtKQogewpAQCAtMTA1
LDE0ICsxMjgsMjAgQEAgc3RkOjpwYWlyPE9wdGlvbmFsPFN0b3BSZXBsYXlSZWFzb24+LCBPcHRp
b25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+PiBSZXAKICAgICAgICAgcmV0dXJuIHsg
V1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQgfTsKICAgICB9CiAKLSAgICBpZiAoaXRlbS5pczxE
cmF3R2x5cGhzPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlk
ZW50aWZpZXIgPSBhcHBseUZvbnRJdGVtPERyYXdHbHlwaHM+KG1fY29udGV4dCwgbV9mb250cywg
aXRlbSkpCisgICAgaWYgKGl0ZW0uaXM8RHJhd1BhdHRlcm4+KCkpIHsKKyAgICAgICAgaWYgKGF1
dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZlSW1hZ2VJdGVt
PERyYXdQYXR0ZXJuPihtX2NvbnRleHQsIG1fbmF0aXZlSW1hZ2VzLCBpdGVtKSkKICAgICAgICAg
ICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1pc3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RG
TW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyKSB9OwogICAgICAgICByZXR1cm4g
eyBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCB9OwogICAgIH0KIAotICAgIGlmIChpdGVtLmlz
PERyYXdQYXR0ZXJuPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJj
ZUlkZW50aWZpZXIgPSBhcHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3UGF0dGVybj4obV9jb250ZXh0
LCBtX25hdGl2ZUltYWdlcywgaXRlbSkpCisgICAgaWYgKGl0ZW0uaXM8U2V0U3RhdGU+KCkpIHsK
KyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5
U2V0U3RhdGVJdGVtKG1fY29udGV4dCwgbV9uYXRpdmVJbWFnZXMsIGl0ZW0pKQorICAgICAgICAg
ICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZN
b3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CisgICAgICAgIHJldHVybiB7
IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CisgICAgfQorCisgICAgaWYgKGl0ZW0uaXM8
RHJhd0dseXBocz4oKSkgeworICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJ
ZGVudGlmaWVyID0gYXBwbHlGb250SXRlbTxEcmF3R2x5cGhzPihtX2NvbnRleHQsIG1fZm9udHMs
IGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0Nh
Y2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07
CiAgICAgICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRp
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUu
Y3BwCmluZGV4IGFmYmU3MDZhZGRjMjI3ZGExMGNiNzg4Mjg4ODZjMTI5YjE5MjQxY2MuLmYzM2Nj
ZWIxMTIzMjgwYzgxMjVjYjI4NGI2ZTc4MDczZDAxYjgxYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKQEAgLTcyLDcgKzcy
LDcgQEAgdm9pZCBGRVRpbGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgdGlsZUltYWdl
Q29udGV4dC50cmFuc2xhdGUoLWluTWF4RWZmZWN0TG9jYXRpb24ueCgpLCAtaW5NYXhFZmZlY3RM
b2NhdGlvbi55KCkpOwogICAgIHRpbGVJbWFnZUNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbkJ1
ZmZlciwgaW4tPmFic29sdXRlUGFpbnRSZWN0KCkubG9jYXRpb24oKSk7CiAKLSAgICBhdXRvIHRp
bGVJbWFnZUNvcHkgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9JbWFnZShXVEZNb3ZlKHRpbGVJbWFn
ZSkpOworICAgIGF1dG8gdGlsZUltYWdlQ29weSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b05hdGl2
ZUltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CiAgICAgaWYgKCF0aWxlSW1hZ2VDb3B5KQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggYWQ0ZThkZDlkNzFiYWMxYTkyMTkyZGE3YWU2YTE5ZDQzNGE3MTll
Mi4uYTE0ZTVlMGJjYzJmMmZiMThmZjc4MTZmNjc0ZTEwNmRhZDRhNDY0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTMyNjYsNyAr
MzI2Niw3IEBAIHN0YXRpYyBSZWZQdHI8UGF0dGVybj4gcGF0dGVybkZvckRlc2NyaXB0aW9uKFBh
dHRlcm5EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgRmxvCiAgICAgICAgIGltYWdlQ29udGV4dC5k
cmF3VGV4dChmb250LCB0ZXh0UnVuLCB7IHRleHRHYXAsIHlPZmZzZXQgfSwgMCk7CiAgICAgfQog
Ci0gICAgYXV0byB0aWxlSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9JbWFnZShXVEZNb3Zl
KGltYWdlQnVmZmVyKSk7CisgICAgYXV0byB0aWxlSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0lu
dG9OYXRpdmVJbWFnZShXVEZNb3ZlKGltYWdlQnVmZmVyKSk7CiAgICAgYXV0byBmaWxsUGF0dGVy
biA9IFBhdHRlcm46OmNyZWF0ZSh0aWxlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgdHJ1ZSwgdHJ1
ZSk7CiAgICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5PZmZzZXRUcmFuc2Zvcm07CiAgICAgcGF0
dGVybk9mZnNldFRyYW5zZm9ybS50cmFuc2xhdGUoY29udGVudE9mZnNldCArIGRlc2NyaXB0aW9u
LnBoYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcAppbmRleCBhMWY4NWYxNzYyNjYxYTVkOGIzMmE0NTA0
ZTY1ZWZhODNjYTNhNGViLi5jNTY1MmY1MTQ5Njk3YTg1N2Q5MzMwNTU0YmIzYTM5ZTExNmQ0ZDFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZVBhdHRlcm4uY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgUGF0dGVybkRhdGEqIFJl
bmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKFJlbmRlckVsZW1lbnQmIHJlbmRl
cmVyLCBPcHQKIAogICAgIGNvbnN0IEludFNpemUgdGlsZUltYWdlU2l6ZSA9IHRpbGVJbWFnZS0+
bG9naWNhbFNpemUoKTsKIAotICAgIFJlZlB0cjxJbWFnZT4gY29waWVkSW1hZ2UgPSBJbWFnZUJ1
ZmZlcjo6c2lua0ludG9JbWFnZShXVEZNb3ZlKHRpbGVJbWFnZSkpOworICAgIGF1dG8gY29waWVk
SW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKHRpbGVJbWFn
ZSkpOwogICAgIGlmICghY29waWVkSW1hZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggMDNkMTYyZmRkMTFiMzVlMjYyMGQyMmMxOTg0MjQ5
ODg3OWJiNDU1ZS4uMzBmYjdmODFiOGMwMGJmZTVhYzZlZjBmOTRlN2JjZGQ2YmJiMTBjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNDYxLDkgKzQ2MSw3IEBAIE9wdGlvbmFsPERpc3Bs
YXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6ZGVjCiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6CiAgICAgY2Fz
ZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGlu
ZUZpbGxDb2xvcjoKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmls
bEdyYWRpZW50OgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJv
a2VDb2xvcjoKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6
CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgY2FzZSBE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMTlhZjI5OTY2ODI3ZDRiNjAxZDhjZDUyN2JmMTRj
OWE3N2Q3MDg5Yi4uYmI3Yzg0YmY4MTQ3NWNjYzkxOWYwNzgzMDA0ZDkyOTcxODAwZmU1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0x
MDc1LDE4ICsxMDc1LDYgQEAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZU9w
dGlvbmFsSW1hZ2UoRGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEltYWcKICAgICByZXR1cm4gZGVj
b2RlSW1hZ2UoZGVjb2RlciwgaW1hZ2UpOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW1hZ2VI
YW5kbGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW1hZ2VIYW5kbGUmIGltYWdl
SGFuZGxlKQotewotICAgIGVuY29kZU9wdGlvbmFsSW1hZ2UoZW5jb2RlciwgaW1hZ2VIYW5kbGUu
aW1hZ2UuZ2V0KCkpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW1hZ2VIYW5kbGU+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQotewotICAgIGlm
ICghZGVjb2RlT3B0aW9uYWxJbWFnZShkZWNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZSkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBBcmd1bWVudENv
ZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8V2ViQ29y
ZTo6Rm9udD4mIGZvbnQpCiB7CiAgICAgZW5jb2RlciA8PCBmb250LT5vcmlnaW4oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMDc0MzI1YjVh
OWNiZGFkYTEzMGMwOTFmYzNkM2IwNTI4YWFmZGY5Ny4uNjRhN2NmZjM1ZWJhMTYxZTk4ZGEwNmU5
MDU1YTYxMDliMmY4ZjlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTEwOSw3ICsxMDksNiBAQCBjbGFzcyBGaXhlZFBvc2l0aW9uVmlld3Bv
cnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xh
c3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIEltYWdlSGFuZGxlOwogY2xhc3MgSW50UG9pbnQ7CiBj
bGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKQEAgLTQxOCwxMSArNDE3LDYgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWY8V2ViQ29yZTo6Rm9udD4+IHsKICAgICBzdGF0
aWMgT3B0aW9uYWw8V2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YT4gZGVjb2RlUGxhdGZvcm1EYXRh
KERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6SW1hZ2VIYW5kbGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkltYWdlSGFuZGxlJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW1hZ2VIYW5kbGUmKTsKLX07Ci0KIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmgKaW5kZXggZDdiOTBiNTcyZGE1ZmMxM2NkM2JkMDg2YjQ3NzE0YjEwY2QzNWNhOS4uNjQxYTFj
OGUwNjU3MDY5ZGZhZTc0YmMwZTlmNjdiYWJmNjAzZGU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmgKQEAgLTM0Niw5ICszNDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTYXZlOgogICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2NhbGU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xv
cjoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGlu
ZVN0YXRlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
TGluZUNhcDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dExpbmVKb2luOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U2V0TWl0ZXJMaW1pdDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxOTVkOGU4NTZjMjNjNTJiYzMxYmVmYWQ2Y2ZhZmU2ZTQz
ZGQ5ODU3Li41Yzk0MDIxYzc5NTViMTZhMmYxYWVlNTZiYjM5OTBhMGMzNmVlNzYyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMjEtMDItMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXTogSW1wbGVtZW50IFNldFN0YXRlIERpc3Bs
YXlMaXN0IGl0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wMi0wMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIEdQVVByb2Nl
c3MgTWVkaWFSZWNvcmRlciBoYW5kbGVzIGNvcnJlY3RseSBtdXRlZCB0cmFja3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGE2YmI5MmNiYTUyNmFjMTkyZWRl
YTE5ODIyOGM0YjJmNzhiNmFlZDkuLjkwYWFiZjI5ZGRkMDk1M2Y4OGVkNmE2YjdjNzUxZGI2MTgz
YTBhNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMSw0
OSArMSw4IEBACi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5j
YW52YXNwYXR0ZXJuLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBv
c2l0ZS5nbG9iYWxBbHBoYS5pbWFnZXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmNvcHkuaHRtbCBbIENyYXNo
IF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRl
c3RpbmF0aW9uLWF0b3AuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29t
cG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2Ut
aW4uaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292
ZXJlZC5wYXR0ZXJuLnNvdXJjZS1vdXQuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVz
dHMvMmQucGF0dGVybi5hbmltYXRlZC5naWYuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0dGVybi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0dGVybi5iYXNpYy5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmJhc2ljLm5vY29udGV4dC5odG1sIFsgQ3Jhc2ggXQotY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ubW9kaWZ5LmNhbnZhczEuaHRtbCBbIENyYXNo
IF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFzMi5odG1sIFsg
Q3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTEuaHRt
bCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5tb2RpZnkuaW1hZ2Uy
Lmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQubm9y
ZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVy
bi5wYWludC5ub3JlcGVhdC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVz
dHMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0KLWNhbnZh
cy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDMuaHRtbCBbIENy
YXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5vdXRz
aWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQu
b3JpZW50YXRpb24uY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnBhdHRlcm4ucGFpbnQub3JpZW50YXRpb24uaW1hZ2UuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0K
LWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQxLmh0bWwg
WyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNv
b3JkMi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50
LnJlcGVhdC5jb29yZDMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0
dGVybi5wYWludC5yZXBlYXQub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHguYmFzaWMuaHRtbCBbIENyYXNoIF0KLWNhbnZh
cy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4LmNvb3JkMS5odG1sIFsgQ3Jh
c2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHgub3V0c2lk
ZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJl
cGVhdHkuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVy
bi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnJlcGVhdC5lbXB0eS5odG1sIFsgQ3Jhc2ggXQotY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnJlcGVhdC5udWxsLmh0bWwgWyBDcmFzaCBdCi1j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5wYXR0ZXJuLmFscGhhLmh0bWwgWyBDcmFzaCBd
Ci1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5wYXR0ZXJuLmJhc2ljLmh0bWwgWyBDcmFz
aCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5wYXR0ZXJuLnRyYW5zcGFyZW50LjEu
aHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4udHJh
bnNwYXJlbnQuMi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy9pbml0aWFsLnJl
c2V0LnBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLQogY29tcG9zaXRpbmcvY2FudmFzL2FjY2VsZXJh
dGVkLWNhbnZhcy1jb21wb3NpdGluZy5odG1sIFsgRmFpbHVyZSBdCiBjb21wb3NpdGluZy9sYXll
ci1jcmVhdGlvbi9zcGFuT3ZlcmxhcHNDYW52YXMuaHRtbCBbIEZhaWx1cmUgXQogCiBjc3MzL2Js
ZW5kaW5nL2JsZW5kLW1vZGUtY2xpcC1hY2NlbGVyYXRlZC1ibGVuZGluZy1jYW52YXMuaHRtbCBb
IEZhaWx1cmUgXQorCiBkaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC5odG1sIFsgRmFp
bHVyZSBdCiAKIGZhc3QvY2FudmFzLzJkLmZpbGxUZXh0LmdyYWRpZW50Lmh0bWwgWyBGYWlsdXJl
IF0KQEAgLTU1LDMzICsxNCwxMyBAQCBmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmQtaW1hZ2UuaHRt
bCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kLXNvbGlkLmh0bWwgWyBGYWls
dXJlIF0KIGZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jbGlwcGluZy5odG1sIFsgRmFpbHVy
ZSBdCiBmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmRpbmctY29sb3Itb3Zlci1jb2xvci5odG1sIFsg
RmFpbHVyZSBdCitmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmRpbmctY29sb3Itb3Zlci1pbWFnZS5o
dG1sIFsgVGltZW91dCBdCiBmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmRpbmctY29sb3Itb3Zlci1n
cmFkaWVudC5odG1sIFsgRmFpbHVyZSBdCi1hc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xv
ci1vdmVyLWltYWdlLmh0bWwgWyBUaW1lb3V0IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGlu
Zy1jb2xvci1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1i
bGVuZGluZy1ncmFkaWVudC1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFz
L2NhbnZhcy1ibGVuZGluZy1pbWFnZS1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3Qv
Y2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItY29sb3IuaHRtbCBbIENyYXNoIF0K
LWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItZ3JhZGllbnQuaHRtbCBb
IENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItaW1hZ2Uu
aHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXIt
cGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWNyZWF0ZVBhdHRlcm4t
ZmlsbFJlY3Qtc2hhZG93Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRl
UGF0dGVybi12aWRlby1sb2FkaW5nLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMt
Y3JlYXRlUGF0dGVybi12aWRlby1tb2RpZnkuaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFzL2Nh
bnZhcy1kcmF3SW1hZ2UtY29tcG9zaXRlLWNvcHkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQot
ZmFzdC9jYW52YXMvY2FudmFzLWZpbGxQYXRoLXBhdHRlcm4tc2hhZG93Lmh0bWwgWyBDcmFzaCBd
Ci1mYXN0L2NhbnZhcy9jYW52YXMtaW1hZ2Utc2hhZG93Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2Nh
bnZhcy9jYW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXBhdHRlcm5zLmh0bWwgWyBDcmFzaCBd
CiBmYXN0L2NhbnZhcy9jYW52YXMtbGFyZ2UtZGltZW5zaW9ucy5odG1sIFsgRmFpbHVyZSBdCi1m
YXN0L2NhbnZhcy9jYW52YXMtcGF0dGVybi1iZWhhdmlvdXIuaHRtbCBbIENyYXNoIF0KLWZhc3Qv
Y2FudmFzL2NhbnZhcy1wYXR0ZXJuLW1vZGlmeS5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMv
Y2FudmFzLXBhdHRlcm4tdHJhbnNmb3JtLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52
YXMtcGF0dGVybi13aXRoLXRyYW5zZm9ybS5odG1sIFsgQ3Jhc2ggXQogZmFzdC9jYW52YXMvY2Fu
dmFzLXJlbmRlci1sYXllci5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy9oaWRwaS1yZXBh
aW50LW9uLXJldGluYS1sZWF2ZXMtYml0cy1iZWhpbmQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQotZmFzdC9jYW52YXMvaW1hZ2Utb2JqZWN0LWluLWNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotZmFz
dC9jYW52YXMvaW1hZ2UtcGF0dGVybi1yb3RhdGUuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFz
L3BhdHRlcm4td2l0aC10cmFuc2Zvcm0uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL3BhdHRl
cm5maWxsLXJlcGVhdC5odG1sIFsgQ3Jhc2ggXQorCiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMt
MmQtd2ViZ2wtdGV4dHVyZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52
YXMtdGVzdC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWNyZWF0
aW9uLWF0dHJpYnV0ZXMuaHRtbCBbIEZhaWx1cmUgXQpAQCAtMTAwLDM2ICszOSwzMSBAQCBmYXN0
L2NhbnZhcy93ZWJnbC90ZXhJbWFnZTJELXZpZGVvLWZsaXBZLWZhbHNlLmh0bWwgWyBUaW1lb3V0
IF0KIGZhc3QvY2FudmFzL3dlYmdsL3RleEltYWdlMkQtdmlkZW8tZmxpcFktdHJ1ZS5odG1sIFsg
RmFpbHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0bWwgWyBG
YWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1s
IFsgVGltZW91dCBdCi0KIGZhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1jcmFzaC5odG1s
IFsgRmFpbHVyZSBdCiBmYXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1tcDQtY3Jhc2guaHRtbCBb
IFRpbWVvdXQgXQogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0Lmh0bWwgWyBUaW1lb3V0
IF0KIGZhc3QvaW1hZ2VzL29yZGVyZWQtYW5pbWF0ZWQtaW1hZ2UtZnJhbWVzLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KLQogZmFzdC9tZWRpYWNhcHR1cmVmcm9tZWxlbWVudC9DYW52YXNDYXB0
dXJlTWVkaWFTdHJlYW0tZXhjZXB0aW9ucy5odG1sIFsgQ3Jhc2ggXQogZmFzdC9tZWRpYWNhcHR1
cmVmcm9tZWxlbWVudC9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW0td2ViZ2wtZXZlbnRzLmh0bWwg
WyBUaW1lb3V0IF0KIGZhc3QvbWVkaWFzdHJlYW0vY2FwdHVyZVN0cmVhbS9jYW52YXMzZC5odG1s
IFsgRmFpbHVyZSBdCiBmYXN0L21lZGlhc3RyZWFtL21lZGlhLWVsZW1lbnQtY3VycmVudC10aW1l
Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLWlu
dGVycnVwdGVkLmh0bWwgWyBGYWlsdXJlIF0KLQogZmFzdC9yZXBhaW50L2NhbnZhcy1vYmplY3Qt
Zml0Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvcmVwYWludC9jYW52YXMtcHV0SW1hZ2VEYXRhLmh0
bWwgWyBGYWlsdXJlIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24t
dGhlbi1zdG9wLmh0bWwgWyBUaW1lb3V0IF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQt
c2Vjb25kLXJlY29nbml0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLQogZmFzdC90ZXh0L2NhbnZhcy1j
b2xvci1mb250cy9maWxsLWdyYWRpZW50LUNPTFItMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBmYXN0L3RleHQvY2FudmFzLWNvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1DT0xSLTIuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9zdHJv
a2UtZ3JhZGllbnQtQ09MUi0zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvdGV4dC9j
YW52YXMtY29sb3ItZm9udHMvc3Ryb2tlLWdyYWRpZW50LUNPTFItNC5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiBmYXN0L3RleHQvY2FudmFzLWNvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1D
T0xSLTUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQorCiBodHRwL3Rlc3RzL2NhbnZhcy9jb2xv
ci1mb250cy9maWxsLWdyYWRpZW50LXNiaXgtMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBo
dHRwL3Rlc3RzL2NhbnZhcy9jb2xvci1mb250cy9maWxsLWdyYWRpZW50LXNiaXgtMy5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBodHRwL3Rlc3RzL2NhbnZhcy9jb2xvci1mb250cy9maWxsLWdy
YWRpZW50LXNiaXgtNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBodHRwL3Rlc3RzL2NhbnZh
cy9jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtc2JpeC0yLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIGh0dHAvdGVzdHMvY2FudmFzL2NvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1zYml4
LTMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9u
dHMvc3Ryb2tlLWdyYWRpZW50LXNiaXgtNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1odHRw
L3Rlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvc2VjdXJpdHkucGF0dGVybi5jYW52YXMudGltaW5n
Lmh0bWwgWyBDcmFzaCBdCi1odHRwL3Rlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvc2VjdXJpdHku
cGF0dGVybi5jcm9zcy5odG1sIFsgQ3Jhc2ggXQogaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9j
bGVhci1rZXktaGxzLWFlczEyOC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL21lZGlhL2Ns
ZWFya2V5L2NvbGxlY3Qtd2Via2l0LW1lZGlhLXNlc3Npb24uaHRtbCBbIENyYXNoIF0KIGh0dHAv
dGVzdHMvbWVkaWEvaGxzL2hscy1oZHItc3dpdGNoLmh0bWwgWyBUaW1lb3V0IF0KQEAgLTEzOSw3
ICs3Myw2IEBAIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQtcmVmZXJlci5odG1sIFsg
RmFpbHVyZSBdCiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLWRvY3VtZW50Lmh0bWwgWyBGYWlsdXJl
IF0KIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtcGxheS1zdHJlYW0tY2h1bmtlZC1pY3kuaHRtbCBb
IEZhaWx1cmUgXQogaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xz
LWxpdmUtYnJvYWRjYXN0Lmh0bWwgWyBUaW1lb3V0IF0KLW1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItYXV0by1oaWRlLmh0bWwgWyBD
cmFzaCBdCiBodHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9waXAtc3VwcG9y
dC9waXAtc3VwcG9ydC1saXZlLWJyb2FkY2FzdC5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9za2lwLWJhY2stc3VwcG9ydC9za2lwLWJhY2st
c3VwcG9ydC1idXR0b24tY2xpY2suaHRtbCBbIFRpbWVvdXQgXQogaHR0cC90ZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvc2tpcC1iYWNrLXN1cHBvcnQvc2tpcC1iYWNrLXN1cHBvcnQt
bGl2ZS1icm9hZGNhc3QuaHRtbCBbIFRpbWVvdXQgXQpAQCAtMTc3LDkgKzExMCw4IEBAIGh0dHAv
dGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxvd2VkLWNyb3Nz
b3JpZ2luLXJlZGlyZWN0Lmh0CiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1y
ZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1jcm9z
c29yaWdpbi1yZWRpcmVjdC5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dl
YmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1jcm9zc29yaWdpbi5odG1sIFsg
VGltZW91dCBdCi0KLWh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRp
by12aWRlby1kYXRhYXZhaWxhYmxlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci1hdWRpby1iaXRyYXRlLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAv
d3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxh
YmxlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVj
b3JkZXIvbXV0ZS10cmFja3MuaHRtbCBbIENyYXNoIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIv
cGF1c2UtcmVjb3JkaW5nLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTE5MCw5NCArMTIyLDEwIEBAIGh0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1pcy11c2VyLXZlcmlmeWluZy1w
bGF0Zm9ybS1hdXRoZW50aWNhdG9yCiBpbXBvcnRlZC9ibGluay9mYXN0L2NhbnZhcy9jYW52YXMt
Y2xpcC1zdGFjay1wZXJzaXN0ZW5jZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRl
ZC9ibGluay9mYXN0L2NhbnZhcy9jYW52YXMtc3RhdGUtcGVyc2lzdGVuY2Utbm8tZGlydHkuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvYmxpbmsvZmFzdC9jYW52YXMvY2FudmFz
LXVuYmFsYW5jZWQtc2F2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC9ibGlu
ay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3LXBhdHRlcm4tc2l6ZS5odG1sIFsgQ3Jhc2ggXQogCi1p
bXBvcnRlZC93M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5jYW52YXNwYXR0ZXJu
Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS5nbG9iYWxB
bHBoYS5pbWFnZXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
Y29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmNvcHkuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVk
L3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWF0
b3AuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292
ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
Y2FudmFzLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2UtaW4uaHRtbCBbIENy
YXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJu
LnNvdXJjZS1vdXQuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVy
bi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0
dGVybi5iYXNpYy5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5w
YXR0ZXJuLmJhc2ljLm5vY29udGV4dC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZh
cy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2Fu
dmFzLzJkLnBhdHRlcm4ubW9kaWZ5LmNhbnZhczEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3cz
Yy9jYW52YXMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFzMi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0
ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmJhc2ljLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQuY29vcmQx
Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9y
ZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRl
cm4ucGFpbnQubm9yZXBlYXQuY29vcmQzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2Fu
dmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmNhbnZhcy5odG1s
IFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0
aW9uLmltYWdlLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4u
cGFpbnQucmVwZWF0LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJk
LnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNj
L2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQzLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0Lm91dHNp
ZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5y
ZXBlYXR4LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRl
cm4ucGFpbnQucmVwZWF0eC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52
YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9y
dGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmJhc2ljLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5jb29yZDEu
aHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBl
YXR5Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVy
bi5yZXBlYXQuZW1wdHkuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0
dGVybi5yZXBlYXQubnVsbC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5z
aGFkb3cucGF0dGVybi5hbHBoYS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8y
ZC5zaGFkb3cucGF0dGVybi5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZh
cy8yZC5zaGFkb3cucGF0dGVybi50cmFuc3BhcmVudC4xLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRl
ZC93M2MvY2FudmFzLzJkLnNoYWRvdy5wYXR0ZXJuLnRyYW5zcGFyZW50LjIuaHRtbCBbIENyYXNo
IF0KLWltcG9ydGVkL3czYy9jYW52YXMvaW5pdGlhbC5yZXNldC5wYXR0ZXJuLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2MvY2FudmFzL3NlY3VyaXR5LnBhdHRlcm4uY2FudmFzLnRpbWluZy5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy9zZWN1cml0eS5wYXR0ZXJuLmNyb3Nz
Lmh0bWwgWyBDcmFzaCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Jh
bmdlL2dlbmVyYWwud2luZG93Lmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBGYWlsdXJlIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9jb21w
b3NpdGluZy8yZC5jb21wb3NpdGUuZ2xvYmFsQWxwaGEuY2FudmFzcGF0dGVybi5odG1sIFsgQ3Jh
c2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50
L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5pbWFnZXBhdHRlcm4uaHRtbCBb
IENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxl
bWVudC9jb21wb3NpdGluZy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uY29weS5odG1s
IFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9l
bGVtZW50L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5kZXN0aW5h
dGlvbi1hdG9wLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5w
YXR0ZXJuLmRlc3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRl
LnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1pbi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0aW5nLzJkLmNv
bXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2Utb3V0Lmh0bWwgWyBDcmFzaCBdCi1pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQt
c3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLmFuaW1hdGVkLmdpZi5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5k
LXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFu
ZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4uYmFzaWMuaW1hZ2UuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFu
ZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4uYmFzaWMubm9jb250ZXh0Lmh0bWwgWyBDcmFzaCBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmls
bC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFzaCBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmls
bC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMxLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1l
bnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTEuaHRtbCBb
IENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxl
bWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMi5odG1s
IFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9l
bGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5i
YXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5u
b3JlcGVhdC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRl
cm4ucGFpbnQubm9yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxl
cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0
cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5vdXRzaWRlLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmNhbnZh
cy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5vcmll
bnRhdGlvbi5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVy
bi5wYWludC5yZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJk
LnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1z
dHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQt
c3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDMuaHRtbCBbIENyYXNo
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9m
aWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0Lm91dHNpZGUuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5i
YXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5y
ZXBlYXR4LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVy
bi5wYWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9r
ZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwt
YW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5Lm91dHNpZGUuaHRtbCBb
IENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxl
bWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucmVwZWF0LmVtcHR5Lmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnRyYW5zZm9ybS5pZGVudGl0
eS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9lbGVtZW50L2ltYWdlLXNtb290aGluZy9pbWFnZXNtb290aGluZy5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2lt
YWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLW9yaWdpbi5zdWIuaHRtbCBbIEZhaWx1cmUgXQot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2xpbmUt
c3R5bGVzLzJkLmxpbmUuY2FwLmNsb3NlZC5odG1sIFsgQ3Jhc2ggXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3BhdGgtb2JqZWN0cy8yZC5wYXRo
LnN0cm9rZS5zY2FsZTIuaHRtbCBbIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3NoYWRvd3MvMmQuc2hhZG93LnBhdHRlcm4uYWxw
aGEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvZWxlbWVudC9zaGFkb3dzLzJkLnNoYWRvdy5wYXR0ZXJuLmJhc2ljLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
c2hhZG93cy8yZC5zaGFkb3cucGF0dGVybi50cmFuc3BhcmVudC4xLmh0bWwgWyBDcmFzaCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvc2hhZG93
cy8yZC5zaGFkb3cucGF0dGVybi50cmFuc3BhcmVudC4yLmh0bWwgWyBDcmFzaCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvbG9hZGluZy10aGUtbWVkaWEtcmVzb3VyY2UvbG9hZC1ldmVudHMtbmV0
d29ya1N0YXRlLmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wcmVzZXJ2
ZXMtcGl0Y2guaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9pbml0
aWFsLnJlc2V0LnBhdHRlcm4uaHRtbCBbIENyYXNoIF0KQEAgLTMxMCw2ICsxNTgsNyBAQCBtZWRp
YS9tZWRpYS1jb250cm9sbGVyLXRpbWUuaHRtbCBbIFRpbWVvdXQgXQogbWVkaWEvbWVkaWEtY29u
dHJvbGxlci11bnBhdXNlLmh0bWwgWyBUaW1lb3V0IF0KIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YS1zb3VyY2UtcmVzaXplLmh0bWwgWyBUaW1lb3V0IF0KIG1lZGlhL21lZGlhY2FwYWJpbGl0aWVz
L21lZGlhY2FwYWJpbGl0aWVzLXR5cGVzLmh0bWwgWyBGYWlsdXJlIF0KK21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItYXV0by1oaWRl
Lmh0bWwgWyBDcmFzaCBdCiBtZWRpYS90cmFjay9hdWRpby10cmFjay5odG1sIFsgQ3Jhc2ggXQog
bWVkaWEvdmlkZW8tY2FudmFzLWNyZWF0ZVBhdHRlcm4uaHRtbCBbIENyYXNoIF0KIG1lZGlhL3Zp
ZGVvLWNvbnRyb2xsZXItY2hpbGQtcmF0ZS5odG1sIFsgVGltZW91dCBdCkBAIC0zMjQsOSArMTcz
LDkgQEAgc3ZnL2FzLWltYWdlL3N2Zy1jYW52YXMtcGF0dGVybi13aXRoLWxpbmstdGFpbnRlZC5o
dG1sIFsgQ3Jhc2ggXQogc3ZnL2NhbnZhcy9jYW52YXMtZ2xvYmFsLWFscGhhLXN2Zy5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBzdmcvY2FudmFzL2NhbnZhcy1wYXR0ZXJuLXN2Zy5odG1sIFsg
Q3Jhc2ggXQogCi13ZWJhdWRpby9QYW5uZXIvaHJ0Zi1kYXRhYmFzZS5odG1sIFsgVGltZW91dCBd
CiB3ZWJhdWRpby9jb2RlYy10ZXN0cy9hYWMvdmJyLTEyOGticHMtNDRraHouaHRtbCBbIFRpbWVv
dXQgXQogd2ViYXVkaW8vY29kZWMtdGVzdHMvbXAzLzEyOGticHMtNDRraHouaHRtbCBbIFRpbWVv
dXQgXQord2ViYXVkaW8vUGFubmVyL2hydGYtZGF0YWJhc2UuaHRtbCBbIFRpbWVvdXQgXQogCiB3
ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXRlc3QuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2UvY2FudmFzL2RyYXctc3RhdGljLXdlYmdsLXRvLW11
bHRpcGxlLWNhbnZhcy10ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTM5OSw2OCArMjQ4LDYgQEAg
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2Jh
LXJnYmEtdW5zaWduZWRfc2hvcnRfNV8KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3VuaWZvcm1z
L3VuaWZvcm0tc2FtcGxlcnMtdGVzdC5odG1sIFsgVGltZW91dCBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvcmVhZGluZy9yZWFkLXBpeGVscy1wYWNrLXBhcmFtZXRlcnMuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMu
aHRtbCBbIFRpbWVvdXQgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBm
LXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRf
MTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxNmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxNmYtcmVk
LWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcjMyZi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjgtcmVkLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcjh1aS1yZWRfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJk
LXJnMTZmLXJnLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnMTZmLXJnLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcz
MmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmc4LXJnLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmc4dWkt
cmdfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
MmQtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
MmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRf
c2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQt
cmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiOC1yZ2ItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZ2JhMTZmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTE2Zi1yZ2JhLWhhbGZfZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcmdiYTMyZi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZh
aWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQt
cmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtc3Jn
YjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2It
ZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhcy90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjEx
Zl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjE2
Zi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtM2QtcjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMzJmLXJl
ZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yOC1yZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yOHVpLXJlZF9p
bnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmcxNmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtcmcx
NmYtcmctaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzgtcmct
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1X2Ex
LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRf
NV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjh1aS1y
Z2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0zZC1yZ2JhMTZmLXJnYmEtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhMzJmLXJnYmEtZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE0LXJnYmEtdW5z
aWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1zcmdiOC1y
Z2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3Jl
Y3RhbmdsZS90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFu
Z2xlL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jl
di5odG1sIFsgRmFpbHVyZSBdCkBAIC00NzcsMTAgKzI2NCwxMCBAQCB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnOHVpLXJnX2lu
dGVnZXItdQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVj
dGFuZ2xlL3RleC0yZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdi
MTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiMzJmLXJnYi1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVj
dGFuZ2xlL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUv
dGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rhbmds
ZS90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQt
cmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I4dWktcmdiX2lu
dGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjlfZTUtcmdiLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTQ5Miw4ICsyNzksOCBAQCB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYmE0LXJnYmEt
dW5zaWduZQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVj
dGFuZ2xlL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVj
dGFuZ2xlL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3Rl
eC0yZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90
ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1zcmdi
OF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtc3JnYjgt
cmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1y
Z2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9m
bG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9p
bnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTUxMCwxMCArMjk3LDEwIEBA
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90
ZXgtM2Qtcmc4dWktcmdfaW50ZWdlci11CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVj
dGFuZ2xlL3RleC0zZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0z
ZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiNTY1LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9y
dF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81
XzEuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJf
cmVjdGFuZ2xlL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3Jl
Y3RhbmdsZS90ZXgtM2QtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4
LTNkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgt
M2QtcmdiOV9lNS1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTI1LDggKzMxMiw3MCBA
QCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUv
dGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0
XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
c19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2Qtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVj
dGFuZ2xlL3RleC0zZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rh
bmdsZS90ZXgtM2Qtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2Ix
MGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTJkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTJkLXIxNmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxNmYtcmVkLWhhbGZfZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQt
cjMyZi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjgtcmVkLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjh1
aS1yZWRfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnMTZmLXJnLWZsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTJkLXJnMTZmLXJnLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmczMmYtcmctZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQt
cmc4LXJnLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTJkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiMTZmLXJnYi1oYWxmX2Zs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTJkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRt
bCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWdu
ZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1y
Z2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMTZmLXJnYmEtZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtMmQtcmdiYTE2Zi1yZ2JhLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTMyZi1yZ2Jh
LWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhNC1y
Z2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTgtcmdiYS11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQt
c3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUg
XQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjExZl9n
MTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2ln
bmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjE2Zi1yZWQtZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qt
cjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMzJmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yOC1y
ZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yOHVpLXJlZF9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtM2QtcmcxNmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmcxNmYtcmctaGFsZl9mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0zZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzgtcmctdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0z
ZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiMTZmLXJnYi1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0zZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiMzJmLXJnYi1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJn
YmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5
dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I4
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhMTZmLXJnYmEtaGFs
Zl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yZ2JhMzJmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTh1aS1yZ2JhX2lu
dGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2Vf
Yml0bWFwL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21f
aW1hZ2VfYml0bWFwL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8x
MWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCkBAIC01NDMsMTAgKzM5MiwxMCBAQCB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFw
L3RleC0yZC1yZzh1aS1yZwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFw
X2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9m
cm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1h
Z2VfYml0bWFwL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2lt
YWdlX2JpdG1hcC90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFw
X2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0
bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRf
NV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiNTY1LXJnYi11bnNp
Z25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I4LXJn
Yi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjh1aS1y
Z2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJk
LXJnYjlfZTUtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTU1OCw4ICs0MDcsOCBAQCB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2Vf
Yml0bWFwL3RleC0yZC1yZ2JhNC1yZwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25l
ZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYmE4LXJn
YmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2JhOHVp
LXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4
LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4
LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2Jp
dG1hcC90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2Jp
dG1hcC90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9p
bWFnZV9iaXRtYXAvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzEx
Zl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTU3NiwxMCArNDI1LDEwIEBAIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAv
dGV4LTNkLXJnOHVpLXJnCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2Vf
Yml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBf
ZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zy
b21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFn
ZV9iaXRtYXAvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1h
Z2VfYml0bWFwL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBf
ZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRt
YXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81
XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2ln
bmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjgtcmdi
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiOHVpLXJn
Yl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qt
cmdiOV9lNS1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTkxLDggKzQ0MCw4IEBAIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTNkLXJnYmE0LXJnCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
aW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVk
X3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiYTgtcmdi
YS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYmE4dWkt
cmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgt
M2Qtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgt
M2Qtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0
bWFwL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9pbnRlZ2VyLWN1YmVtYXAtdGV4dHVy
ZS1zYW1wbGluZy5odG1sIFsgQ3Jhc2ggXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3ZpZGVvL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yMTFmX2cx
MWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC02MTAsMTAgKzQ1OSwx
MCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnOHVp
LXJnX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odAogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiMTZmLXJnYi1o
YWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy92aWRlby90ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjU2NS1yZ2ItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBb
IEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0y
ZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25l
ZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQt
cmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjgtcmdiLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0yZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJn
YjlfZTUtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTYyNSw4ICs0NzQsOCBAQCB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYmE0LXJnYmEtdW5z
aWduZWRfYnl0ZS5odG1sIFsgRgogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3Zp
ZGVvL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2Jh
OC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy92aWRlby90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1zcmdiOF9hbHBo
YTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3Rl
eC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2It
aGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvdmlkZW8vdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzEx
Zl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTY0MywxMCArNDkyLDEwIEBAIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2Qtcmc4dWktcmdfaW50ZWdlci11
bnNpZ25lZF9ieXRlLmh0CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8v
dGV4LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3Rl
eC0zZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90
ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjVfYTEtcmdi
YS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81
XzEuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3Zp
ZGVvL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I1NjUtcmdiLXVu
c2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNk
LXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiOV9lNS1yZ2ItZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNjU4LDggKzUwNyw4IEBAIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJn
YmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvdmlkZW8vdGV4LTNkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0z
ZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3ZpZGVvL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1y
MTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdi
LWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2lu
dF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNjc2LDEwICs1MjUsMTAgQEAg
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmc4
dWktcmdfaW50ZWdlci11bnNpZ25lZF8KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdi
MTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZh
cy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjU2NS1y
Z2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81
XzEuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dl
YmdsX2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiOC1yZ2It
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
d2ViZ2xfY2FudmFzL3RleC0yZC1yZ2JhMTZmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQpA
QCAtNjg5LDggKzUzOCw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJn
bF9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfYnl0ZS5oCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2ln
bmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJn
bF9jYW52YXMvdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZh
cy90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtc3JnYjhfYWxw
aGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
d2ViZ2xfY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgt
M2QtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcjExZl9nMTFm
X2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQpA
QCAtNzA3LDEwICs1NTYsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dl
YmdsX2NhbnZhcy90ZXgtM2Qtcmc4dWktcmdfaW50ZWdlci11bnNpZ25lZF8KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjE2Zi1yZ2ItZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dl
YmdsX2NhbnZhcy90ZXgtM2QtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJn
YjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9j
YW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgt
M2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiNV9hMS1yZ2Jh
LXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRt
bCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2Nh
bnZhcy90ZXgtM2QtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I4dWkt
cmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2JhMTZmLXJnYmEtZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNzIwLDEyICs1NjksMTIgQEAgd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25l
ZF9ieXRlLmgKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMv
dGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1y
Z2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVn
ZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xf
Y2FudmFzL3RleC0zZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4
LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsL21hbnkt
Y29udGV4dHMtYWNjZXNzLWFmdGVyLWxvc3MuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvbWF4LWFj
dGl2ZS1jb250ZXh0cy1jb25zb2xlLXdhcm5pbmcuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvbWF4
LWFjdGl2ZS1jb250ZXh0cy1nYy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNv
bnRleHRzLW9sZGVzdC1jb250ZXh0LWxvc3QuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvbWF4LWFj
dGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVsdC5odG1sIFsgVGlt
ZW91dCBdCiAKLXdlYnJ0Yy9hdWRpby12aWRlby1lbGVtZW50LXBsYXlpbmcuaHRtbCBbIEZhaWx1
cmUgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dlYnJ0Yy9hdWRpby12aWRlby1lbGVt
ZW50LXBsYXlpbmcuaHRtbCBbIEZhaWx1cmUgXQo=
</data>
<flag name="commit-queue"
          id="437590"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419375</attachid>
            <date>2021-02-05 02:06:37 -0800</date>
            <delta_ts>2021-02-05 11:22:07 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-219468-20210205020636.patch</filename>
            <type>text/plain</type>
            <size>121082</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRjZTJmNzdhZTU3MDQ1
YTAxMjUxMzAwNjFlYjE0ZDA5MWQxNzk3Ny4uNzljMjFjNzE3ZjIyZTg0YjUzYzZlNWFkOWE2ZmU3
ZGYyM2VkYjFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIxLTAyLTA1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc106
IEltcGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm9yQ2Fu
dmFzUGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0Nv
bnRleHRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0
ZTo6R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhdHRlcm46OlBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6c2V0VGls
ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OnRpbGVJbWFnZSBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oOgorICAgICAgICAoV2ViQ29yZTo6
UGF0dGVybjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpGaWxsU291cmNlOjpGaWxsU291cmNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpzaG91bGREdW1wRm9yRmxhZ3MpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmFwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpzYWZlQ29weSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5
dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjpTZXRJbmxp
bmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3RhdGU6
OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6U2V0U3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjphcHBseSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJ
bmxpbmVGaWxsR3JhZGllbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yOjphcHBseSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRT
dGF0ZTo6c3RhdGVDaGFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldFN0YXRlOjpzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6
U2V0SW5saW5lRmlsbENvbG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6U2V0SW5saW5lU3Ry
b2tlQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElu
bGluZVN0cm9rZUNvbG9yOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29udGFpbnNPbmx5SW5saW5lU3RhdGVD
aGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5k
U3RhdGVDaGFuZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6d2lsbEFwcGVuZEl0ZW1PZlR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmFwcGx5U2V0U3RhdGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRVRpbGU6OnBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXR0ZXJuRm9yRGVzY3JpcHRpb24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKToKKwog
MjAyMS0wMi0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
TWFrZSBzdXJlIEdQVVByb2Nlc3MgTWVkaWFSZWNvcmRlciBoYW5kbGVzIGNvcnJlY3RseSBtdXRl
ZCB0cmFja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggOTVkOWEyYTkyZjMwMWZhNGY0MTcyYTBiOTZmMGQ2MGU0ZmE0
YjVjZi4uYjNlMzFjM2FhMDY1MzliMzU5NzUzNjc3MDJiOWNmNTBkN2QxZmNmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMS0wMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFw
cGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBJbXBsZW1lbnQgU2V0U3RhdGUgRGlz
cGxheUxpc3QgaXRlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWNvZGVJdGVtKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8SW1hZ2VIYW5kbGU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisKIDIwMjEtMDItMDMgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBHUFVQ
cm9jZXNzIE1lZGlhUmVjb3JkZXIgaGFuZGxlcyBjb3JyZWN0bHkgbXV0ZWQgdHJhY2tzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwCmluZGV4IDBjODVmOGE4
Mzc2Nzk2NmJhMjZiNWMzMzNlZDYwYzAxYTUwYWExMTYuLmU1ZjIyMTBhZTk4NzMzZTk4NGFiNTg0
ZjZmOWEzYzg0N2I1YTgwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDYW52YXMuY3BwCkBAIC0xMjAyLDkgKzEyMDIsMTAgQEAgUmVmPEpTT046OkFycmF5T2Y8SlNP
Tjo6VmFsdWU+PiBJbnNwZWN0b3JDYW52YXM6OmJ1aWxkQXJyYXlGb3JDYW52YXNHcmFkaWVudChj
b24KIAogUmVmPEpTT046OkFycmF5T2Y8SlNPTjo6VmFsdWU+PiBJbnNwZWN0b3JDYW52YXM6OmJ1
aWxkQXJyYXlGb3JDYW52YXNQYXR0ZXJuKGNvbnN0IENhbnZhc1BhdHRlcm4mIGNhbnZhc1BhdHRl
cm4pCiB7Ci0gICAgSW1hZ2UmIHRpbGVJbWFnZSA9IGNhbnZhc1BhdHRlcm4ucGF0dGVybigpLnRp
bGVJbWFnZSgpOworICAgIGF1dG8mIHRpbGVJbWFnZSA9IGNhbnZhc1BhdHRlcm4ucGF0dGVybigp
LnRpbGVJbWFnZSgpOworICAgIEZsb2F0UmVjdCByZWN0ID0geyB7IH0sIHRpbGVJbWFnZS5zaXpl
KCkgfTsKICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0aWxlSW1h
Z2Uuc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKLSAgICBpbWFnZUJ1ZmZl
ci0+Y29udGV4dCgpLmRyYXdJbWFnZSh0aWxlSW1hZ2UsIEZsb2F0UG9pbnQoMCwgMCkpOworICAg
IGltYWdlQnVmZmVyLT5jb250ZXh0KCkuZHJhd05hdGl2ZUltYWdlKHRpbGVJbWFnZSwgdGlsZUlt
YWdlLnNpemUoKSwgcmVjdCwgcmVjdCk7CiAKICAgICBTdHJpbmcgcmVwZWF0OwogICAgIGJvb2wg
cmVwZWF0WCA9IGNhbnZhc1BhdHRlcm4ucGF0dGVybigpLnJlcGVhdFgoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4
IDJhMDY3NWExMzdlYTIyNjk0ZmIwZGFjZmE1Y2RlZDEzNzE2MTljM2IuLjFlNTk0Y2JlZTc3Yjk2
NzU1ZjUzYjlmOGY0M2E5Y2ZiOWQ1NjYzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzcsMjYgKzc3LDYgQEAg
cHJpdmF0ZToKICAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6ZmxhZykgJiYgKG1fc3RhdGUucHJvcGVydHkgIT0gc3RhdGUucHJvcGVydHkpKSBcCiAg
ICAgICAgIGNoYW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6ZmxhZyk7CiAKLUdy
YXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZSgpCi0gICAgOiBzaG91bGRB
bnRpYWxpYXModHJ1ZSkKLSAgICAsIHNob3VsZFNtb290aEZvbnRzKHRydWUpCi0gICAgLCBzaG91
bGRTdWJwaXhlbFF1YW50aXplRm9udHModHJ1ZSkKLSAgICAsIHNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zKGZhbHNlKQotI2lmIFVTRShDRykKLSAgICAvLyBDb3JlIEdyYXBoaWNzIGluY29ycmVjdGx5
IHJlbmRlcnMgc2hhZG93cyB3aXRoIHJhZGl1cyA+IDhweCAoPHJkYXI6Ly9wcm9ibGVtLzgxMDM0
NDI+KSwKLSAgICAvLyBidXQgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGlzIGJ1Z2d5IGJlaGF2aW9y
IGZvciBjYW52YXMgYW5kIC13ZWJraXQtYm94LXNoYWRvdy4KLSAgICAsIHNoYWRvd3NVc2VMZWdh
Y3lSYWRpdXMoZmFsc2UpCi0jZW5kaWYKLSAgICAsIGRyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKQot
ewotfQotCi1HcmFwaGljc0NvbnRleHRTdGF0ZTo6fkdyYXBoaWNzQ29udGV4dFN0YXRlKCkgPSBk
ZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKGNvbnN0
IEdyYXBoaWNzQ29udGV4dFN0YXRlJikgPSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3RhdGU6
OkdyYXBoaWNzQ29udGV4dFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpID0gZGVmYXVsdDsK
LUdyYXBoaWNzQ29udGV4dFN0YXRlJiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6b3BlcmF0b3I9KGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJikgPSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpvcGVyYXRvcj0oR3JhcGhpY3NDb250ZXh0U3RhdGUm
JikgPSBkZWZhdWx0OwotCiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBH
cmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZTo6Y2hhbmdlc0Zyb21TdGF0ZShjb25zdCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSYgc3RhdGUpIGNvbnN0CiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDQwNjQyOGU4NGJmNDBkNmM1
ZTRmMTVhYWZlZGMwZTE4NmI4MzE2MDIuLmIyN2M3ZmFjYWUzNzIzZGEyMzc3MWMwZDA5M2EzYTRk
MDE5YTIxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGFzaEFycmF5Lmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNs
dWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJ
bWFnZS5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKQEAgLTc5LDcgKzgwLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBGbG9h
dFJvdW5kZWRSZWN0OwotY2xhc3MgR3JhZGllbnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBs
OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOwogY2xhc3MgSW1hZ2VCdWZm
ZXI7CkBAIC0xNTAsMTYgKzE1MCw3IEBAIE9wdGlvbmFsPERvY3VtZW50TWFya2VyTGluZVN0eWxl
PiBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAgcmV0
dXJuIHt7ICptb2RlLCAqc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgfX07CiB9CiAKLXN0cnVjdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0
U3RhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB+R3JhcGhpY3NDb250ZXh0U3RhdGUoKTsKLQot
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJik7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3RhdGUoR3JhcGhpY3NDb250ZXh0U3Rh
dGUmJik7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSYgb3BlcmF0b3I9KGNvbnN0IEdyYXBo
aWNzQ29udGV4dFN0YXRlJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIG9wZXJhdG9yPShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKTsKLQorc3RydWN0IEdyYXBoaWNz
Q29udGV4dElubGluZVN0YXRlIHsKICAgICBlbnVtIENoYW5nZSA6IHVpbnQzMl90IHsKICAgICAg
ICAgU3Ryb2tlR3JhZGllbnRDaGFuZ2UgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAogICAg
ICAgICBTdHJva2VQYXR0ZXJuQ2hhbmdlICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEsCkBA
IC0xODYsMTIgKzE3NywyMCBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogI2VuZGlm
CiAgICAgfTsKICAgICB1c2luZyBTdGF0ZUNoYW5nZUZsYWdzID0gT3B0aW9uU2V0PENoYW5nZT47
Ci0KLSAgICBSZWZQdHI8R3JhZGllbnQ+IHN0cm9rZUdyYWRpZW50OwotICAgIFJlZlB0cjxQYXR0
ZXJuPiBzdHJva2VQYXR0ZXJuOwogICAgIAotICAgIFJlZlB0cjxHcmFkaWVudD4gZmlsbEdyYWRp
ZW50OwotICAgIFJlZlB0cjxQYXR0ZXJuPiBmaWxsUGF0dGVybjsKKyAgICBHcmFwaGljc0NvbnRl
eHRJbmxpbmVTdGF0ZSgpCisgICAgICAgIDogc2hvdWxkQW50aWFsaWFzKHRydWUpCisgICAgICAg
ICwgc2hvdWxkU21vb3RoRm9udHModHJ1ZSkKKyAgICAgICAgLCBzaG91bGRTdWJwaXhlbFF1YW50
aXplRm9udHModHJ1ZSkKKyAgICAgICAgLCBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyhmYWxzZSkK
KyNpZiBVU0UoQ0cpCisgICAgICAgIC8vIENvcmUgR3JhcGhpY3MgaW5jb3JyZWN0bHkgcmVuZGVy
cyBzaGFkb3dzIHdpdGggcmFkaXVzID4gOHB4ICg8cmRhcjovL3Byb2JsZW0vODEwMzQ0Mj4pLAor
ICAgICAgICAvLyBidXQgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGlzIGJ1Z2d5IGJlaGF2aW9yIGZv
ciBjYW52YXMgYW5kIC13ZWJraXQtYm94LXNoYWRvdy4KKyAgICAgICAgLCBzaGFkb3dzVXNlTGVn
YWN5UmFkaXVzKGZhbHNlKQorI2VuZGlmCisgICAgICAgICwgZHJhd0x1bWluYW5jZU1hc2soZmFs
c2UpCisgICAgeworICAgIH0KIAogICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CiAKQEAgLTIw
MCwxMCArMTk5LDYgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKIAogICAgIFRleHRE
cmF3aW5nTW9kZUZsYWdzIHRleHREcmF3aW5nTW9kZSB7IFRleHREcmF3aW5nTW9kZTo6RmlsbCB9
OwogCi0gICAgQ29sb3Igc3Ryb2tlQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKLSAgICBDb2xvciBm
aWxsQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKLSAgICBDb2xvciBzaGFkb3dDb2xvcjsKLQogICAg
IEFmZmluZVRyYW5zZm9ybSBzdHJva2VHcmFkaWVudFNwYWNlVHJhbnNmb3JtOwogICAgIEFmZmlu
ZVRyYW5zZm9ybSBmaWxsR3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKICAgICAKQEAgLTIyOCw2ICsy
MjMsMjQgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKICNlbmRpZgogfTsKIAorc3Ry
dWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIDogcHVibGljIEdyYXBoaWNzQ29udGV4dElubGluZVN0
YXRlIHsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSgpID0gZGVmYXVsdDsKKyAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSYgb3RoZXIpCisg
ICAgICAgIDogR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUob3RoZXIpCisgICAgeworICAgIH0K
KworICAgIFJlZlB0cjxHcmFkaWVudD4gc3Ryb2tlR3JhZGllbnQ7CisgICAgUmVmUHRyPFBhdHRl
cm4+IHN0cm9rZVBhdHRlcm47CisKKyAgICBSZWZQdHI8R3JhZGllbnQ+IGZpbGxHcmFkaWVudDsK
KyAgICBSZWZQdHI8UGF0dGVybj4gZmlsbFBhdHRlcm47CisKKyAgICBDb2xvciBzdHJva2VDb2xv
ciB7IENvbG9yOjpibGFjayB9OworICAgIENvbG9yIGZpbGxDb2xvciB7IENvbG9yOjpibGFjayB9
OworICAgIENvbG9yIHNoYWRvd0NvbG9yOworfTsKKwogc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlQ2hhbmdlIHsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSgpID0gZGVmYXVsdDsK
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggNDM2YjM3ZDZjOGVj
NmYwMGY0ZmViNGRkMzZmNGEyOTIzYzdmOTZlYS4uZGEwMTBmM2ZkY2QwNjgwNTYyOGI4NjBjYWUz
MmJkOWJlOWE0NTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CkBAIC0yMTAsMTEgKzIxMCw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVy
PiBtX2FuaW1hdGlvblN0YXJ0VGltZXI7CiB9OwogCi1jbGFzcyBJbWFnZUhhbmRsZSB7Ci1wdWJs
aWM6Ci0gICAgUmVmUHRyPEltYWdlPiBpbWFnZTsKLX07Ci0KIFdURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBJbWFnZSYpOwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
YXR0ZXJuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3Bw
CmluZGV4IDc5NmEwN2MxODZiNjJmZjRlNmI2ZWEyNjEwN2ZmOWZjNGM0MzhlNzEuLmE0MTM0OTY1
NTZjMmQyNmFhNTY2MDI0ZGU3OGFiMzA5YzkzOGJkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCkBAIC0yNywyNCArMjcsNjIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAKKyNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPFBhdHRlcm4+IFBhdHRlcm46OmNyZWF0ZShSZWY8
SW1hZ2U+JiYgdGlsZUltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSkKK3sKKyAgICBp
ZiAoYXV0byBuYXRpdmVJbWFnZSA9IHRpbGVJbWFnZS0+bmF0aXZlSW1hZ2UoKSkKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF0dGVybihuYXRpdmVJbWFnZS5yZWxlYXNlTm9uTnVsbCgp
LCByZXBlYXRYLCByZXBlYXRZKSk7CisKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZm
ZXI6OmNyZWF0ZSh0aWxlSW1hZ2UtPnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRl
ZCk7CisgICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3SW1hZ2UodGlsZUltYWdlLCBGbG9h
dFBvaW50KDAsIDApKTsKKworICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lu
a0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKGltYWdlQnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGF0dGVybihuYXRpdmVJbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCByZXBlYXRYLCBy
ZXBlYXRZKSk7Cit9CisKK1JlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVhdGUoUmVmPE5hdGl2ZUlt
YWdlPiYmIHRpbGVJbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUGF0dGVybihXVEZNb3ZlKHRpbGVJbWFnZSksIHJlcGVhdFgsIHJl
cGVhdFkpKTsKIH0KIAotUGF0dGVybjo6UGF0dGVybihSZWY8SW1hZ2U+JiYgaW1hZ2UsIGJvb2wg
cmVwZWF0WCwgYm9vbCByZXBlYXRZKQorUmVmPFBhdHRlcm4+IFBhdHRlcm46OmNyZWF0ZShib29s
IHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuU3Bh
Y2VUcmFuc2Zvcm1hdGlvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXR0ZXJuKHJl
cGVhdFgsIHJlcGVhdFksIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKSk7Cit9CisKK1BhdHRl
cm46OlBhdHRlcm4oUmVmPE5hdGl2ZUltYWdlPiYmIGltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wg
cmVwZWF0WSkKICAgICA6IG1fdGlsZUltYWdlKFdURk1vdmUoaW1hZ2UpKQogICAgICwgbV9yZXBl
YXRYKHJlcGVhdFgpCiAgICAgLCBtX3JlcGVhdFkocmVwZWF0WSkKIHsKIH0KIAorUGF0dGVybjo6
UGF0dGVybihib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikKKyAgICA6IG1fcmVwZWF0WChyZXBlYXRYKQor
ICAgICwgbV9yZXBlYXRZKHJlcGVhdFkpCisgICAgLCBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0
aW9uKHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQoreworfQorCiBQYXR0ZXJuOjp+UGF0dGVy
bigpID0gZGVmYXVsdDsKIAordm9pZCBQYXR0ZXJuOjpzZXRUaWxlSW1hZ2UoUmVmPE5hdGl2ZUlt
YWdlPiYmIHRpbGVJbWFnZSkKK3sKKyAgICBBU1NFUlQoIW1fdGlsZUltYWdlKTsKKyAgICBtX3Rp
bGVJbWFnZSA9IFdURk1vdmUodGlsZUltYWdlKTsKK30KKworTmF0aXZlSW1hZ2UmIFBhdHRlcm46
OnRpbGVJbWFnZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fdGlsZUltYWdlKTsKKyAgICByZXR1
cm4gKm1fdGlsZUltYWdlOworfQorCiB2b2lkIFBhdHRlcm46OnNldFBhdHRlcm5TcGFjZVRyYW5z
Zm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQog
ewogICAgIG1fcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24gPSBwYXR0ZXJuU3BhY2VUcmFuc2Zv
cm1hdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bh
dHRlcm4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAppbmRl
eCAyYTU2M2RhMjYxN2QxYjA0MjQ4YjkwYWIwNjM5ZGIyY2FmOWE4OGMwLi5mOGUzMmUxYWUyMzkw
ZmM0ODE1MWJiNzg3YTUyZTJjYzQwNDgyOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5oCkBAIC01MywxNCArNTMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3Mg
SW1hZ2U7Ci1jbGFzcyBJbWFnZUhhbmRsZTsKIAogY2xhc3MgUGF0dGVybiBmaW5hbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFBhdHRlcm4+IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShSZWY8SW1hZ2U+JiYgdGlsZUltYWdlLCBib29sIHJlcGVh
dFgsIGJvb2wgcmVwZWF0WSk7CisgICAgc3RhdGljIFJlZjxQYXR0ZXJuPiBjcmVhdGUoUmVmPElt
YWdlPiYmIHRpbGVJbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpOworICAgIHN0YXRp
YyBSZWY8UGF0dGVybj4gY3JlYXRlKFJlZjxOYXRpdmVJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wg
cmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGF0dGVybigpOwog
Ci0gICAgSW1hZ2UmIHRpbGVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZUltYWdlLmdldCgp
OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUaWxlSW1hZ2UoUmVmPE5hdGl2ZUltYWdl
PiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBOYXRpdmVJbWFnZSYgdGlsZUltYWdlKCkgY29uc3Q7
CiAKICAgICAvLyBQYXR0ZXJuIHNwYWNlIGlzIGFuIGFic3RyYWN0IHNwYWNlIHRoYXQgbWFwcyB0
byB0aGUgZGVmYXVsdCB1c2VyIHNwYWNlIGJ5IHRoZSB0cmFuc2Zvcm1hdGlvbiAndXNlclNwYWNl
VHJhbnNmb3JtYXRpb24nCiAjaWYgIVVTRShESVJFQ1QyRCkKQEAgLTc3LDIwICs3OCwyMCBAQCBw
dWJsaWM6CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJlZjxQ
YXR0ZXJuPj4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0ZToKLSAgICBQYXR0ZXJuKFJlZjxJ
bWFnZT4mJiwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWY8UGF0dGVybj4gY3JlYXRlKGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZLCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uID0geyB9KTsK
IAotICAgIFJlZjxJbWFnZT4gbV90aWxlSW1hZ2U7Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG1fcGF0
dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CisgICAgUGF0dGVybihSZWY8TmF0aXZlSW1hZ2U+JiYs
IGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBQYXR0ZXJuKGJvb2wgcmVwZWF0WCwg
Ym9vbCByZXBlYXRZLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKKworICAgIFJlZlB0cjxOYXRp
dmVJbWFnZT4gbV90aWxlSW1hZ2U7CiAgICAgYm9vbCBtX3JlcGVhdFg7CiAgICAgYm9vbCBtX3Jl
cGVhdFk7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1fcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247
CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQYXR0ZXJuOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBJbWFnZUhhbmRsZSBpbWFnZUhhbmRsZTsKLSAg
ICBpbWFnZUhhbmRsZS5pbWFnZSA9IG1fdGlsZUltYWdlLnB0cigpOwotICAgIGVuY29kZXIgPDwg
aW1hZ2VIYW5kbGU7CiAgICAgZW5jb2RlciA8PCBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9u
OwogICAgIGVuY29kZXIgPDwgbV9yZXBlYXRYOwogICAgIGVuY29kZXIgPDwgbV9yZXBlYXRZOwpA
QCAtOTksMTEgKzEwMCw2IEBAIHZvaWQgUGF0dGVybjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogT3B0aW9uYWw8UmVmPFBhdHRlcm4+PiBQ
YXR0ZXJuOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBPcHRpb25hbDxJbWFnZUhh
bmRsZT4gaW1hZ2VIYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBpbWFnZUhhbmRsZTsKLSAgICBpZiAo
IWltYWdlSGFuZGxlKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgT3B0aW9u
YWw8QWZmaW5lVHJhbnNmb3JtPiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKICAgICBkZWNv
ZGVyID4+IHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOwogICAgIGlmICghcGF0dGVyblNwYWNl
VHJhbnNmb3JtYXRpb24pCkBAIC0xMTksOSArMTE1LDcgQEAgT3B0aW9uYWw8UmVmPFBhdHRlcm4+
PiBQYXR0ZXJuOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIXJlcGVhdFkpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBhdXRvIHBhdHRlcm4gPSBQYXR0ZXJu
OjpjcmVhdGUoaW1hZ2VIYW5kbGUtPmltYWdlLnJlbGVhc2VOb25OdWxsKCksICpyZXBlYXRYLCAq
cmVwZWF0WSk7Ci0gICAgcGF0dGVybi0+c2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKCpwYXR0ZXJu
U3BhY2VUcmFuc2Zvcm1hdGlvbik7Ci0gICAgcmV0dXJuIHBhdHRlcm47CisgICAgcmV0dXJuIFBh
dHRlcm46OmNyZWF0ZSgqcmVwZWF0WCwgKnJlcGVhdFksICpwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1h
dGlvbik7CiB9CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCmluZGV4IDczMjBk
YTFjYmZlOTI4NWZkMTI2ZjAwMjQxNDM4YzRkYmEzOWVjYzkuLjdmYWU3NzdjMzk2NmI0YzQ4NmRl
MjIzMmIxOTExMzIzMWZkOTJkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApAQCAtNTY3LDcgKzU2
Nyw3IEBAIEZpbGxTb3VyY2U6OkZpbGxTb3VyY2UoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUm
IHN0YXRlKQogICAgICAgICBwYXR0ZXJuLm9iamVjdCA9IGFkb3B0UmVmKHN0YXRlLmZpbGxQYXR0
ZXJuLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oQWZmaW5lVHJhbnNmb3JtKCkpKTsKIAogICAgICAg
ICBhdXRvJiBwYXR0ZXJuSW1hZ2UgPSBzdGF0ZS5maWxsUGF0dGVybi0+dGlsZUltYWdlKCk7Ci0g
ICAgICAgIHBhdHRlcm4uc2l6ZSA9IEZsb2F0U2l6ZShwYXR0ZXJuSW1hZ2Uud2lkdGgoKSwgcGF0
dGVybkltYWdlLmhlaWdodCgpKTsKKyAgICAgICAgcGF0dGVybi5zaXplID0gcGF0dGVybkltYWdl
LnNpemUoKTsKICAgICAgICAgcGF0dGVybi50cmFuc2Zvcm0gPSBzdGF0ZS5maWxsUGF0dGVybi0+
cGF0dGVyblNwYWNlVHJhbnNmb3JtKCk7CiAgICAgICAgIHBhdHRlcm4ucmVwZWF0WCA9IHN0YXRl
LmZpbGxQYXR0ZXJuLT5yZXBlYXRYKCk7CiAgICAgICAgIHBhdHRlcm4ucmVwZWF0WSA9IHN0YXRl
LmZpbGxQYXR0ZXJuLT5yZXBlYXRZKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcAppbmRleCA1NjBmNzQ3YThmYjY0
ODFiZTRhMzAxODU4NTAwYWE5ZmExNjBmNzg2Li4xMjM0MjQ3NGE2NTE4YjNmZTBkOTU1N2ZjM2Zj
YzAyMjc0YjhjYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKQEAgLTM1LDExICszNSwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNhaXJvX3BhdHRlcm5fdCogUGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1Q
YXR0ZXJuKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIGNvbnN0CiB7Ci0gICAgYXV0byBuYXRpdmVJ
bWFnZSA9IHRpbGVJbWFnZSgpLm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgaWYg
KCFuYXRpdmVJbWFnZSkKKyAgICBQbGF0Zm9ybUltYWdlUHRyIHBsYXRmb3JtSW1hZ2UgPSB0aWxl
SW1hZ2UoKS5wbGF0Zm9ybUltYWdlKCk7CisgICAgaWYgKCFwbGF0Zm9ybUltYWdlKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVybiA9IGNhaXJv
X3BhdHRlcm5fY3JlYXRlX2Zvcl9zdXJmYWNlKG5hdGl2ZUltYWdlLT5wbGF0Zm9ybUltYWdlKCku
Z2V0KCkpOworICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVybiA9IGNhaXJvX3BhdHRlcm5fY3Jl
YXRlX2Zvcl9zdXJmYWNlKHBsYXRmb3JtSW1hZ2UuZ2V0KCkpOwogCiAgICAgLy8gY2Fpcm8gbWVy
Z2VzIHBhdHRlciBzcGFjZSBhbmQgdXNlciBzcGFjZSBpdHNlbGYKICAgICBjYWlyb19tYXRyaXhf
dCBtYXRyaXggPSB0b0NhaXJvTWF0cml4KG1fcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNH
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAK
aW5kZXggNjk1NGM1NjY1NzBhZDdhZTZjMWU3NjBmMDc4N2QzNzcwYWNhYTY5NC4uZWUxNzU2NDA5
YWNiOGU3ZGJkNDk3NzJmNDQyMGVjOTBjYzAwYjQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCkBAIC01NywxNiArNTcsMTMgQEAg
c3RhdGljIHZvaWQgcGF0dGVyblJlbGVhc2VDYWxsYmFjayh2b2lkKiBpbmZvKQogCiBDR1BhdHRl
cm5SZWYgUGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgdXNlclNwYWNlVHJhbnNmb3JtYXRpb24pIGNvbnN0CiB7Ci0gICAgRmxvYXRSZWN0IHRpbGVS
ZWN0ID0gdGlsZUltYWdlKCkucmVjdCgpOworICAgIEZsb2F0UmVjdCB0aWxlUmVjdCA9IHsgeyB9
LCB0aWxlSW1hZ2UoKS5zaXplKCkgfTsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJh
bnNmb3JtID0gdXNlclNwYWNlVHJhbnNmb3JtYXRpb24gKiBtX3BhdHRlcm5TcGFjZVRyYW5zZm9y
bWF0aW9uOwogICAgIHBhdHRlcm5UcmFuc2Zvcm0uc2NhbGVOb25Vbmlmb3JtKDEsIC0xKTsKICAg
ICBwYXR0ZXJuVHJhbnNmb3JtLnRyYW5zbGF0ZSgwLCAtdGlsZVJlY3QuaGVpZ2h0KCkpOwogCi0g
ICAgUGxhdGZvcm1JbWFnZVB0ciBwbGF0Zm9ybUltYWdlOwotICAgIGlmIChhdXRvIG5hdGl2ZUlt
YWdlID0gdGlsZUltYWdlKCkubmF0aXZlSW1hZ2UoKSkKLSAgICAgICAgcGxhdGZvcm1JbWFnZSA9
IG5hdGl2ZUltYWdlLT5wbGF0Zm9ybUltYWdlKCk7Ci0gICAgCisgICAgUGxhdGZvcm1JbWFnZVB0
ciBwbGF0Zm9ybUltYWdlID0gdGlsZUltYWdlKCkucGxhdGZvcm1JbWFnZSgpOwogICAgIGlmICgh
cGxhdGZvcm1JbWFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3QuY3BwCmluZGV4IGQxNTNkZmE0NWMyMWFkODczZTRkNDg0NjcxZjNkMDRhY2I3NDg1NGIu
LjUyZTExOGRjOWMwMzQ4MTU0NjIzMmIxZWU1NWNjZWZiMzhmODZjYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0LmNwcApAQCAtOTEsMTAgKzkxLDEwIEBAIGJvb2wgRGlzcGxheUxpc3Q6OnNob3Vs
ZER1bXBGb3JGbGFncyhBc1RleHRGbGFncyBmbGFncywgSXRlbUhhbmRsZSBpdGVtKQogICAgICAg
ICBpZiAoIShmbGFncyAmIEFzVGV4dEZsYWc6OkluY2x1ZGVzUGxhdGZvcm1PcGVyYXRpb25zKSkg
ewogICAgICAgICAgICAgY29uc3QgYXV0byYgc3RhdGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+
KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogZm9yIG5vdywgb25seSBkcm9wIHRoZSBpdGVtIGlm
IHRoZSBvbmx5IHN0YXRlLWNoYW5nZSBmbGFncyBhcmUgcGxhdGZvcm0tc3BlY2lmaWMuCi0gICAg
ICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQorICAgICAgICAg
ICAgaWYgKHN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmIChzdGF0ZUl0ZW0uc3RhdGUo
KS5tX2NoYW5nZUZsYWdzID09IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1
YW50aXplRm9udHNDaGFuZ2UpCisgICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlQ2hhbmdl
KCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxR
dWFudGl6ZUZvbnRzQ2hhbmdlKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKQEAgLTIwMywxNiArMjAzLDEyIEBAIHZvaWQgRGlzcGxheUxp
c3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJldHVybiBhcHBlbmQ8Q29uY2F0
ZW5hdGVDVE0+KGl0ZW0uZ2V0PENvbmNhdGVuYXRlQ1RNPigpKTsKICAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRDVE06CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0Q1RNPihpdGVtLmdldDxTZXRDVE0+
KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAg
cmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KGl0ZW0uZ2V0PFNldElubGluZUZp
bGxHcmFkaWVudD4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgot
ICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oaXRlbS5nZXQ8U2V0SW5s
aW5lRmlsbENvbG9yPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xv
cjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oaXRlbS5nZXQ8
U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRo
aWNrbmVzczoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KGl0ZW0u
Z2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5l
U3RhdGU6CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lU3RhdGU+KGl0ZW0uZ2V0PFNl
dElubGluZVN0YXRlPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKICAgICAgICAg
cmV0dXJuIGFwcGVuZDxTZXRTdGF0ZT4oaXRlbS5nZXQ8U2V0U3RhdGU+KCkpOworICAgIGNhc2Ug
SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRT
dHJva2VUaGlja25lc3M+KGl0ZW0uZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKSk7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRMaW5lQ2Fw
PihpdGVtLmdldDxTZXRMaW5lQ2FwPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFz
aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggNTBj
OGQ4Zjc1NzdhMTY3MDVlY2Y4NTVhZDE2OTgxOGI2ZGY5OGJiYS4uOWI2YWViZWNlYzg1MjY3ZGI2
ZmE3Zjg2M2VkNTBiZDUwMWFjZDFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5jcHAKQEAgLTcyLDI2ICs3MiwxOCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgZ2V0PFNldENUTT4oKS5hcHBseShj
b250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ6IHsKLSAgICAgICAgZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4o
KS5hcHBseShjb250ZXh0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogewor
ICAgICAgICBnZXQ8U2V0SW5saW5lU3RhdGU+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7Ci0g
ICAgICAgIGdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6
IHsKLSAgICAgICAgZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpLmFwcGx5KGNvbnRleHQpOwor
ICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9r
ZVRoaWNrbmVzczogewogICAgICAgICBnZXQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigpLmFwcGx5KGNv
bnRleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0
YXRlOiB7Ci0gICAgICAgIGdldDxTZXRTdGF0ZT4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7CiAgICAgICAg
IGdldDxTZXRMaW5lQ2FwPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CkBAIC0x
MjEsNyArMTEzLDcgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRv
SW1hZ2VCdWZmZXI6IHsKLSAgICAgICAgZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpLmFwcGx5KGNv
bnRleHQpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOiB7CkBAIC0xNDAsMTUgKzEz
MiwxNSBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNl
IEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6IHsKLSAgICAgICAgZ2V0PERyYXdJbWFnZUJ1ZmZl
cj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOiB7
Ci0gICAgICAgIGdldDxEcmF3TmF0aXZlSW1hZ2U+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2Ug
SXRlbVR5cGU6OkRyYXdQYXR0ZXJuOiB7Ci0gICAgICAgIGdldDxEcmF3UGF0dGVybj4oKS5hcHBs
eShjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1JlY3Q6IHsKQEAgLTQ4NiwxNiArNDc4
LDggQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0Q1RNPjo6dmFsdWUpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogewot
ICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJ
bmxpbmVGaWxsQ29sb3I+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxHcmFkaWVudD46
OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVTdHJva2VDb2xvcjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlh
bGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdHJva2VDb2xvcj46OnZhbHVlKTsKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6
aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdGF0ZT46OnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7CkBAIC02
NjIsMTIgKzY0Niw4IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNvcHkoSXRlbUhhbmRsZSBkZXN0
aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNjYWxlPigqdGhpcywgaXRl
bU9mZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1cm4gY29w
eUludG88U2V0Q1RNPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lRmlsbENvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lRmlsbENv
bG9yPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bEdyYWRpZW50OgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lRmlsbEdyYWRpZW50
PigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tl
Q29sb3I6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKnRo
aXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOgorICAg
ICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lU3RhdGU+KCp0aGlzLCBpdGVtT2Zmc2V0KTsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1cm4gY29weUludG88
U2V0TGluZUNhcD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExp
bmVKb2luOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCmluZGV4IGMw
YzczYjgzYmQ1MmVhYTA0YTk1MTc4MTgwNDQ1Mzk0N2JiYzk1ZTkuLjlkZjY5N2IyMTAwZmUyMjFl
MWZlNGMxMjYzZGNhNDAxYjI4NTcxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5jcHAKQEAgLTQ4LDE2ICs0OCwxMiBAQCBzdGF0aWMgc2l6ZV90IHNpemVPZkl0ZW1J
bkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2YoQ29uY2F0ZW5hdGVD
VE0pOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0dXJuIHNpemVvZihT
ZXRDVE0pOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAg
ICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVGaWxsR3JhZGllbnQpOwotICAgIGNhc2UgSXRlbVR5
cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVG
aWxsQ29sb3IpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAg
ICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZVN0cm9rZUNvbG9yKTsKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRTdHJva2VUaGlja25lc3M6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0U3Ryb2tl
VGhpY2tuZXNzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKKyAgICAgICAg
cmV0dXJuIHNpemVvZihTZXRJbmxpbmVTdGF0ZSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Rh
dGU6CiAgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3RhdGUpOworICAgIGNhc2UgSXRlbVR5cGU6
OlNldFN0cm9rZVRoaWNrbmVzczoKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRTdHJva2VUaGlj
a25lc3MpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgICAgIHJldHVybiBz
aXplb2YoU2V0TGluZUNhcCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZURhc2g6CkBAIC0x
ODksOSArMTg1LDcgQEAgYm9vbCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgot
ICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVT
dGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgIGNhc2UgSXRlbVR5cGU6
OlNldExpbmVEYXNoOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVKb2luOgpAQCAtMzAyLDkg
KzI5Niw3IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVt
VHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExp
bmVKb2luOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCAwZTk0N2EwNmRhYjVhMmRmYjQ3NjkwODJmOGNh
YzU0OGFmODkzNDNiLi42MTVlM2FiMzRiODFkOWI5N2EwOWI1NmYwMDQ0NzFmZmRjYmUwODFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTM2LDExICszNiw5IEBA
IGVudW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBTY2FsZSwKICAgICBDb25jYXRl
bmF0ZUNUTSwKICAgICBTZXRDVE0sCi0gICAgU2V0SW5saW5lRmlsbEdyYWRpZW50LAotICAgIFNl
dElubGluZUZpbGxDb2xvciwKLSAgICBTZXRJbmxpbmVTdHJva2VDb2xvciwKLSAgICBTZXRTdHJv
a2VUaGlja25lc3MsCisgICAgU2V0SW5saW5lU3RhdGUsCiAgICAgU2V0U3RhdGUsCisgICAgU2V0
U3Ryb2tlVGhpY2tuZXNzLAogICAgIFNldExpbmVDYXAsCiAgICAgU2V0TGluZURhc2gsCiAgICAg
U2V0TGluZUpvaW4sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggMjEz
ZGI5YzhjZjQyZWMxYWUyZDEzMzkzNzVkOWY1NjMwZTc2ZDc0My4uMmVmZWQxYmQ5ODYwZjI4NTM5
NWMxMzk5YjJkM2Q1NmEwYTkzMTNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRp
c3BsYXlMaXN0SXRlbXMuaCIKIAorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAi
RGlzcGxheUxpc3RSZXBsYXllci5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKQEAgLTExNSw4OCArMTE2LDI0IEBAIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25jYXRlbmF0ZUNUTSYgaXRlbSkK
ICAgICByZXR1cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmls
bEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgIDogbV9kYXRhKGdyYWRpZW50LmRhdGEoKSkK
LSAgICAsIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNmb3JtKQot
ICAgICwgbV9zcHJlYWRNZXRob2QoZ3JhZGllbnQuc3ByZWFkTWV0aG9kKCkpCi0gICAgLCBtX2Nv
bG9yU3RvcENvdW50KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGdyYWRpZW50LnN0b3BzKCkuc2l6ZSgp
KSkKK1NldElubGluZVN0YXRlOjpTZXRJbmxpbmVTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRJ
bmxpbmVTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdz
IGNoYW5nZUZsYWdzKQorICAgIDogbV9zdGF0ZShzdGF0ZSkKKyAgICAsIG1fY2hhbmdlRmxhZ3Mo
Y2hhbmdlRmxhZ3MpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9jb2xvclN0b3BDb3VudCA8PSBt
YXhDb2xvclN0b3BDb3VudCk7Ci0gICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgbV9jb2xvclN0
b3BDb3VudDsgKytpKSB7Ci0gICAgICAgIG1fb2Zmc2V0c1tpXSA9IGdyYWRpZW50LnN0b3BzKClb
aV0ub2Zmc2V0OwotICAgICAgICBtX2NvbG9yc1tpXSA9IGdyYWRpZW50LnN0b3BzKClbaV0uY29s
b3IuYXNJbmxpbmUoKTsKLSAgICB9CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5s
aW5lRmlsbEdyYWRpZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1
aW50OF90PiBjb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYg
ZGF0YSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtLCBHcmFk
aWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QsIHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpCi0g
ICAgOiBtX2RhdGEoZGF0YSkKLSAgICAsIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVu
dFNwYWNlVHJhbnNmb3JtKQotICAgICwgbV9zcHJlYWRNZXRob2Qoc3ByZWFkTWV0aG9kKQotICAg
ICwgbV9jb2xvclN0b3BDb3VudChjb2xvclN0b3BDb3VudCkKK3ZvaWQgU2V0SW5saW5lU3RhdGU6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAgICBSRUxFQVNFX0FT
U0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KTsKLSAgICBmb3IgKHVp
bnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAgICAgICAgbV9vZmZz
ZXRzW2ldID0gb2Zmc2V0c1tpXTsKLSAgICAgICAgbV9jb2xvcnNbaV0gPSBjb2xvcnNbaV07Ci0g
ICAgfQotfQotCi1SZWY8R3JhZGllbnQ+IFNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQo
KSBjb25zdAotewotICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRlKEdyYWRpZW50
OjpEYXRhKG1fZGF0YSkpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9w
Q291bnQ7ICsraSkKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCh7IG1fb2Zmc2V0c1tp
XSwgQ29sb3IobV9jb2xvcnNbaV0pIH0pOwotICAgIGdyYWRpZW50LT5zZXRTcHJlYWRNZXRob2Qo
bV9zcHJlYWRNZXRob2QpOwotICAgIHJldHVybiBncmFkaWVudDsKLX0KLQotdm9pZCBTZXRJbmxp
bmVGaWxsR3JhZGllbnQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsK
LSAgICBpZiAobV9jb2xvclN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCkKLSAgICAgICAg
Y29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQoKSwgbV9ncmFkaWVudFNwYWNlVHJhbnNm
b3JtKTsKLX0KLQotYm9vbCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKGNvbnN0IEdy
YWRpZW50JiBncmFkaWVudCkKLXsKLSAgICBpZiAoZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkgPiBT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6Om1heENvbG9yU3RvcENvdW50KQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBmb3IgKGF1dG8mIGNvbG9yU3RvcCA6IGdyYWRpZW50LnN0b3BzKCkpIHsK
LSAgICAgICAgaWYgKCFjb2xvclN0b3AuY29sb3IuaXNJbmxpbmUoKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZUNoYW5nZSBzdGF0ZUNoYW5nZSA9IHsgbV9zdGF0ZSwgbV9jaGFuZ2VGbGFncyB9Owor
ICAgIHN0YXRlQ2hhbmdlLmFwcGx5KGNvbnRleHQpOwogfQogCi1zdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lRmlsbEdyYWRpZW50JikK
K3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJ
bmxpbmVTdGF0ZSYpCiB7CiAgICAgLy8gRklYTUU6IER1bXAgZ3JhZGllbnQgZGF0YS4KICAgICBy
ZXR1cm4gdHM7CiB9CiAKLXZvaWQgU2V0SW5saW5lRmlsbENvbG9yOjphcHBseShHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3Io
KSk7Ci19Ci0KLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBTZXRJbmxpbmVGaWxsQ29sb3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgi
Y29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KLXZvaWQgU2V0SW5s
aW5lU3Ryb2tlQ29sb3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsK
LSAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKCkpOwotfQotCi1zdGF0aWMgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lU3Ryb2tlQ29s
b3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigp
KTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KIHZvaWQgU2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseShH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29udGV4dC5zZXRTdHJva2VU
aGlja25lc3MobV90aGlja25lc3MpOwpAQCAtMjA5LDIzICsxNDYsMjkgQEAgc3RhdGljIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0cm9rZVRoaWNrbmVz
cyYgc3RhdGUpCiB9CiAKIFNldFN0YXRlOjpTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdz
KQotICAgIDogbV9zdGF0ZShzdGF0ZSwgZmxhZ3MpCisgICAgOiBtX3N0YXRlQ2hhbmdlKHN0YXRl
LCBmbGFncykKIHsKIH0KIAotU2V0U3RhdGU6OlNldFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlQ2hhbmdlJiBzdGF0ZUNoYW5nZSkKLSAgICA6IG1fc3RhdGUoc3RhdGVDaGFuZ2UpCitT
ZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIHN0YXRl
Q2hhbmdlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0dGVybkltYWdlSWRl
bnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxQYXR0ZXJuSW1hZ2VJZGVu
dGlmaWVyKQorICAgIDogbV9zdGF0ZUNoYW5nZShzdGF0ZUNoYW5nZSkKKyAgICAsIG1fc3Ryb2tl
UGF0dGVybkltYWdlSWRlbnRpZmllcihzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKQorICAg
ICwgbV9maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcihmaWxsUGF0dGVybkltYWdlSWRlbnRpZmll
cikKIHsKIH0KIAotdm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KSBjb25zdAordm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBO
YXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSogZmlsbFBhdHRlcm5J
bWFnZSkgY29uc3QKIHsKLSAgICBtX3N0YXRlLmFwcGx5KGNvbnRleHQpOworICAgIGlmIChtX3N0
YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiAmJiBzdHJva2VQYXR0ZXJuSW1hZ2UpCisg
ICAgICAgIG1fc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VQYXR0ZXJuLT5zZXRUaWxlSW1hZ2Uo
bWFrZVJlZigqc3Ryb2tlUGF0dGVybkltYWdlKSk7CisgICAgaWYgKG1fc3RhdGVDaGFuZ2UubV9z
dGF0ZS5maWxsUGF0dGVybiAmJiBmaWxsUGF0dGVybkltYWdlKQorICAgICAgICBtX3N0YXRlQ2hh
bmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4tPnNldFRpbGVJbWFnZShtYWtlUmVmKCpmaWxsUGF0dGVy
bkltYWdlKSk7CisgICAgbV9zdGF0ZUNoYW5nZS5hcHBseShjb250ZXh0KTsKIH0KIAotc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0YXRlJiBz
dGF0ZSkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBTZXRTdGF0ZSYgc2V0U3RhdGUpCiB7Ci0gICAgdHMgPDwgc3RhdGUuc3RhdGUoKTsKKyAgICB0
cyA8PCBzZXRTdGF0ZS5zdGF0ZUNoYW5nZSgpOwogICAgIHJldHVybiB0czsKIH0KIApAQCAtMzAx
LDExICsyNDQsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0
cywgY29uc3QgQ2xpcE91dCYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLU5PX1JFVFVSTl9E
VUVfVE9fQVNTRVJUIHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZvaWQgQ2xpcFRv
SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1h
Z2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQuY2xpcFRvSW1hZ2VC
dWZmZXIoaW1hZ2VCdWZmZXIsIG1fZGVzdGluYXRpb25SZWN0KTsKQEAgLTQyMCwxMSArMzU4LDYg
QEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERy
YXdHbHlwaHMmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi1OT19SRVRVUk5fRFVFX1RPX0FT
U0VSVCB2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QK
LXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogdm9pZCBEcmF3SW1hZ2VCdWZmZXI6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGlt
YWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVm
ZmVyLCBtX2Rlc3RpbmF0aW9uUmVjdCwgbV9zcmNSZWN0LCBtX29wdGlvbnMpOwpAQCAtNDM4LDEx
ICszNzEsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgRHJhd0ltYWdlQnVmZmVyJiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAotTk9fUkVU
VVJOX0RVRV9UT19BU1NFUlQgdm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZvaWQgRHJh
d05hdGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5hdGl2ZUltYWdl
JiBpbWFnZSkgY29uc3QKIHsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgbV9p
bWFnZVNpemUsIG1fZGVzdGluYXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CkBAIC00
NjksMTEgKzM5Nyw2IEBAIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hCiB7CiB9CiAKLU5PX1JFVFVS
Tl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZvaWQgRHJhd1BhdHRl
cm46OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTmF0aXZlSW1hZ2UmIGltYWdlKSBj
b25zdAogewogICAgIGNvbnRleHQuZHJhd1BhdHRlcm4oaW1hZ2UsIG1faW1hZ2VTaXplLCBtX2Rl
c3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3BhdHRlcm5UcmFuc2Zvcm0sIG1fcGhhc2UsIG1fc3Bh
Y2luZywgbV9vcHRpb25zKTsKQEAgLTEwMjMsMTEgKzk0Niw5IEBAIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRl
bVR5cGU6OlNjYWxlOiB0cyA8PCAic2NhbGUiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRDVE06IHRzIDw8ICJzZXQtY3RtIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0
ZW5hdGVDVE06IHRzIDw8ICJjb25jYXRlbnRhdGUtY3RtIjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB0cyA8PCAic2V0LWlubGluZS1maWxsLWdyYWRp
ZW50IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB0cyA8
PCAic2V0LWlubGluZS1maWxsLWNvbG9yIjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lU3Ryb2tlQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLXN0cm9rZS1jb2xvciI7IGJyZWFr
OwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogdHMgPDwgInNldC1zdHJv
a2UtdGhpY2tuZXNzIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6
IHRzIDw8ICJzZXQtaW5saW5lLXN0YXRlIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0
U3RhdGU6IHRzIDw8ICJzZXQtc3RhdGUiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRT
dHJva2VUaGlja25lc3M6IHRzIDw8ICJzZXQtc3Ryb2tlLXRoaWNrbmVzcyI7IGJyZWFrOwogICAg
IGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHRzIDw8ICJzZXQtbGluZS1jYXAiOyBicmVhazsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDogdHMgPDwgInNldC1saW5lLWRhc2giOyBi
cmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjogdHMgPDwgInNldC1saW5lLWpv
aW4iOyBicmVhazsKQEAgLTExMDYsMjEgKzEwMjcsMTUgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkNv
bmNhdGVuYXRlQ1RNOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxDb25jYXRlbmF0ZUNUTT4oKTsK
ICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50
OgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCk7CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNl
dElubGluZVN0YXRlPigpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZUZpbGxDb2xv
cj4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tl
Q29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpOwor
ICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRT
dGF0ZT4oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhp
Y2tuZXNzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdHJva2VUaGlja25lc3M+KCk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgotICAgICAgICB0cyA8
PCBpdGVtLmdldDxTZXRTdGF0ZT4oKTsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6U2V0TGluZUNhcDoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0TGluZUNhcD4oKTsKICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCAxZTAzZGU3
NjQ5MzVlZTM1YTJkMGQwYzI5MmEyMzQ0NzcyNDdmNDE4Li4wODgzYTAyNmViM2RmNzgyYThiZDA3
YmE0ZjE3ZThhYTYyMzY3NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAg
LTE2Nyw2NSArMTY3LDE5IEBAIHByaXZhdGU6CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNm
b3JtOwogfTsKIAotY2xhc3MgU2V0SW5saW5lRmlsbEdyYWRpZW50IHsKK2NsYXNzIFNldElubGlu
ZVN0YXRlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBl
ID0gSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZVN0YXRlOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
OF90IG1heENvbG9yU3RvcENvdW50ID0gNDsKIAotICAgIFNldElubGluZUZpbGxHcmFkaWVudChj
b25zdCBHcmFkaWVudCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5z
Zm9ybSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0SW5saW5lRmlsbEdyYWRpZW50KGZsb2F0IG9m
ZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xvcnNbbWF4Q29sb3JT
dG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
Z3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGllbnRTcHJlYWRNZXRob2QsIHVpbnQ4X3QgY29s
b3JTdG9wQ291bnQpOwotCi0gICAgc3RhdGljIGJvb2wgaXNJbmxpbmUoY29uc3QgR3JhZGllbnQm
KTsKLSAgICBSZWY8R3JhZGllbnQ+IGdyYWRpZW50KCkgY29uc3Q7CisgICAgU2V0SW5saW5lU3Rh
dGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYp
IGNvbnN0OwogCiBwcml2YXRlOgotICAgIGZsb2F0IG1fb2Zmc2V0c1ttYXhDb2xvclN0b3BDb3Vu
dF07Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdOwotICAg
IEdyYWRpZW50OjpEYXRhIG1fZGF0YTsKLSAgICBBZmZpbmVUcmFuc2Zvcm0gbV9ncmFkaWVudFNw
YWNlVHJhbnNmb3JtOwotICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIG1fc3ByZWFkTWV0aG9kIHsg
R3JhZGllbnRTcHJlYWRNZXRob2Q6OlBhZCB9OwotICAgIHVpbnQ4X3QgbV9jb2xvclN0b3BDb3Vu
dCB7IDAgfTsKLX07Ci0KLWNsYXNzIFNldElubGluZUZpbGxDb2xvciB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVG
aWxsQ29sb3I7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLQotICAg
IFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEpCi0gICAgICAgIDog
bV9jb2xvckRhdGEoY29sb3JEYXRhKQotICAgIHsKLSAgICB9Ci0KLSAgICBDb2xvciBjb2xvcigp
IGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xvckRhdGEgfTsgfQotICAgIHZvaWQgYXBwbHkoR3JhcGhp
Y3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xv
ckRhdGE7Ci19OwotCi1jbGFzcyBTZXRJbmxpbmVTdHJva2VDb2xvciB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVT
dHJva2VDb2xvcjsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1
ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOwotCi0g
ICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JEYXRhKQotICAgICAg
ICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKLSAgICB7Ci0gICAgfQotCi0gICAgQ29sb3IgY29s
b3IoKSBjb25zdCB7IHJldHVybiB7IG1fY29sb3JEYXRhIH07IH0KLQotICAgIHZvaWQgYXBwbHko
R3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU1JHQkE8dWludDhfdD4g
bV9jb2xvckRhdGE7CisgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgbV9zdGF0ZTsKKyAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBtX2NoYW5nZUZsYWdzOwog
fTsKIAogY2xhc3MgU2V0U3Ryb2tlVGhpY2tuZXNzIHsKQEAgLTI1NCwzMCArMjA4LDMzIEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUm
LCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYs
IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVy
LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIp
OwogICAgIAotICAgIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBzdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KLQotICAgIHN0YXRpYyB2b2lkIGJ1aWxkZXJTdGF0ZShH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKKyAgICBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlQ2hhbmdlOyB9
CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3N0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXI7IH0K
KyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyOyB9CiAKICAg
ICBzdGF0aWMgdm9pZCBkdW1wU3RhdGVDaGFuZ2VzKFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxh
Z3MpOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTZXRT
dGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIAotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0
JikgY29uc3Q7CisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJbWFnZSog
c3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSogZmlsbFBhdHRlcm5JbWFnZSkgY29uc3Q7
CiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UgbV9zdGF0ZTsKKyAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBtX3N0YXRlQ2hhbmdlOworICAgIFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBtX3N0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CisgICAg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7
CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBTZXRTdGF0ZTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgYXV0byBjaGFuZ2VGbGFncyA9IG1fc3RhdGUu
bV9jaGFuZ2VGbGFnczsKKyAgICBhdXRvIGNoYW5nZUZsYWdzID0gbV9zdGF0ZUNoYW5nZS5tX2No
YW5nZUZsYWdzOwogICAgIGVuY29kZXIgPDwgY2hhbmdlRmxhZ3M7CiAKLSAgICBhdXRvJiBzdGF0
ZSA9IG1fc3RhdGUubV9zdGF0ZTsKKyAgICBhdXRvJiBzdGF0ZSA9IG1fc3RhdGVDaGFuZ2UubV9z
dGF0ZTsKKyAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ4X3QqPigmc3RhdGUpLCBzaXplb2YoR3JhcGhpY3NDb250ZXh0SW5saW5lU3Rh
dGUpLCAxKTsKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7CiAgICAgICAgIGVuY29kZXIgPDwgISFzdGF0
ZS5zdHJva2VHcmFkaWVudDsKQEAgLTI4Nyw4ICsyNDQsMTAgQEAgdm9pZCBTZXRTdGF0ZTo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2UpKSB7CiAgICAgICAg
IGVuY29kZXIgPDwgISFzdGF0ZS5zdHJva2VQYXR0ZXJuOwotICAgICAgICBpZiAoc3RhdGUuc3Ry
b2tlUGF0dGVybikKKyAgICAgICAgaWYgKHN0YXRlLnN0cm9rZVBhdHRlcm4pIHsKKyAgICAgICAg
ICAgIGVuY29kZXIgPDwgc3RhdGUuc3Ryb2tlUGF0dGVybi0+dGlsZUltYWdlKCkucmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5zdHJv
a2VQYXR0ZXJuOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKSB7CkBAIC0yOTks
NjAgKzI1OCwyMCBAQCB2b2lkIFNldFN0YXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
RmlsbFBhdHRlcm5DaGFuZ2UpKSB7CiAgICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5maWxsUGF0
dGVybjsKLSAgICAgICAgaWYgKHN0YXRlLmZpbGxQYXR0ZXJuKQorICAgICAgICBpZiAoc3RhdGUu
ZmlsbFBhdHRlcm4pIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgc3RhdGUuZmlsbFBhdHRlcm4t
PnRpbGVJbWFnZSgpLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOwogICAgICAgICAgICAg
ZW5jb2RlciA8PCAqc3RhdGUuZmlsbFBhdHRlcm47CisgICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd0NoYW5n
ZSkpIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dPZmZzZXQ7Ci0gICAgICAgIGVu
Y29kZXIgPDwgc3RhdGUuc2hhZG93Qmx1cjsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFk
b3dDb2xvcjsKLSNpZiBVU0UoQ0cpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93c1Vz
ZUxlZ2FjeVJhZGl1czsKLSNlbmRpZiAvLyBVU0UoQ0cpCi0gICAgfQotCi0gICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFu
Z2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZVRoaWNrbmVzczsKLQotICAgIGlm
IChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6VGV4dERyYXdpbmdN
b2RlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS50ZXh0RHJhd2luZ01vZGU7Ci0K
ICAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9r
ZUNvbG9yQ2hhbmdlKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zdHJva2VDb2xvcjsKIAog
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENv
bG9yQ2hhbmdlKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5maWxsQ29sb3I7CiAKLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVN0eWxl
Q2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zdHJva2VTdHlsZTsKLQotICAgIGlm
IChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFJ1bGVDaGFu
Z2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbGxSdWxlOwotCi0gICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpDb21wb3NpdGVPcGVyYXRpb25D
aGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmNvbXBvc2l0ZU9wZXJhdG9yOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1v
ZGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmJsZW5kTW9kZTsKLQotICAgIGlm
IChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBv
bGF0aW9uUXVhbGl0eUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmFs
cGhhOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTaG91bGRBbnRpYWxpYXNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3Vs
ZEFudGlhbGlhczsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U2hvdWxkU21vb3RoRm9udHNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0
YXRlLnNob3VsZFNtb290aEZvbnRzOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpKQot
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czsKLQot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93
c0lnbm9yZVRyYW5zZm9ybXNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zOworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSkKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5z
aGFkb3dDb2xvcjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTM2Niw2ICsyODUs
MTMgQEAgT3B0aW9uYWw8U2V0U3RhdGU+IFNldFN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0ZUNoYW5nZTsKICAgICBzdGF0
ZUNoYW5nZS5tX2NoYW5nZUZsYWdzID0gKmNoYW5nZUZsYWdzOwogCisgICAgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CisgICAgUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyOworCisgICAg
YXV0byYgc3RhdGUgPSBzdGF0ZUNoYW5nZS5tX3N0YXRlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJnN0YXRlKSwgc2l6
ZW9mKEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlKSwgMSkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKICAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7CiAgICAgICAgIE9w
dGlvbmFsPGJvb2w+IGhhc1N0cm9rZUdyYWRpZW50OwogICAgICAgICBkZWNvZGVyID4+IGhhc1N0
cm9rZUdyYWRpZW50OwpAQCAtMzg3LDEzICszMTMsMTcgQEAgT3B0aW9uYWw8U2V0U3RhdGU+IFNl
dFN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgaWYgKCFoYXNTdHJva2VQ
YXR0ZXJuLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0g
ICAgICAgIGlmIChoYXNTdHJva2VQYXR0ZXJuLnZhbHVlKCkpIHsKLSAgICAgICAgICAgIGF1dG8g
c3Ryb2tlUGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNvZGVyKTsKLSAgICAgICAgICAgIGlm
ICghc3Ryb2tlUGF0dGVybikKLSAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgICAgICBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGltYWdlSWRlbnRp
ZmllcjsKKyAgICAgICAgZGVjb2RlciA+PiBpbWFnZUlkZW50aWZpZXI7CisgICAgICAgIGlmICgh
aW1hZ2VJZGVudGlmaWVyLmhhc1ZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBX
VEZNb3ZlKCpzdHJva2VQYXR0ZXJuKTsKLSAgICAgICAgfQorICAgICAgICBhdXRvIHN0cm9rZVBh
dHRlcm4gPSBQYXR0ZXJuOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGlmICghc3Ryb2tlUGF0
dGVybikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgc3Ryb2tl
UGF0dGVybkltYWdlSWRlbnRpZmllciA9ICppbWFnZUlkZW50aWZpZXI7CisgICAgICAgIHN0YXRl
Q2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IFdURk1vdmUoKnN0cm9rZVBhdHRlcm4pOwog
ICAgIH0KIAogICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKSB7CkBAIC00MTYsNjQgKzM0Niwx
OCBAQCBPcHRpb25hbDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQogICAgICAgICBkZWNvZGVyID4+IGhhc0ZpbGxQYXR0ZXJuOwogICAgICAgICBpZiAoIWhhc0Zp
bGxQYXR0ZXJuLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
Ci0gICAgICAgIGlmIChoYXNGaWxsUGF0dGVybi52YWx1ZSgpKSB7Ci0gICAgICAgICAgICBhdXRv
IGZpbGxQYXR0ZXJuID0gUGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpOwotICAgICAgICAgICAgaWYg
KCFmaWxsUGF0dGVybikKLSAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0g
ICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxQYXR0ZXJuID0gV1RGTW92ZSgqZmls
bFBhdHRlcm4pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hh
bmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsK
LSAgICAgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBzaGFkb3dPZmZzZXQ7Ci0gICAgICAgIGRlY29k
ZXIgPj4gc2hhZG93T2Zmc2V0OwotICAgICAgICBpZiAoIXNoYWRvd09mZnNldCkKLSAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5z
aGFkb3dPZmZzZXQgPSAqc2hhZG93T2Zmc2V0OwotCi0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBz
aGFkb3dCbHVyOwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd0JsdXI7Ci0gICAgICAgIGlmICgh
c2hhZG93Qmx1cikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAg
c3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dCbHVyID0gKnNoYWRvd0JsdXI7Ci0KLSAgICAgICAg
T3B0aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd0Nv
bG9yOwotICAgICAgICBpZiAoIXNoYWRvd0NvbG9yKQorICAgICAgICAKKyAgICAgICAgT3B0aW9u
YWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBpbWFnZUlkZW50aWZpZXI7CisgICAgICAg
IGRlY29kZXIgPj4gaW1hZ2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWltYWdlSWRlbnRpZmll
ci5oYXNWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAg
ICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd0NvbG9yID0gKnNoYWRvd0NvbG9yOwotCi0jaWYg
VVNFKENHKQotICAgICAgICBPcHRpb25hbDxib29sPiBzaGFkb3dzVXNlTGVnYWN5UmFkaXVzOwot
ICAgICAgICBkZWNvZGVyID4+IHNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7Ci0gICAgICAgIGlmICgh
c2hhZG93c1VzZUxlZ2FjeVJhZGl1cykKKyAgICAgICAgYXV0byBmaWxsUGF0dGVybiA9IFBhdHRl
cm46OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgaWYgKCFmaWxsUGF0dGVybikKICAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5z
aGFkb3dzVXNlTGVnYWN5UmFkaXVzID0gKnNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7Ci0jZW5kaWYg
Ly8gVVNFKENHKQotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UpKSB7Ci0g
ICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzdHJva2VUaGlja25lc3M7Ci0gICAgICAgIGRlY29kZXIg
Pj4gc3Ryb2tlVGhpY2tuZXNzOwotICAgICAgICBpZiAoIXN0cm9rZVRoaWNrbmVzcykKLSAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0
ZS5zdHJva2VUaGlja25lc3MgPSAqc3Ryb2tlVGhpY2tuZXNzOwotICAgIH0KLQotICAgIGlmIChz
dGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpU
ZXh0RHJhd2luZ01vZGVDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPFRleHREcmF3aW5nTW9k
ZUZsYWdzPiB0ZXh0RHJhd2luZ01vZGU7Ci0gICAgICAgIGRlY29kZXIgPj4gdGV4dERyYXdpbmdN
b2RlOwotICAgICAgICBpZiAoIXRleHREcmF3aW5nTW9kZSkKLSAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS50ZXh0RHJhd2luZ01v
ZGUgPSBXVEZNb3ZlKCp0ZXh0RHJhd2luZ01vZGUpOworICAgICAgICBmaWxsUGF0dGVybkltYWdl
SWRlbnRpZmllciA9ICppbWFnZUlkZW50aWZpZXI7CisgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3Rh
dGUuZmlsbFBhdHRlcm4gPSBXVEZNb3ZlKCpmaWxsUGF0dGVybik7CiAgICAgfQogCiAgICAgaWYg
KHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0cm9rZUNvbG9yQ2hhbmdlKSkgewpAQCAtNDk0LDk2ICszNzgsMTYgQEAgT3B0aW9uYWw8U2V0
U3RhdGU+IFNldFN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgc3RhdGVD
aGFuZ2UubV9zdGF0ZS5maWxsQ29sb3IgPSAqZmlsbENvbG9yOwogICAgIH0KIAotICAgIGlmIChz
dGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dHJva2VTdHlsZUNoYW5nZSkpIHsKLSAgICAgICAgU3Ryb2tlU3R5bGUgc3Ryb2tlU3R5bGU7Ci0g
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Ryb2tlU3R5bGUpKQotICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZVN0
eWxlID0gc3Ryb2tlU3R5bGU7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxSdWxlQ2hhbmdlKSkgewot
ICAgICAgICBPcHRpb25hbDxXaW5kUnVsZT4gZmlsbFJ1bGU7Ci0gICAgICAgIGRlY29kZXIgPj4g
ZmlsbFJ1bGU7Ci0gICAgICAgIGlmICghZmlsbFJ1bGUpCi0gICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFJ1bGUgPSAqZmls
bFJ1bGU7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJhdGlvbkNoYW5nZSkpIHsKLSAg
ICAgICAgT3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0b3I+IGNvbXBvc2l0ZU9wZXJhdG9yOwotICAg
ICAgICBkZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9yOwotICAgICAgICBpZiAoIWNvbXBvc2l0
ZU9wZXJhdG9yKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBz
dGF0ZUNoYW5nZS5tX3N0YXRlLmNvbXBvc2l0ZU9wZXJhdG9yID0gKmNvbXBvc2l0ZU9wZXJhdG9y
OwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFs
PEJsZW5kTW9kZT4gYmxlbmRNb2RlOwotICAgICAgICBkZWNvZGVyID4+IGJsZW5kTW9kZTsKLSAg
ICAgICAgaWYgKCFibGVuZE1vZGUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
Ci0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuYmxlbmRNb2RlID0gKmJsZW5kTW9kZTsKLSAg
ICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZSkpIHsKLSAgICAg
ICAgT3B0aW9uYWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+IGltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHk7Ci0gICAgICAgIGRlY29kZXIgPj4gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsKLSAgICAg
ICAgaWYgKCFpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHkgPSAqaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsKLSAgICB9Ci0KLSAgICBp
ZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6QWxwaGFDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBhbHBoYTsKLSAgICAg
ICAgZGVjb2RlciA+PiBhbHBoYTsKLSAgICAgICAgaWYgKCFhbHBoYSkKLSAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5hbHBoYSA9
ICphbHBoYTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250
YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkQW50aWFsaWFzQ2hhbmdlKSkgewotICAg
ICAgICBPcHRpb25hbDxib29sPiBzaG91bGRBbnRpYWxpYXM7Ci0gICAgICAgIGRlY29kZXIgPj4g
c2hvdWxkQW50aWFsaWFzOwotICAgICAgICBpZiAoIXNob3VsZEFudGlhbGlhcykKLSAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5z
aG91bGRBbnRpYWxpYXMgPSAqc2hvdWxkQW50aWFsaWFzOwotICAgIH0KLQotICAgIGlmIChzdGF0
ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91
bGRTbW9vdGhGb250c0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkU21v
b3RoRm9udHM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgICAg
IGlmICghc2hvdWxkU21vb3RoRm9udHMpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hvdWxkU21vb3RoRm9udHMgPSAqc2hv
dWxkU21vb3RoRm9udHM7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxh
Z3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVG
b250c0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkU3VicGl4ZWxRdWFu
dGl6ZUZvbnRzOwotICAgICAgICBkZWNvZGVyID4+IHNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250
czsKLSAgICAgICAgaWYgKCFzaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHMpCi0gICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hv
dWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzID0gKnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czsK
LSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5zZm9ybXNDaGFuZ2UpKSB7Ci0gICAg
ICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwotICAgICAgICBkZWNv
ZGVyID4+IHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwotICAgICAgICBpZiAoIXNoYWRvd3NJZ25v
cmVUcmFuc2Zvcm1zKQorICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKSB7CisgICAgICAgIE9wdGlvbmFs
PENvbG9yPiBzaGFkb3dDb2xvcjsKKyAgICAgICAgZGVjb2RlciA+PiBzaGFkb3dDb2xvcjsKKyAg
ICAgICAgaWYgKCFzaGFkb3dDb2xvcikKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAKLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9
ICpzaGFkb3dzSWdub3JlVHJhbnNmb3JtczsKKyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5z
aGFkb3dDb2xvciA9ICpzaGFkb3dDb2xvcjsKICAgICB9CiAKLSAgICByZXR1cm4geyBzdGF0ZUNo
YW5nZSB9OworICAgIHJldHVybiB7eyBzdGF0ZUNoYW5nZSwgc3Ryb2tlUGF0dGVybkltYWdlSWRl
bnRpZmllciwgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIgfX07CiB9CiAKIGNsYXNzIFNldExp
bmVDYXAgewpAQCAtNzU3LDggKzU2MSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYXBwbHkoR3Jh
cGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBjb25zdDsKIAotICAgIE5PX1JF
VFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0K
IHByaXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyOwogICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uUmVjdDsKQEAgLTEwMzksOCAr
ODQxLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBXZWJD
b3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogCi0gICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQg
dm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKLQogICAgIE9wdGlvbmFsPEZsb2F0
UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CiAgICAg
T3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBj
b25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogCkBAIC0xMDcyLDcgKzg3Miw2IEBA
IHB1YmxpYzoKICAgICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byB2YWxpZGF0ZSBJbWFnZVBh
aW50aW5nT3B0aW9ucy4KICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAhIW1faW1h
Z2VJZGVudGlmaWVyOyB9CiAKLSAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFwcGx5
KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0
JiwgTmF0aXZlSW1hZ2UmKSBjb25zdDsKIAogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFs
Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CkBAIC0xMTA0LDcgKzkwMyw2
IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byB2YWxpZGF0ZSBJbWFn
ZVBhaW50aW5nT3B0aW9ucy4KICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAhIW1f
aW1hZ2VJZGVudGlmaWVyOyB9CiAKLSAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFw
cGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250
ZXh0JiwgTmF0aXZlSW1hZ2UmKSBjb25zdDsKIAogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xv
YmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CkBAIC0yMzAxLDExICsy
MDk5LDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxl
LAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNLAogICAgIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE0sCi0gICAgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQsCi0gICAgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3IsCi0gICAgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvciwKLSAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcywKKyAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0YXRlLAogICAgIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3RhdGUsCisgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0TGluZURhc2gsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
ZXRMaW5lSm9pbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRl
eCBlZGEwYjU1OTgzNWUwZDg5ZWQwYTU3ZTU4ZTUzY2YxMzg5NjM1NzFiLi40MWZhNzYyMjZhZTYw
MzU4YjIwNWNjZDNiODY0ZjcyOGQ1ZGM2ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwCkBAIC02MCw0OSArNjAsNDAgQEAgdm9pZCBSZWNvcmRlcjo6cHV0SW1h
Z2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0
IFcKICAgICBhcHBlbmQ8UHV0SW1hZ2VEYXRhPihpbnB1dEZvcm1hdCwgaW1hZ2VEYXRhLCBzcmNS
ZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogfQogCi1zdGF0aWMgYm9vbCBjb250YWluc09u
bHlJbmxpbmVTdGF0ZUNoYW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNo
YW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdz
KQorc3RhdGljIGJvb2wgY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQogewogICAgIHN0YXRpYyBj
b25zdGV4cHIgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgaW5saW5lU3Rh
dGVDaGFuZ2VGbGFncyB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlj
a25lc3NDaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVu
dENoYW5nZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFu
Z2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UsCisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUGF0dGVybkNoYW5nZSwKICAgICAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlLAogICAgICAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlLAotICAgICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlLAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U2hhZG93Q2hhbmdlCiAgICAgfTsKIAotICAgIGlmIChjaGFuZ2VGbGFncyAhPSAoY2hhbmdlRmxh
Z3MgJiBpbmxpbmVTdGF0ZUNoYW5nZUZsYWdzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VD
b2xvckNoYW5nZSkgJiYgIWNoYW5nZXMubV9zdGF0ZS5zdHJva2VDb2xvci5pc0lubGluZSgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSkgJiYgIWNoYW5nZXMubV9zdGF0ZS5m
aWxsQ29sb3IuaXNJbmxpbmUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGNo
YW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFu
Z2UpCi0gICAgICAgICYmICghY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCB8fCAhU2V0SW5s
aW5lRmlsbEdyYWRpZW50Ojppc0lubGluZSgqY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCkp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
IWNoYW5nZUZsYWdzLmNvbnRhaW5zQW55KGlubGluZVN0YXRlQ2hhbmdlRmxhZ3MpOwogfQogCi12
b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZs
YWdzIGNoYW5nZUZsYWdzKQordm9pZCBSZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVtKGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCiB7Ci0gICAgaWYgKCFjb250YWluc09ubHlJbmxp
bmVTdGF0ZUNoYW5nZXMoY2hhbmdlcywgY2hhbmdlRmxhZ3MpKSB7Ci0gICAgICAgIGFwcGVuZDxT
ZXRTdGF0ZT4oY2hhbmdlcy5tX3N0YXRlLCBjaGFuZ2VGbGFncyk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZVN0cm9rZUNv
bG9yPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlQ29sb3IuYXNJbmxpbmUoKSk7Ci0KLSAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVz
c0NoYW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KGNoYW5nZXMubV9z
dGF0ZS5zdHJva2VUaGlja25lc3MpOworICAgIGlmIChjb250YWluc09ubHlJbmxpbmVTdGF0ZUNo
YW5nZXMoY2hhbmdlRmxhZ3MpKQorICAgICAgICBhcHBlbmQ8U2V0SW5saW5lU3RhdGU+KHN0YXRl
LCBjaGFuZ2VGbGFncyk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChzdGF0ZS5zdHJva2VQYXR0
ZXJuKSB7CisgICAgICAgICAgICBpZiAobV9kZWxlZ2F0ZSkKKyAgICAgICAgICAgICAgICBtX2Rl
bGVnYXRlLT5jYWNoZU5hdGl2ZUltYWdlKHN0YXRlLnN0cm9rZVBhdHRlcm4tPnRpbGVJbWFnZSgp
KTsKKyAgICAgICAgICAgIG1fZGlzcGxheUxpc3QuY2FjaGVOYXRpdmVJbWFnZShzdGF0ZS5zdHJv
a2VQYXR0ZXJuLT50aWxlSW1hZ2UoKSk7CisgICAgICAgIH0KIAotICAgIGlmIChjaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkKLSAgICAg
ICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oY2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci5h
c0lubGluZSgpKTsKKyAgICAgICAgaWYgKHN0YXRlLmZpbGxQYXR0ZXJuKSB7CisgICAgICAgICAg
ICBpZiAobV9kZWxlZ2F0ZSkKKyAgICAgICAgICAgICAgICBtX2RlbGVnYXRlLT5jYWNoZU5hdGl2
ZUltYWdlKHN0YXRlLmZpbGxQYXR0ZXJuLT50aWxlSW1hZ2UoKSk7CisgICAgICAgICAgICBtX2Rp
c3BsYXlMaXN0LmNhY2hlTmF0aXZlSW1hZ2Uoc3RhdGUuZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgp
KTsKKyAgICAgICAgfQogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0SW5saW5l
RmlsbEdyYWRpZW50PigqY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCwgY2hhbmdlcy5tX3N0
YXRlLmZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKKyAgICAgICAgYXBwZW5kPFNldFN0YXRl
PihzdGF0ZSwgY2hhbmdlRmxhZ3MpOworICAgIH0KIH0KIAogdm9pZCBSZWNvcmRlcjo6d2lsbEFw
cGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUgdHlwZSkKQEAgLTExOSw3ICsxMTAsNyBAQCB2b2lkIFJl
Y29yZGVyOjp3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBlKQogICAgICAgICBHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSA9
IHN0YXRlQ2hhbmdlcy5jaGFuZ2VzRnJvbVN0YXRlKGN1cnJlbnRTdGF0ZSgpLmxhc3REcmF3aW5n
U3RhdGUpOwogICAgICAgICBpZiAoY2hhbmdlc0Zyb21MYXN0U3RhdGUpIHsKICAgICAgICAgICAg
IExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAicHJlLWRyYXdpbmcsIHNh
dmluZyBzdGF0ZSAiIDw8IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKHN0YXRlQ2hhbmdlcy5t
X3N0YXRlLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSkpOwotICAgICAgICAgICAgYXBwZW5kU3RhdGVD
aGFuZ2VJdGVtKHN0YXRlQ2hhbmdlcywgY2hhbmdlc0Zyb21MYXN0U3RhdGUpOworICAgICAgICAg
ICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKHN0YXRlQ2hhbmdlcy5tX3N0YXRlLCBjaGFuZ2VzRnJv
bUxhc3RTdGF0ZSk7CiAgICAgICAgICAgICBzdGF0ZUNoYW5nZXMubV9jaGFuZ2VGbGFncyA9IHsg
fTsKICAgICAgICAgICAgIGN1cnJlbnRTdGF0ZSgpLmxhc3REcmF3aW5nU3RhdGUgPSBzdGF0ZUNo
YW5nZXMubV9zdGF0ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmgKaW5kZXggODlhOTkwODZhYWQxMWVhZGUwMzc1ZjFkZjE4NjRkMzMzMzE3OTU4Yi4uN2Zj
ZWE0MjdkNDMxN2JjYWQwYjA4YTM0NDYyNmYxMGRkZjMwZjE2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0xNzEsNyArMTcxLDcgQEAgcHJpdmF0ZToKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEFwcGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUpOwogCi0g
ICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVD
aGFuZ2UmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CisgICAgdm9p
ZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKICAgICBGbG9hdFJlY3QgZXh0
ZW50RnJvbUxvY2FsQm91bmRzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVwbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCmluZGV4IDMyNWRiOTczOWU5ZmNmMjEz
MWU5MTRlNmFlNWM4NWE4MmViYWUxYzkuLjM0NjQzNjJkNjc3ZDRkNmM4NDcyZWQ5YTdkYTM1ZDg1
MTVhZjg3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKQEAg
LTcwLDYgKzcwLDI5IEBAIGlubGluZSBzdGF0aWMgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyPiBhcHBseU5hdGl2ZUltYWdlSXRlbShHcmFwaGljCiAgICAgcmV0dXJuIHJlc291
cmNlSWRlbnRpZmllcjsKIH0KIAoraW5saW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXI+IGFwcGx5U2V0U3RhdGVJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgTmF0aXZlSW1hZ2VIYXNoTWFwJiBuYXRpdmVJbWFnZXMsIEl0ZW1IYW5kbGUgaXRl
bSkKK3sKKyAgICBhdXRvJiBzZXRTdGF0ZUl0ZW0gPSBpdGVtLmdldDxTZXRTdGF0ZT4oKTsKKwor
ICAgIE5hdGl2ZUltYWdlKiBzdHJva2VQYXR0ZXJuSW1hZ2UgPSBudWxscHRyOworICAgIE5hdGl2
ZUltYWdlKiBmaWxsUGF0dGVybkltYWdlID0gbnVsbHB0cjsKKyAgICAKKyAgICBpZiAoYXV0byBy
ZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0uc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRp
ZmllcigpKSB7CisgICAgICAgIHN0cm9rZVBhdHRlcm5JbWFnZSA9IG5hdGl2ZUltYWdlcy5nZXQo
cmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFzdHJva2VQYXR0ZXJuSW1hZ2UpCisg
ICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOworICAgIH0KKworICAgIGlmIChh
dXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRlSXRlbS5maWxsUGF0dGVybkltYWdlSWRl
bnRpZmllcigpKSB7CisgICAgICAgIGZpbGxQYXR0ZXJuSW1hZ2UgPSBuYXRpdmVJbWFnZXMuZ2V0
KHJlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIGlmICghZmlsbFBhdHRlcm5JbWFnZSkKKyAg
ICAgICAgICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7CisgICAgfQorCisgICAgc2V0U3Rh
dGVJdGVtLmFwcGx5KGNvbnRleHQsIHN0cm9rZVBhdHRlcm5JbWFnZSwgZmlsbFBhdHRlcm5JbWFn
ZSk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwogdGVtcGxhdGU8Y2xhc3MgVD4KIGlu
bGluZSBzdGF0aWMgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseUZv
bnRJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9udFJlbmRlcmluZ1Jlc291
cmNlTWFwJiBmb250cywgSXRlbUhhbmRsZSBpdGVtKQogewpAQCAtMTA1LDE0ICsxMjgsMjAgQEAg
c3RkOjpwYWlyPE9wdGlvbmFsPFN0b3BSZXBsYXlSZWFzb24+LCBPcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+PiBSZXAKICAgICAgICAgcmV0dXJuIHsgV1RGOjpudWxsb3B0LCBX
VEY6Om51bGxvcHQgfTsKICAgICB9CiAKLSAgICBpZiAoaXRlbS5pczxEcmF3R2x5cGhzPigpKSB7
Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBs
eUZvbnRJdGVtPERyYXdHbHlwaHM+KG1fY29udGV4dCwgbV9mb250cywgaXRlbSkpCisgICAgaWYg
KGl0ZW0uaXM8RHJhd1BhdHRlcm4+KCkpIHsKKyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hl
ZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZlSW1hZ2VJdGVtPERyYXdQYXR0ZXJuPiht
X2NvbnRleHQsIG1fbmF0aXZlSW1hZ2VzLCBpdGVtKSkKICAgICAgICAgICAgIHJldHVybiB7IFN0
b3BSZXBsYXlSZWFzb246Ok1pc3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2Fj
aGVkUmVzb3VyY2VJZGVudGlmaWVyKSB9OwogICAgICAgICByZXR1cm4geyBXVEY6Om51bGxvcHQs
IFdURjo6bnVsbG9wdCB9OwogICAgIH0KIAotICAgIGlmIChpdGVtLmlzPERyYXdQYXR0ZXJuPigp
KSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBh
cHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3UGF0dGVybj4obV9jb250ZXh0LCBtX25hdGl2ZUltYWdl
cywgaXRlbSkpCisgICAgaWYgKGl0ZW0uaXM8U2V0U3RhdGU+KCkpIHsKKyAgICAgICAgaWYgKGF1
dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5U2V0U3RhdGVJdGVtKG1f
Y29udGV4dCwgbV9uYXRpdmVJbWFnZXMsIGl0ZW0pKQorICAgICAgICAgICAgcmV0dXJuIHsgU3Rv
cFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNo
ZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CisgICAgICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwg
V1RGOjpudWxsb3B0IH07CisgICAgfQorCisgICAgaWYgKGl0ZW0uaXM8RHJhd0dseXBocz4oKSkg
eworICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBw
bHlGb250SXRlbTxEcmF3R2x5cGhzPihtX2NvbnRleHQsIG1fZm9udHMsIGl0ZW0pKQogICAgICAg
ICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBX
VEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVy
biB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCmluZGV4IGFmYmU3
MDZhZGRjMjI3ZGExMGNiNzg4Mjg4ODZjMTI5YjE5MjQxY2MuLmYzM2NjZWIxMTIzMjgwYzgxMjVj
YjI4NGI2ZTc4MDczZDAxYjgxYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBGRVRp
bGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgdGlsZUltYWdlQ29udGV4dC50cmFuc2xh
dGUoLWluTWF4RWZmZWN0TG9jYXRpb24ueCgpLCAtaW5NYXhFZmZlY3RMb2NhdGlvbi55KCkpOwog
ICAgIHRpbGVJbWFnZUNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbkJ1ZmZlciwgaW4tPmFic29s
dXRlUGFpbnRSZWN0KCkubG9jYXRpb24oKSk7CiAKLSAgICBhdXRvIHRpbGVJbWFnZUNvcHkgPSBJ
bWFnZUJ1ZmZlcjo6c2lua0ludG9JbWFnZShXVEZNb3ZlKHRpbGVJbWFnZSkpOworICAgIGF1dG8g
dGlsZUltYWdlQ29weSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b05hdGl2ZUltYWdlKFdURk1vdmUo
dGlsZUltYWdlKSk7CiAgICAgaWYgKCF0aWxlSW1hZ2VDb3B5KQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5k
ZXggYWQ0ZThkZDlkNzFiYWMxYTkyMTkyZGE3YWU2YTE5ZDQzNGE3MTllMi4uYTE0ZTVlMGJjYzJm
MmZiMThmZjc4MTZmNjc0ZTEwNmRhZDRhNDY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTMyNjYsNyArMzI2Niw3IEBAIHN0YXRp
YyBSZWZQdHI8UGF0dGVybj4gcGF0dGVybkZvckRlc2NyaXB0aW9uKFBhdHRlcm5EZXNjcmlwdGlv
biBkZXNjcmlwdGlvbiwgRmxvCiAgICAgICAgIGltYWdlQ29udGV4dC5kcmF3VGV4dChmb250LCB0
ZXh0UnVuLCB7IHRleHRHYXAsIHlPZmZzZXQgfSwgMCk7CiAgICAgfQogCi0gICAgYXV0byB0aWxl
SW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9JbWFnZShXVEZNb3ZlKGltYWdlQnVmZmVyKSk7
CisgICAgYXV0byB0aWxlSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9OYXRpdmVJbWFnZShX
VEZNb3ZlKGltYWdlQnVmZmVyKSk7CiAgICAgYXV0byBmaWxsUGF0dGVybiA9IFBhdHRlcm46OmNy
ZWF0ZSh0aWxlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgdHJ1ZSwgdHJ1ZSk7CiAgICAgQWZmaW5l
VHJhbnNmb3JtIHBhdHRlcm5PZmZzZXRUcmFuc2Zvcm07CiAgICAgcGF0dGVybk9mZnNldFRyYW5z
Zm9ybS50cmFuc2xhdGUoY29udGVudE9mZnNldCArIGRlc2NyaXB0aW9uLnBoYXNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0
ZXJuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQ
YXR0ZXJuLmNwcAppbmRleCBhMWY4NWYxNzYyNjYxYTVkOGIzMmE0NTA0ZTY1ZWZhODNjYTNhNGVi
Li5jNTY1MmY1MTQ5Njk3YTg1N2Q5MzMwNTU0YmIzYTM5ZTExNmQ0ZDFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRl
cm4uY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgUGF0dGVybkRhdGEqIFJlbmRlclNWR1Jlc291cmNl
UGF0dGVybjo6YnVpbGRQYXR0ZXJuKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBPcHQKIAogICAg
IGNvbnN0IEludFNpemUgdGlsZUltYWdlU2l6ZSA9IHRpbGVJbWFnZS0+bG9naWNhbFNpemUoKTsK
IAotICAgIFJlZlB0cjxJbWFnZT4gY29waWVkSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9J
bWFnZShXVEZNb3ZlKHRpbGVJbWFnZSkpOworICAgIGF1dG8gY29waWVkSW1hZ2UgPSBJbWFnZUJ1
ZmZlcjo6c2lua0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKHRpbGVJbWFnZSkpOwogICAgIGlmICgh
Y29waWVkSW1hZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKaW5kZXggMDNkMTYyZmRkMTFiMzVlMjYyMGQyMmMxOTg0MjQ5ODg3OWJiNDU1ZS4uMzBm
YjdmODFiOGMwMGJmZTVhYzZlZjBmOTRlN2JjZGQ2YmJiMTBjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcApAQCAtNDYxLDkgKzQ2MSw3IEBAIE9wdGlvbmFsPERpc3BsYXlMaXN0OjpJdGVtSGFu
ZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjCiAgICAg
Y2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE06
Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAg
ICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAg
IGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CiAgICAgY2FzZSBEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlNldExpbmVKb2luOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRN
aXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKaW5kZXggMTlhZjI5OTY2ODI3ZDRiNjAxZDhjZDUyN2JmMTRjOWE3N2Q3MDg5Yi4uYmI3
Yzg0YmY4MTQ3NWNjYzkxOWYwNzgzMDA0ZDkyOTcxODAwZmU1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMDc1LDE4ICsxMDc1LDYg
QEAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZU9wdGlvbmFsSW1hZ2UoRGVj
b2RlciYgZGVjb2RlciwgUmVmUHRyPEltYWcKICAgICByZXR1cm4gZGVjb2RlSW1hZ2UoZGVjb2Rl
ciwgaW1hZ2UpOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW1hZ2VIYW5kbGU+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQotewotICAg
IGVuY29kZU9wdGlvbmFsSW1hZ2UoZW5jb2RlciwgaW1hZ2VIYW5kbGUuaW1hZ2UuZ2V0KCkpOwot
fQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW1hZ2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQotewotICAgIGlmICghZGVjb2RlT3B0aW9u
YWxJbWFnZShkZWNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZSkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mIGZvbnQp
CiB7CiAgICAgZW5jb2RlciA8PCBmb250LT5vcmlnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMDc0MzI1YjVhOWNiZGFkYTEzMGMwOTFm
YzNkM2IwNTI4YWFmZGY5Ny4uNjRhN2NmZjM1ZWJhMTYxZTk4ZGEwNmU5MDU1YTYxMDliMmY4Zjlm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAg
LTEwOSw3ICsxMDksNiBAQCBjbGFzcyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsK
IGNsYXNzIEZvbnQ7CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgSFRUUEhlYWRlck1h
cDsKLWNsYXNzIEltYWdlSGFuZGxlOwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRSZWN0Owog
Y2xhc3MgSW50U2l6ZTsKQEAgLTQxOCwxMSArNDE3LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxSZWY8V2ViQ29yZTo6Rm9udD4+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2Vi
Q29yZTo6Rm9udFBsYXRmb3JtRGF0YT4gZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImKTsKIH07
CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VIYW5kbGU+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkltYWdl
SGFuZGxlJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6SW1hZ2VIYW5kbGUmKTsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggZDdiOTBi
NTcyZGE1ZmMxM2NkM2JkMDg2YjQ3NzE0YjEwY2QzNWNhOS4uNjQxYTFjOGUwNjU3MDY5ZGZhZTc0
YmMwZTlmNjdiYWJmNjAzZGU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTM0
Niw5ICszNDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTYXZlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2NhbGU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRDVE06Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0YXRlOgogICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TWl0ZXJMaW1pdDoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxOTVkOGU4NTZjMjNjNTJiYzMxYmVmYWQ2Y2ZhZmU2ZTQzZGQ5ODU3Li41Yzk0MDIx
Yzc5NTViMTZhMmYxYWVlNTZiYjM5OTBhMGMzNmVlNzYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMjEtMDItMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0dQVSBQcm9jZXNzXTogSW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZ3B1LXByb2Nl
c3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wMi0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIEdQVVByb2Nlc3MgTWVkaWFSZWNvcmRl
ciBoYW5kbGVzIGNvcnJlY3RseSBtdXRlZCB0cmFja3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGE2YmI5MmNiYTUyNmFjMTkyZWRlYTE5ODIyOGM0YjJmNzhi
NmFlZDkuLjkwYWFiZjI5ZGRkMDk1M2Y4OGVkNmE2YjdjNzUxZGI2MTgzYTBhNDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMSw0OSArMSw4IEBACi1jYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5jYW52YXNwYXR0ZXJuLmh0
bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBo
YS5pbWFnZXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29t
cG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmNvcHkuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWF0b3Au
aHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292ZXJl
ZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2UtaW4uaHRtbCBbIENyYXNo
IF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNv
dXJjZS1vdXQuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5h
bmltYXRlZC5naWYuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVy
bi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0
dGVybi5iYXNpYy5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5w
YXR0ZXJuLmJhc2ljLm5vY29udGV4dC5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnBhdHRlcm4ubW9kaWZ5LmNhbnZhczEuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFzMi5odG1sIFsgQ3Jhc2ggXQotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTEuaHRtbCBbIENyYXNoIF0KLWNh
bnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5tb2RpZnkuaW1hZ2UyLmh0bWwgWyBDcmFzaCBd
Ci1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQuYmFzaWMuaHRt
bCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5ub3JlcGVh
dC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5w
YWludC5ub3JlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5vdXRzaWRlLmh0bWwgWyBDcmFz
aCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQub3JpZW50YXRpb24uY2Fu
dmFzLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQu
b3JpZW50YXRpb24uaW1hZ2UuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0dGVybi5wYWludC5yZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1jYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMi5odG1sIFsgQ3Jh
c2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDMu
aHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBl
YXQub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJu
LnBhaW50LnJlcGVhdHguYmFzaWMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0dGVybi5wYWludC5yZXBlYXR4LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHgub3V0c2lkZS5odG1sIFsgQ3Jhc2gg
XQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkuYmFzaWMuaHRt
bCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5
LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBh
aW50LnJlcGVhdHkub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5wYXR0ZXJuLnJlcGVhdC5lbXB0eS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLnJlcGVhdC5udWxsLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnNoYWRvdy5wYXR0ZXJuLmFscGhhLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLnNoYWRvdy5wYXR0ZXJuLmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnNoYWRvdy5wYXR0ZXJuLnRyYW5zcGFyZW50LjEuaHRtbCBbIENyYXNoIF0K
LWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMi5odG1s
IFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy9pbml0aWFsLnJlc2V0LnBhdHRlcm4uaHRt
bCBbIENyYXNoIF0KLQogY29tcG9zaXRpbmcvY2FudmFzL2FjY2VsZXJhdGVkLWNhbnZhcy1jb21w
b3NpdGluZy5odG1sIFsgRmFpbHVyZSBdCiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9zcGFu
T3ZlcmxhcHNDYW52YXMuaHRtbCBbIEZhaWx1cmUgXQogCiBjc3MzL2JsZW5kaW5nL2JsZW5kLW1v
ZGUtY2xpcC1hY2NlbGVyYXRlZC1ibGVuZGluZy1jYW52YXMuaHRtbCBbIEZhaWx1cmUgXQorCiBk
aXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC5odG1sIFsgRmFpbHVyZSBdCiAKIGZhc3Qv
Y2FudmFzLzJkLmZpbGxUZXh0LmdyYWRpZW50Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTU1LDMzICsx
NCwxMyBAQCBmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmQtaW1hZ2UuaHRtbCBbIEZhaWx1cmUgXQog
ZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kLXNvbGlkLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2Fu
dmFzL2NhbnZhcy1ibGVuZGluZy1jbGlwcGluZy5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZh
cy9jYW52YXMtYmxlbmRpbmctY29sb3Itb3Zlci1jb2xvci5odG1sIFsgRmFpbHVyZSBdCitmYXN0
L2NhbnZhcy9jYW52YXMtYmxlbmRpbmctY29sb3Itb3Zlci1pbWFnZS5odG1sIFsgVGltZW91dCBd
CiBmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmRpbmctY29sb3Itb3Zlci1ncmFkaWVudC5odG1sIFsg
RmFpbHVyZSBdCi1hc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWltYWdlLmh0
bWwgWyBUaW1lb3V0IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLXBh
dHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1ncmFkaWVu
dC1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGlu
Zy1pbWFnZS1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1i
bGVuZGluZy1wYXR0ZXJuLW92ZXItY29sb3IuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2Nh
bnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItZ3JhZGllbnQuaHRtbCBbIENyYXNoIF0KLWZhc3Qv
Y2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItaW1hZ2UuaHRtbCBbIENyYXNoIF0K
LWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItcGF0dGVybi5odG1sIFsg
Q3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWNyZWF0ZVBhdHRlcm4tZmlsbFJlY3Qtc2hhZG93
Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRlUGF0dGVybi12aWRlby1s
b2FkaW5nLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRlUGF0dGVybi12
aWRlby1tb2RpZnkuaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFzL2NhbnZhcy1kcmF3SW1hZ2Ut
Y29tcG9zaXRlLWNvcHkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotZmFzdC9jYW52YXMvY2Fu
dmFzLWZpbGxQYXRoLXBhdHRlcm4tc2hhZG93Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9j
YW52YXMtaW1hZ2Utc2hhZG93Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtaW1h
Z2VTbW9vdGhpbmdFbmFibGVkLXBhdHRlcm5zLmh0bWwgWyBDcmFzaCBdCiBmYXN0L2NhbnZhcy9j
YW52YXMtbGFyZ2UtZGltZW5zaW9ucy5odG1sIFsgRmFpbHVyZSBdCi1mYXN0L2NhbnZhcy9jYW52
YXMtcGF0dGVybi1iZWhhdmlvdXIuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1w
YXR0ZXJuLW1vZGlmeS5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4t
dHJhbnNmb3JtLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtcGF0dGVybi13aXRo
LXRyYW5zZm9ybS5odG1sIFsgQ3Jhc2ggXQogZmFzdC9jYW52YXMvY2FudmFzLXJlbmRlci1sYXll
ci5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy9oaWRwaS1yZXBhaW50LW9uLXJldGluYS1s
ZWF2ZXMtYml0cy1iZWhpbmQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotZmFzdC9jYW52YXMv
aW1hZ2Utb2JqZWN0LWluLWNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvaW1hZ2Ut
cGF0dGVybi1yb3RhdGUuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL3BhdHRlcm4td2l0aC10
cmFuc2Zvcm0uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL3BhdHRlcm5maWxsLXJlcGVhdC5o
dG1sIFsgQ3Jhc2ggXQorCiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVy
ZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtdGVzdC5odG1sIFsg
RmFpbHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWNyZWF0aW9uLWF0dHJpYnV0ZXMu
aHRtbCBbIEZhaWx1cmUgXQpAQCAtMTAwLDM2ICszOSwzMSBAQCBmYXN0L2NhbnZhcy93ZWJnbC90
ZXhJbWFnZTJELXZpZGVvLWZsaXBZLWZhbHNlLmh0bWwgWyBUaW1lb3V0IF0KIGZhc3QvY2FudmFz
L3dlYmdsL3RleEltYWdlMkQtdmlkZW8tZmxpcFktdHJ1ZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0
L2NhbnZhcy93ZWJnbC90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qv
Y2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sIFsgVGltZW91dCBdCi0K
IGZhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiBm
YXN0L2ltYWdlcy9hbmltYXRlZC1pbWFnZS1tcDQtY3Jhc2guaHRtbCBbIFRpbWVvdXQgXQogZmFz
dC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0Lmh0bWwgWyBUaW1lb3V0IF0KIGZhc3QvaW1hZ2Vz
L29yZGVyZWQtYW5pbWF0ZWQtaW1hZ2UtZnJhbWVzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
LQogZmFzdC9tZWRpYWNhcHR1cmVmcm9tZWxlbWVudC9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW0t
ZXhjZXB0aW9ucy5odG1sIFsgQ3Jhc2ggXQogZmFzdC9tZWRpYWNhcHR1cmVmcm9tZWxlbWVudC9D
YW52YXNDYXB0dXJlTWVkaWFTdHJlYW0td2ViZ2wtZXZlbnRzLmh0bWwgWyBUaW1lb3V0IF0KIGZh
c3QvbWVkaWFzdHJlYW0vY2FwdHVyZVN0cmVhbS9jYW52YXMzZC5odG1sIFsgRmFpbHVyZSBdCiBm
YXN0L21lZGlhc3RyZWFtL21lZGlhLWVsZW1lbnQtY3VycmVudC10aW1lLmh0bWwgWyBGYWlsdXJl
IF0KIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLWludGVycnVwdGVkLmh0bWwg
WyBGYWlsdXJlIF0KLQogZmFzdC9yZXBhaW50L2NhbnZhcy1vYmplY3QtZml0Lmh0bWwgWyBGYWls
dXJlIF0KIGZhc3QvcmVwYWludC9jYW52YXMtcHV0SW1hZ2VEYXRhLmh0bWwgWyBGYWlsdXJlIF0K
IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwg
WyBUaW1lb3V0IF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0
aW9uLmh0bWwgWyBGYWlsdXJlIF0KLQogZmFzdC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9maWxs
LWdyYWRpZW50LUNPTFItMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3RleHQvY2Fu
dmFzLWNvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1DT0xSLTIuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogZmFzdC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtQ09M
Ui0zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvdGV4dC9jYW52YXMtY29sb3ItZm9u
dHMvc3Ryb2tlLWdyYWRpZW50LUNPTFItNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0
L3RleHQvY2FudmFzLWNvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1DT0xSLTUuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQorCiBodHRwL3Rlc3RzL2NhbnZhcy9jb2xvci1mb250cy9maWxsLWdy
YWRpZW50LXNiaXgtMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBodHRwL3Rlc3RzL2NhbnZh
cy9jb2xvci1mb250cy9maWxsLWdyYWRpZW50LXNiaXgtMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiBodHRwL3Rlc3RzL2NhbnZhcy9jb2xvci1mb250cy9maWxsLWdyYWRpZW50LXNiaXgtNC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBodHRwL3Rlc3RzL2NhbnZhcy9jb2xvci1mb250cy9z
dHJva2UtZ3JhZGllbnQtc2JpeC0yLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGh0dHAvdGVz
dHMvY2FudmFzL2NvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1zYml4LTMuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9udHMvc3Ryb2tlLWdyYWRp
ZW50LXNiaXgtNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1odHRwL3Rlc3RzL2NhbnZhcy9w
aGlsaXAvdGVzdHMvc2VjdXJpdHkucGF0dGVybi5jYW52YXMudGltaW5nLmh0bWwgWyBDcmFzaCBd
Ci1odHRwL3Rlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvc2VjdXJpdHkucGF0dGVybi5jcm9zcy5o
dG1sIFsgQ3Jhc2ggXQogaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9jbGVhci1rZXktaGxzLWFl
czEyOC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL21lZGlhL2NsZWFya2V5L2NvbGxlY3Qt
d2Via2l0LW1lZGlhLXNlc3Npb24uaHRtbCBbIENyYXNoIF0KIGh0dHAvdGVzdHMvbWVkaWEvaGxz
L2hscy1oZHItc3dpdGNoLmh0bWwgWyBUaW1lb3V0IF0KQEAgLTEzOSw3ICs3Myw2IEBAIGh0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQtcmVmZXJlci5odG1sIFsgRmFpbHVyZSBdCiBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLWRvY3VtZW50Lmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtcGxheS1zdHJlYW0tY2h1bmtlZC1pY3kuaHRtbCBbIEZhaWx1cmUgXQogaHR0
cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRp
YS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0
Lmh0bWwgWyBUaW1lb3V0IF0KLW1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250
cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItYXV0by1oaWRlLmh0bWwgWyBDcmFzaCBdCiBodHRwL3Rl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9waXAtc3VwcG9ydC9waXAtc3VwcG9ydC1s
aXZlLWJyb2FkY2FzdC5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9za2lwLWJhY2stc3VwcG9ydC9za2lwLWJhY2stc3VwcG9ydC1idXR0b24t
Y2xpY2suaHRtbCBbIFRpbWVvdXQgXQogaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvc2tpcC1iYWNrLXN1cHBvcnQvc2tpcC1iYWNrLXN1cHBvcnQtbGl2ZS1icm9hZGNhc3Qu
aHRtbCBbIFRpbWVvdXQgXQpAQCAtMTc3LDkgKzExMCw4IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkv
d2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxvd2VkLWNyb3Nzb3JpZ2luLXJlZGlyZWN0
Lmh0CiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYWxs
b3dlZC1jcm9zc29yaWdpbi5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dl
YmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1jcm9zc29yaWdpbi1yZWRpcmVj
dC5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1y
ZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1jcm9zc29yaWdpbi5odG1sIFsgVGltZW91dCBdCi0KLWh0
dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZh
aWxhYmxlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci1hdWRpby1iaXRyYXRlLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvd3B0L21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxlLmh0bWwgWyBGYWls
dXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0aXBsZS1zdGFy
dC1zdG9wLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFj
a3MuaHRtbCBbIENyYXNoIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvcGF1c2UtcmVjb3JkaW5n
Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTE5MCw5NCArMTIyLDEwIEBAIGh0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1pcy11c2VyLXZlcmlmeWluZy1wbGF0Zm9ybS1hdXRoZW50
aWNhdG9yCiBpbXBvcnRlZC9ibGluay9mYXN0L2NhbnZhcy9jYW52YXMtY2xpcC1zdGFjay1wZXJz
aXN0ZW5jZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC9ibGluay9mYXN0L2Nh
bnZhcy9jYW52YXMtc3RhdGUtcGVyc2lzdGVuY2Utbm8tZGlydHkuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogaW1wb3J0ZWQvYmxpbmsvZmFzdC9jYW52YXMvY2FudmFzLXVuYmFsYW5jZWQtc2F2
ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC9ibGluay9zdmcvY2FudmFzL2Nh
bnZhcy1kcmF3LXBhdHRlcm4tc2l6ZS5odG1sIFsgQ3Jhc2ggXQogCi1pbXBvcnRlZC93M2MvY2Fu
dmFzLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5jYW52YXNwYXR0ZXJuLmh0bWwgWyBDcmFzaCBd
Ci1pbXBvcnRlZC93M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5pbWFnZXBhdHRl
cm4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292
ZXJlZC5wYXR0ZXJuLmNvcHkuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
Y29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWF0b3AuaHRtbCBbIENyYXNo
IF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRl
c3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLmNvbXBv
c2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2UtaW4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVk
L3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1vdXQuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5iYXNpYy5jYW52YXMu
aHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5iYXNpYy5pbWFn
ZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLmJhc2ljLm5v
Y29udGV4dC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLmNy
b3NzY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4u
bW9kaWZ5LmNhbnZhczEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0
dGVybi5tb2RpZnkuY2FudmFzMi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8y
ZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQuY29vcmQxLmh0bWwgWyBDcmFzaCBd
Ci1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQuY29vcmQyLmh0
bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBl
YXQuY29vcmQzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4u
cGFpbnQubm9yZXBlYXQub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZh
cy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmltYWdlLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmJh
c2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQu
cmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0
ZXJuLnBhaW50LnJlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52
YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRl
ZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0Lm91dHNpZGUuaHRtbCBbIENyYXNo
IF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4LmJhc2ljLmh0
bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0
eC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5w
YWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMv
MmQucGF0dGVybi5wYWludC5yZXBlYXR5LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5jb29yZDEuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5Lm91dHNpZGUuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5yZXBlYXQuZW1wdHku
aHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5yZXBlYXQubnVs
bC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5zaGFkb3cucGF0dGVybi5h
bHBoYS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5zaGFkb3cucGF0dGVy
bi5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5zaGFkb3cucGF0
dGVybi50cmFuc3BhcmVudC4xLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJk
LnNoYWRvdy5wYXR0ZXJuLnRyYW5zcGFyZW50LjIuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3cz
Yy9jYW52YXMvaW5pdGlhbC5yZXNldC5wYXR0ZXJuLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2MvY2FudmFzL3NlY3VyaXR5LnBhdHRlcm4uY2FudmFzLnRpbWluZy5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL2NhbnZhcy9zZWN1cml0eS5wYXR0ZXJuLmNyb3NzLmh0bWwgWyBDcmFzaCBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwud2lu
ZG93Lmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvcmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9jb21wb3NpdGluZy8yZC5jb21w
b3NpdGUuZ2xvYmFsQWxwaGEuY2FudmFzcGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0aW5nLzJk
LmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5pbWFnZXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9jb21wb3NpdGlu
Zy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uY29weS5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0
aW5nLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5kZXN0aW5hdGlvbi1hdG9wLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0
aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0
ZXJuLnNvdXJjZS1pbi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS51bmNvdmVy
ZWQucGF0dGVybi5zb3VyY2Utb3V0Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8y
ZC5wYXR0ZXJuLmFuaW1hdGVkLmdpZi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMv
MmQucGF0dGVybi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVz
LzJkLnBhdHRlcm4uYmFzaWMuaW1hZ2UuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVz
LzJkLnBhdHRlcm4uYmFzaWMubm9jb250ZXh0Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0
eWxlcy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0
eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tl
LXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ry
b2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTEuaHRtbCBbIENyYXNoIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1z
dHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMi5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5k
LXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5iYXNpYy5odG1sIFsgQ3Jh
c2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50
L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDEu
aHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBl
YXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBh
aW50Lm5vcmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQu
cGF0dGVybi5wYWludC5ub3JlcGVhdC5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tl
LXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmNhbnZhcy5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2Zp
bGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5vcmllbnRhdGlvbi5pbWFnZS5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQu
YmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQu
cmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVy
bi5wYWludC5yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8y
ZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Ut
c3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFu
ZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5iYXNpYy5odG1sIFsgQ3Jh
c2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50
L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4LmNvb3JkMS5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4
Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFp
bnQucmVwZWF0eS5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0
dGVybi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHls
ZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1z
dHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucmVwZWF0LmVtcHR5Lmh0bWwgWyBDcmFzaCBdCi1pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQt
c3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnRyYW5zZm9ybS5pZGVudGl0eS5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2lt
YWdlLXNtb290aGluZy9pbWFnZXNtb290aGluZy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0
ZUltYWdlQml0bWFwLW9yaWdpbi5zdWIuaHRtbCBbIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2xpbmUtc3R5bGVzLzJkLmxpbmUu
Y2FwLmNsb3NlZC5odG1sIFsgQ3Jhc2ggXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9lbGVtZW50L3BhdGgtb2JqZWN0cy8yZC5wYXRoLnN0cm9rZS5zY2FsZTIu
aHRtbCBbIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9lbGVtZW50L3NoYWRvd3MvMmQuc2hhZG93LnBhdHRlcm4uYWxwaGEuaHRtbCBbIENyYXNo
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9z
aGFkb3dzLzJkLnNoYWRvdy5wYXR0ZXJuLmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvc2hhZG93cy8yZC5zaGFk
b3cucGF0dGVybi50cmFuc3BhcmVudC4xLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvc2hhZG93cy8yZC5zaGFkb3cucGF0
dGVybi50cmFuc3BhcmVudC4yLmh0bWwgWyBDcmFzaCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
bG9hZGluZy10aGUtbWVkaWEtcmVzb3VyY2UvbG9hZC1ldmVudHMtbmV0d29ya1N0YXRlLmh0bWwg
WyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wcmVzZXJ2ZXMtcGl0Y2guaHRtbCBb
IEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9pbml0aWFsLnJlc2V0LnBhdHRl
cm4uaHRtbCBbIENyYXNoIF0KQEAgLTMxMCw2ICsxNTgsNyBAQCBtZWRpYS9tZWRpYS1jb250cm9s
bGVyLXRpbWUuaHRtbCBbIFRpbWVvdXQgXQogbWVkaWEvbWVkaWEtY29udHJvbGxlci11bnBhdXNl
Lmh0bWwgWyBUaW1lb3V0IF0KIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXpl
Lmh0bWwgWyBUaW1lb3V0IF0KIG1lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21lZGlhY2FwYWJpbGl0
aWVzLXR5cGVzLmh0bWwgWyBGYWlsdXJlIF0KK21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9t
ZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItYXV0by1oaWRlLmh0bWwgWyBDcmFzaCBd
CiBtZWRpYS90cmFjay9hdWRpby10cmFjay5odG1sIFsgQ3Jhc2ggXQogbWVkaWEvdmlkZW8tY2Fu
dmFzLWNyZWF0ZVBhdHRlcm4uaHRtbCBbIENyYXNoIF0KIG1lZGlhL3ZpZGVvLWNvbnRyb2xsZXIt
Y2hpbGQtcmF0ZS5odG1sIFsgVGltZW91dCBdCkBAIC0zMjQsOSArMTczLDkgQEAgc3ZnL2FzLWlt
YWdlL3N2Zy1jYW52YXMtcGF0dGVybi13aXRoLWxpbmstdGFpbnRlZC5odG1sIFsgQ3Jhc2ggXQog
c3ZnL2NhbnZhcy9jYW52YXMtZ2xvYmFsLWFscGhhLXN2Zy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiBzdmcvY2FudmFzL2NhbnZhcy1wYXR0ZXJuLXN2Zy5odG1sIFsgQ3Jhc2ggXQogCi13ZWJh
dWRpby9QYW5uZXIvaHJ0Zi1kYXRhYmFzZS5odG1sIFsgVGltZW91dCBdCiB3ZWJhdWRpby9jb2Rl
Yy10ZXN0cy9hYWMvdmJyLTEyOGticHMtNDRraHouaHRtbCBbIFRpbWVvdXQgXQogd2ViYXVkaW8v
Y29kZWMtdGVzdHMvbXAzLzEyOGticHMtNDRraHouaHRtbCBbIFRpbWVvdXQgXQord2ViYXVkaW8v
UGFubmVyL2hydGYtZGF0YWJhc2UuaHRtbCBbIFRpbWVvdXQgXQogCiB3ZWJnbC8xLjAuMy9jb25m
b3JtYW5jZS9jYW52YXMvY2FudmFzLXRlc3QuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMS4wLjMv
Y29uZm9ybWFuY2UvY2FudmFzL2RyYXctc3RhdGljLXdlYmdsLXRvLW11bHRpcGxlLWNhbnZhcy10
ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTM5OSw2OCArMjQ4LDYgQEAgd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2JhLXJnYmEtdW5zaWduZWRf
c2hvcnRfNV8KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3VuaWZvcm1zL3VuaWZvcm0tc2FtcGxl
cnMtdGVzdC5odG1sIFsgVGltZW91dCBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVhZGlu
Zy9yZWFkLXBpeGVscy1wYWNrLXBhcmFtZXRlcnMuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbCBbIFRpbWVvdXQg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9n
MTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTJkLXIxNmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxNmYtcmVkLWhhbGZfZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcjMyZi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjgtcmVkLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
MmQtcjh1aS1yZWRfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnMTZmLXJnLWZsb2F0
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTJkLXJnMTZmLXJnLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmczMmYtcmctZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcmc4LXJnLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTJkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiMTZmLXJnYi1o
YWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTJkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVu
c2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMTZmLXJn
YmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTE2Zi1yZ2JhLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTMy
Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1y
Z2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTgtcmdiYS11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtc3JnYjhfYWxwaGE4LXJnYmEt
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qt
cjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdi
LXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjE2Zi1yZWQtZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMzJmLXJlZC1mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0z
ZC1yOC1yZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yOHVpLXJlZF9pbnRlZ2VyLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhcy90ZXgtM2QtcmcxNmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmcxNmYtcmctaGFsZl9mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0zZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzgtcmctdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0zZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiMTZmLXJn
Yi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiMzJmLXJn
Yi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiNTY1
LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsg
RmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0z
ZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhMTZmLXJn
YmEtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhMzJmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTQt
cmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80
XzRfNC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTh1aS1y
Z2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0zZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rhbmds
ZS90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQt
cjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yMTFm
X2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVy
ZSBdCkBAIC00NzcsMTAgKzI2NCwxMCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnOHVpLXJnX2ludGVnZXItdQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1y
Z2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiMTZmLXJnYi1oYWxmX2Zs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5n
bGUvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1y
Z2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjVfYTEt
cmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiNTY1
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiNTY1LXJnYi11bnNp
Z25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjgtcmdiLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjlfZTUtcmdiLWZsb2F0Lmh0bWwgWyBGYWls
dXJlIF0KQEAgLTQ5Miw4ICsyNzksOCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1y
Z2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1y
Z2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2JhOHVpLXJn
YmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtc3JnYjgtcmdi
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5
dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJf
cmVjdGFuZ2xlL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0
YW5nbGUvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZf
cmV2Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTUxMCwxMCArMjk3LDEwIEBAIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2Qtcmc4dWktcmdf
aW50ZWdlci11CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1y
Z2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2IzMmYtcmdiLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3Vi
X3JlY3RhbmdsZS90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rhbmds
ZS90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFu
Z2xlL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0z
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2Qt
cmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjh1aS1yZ2Jf
aW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiOV9lNS1yZ2It
ZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTI1LDggKzMxMiw3MCBAQCB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYmE0LXJn
YmEtdW5zaWduZQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJf
cmVjdGFuZ2xlL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBb
IEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJf
cmVjdGFuZ2xlL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xl
L3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rhbmds
ZS90ZXgtM2Qtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1z
cmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2Qtc3Jn
YjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9i
MTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxNmYtcmVkLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTJkLXIxNmYtcmVkLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjMyZi1yZWQtZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcjgtcmVkLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjh1aS1yZWRfaW50ZWdlci11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnMTZmLXJnLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnMTZmLXJnLWhh
bGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmczMmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmc4LXJnLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhcy90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJn
YjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJn
YjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
MmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQor
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJn
Yi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUu
aHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I4dWktcmdiX2ludGVn
ZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMTZmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdi
YTE2Zi1yZ2JhLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTMyZi1yZ2JhLWZsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJk
LXJnYmE0LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3No
b3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJn
YmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtc3JnYjhfYWxwaGE4LXJn
YmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0z
ZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLWhh
bGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFm
XzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtM2QtcjE2Zi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjE2Zi1yZWQtaGFsZl9m
bG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yMzJmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yOC1yZWQtdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0zZC1yOHVpLXJlZF9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmcxNmYt
cmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtM2QtcmcxNmYtcmctaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzMyZi1yZy1m
bG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yZzgtcmctdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzh1aS1yZ19pbnRl
Z2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2Ix
NmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1
X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hv
cnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtcmdi
NTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I4LXJnYi11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJn
YmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhMTZmLXJnYmEtaGFsZl9mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0z
ZC1yZ2JhMzJmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhOC1y
Z2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXNy
Z2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXIx
MWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1y
MTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3Rl
eC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1s
IFsgRmFpbHVyZSBdCkBAIC01NDMsMTAgKzM5MiwxMCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZzh1aS1y
Zwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2lt
YWdlX2JpdG1hcC90ZXgtMmQtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0
bWFwL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1h
cC90ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0y
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgt
MmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0
bWFwL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2Vf
Yml0bWFwL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFw
X2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1h
cF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZf
NS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1h
Z2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjlfZTUtcmdiLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTU1OCw4ICs0MDcsOCBAQCB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1y
Z2JhNC1yZwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9m
cm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1h
Z2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXNyZ2I4LXJnYi11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXNyZ2I4X2FscGhh
OC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtc3Jn
YjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcjEx
Zl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXIx
MWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4
LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwg
WyBGYWlsdXJlIF0KQEAgLTU3NiwxMCArNDI1LDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnOHVpLXJn
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1h
Z2VfYml0bWFwL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRt
YXAvdGV4LTNkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFw
L3RleC0zZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0z
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRt
YXAvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBf
ZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFw
X2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiOV9lNS1yZ2ItZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTkxLDggKzQ0MCw4IEBAIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJn
YmE0LXJnCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zy
b21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtc3JnYjgtcmdiLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtc3JnYjhfYWxwaGE4
LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1zcmdi
OC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvbWlzYy9pbnRlZ2VyLWN1YmVtYXAtdGV4dHVyZS1zYW1wbGluZy5odG1s
IFsgQ3Jhc2ggXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0y
ZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFs
Zl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC02MTAsMTAgKzQ1OSwxMCBAQCB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnOHVpLXJnX2ludGVnZXItdW5z
aWduZWRfYnl0ZS5odAogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3Rl
eC0yZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgt
MmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4
LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2I1X2ExLXJnYmEt
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8x
Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRl
by90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiNTY1LXJnYi11bnNp
Z25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1y
Z2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjlfZTUtcmdiLWZsb2F0
Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTYyNSw4ICs0NzQsOCBAQCB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1s
IFsgRgogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2Jh
NC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0yZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQt
c3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy92aWRlby90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yMTFmX2cxMWZf
YjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4
LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwg
WyBGYWlsdXJlIF0KQEAgLTY0MywxMCArNDkyLDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtM2Qtcmc4dWktcmdfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjE2Zi1y
Z2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3ZpZGVvL3RleC0zZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2IzMmYtcmdi
LWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy92aWRlby90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiNTY1LXJn
Yi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRl
by90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I1
NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVf
Nl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92
aWRlby90ZXgtM2QtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjh1aS1yZ2JfaW50
ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiOV9lNS1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQpAQCAtNjU4LDggKzUwNyw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy92aWRlby90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWdu
ZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNk
LXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1zcmdiOC1yZ2ItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvdmlkZW8vdGV4LTNkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0z
ZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1y
Z2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2Nh
bnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9y
ZXYuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNjc2LDEwICs1MjUsMTAgQEAgd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11
bnNpZ25lZF8KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMv
dGV4LTJkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiMTZmLXJnYi1oYWxmX2Zs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93
ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNTY1
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hv
cnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZh
cy90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgt
MmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5z
aWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xf
Y2FudmFzL3RleC0yZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3Rl
eC0yZC1yZ2JhMTZmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNjg5LDggKzUzOCw4
IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJk
LXJnYmE0LXJnYmEtdW5zaWduZWRfYnl0ZS5oCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80
XzQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dl
YmdsX2NhbnZhcy90ZXgtMmQtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJk
LXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtc3JnYjgt
cmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3Rl
eC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcjExZl9nMTFmX2Ix
MGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2ln
bmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNzA3LDEwICs1NTYs
MTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgt
M2Qtcmc4dWktcmdfaW50ZWdlci11bnNpZ25lZF8KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgt
M2QtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjMyZi1yZ2ItZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmds
X2NhbnZhcy90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJn
YjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiNV9hMS1yZ2Jh
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0
XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMv
dGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2Qtcmdi
OC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I4dWktcmdiX2ludGVnZXItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2JhMTZmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQpAQCAtNzIwLDEyICs1NjksMTIgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmgKIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYmE0LXJn
YmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2Vi
Z2xfY2FudmFzL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1z
cmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXNyZ2I4LXJnYi11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsL21hbnktY29udGV4dHMtYWNjZXNz
LWFmdGVyLWxvc3MuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1j
b25zb2xlLXdhcm5pbmcuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0
cy1nYy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLW9sZGVzdC1j
b250ZXh0LWxvc3QuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13
ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVsdC5odG1sIFsgVGltZW91dCBdCiAKLXdlYnJ0
Yy9hdWRpby12aWRlby1lbGVtZW50LXBsYXlpbmcuaHRtbCBbIEZhaWx1cmUgXQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKK3dlYnJ0Yy9hdWRpby12aWRlby1lbGVtZW50LXBsYXlpbmcuaHRt
bCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419437</attachid>
            <date>2021-02-05 11:22:11 -0800</date>
            <delta_ts>2021-02-05 14:48:38 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-219468-20210205112210.patch</filename>
            <type>text/plain</type>
            <size>126712</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRjZTJmNzdhZTU3MDQ1
YTAxMjUxMzAwNjFlYjE0ZDA5MWQxNzk3Ny4uNzljMjFjNzE3ZjIyZTg0YjUzYzZlNWFkOWE2ZmU3
ZGYyM2VkYjFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIxLTAyLTA1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc106
IEltcGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm9yQ2Fu
dmFzUGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0Nv
bnRleHRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0
ZTo6R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhdHRlcm46OlBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6c2V0VGls
ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OnRpbGVJbWFnZSBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oOgorICAgICAgICAoV2ViQ29yZTo6
UGF0dGVybjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpGaWxsU291cmNlOjpGaWxsU291cmNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpzaG91bGREdW1wRm9yRmxhZ3MpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmFwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpzYWZlQ29weSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5
dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjpTZXRJbmxp
bmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3RhdGU6
OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6U2V0U3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjphcHBseSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJ
bmxpbmVGaWxsR3JhZGllbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yOjphcHBseSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRT
dGF0ZTo6c3RhdGVDaGFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldFN0YXRlOjpzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6
U2V0SW5saW5lRmlsbENvbG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6U2V0SW5saW5lU3Ry
b2tlQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElu
bGluZVN0cm9rZUNvbG9yOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29udGFpbnNPbmx5SW5saW5lU3RhdGVD
aGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5k
U3RhdGVDaGFuZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6d2lsbEFwcGVuZEl0ZW1PZlR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmFwcGx5U2V0U3RhdGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRVRpbGU6OnBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXR0ZXJuRm9yRGVzY3JpcHRpb24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKToKKwog
MjAyMS0wMi0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
TWFrZSBzdXJlIEdQVVByb2Nlc3MgTWVkaWFSZWNvcmRlciBoYW5kbGVzIGNvcnJlY3RseSBtdXRl
ZCB0cmFja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggOTVkOWEyYTkyZjMwMWZhNGY0MTcyYTBiOTZmMGQ2MGU0ZmE0
YjVjZi4uYjNlMzFjM2FhMDY1MzliMzU5NzUzNjc3MDJiOWNmNTBkN2QxZmNmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMS0wMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFw
cGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBJbXBsZW1lbnQgU2V0U3RhdGUgRGlz
cGxheUxpc3QgaXRlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWNvZGVJdGVtKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8SW1hZ2VIYW5kbGU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisKIDIwMjEtMDItMDMgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBHUFVQ
cm9jZXNzIE1lZGlhUmVjb3JkZXIgaGFuZGxlcyBjb3JyZWN0bHkgbXV0ZWQgdHJhY2tzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwCmluZGV4IDBjODVmOGE4
Mzc2Nzk2NmJhMjZiNWMzMzNlZDYwYzAxYTUwYWExMTYuLmU1ZjIyMTBhZTk4NzMzZTk4NGFiNTg0
ZjZmOWEzYzg0N2I1YTgwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDYW52YXMuY3BwCkBAIC0xMjAyLDkgKzEyMDIsMTAgQEAgUmVmPEpTT046OkFycmF5T2Y8SlNP
Tjo6VmFsdWU+PiBJbnNwZWN0b3JDYW52YXM6OmJ1aWxkQXJyYXlGb3JDYW52YXNHcmFkaWVudChj
b24KIAogUmVmPEpTT046OkFycmF5T2Y8SlNPTjo6VmFsdWU+PiBJbnNwZWN0b3JDYW52YXM6OmJ1
aWxkQXJyYXlGb3JDYW52YXNQYXR0ZXJuKGNvbnN0IENhbnZhc1BhdHRlcm4mIGNhbnZhc1BhdHRl
cm4pCiB7Ci0gICAgSW1hZ2UmIHRpbGVJbWFnZSA9IGNhbnZhc1BhdHRlcm4ucGF0dGVybigpLnRp
bGVJbWFnZSgpOworICAgIGF1dG8mIHRpbGVJbWFnZSA9IGNhbnZhc1BhdHRlcm4ucGF0dGVybigp
LnRpbGVJbWFnZSgpOworICAgIEZsb2F0UmVjdCByZWN0ID0geyB7IH0sIHRpbGVJbWFnZS5zaXpl
KCkgfTsKICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0aWxlSW1h
Z2Uuc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKLSAgICBpbWFnZUJ1ZmZl
ci0+Y29udGV4dCgpLmRyYXdJbWFnZSh0aWxlSW1hZ2UsIEZsb2F0UG9pbnQoMCwgMCkpOworICAg
IGltYWdlQnVmZmVyLT5jb250ZXh0KCkuZHJhd05hdGl2ZUltYWdlKHRpbGVJbWFnZSwgdGlsZUlt
YWdlLnNpemUoKSwgcmVjdCwgcmVjdCk7CiAKICAgICBTdHJpbmcgcmVwZWF0OwogICAgIGJvb2wg
cmVwZWF0WCA9IGNhbnZhc1BhdHRlcm4ucGF0dGVybigpLnJlcGVhdFgoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4
IDJhMDY3NWExMzdlYTIyNjk0ZmIwZGFjZmE1Y2RlZDEzNzE2MTljM2IuLjFlNTk0Y2JlZTc3Yjk2
NzU1ZjUzYjlmOGY0M2E5Y2ZiOWQ1NjYzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzcsMjYgKzc3LDYgQEAg
cHJpdmF0ZToKICAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6ZmxhZykgJiYgKG1fc3RhdGUucHJvcGVydHkgIT0gc3RhdGUucHJvcGVydHkpKSBcCiAg
ICAgICAgIGNoYW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6ZmxhZyk7CiAKLUdy
YXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZSgpCi0gICAgOiBzaG91bGRB
bnRpYWxpYXModHJ1ZSkKLSAgICAsIHNob3VsZFNtb290aEZvbnRzKHRydWUpCi0gICAgLCBzaG91
bGRTdWJwaXhlbFF1YW50aXplRm9udHModHJ1ZSkKLSAgICAsIHNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zKGZhbHNlKQotI2lmIFVTRShDRykKLSAgICAvLyBDb3JlIEdyYXBoaWNzIGluY29ycmVjdGx5
IHJlbmRlcnMgc2hhZG93cyB3aXRoIHJhZGl1cyA+IDhweCAoPHJkYXI6Ly9wcm9ibGVtLzgxMDM0
NDI+KSwKLSAgICAvLyBidXQgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGlzIGJ1Z2d5IGJlaGF2aW9y
IGZvciBjYW52YXMgYW5kIC13ZWJraXQtYm94LXNoYWRvdy4KLSAgICAsIHNoYWRvd3NVc2VMZWdh
Y3lSYWRpdXMoZmFsc2UpCi0jZW5kaWYKLSAgICAsIGRyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKQot
ewotfQotCi1HcmFwaGljc0NvbnRleHRTdGF0ZTo6fkdyYXBoaWNzQ29udGV4dFN0YXRlKCkgPSBk
ZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKGNvbnN0
IEdyYXBoaWNzQ29udGV4dFN0YXRlJikgPSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3RhdGU6
OkdyYXBoaWNzQ29udGV4dFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpID0gZGVmYXVsdDsK
LUdyYXBoaWNzQ29udGV4dFN0YXRlJiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6b3BlcmF0b3I9KGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJikgPSBkZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpvcGVyYXRvcj0oR3JhcGhpY3NDb250ZXh0U3RhdGUm
JikgPSBkZWZhdWx0OwotCiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBH
cmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZTo6Y2hhbmdlc0Zyb21TdGF0ZShjb25zdCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSYgc3RhdGUpIGNvbnN0CiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDQwNjQyOGU4NGJmNDBkNmM1
ZTRmMTVhYWZlZGMwZTE4NmI4MzE2MDIuLmIyN2M3ZmFjYWUzNzIzZGEyMzc3MWMwZDA5M2EzYTRk
MDE5YTIxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGFzaEFycmF5Lmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNs
dWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJ
bWFnZS5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKQEAgLTc5LDcgKzgwLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBGbG9h
dFJvdW5kZWRSZWN0OwotY2xhc3MgR3JhZGllbnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBs
OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOwogY2xhc3MgSW1hZ2VCdWZm
ZXI7CkBAIC0xNTAsMTYgKzE1MCw3IEBAIE9wdGlvbmFsPERvY3VtZW50TWFya2VyTGluZVN0eWxl
PiBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAgcmV0
dXJuIHt7ICptb2RlLCAqc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgfX07CiB9CiAKLXN0cnVjdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0
U3RhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB+R3JhcGhpY3NDb250ZXh0U3RhdGUoKTsKLQot
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJik7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3RhdGUoR3JhcGhpY3NDb250ZXh0U3Rh
dGUmJik7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSYgb3BlcmF0b3I9KGNvbnN0IEdyYXBo
aWNzQ29udGV4dFN0YXRlJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIG9wZXJhdG9yPShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKTsKLQorc3RydWN0IEdyYXBoaWNz
Q29udGV4dElubGluZVN0YXRlIHsKICAgICBlbnVtIENoYW5nZSA6IHVpbnQzMl90IHsKICAgICAg
ICAgU3Ryb2tlR3JhZGllbnRDaGFuZ2UgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAogICAg
ICAgICBTdHJva2VQYXR0ZXJuQ2hhbmdlICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEsCkBA
IC0xODYsMTIgKzE3NywyMCBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogI2VuZGlm
CiAgICAgfTsKICAgICB1c2luZyBTdGF0ZUNoYW5nZUZsYWdzID0gT3B0aW9uU2V0PENoYW5nZT47
Ci0KLSAgICBSZWZQdHI8R3JhZGllbnQ+IHN0cm9rZUdyYWRpZW50OwotICAgIFJlZlB0cjxQYXR0
ZXJuPiBzdHJva2VQYXR0ZXJuOwogICAgIAotICAgIFJlZlB0cjxHcmFkaWVudD4gZmlsbEdyYWRp
ZW50OwotICAgIFJlZlB0cjxQYXR0ZXJuPiBmaWxsUGF0dGVybjsKKyAgICBHcmFwaGljc0NvbnRl
eHRJbmxpbmVTdGF0ZSgpCisgICAgICAgIDogc2hvdWxkQW50aWFsaWFzKHRydWUpCisgICAgICAg
ICwgc2hvdWxkU21vb3RoRm9udHModHJ1ZSkKKyAgICAgICAgLCBzaG91bGRTdWJwaXhlbFF1YW50
aXplRm9udHModHJ1ZSkKKyAgICAgICAgLCBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyhmYWxzZSkK
KyNpZiBVU0UoQ0cpCisgICAgICAgIC8vIENvcmUgR3JhcGhpY3MgaW5jb3JyZWN0bHkgcmVuZGVy
cyBzaGFkb3dzIHdpdGggcmFkaXVzID4gOHB4ICg8cmRhcjovL3Byb2JsZW0vODEwMzQ0Mj4pLAor
ICAgICAgICAvLyBidXQgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGlzIGJ1Z2d5IGJlaGF2aW9yIGZv
ciBjYW52YXMgYW5kIC13ZWJraXQtYm94LXNoYWRvdy4KKyAgICAgICAgLCBzaGFkb3dzVXNlTGVn
YWN5UmFkaXVzKGZhbHNlKQorI2VuZGlmCisgICAgICAgICwgZHJhd0x1bWluYW5jZU1hc2soZmFs
c2UpCisgICAgeworICAgIH0KIAogICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CiAKQEAgLTIw
MCwxMCArMTk5LDYgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKIAogICAgIFRleHRE
cmF3aW5nTW9kZUZsYWdzIHRleHREcmF3aW5nTW9kZSB7IFRleHREcmF3aW5nTW9kZTo6RmlsbCB9
OwogCi0gICAgQ29sb3Igc3Ryb2tlQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKLSAgICBDb2xvciBm
aWxsQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKLSAgICBDb2xvciBzaGFkb3dDb2xvcjsKLQogICAg
IEFmZmluZVRyYW5zZm9ybSBzdHJva2VHcmFkaWVudFNwYWNlVHJhbnNmb3JtOwogICAgIEFmZmlu
ZVRyYW5zZm9ybSBmaWxsR3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKICAgICAKQEAgLTIyOCw2ICsy
MjMsMjQgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKICNlbmRpZgogfTsKIAorc3Ry
dWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIDogcHVibGljIEdyYXBoaWNzQ29udGV4dElubGluZVN0
YXRlIHsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSgpID0gZGVmYXVsdDsKKyAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSYgb3RoZXIpCisg
ICAgICAgIDogR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUob3RoZXIpCisgICAgeworICAgIH0K
KworICAgIFJlZlB0cjxHcmFkaWVudD4gc3Ryb2tlR3JhZGllbnQ7CisgICAgUmVmUHRyPFBhdHRl
cm4+IHN0cm9rZVBhdHRlcm47CisKKyAgICBSZWZQdHI8R3JhZGllbnQ+IGZpbGxHcmFkaWVudDsK
KyAgICBSZWZQdHI8UGF0dGVybj4gZmlsbFBhdHRlcm47CisKKyAgICBDb2xvciBzdHJva2VDb2xv
ciB7IENvbG9yOjpibGFjayB9OworICAgIENvbG9yIGZpbGxDb2xvciB7IENvbG9yOjpibGFjayB9
OworICAgIENvbG9yIHNoYWRvd0NvbG9yOworfTsKKwogc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlQ2hhbmdlIHsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSgpID0gZGVmYXVsdDsK
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggNDM2YjM3ZDZjOGVj
NmYwMGY0ZmViNGRkMzZmNGEyOTIzYzdmOTZlYS4uZGEwMTBmM2ZkY2QwNjgwNTYyOGI4NjBjYWUz
MmJkOWJlOWE0NTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CkBAIC0yMTAsMTEgKzIxMCw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVy
PiBtX2FuaW1hdGlvblN0YXJ0VGltZXI7CiB9OwogCi1jbGFzcyBJbWFnZUhhbmRsZSB7Ci1wdWJs
aWM6Ci0gICAgUmVmUHRyPEltYWdlPiBpbWFnZTsKLX07Ci0KIFdURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBJbWFnZSYpOwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
YXR0ZXJuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3Bw
CmluZGV4IDc5NmEwN2MxODZiNjJmZjRlNmI2ZWEyNjEwN2ZmOWZjNGM0MzhlNzEuLmE0MTM0OTY1
NTZjMmQyNmFhNTY2MDI0ZGU3OGFiMzA5YzkzOGJkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCkBAIC0yNywyNCArMjcsNjIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAKKyNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPFBhdHRlcm4+IFBhdHRlcm46OmNyZWF0ZShSZWY8
SW1hZ2U+JiYgdGlsZUltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSkKK3sKKyAgICBp
ZiAoYXV0byBuYXRpdmVJbWFnZSA9IHRpbGVJbWFnZS0+bmF0aXZlSW1hZ2UoKSkKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF0dGVybihuYXRpdmVJbWFnZS5yZWxlYXNlTm9uTnVsbCgp
LCByZXBlYXRYLCByZXBlYXRZKSk7CisKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZm
ZXI6OmNyZWF0ZSh0aWxlSW1hZ2UtPnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRl
ZCk7CisgICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3SW1hZ2UodGlsZUltYWdlLCBGbG9h
dFBvaW50KDAsIDApKTsKKworICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lu
a0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKGltYWdlQnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGF0dGVybihuYXRpdmVJbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCByZXBlYXRYLCBy
ZXBlYXRZKSk7Cit9CisKK1JlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVhdGUoUmVmPE5hdGl2ZUlt
YWdlPiYmIHRpbGVJbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUGF0dGVybihXVEZNb3ZlKHRpbGVJbWFnZSksIHJlcGVhdFgsIHJl
cGVhdFkpKTsKIH0KIAotUGF0dGVybjo6UGF0dGVybihSZWY8SW1hZ2U+JiYgaW1hZ2UsIGJvb2wg
cmVwZWF0WCwgYm9vbCByZXBlYXRZKQorUmVmPFBhdHRlcm4+IFBhdHRlcm46OmNyZWF0ZShib29s
IHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuU3Bh
Y2VUcmFuc2Zvcm1hdGlvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXR0ZXJuKHJl
cGVhdFgsIHJlcGVhdFksIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKSk7Cit9CisKK1BhdHRl
cm46OlBhdHRlcm4oUmVmPE5hdGl2ZUltYWdlPiYmIGltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wg
cmVwZWF0WSkKICAgICA6IG1fdGlsZUltYWdlKFdURk1vdmUoaW1hZ2UpKQogICAgICwgbV9yZXBl
YXRYKHJlcGVhdFgpCiAgICAgLCBtX3JlcGVhdFkocmVwZWF0WSkKIHsKIH0KIAorUGF0dGVybjo6
UGF0dGVybihib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikKKyAgICA6IG1fcmVwZWF0WChyZXBlYXRYKQor
ICAgICwgbV9yZXBlYXRZKHJlcGVhdFkpCisgICAgLCBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0
aW9uKHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQoreworfQorCiBQYXR0ZXJuOjp+UGF0dGVy
bigpID0gZGVmYXVsdDsKIAordm9pZCBQYXR0ZXJuOjpzZXRUaWxlSW1hZ2UoUmVmPE5hdGl2ZUlt
YWdlPiYmIHRpbGVJbWFnZSkKK3sKKyAgICBBU1NFUlQoIW1fdGlsZUltYWdlKTsKKyAgICBtX3Rp
bGVJbWFnZSA9IFdURk1vdmUodGlsZUltYWdlKTsKK30KKworTmF0aXZlSW1hZ2UmIFBhdHRlcm46
OnRpbGVJbWFnZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fdGlsZUltYWdlKTsKKyAgICByZXR1
cm4gKm1fdGlsZUltYWdlOworfQorCiB2b2lkIFBhdHRlcm46OnNldFBhdHRlcm5TcGFjZVRyYW5z
Zm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQog
ewogICAgIG1fcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24gPSBwYXR0ZXJuU3BhY2VUcmFuc2Zv
cm1hdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bh
dHRlcm4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAppbmRl
eCAyYTU2M2RhMjYxN2QxYjA0MjQ4YjkwYWIwNjM5ZGIyY2FmOWE4OGMwLi5mOGUzMmUxYWUyMzkw
ZmM0ODE1MWJiNzg3YTUyZTJjYzQwNDgyOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5oCkBAIC01MywxNCArNTMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3Mg
SW1hZ2U7Ci1jbGFzcyBJbWFnZUhhbmRsZTsKIAogY2xhc3MgUGF0dGVybiBmaW5hbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFBhdHRlcm4+IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShSZWY8SW1hZ2U+JiYgdGlsZUltYWdlLCBib29sIHJlcGVh
dFgsIGJvb2wgcmVwZWF0WSk7CisgICAgc3RhdGljIFJlZjxQYXR0ZXJuPiBjcmVhdGUoUmVmPElt
YWdlPiYmIHRpbGVJbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpOworICAgIHN0YXRp
YyBSZWY8UGF0dGVybj4gY3JlYXRlKFJlZjxOYXRpdmVJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wg
cmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGF0dGVybigpOwog
Ci0gICAgSW1hZ2UmIHRpbGVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZUltYWdlLmdldCgp
OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUaWxlSW1hZ2UoUmVmPE5hdGl2ZUltYWdl
PiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBOYXRpdmVJbWFnZSYgdGlsZUltYWdlKCkgY29uc3Q7
CiAKICAgICAvLyBQYXR0ZXJuIHNwYWNlIGlzIGFuIGFic3RyYWN0IHNwYWNlIHRoYXQgbWFwcyB0
byB0aGUgZGVmYXVsdCB1c2VyIHNwYWNlIGJ5IHRoZSB0cmFuc2Zvcm1hdGlvbiAndXNlclNwYWNl
VHJhbnNmb3JtYXRpb24nCiAjaWYgIVVTRShESVJFQ1QyRCkKQEAgLTc3LDIwICs3OCwyMCBAQCBw
dWJsaWM6CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJlZjxQ
YXR0ZXJuPj4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0ZToKLSAgICBQYXR0ZXJuKFJlZjxJ
bWFnZT4mJiwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWY8UGF0dGVybj4gY3JlYXRlKGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZLCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uID0geyB9KTsK
IAotICAgIFJlZjxJbWFnZT4gbV90aWxlSW1hZ2U7Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG1fcGF0
dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CisgICAgUGF0dGVybihSZWY8TmF0aXZlSW1hZ2U+JiYs
IGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBQYXR0ZXJuKGJvb2wgcmVwZWF0WCwg
Ym9vbCByZXBlYXRZLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKKworICAgIFJlZlB0cjxOYXRp
dmVJbWFnZT4gbV90aWxlSW1hZ2U7CiAgICAgYm9vbCBtX3JlcGVhdFg7CiAgICAgYm9vbCBtX3Jl
cGVhdFk7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1fcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247
CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQYXR0ZXJuOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBJbWFnZUhhbmRsZSBpbWFnZUhhbmRsZTsKLSAg
ICBpbWFnZUhhbmRsZS5pbWFnZSA9IG1fdGlsZUltYWdlLnB0cigpOwotICAgIGVuY29kZXIgPDwg
aW1hZ2VIYW5kbGU7CiAgICAgZW5jb2RlciA8PCBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9u
OwogICAgIGVuY29kZXIgPDwgbV9yZXBlYXRYOwogICAgIGVuY29kZXIgPDwgbV9yZXBlYXRZOwpA
QCAtOTksMTEgKzEwMCw2IEBAIHZvaWQgUGF0dGVybjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogT3B0aW9uYWw8UmVmPFBhdHRlcm4+PiBQ
YXR0ZXJuOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBPcHRpb25hbDxJbWFnZUhh
bmRsZT4gaW1hZ2VIYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBpbWFnZUhhbmRsZTsKLSAgICBpZiAo
IWltYWdlSGFuZGxlKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgT3B0aW9u
YWw8QWZmaW5lVHJhbnNmb3JtPiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKICAgICBkZWNv
ZGVyID4+IHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOwogICAgIGlmICghcGF0dGVyblNwYWNl
VHJhbnNmb3JtYXRpb24pCkBAIC0xMTksOSArMTE1LDcgQEAgT3B0aW9uYWw8UmVmPFBhdHRlcm4+
PiBQYXR0ZXJuOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIXJlcGVhdFkpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBhdXRvIHBhdHRlcm4gPSBQYXR0ZXJu
OjpjcmVhdGUoaW1hZ2VIYW5kbGUtPmltYWdlLnJlbGVhc2VOb25OdWxsKCksICpyZXBlYXRYLCAq
cmVwZWF0WSk7Ci0gICAgcGF0dGVybi0+c2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKCpwYXR0ZXJu
U3BhY2VUcmFuc2Zvcm1hdGlvbik7Ci0gICAgcmV0dXJuIHBhdHRlcm47CisgICAgcmV0dXJuIFBh
dHRlcm46OmNyZWF0ZSgqcmVwZWF0WCwgKnJlcGVhdFksICpwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1h
dGlvbik7CiB9CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCmluZGV4IDczMjBk
YTFjYmZlOTI4NWZkMTI2ZjAwMjQxNDM4YzRkYmEzOWVjYzkuLjdmYWU3NzdjMzk2NmI0YzQ4NmRl
MjIzMmIxOTExMzIzMWZkOTJkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApAQCAtNTY3LDcgKzU2
Nyw3IEBAIEZpbGxTb3VyY2U6OkZpbGxTb3VyY2UoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUm
IHN0YXRlKQogICAgICAgICBwYXR0ZXJuLm9iamVjdCA9IGFkb3B0UmVmKHN0YXRlLmZpbGxQYXR0
ZXJuLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oQWZmaW5lVHJhbnNmb3JtKCkpKTsKIAogICAgICAg
ICBhdXRvJiBwYXR0ZXJuSW1hZ2UgPSBzdGF0ZS5maWxsUGF0dGVybi0+dGlsZUltYWdlKCk7Ci0g
ICAgICAgIHBhdHRlcm4uc2l6ZSA9IEZsb2F0U2l6ZShwYXR0ZXJuSW1hZ2Uud2lkdGgoKSwgcGF0
dGVybkltYWdlLmhlaWdodCgpKTsKKyAgICAgICAgcGF0dGVybi5zaXplID0gcGF0dGVybkltYWdl
LnNpemUoKTsKICAgICAgICAgcGF0dGVybi50cmFuc2Zvcm0gPSBzdGF0ZS5maWxsUGF0dGVybi0+
cGF0dGVyblNwYWNlVHJhbnNmb3JtKCk7CiAgICAgICAgIHBhdHRlcm4ucmVwZWF0WCA9IHN0YXRl
LmZpbGxQYXR0ZXJuLT5yZXBlYXRYKCk7CiAgICAgICAgIHBhdHRlcm4ucmVwZWF0WSA9IHN0YXRl
LmZpbGxQYXR0ZXJuLT5yZXBlYXRZKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcAppbmRleCA1NjBmNzQ3YThmYjY0
ODFiZTRhMzAxODU4NTAwYWE5ZmExNjBmNzg2Li4xMjM0MjQ3NGE2NTE4YjNmZTBkOTU1N2ZjM2Zj
YzAyMjc0YjhjYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKQEAgLTM1LDExICszNSwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNhaXJvX3BhdHRlcm5fdCogUGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1Q
YXR0ZXJuKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIGNvbnN0CiB7Ci0gICAgYXV0byBuYXRpdmVJ
bWFnZSA9IHRpbGVJbWFnZSgpLm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgaWYg
KCFuYXRpdmVJbWFnZSkKKyAgICBQbGF0Zm9ybUltYWdlUHRyIHBsYXRmb3JtSW1hZ2UgPSB0aWxl
SW1hZ2UoKS5wbGF0Zm9ybUltYWdlKCk7CisgICAgaWYgKCFwbGF0Zm9ybUltYWdlKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVybiA9IGNhaXJv
X3BhdHRlcm5fY3JlYXRlX2Zvcl9zdXJmYWNlKG5hdGl2ZUltYWdlLT5wbGF0Zm9ybUltYWdlKCku
Z2V0KCkpOworICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVybiA9IGNhaXJvX3BhdHRlcm5fY3Jl
YXRlX2Zvcl9zdXJmYWNlKHBsYXRmb3JtSW1hZ2UuZ2V0KCkpOwogCiAgICAgLy8gY2Fpcm8gbWVy
Z2VzIHBhdHRlciBzcGFjZSBhbmQgdXNlciBzcGFjZSBpdHNlbGYKICAgICBjYWlyb19tYXRyaXhf
dCBtYXRyaXggPSB0b0NhaXJvTWF0cml4KG1fcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNH
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAK
aW5kZXggNjk1NGM1NjY1NzBhZDdhZTZjMWU3NjBmMDc4N2QzNzcwYWNhYTY5NC4uZWUxNzU2NDA5
YWNiOGU3ZGJkNDk3NzJmNDQyMGVjOTBjYzAwYjQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCkBAIC01NywxNiArNTcsMTMgQEAg
c3RhdGljIHZvaWQgcGF0dGVyblJlbGVhc2VDYWxsYmFjayh2b2lkKiBpbmZvKQogCiBDR1BhdHRl
cm5SZWYgUGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgdXNlclNwYWNlVHJhbnNmb3JtYXRpb24pIGNvbnN0CiB7Ci0gICAgRmxvYXRSZWN0IHRpbGVS
ZWN0ID0gdGlsZUltYWdlKCkucmVjdCgpOworICAgIEZsb2F0UmVjdCB0aWxlUmVjdCA9IHsgeyB9
LCB0aWxlSW1hZ2UoKS5zaXplKCkgfTsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJh
bnNmb3JtID0gdXNlclNwYWNlVHJhbnNmb3JtYXRpb24gKiBtX3BhdHRlcm5TcGFjZVRyYW5zZm9y
bWF0aW9uOwogICAgIHBhdHRlcm5UcmFuc2Zvcm0uc2NhbGVOb25Vbmlmb3JtKDEsIC0xKTsKICAg
ICBwYXR0ZXJuVHJhbnNmb3JtLnRyYW5zbGF0ZSgwLCAtdGlsZVJlY3QuaGVpZ2h0KCkpOwogCi0g
ICAgUGxhdGZvcm1JbWFnZVB0ciBwbGF0Zm9ybUltYWdlOwotICAgIGlmIChhdXRvIG5hdGl2ZUlt
YWdlID0gdGlsZUltYWdlKCkubmF0aXZlSW1hZ2UoKSkKLSAgICAgICAgcGxhdGZvcm1JbWFnZSA9
IG5hdGl2ZUltYWdlLT5wbGF0Zm9ybUltYWdlKCk7Ci0gICAgCisgICAgUGxhdGZvcm1JbWFnZVB0
ciBwbGF0Zm9ybUltYWdlID0gdGlsZUltYWdlKCkucGxhdGZvcm1JbWFnZSgpOwogICAgIGlmICgh
cGxhdGZvcm1JbWFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3QuY3BwCmluZGV4IGQxNTNkZmE0NWMyMWFkODczZTRkNDg0NjcxZjNkMDRhY2I3NDg1NGIu
LjUyZTExOGRjOWMwMzQ4MTU0NjIzMmIxZWU1NWNjZWZiMzhmODZjYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0LmNwcApAQCAtOTEsMTAgKzkxLDEwIEBAIGJvb2wgRGlzcGxheUxpc3Q6OnNob3Vs
ZER1bXBGb3JGbGFncyhBc1RleHRGbGFncyBmbGFncywgSXRlbUhhbmRsZSBpdGVtKQogICAgICAg
ICBpZiAoIShmbGFncyAmIEFzVGV4dEZsYWc6OkluY2x1ZGVzUGxhdGZvcm1PcGVyYXRpb25zKSkg
ewogICAgICAgICAgICAgY29uc3QgYXV0byYgc3RhdGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+
KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogZm9yIG5vdywgb25seSBkcm9wIHRoZSBpdGVtIGlm
IHRoZSBvbmx5IHN0YXRlLWNoYW5nZSBmbGFncyBhcmUgcGxhdGZvcm0tc3BlY2lmaWMuCi0gICAg
ICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQorICAgICAgICAg
ICAgaWYgKHN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmIChzdGF0ZUl0ZW0uc3RhdGUo
KS5tX2NoYW5nZUZsYWdzID09IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1
YW50aXplRm9udHNDaGFuZ2UpCisgICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlQ2hhbmdl
KCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxR
dWFudGl6ZUZvbnRzQ2hhbmdlKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKQEAgLTIwMywxNiArMjAzLDEyIEBAIHZvaWQgRGlzcGxheUxp
c3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJldHVybiBhcHBlbmQ8Q29uY2F0
ZW5hdGVDVE0+KGl0ZW0uZ2V0PENvbmNhdGVuYXRlQ1RNPigpKTsKICAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRDVE06CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0Q1RNPihpdGVtLmdldDxTZXRDVE0+
KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAg
cmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KGl0ZW0uZ2V0PFNldElubGluZUZp
bGxHcmFkaWVudD4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgot
ICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oaXRlbS5nZXQ8U2V0SW5s
aW5lRmlsbENvbG9yPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xv
cjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oaXRlbS5nZXQ8
U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRo
aWNrbmVzczoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KGl0ZW0u
Z2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5l
U3RhdGU6CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lU3RhdGU+KGl0ZW0uZ2V0PFNl
dElubGluZVN0YXRlPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKICAgICAgICAg
cmV0dXJuIGFwcGVuZDxTZXRTdGF0ZT4oaXRlbS5nZXQ8U2V0U3RhdGU+KCkpOworICAgIGNhc2Ug
SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRT
dHJva2VUaGlja25lc3M+KGl0ZW0uZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKSk7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRMaW5lQ2Fw
PihpdGVtLmdldDxTZXRMaW5lQ2FwPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFz
aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggNTBj
OGQ4Zjc1NzdhMTY3MDVlY2Y4NTVhZDE2OTgxOGI2ZGY5OGJiYS4uOWI2YWViZWNlYzg1MjY3ZGI2
ZmE3Zjg2M2VkNTBiZDUwMWFjZDFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5jcHAKQEAgLTcyLDI2ICs3MiwxOCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgZ2V0PFNldENUTT4oKS5hcHBseShj
b250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ6IHsKLSAgICAgICAgZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4o
KS5hcHBseShjb250ZXh0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogewor
ICAgICAgICBnZXQ8U2V0SW5saW5lU3RhdGU+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7Ci0g
ICAgICAgIGdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6
IHsKLSAgICAgICAgZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpLmFwcGx5KGNvbnRleHQpOwor
ICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9r
ZVRoaWNrbmVzczogewogICAgICAgICBnZXQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigpLmFwcGx5KGNv
bnRleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0
YXRlOiB7Ci0gICAgICAgIGdldDxTZXRTdGF0ZT4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7CiAgICAgICAg
IGdldDxTZXRMaW5lQ2FwPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CkBAIC0x
MjEsNyArMTEzLDcgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRv
SW1hZ2VCdWZmZXI6IHsKLSAgICAgICAgZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpLmFwcGx5KGNv
bnRleHQpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOiB7CkBAIC0xNDAsMTUgKzEz
MiwxNSBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNl
IEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6IHsKLSAgICAgICAgZ2V0PERyYXdJbWFnZUJ1ZmZl
cj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOiB7
Ci0gICAgICAgIGdldDxEcmF3TmF0aXZlSW1hZ2U+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2Ug
SXRlbVR5cGU6OkRyYXdQYXR0ZXJuOiB7Ci0gICAgICAgIGdldDxEcmF3UGF0dGVybj4oKS5hcHBs
eShjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1JlY3Q6IHsKQEAgLTQ4NiwxNiArNDc4
LDggQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0Q1RNPjo6dmFsdWUpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogewot
ICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJ
bmxpbmVGaWxsQ29sb3I+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxHcmFkaWVudD46
OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVTdHJva2VDb2xvcjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlh
bGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdHJva2VDb2xvcj46OnZhbHVlKTsKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6
aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdGF0ZT46OnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7CkBAIC02
NjIsMTIgKzY0Niw4IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNvcHkoSXRlbUhhbmRsZSBkZXN0
aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNjYWxlPigqdGhpcywgaXRl
bU9mZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1cm4gY29w
eUludG88U2V0Q1RNPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lRmlsbENvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lRmlsbENv
bG9yPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bEdyYWRpZW50OgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lRmlsbEdyYWRpZW50
PigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tl
Q29sb3I6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKnRo
aXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOgorICAg
ICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lU3RhdGU+KCp0aGlzLCBpdGVtT2Zmc2V0KTsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1cm4gY29weUludG88
U2V0TGluZUNhcD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExp
bmVKb2luOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCmluZGV4IGMw
YzczYjgzYmQ1MmVhYTA0YTk1MTc4MTgwNDQ1Mzk0N2JiYzk1ZTkuLjlkZjY5N2IyMTAwZmUyMjFl
MWZlNGMxMjYzZGNhNDAxYjI4NTcxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5jcHAKQEAgLTQ4LDE2ICs0OCwxMiBAQCBzdGF0aWMgc2l6ZV90IHNpemVPZkl0ZW1J
bkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2YoQ29uY2F0ZW5hdGVD
VE0pOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0dXJuIHNpemVvZihT
ZXRDVE0pOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAg
ICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVGaWxsR3JhZGllbnQpOwotICAgIGNhc2UgSXRlbVR5
cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVG
aWxsQ29sb3IpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAg
ICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZVN0cm9rZUNvbG9yKTsKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRTdHJva2VUaGlja25lc3M6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0U3Ryb2tl
VGhpY2tuZXNzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKKyAgICAgICAg
cmV0dXJuIHNpemVvZihTZXRJbmxpbmVTdGF0ZSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Rh
dGU6CiAgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3RhdGUpOworICAgIGNhc2UgSXRlbVR5cGU6
OlNldFN0cm9rZVRoaWNrbmVzczoKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRTdHJva2VUaGlj
a25lc3MpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgICAgIHJldHVybiBz
aXplb2YoU2V0TGluZUNhcCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZURhc2g6CkBAIC0x
ODksOSArMTg1LDcgQEAgYm9vbCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgot
ICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVT
dGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgIGNhc2UgSXRlbVR5cGU6
OlNldExpbmVEYXNoOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVKb2luOgpAQCAtMzAyLDkg
KzI5Niw3IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVt
VHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExp
bmVKb2luOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCAwZTk0N2EwNmRhYjVhMmRmYjQ3NjkwODJmOGNh
YzU0OGFmODkzNDNiLi42MTVlM2FiMzRiODFkOWI5N2EwOWI1NmYwMDQ0NzFmZmRjYmUwODFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTM2LDExICszNiw5IEBA
IGVudW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBTY2FsZSwKICAgICBDb25jYXRl
bmF0ZUNUTSwKICAgICBTZXRDVE0sCi0gICAgU2V0SW5saW5lRmlsbEdyYWRpZW50LAotICAgIFNl
dElubGluZUZpbGxDb2xvciwKLSAgICBTZXRJbmxpbmVTdHJva2VDb2xvciwKLSAgICBTZXRTdHJv
a2VUaGlja25lc3MsCisgICAgU2V0SW5saW5lU3RhdGUsCiAgICAgU2V0U3RhdGUsCisgICAgU2V0
U3Ryb2tlVGhpY2tuZXNzLAogICAgIFNldExpbmVDYXAsCiAgICAgU2V0TGluZURhc2gsCiAgICAg
U2V0TGluZUpvaW4sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggMjEz
ZGI5YzhjZjQyZWMxYWUyZDEzMzkzNzVkOWY1NjMwZTc2ZDc0My4uNzkzYjkzNTY3Mjk5NThhMThh
MWMyYzlmM2VhY2RiNmI0ZjMyYTQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmNwcApAQCAtMTE1LDg4ICsxMTUsMjQgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IENvbmNhdGVuYXRlQ1RNJiBpdGVtKQogICAgIHJldHVybiB0
czsKIH0KIAotU2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoY29u
c3QgR3JhZGllbnQmIGdyYWRpZW50LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50U3Bh
Y2VUcmFuc2Zvcm0pCi0gICAgOiBtX2RhdGEoZ3JhZGllbnQuZGF0YSgpKQotICAgICwgbV9ncmFk
aWVudFNwYWNlVHJhbnNmb3JtKGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCi0gICAgLCBtX3NwcmVh
ZE1ldGhvZChncmFkaWVudC5zcHJlYWRNZXRob2QoKSkKLSAgICAsIG1fY29sb3JTdG9wQ291bnQo
c3RhdGljX2Nhc3Q8dWludDhfdD4oZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkpKQotewotICAgIFJF
TEVBU0VfQVNTRVJUKG1fY29sb3JTdG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAg
IGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkgewotICAgICAg
ICBtX29mZnNldHNbaV0gPSBncmFkaWVudC5zdG9wcygpW2ldLm9mZnNldDsKLSAgICAgICAgbV9j
b2xvcnNbaV0gPSBncmFkaWVudC5zdG9wcygpW2ldLmNvbG9yLmFzSW5saW5lKCk7Ci0gICAgfQot
fQotCi1TZXRJbmxpbmVGaWxsR3JhZGllbnQ6OlNldElubGluZUZpbGxHcmFkaWVudChmbG9hdCBv
ZmZzZXRzW21heENvbG9yU3RvcENvdW50XSwgU1JHQkE8dWludDhfdD4gY29sb3JzW21heENvbG9y
U3RvcENvdW50XSwgY29uc3QgR3JhZGllbnQ6OkRhdGEmIGRhdGEsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGllbnRTcHJlYWRNZXRob2Qgc3ByZWFk
TWV0aG9kLCB1aW50OF90IGNvbG9yU3RvcENvdW50KQotICAgIDogbV9kYXRhKGRhdGEpCi0gICAg
LCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm0oZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSkKLSAgICAs
IG1fc3ByZWFkTWV0aG9kKHNwcmVhZE1ldGhvZCkKLSAgICAsIG1fY29sb3JTdG9wQ291bnQoY29s
b3JTdG9wQ291bnQpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9jb2xvclN0b3BDb3VudCA8PSBt
YXhDb2xvclN0b3BDb3VudCk7Ci0gICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgbV9jb2xvclN0
b3BDb3VudDsgKytpKSB7Ci0gICAgICAgIG1fb2Zmc2V0c1tpXSA9IG9mZnNldHNbaV07Ci0gICAg
ICAgIG1fY29sb3JzW2ldID0gY29sb3JzW2ldOwotICAgIH0KLX0KLQotUmVmPEdyYWRpZW50PiBT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmdyYWRpZW50KCkgY29uc3QKK1NldElubGluZVN0YXRlOjpT
ZXRJbmxpbmVTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSYgc3RhdGUsIEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQorICAgIDog
bV9zdGF0ZShzdGF0ZSkKKyAgICAsIG1fY2hhbmdlRmxhZ3MoY2hhbmdlRmxhZ3MpCiB7Ci0gICAg
YXV0byBncmFkaWVudCA9IEdyYWRpZW50OjpjcmVhdGUoR3JhZGllbnQ6OkRhdGEobV9kYXRhKSk7
Ci0gICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgbV9jb2xvclN0b3BDb3VudDsgKytpKQotICAg
ICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKHsgbV9vZmZzZXRzW2ldLCBDb2xvcihtX2NvbG9y
c1tpXSkgfSk7Ci0gICAgZ3JhZGllbnQtPnNldFNwcmVhZE1ldGhvZChtX3NwcmVhZE1ldGhvZCk7
Ci0gICAgcmV0dXJuIGdyYWRpZW50OwogfQogCi12b2lkIFNldElubGluZUZpbGxHcmFkaWVudDo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAordm9pZCBTZXRJbmxpbmVTdGF0
ZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAgIGlmIChtX2Nv
bG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KQotICAgICAgICBjb250ZXh0LnNldEZp
bGxHcmFkaWVudChncmFkaWVudCgpLCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm0pOwotfQotCi1i
b29sIFNldElubGluZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUoY29uc3QgR3JhZGllbnQmIGdyYWRp
ZW50KQotewotICAgIGlmIChncmFkaWVudC5zdG9wcygpLnNpemUoKSA+IFNldElubGluZUZpbGxH
cmFkaWVudDo6bWF4Q29sb3JTdG9wQ291bnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGZvciAoYXV0byYgY29sb3JTdG9wIDogZ3JhZGllbnQuc3RvcHMoKSkgewotICAgICAgICBpZiAo
IWNvbG9yU3RvcC5jb2xvci5pc0lubGluZSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLQotICAgIHJldHVybiB0cnVlOworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdl
IHN0YXRlQ2hhbmdlID0geyBtX3N0YXRlLCBtX2NoYW5nZUZsYWdzIH07CisgICAgc3RhdGVDaGFu
Z2UuYXBwbHkoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVGaWxsR3JhZGllbnQmKQorc3RhdGljIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldElubGluZVN0YXRlJikK
IHsKICAgICAvLyBGSVhNRTogRHVtcCBncmFkaWVudCBkYXRhLgogICAgIHJldHVybiB0czsKIH0K
IAotdm9pZCBTZXRJbmxpbmVGaWxsQ29sb3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkgY29uc3QKLXsKLSAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvcigpKTsKLX0KLQotc3Rh
dGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldElubGlu
ZUZpbGxDb2xvciYgc3RhdGUpCi17Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJjb2xvciIsIHN0YXRl
LmNvbG9yKCkpOwotICAgIHJldHVybiB0czsKLX0KLQotdm9pZCBTZXRJbmxpbmVTdHJva2VDb2xv
cjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAotewotICAgIGNvbnRleHQu
c2V0U3Ryb2tlQ29sb3IoY29sb3IoKSk7Ci19Ci0KLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVTdHJva2VDb2xvciYgc3RhdGUpCi17
Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJjb2xvciIsIHN0YXRlLmNvbG9yKCkpOwotICAgIHJldHVy
biB0czsKLX0KLQogdm9pZCBTZXRTdHJva2VUaGlja25lc3M6OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkgY29uc3QKIHsKICAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcyhtX3Ro
aWNrbmVzcyk7CkBAIC0yMDksMjMgKzE0NSwyOSBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3Ryb2tlVGhpY2tuZXNzJiBzdGF0ZSkKIH0K
IAogU2V0U3RhdGU6OlNldFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwg
R3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgZmxhZ3MpCi0gICAgOiBtX3N0
YXRlKHN0YXRlLCBmbGFncykKKyAgICA6IG1fc3RhdGVDaGFuZ2Uoc3RhdGUsIGZsYWdzKQogewog
fQogCi1TZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Um
IHN0YXRlQ2hhbmdlKQotICAgIDogbV9zdGF0ZShzdGF0ZUNoYW5nZSkKK1NldFN0YXRlOjpTZXRT
dGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UsIFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyLCBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCisgICAg
OiBtX3N0YXRlQ2hhbmdlKHN0YXRlQ2hhbmdlKQorICAgICwgbV9zdHJva2VQYXR0ZXJuSW1hZ2VJ
ZGVudGlmaWVyKHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCisgICAgLCBtX2ZpbGxQYXR0
ZXJuSW1hZ2VJZGVudGlmaWVyKGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKQogewogfQogCi12
b2lkIFNldFN0YXRlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit2b2lk
IFNldFN0YXRlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5hdGl2ZUltYWdlKiBz
dHJva2VQYXR0ZXJuSW1hZ2UsIE5hdGl2ZUltYWdlKiBmaWxsUGF0dGVybkltYWdlKSBjb25zdAog
ewotICAgIG1fc3RhdGUuYXBwbHkoY29udGV4dCk7CisgICAgaWYgKG1fc3RhdGVDaGFuZ2UubV9z
dGF0ZS5zdHJva2VQYXR0ZXJuICYmIHN0cm9rZVBhdHRlcm5JbWFnZSkKKyAgICAgICAgbV9zdGF0
ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZVBhdHRlcm4tPnNldFRpbGVJbWFnZShtYWtlUmVmKCpzdHJv
a2VQYXR0ZXJuSW1hZ2UpKTsKKyAgICBpZiAobV9zdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxQYXR0
ZXJuICYmIGZpbGxQYXR0ZXJuSW1hZ2UpCisgICAgICAgIG1fc3RhdGVDaGFuZ2UubV9zdGF0ZS5m
aWxsUGF0dGVybi0+c2V0VGlsZUltYWdlKG1ha2VSZWYoKmZpbGxQYXR0ZXJuSW1hZ2UpKTsKKyAg
ICBtX3N0YXRlQ2hhbmdlLmFwcGx5KGNvbnRleHQpOwogfQogCi1zdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3RhdGUmIHN0YXRlKQorc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0YXRlJiBz
ZXRTdGF0ZSkKIHsKLSAgICB0cyA8PCBzdGF0ZS5zdGF0ZSgpOworICAgIHRzIDw8IHNldFN0YXRl
LnN0YXRlQ2hhbmdlKCk7CiAgICAgcmV0dXJuIHRzOwogfQogCkBAIC0zMDEsMTEgKzI0Myw2IEBA
IHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDbGlw
T3V0JiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAotTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQg
dm9pZCBDbGlwVG9JbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKLXsK
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogdm9pZCBDbGlwVG9JbWFnZUJ1ZmZlcjo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1h
Z2VCdWZmZXIpIGNvbnN0CiB7CiAgICAgY29udGV4dC5jbGlwVG9JbWFnZUJ1ZmZlcihpbWFnZUJ1
ZmZlciwgbV9kZXN0aW5hdGlvblJlY3QpOwpAQCAtNDIwLDExICszNTcsNiBAQCBzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0dseXBocyYgaXRl
bSkKICAgICByZXR1cm4gdHM7CiB9CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJh
d0ltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAotewotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIGNv
bnN0CiB7CiAgICAgY29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIG1fZGVzdGlu
YXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CkBAIC00MzgsMTEgKzM3MCw2IEBAIHN0
YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3SW1h
Z2VCdWZmZXImIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi1OT19SRVRVUk5fRFVFX1RPX0FT
U0VSVCB2b2lkIERyYXdOYXRpdmVJbWFnZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QK
LXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogdm9pZCBEcmF3TmF0aXZlSW1hZ2U6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTmF0aXZlSW1hZ2UmIGltYWdlKSBjb25z
dAogewogICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKGltYWdlLCBtX2ltYWdlU2l6ZSwgbV9k
ZXN0aW5hdGlvblJlY3QsIG1fc3JjUmVjdCwgbV9vcHRpb25zKTsKQEAgLTQ2OSwxMSArMzk2LDYg
QEAgRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
bWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2EKIHsKIH0KIAotTk9fUkVUVVJOX0RVRV9UT19BU1NF
UlQgdm9pZCBEcmF3UGF0dGVybjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKLXsKLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogdm9pZCBEcmF3UGF0dGVybjo6YXBwbHkoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBOYXRpdmVJbWFnZSYgaW1hZ2UpIGNvbnN0CiB7CiAgICAg
Y29udGV4dC5kcmF3UGF0dGVybihpbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb24sIG1f
dGlsZVJlY3QsIG1fcGF0dGVyblRyYW5zZm9ybSwgbV9waGFzZSwgbV9zcGFjaW5nLCBtX29wdGlv
bnMpOwpAQCAtMTAyMywxMSArOTQ1LDkgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6
IHRzIDw8ICJzY2FsZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTTogdHMgPDwg
InNldC1jdG0iOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTTogdHMg
PDwgImNvbmNhdGVudGF0ZS1jdG0iOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVGaWxsR3JhZGllbnQ6IHRzIDw8ICJzZXQtaW5saW5lLWZpbGwtZ3JhZGllbnQiOyBicmVhazsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5l
LWZpbGwtY29sb3IiOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VD
b2xvcjogdHMgPDwgInNldC1pbmxpbmUtc3Ryb2tlLWNvbG9yIjsgYnJlYWs7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOiB0cyA8PCAic2V0LXN0cm9rZS10aGlja25lc3Mi
OyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogdHMgPDwgInNldC1p
bmxpbmUtc3RhdGUiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogdHMgPDwg
InNldC1zdGF0ZSI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVz
czogdHMgPDwgInNldC1zdHJva2UtdGhpY2tuZXNzIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6U2V0TGluZUNhcDogdHMgPDwgInNldC1saW5lLWNhcCI7IGJyZWFrOwogICAgIGNhc2UgSXRl
bVR5cGU6OlNldExpbmVEYXNoOiB0cyA8PCAic2V0LWxpbmUtZGFzaCI7IGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OlNldExpbmVKb2luOiB0cyA8PCAic2V0LWxpbmUtam9pbiI7IGJyZWFrOwpA
QCAtMTEwNiwyMSArMTAyNiwxNSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06
CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PENvbmNhdGVuYXRlQ1RNPigpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKTsKKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRJbmxpbmVTdGF0ZToKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lU3RhdGU+
KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjoKLSAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKLSAgICAg
ICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCk7CisgICAgY2FzZSBJdGVt
VHlwZTo6U2V0U3RhdGU6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldFN0YXRlPigpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAg
ICAgIHRzIDw8IGl0ZW0uZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKTsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNl
dFN0YXRlPigpOwotICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2Fw
OgogICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRMaW5lQ2FwPigpOwogICAgICAgICBicmVhazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDFlMDNkZTc2NDkzNWVlMzVhMmQw
ZDBjMjkyYTIzNDQ3NzI0N2Y0MTguLjA4ODNhMDI2ZWIzZGY3ODJhOGJkMDdiYTRmMTdlOGFhNjIz
Njc2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtMTY3LDY1ICsxNjcs
MTkgQEAgcHJpdmF0ZToKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV90cmFuc2Zvcm07CiB9OwogCi1j
bGFzcyBTZXRJbmxpbmVGaWxsR3JhZGllbnQgeworY2xhc3MgU2V0SW5saW5lU3RhdGUgewogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6
U2V0SW5saW5lRmlsbEdyYWRpZW50OworICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRl
bVR5cGUgPSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGlzSW5saW5lSXRlbSA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJh
d2luZ0l0ZW0gPSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgbWF4Q29sb3JT
dG9wQ291bnQgPSA0OwogCi0gICAgU2V0SW5saW5lRmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50
JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBTZXRJbmxpbmVGaWxsR3JhZGllbnQoZmxvYXQgb2Zmc2V0c1ttYXhDb2xv
clN0b3BDb3VudF0sIFNSR0JBPHVpbnQ4X3Q+IGNvbG9yc1ttYXhDb2xvclN0b3BDb3VudF0sIGNv
bnN0IEdyYWRpZW50OjpEYXRhJiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNl
VHJhbnNmb3JtLCBHcmFkaWVudFNwcmVhZE1ldGhvZCwgdWludDhfdCBjb2xvclN0b3BDb3VudCk7
Ci0KLSAgICBzdGF0aWMgYm9vbCBpc0lubGluZShjb25zdCBHcmFkaWVudCYpOwotICAgIFJlZjxH
cmFkaWVudD4gZ3JhZGllbnQoKSBjb25zdDsKKyAgICBTZXRJbmxpbmVTdGF0ZShjb25zdCBHcmFw
aGljc0NvbnRleHRJbmxpbmVTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5n
ZUZsYWdzKTsKIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CiAKIHBy
aXZhdGU6Ci0gICAgZmxvYXQgbV9vZmZzZXRzW21heENvbG9yU3RvcENvdW50XTsKLSAgICBTUkdC
QTx1aW50OF90PiBtX2NvbG9yc1ttYXhDb2xvclN0b3BDb3VudF07Ci0gICAgR3JhZGllbnQ6OkRh
dGEgbV9kYXRhOwotICAgIEFmZmluZVRyYW5zZm9ybSBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm07
Ci0gICAgR3JhZGllbnRTcHJlYWRNZXRob2QgbV9zcHJlYWRNZXRob2QgeyBHcmFkaWVudFNwcmVh
ZE1ldGhvZDo6UGFkIH07Ci0gICAgdWludDhfdCBtX2NvbG9yU3RvcENvdW50IHsgMCB9OwotfTsK
LQotY2xhc3MgU2V0SW5saW5lRmlsbENvbG9yIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Rl
eHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjsKLSAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOwotCi0gICAgU2V0SW5saW5lRmls
bENvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yRGF0YSkKLSAgICAgICAgOiBtX2NvbG9yRGF0YShj
b2xvckRhdGEpCi0gICAgewotICAgIH0KLQotICAgIENvbG9yIGNvbG9yKCkgY29uc3QgeyByZXR1
cm4geyBtX2NvbG9yRGF0YSB9OyB9Ci0gICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBj
b25zdDsKLQotcHJpdmF0ZToKLSAgICBTUkdCQTx1aW50OF90PiBtX2NvbG9yRGF0YTsKLX07Ci0K
LWNsYXNzIFNldElubGluZVN0cm9rZUNvbG9yIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Rl
eHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOwot
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwotICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0KLSAgICBTZXRJbmxpbmVT
dHJva2VDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEpCi0gICAgICAgIDogbV9jb2xvckRh
dGEoY29sb3JEYXRhKQotICAgIHsKLSAgICB9Ci0KLSAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsg
cmV0dXJuIHsgbV9jb2xvckRhdGEgfTsgfQotCi0gICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRl
eHQmKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBTUkdCQTx1aW50OF90PiBtX2NvbG9yRGF0YTsK
KyAgICBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSBtX3N0YXRlOworICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIG1fY2hhbmdlRmxhZ3M7CiB9OwogCiBjbGFzcyBT
ZXRTdHJva2VUaGlja25lc3MgewpAQCAtMjU0LDMwICsyMDgsMzMgQEAgcHVibGljOgogICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXRTdGF0
ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYpOworICAgIFdFQkNPUkVfRVhQT1JU
IFNldFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiwgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIsIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllcik7CiAgICAgCi0gICAg
Y29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIHN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9zdGF0ZTsgfQotCi0gICAgc3RhdGljIHZvaWQgYnVpbGRlclN0YXRlKEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MpOworICAgIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBz
dGF0ZUNoYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVDaGFuZ2U7IH0KKyAgICBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsgfQorICAgIFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7IH0KIAogICAgIHN0YXRpYyB2b2lk
IGR1bXBTdGF0ZUNoYW5nZXMoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKICAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNldFN0YXRlPiBkZWNvZGUo
RGVjb2RlciYpOwogCi0gICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKyAg
ICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIE5hdGl2ZUltYWdlKiBzdHJva2VQYXR0ZXJu
SW1hZ2UsIE5hdGl2ZUltYWdlKiBmaWxsUGF0dGVybkltYWdlKSBjb25zdDsKIAogcHJpdmF0ZToK
LSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBtX3N0YXRlOworICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlQ2hhbmdlIG1fc3RhdGVDaGFuZ2U7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIG1fc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsKKyAgICBSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgbV9maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcjsKIH07CiAKIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNldFN0YXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKIHsKLSAgICBhdXRvIGNoYW5nZUZsYWdzID0gbV9zdGF0ZS5tX2NoYW5nZUZsYWdz
OworICAgIGF1dG8gY2hhbmdlRmxhZ3MgPSBtX3N0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3M7CiAg
ICAgZW5jb2RlciA8PCBjaGFuZ2VGbGFnczsKIAotICAgIGF1dG8mIHN0YXRlID0gbV9zdGF0ZS5t
X3N0YXRlOworICAgIGF1dG8mIHN0YXRlID0gbV9zdGF0ZUNoYW5nZS5tX3N0YXRlOworICAgIGVu
Y29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KCZzdGF0ZSksIHNpemVvZihHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSksIDEpOwogCiAg
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VH
cmFkaWVudENoYW5nZSkpIHsKICAgICAgICAgZW5jb2RlciA8PCAhIXN0YXRlLnN0cm9rZUdyYWRp
ZW50OwpAQCAtMjg3LDggKzI0NCwxMCBAQCB2b2lkIFNldFN0YXRlOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVybkNoYW5nZSkpIHsKICAgICAgICAgZW5jb2RlciA8PCAh
IXN0YXRlLnN0cm9rZVBhdHRlcm47Ci0gICAgICAgIGlmIChzdGF0ZS5zdHJva2VQYXR0ZXJuKQor
ICAgICAgICBpZiAoc3RhdGUuc3Ryb2tlUGF0dGVybikgeworICAgICAgICAgICAgZW5jb2RlciA8
PCBzdGF0ZS5zdHJva2VQYXR0ZXJuLT50aWxlSW1hZ2UoKS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIoKTsKICAgICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRlLnN0cm9rZVBhdHRlcm47Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpIHsKQEAgLTI5OSw2MCArMjU4LDIwIEBA
IHZvaWQgU2V0U3RhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUGF0dGVybkNo
YW5nZSkpIHsKICAgICAgICAgZW5jb2RlciA8PCAhIXN0YXRlLmZpbGxQYXR0ZXJuOwotICAgICAg
ICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pCisgICAgICAgIGlmIChzdGF0ZS5maWxsUGF0dGVybikg
eworICAgICAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5maWxsUGF0dGVybi0+dGlsZUltYWdlKCku
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8ICpz
dGF0ZS5maWxsUGF0dGVybjsKKyAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChjaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSkgewotICAgICAg
ICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd09mZnNldDsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0
ZS5zaGFkb3dCbHVyOwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd0NvbG9yOwotI2lm
IFVTRShDRykKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVz
OwotI2VuZGlmIC8vIFVTRShDRykKLSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSkpCi0gICAgICAg
IGVuY29kZXIgPDwgc3RhdGUuc3Ryb2tlVGhpY2tuZXNzOwotCi0gICAgaWYgKGNoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpUZXh0RHJhd2luZ01vZGVDaGFuZ2UpKQot
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnRleHREcmF3aW5nTW9kZTsKLQogICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2Up
KQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZUNvbG9yOwogCiAgICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpKQog
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbGxDb2xvcjsKIAotICAgIGlmIChjaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlU3R5bGVDaGFuZ2UpKQotICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZVN0eWxlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUnVsZUNoYW5nZSkpCi0gICAgICAg
IGVuY29kZXIgPDwgc3RhdGUuZmlsbFJ1bGU7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJhdGlvbkNoYW5nZSkpCi0gICAg
ICAgIGVuY29kZXIgPDwgc3RhdGUuY29tcG9zaXRlT3BlcmF0b3I7Ci0KLSAgICBpZiAoY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkJsZW5kTW9kZUNoYW5nZSkpCi0g
ICAgICAgIGVuY29kZXIgPDwgc3RhdGUuYmxlbmRNb2RlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpJbWFnZUludGVycG9sYXRpb25RdWFsaXR5
Q2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFs
aXR5OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpBbHBoYUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuYWxwaGE7Ci0KLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZEFudGlh
bGlhc0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hvdWxkQW50aWFsaWFzOwot
Ci0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91
bGRTbW9vdGhGb250c0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hvdWxkU21v
b3RoRm9udHM7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkpCi0gICAgICAgIGVuY29k
ZXIgPDwgc3RhdGUuc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotCi0gICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dzSWdub3JlVHJhbnNm
b3Jtc0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXM7CisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTaGFkb3dDaGFuZ2UpKQorICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd0NvbG9yOwog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMzY2LDYgKzI4NSwxMyBAQCBPcHRpb25h
bDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlQ2hhbmdlIHN0YXRlQ2hhbmdlOwogICAgIHN0YXRlQ2hhbmdlLm1fY2hh
bmdlRmxhZ3MgPSAqY2hhbmdlRmxhZ3M7CiAKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CisKKyAgICBhdXRvJiBzdGF0ZSA9
IHN0YXRlQ2hhbmdlLm1fc3RhdGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3Ro
RGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmc3RhdGUpLCBzaXplb2YoR3JhcGhpY3ND
b250ZXh0SW5saW5lU3RhdGUpLCAxKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwog
ICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpIHsKICAgICAgICAgT3B0aW9uYWw8Ym9vbD4g
aGFzU3Ryb2tlR3JhZGllbnQ7CiAgICAgICAgIGRlY29kZXIgPj4gaGFzU3Ryb2tlR3JhZGllbnQ7
CkBAIC0zODcsMTMgKzMxMywxNyBAQCBPcHRpb25hbDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBpZiAoIWhhc1N0cm9rZVBhdHRlcm4uaGFzVmFs
dWUoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgaWYgKGhh
c1N0cm9rZVBhdHRlcm4udmFsdWUoKSkgewotICAgICAgICAgICAgYXV0byBzdHJva2VQYXR0ZXJu
ID0gUGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpOwotICAgICAgICAgICAgaWYgKCFzdHJva2VQYXR0
ZXJuKQotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIE9wdGlv
bmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW1hZ2VJZGVudGlmaWVyOworICAgICAg
ICBkZWNvZGVyID4+IGltYWdlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFpbWFnZUlkZW50aWZp
ZXIuaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAg
ICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IFdURk1vdmUoKnN0cm9r
ZVBhdHRlcm4pOwotICAgICAgICB9CisgICAgICAgIGF1dG8gc3Ryb2tlUGF0dGVybiA9IFBhdHRl
cm46OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgaWYgKCFzdHJva2VQYXR0ZXJuKQorICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBzdHJva2VQYXR0ZXJuSW1hZ2VJ
ZGVudGlmaWVyID0gKmltYWdlSWRlbnRpZmllcjsKKyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0
ZS5zdHJva2VQYXR0ZXJuID0gV1RGTW92ZSgqc3Ryb2tlUGF0dGVybik7CiAgICAgfQogCiAgICAg
aWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OkZpbGxHcmFkaWVudENoYW5nZSkpIHsKQEAgLTQxNiw2NCArMzQ2LDE4IEBAIE9wdGlvbmFs
PFNldFN0YXRlPiBTZXRTdGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgICAgIGRl
Y29kZXIgPj4gaGFzRmlsbFBhdHRlcm47CiAgICAgICAgIGlmICghaGFzRmlsbFBhdHRlcm4uaGFz
VmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgaWYg
KGhhc0ZpbGxQYXR0ZXJuLnZhbHVlKCkpIHsKLSAgICAgICAgICAgIGF1dG8gZmlsbFBhdHRlcm4g
PSBQYXR0ZXJuOjpkZWNvZGUoZGVjb2Rlcik7Ci0gICAgICAgICAgICBpZiAoIWZpbGxQYXR0ZXJu
KQotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgICAgIHN0
YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4gPSBXVEZNb3ZlKCpmaWxsUGF0dGVybik7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250
YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSkgewotICAgICAgICBPcHRp
b25hbDxGbG9hdFNpemU+IHNoYWRvd09mZnNldDsKLSAgICAgICAgZGVjb2RlciA+PiBzaGFkb3dP
ZmZzZXQ7Ci0gICAgICAgIGlmICghc2hhZG93T2Zmc2V0KQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd09mZnNldCA9
ICpzaGFkb3dPZmZzZXQ7Ci0KLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IHNoYWRvd0JsdXI7Ci0g
ICAgICAgIGRlY29kZXIgPj4gc2hhZG93Qmx1cjsKLSAgICAgICAgaWYgKCFzaGFkb3dCbHVyKQot
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5t
X3N0YXRlLnNoYWRvd0JsdXIgPSAqc2hhZG93Qmx1cjsKLQotICAgICAgICBPcHRpb25hbDxDb2xv
cj4gc2hhZG93Q29sb3I7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93Q29sb3I7Ci0gICAgICAg
IGlmICghc2hhZG93Q29sb3IpCisgICAgICAgIAorICAgICAgICBPcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+IGltYWdlSWRlbnRpZmllcjsKKyAgICAgICAgZGVjb2RlciA+PiBp
bWFnZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghaW1hZ2VJZGVudGlmaWVyLmhhc1ZhbHVlKCkp
CiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIHN0YXRlQ2hhbmdl
Lm1fc3RhdGUuc2hhZG93Q29sb3IgPSAqc2hhZG93Q29sb3I7Ci0KLSNpZiBVU0UoQ0cpCi0gICAg
ICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7Ci0gICAgICAgIGRlY29k
ZXIgPj4gc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSAgICAgICAgaWYgKCFzaGFkb3dzVXNlTGVn
YWN5UmFkaXVzKQorICAgICAgICBhdXRvIGZpbGxQYXR0ZXJuID0gUGF0dGVybjo6ZGVjb2RlKGRl
Y29kZXIpOworICAgICAgICBpZiAoIWZpbGxQYXR0ZXJuKQogICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd3NVc2VMZWdh
Y3lSYWRpdXMgPSAqc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSNlbmRpZiAvLyBVU0UoQ0cpCi0g
ICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9u
YWw8ZmxvYXQ+IHN0cm9rZVRoaWNrbmVzczsKLSAgICAgICAgZGVjb2RlciA+PiBzdHJva2VUaGlj
a25lc3M7Ci0gICAgICAgIGlmICghc3Ryb2tlVGhpY2tuZXNzKQotICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZVRoaWNr
bmVzcyA9ICpzdHJva2VUaGlja25lc3M7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1f
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlRleHREcmF3aW5nTW9k
ZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8VGV4dERyYXdpbmdNb2RlRmxhZ3M+IHRleHRE
cmF3aW5nTW9kZTsKLSAgICAgICAgZGVjb2RlciA+PiB0ZXh0RHJhd2luZ01vZGU7Ci0gICAgICAg
IGlmICghdGV4dERyYXdpbmdNb2RlKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
LQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnRleHREcmF3aW5nTW9kZSA9IFdURk1vdmUo
KnRleHREcmF3aW5nTW9kZSk7CisgICAgICAgIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyID0g
KmltYWdlSWRlbnRpZmllcjsKKyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUGF0dGVy
biA9IFdURk1vdmUoKmZpbGxQYXR0ZXJuKTsKICAgICB9CiAKICAgICBpZiAoc3RhdGVDaGFuZ2Uu
bV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JD
aGFuZ2UpKSB7CkBAIC00OTQsOTYgKzM3OCwxNiBAQCBPcHRpb25hbDxTZXRTdGF0ZT4gU2V0U3Rh
dGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRl
LmZpbGxDb2xvciA9ICpmaWxsQ29sb3I7CiAgICAgfQogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1f
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVN0eWxlQ2hh
bmdlKSkgewotICAgICAgICBTdHJva2VTdHlsZSBzdHJva2VTdHlsZTsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzdHJva2VTdHlsZSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlU3R5bGUgPSBzdHJva2VT
dHlsZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFJ1bGVDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlv
bmFsPFdpbmRSdWxlPiBmaWxsUnVsZTsKLSAgICAgICAgZGVjb2RlciA+PiBmaWxsUnVsZTsKLSAg
ICAgICAgaWYgKCFmaWxsUnVsZSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0K
LSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUnVsZSA9ICpmaWxsUnVsZTsKLSAgICB9
Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6Q29tcG9zaXRlT3BlcmF0aW9uQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25h
bDxDb21wb3NpdGVPcGVyYXRvcj4gY29tcG9zaXRlT3BlcmF0b3I7Ci0gICAgICAgIGRlY29kZXIg
Pj4gY29tcG9zaXRlT3BlcmF0b3I7Ci0gICAgICAgIGlmICghY29tcG9zaXRlT3BlcmF0b3IpCi0g
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1f
c3RhdGUuY29tcG9zaXRlT3BlcmF0b3IgPSAqY29tcG9zaXRlT3BlcmF0b3I7Ci0gICAgfQotCi0g
ICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0
U3RhdGU6OkJsZW5kTW9kZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8QmxlbmRNb2RlPiBi
bGVuZE1vZGU7Ci0gICAgICAgIGRlY29kZXIgPj4gYmxlbmRNb2RlOwotICAgICAgICBpZiAoIWJs
ZW5kTW9kZSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rh
dGVDaGFuZ2UubV9zdGF0ZS5ibGVuZE1vZGUgPSAqYmxlbmRNb2RlOwotICAgIH0KLQotICAgIGlm
IChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpJbWFnZUludGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxJ
bnRlcnBvbGF0aW9uUXVhbGl0eT4gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsKLSAgICAgICAg
ZGVjb2RlciA+PiBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5OwotICAgICAgICBpZiAoIWltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
Ci0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSA9
ICppbWFnZUludGVycG9sYXRpb25RdWFsaXR5OwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5n
ZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpBbHBoYUNoYW5n
ZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IGFscGhhOwotICAgICAgICBkZWNvZGVyID4+
IGFscGhhOwotICAgICAgICBpZiAoIWFscGhhKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmFscGhhID0gKmFscGhhOwotICAg
IH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXNDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFs
PGJvb2w+IHNob3VsZEFudGlhbGlhczsKLSAgICAgICAgZGVjb2RlciA+PiBzaG91bGRBbnRpYWxp
YXM7Ci0gICAgICAgIGlmICghc2hvdWxkQW50aWFsaWFzKQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNob3VsZEFudGlhbGlh
cyA9ICpzaG91bGRBbnRpYWxpYXM7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hh
bmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFNtb290aEZvbnRz
Q2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRTbW9vdGhGb250czsKLSAg
ICAgICAgZGVjb2RlciA+PiBzaG91bGRTbW9vdGhGb250czsKLSAgICAgICAgaWYgKCFzaG91bGRT
bW9vdGhGb250cykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAg
c3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRTbW9vdGhGb250cyA9ICpzaG91bGRTbW9vdGhGb250
czsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKSkg
ewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM7Ci0g
ICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotICAgICAgICBp
ZiAoIXNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cykKLSAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRTdWJwaXhlbFF1
YW50aXplRm9udHMgPSAqc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotICAgIH0KLQotICAg
IGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8
Ym9vbD4gc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93
c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgICAgIGlmICghc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMp
CisgICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKKyAgICAgICAgT3B0aW9uYWw8Q29sb3I+IHNoYWRv
d0NvbG9yOworICAgICAgICBkZWNvZGVyID4+IHNoYWRvd0NvbG9yOworICAgICAgICBpZiAoIXNo
YWRvd0NvbG9yKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBz
dGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID0gKnNoYWRvd3NJZ25v
cmVUcmFuc2Zvcm1zOworICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd0NvbG9yID0g
KnNoYWRvd0NvbG9yOwogICAgIH0KIAotICAgIHJldHVybiB7IHN0YXRlQ2hhbmdlIH07CisgICAg
cmV0dXJuIHt7IHN0YXRlQ2hhbmdlLCBzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyLCBmaWxs
UGF0dGVybkltYWdlSWRlbnRpZmllciB9fTsKIH0KIAogY2xhc3MgU2V0TGluZUNhcCB7CkBAIC03
NTcsOCArNTYxLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQm
LCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogCi0gICAgTk9fUkVUVVJOX0RVRV9UT19B
U1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKLQogcHJpdmF0ZToKICAg
ICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7CiAg
ICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb25SZWN0OwpAQCAtMTAzOSw4ICs4NDEsNiBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkltYWdlQnVm
ZmVyJikgY29uc3Q7CiAKLSAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFwcGx5KEdy
YXBoaWNzQ29udGV4dCYpIGNvbnN0OwotCiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxC
b3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBPcHRpb25hbDxGbG9h
dFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJu
IG1fZGVzdGluYXRpb25SZWN0OyB9CiAKQEAgLTEwNzIsNyArODcyLDYgQEAgcHVibGljOgogICAg
IC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHZhbGlkYXRlIEltYWdlUGFpbnRpbmdPcHRpb25z
LgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9pbWFnZUlkZW50aWZpZXI7
IH0KIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250
ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJbWFn
ZSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25z
dCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KQEAgLTExMDQsNyArOTAzLDYgQEAgcHVibGljOgog
ICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHZhbGlkYXRlIEltYWdlUGFpbnRpbmdPcHRp
b25zLgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9pbWFnZUlkZW50aWZp
ZXI7IH0KIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJ
bWFnZSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBj
b25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KQEAgLTIzMDEsMTEgKzIwOTksOSBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZT4g
ewogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2NhbGUsCiAgICAgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE0sCiAgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTSwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudCwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvciwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yLAotICAgIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzLAorICAgIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGUsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRTdGF0ZSwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldFN0cm9rZVRoaWNrbmVzcywKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldExpbmVDYXAsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5l
RGFzaCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGVkYTBiNTU5ODM1
ZTBkODllZDBhNTdlNThlNTNjZjEzODk2MzU3MWIuLjQxZmE3NjIyNmFlNjAzNThiMjA1Y2NkM2I4
NjRmNzI4ZDVkYzZkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5j
cHAKQEAgLTYwLDQ5ICs2MCw0MCBAQCB2b2lkIFJlY29yZGVyOjpwdXRJbWFnZURhdGEoV2ViQ29y
ZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgVwogICAgIGFwcGVu
ZDxQdXRJbWFnZURhdGE+KGlucHV0Rm9ybWF0LCBpbWFnZURhdGEsIHNyY1JlY3QsIGRlc3RQb2lu
dCwgZGVzdEZvcm1hdCk7CiB9CiAKLXN0YXRpYyBib29sIGNvbnRhaW5zT25seUlubGluZVN0YXRl
Q2hhbmdlcyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgY2hhbmdlcywgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCitzdGF0aWMgYm9v
bCBjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBpbmxpbmVTdGF0ZUNoYW5nZUZsYWdz
IHsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSwK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUdyYWRpZW50Q2hhbmdlLAorICAg
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVybkNoYW5nZSwKKyAgICAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSwKKyAgICAgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hhbmdlLAogICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UsCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpGaWxsQ29sb3JDaGFuZ2UsCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3Jh
ZGllbnRDaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UK
ICAgICB9OwogCi0gICAgaWYgKGNoYW5nZUZsYWdzICE9IChjaGFuZ2VGbGFncyAmIGlubGluZVN0
YXRlQ2hhbmdlRmxhZ3MpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSAm
JiAhY2hhbmdlcy5tX3N0YXRlLnN0cm9rZUNvbG9yLmlzSW5saW5lKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci5pc0lu
bGluZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkKLSAgICAgICAg
JiYgKCFjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50IHx8ICFTZXRJbmxpbmVGaWxsR3JhZGll
bnQ6OmlzSW5saW5lKCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50KSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiAhY2hhbmdlRmxhZ3Mu
Y29udGFpbnNBbnkoaW5saW5lU3RhdGVDaGFuZ2VGbGFncyk7CiB9CiAKLXZvaWQgUmVjb3JkZXI6
OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYg
Y2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxh
Z3MpCit2b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3ND
b250ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyBjaGFuZ2VGbGFncykKIHsKLSAgICBpZiAoIWNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdl
cyhjaGFuZ2VzLCBjaGFuZ2VGbGFncykpIHsKLSAgICAgICAgYXBwZW5kPFNldFN0YXRlPihjaGFu
Z2VzLm1fc3RhdGUsIGNoYW5nZUZsYWdzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29s
b3JDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KGNoYW5nZXMu
bV9zdGF0ZS5zdHJva2VDb2xvci5hc0lubGluZSgpKTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlVGhpY2tuZXNzQ2hhbmdlKSkKLSAg
ICAgICAgYXBwZW5kPFNldFN0cm9rZVRoaWNrbmVzcz4oY2hhbmdlcy5tX3N0YXRlLnN0cm9rZVRo
aWNrbmVzcyk7CisgICAgaWYgKGNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjaGFuZ2VG
bGFncykpCisgICAgICAgIGFwcGVuZDxTZXRJbmxpbmVTdGF0ZT4oc3RhdGUsIGNoYW5nZUZsYWdz
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHN0YXRlLnN0cm9rZVBhdHRlcm4pIHsKKyAgICAg
ICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICAgICAgICAgIG1fZGVsZWdhdGUtPmNhY2hl
TmF0aXZlSW1hZ2Uoc3RhdGUuc3Ryb2tlUGF0dGVybi0+dGlsZUltYWdlKCkpOworICAgICAgICAg
ICAgbV9kaXNwbGF5TGlzdC5jYWNoZU5hdGl2ZUltYWdlKHN0YXRlLnN0cm9rZVBhdHRlcm4tPnRp
bGVJbWFnZSgpKTsKKyAgICAgICAgfQogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0
SW5saW5lRmlsbENvbG9yPihjaGFuZ2VzLm1fc3RhdGUuZmlsbENvbG9yLmFzSW5saW5lKCkpOwor
ICAgICAgICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pIHsKKyAgICAgICAgICAgIGlmIChtX2RlbGVn
YXRlKQorICAgICAgICAgICAgICAgIG1fZGVsZWdhdGUtPmNhY2hlTmF0aXZlSW1hZ2Uoc3RhdGUu
ZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgICAgIG1fZGlzcGxheUxpc3QuY2Fj
aGVOYXRpdmVJbWFnZShzdGF0ZS5maWxsUGF0dGVybi0+dGlsZUltYWdlKCkpOworICAgICAgICB9
CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZp
bGxHcmFkaWVudENoYW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+
KCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50LCBjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRp
ZW50U3BhY2VUcmFuc2Zvcm0pOworICAgICAgICBhcHBlbmQ8U2V0U3RhdGU+KHN0YXRlLCBjaGFu
Z2VGbGFncyk7CisgICAgfQogfQogCiB2b2lkIFJlY29yZGVyOjp3aWxsQXBwZW5kSXRlbU9mVHlw
ZShJdGVtVHlwZSB0eXBlKQpAQCAtMTE5LDcgKzExMCw3IEBAIHZvaWQgUmVjb3JkZXI6OndpbGxB
cHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZXNGcm9tTGFzdFN0YXRlID0gc3RhdGVDaGFuZ2Vz
LmNoYW5nZXNGcm9tU3RhdGUoY3VycmVudFN0YXRlKCkubGFzdERyYXdpbmdTdGF0ZSk7CiAgICAg
ICAgIGlmIChjaGFuZ2VzRnJvbUxhc3RTdGF0ZSkgewogICAgICAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJwcmUtZHJhd2luZywgc2F2aW5nIHN0YXRlICIg
PDwgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Uoc3RhdGVDaGFuZ2VzLm1fc3RhdGUsIGNoYW5n
ZXNGcm9tTGFzdFN0YXRlKSk7Ci0gICAgICAgICAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oc3Rh
dGVDaGFuZ2VzLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSk7CisgICAgICAgICAgICBhcHBlbmRTdGF0
ZUNoYW5nZUl0ZW0oc3RhdGVDaGFuZ2VzLm1fc3RhdGUsIGNoYW5nZXNGcm9tTGFzdFN0YXRlKTsK
ICAgICAgICAgICAgIHN0YXRlQ2hhbmdlcy5tX2NoYW5nZUZsYWdzID0geyB9OwogICAgICAgICAg
ICAgY3VycmVudFN0YXRlKCkubGFzdERyYXdpbmdTdGF0ZSA9IHN0YXRlQ2hhbmdlcy5tX3N0YXRl
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA4
OWE5OTA4NmFhZDExZWFkZTAzNzVmMWRmMTg2NGQzMzMzMTc5NThiLi43ZmNlYTQyN2Q0MzE3YmNh
ZDBiMDhhMzQ0NjI2ZjEwZGRmMzBmMTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmgKQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSk7CiAKLSAgICB2b2lkIGFwcGVu
ZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYsIEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKKyAgICB2b2lkIGFwcGVuZFN0YXRl
Q2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKIAogICAgIEZsb2F0UmVjdCBleHRlbnRGcm9tTG9jYWxC
b3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggMzI1ZGI5NzM5ZTlmY2YyMTMxZTkxNGU2YWU1Yzg1
YTgyZWJhZTFjOS4uMzQ2NDM2MmQ2NzdkNGQ2Yzg0NzJlZDlhN2RhMzVkODUxNWFmODdhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApAQCAtNzAsNiArNzAsMjkg
QEAgaW5saW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFw
cGx5TmF0aXZlSW1hZ2VJdGVtKEdyYXBoaWMKICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVy
OwogfQogCitpbmxpbmUgc3RhdGljIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cj4gYXBwbHlTZXRTdGF0ZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBOYXRp
dmVJbWFnZUhhc2hNYXAmIG5hdGl2ZUltYWdlcywgSXRlbUhhbmRsZSBpdGVtKQoreworICAgIGF1
dG8mIHNldFN0YXRlSXRlbSA9IGl0ZW0uZ2V0PFNldFN0YXRlPigpOworCisgICAgTmF0aXZlSW1h
Z2UqIHN0cm9rZVBhdHRlcm5JbWFnZSA9IG51bGxwdHI7CisgICAgTmF0aXZlSW1hZ2UqIGZpbGxQ
YXR0ZXJuSW1hZ2UgPSBudWxscHRyOworICAgIAorICAgIGlmIChhdXRvIHJlc291cmNlSWRlbnRp
ZmllciA9IHNldFN0YXRlSXRlbS5zdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKCkpIHsKKyAg
ICAgICAgc3Ryb2tlUGF0dGVybkltYWdlID0gbmF0aXZlSW1hZ2VzLmdldChyZXNvdXJjZUlkZW50
aWZpZXIpOworICAgICAgICBpZiAoIXN0cm9rZVBhdHRlcm5JbWFnZSkKKyAgICAgICAgICAgIHJl
dHVybiByZXNvdXJjZUlkZW50aWZpZXI7CisgICAgfQorCisgICAgaWYgKGF1dG8gcmVzb3VyY2VJ
ZGVudGlmaWVyID0gc2V0U3RhdGVJdGVtLmZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKCkpIHsK
KyAgICAgICAgZmlsbFBhdHRlcm5JbWFnZSA9IG5hdGl2ZUltYWdlcy5nZXQocmVzb3VyY2VJZGVu
dGlmaWVyKTsKKyAgICAgICAgaWYgKCFmaWxsUGF0dGVybkltYWdlKQorICAgICAgICAgICAgcmV0
dXJuIHJlc291cmNlSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBzZXRTdGF0ZUl0ZW0uYXBwbHko
Y29udGV4dCwgc3Ryb2tlUGF0dGVybkltYWdlLCBmaWxsUGF0dGVybkltYWdlKTsKKyAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworfQorCiB0ZW1wbGF0ZTxjbGFzcyBUPgogaW5saW5lIHN0YXRpYyBP
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5Rm9udEl0ZW0oR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250UmVuZGVyaW5nUmVzb3VyY2VNYXAmIGZvbnRz
LCBJdGVtSGFuZGxlIGl0ZW0pCiB7CkBAIC0xMDUsMTQgKzEyOCwyMCBAQCBzdGQ6OnBhaXI8T3B0
aW9uYWw8U3RvcFJlcGxheVJlYXNvbj4sIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcj4+IFJlcAogICAgICAgICByZXR1cm4geyBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCB9
OwogICAgIH0KIAotICAgIGlmIChpdGVtLmlzPERyYXdHbHlwaHM+KCkpIHsKLSAgICAgICAgaWYg
KGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5Rm9udEl0ZW08RHJh
d0dseXBocz4obV9jb250ZXh0LCBtX2ZvbnRzLCBpdGVtKSkKKyAgICBpZiAoaXRlbS5pczxEcmF3
UGF0dGVybj4oKSkgeworICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVu
dGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08RHJhd1BhdHRlcm4+KG1fY29udGV4dCwgbV9u
YXRpdmVJbWFnZXMsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNv
bjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlk
ZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0
IH07CiAgICAgfQogCi0gICAgaWYgKGl0ZW0uaXM8RHJhd1BhdHRlcm4+KCkpIHsKLSAgICAgICAg
aWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZlSW1h
Z2VJdGVtPERyYXdQYXR0ZXJuPihtX2NvbnRleHQsIG1fbmF0aXZlSW1hZ2VzLCBpdGVtKSkKKyAg
ICBpZiAoaXRlbS5pczxTZXRTdGF0ZT4oKSkgeworICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2Fj
aGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlTZXRTdGF0ZUl0ZW0obV9jb250ZXh0LCBtX25h
dGl2ZUltYWdlcywgaXRlbSkpCisgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29u
OjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRl
bnRpZmllcikgfTsKKyAgICAgICAgcmV0dXJuIHsgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQg
fTsKKyAgICB9CisKKyAgICBpZiAoaXRlbS5pczxEcmF3R2x5cGhzPigpKSB7CisgICAgICAgIGlm
IChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUZvbnRJdGVtPERy
YXdHbHlwaHM+KG1fY29udGV4dCwgbV9mb250cywgaXRlbSkpCiAgICAgICAgICAgICByZXR1cm4g
eyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2lu
Z0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgV1RGOjpudWxs
b3B0LCBXVEY6Om51bGxvcHQgfTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXggYWZiZTcwNmFkZGMyMjdkYTEw
Y2I3ODgyODg4NmMxMjliMTkyNDFjYy4uZjMzY2NlYjExMjMyODBjODEyNWNiMjg0YjZlNzgwNzNk
MDFiODFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVUaWxlLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEZFVGlsZTo6cGxhdGZvcm1B
cHBseVNvZnR3YXJlKCkKICAgICB0aWxlSW1hZ2VDb250ZXh0LnRyYW5zbGF0ZSgtaW5NYXhFZmZl
Y3RMb2NhdGlvbi54KCksIC1pbk1heEVmZmVjdExvY2F0aW9uLnkoKSk7CiAgICAgdGlsZUltYWdl
Q29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmluQnVmZmVyLCBpbi0+YWJzb2x1dGVQYWludFJlY3Qo
KS5sb2NhdGlvbigpKTsKIAotICAgIGF1dG8gdGlsZUltYWdlQ29weSA9IEltYWdlQnVmZmVyOjpz
aW5rSW50b0ltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CisgICAgYXV0byB0aWxlSW1hZ2VDb3B5
ID0gSW1hZ2VCdWZmZXI6OnNpbmtJbnRvTmF0aXZlSW1hZ2UoV1RGTW92ZSh0aWxlSW1hZ2UpKTsK
ICAgICBpZiAoIXRpbGVJbWFnZUNvcHkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhZDRlOGRkOWQ3
MWJhYzFhOTIxOTJkYTdhZTZhMTlkNDM0YTcxOWUyLi5hMTRlNWUwYmNjMmYyZmIxOGZmNzgxNmY2
NzRlMTA2ZGFkNGE0NjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcApAQCAtMzI2Niw3ICszMjY2LDcgQEAgc3RhdGljIFJlZlB0cjxQYXR0
ZXJuPiBwYXR0ZXJuRm9yRGVzY3JpcHRpb24oUGF0dGVybkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9u
LCBGbG8KICAgICAgICAgaW1hZ2VDb250ZXh0LmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHsgdGV4
dEdhcCwgeU9mZnNldCB9LCAwKTsKICAgICB9CiAKLSAgICBhdXRvIHRpbGVJbWFnZSA9IEltYWdl
QnVmZmVyOjpzaW5rSW50b0ltYWdlKFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKKyAgICBhdXRvIHRp
bGVJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b05hdGl2ZUltYWdlKFdURk1vdmUoaW1hZ2VC
dWZmZXIpKTsKICAgICBhdXRvIGZpbGxQYXR0ZXJuID0gUGF0dGVybjo6Y3JlYXRlKHRpbGVJbWFn
ZS5yZWxlYXNlTm9uTnVsbCgpLCB0cnVlLCB0cnVlKTsKICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0
dGVybk9mZnNldFRyYW5zZm9ybTsKICAgICBwYXR0ZXJuT2Zmc2V0VHJhbnNmb3JtLnRyYW5zbGF0
ZShjb250ZW50T2Zmc2V0ICsgZGVzY3JpcHRpb24ucGhhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCmlu
ZGV4IGExZjg1ZjE3NjI2NjFhNWQ4YjMyYTQ1MDRlNjVlZmE4M2NhM2E0ZWIuLmM1NjUyZjUxNDk2
OTdhODU3ZDkzMzA1NTRiYjNhMzllMTE2ZDRkMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAKQEAgLTEx
Miw3ICsxMTIsNyBAQCBQYXR0ZXJuRGF0YSogUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjpidWls
ZFBhdHRlcm4oUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIE9wdAogCiAgICAgY29uc3QgSW50U2l6
ZSB0aWxlSW1hZ2VTaXplID0gdGlsZUltYWdlLT5sb2dpY2FsU2l6ZSgpOwogCi0gICAgUmVmUHRy
PEltYWdlPiBjb3BpZWRJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b0ltYWdlKFdURk1vdmUo
dGlsZUltYWdlKSk7CisgICAgYXV0byBjb3BpZWRJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5rSW50
b05hdGl2ZUltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CiAgICAgaWYgKCFjb3BpZWRJbWFnZSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCAw
M2QxNjJmZGQxMWIzNWUyNjIwZDIyYzE5ODQyNDk4ODc5YmI0NTVlLi4zMGZiN2Y4MWI4YzAwYmZl
NWFjNmVmMGY5NGU3YmNkZDZiYmIxMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC00
NjEsOSArNDYxLDcgQEAgT3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU+IFdBUk5fVU5V
U0VEX1JFVFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWMKICAgICBjYXNlIERpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2Nh
bGU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTToKLSAgICBjYXNlIERp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNhc2UgRGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgorICAgIGNhc2UgRGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGlu
ZUpvaW46CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAx
OWFmMjk5NjY4MjdkNGI2MDFkOGNkNTI3YmYxNGM5YTc3ZDcwODliLi5iYjdjODRiZjgxNDc1Y2Nj
OTE5ZjA3ODMwMDRkOTI5NzE4MDBmZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTEwNzUsMTggKzEwNzUsNiBAQCBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlT3B0aW9uYWxJbWFnZShEZWNvZGVyJiBkZWNvZGVy
LCBSZWZQdHI8SW1hZwogICAgIHJldHVybiBkZWNvZGVJbWFnZShkZWNvZGVyLCBpbWFnZSk7CiB9
CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCi17Ci0gICAgZW5jb2RlT3B0aW9u
YWxJbWFnZShlbmNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZS5nZXQoKSk7Ci19Ci0KLWJvb2wgQXJn
dW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbWFnZUhh
bmRsZSYgaW1hZ2VIYW5kbGUpCi17Ci0gICAgaWYgKCFkZWNvZGVPcHRpb25hbEltYWdlKGRlY29k
ZXIsIGltYWdlSGFuZGxlLmltYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVy
biB0cnVlOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFJlZjxXZWJDb3JlOjpGb250PiYgZm9udCkKIHsKICAgICBlbmNv
ZGVyIDw8IGZvbnQtPm9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAppbmRleCAwNzQzMjViNWE5Y2JkYWRhMTMwYzA5MWZjM2QzYjA1MjhhYWZk
Zjk3Li42NGE3Y2ZmMzVlYmExNjFlOThkYTA2ZTkwNTVhNjEwOWIyZjhmOWZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTA5LDcgKzEwOSw2
IEBAIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsK
IGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW1h
Z2VIYW5kbGU7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJbnRTaXpl
OwpAQCAtNDE4LDExICs0MTcsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJl
ZjxXZWJDb3JlOjpGb250Pj4gewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhPiBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYpOwogfTsKIAotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRsZT4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VIYW5kbGUmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpJbWFnZUhhbmRsZSYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCBkN2I5MGI1NzJkYTVmYzEzY2Qz
YmQwODZiNDc3MTRiMTBjZDM1Y2E5Li42NDFhMWM4ZTA2NTcwNjlkZmFlNzRiYzBlOWY2N2JhYmY2
MDNkZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMzQ2LDkgKzM0Niw3IEBA
IHByb3RlY3RlZDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNhdmU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2Fs
ZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTToK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZp
bGxDb2xvcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CiAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46CiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBlOTllMDhhMTQ4MjIxYzM4
NmIyMzdjMDJjZjU5MDY4MzJmNWNlMDkuLmEwMjUwZTIyZTUxYWNmNGMzMTVkNjc5YjRjNjI2OGNj
ZGMyOGFkMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlk
QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBJbXBsZW1lbnQgU2V0U3RhdGUg
RGlzcGxheUxpc3QgaXRlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTAyLTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRmxha3kgQVBJIFRlc3Q6IFRlc3RXZWJL
aXRBUEkuV2ViS2l0TGVnYWN5LkNyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2VzcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMu
Y3BwCmluZGV4IGU4NzE3Yzc5MTQwYmRlYTRiNWY1MzU1ZjAxNjkwODllNjAwODY3MzMuLjYwMmJk
YmYzMmVhYTJiNDc3ZmJkZWI4ZTJhZTYyMDczYWE0MTc3NGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKQEAgLTY1
LDExICs2NSwxNCBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEFwcGVuZEl0ZW1zKQogICAgIGF1
dG8gZ3JhZGllbnQgPSBjcmVhdGVHcmFkaWVudCgpOwogICAgIGF1dG8gcGF0aCA9IGNyZWF0ZUNv
bXBsZXhQYXRoKCk7CiAKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBzdGF0ZTsKKyAgICBzdGF0
ZS5maWxsQ29sb3IgPSBDb2xvcjo6cmVkOworCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1MDsg
KytpKSB7CiAgICAgICAgIGxpc3QuYXBwZW5kPFNldFN0cm9rZVRoaWNrbmVzcz4oMS41KTsKICAg
ICAgICAgbGlzdC5hcHBlbmQ8RmlsbFBhdGg+KHBhdGgpOwogICAgICAgICBsaXN0LmFwcGVuZDxG
aWxsUmVjdFdpdGhHcmFkaWVudD4oRmxvYXRSZWN0IHsgMS4sIDEuLCAxMC4sIDEwLiB9LCBncmFk
aWVudCk7Ci0gICAgICAgIGxpc3QuYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oQ29sb3I6OnJl
ZCk7CisgICAgICAgIGxpc3QuYXBwZW5kPFNldFN0YXRlPihzdGF0ZSwgR3JhcGhpY3NDb250ZXh0
U3RhdGU6OkZpbGxDb2xvckNoYW5nZSk7CiAjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCiAg
ICAgICAgIGxpc3QuYXBwZW5kPFN0cm9rZUlubGluZVBhdGg+KElubGluZVBhdGhEYXRhIHsgTGlu
ZURhdGEge3sgMC4sIDAuIH0sIHsgMTAuLCAxNS4gfX19KTsKICNlbmRpZgpAQCAtMTAyLDExICsx
MDUsMTEgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKICAgICAgICAgICAg
IEVYUEVDVF9FUSgmaXRlbS5ncmFkaWVudCgpLCBncmFkaWVudC5wdHIoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
Q29sb3I6IHsKKyAgICAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6IHsKICAgICAgICAgICAg
IEVYUEVDVF9GQUxTRShoYW5kbGUtPmlzRHJhd2luZ0l0ZW0oKSk7Ci0gICAgICAgICAgICBFWFBF
Q1RfVFJVRShoYW5kbGUtPmlzPFNldElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgICAgICAgICBh
dXRvJiBpdGVtID0gaGFuZGxlLT5nZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpOwotICAgICAgICAg
ICAgRVhQRUNUX0VRKGl0ZW0uY29sb3IoKSwgQ29sb3I6OnJlZCk7CisgICAgICAgICAgICBFWFBF
Q1RfVFJVRShoYW5kbGUtPmlzPFNldFN0YXRlPigpKTsKKyAgICAgICAgICAgIGF1dG8mIGl0ZW0g
PSBoYW5kbGUtPmdldDxTZXRTdGF0ZT4oKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShpdGVtLnN0
YXRlQ2hhbmdlKCkubV9zdGF0ZS5maWxsQ29sb3IsIENvbG9yOjpyZWQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKQEAgLTIxNSw5
ICsyMTgsOSBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEl0ZW1CdWZmZXJDbGllbnQpCiAgICAg
bGlzdC5zZXRJdGVtQnVmZmVyQ2xpZW50KCZ3cml0ZXIpOwogCiAgICAgYXV0byBwYXRoID0gY3Jl
YXRlQ29tcGxleFBhdGgoKTsKLSAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4o
Q29sb3I6OmJsdWUpOworICAgIGxpc3QuYXBwZW5kPFNldFN0cm9rZVRoaWNrbmVzcz4oMTApOwog
ICAgIGxpc3QuYXBwZW5kPFN0cm9rZVBhdGg+KHBhdGgpOwotICAgIGxpc3QuYXBwZW5kPFNldElu
bGluZVN0cm9rZUNvbG9yPihDb2xvcjo6cmVkKTsKKyAgICBsaXN0LmFwcGVuZDxTZXRTdHJva2VU
aGlja25lc3M+KDIwKTsKICAgICBsaXN0LmFwcGVuZDxTdHJva2VQYXRoPihwYXRoKTsKIAogICAg
IERpc3BsYXlMaXN0IHNoYWxsb3dDb3B5IHt7IEl0ZW1CdWZmZXJIYW5kbGUgeyBnbG9iYWxCdWZm
ZXJJZGVudGlmaWVyLCBnbG9iYWxJdGVtQnVmZmVyLCBsaXN0LnNpemVJbkJ5dGVzKCkgfSB9fTsK
QEAgLTIzMCw5ICsyMzMsOSBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEl0ZW1CdWZmZXJDbGll
bnQpCiAKICAgICBFWFBFQ1RfRkFMU0Uoc2hhbGxvd0NvcHkuaXNFbXB0eSgpKTsKICAgICBFWFBF
Q1RfRVEoaXRlbVR5cGVzLnNpemUoKSwgNFUpOwotICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMF0s
IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcik7CisgICAgRVhQRUNUX0VRKGl0ZW1UeXBl
c1swXSwgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcyk7CiAgICAgRVhQRUNUX0VRKGl0ZW1U
eXBlc1sxXSwgSXRlbVR5cGU6OlN0cm9rZVBhdGgpOwotICAgIEVYUEVDVF9FUShpdGVtVHlwZXNb
Ml0sIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcik7CisgICAgRVhQRUNUX0VRKGl0ZW1U
eXBlc1syXSwgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcyk7CiAgICAgRVhQRUNUX0VRKGl0
ZW1UeXBlc1szXSwgSXRlbVR5cGU6OlN0cm9rZVBhdGgpOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwCmluZGV4IDBmZWM1Zjc2NWE0MmM5MjQ3YTQyYTc2OTAxZjA1NjE3MzJjZGI5YjguLmJkYTRk
YTlhNjIxYmYyZTYzNzUxNzlmOTYzNTNkNTYyMDdkODVhMDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwCkBAIC01MywxMSArNTMsMTQgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBSZXBsYXlXaXRo
TWlzc2luZ1Jlc291cmNlKQogICAgIGF1dG8gaW1hZ2VCdWZmZXJJZGVudGlmaWVyID0gUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogCiAgICAgRGlzcGxheUxpc3QgbGlz
dDsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBzdGF0ZTsKIAotICAgIGxpc3QuYXBwZW5kPFNl
dElubGluZUZpbGxDb2xvcj4oQ29sb3I6OmdyZWVuKTsKKyAgICBzdGF0ZS5maWxsQ29sb3IgPSBD
b2xvcjo6Ymx1ZTsKKyAgICBsaXN0LmFwcGVuZDxTZXRTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpOwogICAgIGxpc3QuYXBwZW5kPEZpbGxSZWN0Pihj
b250ZXh0Qm91bmRzKTsKICAgICBsaXN0LmFwcGVuZDxEcmF3SW1hZ2VCdWZmZXI+KGltYWdlQnVm
ZmVySWRlbnRpZmllciwgY29udGV4dEJvdW5kcywgY29udGV4dEJvdW5kcywgSW1hZ2VQYWludGlu
Z09wdGlvbnMgeyB9KTsKLSAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oQ29s
b3I6OnJlZCk7CisgICAgc3RhdGUuc3Ryb2tlQ29sb3IgPSBDb2xvcjo6cmVkOworICAgIGxpc3Qu
YXBwZW5kPFNldFN0YXRlPihzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9y
Q2hhbmdlKTsKICAgICBsaXN0LmFwcGVuZDxTdHJva2VMaW5lPihGbG9hdFBvaW50IHsgMCwgY29u
dGV4dEhlaWdodCB9LCBGbG9hdFBvaW50IHsgY29udGV4dFdpZHRoLCAwIH0pOwogCiAgICAgewpA
QCAtMTIwLDcgKzEyMyw3IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgT3V0T2ZMaW5lSXRlbURl
Y29kaW5nRmFpbHVyZSkKICAgICBwYXRoLm1vdmVUbyh7IDEwLiwgMTAuIH0pOwogICAgIHBhdGgu
YWRkTGluZVRvKHsgNTAuLCA1MC4gfSk7CiAgICAgcGF0aC5hZGRMaW5lVG8oeyAxMC4sIDEwLiB9
KTsKLSAgICBvcmlnaW5hbExpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6
Ymx1ZSk7CisgICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KDEwKTsK
ICAgICBvcmlnaW5hbExpc3QuYXBwZW5kPEZpbGxQYXRoPihXVEZNb3ZlKHBhdGgpKTsKIAogICAg
IERpc3BsYXlMaXN0IHNoYWxsb3dDb3B5IHt7IEl0ZW1CdWZmZXJIYW5kbGUgeyBnbG9iYWxCdWZm
ZXJJZGVudGlmaWVyLCBnbG9iYWxJdGVtQnVmZmVyLCBvcmlnaW5hbExpc3Quc2l6ZUluQnl0ZXMo
KSB9IH19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDE5NWQ4ZTg1NmMyM2M1MmJjMzFiZWZhZDZjZmFmZTZlNDNkZDk4NTcu
Ljg2YzZkZjMyMjYxNDlkZjhkZWY5ODBkODU3OWQwMTUxNzlmM2VhOTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMS0wMi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
KworICAgICAgICBbR1BVIFByb2Nlc3NdOiBJbXBsZW1lbnQgU2V0U3RhdGUgRGlzcGxheUxpc3Qg
aXRlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBk
aXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
Z3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wMi0wMyAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIEdQVVByb2Nlc3MgTWVk
aWFSZWNvcmRlciBoYW5kbGVzIGNvcnJlY3RseSBtdXRlZCB0cmFja3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4
dAppbmRleCAxNDUxYjE5MjUzYzMyMzg5MjhiYmQ5ZjVlNWRlYmI5Mjc0YzUwZDU3Li40MzQzNmEz
MTY1OGNjYTNiYjk1OWMyNjg4N2NkMTk2ZGNjYjUzNGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0CkBA
IC03LDcgKzcsOCBAQAogICAoc2hhZG93cy1pZ25vcmUtdHJhbnNmb3JtcyAxKSkKIChmaWxsLXJl
Y3QKICAgKHJlY3QgYXQgKDEwLDEwKSBzaXplIDU1eDUwKSBleHRlbnQgYXQgKDEwLDE0MCkgc2l6
ZSA1NXg1MCkKLShzZXQtaW5saW5lLWZpbGwtY29sb3IKLSAgKGNvbG9yICMwMDAwQzg4MCkpCiso
c2V0LXN0YXRlCisgIChjaGFuZ2UtZmxhZ3MgMTI4KQorICAoZmlsbC1jb2xvciAjMDAwMEM4ODAp
KQogKGZpbGwtcmVjdAogICAocmVjdCBhdCAoMzAsMzApIHNpemUgNTV4NTApIGV4dGVudCBhdCAo
MzAsMTIwKSBzaXplIDU1eDUwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3Mv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggYTZiYjkyY2JhNTI2YWMxOTJlZGVhMTk4MjI4YzRiMmY3OGI2YWVkOS4uOTBhYWJm
MjlkZGQwOTUzZjg4ZWQ2YTZiN2M3NTFkYjYxODNhMGE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9ncHUtcHJv
Y2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xLDQ5ICsxLDggQEAKLWNhbnZhcy9waGlsaXAvdGVz
dHMvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmNhbnZhc3BhdHRlcm4uaHRtbCBbIENyYXNoIF0K
LWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmltYWdlcGF0dGVy
bi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3Zl
cmVkLnBhdHRlcm4uY29weS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5j
b21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24tYXRvcC5odG1sIFsgQ3Jhc2gg
XQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVz
dGluYXRpb24taW4uaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9z
aXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1pbi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uc291cmNlLW91dC5odG1s
IFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmFuaW1hdGVkLmdpZi5o
dG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmJhc2ljLmNhbnZh
cy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmJhc2ljLmlt
YWdlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uYmFzaWMu
bm9jb250ZXh0Lmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4u
Y3Jvc3NjYW52YXMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVy
bi5tb2RpZnkuY2FudmFzMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5w
YXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTIuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQot
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMS5odG1s
IFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0
LmNvb3JkMi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBh
aW50Lm5vcmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5vcmllbnRhdGlvbi5jYW52YXMuaHRtbCBbIENy
YXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5vcmllbnRhdGlvbi5p
bWFnZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50
LnJlcGVhdC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0
ZXJuLnBhaW50LnJlcGVhdC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVz
dHMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2gg
XQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5vdXRzaWRlLmh0
bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0
eC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBh
aW50LnJlcGVhdHguY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnBhdHRlcm4ucGFpbnQucmVwZWF0eC5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5iYXNpYy5odG1sIFsgQ3Jhc2ggXQot
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkuY29vcmQxLmh0bWwg
WyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5v
dXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucmVw
ZWF0LmVtcHR5Lmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4u
cmVwZWF0Lm51bGwuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93
LnBhdHRlcm4uYWxwaGEuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hh
ZG93LnBhdHRlcm4uYmFzaWMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
c2hhZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5zaGFkb3cucGF0dGVybi50cmFuc3BhcmVudC4yLmh0bWwgWyBDcmFzaCBdCi1j
YW52YXMvcGhpbGlwL3Rlc3RzL2luaXRpYWwucmVzZXQucGF0dGVybi5odG1sIFsgQ3Jhc2ggXQot
CiBjb21wb3NpdGluZy9jYW52YXMvYWNjZWxlcmF0ZWQtY2FudmFzLWNvbXBvc2l0aW5nLmh0bWwg
WyBGYWlsdXJlIF0KIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3NwYW5PdmVybGFwc0NhbnZh
cy5odG1sIFsgRmFpbHVyZSBdCiAKIGNzczMvYmxlbmRpbmcvYmxlbmQtbW9kZS1jbGlwLWFjY2Vs
ZXJhdGVkLWJsZW5kaW5nLWNhbnZhcy5odG1sIFsgRmFpbHVyZSBdCisKIGRpc3BsYXlsaXN0cy9j
YW52YXMtZGlzcGxheS1saXN0Lmh0bWwgWyBGYWlsdXJlIF0KIAogZmFzdC9jYW52YXMvMmQuZmls
bFRleHQuZ3JhZGllbnQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTUsMzMgKzE0LDEzIEBAIGZhc3Qv
Y2FudmFzL2NhbnZhcy1ibGVuZC1pbWFnZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy9j
YW52YXMtYmxlbmQtc29saWQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvY2FudmFzLWJs
ZW5kaW5nLWNsaXBwaW5nLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL2NhbnZhcy1ibGVu
ZGluZy1jb2xvci1vdmVyLWNvbG9yLmh0bWwgWyBGYWlsdXJlIF0KK2Zhc3QvY2FudmFzL2NhbnZh
cy1ibGVuZGluZy1jb2xvci1vdmVyLWltYWdlLmh0bWwgWyBUaW1lb3V0IF0KIGZhc3QvY2FudmFz
L2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWdyYWRpZW50Lmh0bWwgWyBGYWlsdXJlIF0KLWFz
dC9jYW52YXMvY2FudmFzLWJsZW5kaW5nLWNvbG9yLW92ZXItaW1hZ2UuaHRtbCBbIFRpbWVvdXQg
XQotZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kaW5nLWNvbG9yLW92ZXItcGF0dGVybi5odG1sIFsg
Q3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kaW5nLWdyYWRpZW50LW92ZXItcGF0dGVy
bi5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kaW5nLWltYWdlLW92ZXIt
cGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kaW5nLXBhdHRl
cm4tb3Zlci1jb2xvci5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kaW5n
LXBhdHRlcm4tb3Zlci1ncmFkaWVudC5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFz
LWJsZW5kaW5nLXBhdHRlcm4tb3Zlci1pbWFnZS5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMv
Y2FudmFzLWJsZW5kaW5nLXBhdHRlcm4tb3Zlci1wYXR0ZXJuLmh0bWwgWyBDcmFzaCBdCi1mYXN0
L2NhbnZhcy9jYW52YXMtY3JlYXRlUGF0dGVybi1maWxsUmVjdC1zaGFkb3cuaHRtbCBbIENyYXNo
IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1jcmVhdGVQYXR0ZXJuLXZpZGVvLWxvYWRpbmcuaHRtbCBb
IENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1jcmVhdGVQYXR0ZXJuLXZpZGVvLW1vZGlmeS5o
dG1sIFsgQ3Jhc2ggXQogZmFzdC9jYW52YXMvY2FudmFzLWRyYXdJbWFnZS1jb21wb3NpdGUtY29w
eS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1mYXN0L2NhbnZhcy9jYW52YXMtZmlsbFBhdGgt
cGF0dGVybi1zaGFkb3cuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1pbWFnZS1z
aGFkb3cuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1pbWFnZVNtb290aGluZ0Vu
YWJsZWQtcGF0dGVybnMuaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFzL2NhbnZhcy1sYXJnZS1k
aW1lbnNpb25zLmh0bWwgWyBGYWlsdXJlIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1wYXR0ZXJuLWJl
aGF2aW91ci5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4tbW9kaWZ5
Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtcGF0dGVybi10cmFuc2Zvcm0uaHRt
bCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1wYXR0ZXJuLXdpdGgtdHJhbnNmb3JtLmh0
bWwgWyBDcmFzaCBdCiBmYXN0L2NhbnZhcy9jYW52YXMtcmVuZGVyLWxheWVyLmh0bWwgWyBGYWls
dXJlIF0KIGZhc3QvY2FudmFzL2hpZHBpLXJlcGFpbnQtb24tcmV0aW5hLWxlYXZlcy1iaXRzLWJl
aGluZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1mYXN0L2NhbnZhcy9pbWFnZS1vYmplY3Qt
aW4tY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9pbWFnZS1wYXR0ZXJuLXJvdGF0
ZS5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvcGF0dGVybi13aXRoLXRyYW5zZm9ybS5odG1s
IFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvcGF0dGVybmZpbGwtcmVwZWF0Lmh0bWwgWyBDcmFzaCBd
CisKIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy0yZC13ZWJnbC10ZXh0dXJlLmh0bWwgWyBGYWls
dXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KIGZh
c3QvY2FudmFzL3dlYmdsL2NvbnRleHQtY3JlYXRpb24tYXR0cmlidXRlcy5odG1sIFsgRmFpbHVy
ZSBdCkBAIC0xMDAsMzYgKzM5LDMxIEBAIGZhc3QvY2FudmFzL3dlYmdsL3RleEltYWdlMkQtdmlk
ZW8tZmxpcFktZmFsc2UuaHRtbCBbIFRpbWVvdXQgXQogZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1h
Z2UyRC12aWRlby1mbGlwWS10cnVlLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmds
L3RleHR1cmUtYWN0aXZlLWJpbmQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wv
d2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwgWyBUaW1lb3V0IF0KLQogZmFzdC9kb20vbmF2
aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvaW1hZ2VzL2Fu
aW1hdGVkLWltYWdlLW1wNC1jcmFzaC5odG1sIFsgVGltZW91dCBdCiBmYXN0L2ltYWdlcy9hbmlt
YXRlZC1pbWFnZS1tcDQuaHRtbCBbIFRpbWVvdXQgXQogZmFzdC9pbWFnZXMvb3JkZXJlZC1hbmlt
YXRlZC1pbWFnZS1mcmFtZXMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotCiBmYXN0L21lZGlh
Y2FwdHVyZWZyb21lbGVtZW50L0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbS1leGNlcHRpb25zLmh0
bWwgWyBDcmFzaCBdCiBmYXN0L21lZGlhY2FwdHVyZWZyb21lbGVtZW50L0NhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbS13ZWJnbC1ldmVudHMuaHRtbCBbIFRpbWVvdXQgXQogZmFzdC9tZWRpYXN0cmVh
bS9jYXB0dXJlU3RyZWFtL2NhbnZhczNkLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvbWVkaWFzdHJl
YW0vbWVkaWEtZWxlbWVudC1jdXJyZW50LXRpbWUuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9tZWRp
YXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2staW50ZXJydXB0ZWQuaHRtbCBbIEZhaWx1cmUgXQot
CiBmYXN0L3JlcGFpbnQvY2FudmFzLW9iamVjdC1maXQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9y
ZXBhaW50L2NhbnZhcy1wdXRJbWFnZURhdGEuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9zcGVlY2hy
ZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbCBbIFRpbWVvdXQgXQog
ZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBbIEZh
aWx1cmUgXQotCiBmYXN0L3RleHQvY2FudmFzLWNvbG9yLWZvbnRzL2ZpbGwtZ3JhZGllbnQtQ09M
Ui0yLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvdGV4dC9jYW52YXMtY29sb3ItZm9u
dHMvc3Ryb2tlLWdyYWRpZW50LUNPTFItMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0
L3RleHQvY2FudmFzLWNvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1DT0xSLTMuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogZmFzdC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9zdHJva2UtZ3Jh
ZGllbnQtQ09MUi00Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvdGV4dC9jYW52YXMt
Y29sb3ItZm9udHMvc3Ryb2tlLWdyYWRpZW50LUNPTFItNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCisKIGh0dHAvdGVzdHMvY2FudmFzL2NvbG9yLWZvbnRzL2ZpbGwtZ3JhZGllbnQtc2JpeC0y
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGh0dHAvdGVzdHMvY2FudmFzL2NvbG9yLWZvbnRz
L2ZpbGwtZ3JhZGllbnQtc2JpeC0zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGh0dHAvdGVz
dHMvY2FudmFzL2NvbG9yLWZvbnRzL2ZpbGwtZ3JhZGllbnQtc2JpeC00Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGh0dHAvdGVzdHMvY2FudmFzL2NvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVu
dC1zYml4LTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy9jYW52YXMvY29s
b3ItZm9udHMvc3Ryb2tlLWdyYWRpZW50LXNiaXgtMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBodHRwL3Rlc3RzL2NhbnZhcy9jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtc2JpeC00Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWh0dHAvdGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy9z
ZWN1cml0eS5wYXR0ZXJuLmNhbnZhcy50aW1pbmcuaHRtbCBbIENyYXNoIF0KLWh0dHAvdGVzdHMv
Y2FudmFzL3BoaWxpcC90ZXN0cy9zZWN1cml0eS5wYXR0ZXJuLmNyb3NzLmh0bWwgWyBDcmFzaCBd
CiBodHRwL3Rlc3RzL21lZGlhL2NsZWFya2V5L2NsZWFyLWtleS1obHMtYWVzMTI4Lmh0bWwgWyBG
YWlsdXJlIF0KIGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvY29sbGVjdC13ZWJraXQtbWVkaWEt
c2Vzc2lvbi5odG1sIFsgQ3Jhc2ggXQogaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWhkci1zd2l0
Y2guaHRtbCBbIFRpbWVvdXQgXQpAQCAtMTM5LDcgKzczLDYgQEAgaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1kb2N1bWVudC1yZWZlcmVyLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtZG9jdW1lbnQuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1w
bGF5LXN0cmVhbS1jaHVua2VkLWljeS5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QuaHRtbCBbIFRpbWVv
dXQgXQotbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEt
Y29udHJvbGxlci1hdXRvLWhpZGUuaHRtbCBbIENyYXNoIF0KIGh0dHAvdGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3BpcC1zdXBwb3J0L3BpcC1zdXBwb3J0LWxpdmUtYnJvYWRjYXN0
Lmh0bWwgWyBUaW1lb3V0IF0KIGh0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3NraXAtYmFjay1zdXBwb3J0L3NraXAtYmFjay1zdXBwb3J0LWJ1dHRvbi1jbGljay5odG1sIFsg
VGltZW91dCBdCiBodHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9za2lwLWJh
Y2stc3VwcG9ydC9za2lwLWJhY2stc3VwcG9ydC1saXZlLWJyb2FkY2FzdC5odG1sIFsgVGltZW91
dCBdCkBAIC0xNzcsOSArMTEwLDggQEAgaHR0cC90ZXN0cy9zZWN1cml0eS93ZWJhdWRpby1yZW5k
ZXItcmVtb3RlLWF1ZGlvLWFsbG93ZWQtY3Jvc3NvcmlnaW4tcmVkaXJlY3QuaHQKIGh0dHAvdGVz
dHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxvd2VkLWNyb3Nzb3Jp
Z2luLmh0bWwgWyBUaW1lb3V0IF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVy
LXJlbW90ZS1hdWRpby1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLXJlZGlyZWN0Lmh0bWwgWyBUaW1l
b3V0IF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1i
bG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWwgWyBUaW1lb3V0IF0KLQotaHR0cC93cHQvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRhdGFhdmFpbGFibGUuaHRtbCBb
IEZhaWx1cmUgXQogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLWF1ZGlvLWJp
dHJhdGUuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLUFWLWF1ZGlvLXZpZGVvLWRhdGFhdmFpbGFibGUuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC93
cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW11bHRpcGxlLXN0YXJ0LXN0b3AuaHRtbCBb
IEZhaWx1cmUgXQogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy5odG1sIFsgQ3Jh
c2ggXQogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9wYXVzZS1yZWNvcmRpbmcuaHRtbCBbIEZhaWx1
cmUgXQpAQCAtMTkwLDk0ICsxMjIsMTAgQEAgaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWlzLXVzZXItdmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRpY2F0b3IKIGltcG9y
dGVkL2JsaW5rL2Zhc3QvY2FudmFzL2NhbnZhcy1jbGlwLXN0YWNrLXBlcnNpc3RlbmNlLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL2JsaW5rL2Zhc3QvY2FudmFzL2NhbnZhcy1z
dGF0ZS1wZXJzaXN0ZW5jZS1uby1kaXJ0eS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBv
cnRlZC9ibGluay9mYXN0L2NhbnZhcy9jYW52YXMtdW5iYWxhbmNlZC1zYXZlLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL2JsaW5rL3N2Zy9jYW52YXMvY2FudmFzLWRyYXctcGF0
dGVybi1zaXplLmh0bWwgWyBDcmFzaCBdCiAKLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9z
aXRlLmdsb2JhbEFscGhhLmNhbnZhc3BhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3cz
Yy9jYW52YXMvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmltYWdlcGF0dGVybi5odG1sIFsgQ3Jh
c2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4u
Y29weS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5jb21wb3NpdGUudW5j
b3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24tYXRvcC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL2NhbnZhcy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24taW4u
aHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJl
ZC5wYXR0ZXJuLnNvdXJjZS1pbi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8y
ZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uc291cmNlLW91dC5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLmJhc2ljLmNhbnZhcy5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLmJhc2ljLmltYWdlLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4uYmFzaWMubm9jb250ZXh0Lmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4uY3Jvc3NjYW52YXMuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFz
MS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLm1vZGlmeS5j
YW52YXMyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFp
bnQubm9yZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
cGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3cz
Yy9jYW52YXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDMuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVh
dC5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4u
cGFpbnQub3JpZW50YXRpb24uY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2Fu
dmFzLzJkLnBhdHRlcm4ucGFpbnQub3JpZW50YXRpb24uaW1hZ2UuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuYmFzaWMuaHRtbCBbIENy
YXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQx
Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVw
ZWF0LmNvb3JkMi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJu
LnBhaW50LnJlcGVhdC5jb29yZDMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMv
MmQucGF0dGVybi5wYWludC5yZXBlYXQub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHguYmFzaWMuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4LmNvb3JkMS5odG1s
IFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHgu
b3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBh
aW50LnJlcGVhdHkuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
cGF0dGVybi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNj
L2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnJlcGVhdC5lbXB0eS5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnJlcGVhdC5udWxsLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnNoYWRvdy5wYXR0ZXJuLmFscGhhLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnNoYWRvdy5wYXR0ZXJuLmJhc2ljLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnNoYWRvdy5wYXR0ZXJuLnRyYW5zcGFy
ZW50LjEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuc2hhZG93LnBhdHRl
cm4udHJhbnNwYXJlbnQuMi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy9pbml0
aWFsLnJlc2V0LnBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvc2Vj
dXJpdHkucGF0dGVybi5jYW52YXMudGltaW5nLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
Y2FudmFzL3NlY3VyaXR5LnBhdHRlcm4uY3Jvc3MuaHRtbCBbIENyYXNoIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC53aW5kb3cuaHRtbCBbIEZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9zdy5o
dHRwcy53aW5kb3cuaHRtbCBbIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS5nbG9iYWxB
bHBoYS5jYW52YXNwYXR0ZXJuLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRlLmds
b2JhbEFscGhhLmltYWdlcGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0
ZS51bmNvdmVyZWQucGF0dGVybi5jb3B5Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9z
aXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWF0b3AuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9jb21wb3Np
dGluZy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24taW4uaHRtbCBb
IENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxl
bWVudC9jb21wb3NpdGluZy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uc291cmNlLWlu
Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNv
dXJjZS1vdXQuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4uYW5p
bWF0ZWQuZ2lmLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLmJh
c2ljLmNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5i
YXNpYy5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5i
YXNpYy5ub2NvbnRleHQuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRl
cm4uY3Jvc3NjYW52YXMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRl
cm4ubW9kaWZ5LmNhbnZhczEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBh
dHRlcm4ubW9kaWZ5LmNhbnZhczIuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJk
LnBhdHRlcm4ubW9kaWZ5LmltYWdlMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMv
MmQucGF0dGVybi5tb2RpZnkuaW1hZ2UyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxl
cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ry
b2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2Zp
bGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDIuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQu
Y29vcmQzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50
Lm5vcmVwZWF0Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBh
dHRlcm4ucGFpbnQub3JpZW50YXRpb24uY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tl
LXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmltYWdlLmh0bWwgWyBDcmFzaCBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmls
bC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5iYXNpYy5odG1sIFsg
Q3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVt
ZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQx
Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVh
dC5jb29yZDIuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFp
bnQucmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0
dGVybi5wYWludC5yZXBlYXQub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHls
ZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ry
b2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHguY29vcmQxLmh0bWwgWyBDcmFzaCBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmls
bC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHgub3V0c2lkZS5odG1s
IFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9l
bGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmJh
c2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJl
cGVhdHkuY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJu
LnBhaW50LnJlcGVhdHkub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMv
MmQucGF0dGVybi5yZXBlYXQuZW1wdHkuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVz
LzJkLnBhdHRlcm4udHJhbnNmb3JtLmlkZW50aXR5Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2Utc21vb3RoaW5n
L2ltYWdlc21vb3RoaW5nLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAt
b3JpZ2luLnN1Yi5odG1sIFsgRmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvbGluZS1zdHlsZXMvMmQubGluZS5jYXAuY2xvc2VkLmh0
bWwgWyBDcmFzaCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L2VsZW1lbnQvcGF0aC1vYmplY3RzLzJkLnBhdGguc3Ryb2tlLnNjYWxlMi5odG1sIFsgRmFpbHVy
ZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
c2hhZG93cy8yZC5zaGFkb3cucGF0dGVybi5hbHBoYS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3NoYWRvd3MvMmQuc2hh
ZG93LnBhdHRlcm4uYmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9zaGFkb3dzLzJkLnNoYWRvdy5wYXR0ZXJuLnRy
YW5zcGFyZW50LjEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvZWxlbWVudC9zaGFkb3dzLzJkLnNoYWRvdy5wYXR0ZXJuLnRyYW5zcGFy
ZW50LjIuaHRtbCBbIENyYXNoIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9sb2FkaW5nLXRoZS1t
ZWRpYS1yZXNvdXJjZS9sb2FkLWV2ZW50cy1uZXR3b3JrU3RhdGUuaHRtbCBbIEZhaWx1cmUgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL3ByZXNlcnZlcy1waXRjaC5odG1sIFsgRmFpbHVyZSBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L2luaXRpYWwucmVzZXQucGF0dGVybi5odG1sIFsgQ3Jh
c2ggXQpAQCAtMzEwLDYgKzE1OCw3IEBAIG1lZGlhL21lZGlhLWNvbnRyb2xsZXItdGltZS5odG1s
IFsgVGltZW91dCBdCiBtZWRpYS9tZWRpYS1jb250cm9sbGVyLXVucGF1c2UuaHRtbCBbIFRpbWVv
dXQgXQogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUuaHRtbCBbIFRpbWVv
dXQgXQogbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvbWVkaWFjYXBhYmlsaXRpZXMtdHlwZXMuaHRt
bCBbIEZhaWx1cmUgXQorbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xs
ZXIvbWVkaWEtY29udHJvbGxlci1hdXRvLWhpZGUuaHRtbCBbIENyYXNoIF0KIG1lZGlhL3RyYWNr
L2F1ZGlvLXRyYWNrLmh0bWwgWyBDcmFzaCBdCiBtZWRpYS92aWRlby1jYW52YXMtY3JlYXRlUGF0
dGVybi5odG1sIFsgQ3Jhc2ggXQogbWVkaWEvdmlkZW8tY29udHJvbGxlci1jaGlsZC1yYXRlLmh0
bWwgWyBUaW1lb3V0IF0KQEAgLTMyNCw5ICsxNzMsOSBAQCBzdmcvYXMtaW1hZ2Uvc3ZnLWNhbnZh
cy1wYXR0ZXJuLXdpdGgtbGluay10YWludGVkLmh0bWwgWyBDcmFzaCBdCiBzdmcvY2FudmFzL2Nh
bnZhcy1nbG9iYWwtYWxwaGEtc3ZnLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHN2Zy9jYW52
YXMvY2FudmFzLXBhdHRlcm4tc3ZnLmh0bWwgWyBDcmFzaCBdCiAKLXdlYmF1ZGlvL1Bhbm5lci9o
cnRmLWRhdGFiYXNlLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmF1ZGlvL2NvZGVjLXRlc3RzL2FhYy92
YnItMTI4a2Jwcy00NGtoei5odG1sIFsgVGltZW91dCBdCiB3ZWJhdWRpby9jb2RlYy10ZXN0cy9t
cDMvMTI4a2Jwcy00NGtoei5odG1sIFsgVGltZW91dCBdCit3ZWJhdWRpby9QYW5uZXIvaHJ0Zi1k
YXRhYmFzZS5odG1sIFsgVGltZW91dCBdCiAKIHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL2NhbnZh
cy9jYW52YXMtdGVzdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9j
YW52YXMvZHJhdy1zdGF0aWMtd2ViZ2wtdG8tbXVsdGlwbGUtY2FudmFzLXRlc3QuaHRtbCBbIEZh
aWx1cmUgXQpAQCAtMzk5LDY4ICsyNDgsNiBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS90ZXh0
dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYmEtcmdiYS11bnNpZ25lZF9zaG9ydF81Xwogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UvdW5pZm9ybXMvdW5pZm9ybS1zYW1wbGVycy10ZXN0Lmh0bWwg
WyBUaW1lb3V0IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZWFkaW5nL3JlYWQtcGl4ZWxz
LXBhY2stcGFyYW1ldGVycy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sIFsgVGltZW91dCBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2It
ZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjEx
Zl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjE2
Zi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMzJmLXJl
ZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yOC1yZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yOHVpLXJlZF9p
bnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcxNmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcx
NmYtcmctaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzgtcmct
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1X2Ex
LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRf
NV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjh1aS1y
Z2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZ2JhMTZmLXJnYmEtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMzJmLXJnYmEtZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5z
aWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOC1y
Z2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEw
Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50
XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTZmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTZmLXJl
ZC1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIzMmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXI4LXJlZC11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTNkLXI4dWktcmVkX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0z
ZC1yZzE2Zi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzE2Zi1yZy1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWls
dXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJn
MzJmLXJnLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnOC1yZy11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnOHVp
LXJnX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTNkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVk
X3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjgtcmdiLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcmdiYTE2Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1oYWxmX2Zsb2F0
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTNkLXJnYmEzMmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXNy
Z2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yMTFm
X2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yMTFmX2cxMWZfYjEw
Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJn
Yi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTQ3Nywx
MCArMjY0LDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3Vi
X3JlY3RhbmdsZS90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11CiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjE2Zi1yZ2ItZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVj
dGFuZ2xlL3RleC0yZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdi
NTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiNTY1LXJnYi11
bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjVfYTEtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVk
X3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVf
Nl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3Jl
Y3RhbmdsZS90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNDky
LDggKzI3OSw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3Vi
X3JlY3RhbmdsZS90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYmE0LXJnYmEtdW5z
aWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYmE4LXJnYmEtdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
c19zdWJfcmVjdGFuZ2xlL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0
YW5nbGUvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4
LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2Qt
cjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZh
aWx1cmUgXQpAQCAtNTEwLDEwICsyOTcsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZzh1aS1yZ19pbnRlZ2VyLXUKIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgt
M2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjE2Zi1yZ2ItaGFs
Zl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVj
dGFuZ2xlL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3Rl
eC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgt
M2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I1
X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJn
YjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjU2NS1yZ2It
dW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I4LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I5X2U1LXJnYi1mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCkBAIC01MjUsOCArMzEyLDcwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4
LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4
LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYmE4
dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1zcmdi
OC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXNyZ2I4X2FscGhhOC1y
Z2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUg
XQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9n
MTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2ln
bmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjE2Zi1yZWQtZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQt
cjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMzJmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yOC1y
ZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yOHVpLXJlZF9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcmcxNmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcxNmYtcmctaGFsZl9mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzgtcmctdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0y
ZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiMTZmLXJnYi1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiMzJmLXJnYi1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1X2ExLXJn
YmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5
dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I4
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTJkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMTZmLXJnYmEtaGFs
Zl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yZ2JhMzJmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTQtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTh1aS1yZ2JhX2lu
dGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxMWZfZzExZl9i
MTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1s
IFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0zZC1yMTZmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTZmLXJlZC1oYWxmX2Zsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXIzMmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXI4LXJlZC11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXI4
dWktcmVkX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzE2Zi1yZy1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0zZC1yZzE2Zi1yZy1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnMzJmLXJnLWZsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXJnOC1yZy11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnOHVpLXJnX2ludGVnZXItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjE2Zi1yZ2ItaGFsZl9m
bG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2ln
bmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qt
cmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTE2Zi1yZ2JhLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmEzMmYtcmdi
YS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTQt
cmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtc3JnYjgtcmdiLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcjExZl9nMTFmX2IxMGYt
cmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXIxMWZfZzExZl9iMTBm
LXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXIxMWZfZzEx
Zl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0K
QEAgLTU0MywxMCArMzkyLDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9p
bWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnOHVpLXJnCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3Rl
eC0yZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJn
YjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2Iz
MmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjU2NS1yZ2It
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJn
YjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJk
LXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2Vf
Yml0bWFwL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJv
bV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9t
X2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2Jp
dG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQpAQCAtNTU4LDggKzQwNyw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYmE0LXJnCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0
bWFwL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9t
X2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJv
bV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1y
Z2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcjExZl9nMTFmX2IxMGYt
cmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcjExZl9nMTFm
X2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQpA
QCAtNTc2LDEwICs0MjUsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2lt
YWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtcmc4dWktcmcKIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4
LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtcmdi
MTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjMy
Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiNTY1LXJnYi11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjU2NS1yZ2It
dW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtcmdi
NV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qt
cmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2Jp
dG1hcC90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9t
X2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21f
aW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0
bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I5X2U1LXJnYi1mbG9hdC5odG1sIFsgRmFp
bHVyZSBdCkBAIC01OTEsOCArNDQwLDggQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiYTQtcmcKIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRt
YXAvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21f
aW1hZ2VfYml0bWFwL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9t
X2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2Vf
Yml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2Vf
Yml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXNyZ2I4LXJnYi11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9taXNjL2ludGVnZXItY3ViZW1hcC10ZXh0dXJlLXNhbXBsaW5nLmh0bWwgWyBDcmFzaCBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXIxMWZfZzExZl9i
MTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvdmlkZW8vdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KQEAgLTYxMCwxMCArNDU5LDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjE2Zi1y
Z2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3ZpZGVvL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2IzMmYtcmdi
LWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy92aWRlby90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiNTY1LXJn
Yi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRl
by90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2I1
NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVf
Nl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92
aWRlby90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjh1aS1yZ2JfaW50
ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQpAQCAtNjI1LDggKzQ3NCw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy92aWRlby90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWdu
ZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJk
LXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1zcmdiOC1yZ2ItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvdmlkZW8vdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0y
ZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlk
ZW8vdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcjExZl9nMTFm
X2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQpA
QCAtNjQzLDEwICs0OTIsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3Zp
ZGVvL3RleC0zZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHQKIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4
LTNkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0z
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3No
b3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy92aWRlby90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I1
X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvdmlkZW8vdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1y
Z2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0zZC1yZ2I5X2U1LXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC02NTgs
OCArNTA3LDggQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0z
ZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEYKIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRf
NF80Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92
aWRlby90ZXgtM2QtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiYTh1aS1yZ2Jh
X2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90
ZXgtM2Qtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXNyZ2I4LXJnYi11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1y
MTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFp
bHVyZSBdCkBAIC02NzYsMTAgKzUyNSwxMCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkXwogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiMTZm
LXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90
ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1
X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81
XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
d2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJk
LXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYmExNmYt
cmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC02ODksOCArNTM4LDggQEAgd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiYTQtcmdiYS11
bnNpZ25lZF9ieXRlLmgKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9j
YW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3Rl
eC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiYTh1aS1yZ2Jh
X2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
d2ViZ2xfY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52
YXMvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXIxMWZfZzEx
Zl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9m
bG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
d2ViZ2xfY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8x
MWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCkBAIC03MDcsMTAgKzU1NiwxMCBAQCB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZzh1aS1yZ19p
bnRlZ2VyLXVuc2lnbmVkXwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmds
X2NhbnZhcy90ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdi
LWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0z
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiNTY1LXJnYi11bnNp
Z25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2Vi
Z2xfY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1s
IFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiNTY1
LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I4LXJnYi11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9j
YW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC03MjAs
MTIgKzU2OSwxMiBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaAogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9z
aG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4
LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXNyZ2I4X2FscGhhOC1y
Z2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2Qtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvbWFueS1jb250ZXh0cy1hY2Nlc3MtYWZ0ZXItbG9zcy5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWNvbnNvbGUtd2Fybmlu
Zy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWdjLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtb2xkZXN0LWNvbnRleHQtbG9zdC5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxv
c3QtcHJldmVudC1kZWZhdWx0Lmh0bWwgWyBUaW1lb3V0IF0KIAotd2VicnRjL2F1ZGlvLXZpZGVv
LWVsZW1lbnQtcGxheWluZy5odG1sIFsgRmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQord2VicnRjL2F1ZGlvLXZpZGVvLWVsZW1lbnQtcGxheWluZy5odG1sIFsgRmFpbHVyZSBd
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419468</attachid>
            <date>2021-02-05 14:48:41 -0800</date>
            <delta_ts>2021-02-05 21:57:22 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-219468-20210205144840.patch</filename>
            <type>text/plain</type>
            <size>125184</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc2YWI1ZWRmOGM1NDQ3
NGUwMWFlYWJkZDNiYzU1NjkzYTM1ZGE4Ni4uNDU1MGMwZTY1YTJmYzNkN2FlNjM0NTYyNDgyZmE0
YTVhNzIzODZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIxLTAyLTA1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc106
IEltcGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm9yQ2Fu
dmFzUGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0Nv
bnRleHRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0
ZTo6R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhdHRlcm46OlBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6c2V0VGls
ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OnRpbGVJbWFnZSBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oOgorICAgICAgICAoV2ViQ29yZTo6
UGF0dGVybjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpGaWxsU291cmNlOjpGaWxsU291cmNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpzaG91bGREdW1wRm9yRmxhZ3MpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmFwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpzYWZlQ29weSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5
dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjpTZXRJbmxp
bmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3RhdGU6
OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6U2V0U3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjphcHBseSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJ
bmxpbmVGaWxsR3JhZGllbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yOjphcHBseSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRT
dGF0ZTo6c3RhdGVDaGFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldFN0YXRlOjpzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6
U2V0SW5saW5lRmlsbENvbG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6U2V0SW5saW5lU3Ry
b2tlQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElu
bGluZVN0cm9rZUNvbG9yOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29udGFpbnNPbmx5SW5saW5lU3RhdGVD
aGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5k
U3RhdGVDaGFuZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6d2lsbEFwcGVuZEl0ZW1PZlR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmFwcGx5U2V0U3RhdGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRVRpbGU6OnBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXR0ZXJuRm9yRGVzY3JpcHRpb24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKToKKwog
MjAyMS0wMi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtH
UFVQcm9jZXNzXSBJZiB0aGUgR1BVUHJvY2VzcyBjcmFzaGVzIGR1cmluZyBmdWxsc2NyZWVuIHBs
YXliYWNrLCB2aWRlbyBwYXVzZXMgYW5kIGV4aXRzIGZ1bGxzY3JlZW4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmY5
NDE3ZTU2ZjFkMzUzYWY4ZmNkZTVmMzQ2MWMxMTNlMzdjYmMzMC4uYmU0NTZiNTgzYzU4ZjhmYmZm
MTU4NGNiMDQxMzgzYmFiMTczNDljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0w
Mi0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BV
IFByb2Nlc3NdOiBJbXBsZW1lbnQgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRlbQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpkZWNvZGVJdGVtKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbWFnZUhhbmRs
ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW1hZ2VI
YW5kbGU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5Lmg6CisKIDIwMjEtMDItMDUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogQ29tcGxldGlvbiBo
YW5kbGVyIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIHVuZGVyIFdlYktpdDo6VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Ojpmb3JFYWNoU2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ2FudmFzLmNwcAppbmRleCAwYzg1ZjhhODM3Njc5NjZiYTI2YjVjMzMzZWQ2
MGMwMWE1MGFhMTE2Li5lNWYyMjEwYWU5ODczM2U5ODRhYjU4NGY2ZjlhM2M4NDdiNWE4MDQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcApAQCAtMTIw
Miw5ICsxMjAyLDEwIEBAIFJlZjxKU09OOjpBcnJheU9mPEpTT046OlZhbHVlPj4gSW5zcGVjdG9y
Q2FudmFzOjpidWlsZEFycmF5Rm9yQ2FudmFzR3JhZGllbnQoY29uCiAKIFJlZjxKU09OOjpBcnJh
eU9mPEpTT046OlZhbHVlPj4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm9yQ2FudmFzUGF0
dGVybihjb25zdCBDYW52YXNQYXR0ZXJuJiBjYW52YXNQYXR0ZXJuKQogewotICAgIEltYWdlJiB0
aWxlSW1hZ2UgPSBjYW52YXNQYXR0ZXJuLnBhdHRlcm4oKS50aWxlSW1hZ2UoKTsKKyAgICBhdXRv
JiB0aWxlSW1hZ2UgPSBjYW52YXNQYXR0ZXJuLnBhdHRlcm4oKS50aWxlSW1hZ2UoKTsKKyAgICBG
bG9hdFJlY3QgcmVjdCA9IHsgeyB9LCB0aWxlSW1hZ2Uuc2l6ZSgpIH07CiAgICAgYXV0byBpbWFn
ZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUodGlsZUltYWdlLnNpemUoKSwgUmVuZGVyaW5n
TW9kZTo6VW5hY2NlbGVyYXRlZCk7Ci0gICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5kcmF3SW1h
Z2UodGlsZUltYWdlLCBGbG9hdFBvaW50KDAsIDApKTsKKyAgICBpbWFnZUJ1ZmZlci0+Y29udGV4
dCgpLmRyYXdOYXRpdmVJbWFnZSh0aWxlSW1hZ2UsIHRpbGVJbWFnZS5zaXplKCksIHJlY3QsIHJl
Y3QpOwogCiAgICAgU3RyaW5nIHJlcGVhdDsKICAgICBib29sIHJlcGVhdFggPSBjYW52YXNQYXR0
ZXJuLnBhdHRlcm4oKS5yZXBlYXRYKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCAyYTA2NzVhMTM3ZWEyMjY5NGZi
MGRhY2ZhNWNkZWQxMzcxNjE5YzNiLi4xZTU5NGNiZWU3N2I5Njc1NWY1M2I5ZjhmNDNhOWNmYjlk
NTY2MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAKQEAgLTc3LDI2ICs3Nyw2IEBAIHByaXZhdGU6CiAgICAgaWYgKG1f
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OmZsYWcpICYmIChtX3N0
YXRlLnByb3BlcnR5ICE9IHN0YXRlLnByb3BlcnR5KSkgXAogICAgICAgICBjaGFuZ2VGbGFncy5h
ZGQoR3JhcGhpY3NDb250ZXh0U3RhdGU6OmZsYWcpOwogCi1HcmFwaGljc0NvbnRleHRTdGF0ZTo6
R3JhcGhpY3NDb250ZXh0U3RhdGUoKQotICAgIDogc2hvdWxkQW50aWFsaWFzKHRydWUpCi0gICAg
LCBzaG91bGRTbW9vdGhGb250cyh0cnVlKQotICAgICwgc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZv
bnRzKHRydWUpCi0gICAgLCBzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyhmYWxzZSkKLSNpZiBVU0Uo
Q0cpCi0gICAgLy8gQ29yZSBHcmFwaGljcyBpbmNvcnJlY3RseSByZW5kZXJzIHNoYWRvd3Mgd2l0
aCByYWRpdXMgPiA4cHggKDxyZGFyOi8vcHJvYmxlbS84MTAzNDQyPiksCi0gICAgLy8gYnV0IHdl
IG5lZWQgdG8gcHJlc2VydmUgdGhpcyBidWdneSBiZWhhdmlvciBmb3IgY2FudmFzIGFuZCAtd2Vi
a2l0LWJveC1zaGFkb3cuCi0gICAgLCBzaGFkb3dzVXNlTGVnYWN5UmFkaXVzKGZhbHNlKQotI2Vu
ZGlmCi0gICAgLCBkcmF3THVtaW5hbmNlTWFzayhmYWxzZSkKLXsKLX0KLQotR3JhcGhpY3NDb250
ZXh0U3RhdGU6On5HcmFwaGljc0NvbnRleHRTdGF0ZSgpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0
ZShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0
ZSYgR3JhcGhpY3NDb250ZXh0U3RhdGU6Om9wZXJhdG9yPShjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29udGV4dFN0YXRlJiBHcmFwaGljc0NvbnRleHRT
dGF0ZTo6b3BlcmF0b3I9KEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpID0gZGVmYXVsdDsKLQogR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgR3JhcGhpY3NDb250ZXh0U3RhdGVD
aGFuZ2U6OmNoYW5nZXNGcm9tU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRl
KSBjb25zdAogewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNo
YW5nZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaAppbmRleCA0MDY0MjhlODRiZjQwZDZjNWU0ZjE1YWFmZWRjMGUxODZiODMx
NjAyLi5iMjdjN2ZhY2FlMzcyM2RhMjM3NzFjMGQwOTNhM2E0ZDAxOWEyMTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRhc2hBcnJheS5oIgogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNp
bmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJ
bWFnZU9yaWVudGF0aW9uLmgiCkBAIC03OSw3ICs4MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNz
IEdyYWRpZW50OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0SW1wbDsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dFBsYXRmb3JtUHJpdmF0ZTsKIGNsYXNzIEltYWdlQnVmZmVyOwpAQCAtMTUwLDE2ICsxNTAs
NyBAQCBPcHRpb25hbDxEb2N1bWVudE1hcmtlckxpbmVTdHlsZT4gRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZAogICAgIHJldHVybiB7eyAqbW9kZSwgKnNob3Vs
ZFVzZURhcmtBcHBlYXJhbmNlIH19OwogfQogCi1zdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUg
ewotICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlKCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgfkdyYXBoaWNzQ29udGV4dFN0YXRlKCk7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIEdy
YXBoaWNzQ29udGV4dFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOwotCi0gICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmIG9wZXJhdG9yPShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlJiBvcGVyYXRvcj0oR3JhcGhp
Y3NDb250ZXh0U3RhdGUmJik7Ci0KK3N0cnVjdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSB7
CiAgICAgZW51bSBDaGFuZ2UgOiB1aW50MzJfdCB7CiAgICAgICAgIFN0cm9rZUdyYWRpZW50Q2hh
bmdlICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKICAgICAgICAgU3Ryb2tlUGF0dGVybkNo
YW5nZSAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLApAQCAtMTg2LDEyICsxNzcsMjAgQEAg
c3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKICNlbmRpZgogICAgIH07CiAgICAgdXNpbmcg
U3RhdGVDaGFuZ2VGbGFncyA9IE9wdGlvblNldDxDaGFuZ2U+OwotCi0gICAgUmVmUHRyPEdyYWRp
ZW50PiBzdHJva2VHcmFkaWVudDsKLSAgICBSZWZQdHI8UGF0dGVybj4gc3Ryb2tlUGF0dGVybjsK
ICAgICAKLSAgICBSZWZQdHI8R3JhZGllbnQ+IGZpbGxHcmFkaWVudDsKLSAgICBSZWZQdHI8UGF0
dGVybj4gZmlsbFBhdHRlcm47CisgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUoKQorICAg
ICAgICA6IHNob3VsZEFudGlhbGlhcyh0cnVlKQorICAgICAgICAsIHNob3VsZFNtb290aEZvbnRz
KHRydWUpCisgICAgICAgICwgc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzKHRydWUpCisgICAg
ICAgICwgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoZmFsc2UpCisjaWYgVVNFKENHKQorICAgICAg
ICAvLyBDb3JlIEdyYXBoaWNzIGluY29ycmVjdGx5IHJlbmRlcnMgc2hhZG93cyB3aXRoIHJhZGl1
cyA+IDhweCAoPHJkYXI6Ly9wcm9ibGVtLzgxMDM0NDI+KSwKKyAgICAgICAgLy8gYnV0IHdlIG5l
ZWQgdG8gcHJlc2VydmUgdGhpcyBidWdneSBiZWhhdmlvciBmb3IgY2FudmFzIGFuZCAtd2Via2l0
LWJveC1zaGFkb3cuCisgICAgICAgICwgc2hhZG93c1VzZUxlZ2FjeVJhZGl1cyhmYWxzZSkKKyNl
bmRpZgorICAgICAgICAsIGRyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKQorICAgIHsKKyAgICB9CiAK
ICAgICBGbG9hdFNpemUgc2hhZG93T2Zmc2V0OwogCkBAIC0yMDAsMTAgKzE5OSw2IEBAIHN0cnVj
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAKICAgICBUZXh0RHJhd2luZ01vZGVGbGFncyB0ZXh0
RHJhd2luZ01vZGUgeyBUZXh0RHJhd2luZ01vZGU6OkZpbGwgfTsKIAotICAgIENvbG9yIHN0cm9r
ZUNvbG9yIHsgQ29sb3I6OmJsYWNrIH07Ci0gICAgQ29sb3IgZmlsbENvbG9yIHsgQ29sb3I6OmJs
YWNrIH07Ci0gICAgQ29sb3Igc2hhZG93Q29sb3I7Ci0KICAgICBBZmZpbmVUcmFuc2Zvcm0gc3Ry
b2tlR3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKICAgICBBZmZpbmVUcmFuc2Zvcm0gZmlsbEdyYWRp
ZW50U3BhY2VUcmFuc2Zvcm07CiAgICAgCkBAIC0yMjgsNiArMjIzLDI0IEBAIHN0cnVjdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSB7CiAjZW5kaWYKIH07CiAKK3N0cnVjdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSB7CisgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGUoKSA9IGRlZmF1bHQ7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUoY29uc3Qg
R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmIG90aGVyKQorICAgICAgICA6IEdyYXBoaWNzQ29u
dGV4dElubGluZVN0YXRlKG90aGVyKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8R3JhZGll
bnQ+IHN0cm9rZUdyYWRpZW50OworICAgIFJlZlB0cjxQYXR0ZXJuPiBzdHJva2VQYXR0ZXJuOwor
CisgICAgUmVmUHRyPEdyYWRpZW50PiBmaWxsR3JhZGllbnQ7CisgICAgUmVmUHRyPFBhdHRlcm4+
IGZpbGxQYXR0ZXJuOworCisgICAgQ29sb3Igc3Ryb2tlQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsK
KyAgICBDb2xvciBmaWxsQ29sb3IgeyBDb2xvcjo6YmxhY2sgfTsKKyAgICBDb2xvciBzaGFkb3dD
b2xvcjsKK307CisKIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSB7CiAgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UoKSA9IGRlZmF1bHQ7CiAgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVDaGFuZ2UoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBmbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5oCmluZGV4IDQzNmIzN2Q2YzhlYzZmMDBmNGZlYjRkZDM2ZjRhMjky
M2M3Zjk2ZWEuLmRhMDEwZjNmZGNkMDY4MDU2MjhiODYwY2FlMzJiZDliZTlhNDU0ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaApAQCAtMjEwLDExICsyMTAsNiBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4gbV9hbmltYXRpb25TdGFydFRp
bWVyOwogfTsKIAotY2xhc3MgSW1hZ2VIYW5kbGUgewotcHVibGljOgotICAgIFJlZlB0cjxJbWFn
ZT4gaW1hZ2U7Ci19OwotCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgY29uc3QgSW1hZ2UmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAppbmRleCA3OTZhMDdjMTg2YjYy
ZmY0ZTZiNmVhMjYxMDdmZjlmYzRjNDM4ZTcxLi5hNDEzNDk2NTU2YzJkMjZhYTU2NjAyNGRlNzhh
YjMwOWM5MzhiZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QYXR0ZXJuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0
ZXJuLmNwcApAQCAtMjcsMjQgKzI3LDYyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUGF0dGVybi5oIgogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
SW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVhdGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwg
Ym9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCit7CisgICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2Ug
PSB0aWxlSW1hZ2UtPm5hdGl2ZUltYWdlKCkpCisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFBhdHRlcm4obmF0aXZlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgcmVwZWF0WCwgcmVwZWF0WSkp
OworCisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUodGlsZUltYWdl
LT5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOworICAgIGltYWdlQnVmZmVy
LT5jb250ZXh0KCkuZHJhd0ltYWdlKHRpbGVJbWFnZSwgRmxvYXRQb2ludCgwLCAwKSk7CisKKyAg
ICBhdXRvIG5hdGl2ZUltYWdlID0gSW1hZ2VCdWZmZXI6OnNpbmtJbnRvTmF0aXZlSW1hZ2UoV1RG
TW92ZShpbWFnZUJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhdHRlcm4obmF0
aXZlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgcmVwZWF0WCwgcmVwZWF0WSkpOworfQorCitSZWY8
UGF0dGVybj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxOYXRpdmVJbWFnZT4mJiB0aWxlSW1hZ2UsIGJv
b2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBh
dHRlcm4oV1RGTW92ZSh0aWxlSW1hZ2UpLCByZXBlYXRYLCByZXBlYXRZKSk7CiB9CiAKLVBhdHRl
cm46OlBhdHRlcm4oUmVmPEltYWdlPiYmIGltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0
WSkKK1JlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVhdGUoYm9vbCByZXBlYXRYLCBib29sIHJlcGVh
dFksIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF0dGVybihyZXBlYXRYLCByZXBlYXRZLCBwYXR0
ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikpOworfQorCitQYXR0ZXJuOjpQYXR0ZXJuKFJlZjxOYXRp
dmVJbWFnZT4mJiBpbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCiAgICAgOiBtX3Rp
bGVJbWFnZShXVEZNb3ZlKGltYWdlKSkKICAgICAsIG1fcmVwZWF0WChyZXBlYXRYKQogICAgICwg
bV9yZXBlYXRZKHJlcGVhdFkpCiB7CiB9CiAKK1BhdHRlcm46OlBhdHRlcm4oYm9vbCByZXBlYXRY
LCBib29sIHJlcGVhdFksIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblNwYWNlVHJhbnNm
b3JtYXRpb24pCisgICAgOiBtX3JlcGVhdFgocmVwZWF0WCkKKyAgICAsIG1fcmVwZWF0WShyZXBl
YXRZKQorICAgICwgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbihwYXR0ZXJuU3BhY2VUcmFu
c2Zvcm1hdGlvbikKK3sKK30KKwogUGF0dGVybjo6flBhdHRlcm4oKSA9IGRlZmF1bHQ7CiAKK3Zv
aWQgUGF0dGVybjo6c2V0VGlsZUltYWdlKFJlZjxOYXRpdmVJbWFnZT4mJiB0aWxlSW1hZ2UpCit7
CisgICAgQVNTRVJUKCFtX3RpbGVJbWFnZSk7CisgICAgbV90aWxlSW1hZ2UgPSBXVEZNb3ZlKHRp
bGVJbWFnZSk7Cit9CisKK05hdGl2ZUltYWdlJiBQYXR0ZXJuOjp0aWxlSW1hZ2UoKSBjb25zdAor
eworICAgIEFTU0VSVChtX3RpbGVJbWFnZSk7CisgICAgcmV0dXJuICptX3RpbGVJbWFnZTsKK30K
Kwogdm9pZCBQYXR0ZXJuOjpzZXRQYXR0ZXJuU3BhY2VUcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikKIHsKICAgICBtX3BhdHRlcm5TcGFj
ZVRyYW5zZm9ybWF0aW9uID0gcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKaW5kZXggMmE1NjNkYTI2MTdkMWIwNDI0
OGI5MGFiMDYzOWRiMmNhZjlhODhjMC4uZjhlMzJlMWFlMjM5MGZjNDgxNTFiYjc4N2E1MmUyY2M0
MDQ4Mjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0
dGVybi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaApA
QCAtNTMsMTQgKzUzLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFmZmluZVRyYW5z
Zm9ybTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEltYWdlOwotY2xhc3MgSW1hZ2VI
YW5kbGU7CiAKIGNsYXNzIFBhdHRlcm4gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxQYXR0ZXJu
PiB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxQYXR0ZXJuPiBjcmVh
dGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpOwor
ICAgIHN0YXRpYyBSZWY8UGF0dGVybj4gY3JlYXRlKFJlZjxJbWFnZT4mJiB0aWxlSW1hZ2UsIGJv
b2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBzdGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0
ZShSZWY8TmF0aXZlSW1hZ2U+JiYgdGlsZUltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0
WSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhdHRlcm4oKTsKIAotICAgIEltYWdlJiB0aWxlSW1h
Z2UoKSBjb25zdCB7IHJldHVybiBtX3RpbGVJbWFnZS5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0VGlsZUltYWdlKFJlZjxOYXRpdmVJbWFnZT4mJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgTmF0aXZlSW1hZ2UmIHRpbGVJbWFnZSgpIGNvbnN0OwogCiAgICAgLy8gUGF0dGVybiBz
cGFjZSBpcyBhbiBhYnN0cmFjdCBzcGFjZSB0aGF0IG1hcHMgdG8gdGhlIGRlZmF1bHQgdXNlciBz
cGFjZSBieSB0aGUgdHJhbnNmb3JtYXRpb24gJ3VzZXJTcGFjZVRyYW5zZm9ybWF0aW9uJwogI2lm
ICFVU0UoRElSRUNUMkQpCkBAIC03NywyMCArNzgsMjAgQEAgcHVibGljOgogICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8UGF0dGVybj4+IGRlY29kZShEZWNv
ZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgUGF0dGVybihSZWY8SW1hZ2U+JiYsIGJvb2wgcmVwZWF0
WCwgYm9vbCByZXBlYXRZKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFBhdHRlcm4+
IGNyZWF0ZShib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbiA9IHsgfSk7CiAKLSAgICBSZWY8SW1hZ2U+IG1f
dGlsZUltYWdlOwotICAgIEFmZmluZVRyYW5zZm9ybSBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0
aW9uOworICAgIFBhdHRlcm4oUmVmPE5hdGl2ZUltYWdlPiYmLCBib29sIHJlcGVhdFgsIGJvb2wg
cmVwZWF0WSk7CisgICAgUGF0dGVybihib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJik7CisKKyAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG1fdGlsZUltYWdl
OwogICAgIGJvb2wgbV9yZXBlYXRYOwogICAgIGJvb2wgbV9yZXBlYXRZOworICAgIEFmZmluZVRy
YW5zZm9ybSBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOwogfTsKIAogdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KIHZvaWQgUGF0dGVybjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiB7Ci0gICAgSW1hZ2VIYW5kbGUgaW1hZ2VIYW5kbGU7Ci0gICAgaW1hZ2VIYW5kbGUuaW1hZ2Ug
PSBtX3RpbGVJbWFnZS5wdHIoKTsKLSAgICBlbmNvZGVyIDw8IGltYWdlSGFuZGxlOwogICAgIGVu
Y29kZXIgPDwgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKICAgICBlbmNvZGVyIDw8IG1f
cmVwZWF0WDsKICAgICBlbmNvZGVyIDw8IG1fcmVwZWF0WTsKQEAgLTk5LDExICsxMDAsNiBAQCB2
b2lkIFBhdHRlcm46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KIE9wdGlvbmFsPFJlZjxQYXR0ZXJuPj4gUGF0dGVybjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8SW1hZ2VIYW5kbGU+IGltYWdlSGFuZGxlOwot
ICAgIGRlY29kZXIgPj4gaW1hZ2VIYW5kbGU7Ci0gICAgaWYgKCFpbWFnZUhhbmRsZSkKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQogICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4g
cGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CiAgICAgZGVjb2RlciA+PiBwYXR0ZXJuU3BhY2VU
cmFuc2Zvcm1hdGlvbjsKICAgICBpZiAoIXBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKQpAQCAt
MTE5LDkgKzExNSw3IEBAIE9wdGlvbmFsPFJlZjxQYXR0ZXJuPj4gUGF0dGVybjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFyZXBlYXRZKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogCi0gICAgYXV0byBwYXR0ZXJuID0gUGF0dGVybjo6Y3JlYXRlKGltYWdlSGFuZGxl
LT5pbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCAqcmVwZWF0WCwgKnJlcGVhdFkpOwotICAgIHBhdHRl
cm4tPnNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSgqcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24p
OwotICAgIHJldHVybiBwYXR0ZXJuOworICAgIHJldHVybiBQYXR0ZXJuOjpjcmVhdGUoKnJlcGVh
dFgsICpyZXBlYXRZLCAqcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOwogfQogCiB9IC8vbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9DYWlyb09wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAppbmRleCA3MzIwZGExY2JmZTkyODVmZDEyNmYwMDI0
MTQzOGM0ZGJhMzllY2M5Li43ZmFlNzc3YzM5NjZiNGM0ODZkZTIyMzJiMTkxMTMyMzFmZDkyZGYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWly
b09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKQEAgLTU2Nyw3ICs1NjcsNyBAQCBGaWxsU291cmNlOjpG
aWxsU291cmNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSkKICAgICAgICAgcGF0
dGVybi5vYmplY3QgPSBhZG9wdFJlZihzdGF0ZS5maWxsUGF0dGVybi0+Y3JlYXRlUGxhdGZvcm1Q
YXR0ZXJuKEFmZmluZVRyYW5zZm9ybSgpKSk7CiAKICAgICAgICAgYXV0byYgcGF0dGVybkltYWdl
ID0gc3RhdGUuZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgpOwotICAgICAgICBwYXR0ZXJuLnNpemUg
PSBGbG9hdFNpemUocGF0dGVybkltYWdlLndpZHRoKCksIHBhdHRlcm5JbWFnZS5oZWlnaHQoKSk7
CisgICAgICAgIHBhdHRlcm4uc2l6ZSA9IHBhdHRlcm5JbWFnZS5zaXplKCk7CiAgICAgICAgIHBh
dHRlcm4udHJhbnNmb3JtID0gc3RhdGUuZmlsbFBhdHRlcm4tPnBhdHRlcm5TcGFjZVRyYW5zZm9y
bSgpOwogICAgICAgICBwYXR0ZXJuLnJlcGVhdFggPSBzdGF0ZS5maWxsUGF0dGVybi0+cmVwZWF0
WCgpOwogICAgICAgICBwYXR0ZXJuLnJlcGVhdFkgPSBzdGF0ZS5maWxsUGF0dGVybi0+cmVwZWF0
WSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGF0dGVybkNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L1BhdHRlcm5DYWlyby5jcHAKaW5kZXggNTYwZjc0N2E4ZmI2NDgxYmU0YTMwMTg1ODUwMGFhOWZh
MTYwZjc4Ni4uMTIzNDI0NzRhNjUxOGIzZmUwZDk1NTdmYzNmY2MwMjI3NGI4Y2EyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJu
Q2Fpcm8uY3BwCkBAIC0zNSwxMSArMzUsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjYWly
b19wYXR0ZXJuX3QqIFBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybihjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mKSBjb25zdAogewotICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSB0aWxlSW1hZ2UoKS5u
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAgIGlmICghbmF0aXZlSW1hZ2UpCisgICAg
UGxhdGZvcm1JbWFnZVB0ciBwbGF0Zm9ybUltYWdlID0gdGlsZUltYWdlKCkucGxhdGZvcm1JbWFn
ZSgpOworICAgIGlmICghcGxhdGZvcm1JbWFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4gPSBjYWlyb19wYXR0ZXJuX2NyZWF0ZV9mb3Jf
c3VyZmFjZShuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpKTsKKyAgICBjYWlyb19w
YXR0ZXJuX3QqIHBhdHRlcm4gPSBjYWlyb19wYXR0ZXJuX2NyZWF0ZV9mb3Jfc3VyZmFjZShwbGF0
Zm9ybUltYWdlLmdldCgpKTsKIAogICAgIC8vIGNhaXJvIG1lcmdlcyBwYXR0ZXIgc3BhY2UgYW5k
IHVzZXIgc3BhY2UgaXRzZWxmCiAgICAgY2Fpcm9fbWF0cml4X3QgbWF0cml4ID0gdG9DYWlyb01h
dHJpeChtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCmluZGV4IDY5NTRjNTY2NTcwYWQ3
YWU2YzFlNzYwZjA3ODdkMzc3MGFjYWE2OTQuLmVlMTc1NjQwOWFjYjhlN2RiZDQ5NzcyZjQ0MjBl
YzkwY2MwMGI0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL1BhdHRlcm5DRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUGF0dGVybkNHLmNwcApAQCAtNTcsMTYgKzU3LDEzIEBAIHN0YXRpYyB2b2lkIHBhdHRlcm5S
ZWxlYXNlQ2FsbGJhY2sodm9pZCogaW5mbykKIAogQ0dQYXR0ZXJuUmVmIFBhdHRlcm46OmNyZWF0
ZVBsYXRmb3JtUGF0dGVybihjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHVzZXJTcGFjZVRyYW5zZm9y
bWF0aW9uKSBjb25zdAogewotICAgIEZsb2F0UmVjdCB0aWxlUmVjdCA9IHRpbGVJbWFnZSgpLnJl
Y3QoKTsKKyAgICBGbG9hdFJlY3QgdGlsZVJlY3QgPSB7IHsgfSwgdGlsZUltYWdlKCkuc2l6ZSgp
IH07CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9ybSA9IHVzZXJTcGFjZVRy
YW5zZm9ybWF0aW9uICogbV9wYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKICAgICBwYXR0ZXJu
VHJhbnNmb3JtLnNjYWxlTm9uVW5pZm9ybSgxLCAtMSk7CiAgICAgcGF0dGVyblRyYW5zZm9ybS50
cmFuc2xhdGUoMCwgLXRpbGVSZWN0LmhlaWdodCgpKTsKIAotICAgIFBsYXRmb3JtSW1hZ2VQdHIg
cGxhdGZvcm1JbWFnZTsKLSAgICBpZiAoYXV0byBuYXRpdmVJbWFnZSA9IHRpbGVJbWFnZSgpLm5h
dGl2ZUltYWdlKCkpCi0gICAgICAgIHBsYXRmb3JtSW1hZ2UgPSBuYXRpdmVJbWFnZS0+cGxhdGZv
cm1JbWFnZSgpOwotICAgIAorICAgIFBsYXRmb3JtSW1hZ2VQdHIgcGxhdGZvcm1JbWFnZSA9IHRp
bGVJbWFnZSgpLnBsYXRmb3JtSW1hZ2UoKTsKICAgICBpZiAoIXBsYXRmb3JtSW1hZ2UpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBkMTUz
ZGZhNDVjMjFhZDg3M2U0ZDQ4NDY3MWYzZDA0YWNiNzQ4NTRiLi41MmUxMThkYzljMDM0ODE1NDYy
MzJiMWVlNTVjY2VmYjM4Zjg2Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTkx
LDEwICs5MSwxMCBAQCBib29sIERpc3BsYXlMaXN0OjpzaG91bGREdW1wRm9yRmxhZ3MoQXNUZXh0
RmxhZ3MgZmxhZ3MsIEl0ZW1IYW5kbGUgaXRlbSkKICAgICAgICAgaWYgKCEoZmxhZ3MgJiBBc1Rl
eHRGbGFnOjpJbmNsdWRlc1BsYXRmb3JtT3BlcmF0aW9ucykpIHsKICAgICAgICAgICAgIGNvbnN0
IGF1dG8mIHN0YXRlSXRlbSA9IGl0ZW0uZ2V0PFNldFN0YXRlPigpOwogICAgICAgICAgICAgLy8g
RklYTUU6IGZvciBub3csIG9ubHkgZHJvcCB0aGUgaXRlbSBpZiB0aGUgb25seSBzdGF0ZS1jaGFu
Z2UgZmxhZ3MgYXJlIHBsYXRmb3JtLXNwZWNpZmljLgotICAgICAgICAgICAgaWYgKHN0YXRlSXRl
bS5zdGF0ZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1
YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkKKyAgICAgICAgICAgIGlmIChzdGF0ZUl0ZW0uc3Rh
dGVDaGFuZ2UoKS5tX2NoYW5nZUZsYWdzID09IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRT
dWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQor
ICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fY2hhbmdlRmxhZ3MgPT0g
R3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7
CkBAIC0yMDMsMTYgKzIwMywxMiBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRs
ZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBwZW5kPENvbmNhdGVuYXRlQ1RNPihpdGVtLmdldDxD
b25jYXRlbmF0ZUNUTT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICBy
ZXR1cm4gYXBwZW5kPFNldENUTT4oaXRlbS5nZXQ8U2V0Q1RNPigpKTsKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5s
aW5lRmlsbEdyYWRpZW50PihpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCkpOwotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIGFwcGVu
ZDxTZXRJbmxpbmVGaWxsQ29sb3I+KGl0ZW0uZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKSk7Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBh
cHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KGl0ZW0uZ2V0PFNldElubGluZVN0cm9rZUNvbG9y
PigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6Ci0gICAgICAgIHJl
dHVybiBhcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPihpdGVtLmdldDxTZXRTdHJva2VUaGlja25l
c3M+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOgorICAgICAgICByZXR1
cm4gYXBwZW5kPFNldElubGluZVN0YXRlPihpdGVtLmdldDxTZXRJbmxpbmVTdGF0ZT4oKSk7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3Rh
dGU+KGl0ZW0uZ2V0PFNldFN0YXRlPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VU
aGlja25lc3M6CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPihpdGVt
LmdldDxTZXRTdHJva2VUaGlja25lc3M+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVD
YXA6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0TGluZUNhcD4oaXRlbS5nZXQ8U2V0TGluZUNh
cD4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZURhc2g6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
QnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IDUwYzhkOGY3NTc3YTE2NzA1ZWNmODU1
YWQxNjk4MThiNmRmOThiYmEuLjliNmFlYmVjZWM4NTI2N2RiNmZhN2Y4NjNlZDUwYmQ1MDFhY2Qx
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC03
MiwyNiArNzIsMTggQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQpCiAgICAgICAgIGdldDxTZXRDVE0+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7
Ci0gICAgICAgIGdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCkuYXBwbHkoY29udGV4dCk7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6IHsKKyAgICAgICAgZ2V0PFNldElubGlu
ZVN0YXRlPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogewotICAgICAgICBnZXQ8U2V0SW5saW5l
RmlsbENvbG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOiB7Ci0gICAgICAgIGdldDxTZXRJ
bmxpbmVTdHJva2VDb2xvcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRTdGF0ZTogeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHsKICAgICAg
ICAgZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogewotICAgICAgICBnZXQ8
U2V0U3RhdGU+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDogewogICAgICAgICBnZXQ8U2V0TGluZUNhcD4oKS5h
cHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTIxLDcgKzExMyw3IEBAIHZvaWQg
SXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOiB7Ci0gICAg
ICAgIGdldDxDbGlwVG9JbWFnZUJ1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVt
VHlwZTo6Q2xpcE91dFRvUGF0aDogewpAQCAtMTQwLDE1ICsxMzIsMTUgQEAgdm9pZCBJdGVtSGFu
ZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdl
QnVmZmVyOiB7Ci0gICAgICAgIGdldDxEcmF3SW1hZ2VCdWZmZXI+KCkuYXBwbHkoY29udGV4dCk7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZTogewotICAgICAgICBnZXQ8RHJhd05h
dGl2ZUltYWdlPigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVy
bjogewotICAgICAgICBnZXQ8RHJhd1BhdHRlcm4+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2Ug
SXRlbVR5cGU6OkRyYXdSZWN0OiB7CkBAIC00ODYsMTYgKzQ3OCw4IEBAIHZvaWQgSXRlbUhhbmRs
ZTo6ZGVzdHJveSgpCiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVz
dHJ1Y3RpYmxlPFNldENUTT46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6IHsKLSAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0SW5saW5lRmlsbENvbG9yPjo6dmFs
dWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxHcmFkaWVudDogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5
X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+Ojp2YWx1ZSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHsK
LSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0
SW5saW5lU3Ryb2tlQ29sb3I+Ojp2YWx1ZSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5l
U3RhdGU6IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8U2V0SW5saW5lU3RhdGU+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDogewpAQCAtNjYyLDEyICs2NDYsOCBAQCBib29s
IEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAg
ICAgIHJldHVybiBjb3B5SW50bzxTY2FsZT4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldENUTT4oKnRoaXMs
IGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAg
ICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZpbGxDb2xvcj4oKnRoaXMsIGl0ZW1PZmZz
ZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZpbGxHcmFkaWVudD4oKnRoaXMsIGl0ZW1PZmZzZXQp
OwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAgICAgICByZXR1
cm4gY29weUludG88U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRv
PFNldElubGluZVN0YXRlPigqdGhpcywgaXRlbU9mZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0TGluZUNhcDoKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldExpbmVDYXA+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCBjMGM3M2I4M2JkNTJlYWEwNGE5NTE3
ODE4MDQ0NTM5NDdiYmM5NWU5Li45ZGY2OTdiMjEwMGZlMjIxZTFmZTRjMTI2M2RjYTQwMWIyODU3
MTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC00OCwx
NiArNDgsMTIgQEAgc3RhdGljIHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBl
KQogICAgICAgICByZXR1cm4gc2l6ZW9mKENvbmNhdGVuYXRlQ1RNKTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRDVE06CiAgICAgICAgIHJldHVybiBzaXplb2YoU2V0Q1RNKTsKLSAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0
SW5saW5lRmlsbEdyYWRpZW50KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29s
b3I6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5saW5lRmlsbENvbG9yKTsKLSAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKLSAgICAgICAgcmV0dXJuIHNpemVvZihT
ZXRJbmxpbmVTdHJva2VDb2xvcik7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tu
ZXNzOgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0cm9rZVRoaWNrbmVzcyk7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5s
aW5lU3RhdGUpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgogICAgICAgICByZXR1cm4g
c2l6ZW9mKFNldFN0YXRlKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6
CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3Ryb2tlVGhpY2tuZXNzKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNldExpbmVDYXApOwog
ICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgpAQCAtMTg5LDkgKzE4NSw3IEBAIGJvb2wg
aXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tl
Q29sb3I6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKICAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKQEAgLTMwMiw5ICsyOTYsNyBAQCBib29sIGlzSW5s
aW5lSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2Ug
SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6
CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmgKaW5kZXggMGU5NDdhMDZkYWI1YTJkZmI0NzY5MDgyZjhjYWM1NDhhZjg5MzQzYi4uNjE1ZTNh
YjM0YjgxZDliOTdhMDliNTZmMDA0NDcxZmZkY2JlMDgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtVHlwZS5oCkBAIC0zNiwxMSArMzYsOSBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBl
IDogdWludDhfdCB7CiAgICAgU2NhbGUsCiAgICAgQ29uY2F0ZW5hdGVDVE0sCiAgICAgU2V0Q1RN
LAotICAgIFNldElubGluZUZpbGxHcmFkaWVudCwKLSAgICBTZXRJbmxpbmVGaWxsQ29sb3IsCi0g
ICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IsCi0gICAgU2V0U3Ryb2tlVGhpY2tuZXNzLAorICAgIFNl
dElubGluZVN0YXRlLAogICAgIFNldFN0YXRlLAorICAgIFNldFN0cm9rZVRoaWNrbmVzcywKICAg
ICBTZXRMaW5lQ2FwLAogICAgIFNldExpbmVEYXNoLAogICAgIFNldExpbmVKb2luLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDIxM2RiOWM4Y2Y0MmVjMWFlMmQxMzM5
Mzc1ZDlmNTYzMGU3NmQ3NDMuLjc5M2I5MzU2NzI5OTU4YTE4YTFjMmM5ZjNlYWNkYjZiNGYzMmE0
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTExNSw4OCArMTE1
LDI0IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBDb25jYXRlbmF0ZUNUTSYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLVNldElubGluZUZp
bGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiBncmFkaWVu
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgIDog
bV9kYXRhKGdyYWRpZW50LmRhdGEoKSkKLSAgICAsIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybShn
cmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgICwgbV9zcHJlYWRNZXRob2QoZ3JhZGllbnQuc3By
ZWFkTWV0aG9kKCkpCi0gICAgLCBtX2NvbG9yU3RvcENvdW50KHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KGdyYWRpZW50LnN0b3BzKCkuc2l6ZSgpKSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9y
U3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7
IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAgICAgICAgbV9vZmZzZXRzW2ldID0gZ3Jh
ZGllbnQuc3RvcHMoKVtpXS5vZmZzZXQ7Ci0gICAgICAgIG1fY29sb3JzW2ldID0gZ3JhZGllbnQu
c3RvcHMoKVtpXS5jb2xvci5hc0lubGluZSgpOwotICAgIH0KLX0KLQotU2V0SW5saW5lRmlsbEdy
YWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoZmxvYXQgb2Zmc2V0c1ttYXhDb2xvclN0b3BD
b3VudF0sIFNSR0JBPHVpbnQ4X3Q+IGNvbG9yc1ttYXhDb2xvclN0b3BDb3VudF0sIGNvbnN0IEdy
YWRpZW50OjpEYXRhJiBkYXRhLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50U3BhY2VU
cmFuc2Zvcm0sIEdyYWRpZW50U3ByZWFkTWV0aG9kIHNwcmVhZE1ldGhvZCwgdWludDhfdCBjb2xv
clN0b3BDb3VudCkKLSAgICA6IG1fZGF0YShkYXRhKQotICAgICwgbV9ncmFkaWVudFNwYWNlVHJh
bnNmb3JtKGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCi0gICAgLCBtX3NwcmVhZE1ldGhvZChzcHJl
YWRNZXRob2QpCi0gICAgLCBtX2NvbG9yU3RvcENvdW50KGNvbG9yU3RvcENvdW50KQotewotICAg
IFJFTEVBU0VfQVNTRVJUKG1fY29sb3JTdG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpOwot
ICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkgewotICAg
ICAgICBtX29mZnNldHNbaV0gPSBvZmZzZXRzW2ldOwotICAgICAgICBtX2NvbG9yc1tpXSA9IGNv
bG9yc1tpXTsKLSAgICB9Ci19Ci0KLVJlZjxHcmFkaWVudD4gU2V0SW5saW5lRmlsbEdyYWRpZW50
OjpncmFkaWVudCgpIGNvbnN0CitTZXRJbmxpbmVTdGF0ZTo6U2V0SW5saW5lU3RhdGUoY29uc3Qg
R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykKKyAgICA6IG1fc3RhdGUoc3RhdGUpCisgICAg
LCBtX2NoYW5nZUZsYWdzKGNoYW5nZUZsYWdzKQogewotICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFk
aWVudDo6Y3JlYXRlKEdyYWRpZW50OjpEYXRhKG1fZGF0YSkpOwotICAgIGZvciAodWludDhfdCBp
ID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkKLSAgICAgICAgZ3JhZGllbnQtPmFkZENv
bG9yU3RvcCh7IG1fb2Zmc2V0c1tpXSwgQ29sb3IobV9jb2xvcnNbaV0pIH0pOwotICAgIGdyYWRp
ZW50LT5zZXRTcHJlYWRNZXRob2QobV9zcHJlYWRNZXRob2QpOwotICAgIHJldHVybiBncmFkaWVu
dDsKIH0KIAotdm9pZCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkgY29uc3QKK3ZvaWQgU2V0SW5saW5lU3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAgICBpZiAobV9jb2xvclN0b3BDb3VudCA8PSBtYXhD
b2xvclN0b3BDb3VudCkKLSAgICAgICAgY29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQo
KSwgbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKLX0KLQotYm9vbCBTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQ6OmlzSW5saW5lKGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKLXsKLSAgICBpZiAoZ3Jh
ZGllbnQuc3RvcHMoKS5zaXplKCkgPiBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Om1heENvbG9yU3Rv
cENvdW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBmb3IgKGF1dG8mIGNvbG9yU3Rv
cCA6IGdyYWRpZW50LnN0b3BzKCkpIHsKLSAgICAgICAgaWYgKCFjb2xvclN0b3AuY29sb3IuaXNJ
bmxpbmUoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0ZUNoYW5nZSA9IHsgbV9z
dGF0ZSwgbV9jaGFuZ2VGbGFncyB9OworICAgIHN0YXRlQ2hhbmdlLmFwcGx5KGNvbnRleHQpOwog
fQogCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3Qg
U2V0SW5saW5lRmlsbEdyYWRpZW50JikKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVTdGF0ZSYpCiB7CiAgICAgLy8gRklYTUU6IER1
bXAgZ3JhZGllbnQgZGF0YS4KICAgICByZXR1cm4gdHM7CiB9CiAKLXZvaWQgU2V0SW5saW5lRmls
bENvbG9yOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgY29u
dGV4dC5zZXRGaWxsQ29sb3IoY29sb3IoKSk7Ci19Ci0KLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVGaWxsQ29sb3ImIHN0YXRlKQot
ewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAgICByZXR1
cm4gdHM7Ci19Ci0KLXZvaWQgU2V0SW5saW5lU3Ryb2tlQ29sb3I6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9y
KCkpOwotfQotCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgU2V0SW5saW5lU3Ryb2tlQ29sb3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQcm9wZXJ0
eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KIHZvaWQgU2V0
U3Ryb2tlVGhpY2tuZXNzOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7
CiAgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MobV90aGlja25lc3MpOwpAQCAtMjA5LDIz
ICsxNDUsMjkgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IFNldFN0cm9rZVRoaWNrbmVzcyYgc3RhdGUpCiB9CiAKIFNldFN0YXRlOjpTZXRTdGF0
ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQotICAgIDogbV9zdGF0ZShzdGF0ZSwgZmxhZ3MpCisg
ICAgOiBtX3N0YXRlQ2hhbmdlKHN0YXRlLCBmbGFncykKIHsKIH0KIAotU2V0U3RhdGU6OlNldFN0
YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBzdGF0ZUNoYW5nZSkKLSAgICA6
IG1fc3RhdGUoc3RhdGVDaGFuZ2UpCitTZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3ND
b250ZXh0U3RhdGVDaGFuZ2UmIHN0YXRlQ2hhbmdlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKQorICAgIDogbV9zdGF0ZUNoYW5nZShzdGF0
ZUNoYW5nZSkKKyAgICAsIG1fc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcihzdHJva2VQYXR0
ZXJuSW1hZ2VJZGVudGlmaWVyKQorICAgICwgbV9maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcihm
aWxsUGF0dGVybkltYWdlSWRlbnRpZmllcikKIHsKIH0KIAotdm9pZCBTZXRTdGF0ZTo6YXBwbHko
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAordm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBOYXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBO
YXRpdmVJbWFnZSogZmlsbFBhdHRlcm5JbWFnZSkgY29uc3QKIHsKLSAgICBtX3N0YXRlLmFwcGx5
KGNvbnRleHQpOworICAgIGlmIChtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiAm
JiBzdHJva2VQYXR0ZXJuSW1hZ2UpCisgICAgICAgIG1fc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJv
a2VQYXR0ZXJuLT5zZXRUaWxlSW1hZ2UobWFrZVJlZigqc3Ryb2tlUGF0dGVybkltYWdlKSk7Cisg
ICAgaWYgKG1fc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUGF0dGVybiAmJiBmaWxsUGF0dGVybklt
YWdlKQorICAgICAgICBtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4tPnNldFRpbGVJ
bWFnZShtYWtlUmVmKCpmaWxsUGF0dGVybkltYWdlKSk7CisgICAgbV9zdGF0ZUNoYW5nZS5hcHBs
eShjb250ZXh0KTsKIH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFNldFN0YXRlJiBzdGF0ZSkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRTdGF0ZSYgc2V0U3RhdGUpCiB7Ci0gICAgdHMg
PDwgc3RhdGUuc3RhdGUoKTsKKyAgICB0cyA8PCBzZXRTdGF0ZS5zdGF0ZUNoYW5nZSgpOwogICAg
IHJldHVybiB0czsKIH0KIApAQCAtMzAxLDExICsyNDMsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ2xpcE91dCYgaXRlbSkKICAgICByZXR1
cm4gdHM7CiB9CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgQ2xpcFRvSW1hZ2VCdWZm
ZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci19Ci0KIHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewog
ICAgIGNvbnRleHQuY2xpcFRvSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIG1fZGVzdGluYXRpb25S
ZWN0KTsKQEAgLTQyMCwxMSArMzU3LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdHbHlwaHMmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwog
fQogCi1OT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHko
R3JhcGhpY3NDb250ZXh0JikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0K
LQogdm9pZCBEcmF3SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
V2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQu
ZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBtX2Rlc3RpbmF0aW9uUmVjdCwgbV9zcmNSZWN0
LCBtX29wdGlvbnMpOwpAQCAtNDM4LDExICszNzAsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0ltYWdlQnVmZmVyJiBpdGVtKQogICAg
IHJldHVybiB0czsKIH0KIAotTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBEcmF3TmF0aXZl
SW1hZ2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci19Ci0KIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIE5hdGl2ZUltYWdlJiBpbWFnZSkgY29uc3QKIHsKICAgICBjb250ZXh0LmRy
YXdOYXRpdmVJbWFnZShpbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb25SZWN0LCBtX3Ny
Y1JlY3QsIG1fb3B0aW9ucyk7CkBAIC00NjksMTEgKzM5Niw2IEBAIERyYXdQYXR0ZXJuOjpEcmF3
UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25z
dCBGbG9hCiB7CiB9CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJhd1BhdHRlcm46
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci19Ci0KIHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgTmF0aXZlSW1hZ2UmIGltYWdlKSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd1BhdHRlcm4o
aW1hZ2UsIG1faW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3BhdHRlcm5U
cmFuc2Zvcm0sIG1fcGhhc2UsIG1fc3BhY2luZywgbV9vcHRpb25zKTsKQEAgLTEwMjMsMTEgKzk0
NSw5IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVt
VHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOiB0cyA8PCAic2NhbGUiOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06IHRzIDw8ICJzZXQtY3RtIjsgYnJlYWs7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06IHRzIDw8ICJjb25jYXRlbnRhdGUtY3Rt
IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB0cyA8
PCAic2V0LWlubGluZS1maWxsLWdyYWRpZW50IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lRmlsbENvbG9yOiB0cyA8PCAic2V0LWlubGluZS1maWxsLWNvbG9yIjsgYnJlYWs7
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHRzIDw8ICJzZXQtaW5s
aW5lLXN0cm9rZS1jb2xvciI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRo
aWNrbmVzczogdHMgPDwgInNldC1zdHJva2UtdGhpY2tuZXNzIjsgYnJlYWs7CisgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6IHRzIDw8ICJzZXQtaW5saW5lLXN0YXRlIjsgYnJlYWs7
CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6IHRzIDw8ICJzZXQtc3RhdGUiOyBicmVhazsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHRzIDw8ICJzZXQtc3Ryb2tl
LXRoaWNrbmVzcyI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHRzIDw8
ICJzZXQtbGluZS1jYXAiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDog
dHMgPDwgInNldC1saW5lLWRhc2giOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5l
Sm9pbjogdHMgPDwgInNldC1saW5lLWpvaW4iOyBicmVhazsKQEAgLTExMDYsMjEgKzEwMjYsMTUg
QEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVt
KQogICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgICAgICB0cyA8PCBpdGVt
LmdldDxDb25jYXRlbmF0ZUNUTT4oKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxp
bmVGaWxsR3JhZGllbnQ+KCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6Cisg
ICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZVN0YXRlPigpOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0
ZW0uZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNl
dElubGluZVN0cm9rZUNvbG9yPigpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgorICAg
ICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdGF0ZT4oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxT
ZXRTdHJva2VUaGlja25lc3M+KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6
OlNldFN0YXRlOgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdGF0ZT4oKTsKLSAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgdHMgPDwgaXRl
bS5nZXQ8U2V0TGluZUNhcD4oKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaAppbmRleCAxZTAzZGU3NjQ5MzVlZTM1YTJkMGQwYzI5MmEyMzQ0NzcyNDdmNDE4
Li4wODgzYTAyNmViM2RmNzgyYThiZDA3YmE0ZjE3ZThhYTYyMzY3NjZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTE2Nyw2NSArMTY3LDE5IEBAIHByaXZhdGU6CiAgICAg
QWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwogfTsKIAotY2xhc3MgU2V0SW5saW5lRmlsbEdy
YWRpZW50IHsKK2NsYXNzIFNldElubGluZVN0YXRlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVu
dDsKKyAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNl
dElubGluZVN0YXRlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0
cnVlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IG1heENvbG9yU3RvcENvdW50ID0gNDsKIAotICAg
IFNldElubGluZUZpbGxHcmFkaWVudChjb25zdCBHcmFkaWVudCYsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0SW5s
aW5lRmlsbEdyYWRpZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1
aW50OF90PiBjb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGllbnRT
cHJlYWRNZXRob2QsIHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpOwotCi0gICAgc3RhdGljIGJvb2wg
aXNJbmxpbmUoY29uc3QgR3JhZGllbnQmKTsKLSAgICBSZWY8R3JhZGllbnQ+IGdyYWRpZW50KCkg
Y29uc3Q7CisgICAgU2V0SW5saW5lU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3Rh
dGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKICAgICB2b2lk
IGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGZsb2F0IG1f
b2Zmc2V0c1ttYXhDb2xvclN0b3BDb3VudF07Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvcnNb
bWF4Q29sb3JTdG9wQ291bnRdOwotICAgIEdyYWRpZW50OjpEYXRhIG1fZGF0YTsKLSAgICBBZmZp
bmVUcmFuc2Zvcm0gbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtOwotICAgIEdyYWRpZW50U3ByZWFk
TWV0aG9kIG1fc3ByZWFkTWV0aG9kIHsgR3JhZGllbnRTcHJlYWRNZXRob2Q6OlBhZCB9OwotICAg
IHVpbnQ4X3QgbV9jb2xvclN0b3BDb3VudCB7IDAgfTsKLX07Ci0KLWNsYXNzIFNldElubGluZUZp
bGxDb2xvciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlw
ZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGlzSW5saW5lSXRlbSA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJh
d2luZ0l0ZW0gPSBmYWxzZTsKLQotICAgIFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90
PiBjb2xvckRhdGEpCi0gICAgICAgIDogbV9jb2xvckRhdGEoY29sb3JEYXRhKQotICAgIHsKLSAg
ICB9Ci0KLSAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xvckRhdGEgfTsg
fQotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0g
ICAgU1JHQkE8dWludDhfdD4gbV9jb2xvckRhdGE7Ci19OwotCi1jbGFzcyBTZXRJbmxpbmVTdHJv
a2VDb2xvciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlw
ZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjsKLSAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNE
cmF3aW5nSXRlbSA9IGZhbHNlOwotCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWlu
dDhfdD4gY29sb3JEYXRhKQotICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKLSAgICB7
Ci0gICAgfQotCi0gICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiB7IG1fY29sb3JEYXRh
IH07IH0KLQotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZh
dGU6Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvckRhdGE7CisgICAgR3JhcGhpY3NDb250ZXh0
SW5saW5lU3RhdGUgbV9zdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFu
Z2VGbGFncyBtX2NoYW5nZUZsYWdzOwogfTsKIAogY2xhc3MgU2V0U3Ryb2tlVGhpY2tuZXNzIHsK
QEAgLTI1NCwzMCArMjA4LDMzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
aXNEcmF3aW5nSXRlbSA9IGZhbHNlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29u
c3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFu
Z2VGbGFncyk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGVDaGFuZ2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZSYsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJv
a2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmls
bFBhdHRlcm5JbWFnZUlkZW50aWZpZXIpOwogICAgIAotICAgIGNvbnN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlQ2hhbmdlJiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KLQotICAgIHN0
YXRpYyB2b2lkIGJ1aWxkZXJTdGF0ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKKyAg
ICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlQ2hhbmdlOyB9CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3N0cm9rZVBh
dHRlcm5JbWFnZUlkZW50aWZpZXI7IH0KKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
ZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxQYXR0ZXJu
SW1hZ2VJZGVudGlmaWVyOyB9CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wU3RhdGVDaGFuZ2VzKFdU
Rjo6VGV4dFN0cmVhbSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MpOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBPcHRpb25hbDxTZXRTdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIAotICAgIHZv
aWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9pZCBhcHBseShHcmFwaGlj
c0NvbnRleHQmLCBOYXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSog
ZmlsbFBhdHRlcm5JbWFnZSkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVDaGFuZ2UgbV9zdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBtX3N0
YXRlQ2hhbmdlOworICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3N0cm9rZVBhdHRl
cm5JbWFnZUlkZW50aWZpZXI7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fZmls
bFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgog
dm9pZCBTZXRTdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgYXV0
byBjaGFuZ2VGbGFncyA9IG1fc3RhdGUubV9jaGFuZ2VGbGFnczsKKyAgICBhdXRvIGNoYW5nZUZs
YWdzID0gbV9zdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzOwogICAgIGVuY29kZXIgPDwgY2hhbmdl
RmxhZ3M7CiAKLSAgICBhdXRvJiBzdGF0ZSA9IG1fc3RhdGUubV9zdGF0ZTsKKyAgICBhdXRvJiBz
dGF0ZSA9IG1fc3RhdGVDaGFuZ2UubV9zdGF0ZTsKKyAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVu
Z3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPigmc3RhdGUpLCBzaXplb2Yo
R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUpLCAxKTsKIAogICAgIGlmIChjaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7CiAg
ICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5zdHJva2VHcmFkaWVudDsKQEAgLTI4Nyw4ICsyNDQs
MTAgQEAgdm9pZCBTZXRTdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAg
ICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBh
dHRlcm5DaGFuZ2UpKSB7CiAgICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5zdHJva2VQYXR0ZXJu
OwotICAgICAgICBpZiAoc3RhdGUuc3Ryb2tlUGF0dGVybikKKyAgICAgICAgaWYgKHN0YXRlLnN0
cm9rZVBhdHRlcm4pIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc3Ryb2tlUGF0dGVy
bi0+dGlsZUltYWdlKCkucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7CiAgICAgICAgICAg
ICBlbmNvZGVyIDw8ICpzdGF0ZS5zdHJva2VQYXR0ZXJuOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3Jh
ZGllbnRDaGFuZ2UpKSB7CkBAIC0yOTksNjAgKzI1OCwyMCBAQCB2b2lkIFNldFN0YXRlOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFBhdHRlcm5DaGFuZ2UpKSB7CiAgICAgICAgIGVu
Y29kZXIgPDwgISFzdGF0ZS5maWxsUGF0dGVybjsKLSAgICAgICAgaWYgKHN0YXRlLmZpbGxQYXR0
ZXJuKQorICAgICAgICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pIHsKKyAgICAgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGUuZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgpLnJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcigpOwogICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGUuZmlsbFBhdHRlcm47Cisg
ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5z
aGFkb3dPZmZzZXQ7Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93Qmx1cjsKLSAgICAg
ICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dDb2xvcjsKLSNpZiBVU0UoQ0cpCi0gICAgICAgIGVu
Y29kZXIgPDwgc3RhdGUuc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSNlbmRpZiAvLyBVU0UoQ0cp
Ci0gICAgfQotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0
cm9rZVRoaWNrbmVzczsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6VGV4dERyYXdpbmdNb2RlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBz
dGF0ZS50ZXh0RHJhd2luZ01vZGU7Ci0KICAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKICAgICAgICAgZW5jb2RlciA8
PCBzdGF0ZS5zdHJva2VDb2xvcjsKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkKICAgICAgICAgZW5jb2RlciA8PCBz
dGF0ZS5maWxsQ29sb3I7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlN0cm9rZVN0eWxlQ2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0
ZS5zdHJva2VTdHlsZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6RmlsbFJ1bGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZp
bGxSdWxlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpDb21wb3NpdGVPcGVyYXRpb25DaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRl
LmNvbXBvc2l0ZU9wZXJhdG9yOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0
YXRlLmJsZW5kTW9kZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZSkpCi0gICAgICAgIGVu
Y29kZXIgPDwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsKLQotICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKQotICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRlLmFscGhhOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXNDaGFuZ2UpKQotICAgICAg
ICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZEFudGlhbGlhczsKLQotICAgIGlmIChjaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU21vb3RoRm9udHNDaGFuZ2Up
KQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZFNtb290aEZvbnRzOwotCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhl
bFF1YW50aXplRm9udHNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZFN1
YnBpeGVsUXVhbnRpemVGb250czsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5zZm9ybXNDaGFuZ2UpKQotICAgICAg
ICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSkKKyAg
ICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dDb2xvcjsKIH0KIAogdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KQEAgLTM2Niw2ICsyODUsMTMgQEAgT3B0aW9uYWw8U2V0U3RhdGU+IFNldFN0YXRl
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5n
ZSBzdGF0ZUNoYW5nZTsKICAgICBzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzID0gKmNoYW5nZUZs
YWdzOwogCisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRlcm5JbWFn
ZUlkZW50aWZpZXI7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxQYXR0ZXJu
SW1hZ2VJZGVudGlmaWVyOworCisgICAgYXV0byYgc3RhdGUgPSBzdGF0ZUNoYW5nZS5tX3N0YXRl
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2Fz
dDx1aW50OF90Kj4oJnN0YXRlKSwgc2l6ZW9mKEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlKSwg
MSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICBpZiAoc3RhdGVDaGFuZ2Uu
bV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGll
bnRDaGFuZ2UpKSB7CiAgICAgICAgIE9wdGlvbmFsPGJvb2w+IGhhc1N0cm9rZUdyYWRpZW50Owog
ICAgICAgICBkZWNvZGVyID4+IGhhc1N0cm9rZUdyYWRpZW50OwpAQCAtMzg3LDEzICszMTMsMTcg
QEAgT3B0aW9uYWw8U2V0U3RhdGU+IFNldFN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
ICAgICAgICAgaWYgKCFoYXNTdHJva2VQYXR0ZXJuLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIGlmIChoYXNTdHJva2VQYXR0ZXJuLnZhbHVl
KCkpIHsKLSAgICAgICAgICAgIGF1dG8gc3Ryb2tlUGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShk
ZWNvZGVyKTsKLSAgICAgICAgICAgIGlmICghc3Ryb2tlUGF0dGVybikKLSAgICAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+IGltYWdlSWRlbnRpZmllcjsKKyAgICAgICAgZGVjb2RlciA+PiBpbWFnZUlk
ZW50aWZpZXI7CisgICAgICAgIGlmICghaW1hZ2VJZGVudGlmaWVyLmhhc1ZhbHVlKCkpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5t
X3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEZNb3ZlKCpzdHJva2VQYXR0ZXJuKTsKLSAgICAgICAg
fQorICAgICAgICBhdXRvIHN0cm9rZVBhdHRlcm4gPSBQYXR0ZXJuOjpkZWNvZGUoZGVjb2Rlcik7
CisgICAgICAgIGlmICghc3Ryb2tlUGF0dGVybikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciA9ICppbWFnZUlk
ZW50aWZpZXI7CisgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IFdU
Rk1vdmUoKnN0cm9rZVBhdHRlcm4pOwogICAgIH0KIAogICAgIGlmIChzdGF0ZUNoYW5nZS5tX2No
YW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFu
Z2UpKSB7CkBAIC00MTYsNjQgKzM0NiwxOCBAQCBPcHRpb25hbDxTZXRTdGF0ZT4gU2V0U3RhdGU6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBkZWNvZGVyID4+IGhhc0ZpbGxQYXR0
ZXJuOwogICAgICAgICBpZiAoIWhhc0ZpbGxQYXR0ZXJuLmhhc1ZhbHVlKCkpCiAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmIChoYXNGaWxsUGF0dGVybi52YWx1
ZSgpKSB7Ci0gICAgICAgICAgICBhdXRvIGZpbGxQYXR0ZXJuID0gUGF0dGVybjo6ZGVjb2RlKGRl
Y29kZXIpOwotICAgICAgICAgICAgaWYgKCFmaWxsUGF0dGVybikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmZp
bGxQYXR0ZXJuID0gV1RGTW92ZSgqZmlsbFBhdHRlcm4pOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBzaGFk
b3dPZmZzZXQ7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93T2Zmc2V0OwotICAgICAgICBpZiAo
IXNoYWRvd09mZnNldCkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dPZmZzZXQgPSAqc2hhZG93T2Zmc2V0OwotCi0g
ICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzaGFkb3dCbHVyOwotICAgICAgICBkZWNvZGVyID4+IHNo
YWRvd0JsdXI7Ci0gICAgICAgIGlmICghc2hhZG93Qmx1cikKLSAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dCbHVyID0g
KnNoYWRvd0JsdXI7Ci0KLSAgICAgICAgT3B0aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOwotICAg
ICAgICBkZWNvZGVyID4+IHNoYWRvd0NvbG9yOwotICAgICAgICBpZiAoIXNoYWRvd0NvbG9yKQor
ICAgICAgICAKKyAgICAgICAgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBp
bWFnZUlkZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaW1hZ2VJZGVudGlmaWVyOworICAg
ICAgICBpZiAoIWltYWdlSWRlbnRpZmllci5oYXNWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd0NvbG9y
ID0gKnNoYWRvd0NvbG9yOwotCi0jaWYgVVNFKENHKQotICAgICAgICBPcHRpb25hbDxib29sPiBz
aGFkb3dzVXNlTGVnYWN5UmFkaXVzOwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd3NVc2VMZWdh
Y3lSYWRpdXM7Ci0gICAgICAgIGlmICghc2hhZG93c1VzZUxlZ2FjeVJhZGl1cykKKyAgICAgICAg
YXV0byBmaWxsUGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgaWYg
KCFmaWxsUGF0dGVybikKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVzID0gKnNoYWRvd3NV
c2VMZWdhY3lSYWRpdXM7Ci0jZW5kaWYgLy8gVVNFKENHKQotICAgIH0KLQotICAgIGlmIChzdGF0
ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJv
a2VUaGlja25lc3NDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzdHJva2VUaGlj
a25lc3M7Ci0gICAgICAgIGRlY29kZXIgPj4gc3Ryb2tlVGhpY2tuZXNzOwotICAgICAgICBpZiAo
IXN0cm9rZVRoaWNrbmVzcykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAg
ICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VUaGlja25lc3MgPSAqc3Ryb2tlVGhpY2tu
ZXNzOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpUZXh0RHJhd2luZ01vZGVDaGFuZ2UpKSB7Ci0gICAgICAg
IE9wdGlvbmFsPFRleHREcmF3aW5nTW9kZUZsYWdzPiB0ZXh0RHJhd2luZ01vZGU7Ci0gICAgICAg
IGRlY29kZXIgPj4gdGV4dERyYXdpbmdNb2RlOwotICAgICAgICBpZiAoIXRleHREcmF3aW5nTW9k
ZSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFu
Z2UubV9zdGF0ZS50ZXh0RHJhd2luZ01vZGUgPSBXVEZNb3ZlKCp0ZXh0RHJhd2luZ01vZGUpOwor
ICAgICAgICBmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllciA9ICppbWFnZUlkZW50aWZpZXI7Cisg
ICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4gPSBXVEZNb3ZlKCpmaWxsUGF0
dGVybik7CiAgICAgfQogCiAgICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkgewpAQCAtNDk0LDk2
ICszNzgsMTYgQEAgT3B0aW9uYWw8U2V0U3RhdGU+IFNldFN0YXRlOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsQ29sb3IgPSAqZmlsbENv
bG9yOwogICAgIH0KIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VTdHlsZUNoYW5nZSkpIHsKLSAgICAgICAgU3Ry
b2tlU3R5bGUgc3Ryb2tlU3R5bGU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Ryb2tl
U3R5bGUpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0
ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZVN0eWxlID0gc3Ryb2tlU3R5bGU7Ci0gICAgfQotCi0gICAg
aWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OkZpbGxSdWxlQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxXaW5kUnVsZT4gZmlsbFJ1
bGU7Ci0gICAgICAgIGRlY29kZXIgPj4gZmlsbFJ1bGU7Ci0gICAgICAgIGlmICghZmlsbFJ1bGUp
Ci0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdl
Lm1fc3RhdGUuZmlsbFJ1bGUgPSAqZmlsbFJ1bGU7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0
ZU9wZXJhdGlvbkNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0b3I+
IGNvbXBvc2l0ZU9wZXJhdG9yOwotICAgICAgICBkZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9y
OwotICAgICAgICBpZiAoIWNvbXBvc2l0ZU9wZXJhdG9yKQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmNvbXBvc2l0ZU9wZXJh
dG9yID0gKmNvbXBvc2l0ZU9wZXJhdG9yOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5t
X2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFu
Z2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPEJsZW5kTW9kZT4gYmxlbmRNb2RlOwotICAgICAgICBk
ZWNvZGVyID4+IGJsZW5kTW9kZTsKLSAgICAgICAgaWYgKCFibGVuZE1vZGUpCi0gICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuYmxl
bmRNb2RlID0gKmJsZW5kTW9kZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+
IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk7Ci0gICAgICAgIGRlY29kZXIgPj4gaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eTsKLSAgICAgICAgaWYgKCFpbWFnZUludGVycG9sYXRpb25RdWFsaXR5
KQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5n
ZS5tX3N0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgPSAqaW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250
YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlv
bmFsPGZsb2F0PiBhbHBoYTsKLSAgICAgICAgZGVjb2RlciA+PiBhbHBoYTsKLSAgICAgICAgaWYg
KCFhbHBoYSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rh
dGVDaGFuZ2UubV9zdGF0ZS5hbHBoYSA9ICphbHBoYTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVD
aGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxk
QW50aWFsaWFzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRBbnRpYWxp
YXM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkQW50aWFsaWFzOwotICAgICAgICBpZiAoIXNo
b3VsZEFudGlhbGlhcykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRBbnRpYWxpYXMgPSAqc2hvdWxkQW50aWFsaWFz
OwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTbW9vdGhGb250c0NoYW5nZSkpIHsKLSAgICAgICAg
T3B0aW9uYWw8Ym9vbD4gc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hv
dWxkU21vb3RoRm9udHM7Ci0gICAgICAgIGlmICghc2hvdWxkU21vb3RoRm9udHMpCi0gICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUu
c2hvdWxkU21vb3RoRm9udHMgPSAqc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgfQotCi0gICAgaWYg
KHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8
Ym9vbD4gc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotICAgICAgICBkZWNvZGVyID4+IHNo
b3VsZFN1YnBpeGVsUXVhbnRpemVGb250czsKLSAgICAgICAgaWYgKCFzaG91bGRTdWJwaXhlbFF1
YW50aXplRm9udHMpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAg
IHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzID0gKnNob3Vs
ZFN1YnBpeGVsUXVhbnRpemVGb250czsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9j
aGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRy
YW5zZm9ybXNDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NJZ25vcmVU
cmFuc2Zvcm1zOwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwot
ICAgICAgICBpZiAoIXNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKQorICAgIGlmIChzdGF0ZUNoYW5n
ZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFu
Z2UpKSB7CisgICAgICAgIE9wdGlvbmFsPENvbG9yPiBzaGFkb3dDb2xvcjsKKyAgICAgICAgZGVj
b2RlciA+PiBzaGFkb3dDb2xvcjsKKyAgICAgICAgaWYgKCFzaGFkb3dDb2xvcikKICAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5z
aGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9ICpzaGFkb3dzSWdub3JlVHJhbnNmb3JtczsKKyAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dDb2xvciA9ICpzaGFkb3dDb2xvcjsKICAgICB9
CiAKLSAgICByZXR1cm4geyBzdGF0ZUNoYW5nZSB9OworICAgIHJldHVybiB7eyBzdGF0ZUNoYW5n
ZSwgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciwgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZp
ZXIgfX07CiB9CiAKIGNsYXNzIFNldExpbmVDYXAgewpAQCAtNzU3LDggKzU2MSw2IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6SW1hZ2VCdWZm
ZXImKSBjb25zdDsKIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXBwbHkoR3Jh
cGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwogICAgIEZsb2F0UmVjdCBtX2Rlc3Rp
bmF0aW9uUmVjdDsKQEAgLTEwMzksOCArODQxLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogCi0gICAg
Tk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25z
dDsKLQogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1
cm4gV1RGOjpudWxsb3B0OyB9CiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhj
b25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsg
fQogCkBAIC0xMDcyLDcgKzg3Miw2IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogV2UgbWlnaHQg
d2FudCB0byB2YWxpZGF0ZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KICAgICBib29sIGlzVmFsaWQo
KSBjb25zdCB7IHJldHVybiAhIW1faW1hZ2VJZGVudGlmaWVyOyB9CiAKLSAgICBOT19SRVRVUk5f
RFVFX1RPX0FTU0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAgIHZv
aWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgTmF0aXZlSW1hZ2UmKSBjb25zdDsKIAogICAgIE9w
dGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpudWxs
b3B0OyB9CkBAIC0xMTA0LDcgKzkwMyw2IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogV2UgbWln
aHQgd2FudCB0byB2YWxpZGF0ZSBJbWFnZVBhaW50aW5nT3B0aW9ucy4KICAgICBib29sIGlzVmFs
aWQoKSBjb25zdCB7IHJldHVybiAhIW1faW1hZ2VJZGVudGlmaWVyOyB9CiAKLSAgICBOT19SRVRV
Uk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAg
IHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgTmF0aXZlSW1hZ2UmKSBjb25zdDsKIAogICAg
IE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpu
dWxsb3B0OyB9CkBAIC0yMzAxLDExICsyMDk5LDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0Q1RNLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0
ZW5hdGVDVE0sCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVG
aWxsR3JhZGllbnQsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxp
bmVGaWxsQ29sb3IsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxp
bmVTdHJva2VDb2xvciwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0
cm9rZVRoaWNrbmVzcywKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElu
bGluZVN0YXRlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3RhdGUs
CisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3Ms
CiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwLAogICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZURhc2gsCiAgICAgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lSm9pbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBlZGEwYjU1OTgzNWUwZDg5ZWQwYTU3ZTU4ZTUzY2Yx
Mzg5NjM1NzFiLi40MWZhNzYyMjZhZTYwMzU4YjIwNWNjZDNiODY0ZjcyOGQ1ZGM2ZDViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC02MCw0OSArNjAsNDAg
QEAgdm9pZCBSZWNvcmRlcjo6cHV0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IFcKICAgICBhcHBlbmQ8UHV0SW1hZ2VEYXRhPihpbnB1
dEZvcm1hdCwgaW1hZ2VEYXRhLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogfQog
Ci1zdGF0aWMgYm9vbCBjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0
ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQorc3RhdGljIGJvb2wgY29udGFpbnNPbmx5SW5saW5l
U3RhdGVDaGFuZ2VzKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5n
ZUZsYWdzKQogewogICAgIHN0YXRpYyBjb25zdGV4cHIgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MgaW5saW5lU3RhdGVDaGFuZ2VGbGFncyB7Ci0gICAgICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpGaWxsR3JhZGllbnRDaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxs
UGF0dGVybkNoYW5nZSwKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9y
Q2hhbmdlLAogICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlLAot
ICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlLAorICAgICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlCiAgICAgfTsKIAotICAgIGlmIChj
aGFuZ2VGbGFncyAhPSAoY2hhbmdlRmxhZ3MgJiBpbmxpbmVTdGF0ZUNoYW5nZUZsYWdzKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSkgJiYgIWNoYW5nZXMubV9zdGF0ZS5z
dHJva2VDb2xvci5pc0lubGluZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5n
ZSkgJiYgIWNoYW5nZXMubV9zdGF0ZS5maWxsQ29sb3IuaXNJbmxpbmUoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpCi0gICAgICAgICYmICghY2hhbmdlcy5tX3N0YXRl
LmZpbGxHcmFkaWVudCB8fCAhU2V0SW5saW5lRmlsbEdyYWRpZW50Ojppc0lubGluZSgqY2hhbmdl
cy5tX3N0YXRlLmZpbGxHcmFkaWVudCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gIWNoYW5nZUZsYWdzLmNvbnRhaW5zQW55KGlubGluZVN0
YXRlQ2hhbmdlRmxhZ3MpOwogfQogCi12b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0
ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQordm9pZCBSZWNvcmRlcjo6
YXBwZW5kU3RhdGVDaGFuZ2VJdGVtKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwg
R3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCiB7Ci0g
ICAgaWYgKCFjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoY2hhbmdlcywgY2hhbmdlRmxh
Z3MpKSB7Ci0gICAgICAgIGFwcGVuZDxTZXRTdGF0ZT4oY2hhbmdlcy5tX3N0YXRlLCBjaGFuZ2VG
bGFncyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKLSAgICAgICAg
YXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlQ29sb3Iu
YXNJbmxpbmUoKSk7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRTdHJv
a2VUaGlja25lc3M+KGNoYW5nZXMubV9zdGF0ZS5zdHJva2VUaGlja25lc3MpOworICAgIGlmIChj
b250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoY2hhbmdlRmxhZ3MpKQorICAgICAgICBhcHBl
bmQ8U2V0SW5saW5lU3RhdGU+KHN0YXRlLCBjaGFuZ2VGbGFncyk7CisgICAgZWxzZSB7CisgICAg
ICAgIGlmIChzdGF0ZS5zdHJva2VQYXR0ZXJuKSB7CisgICAgICAgICAgICBpZiAobV9kZWxlZ2F0
ZSkKKyAgICAgICAgICAgICAgICBtX2RlbGVnYXRlLT5jYWNoZU5hdGl2ZUltYWdlKHN0YXRlLnN0
cm9rZVBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgICAgIG1fZGlzcGxheUxpc3QuY2Fj
aGVOYXRpdmVJbWFnZShzdGF0ZS5zdHJva2VQYXR0ZXJuLT50aWxlSW1hZ2UoKSk7CisgICAgICAg
IH0KIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
RmlsbENvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oY2hh
bmdlcy5tX3N0YXRlLmZpbGxDb2xvci5hc0lubGluZSgpKTsKKyAgICAgICAgaWYgKHN0YXRlLmZp
bGxQYXR0ZXJuKSB7CisgICAgICAgICAgICBpZiAobV9kZWxlZ2F0ZSkKKyAgICAgICAgICAgICAg
ICBtX2RlbGVnYXRlLT5jYWNoZU5hdGl2ZUltYWdlKHN0YXRlLmZpbGxQYXR0ZXJuLT50aWxlSW1h
Z2UoKSk7CisgICAgICAgICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlTmF0aXZlSW1hZ2Uoc3RhdGUu
ZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgfQogCi0gICAgaWYgKGNoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKQot
ICAgICAgICBhcHBlbmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigqY2hhbmdlcy5tX3N0YXRlLmZp
bGxHcmFkaWVudCwgY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtKTsK
KyAgICAgICAgYXBwZW5kPFNldFN0YXRlPihzdGF0ZSwgY2hhbmdlRmxhZ3MpOworICAgIH0KIH0K
IAogdm9pZCBSZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUgdHlwZSkKQEAg
LTExOSw3ICsxMTAsNyBAQCB2b2lkIFJlY29yZGVyOjp3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVt
VHlwZSB0eXBlKQogICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSA9IHN0YXRlQ2hhbmdlcy5jaGFuZ2VzRnJvbVN0YXRlKGN1
cnJlbnRTdGF0ZSgpLmxhc3REcmF3aW5nU3RhdGUpOwogICAgICAgICBpZiAoY2hhbmdlc0Zyb21M
YXN0U3RhdGUpIHsKICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0
cmVhbSA8PCAicHJlLWRyYXdpbmcsIHNhdmluZyBzdGF0ZSAiIDw8IEdyYXBoaWNzQ29udGV4dFN0
YXRlQ2hhbmdlKHN0YXRlQ2hhbmdlcy5tX3N0YXRlLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSkpOwot
ICAgICAgICAgICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKHN0YXRlQ2hhbmdlcywgY2hhbmdlc0Zy
b21MYXN0U3RhdGUpOworICAgICAgICAgICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKHN0YXRlQ2hh
bmdlcy5tX3N0YXRlLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSk7CiAgICAgICAgICAgICBzdGF0ZUNo
YW5nZXMubV9jaGFuZ2VGbGFncyA9IHsgfTsKICAgICAgICAgICAgIGN1cnJlbnRTdGF0ZSgpLmxh
c3REcmF3aW5nU3RhdGUgPSBzdGF0ZUNoYW5nZXMubV9zdGF0ZTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggODlhOTkwODZhYWQxMWVhZGUwMzc1
ZjFkZjE4NjRkMzMzMzE3OTU4Yi4uN2ZjZWE0MjdkNDMxN2JjYWQwYjA4YTM0NDYyNmYxMGRkZjMw
ZjE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0xNzEsNyAr
MTcxLDcgQEAgcHJpdmF0ZToKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEFwcGVuZEl0
ZW1PZlR5cGUoSXRlbVR5cGUpOwogCi0gICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29u
c3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Rh
dGVDaGFuZ2VGbGFncyk7CisgICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFn
cyk7CiAKICAgICBGbG9hdFJlY3QgZXh0ZW50RnJvbUxvY2FsQm91bmRzKGNvbnN0IEZsb2F0UmVj
dCYpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3Bw
CmluZGV4IDMyNWRiOTczOWU5ZmNmMjEzMWU5MTRlNmFlNWM4NWE4MmViYWUxYzkuLjM0NjQzNjJk
Njc3ZDRkNmM4NDcyZWQ5YTdkYTM1ZDg1MTVhZjg3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5jcHAKQEAgLTcwLDYgKzcwLDI5IEBAIGlubGluZSBzdGF0aWMgT3B0
aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseU5hdGl2ZUltYWdlSXRlbShH
cmFwaGljCiAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKIH0KIAoraW5saW5lIHN0YXRp
YyBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5U2V0U3RhdGVJdGVt
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTmF0aXZlSW1hZ2VIYXNoTWFwJiBuYXRp
dmVJbWFnZXMsIEl0ZW1IYW5kbGUgaXRlbSkKK3sKKyAgICBhdXRvJiBzZXRTdGF0ZUl0ZW0gPSBp
dGVtLmdldDxTZXRTdGF0ZT4oKTsKKworICAgIE5hdGl2ZUltYWdlKiBzdHJva2VQYXR0ZXJuSW1h
Z2UgPSBudWxscHRyOworICAgIE5hdGl2ZUltYWdlKiBmaWxsUGF0dGVybkltYWdlID0gbnVsbHB0
cjsKKyAgICAKKyAgICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRTdGF0ZUl0ZW0u
c3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcigpKSB7CisgICAgICAgIHN0cm9rZVBhdHRlcm5J
bWFnZSA9IG5hdGl2ZUltYWdlcy5nZXQocmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaWYg
KCFzdHJva2VQYXR0ZXJuSW1hZ2UpCisgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlm
aWVyOworICAgIH0KKworICAgIGlmIChhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRl
SXRlbS5maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcigpKSB7CisgICAgICAgIGZpbGxQYXR0ZXJu
SW1hZ2UgPSBuYXRpdmVJbWFnZXMuZ2V0KHJlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIGlm
ICghZmlsbFBhdHRlcm5JbWFnZSkKKyAgICAgICAgICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZp
ZXI7CisgICAgfQorCisgICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRleHQsIHN0cm9rZVBhdHRl
cm5JbWFnZSwgZmlsbFBhdHRlcm5JbWFnZSk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30K
KwogdGVtcGxhdGU8Y2xhc3MgVD4KIGlubGluZSBzdGF0aWMgT3B0aW9uYWw8UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyPiBhcHBseUZvbnRJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFwJiBmb250cywgSXRlbUhhbmRsZSBpdGVtKQog
ewpAQCAtMTA1LDE0ICsxMjgsMjAgQEAgc3RkOjpwYWlyPE9wdGlvbmFsPFN0b3BSZXBsYXlSZWFz
b24+LCBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+PiBSZXAKICAgICAgICAg
cmV0dXJuIHsgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQgfTsKICAgICB9CiAKLSAgICBpZiAo
aXRlbS5pczxEcmF3R2x5cGhzPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRS
ZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUZvbnRJdGVtPERyYXdHbHlwaHM+KG1fY29udGV4dCwg
bV9mb250cywgaXRlbSkpCisgICAgaWYgKGl0ZW0uaXM8RHJhd1BhdHRlcm4+KCkpIHsKKyAgICAg
ICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZl
SW1hZ2VJdGVtPERyYXdQYXR0ZXJuPihtX2NvbnRleHQsIG1fbmF0aXZlSW1hZ2VzLCBpdGVtKSkK
ICAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1pc3NpbmdDYWNoZWRSZXNv
dXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyKSB9OwogICAgICAg
ICByZXR1cm4geyBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCB9OwogICAgIH0KIAotICAgIGlm
IChpdGVtLmlzPERyYXdQYXR0ZXJuPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNo
ZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3UGF0dGVybj4o
bV9jb250ZXh0LCBtX25hdGl2ZUltYWdlcywgaXRlbSkpCisgICAgaWYgKGl0ZW0uaXM8U2V0U3Rh
dGU+KCkpIHsKKyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmll
ciA9IGFwcGx5U2V0U3RhdGVJdGVtKG1fY29udGV4dCwgbV9uYXRpdmVJbWFnZXMsIGl0ZW0pKQor
ICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291
cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CisgICAgICAg
IHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CisgICAgfQorCisgICAgaWYg
KGl0ZW0uaXM8RHJhd0dseXBocz4oKSkgeworICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVk
UmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlGb250SXRlbTxEcmF3R2x5cGhzPihtX2NvbnRleHQs
IG1fZm9udHMsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6
TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50
aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVRpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVRpbGUuY3BwCmluZGV4IGFmYmU3MDZhZGRjMjI3ZGExMGNiNzg4Mjg4ODZjMTI5YjE5MjQx
Y2MuLmYzM2NjZWIxMTIzMjgwYzgxMjVjYjI4NGI2ZTc4MDczZDAxYjgxYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKQEAg
LTcyLDcgKzcyLDcgQEAgdm9pZCBGRVRpbGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAg
dGlsZUltYWdlQ29udGV4dC50cmFuc2xhdGUoLWluTWF4RWZmZWN0TG9jYXRpb24ueCgpLCAtaW5N
YXhFZmZlY3RMb2NhdGlvbi55KCkpOwogICAgIHRpbGVJbWFnZUNvbnRleHQuZHJhd0ltYWdlQnVm
ZmVyKCppbkJ1ZmZlciwgaW4tPmFic29sdXRlUGFpbnRSZWN0KCkubG9jYXRpb24oKSk7CiAKLSAg
ICBhdXRvIHRpbGVJbWFnZUNvcHkgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9JbWFnZShXVEZNb3Zl
KHRpbGVJbWFnZSkpOworICAgIGF1dG8gdGlsZUltYWdlQ29weSA9IEltYWdlQnVmZmVyOjpzaW5r
SW50b05hdGl2ZUltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CiAgICAgaWYgKCF0aWxlSW1hZ2VD
b3B5KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYWQ0ZThkZDlkNzFiYWMxYTkyMTkyZGE3YWU2YTE5
ZDQzNGE3MTllMi4uYTE0ZTVlMGJjYzJmMmZiMThmZjc4MTZmNjc0ZTEwNmRhZDRhNDY0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTMyNjYsNyArMzI2Niw3IEBAIHN0YXRpYyBSZWZQdHI8UGF0dGVybj4gcGF0dGVybkZvckRlc2Ny
aXB0aW9uKFBhdHRlcm5EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgRmxvCiAgICAgICAgIGltYWdl
Q29udGV4dC5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB7IHRleHRHYXAsIHlPZmZzZXQgfSwgMCk7
CiAgICAgfQogCi0gICAgYXV0byB0aWxlSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9JbWFn
ZShXVEZNb3ZlKGltYWdlQnVmZmVyKSk7CisgICAgYXV0byB0aWxlSW1hZ2UgPSBJbWFnZUJ1ZmZl
cjo6c2lua0ludG9OYXRpdmVJbWFnZShXVEZNb3ZlKGltYWdlQnVmZmVyKSk7CiAgICAgYXV0byBm
aWxsUGF0dGVybiA9IFBhdHRlcm46OmNyZWF0ZSh0aWxlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwg
dHJ1ZSwgdHJ1ZSk7CiAgICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5PZmZzZXRUcmFuc2Zvcm07
CiAgICAgcGF0dGVybk9mZnNldFRyYW5zZm9ybS50cmFuc2xhdGUoY29udGVudE9mZnNldCArIGRl
c2NyaXB0aW9uLnBoYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcAppbmRleCBhMWY4NWYxNzYyNjYxYTVk
OGIzMmE0NTA0ZTY1ZWZhODNjYTNhNGViLi5jNTY1MmY1MTQ5Njk3YTg1N2Q5MzMwNTU0YmIzYTM5
ZTExNmQ0ZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgUGF0dGVy
bkRhdGEqIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKFJlbmRlckVsZW1l
bnQmIHJlbmRlcmVyLCBPcHQKIAogICAgIGNvbnN0IEludFNpemUgdGlsZUltYWdlU2l6ZSA9IHRp
bGVJbWFnZS0+bG9naWNhbFNpemUoKTsKIAotICAgIFJlZlB0cjxJbWFnZT4gY29waWVkSW1hZ2Ug
PSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9JbWFnZShXVEZNb3ZlKHRpbGVJbWFnZSkpOworICAgIGF1
dG8gY29waWVkSW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6c2lua0ludG9OYXRpdmVJbWFnZShXVEZNb3Zl
KHRpbGVJbWFnZSkpOwogICAgIGlmICghY29waWVkSW1hZ2UpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggYjBhYzM1ODZiMDI0OWI0YWJlMWU0
ZmNiY2U3M2U5ZDhmYTg2NWI0NS4uZGE4MTQ4MTE4M2M2ZTI4MTBlMjM0NjFlYjhjMDg2MTE2ZmM4
YmNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNDYwLDkgKzQ2MCw3IEBAIE9wdGlv
bmFsPERpc3BsYXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6ZGVjCiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6
CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgRGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldElubGluZUZpbGxDb2xvcjoKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
SW5saW5lRmlsbEdyYWRpZW50OgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJ
bmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5s
aW5lU3RhdGU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVDYXA6CiAg
ICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgogICAgIGNhc2UgRGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMTlhZjI5OTY2ODI3ZDRiNjAxZDhj
ZDUyN2JmMTRjOWE3N2Q3MDg5Yi4uYmI3Yzg0YmY4MTQ3NWNjYzkxOWYwNzgzMDA0ZDkyOTcxODAw
ZmU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCkBAIC0xMDc1LDE4ICsxMDc1LDYgQEAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZU9wdGlvbmFsSW1hZ2UoRGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEltYWcKICAgICBy
ZXR1cm4gZGVjb2RlSW1hZ2UoZGVjb2RlciwgaW1hZ2UpOwogfQogCi12b2lkIEFyZ3VtZW50Q29k
ZXI8SW1hZ2VIYW5kbGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW1hZ2VIYW5k
bGUmIGltYWdlSGFuZGxlKQotewotICAgIGVuY29kZU9wdGlvbmFsSW1hZ2UoZW5jb2RlciwgaW1h
Z2VIYW5kbGUuaW1hZ2UuZ2V0KCkpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW1hZ2VIYW5k
bGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQot
ewotICAgIGlmICghZGVjb2RlT3B0aW9uYWxJbWFnZShkZWNvZGVyLCBpbWFnZUhhbmRsZS5pbWFn
ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBB
cmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBS
ZWY8V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7CiAgICAgZW5jb2RlciA8PCBmb250LT5vcmlnaW4o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MDc0MzI1YjVhOWNiZGFkYTEzMGMwOTFmYzNkM2IwNTI4YWFmZGY5Ny4uNjRhN2NmZjM1ZWJhMTYx
ZTk4ZGEwNmU5MDU1YTYxMDliMmY4ZjlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEwOSw3ICsxMDksNiBAQCBjbGFzcyBGaXhlZFBvc2l0
aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBGb250UGxhdGZvcm1E
YXRhOwogY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIEltYWdlSGFuZGxlOwogY2xhc3MgSW50
UG9pbnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKQEAgLTQxOCwxMSArNDE3LDYg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWY8V2ViQ29yZTo6Rm9udD4+IHsK
ICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YT4gZGVjb2RlUGxh
dGZvcm1EYXRhKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6SW1hZ2VIYW5kbGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkltYWdlSGFuZGxlJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW1hZ2VIYW5kbGUmKTsKLX07
Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmgKaW5kZXggZDdiOTBiNTcyZGE1ZmMxM2NkM2JkMDg2YjQ3NzE0YjEwY2QzNWNh
OS4uNjQxYTFjOGUwNjU3MDY5ZGZhZTc0YmMwZTlmNjdiYWJmNjAzZGU0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5LmgKQEAgLTM0Niw5ICszNDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTYXZlOgogICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2NhbGU6CiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVT
dHJva2VDb2xvcjoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldElubGluZVN0YXRlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlNldExpbmVKb2luOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2V0TWl0ZXJMaW1pdDoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAyNzQxZjUyNTY3ZWZhNzE4MGZkOTUzY2QyNmExYmZkYjkzY2Iw
NDZjLi42Y2RkYWQ5NTY3MzNhZTI0OGM2Yzk5ZDg0N2VhY2U3MWFlNDk5NmMyIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMjEtMDItMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0dQVSBQcm9jZXNzXTogSW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nn
L0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KwogMjAyMS0wMi0wNSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2V3c10gY29tbWl0LXF1ZXVlIHNob3VsZCB1c2UgY29tbWl0cy53ZWJraXQub3JnIHVy
bCBpbnN0ZWFkIG9mIHRyYWMgdXJsCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXggZTg3MTdjNzkxNDBiZGVhNGI1
ZjUzNTVmMDE2OTA4OWU2MDA4NjczMy4uNjAyYmRiZjMyZWFhMmI0NzdmYmRlYjhlMmFlNjIwNzNh
YTQxNzc0YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rp
c3BsYXlMaXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApAQCAtNjUsMTEgKzY1LDE0IEBAIFRFU1QoRGlzcGxheUxp
c3RUZXN0cywgQXBwZW5kSXRlbXMpCiAgICAgYXV0byBncmFkaWVudCA9IGNyZWF0ZUdyYWRpZW50
KCk7CiAgICAgYXV0byBwYXRoID0gY3JlYXRlQ29tcGxleFBhdGgoKTsKIAorICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlIHN0YXRlOworICAgIHN0YXRlLmZpbGxDb2xvciA9IENvbG9yOjpyZWQ7CisK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IDUwOyArK2kpIHsKICAgICAgICAgbGlzdC5hcHBlbmQ8
U2V0U3Ryb2tlVGhpY2tuZXNzPigxLjUpOwogICAgICAgICBsaXN0LmFwcGVuZDxGaWxsUGF0aD4o
cGF0aCk7CiAgICAgICAgIGxpc3QuYXBwZW5kPEZpbGxSZWN0V2l0aEdyYWRpZW50PihGbG9hdFJl
Y3QgeyAxLiwgMS4sIDEwLiwgMTAuIH0sIGdyYWRpZW50KTsKLSAgICAgICAgbGlzdC5hcHBlbmQ8
U2V0SW5saW5lRmlsbENvbG9yPihDb2xvcjo6cmVkKTsKKyAgICAgICAgbGlzdC5hcHBlbmQ8U2V0
U3RhdGU+KHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKTsKICNp
ZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKICAgICAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlSW5s
aW5lUGF0aD4oSW5saW5lUGF0aERhdGEgeyBMaW5lRGF0YSB7eyAwLiwgMC4gfSwgeyAxMC4sIDE1
LiB9fX0pOwogI2VuZGlmCkBAIC0xMDIsMTEgKzEwNSwxMSBAQCBURVNUKERpc3BsYXlMaXN0VGVz
dHMsIEFwcGVuZEl0ZW1zKQogICAgICAgICAgICAgRVhQRUNUX0VRKCZpdGVtLmdyYWRpZW50KCks
IGdyYWRpZW50LnB0cigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogeworICAgICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRTdGF0ZTogewogICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGhhbmRsZS0+aXNEcmF3
aW5nSXRlbSgpKTsKLSAgICAgICAgICAgIEVYUEVDVF9UUlVFKGhhbmRsZS0+aXM8U2V0SW5saW5l
RmlsbENvbG9yPigpKTsKLSAgICAgICAgICAgIGF1dG8mIGl0ZW0gPSBoYW5kbGUtPmdldDxTZXRJ
bmxpbmVGaWxsQ29sb3I+KCk7Ci0gICAgICAgICAgICBFWFBFQ1RfRVEoaXRlbS5jb2xvcigpLCBD
b2xvcjo6cmVkKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGhhbmRsZS0+aXM8U2V0U3RhdGU+
KCkpOworICAgICAgICAgICAgYXV0byYgaXRlbSA9IGhhbmRsZS0+Z2V0PFNldFN0YXRlPigpOwor
ICAgICAgICAgICAgRVhQRUNUX0VRKGl0ZW0uc3RhdGVDaGFuZ2UoKS5tX3N0YXRlLmZpbGxDb2xv
ciwgQ29sb3I6OnJlZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogI2lmIEVOQUJM
RShJTkxJTkVfUEFUSF9EQVRBKQpAQCAtMjE1LDkgKzIxOCw5IEBAIFRFU1QoRGlzcGxheUxpc3RU
ZXN0cywgSXRlbUJ1ZmZlckNsaWVudCkKICAgICBsaXN0LnNldEl0ZW1CdWZmZXJDbGllbnQoJndy
aXRlcik7CiAKICAgICBhdXRvIHBhdGggPSBjcmVhdGVDb21wbGV4UGF0aCgpOwotICAgIGxpc3Qu
YXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6Ymx1ZSk7CisgICAgbGlzdC5hcHBl
bmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigxMCk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlUGF0aD4o
cGF0aCk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9yOjpyZWQp
OworICAgIGxpc3QuYXBwZW5kPFNldFN0cm9rZVRoaWNrbmVzcz4oMjApOwogICAgIGxpc3QuYXBw
ZW5kPFN0cm9rZVBhdGg+KHBhdGgpOwogCiAgICAgRGlzcGxheUxpc3Qgc2hhbGxvd0NvcHkge3sg
SXRlbUJ1ZmZlckhhbmRsZSB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZm
ZXIsIGxpc3Quc2l6ZUluQnl0ZXMoKSB9IH19OwpAQCAtMjMwLDkgKzIzMyw5IEBAIFRFU1QoRGlz
cGxheUxpc3RUZXN0cywgSXRlbUJ1ZmZlckNsaWVudCkKIAogICAgIEVYUEVDVF9GQUxTRShzaGFs
bG93Q29weS5pc0VtcHR5KCkpOwogICAgIEVYUEVDVF9FUShpdGVtVHlwZXMuc2l6ZSgpLCA0VSk7
Ci0gICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1swXSwgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNv
bG9yKTsKKyAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzBdLCBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhp
Y2tuZXNzKTsKICAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzFdLCBJdGVtVHlwZTo6U3Ryb2tlUGF0
aCk7Ci0gICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1syXSwgSXRlbVR5cGU6OlNldElubGluZVN0cm9r
ZUNvbG9yKTsKKyAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzJdLCBJdGVtVHlwZTo6U2V0U3Ryb2tl
VGhpY2tuZXNzKTsKICAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzNdLCBJdGVtVHlwZTo6U3Ryb2tl
UGF0aCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKaW5kZXggMGZlYzVmNzY1YTQyYzkyNDdh
NDJhNzY5MDFmMDU2MTczMmNkYjliOC4uYmRhNGRhOWE2MjFiZjJlNjM3NTE3OWY5NjM1M2Q1NjIw
N2Q4NWEwNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nn
L0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKQEAgLTUzLDExICs1MywxNCBAQCBURVNU
KERpc3BsYXlMaXN0VGVzdHMsIFJlcGxheVdpdGhNaXNzaW5nUmVzb3VyY2UpCiAgICAgYXV0byBp
bWFnZUJ1ZmZlcklkZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCk7CiAKICAgICBEaXNwbGF5TGlzdCBsaXN0OworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
IHN0YXRlOwogCi0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihDb2xvcjo6Z3Jl
ZW4pOworICAgIHN0YXRlLmZpbGxDb2xvciA9IENvbG9yOjpibHVlOworICAgIGxpc3QuYXBwZW5k
PFNldFN0YXRlPihzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSk7
CiAgICAgbGlzdC5hcHBlbmQ8RmlsbFJlY3Q+KGNvbnRleHRCb3VuZHMpOwogICAgIGxpc3QuYXBw
ZW5kPERyYXdJbWFnZUJ1ZmZlcj4oaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb250ZXh0Qm91bmRz
LCBjb250ZXh0Qm91bmRzLCBJbWFnZVBhaW50aW5nT3B0aW9ucyB7IH0pOwotICAgIGxpc3QuYXBw
ZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6cmVkKTsKKyAgICBzdGF0ZS5zdHJva2VD
b2xvciA9IENvbG9yOjpyZWQ7CisgICAgbGlzdC5hcHBlbmQ8U2V0U3RhdGU+KHN0YXRlLCBHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpOwogICAgIGxpc3QuYXBwZW5kPFN0
cm9rZUxpbmU+KEZsb2F0UG9pbnQgeyAwLCBjb250ZXh0SGVpZ2h0IH0sIEZsb2F0UG9pbnQgeyBj
b250ZXh0V2lkdGgsIDAgfSk7CiAKICAgICB7CkBAIC0xMjAsNyArMTIzLDcgQEAgVEVTVChEaXNw
bGF5TGlzdFRlc3RzLCBPdXRPZkxpbmVJdGVtRGVjb2RpbmdGYWlsdXJlKQogICAgIHBhdGgubW92
ZVRvKHsgMTAuLCAxMC4gfSk7CiAgICAgcGF0aC5hZGRMaW5lVG8oeyA1MC4sIDUwLiB9KTsKICAg
ICBwYXRoLmFkZExpbmVUbyh7IDEwLiwgMTAuIH0pOwotICAgIG9yaWdpbmFsTGlzdC5hcHBlbmQ8
U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9yOjpibHVlKTsKKyAgICBvcmlnaW5hbExpc3QuYXBw
ZW5kPFNldFN0cm9rZVRoaWNrbmVzcz4oMTApOwogICAgIG9yaWdpbmFsTGlzdC5hcHBlbmQ8Rmls
bFBhdGg+KFdURk1vdmUocGF0aCkpOwogCiAgICAgRGlzcGxheUxpc3Qgc2hhbGxvd0NvcHkge3sg
SXRlbUJ1ZmZlckhhbmRsZSB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZm
ZXIsIG9yaWdpbmFsTGlzdC5zaXplSW5CeXRlcygpIH0gfX07CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTgzYThmOGZjMDMy
NDgyMGI2M2MzOTEzZjA2ODdjYTc4ODU1MTI0ZS4uMmNmMmM0YmM1NjllYjE1ZTNkMDZhNmE5ODVm
ZjUyNDhjMGNkOWI2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAyLTA1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc106IElt
cGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1s
aXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDIxLTAyLTA1ICBSaW5pIFBhdGVsICA8cmluaV9wYXRlbEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0dQVSBQcm9jZXNzXSBSZXBvcHVsYXRlIHRoZSBUZXN0RXhwZWN0YXRpb25zIGZpbGUg
IzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1s
aXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxh
eS1saXN0LWV4cGVjdGVkLnR4dAppbmRleCAxNDUxYjE5MjUzYzMyMzg5MjhiYmQ5ZjVlNWRlYmI5
Mjc0YzUwZDU3Li40MzQzNmEzMTY1OGNjYTNiYjk1OWMyNjg4N2NkMTk2ZGNjYjUzNGUxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxp
c3QtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsOCBAQAogICAoc2hhZG93cy1pZ25vcmUtdHJhbnNm
b3JtcyAxKSkKIChmaWxsLXJlY3QKICAgKHJlY3QgYXQgKDEwLDEwKSBzaXplIDU1eDUwKSBleHRl
bnQgYXQgKDEwLDE0MCkgc2l6ZSA1NXg1MCkKLShzZXQtaW5saW5lLWZpbGwtY29sb3IKLSAgKGNv
bG9yICMwMDAwQzg4MCkpCisoc2V0LXN0YXRlCisgIChjaGFuZ2UtZmxhZ3MgMTI4KQorICAoZmls
bC1jb2xvciAjMDAwMEM4ODApKQogKGZpbGwtcmVjdAogICAocmVjdCBhdCAoMzAsMzApIHNpemUg
NTV4NTApIGV4dGVudCBhdCAoMzAsMTIwKSBzaXplIDU1eDUwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9j
ZXNzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzM2NmZkOWFkMDc2ZjU1ZWUyODVlNmY3OTg0YTg4
M2UxODZiZjVjZi4uZGFkOGJjYTI4MTFkY2I5ZTY2OThiMmFiNmMzOTI3Y2Y4NTczY2QwYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xLDQ5ICsxLDggQEAK
LWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmNhbnZhc3BhdHRl
cm4uaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLmdsb2Jh
bEFscGhhLmltYWdlcGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uY29weS5odG1sIFsgQ3Jhc2ggXQotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24t
YXRvcC5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5j
b3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24taW4uaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1pbi5odG1sIFsg
Q3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRl
cm4uc291cmNlLW91dC5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0
ZXJuLmFuaW1hdGVkLmdpZi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5w
YXR0ZXJuLmJhc2ljLmNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5wYXR0ZXJuLmJhc2ljLmltYWdlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnBhdHRlcm4uYmFzaWMubm9jb250ZXh0Lmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLnBhdHRlcm4uY3Jvc3NjYW52YXMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFzMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwgWyBDcmFzaCBdCi1j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMS5odG1sIFsgQ3Jhc2gg
XQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTIuaHRtbCBbIENy
YXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5iYXNp
Yy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5v
cmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0
ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0Lm91dHNpZGUuaHRtbCBb
IENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5vcmllbnRhdGlv
bi5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5w
YWludC5vcmllbnRhdGlvbi5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDEuaHRtbCBbIENyYXNoIF0K
LWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQyLmh0bWwg
WyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNv
b3JkMy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50
LnJlcGVhdC5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBh
dHRlcm4ucGFpbnQucmVwZWF0eC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHguY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1jYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5vdXRzaWRlLmh0bWwgWyBD
cmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5iYXNp
Yy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJl
cGVhdHkuY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRl
cm4ucGFpbnQucmVwZWF0eS5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnBhdHRlcm4ucmVwZWF0LmVtcHR5Lmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLnBhdHRlcm4ucmVwZWF0Lm51bGwuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGls
aXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4uYWxwaGEuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4uYmFzaWMuaHRtbCBbIENyYXNoIF0KLWNhbnZh
cy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMS5odG1sIFsgQ3Jh
c2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cucGF0dGVybi50cmFuc3BhcmVudC4y
Lmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzL2luaXRpYWwucmVzZXQucGF0dGVy
bi5odG1sIFsgQ3Jhc2ggXQotCiBjb21wb3NpdGluZy9jYW52YXMvYWNjZWxlcmF0ZWQtY2FudmFz
LWNvbXBvc2l0aW5nLmh0bWwgWyBGYWlsdXJlIF0KIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9u
L3NwYW5PdmVybGFwc0NhbnZhcy5odG1sIFsgRmFpbHVyZSBdCiAKIGNzczMvYmxlbmRpbmcvYmxl
bmQtbW9kZS1jbGlwLWFjY2VsZXJhdGVkLWJsZW5kaW5nLWNhbnZhcy5odG1sIFsgRmFpbHVyZSBd
CisKIGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwgWyBGYWlsdXJlIF0KIAog
ZmFzdC9jYW52YXMvMmQuZmlsbFRleHQuZ3JhZGllbnQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTUs
MzMgKzE0LDExIEBAIGZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZC1pbWFnZS5odG1sIFsgRmFpbHVy
ZSBdCiBmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmQtc29saWQuaHRtbCBbIEZhaWx1cmUgXQogZmFz
dC9jYW52YXMvY2FudmFzLWJsZW5kaW5nLWNsaXBwaW5nLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qv
Y2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWNvbG9yLmh0bWwgWyBGYWlsdXJlIF0K
LWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWdyYWRpZW50Lmh0bWwgWyBG
YWlsdXJlIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWltYWdlLmh0
bWwgWyBUaW1lb3V0IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLXBh
dHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1ncmFkaWVu
dC1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGlu
Zy1pbWFnZS1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1i
bGVuZGluZy1wYXR0ZXJuLW92ZXItY29sb3IuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2Nh
bnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItZ3JhZGllbnQuaHRtbCBbIENyYXNoIF0KLWZhc3Qv
Y2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItaW1hZ2UuaHRtbCBbIENyYXNoIF0K
LWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItcGF0dGVybi5odG1sIFsg
Q3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWNyZWF0ZVBhdHRlcm4tZmlsbFJlY3Qtc2hhZG93
Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRlUGF0dGVybi12aWRlby1s
b2FkaW5nLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRlUGF0dGVybi12
aWRlby1tb2RpZnkuaHRtbCBbIENyYXNoIF0KK2Zhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1j
b2xvci1vdmVyLWdyYWRpZW50Lmh0bWwgWyBGYWlsdXJlIF1gCiBmYXN0L2NhbnZhcy9jYW52YXMt
ZHJhd0ltYWdlLWNvbXBvc2l0ZS1jb3B5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWZhc3Qv
Y2FudmFzL2NhbnZhcy1maWxsUGF0aC1wYXR0ZXJuLXNoYWRvdy5odG1sIFsgQ3Jhc2ggXQotZmFz
dC9jYW52YXMvY2FudmFzLWltYWdlLXNoYWRvdy5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMv
Y2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1wYXR0ZXJucy5odG1sIFsgQ3Jhc2ggXQogZmFz
dC9jYW52YXMvY2FudmFzLWxhcmdlLWRpbWVuc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9j
YW52YXMvY2FudmFzLXBhdHRlcm4tYmVoYXZpb3VyLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZh
cy9jYW52YXMtcGF0dGVybi1tb2RpZnkuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZh
cy1wYXR0ZXJuLXRyYW5zZm9ybS5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLXBh
dHRlcm4td2l0aC10cmFuc2Zvcm0uaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFzL2NhbnZhcy1y
ZW5kZXItbGF5ZXIuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvaGlkcGktcmVwYWludC1v
bi1yZXRpbmEtbGVhdmVzLWJpdHMtYmVoaW5kLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWZh
c3QvY2FudmFzL2ltYWdlLW9iamVjdC1pbi1jYW52YXMuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2Fu
dmFzL2ltYWdlLXBhdHRlcm4tcm90YXRlLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9wYXR0
ZXJuLXdpdGgtdHJhbnNmb3JtLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9wYXR0ZXJuZmls
bC1yZXBlYXQuaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy0yZC13ZWJn
bC10ZXh0dXJlLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0
Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtY3JlYXRpb24tYXR0
cmlidXRlcy5odG1sIFsgRmFpbHVyZSBdCkBAIC0xMDEsMjkgKzM4LDI2IEBAIGZhc3QvY2FudmFz
L3dlYmdsL3RleEltYWdlMkQtdmlkZW8tZmxpcFktdHJ1ZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0
L2NhbnZhcy93ZWJnbC90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qv
Y2FudmFzL3dlYmdsL3VuaWZvcm0tc2FtcGxlcnMtdGVzdC5odG1sIFsgVGltZW91dCBdCiBmYXN0
L2NhbnZhcy93ZWJnbC93ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbCBbIFRpbWVvdXQgXQot
CiBmYXN0L2RvbS9uYXZpZ2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQog
ZmFzdC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0LWNyYXNoLmh0bWwgWyBUaW1lb3V0IF0KIGZh
c3QvaW1hZ2VzL2FuaW1hdGVkLWltYWdlLW1wNC5odG1sIFsgVGltZW91dCBdCiBmYXN0L2ltYWdl
cy9vcmRlcmVkLWFuaW1hdGVkLWltYWdlLWZyYW1lcy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
Ci0KIGZhc3QvbWVkaWFjYXB0dXJlZnJvbWVsZW1lbnQvQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFt
LWV4Y2VwdGlvbnMuaHRtbCBbIENyYXNoIF0KIGZhc3QvbWVkaWFjYXB0dXJlZnJvbWVsZW1lbnQv
Q2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtLXdlYmdsLWV2ZW50cy5odG1sIFsgVGltZW91dCBdCiBm
YXN0L21lZGlhc3RyZWFtL2NhcHR1cmVTdHJlYW0vY2FudmFzM2QuaHRtbCBbIEZhaWx1cmUgXQog
ZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRtbCBbIEZhaWx1cmUgXQog
ZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1lbGVtZW50LWN1cnJlbnQtdGltZS5odG1sIFsgRmFpbHVy
ZSBdCiBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1pbnRlcnJ1cHRlZC5odG1s
IFsgRmFpbHVyZSBdCi0KIGZhc3QvcmVwYWludC9jYW52YXMtb2JqZWN0LWZpdC5odG1sIFsgRmFp
bHVyZSBdCiBmYXN0L3JlcGFpbnQvY2FudmFzLXB1dEltYWdlRGF0YS5odG1sIFsgRmFpbHVyZSBd
CiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1s
IFsgVGltZW91dCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25p
dGlvbi5odG1sIFsgRmFpbHVyZSBdCi0KIGZhc3QvdGV4dC9jYW52YXMtY29sb3ItZm9udHMvZmls
bC1ncmFkaWVudC1DT0xSLTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC90ZXh0L2Nh
bnZhcy1jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtQ09MUi0yLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIGZhc3QvdGV4dC9jYW52YXMtY29sb3ItZm9udHMvc3Ryb2tlLWdyYWRpZW50LUNP
TFItMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3RleHQvY2FudmFzLWNvbG9yLWZv
bnRzL3N0cm9rZS1ncmFkaWVudC1DT0xSLTQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFz
dC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtQ09MUi01Lmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KKwogaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9udHMvZmlsbC1n
cmFkaWVudC1zYml4LTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy9jYW52
YXMvY29sb3ItZm9udHMvZmlsbC1ncmFkaWVudC1zYml4LTMuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9udHMvZmlsbC1ncmFkaWVudC1zYml4LTQu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpAQCAtMTgyLDkgKzExNiw4IEBAIGh0dHAvdGVzdHMv
c2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxvd2VkLWNyb3Nzb3JpZ2lu
LXJlZGlyZWN0Lmh0CiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUt
YXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1jcm9zc29yaWdp
bi1yZWRpcmVjdC5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlv
LXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1jcm9zc29yaWdpbi5odG1sIFsgVGltZW91
dCBdCi0KLWh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRl
by1kYXRhYXZhaWxhYmxlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci1hdWRpby1iaXRyYXRlLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvd3B0L21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxlLmh0
bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tdWx0
aXBsZS1zdGFydC1zdG9wLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIv
bXV0ZS10cmFja3MuaHRtbCBbIENyYXNoIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvcGF1c2Ut
cmVjb3JkaW5nLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTE5Nyw5MyArMTMwLDEwIEBAIGltcG9ydGVk
L2JsaW5rL2Zhc3QvY2FudmFzL2NhbnZhcy1zdGF0ZS1wZXJzaXN0ZW5jZS1uby1kaXJ0eS5odG1s
IFsgSW1hZ2VPbmx5RmFpCiBpbXBvcnRlZC9ibGluay9mYXN0L2NhbnZhcy9jYW52YXMtdW5iYWxh
bmNlZC1zYXZlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL2JsaW5rL3N2Zy9j
YW52YXMvY2FudmFzLWRyYXctcGF0dGVybi1zaXplLmh0bWwgWyBDcmFzaCBdCiAKLWltcG9ydGVk
L3czYy9jYW52YXMvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmNhbnZhc3BhdHRlcm4uaHRtbCBb
IENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmlt
YWdlcGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5jb21wb3Np
dGUudW5jb3ZlcmVkLnBhdHRlcm4uY29weS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2Nh
bnZhcy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24tYXRvcC5odG1s
IFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBh
dHRlcm4uZGVzdGluYXRpb24taW4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMv
MmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1pbi5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uc291cmNl
LW91dC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLmJhc2lj
LmNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLmJh
c2ljLmltYWdlLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4u
YmFzaWMubm9jb250ZXh0Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBh
dHRlcm4uY3Jvc3NjYW52YXMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
cGF0dGVybi5tb2RpZnkuY2FudmFzMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZh
cy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
Y2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5jb29yZDEuaHRtbCBb
IENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5j
b29yZDIuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWlu
dC5ub3JlcGVhdC5jb29yZDMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
cGF0dGVybi5wYWludC5ub3JlcGVhdC5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQub3JpZW50YXRpb24uY2FudmFzLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQub3JpZW50YXRpb24uaW1h
Z2UuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5y
ZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVy
bi5wYWludC5yZXBlYXQuY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDMuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQub3V0c2lkZS5odG1s
IFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHgu
YmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWlu
dC5yZXBlYXR4LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5w
YXR0ZXJuLnBhaW50LnJlcGVhdHgub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNj
L2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sIFsg
Q3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkub3V0
c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnJlcGVh
dC5lbXB0eS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnJl
cGVhdC5udWxsLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnNoYWRvdy5w
YXR0ZXJuLmFscGhhLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnNoYWRv
dy5wYXR0ZXJuLmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnNo
YWRvdy5wYXR0ZXJuLnRyYW5zcGFyZW50LjEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9j
YW52YXMvMmQuc2hhZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMi5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL2NhbnZhcy9pbml0aWFsLnJlc2V0LnBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy9jYW52YXMvc2VjdXJpdHkucGF0dGVybi5jYW52YXMudGltaW5nLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzL3NlY3VyaXR5LnBhdHRlcm4uY3Jvc3MuaHRtbCBb
IENyYXNoIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2Vu
ZXJhbC53aW5kb3cuaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9yYW5nZS9zdy5odHRwcy53aW5kb3cuaHRtbCBbIEZhaWx1cmUgXQotaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0aW5n
LzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5jYW52YXNwYXR0ZXJuLmh0bWwgWyBDcmFzaCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9z
aXRpbmcvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmltYWdlcGF0dGVybi5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2Nv
bXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5jb3B5Lmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
Y29tcG9zaXRpbmcvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWF0
b3AuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvZWxlbWVudC9jb21wb3NpdGluZy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4u
ZGVzdGluYXRpb24taW4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9jb21wb3NpdGluZy8yZC5jb21wb3NpdGUudW5jb3Zl
cmVkLnBhdHRlcm4uc291cmNlLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRl
LnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1vdXQuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Ut
c3R5bGVzLzJkLnBhdHRlcm4uYW5pbWF0ZWQuZ2lmLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tl
LXN0eWxlcy8yZC5wYXR0ZXJuLmJhc2ljLmNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9r
ZS1zdHlsZXMvMmQucGF0dGVybi5iYXNpYy5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9r
ZS1zdHlsZXMvMmQucGF0dGVybi5iYXNpYy5ub2NvbnRleHQuaHRtbCBbIENyYXNoIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1z
dHJva2Utc3R5bGVzLzJkLnBhdHRlcm4uY3Jvc3NjYW52YXMuaHRtbCBbIENyYXNoIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1z
dHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ubW9kaWZ5LmNhbnZhczEuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFu
ZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ubW9kaWZ5LmNhbnZhczIuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxs
LWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMS5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2Zp
bGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5tb2RpZnkuaW1hZ2UyLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmJhc2ljLmh0
bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0
LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWlu
dC5ub3JlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBh
dHRlcm4ucGFpbnQubm9yZXBlYXQuY29vcmQzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0
eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFu
ZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQub3JpZW50YXRpb24uY2FudmFzLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9u
LmltYWdlLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50
LnJlcGVhdC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVy
bi5wYWludC5yZXBlYXQuY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8y
ZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Ut
c3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5k
LXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQub3V0c2lkZS5odG1sIFsgQ3Jh
c2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50
L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4LmJhc2ljLmh0
bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHgu
Y29vcmQxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50
LnJlcGVhdHgub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0
dGVybi5wYWludC5yZXBlYXR5LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxl
cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkuY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ry
b2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkub3V0c2lkZS5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2Zp
bGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5yZXBlYXQuZW1wdHkuaHRtbCBbIENyYXNo
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9m
aWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4udHJhbnNmb3JtLmlkZW50aXR5Lmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvaW1hZ2Utc21vb3RoaW5nL2ltYWdlc21vb3RoaW5nLmh0bWwgWyBDcmFzaCBdCi1pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvaW1hZ2ViaXRt
YXAvY3JlYXRlSW1hZ2VCaXRtYXAtb3JpZ2luLnN1Yi5odG1sIFsgRmFpbHVyZSBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvbGluZS1zdHlsZXMv
MmQubGluZS5jYXAuY2xvc2VkLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvcGF0aC1vYmplY3RzLzJkLnBhdGguYXJjLmFu
Z2xlLjIuaHRtbCBbIENyYXNoIF0KKwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9lbGVtZW50L3BhdGgtb2JqZWN0cy8yZC5wYXRoLnN0cm9rZS5zY2FsZTIuaHRt
bCBbIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9lbGVtZW50L3NoYWRvd3MvMmQuc2hhZG93LnBhdHRlcm4uYWxwaGEuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9zaGFk
b3dzLzJkLnNoYWRvdy5wYXR0ZXJuLmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvc2hhZG93cy8yZC5zaGFkb3cu
cGF0dGVybi50cmFuc3BhcmVudC4xLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvc2hhZG93cy8yZC5zaGFkb3cucGF0dGVy
bi50cmFuc3BhcmVudC4yLmh0bWwgWyBDcmFzaCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfcHJvZ3Jlc3Nfbm9hdXRvcGxheS5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvbG9hZGluZy10aGUtbWVkaWEtcmVzb3VyY2UvbG9hZC1ldmVudHMtbmV0d29ya1N0YXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wcmVzZXJ2ZXMtcGl0Y2gu
aHRtbCBbIEZhaWx1cmUgXQpAQCAtMzQyLDkgKzE5Miw5IEBAIHN2Zy9hcy1pbWFnZS9zdmctY2Fu
dmFzLXBhdHRlcm4td2l0aC1saW5rLXRhaW50ZWQuaHRtbCBbIENyYXNoIF0KIHN2Zy9jYW52YXMv
Y2FudmFzLWdsb2JhbC1hbHBoYS1zdmcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogc3ZnL2Nh
bnZhcy9jYW52YXMtcGF0dGVybi1zdmcuaHRtbCBbIENyYXNoIF0KIAotd2ViYXVkaW8vUGFubmVy
L2hydGYtZGF0YWJhc2UuaHRtbCBbIFRpbWVvdXQgXQogd2ViYXVkaW8vY29kZWMtdGVzdHMvYWFj
L3Zici0xMjhrYnBzLTQ0a2h6Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmF1ZGlvL2NvZGVjLXRlc3Rz
L21wMy8xMjhrYnBzLTQ0a2h6Lmh0bWwgWyBUaW1lb3V0IF0KK3dlYmF1ZGlvL1Bhbm5lci9ocnRm
LWRhdGFiYXNlLmh0bWwgWyBUaW1lb3V0IF0KIAogd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2UvY2Fu
dmFzL2NhbnZhcy10ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNl
L2NhbnZhcy9kcmF3LXN0YXRpYy13ZWJnbC10by1tdWx0aXBsZS1jYW52YXMtdGVzdC5odG1sIFsg
RmFpbHVyZSBdCkBAIC00MTcsNjggKzI2Nyw2IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiYS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS91bmlmb3Jtcy91bmlmb3JtLXNhbXBsZXJzLXRlc3QuaHRt
bCBbIFRpbWVvdXQgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlYWRpbmcvcmVhZC1waXhl
bHMtcGFjay1wYXJhbWV0ZXJzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwgWyBUaW1lb3V0IF0KLXdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJn
Yi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFp
bHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1y
MTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFp
bHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1y
MTZmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTZmLXJlZC1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIzMmYt
cmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTJkLXI4LXJlZC11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXI4dWktcmVk
X2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzE2Zi1yZy1mbG9hdC5odG1sIFsgRmFp
bHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1y
ZzE2Zi1yZy1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnMzJmLXJnLWZsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnOC1y
Zy11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnOHVpLXJnX2ludGVnZXItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0yZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0yZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjVf
YTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9y
dF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTJkLXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiOHVp
LXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTE2Zi1yZ2JhLWZsb2F0Lmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTJkLXJnYmExNmYtcmdiYS1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmEzMmYtcmdiYS1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTQtcmdiYS11
bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0yZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXNyZ2I4
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5
dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxMWZfZzExZl9i
MTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9p
bnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxNmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxNmYt
cmVkLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjMyZi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjgtcmVkLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtM2Qtcjh1aS1yZWRfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTNkLXJnMTZmLXJnLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnMTZmLXJnLWhhbGZfZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qt
cmczMmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtcmc4LXJnLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtcmc4
dWktcmdfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjMyZi1yZ2ItZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWdu
ZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
M2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiOC1yZ2It
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0zZC1yZ2JhMTZmLXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTE2Zi1yZ2JhLWhhbGZfZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtM2QtcmdiYTMyZi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
M2QtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE4dWktcmdiYV9pbnRlZ2Vy
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qt
c3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXIx
MWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXIxMWZfZzExZl9i
MTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcjExZl9nMTFmX2IxMGYt
cmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNDk1
LDEwICsyODMsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19z
dWJfcmVjdGFuZ2xlL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXUKIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiMTZmLXJnYi1m
bG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTJkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1y
Z2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiNV9hMS1yZ2Jh
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWdu
ZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRf
NV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3Vi
X3JlY3RhbmdsZS90ZXgtMmQtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJf
cmVjdGFuZ2xlL3RleC0yZC1yZ2I5X2U1LXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC01
MTAsOCArMjk4LDggQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19z
dWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmUKIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiYTQtcmdiYS11
bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiYTgtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiYTh1aS1yZ2JhX2ludGVnZXIt
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3Jl
Y3RhbmdsZS90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90
ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0z
ZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsg
RmFpbHVyZSBdCkBAIC01MjgsMTAgKzMxNiwxMCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnOHVpLXJnX2ludGVnZXItdQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3Rl
eC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiMTZmLXJnYi1o
YWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUv
dGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3Rl
eC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJn
YjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2Qt
cmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiNTY1LXJn
Yi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjgtcmdiLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I4dWktcmdiX2ludGVnZXItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjlfZTUtcmdiLWZsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KQEAgLTU0Myw4ICszMzEsNzAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmUK
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90
ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90
ZXgtM2QtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2Qtcmdi
YTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXNy
Z2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2Qtc3JnYjhfYWxwaGE4
LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXNyZ2I4LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTFm
X2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5z
aWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTZmLXJlZC1mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0y
ZC1yMTZmLXJlZC1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXIzMmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXI4
LXJlZC11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXI4dWktcmVkX2ludGVnZXItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzL3RleC0yZC1yZzE2Zi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzE2Zi1yZy1oYWxmX2Zsb2F0Lmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTJkLXJnMzJmLXJnLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnOC1yZy11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTJkLXJnOHVpLXJnX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTJkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2IzMmYtcmdiLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjVfYTEt
cmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWls
dXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJn
YjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhcy90ZXgtMmQtcmdiYTE2Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmExNmYtcmdiYS1o
YWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTJkLXJnYmEzMmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhNC1yZ2Jh
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80
Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTJkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhOHVpLXJnYmFf
aW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhcy90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQor
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjExZl9nMTFm
X2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTNkLXIxNmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxNmYtcmVkLWhhbGZfZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
M2QtcjMyZi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcjgtcmVkLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qt
cjh1aS1yZWRfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnMTZmLXJnLWZsb2F0Lmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTNkLXJnMTZmLXJnLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmczMmYtcmctZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
M2Qtcmc4LXJnLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtcmc4dWktcmdfaW50ZWdlci11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXMvdGV4LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiMTZmLXJnYi1oYWxm
X2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXMvdGV4LTNkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEu
aHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5z
aWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0z
ZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhMTZmLXJnYmEt
ZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2NhbnZhcy90ZXgtM2QtcmdiYTE2Zi1yZ2JhLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQor
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTMyZi1y
Z2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2Jh
NC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTgtcmdiYS11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXMvdGV4LTNkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgt
M2Qtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1zcmdiOC1yZ2ItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yMTFmX2cxMWZfYjEw
Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcjExZl9nMTFmX2Ix
MGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcjExZl9n
MTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUg
XQpAQCAtNTYxLDEwICs0MTEsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmc4dWktcmcKIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAv
dGV4LTJkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQt
cmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJn
YjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiNTY1LXJn
Yi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjU2NS1y
Z2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQt
cmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgt
MmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQor
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdl
X2JpdG1hcC90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFn
ZV9iaXRtYXAvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9m
cm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zy
b21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2Vf
Yml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I5X2U1LXJnYi1mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCkBAIC01NzYsOCArNDI2LDggQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYTQtcmcKIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zy
b21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9m
cm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1h
Z2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1h
Z2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXNyZ2I4LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXIxMWZfZzExZl9iMTBm
LXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yMTFmX2cxMWZfYjEw
Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yMTFmX2cx
MWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBd
CkBAIC01OTQsMTAgKzQ0NCwxMCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
aW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZzh1aS1yZwogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90
ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1y
Z2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtcmdi
MzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiNTY1LXJn
Yi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1y
Z2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0z
ZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2Vf
Yml0bWFwL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQor
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdl
X2JpdG1hcC90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zy
b21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJv
bV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9i
aXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjlfZTUtcmdiLWZsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KQEAgLTYwOSw4ICs0NTksOCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2JhNC1yZwogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2Jp
dG1hcC90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJv
bV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zy
b21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtc3JnYjgtcmdiLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL21pc2MvaW50ZWdlci1jdWJlbWFwLXRleHR1cmUtc2FtcGxpbmcuaHRtbCBbIENyYXNoIF0K
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcjExZl9nMTFm
X2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQpAQCAtNjI4LDEwICs0NzgsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUu
aHQKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiMTZm
LXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjMyZi1y
Z2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3ZpZGVvL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2I1NjUt
cmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5
dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3Zp
ZGVvL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFp
bHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJn
YjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRf
NV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiOHVpLXJnYl9p
bnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2I5X2U1LXJnYi1mbG9hdC5odG1sIFsgRmFp
bHVyZSBdCkBAIC02NDMsOCArNDkzLDggQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3ZpZGVvL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEYKIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiYTQtcmdiYS11bnNp
Z25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgt
MmQtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXNyZ2I4LXJnYi11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy92aWRlby90ZXgtMmQtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4
LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92
aWRlby90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yMTFmX2cx
MWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBd
CkBAIC02NjEsMTAgKzUxMSwxMCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
dmlkZW8vdGV4LTNkLXJnOHVpLXJnX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odAogd2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90
ZXgtM2QtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiMzJmLXJnYi1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4
LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRf
c2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJn
YjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiNTY1LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy92aWRlby90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNk
LXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvdmlkZW8vdGV4LTNkLXJnYjlfZTUtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTY3
Niw4ICs1MjYsOCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4
LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRgogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRf
NF80XzQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2JhOHVpLXJn
YmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2Qtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVv
L3RleC0zZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2Qtc3JnYjgtcmdi
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9j
YW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJk
LXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBG
YWlsdXJlIF0KQEAgLTY5NCwxMCArNTQ0LDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnOHVpLXJnX2ludGVnZXItdW5zaWduZWRfCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2Ix
NmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFz
L3RleC0yZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9j
YW52YXMvdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJn
YjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjU2NS1y
Z2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0
XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgt
MmQtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiYTE2
Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTcwNyw4ICs1NTcsOCBAQCB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2JhNC1yZ2Jh
LXVuc2lnbmVkX2J5dGUuaAogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmds
X2NhbnZhcy90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMv
dGV4LTJkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2JhOHVpLXJn
YmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy93ZWJnbF9jYW52YXMvdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2Nh
bnZhcy90ZXgtMmQtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcjExZl9n
MTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxm
X2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy93ZWJnbF9jYW52YXMvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBm
XzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTcyNSwxMCArNTc1LDEwIEBAIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnOHVpLXJn
X2ludGVnZXItdW5zaWduZWRfCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2Vi
Z2xfY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjE2Zi1y
Z2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWls
dXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4
LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVu
c2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93
ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9j
YW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1
NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjgtcmdiLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmds
X2NhbnZhcy90ZXgtM2QtcmdiYTE2Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTcz
OCw4ICs1ODgsOSBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaAogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9z
aG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4
LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXNyZ2I4X2FscGhhOC1y
Z2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2Qtc3JnYjgtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQorCiB3ZWJnbC9tYW55LWNvbnRleHRzLWFjY2Vzcy1hZnRlci1sb3Nz
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtY29uc29sZS13YXJu
aW5nLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtZ2MuaHRtbCBb
IEZhaWx1cmUgXQpAQCAtNzUyLDcgKzYwMyw3IEBAIHdlYnJ0Yy9jYXB0dXJlQ2FudmFzLXdlYnJ0
Yy1zb2Z0d2FyZS1oMjY0LWhpZ2guaHRtbCBbIFRpbWVvdXQgXQogd2VicnRjL2NhcHR1cmVDYW52
YXMtd2VicnRjLmh0bWwgWyBUaW1lb3V0IF0KIHdlYnJ0Yy9oMjY0LWJhc2VsaW5lLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYnJ0Yy9oMjY0LWhpZ2guaHRtbCBbIEZhaWx1cmUgXQotd2VicnRjL3ZpZGVv
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8uaHRtbCBbIFRp
bWVvdXQgXQogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLmh0bWwgWyBUaW1lb3V0IF0KLXdlYnJ0Yy92
aWRlby11bm11dGUuaHRtbCBbIFRpbWVvdXQgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
K3dlYnJ0Yy92aWRlby11bm11dGUuaHRtbCBbIFRpbWVvdXQgXQord2VicnRjL3ZpZGVvLmh0bWwg
WyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419493</attachid>
            <date>2021-02-05 21:57:26 -0800</date>
            <delta_ts>2021-02-06 00:50:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219468-20210205215725.patch</filename>
            <type>text/plain</type>
            <size>130731</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc2YWI1ZWRmOGM1NDQ3
NGUwMWFlYWJkZDNiYzU1NjkzYTM1ZGE4Ni4uMWNhNDhkMGE5NTRlYTU4MDk5NWEzOTdlMDg0Njk4
OTBiZTJkMDAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMS0wMi0wNSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEltcGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZW5kaW5nIHRoZSBHcmFwaGljc0NvbnRleHRT
dGF0ZSB0byB0aGUgR1BVUCBpcyBhIHByb2JsZW1hdGljIGJlY2F1c2UgaXQKKyAgICAgICAgaGFz
IHBvaW50ZXJzIGZvciB0aGUgZ3JhZGllbnRzIGFuZCB0aGUgcGF0dGVybnMgYW5kIGhhcyBvYmpl
Y3RzIGZvciB0aGUKKyAgICAgICAgY29sb3JzLiBIb3dldmVyIG1vc3Qgb2YgdGhlIHRpbWUgaXQg
aW5jbHVkZXMgY2hhbmdlcyBmb3IgaW5saW5lIGRhdGEgb25seQorICAgICAgICB3aGljaCBkb2Vz
IG5vdCBuZWVkIHNwZWNpYWwgZW5jb2RpbmcgYW5kIGRlY29kaW5nLiBTbyBTZXRTdGF0ZSBoYXMg
dG8KKyAgICAgICAgaGFuZGxlIHRoZSBpbmxpbmUgYW5kIHRoZSBub24taW5saW5lIGNhc2VzIGVm
ZmljaWVudGx5LiBUaGUgcGxhbiBpcyB0aGUKKyAgICAgICAgZm9sbG93aW5nOgorCisgICAgICAg
IDEuIE1vdmUgdGhlIFBPRCBtZW1iZXJzIG9mIEdyYXBoaWNzQ29udGV4dFN0YXRlIHRvIGEgbmV3
IGNsYXNzIG5hbWVkCisgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlIGFuZCBt
YWtlIEdyYXBoaWNzQ29udGV4dFN0YXRlIGEgc3VwZXIgY2xhc3MKKyAgICAgICAgICAgb2YgaXQu
IE1ha2UgR3JhcGhpY3NDb250ZXh0U3RhdGUgb3ducyBhbGwgdGhlIHRoZSBub24gUE9EIG1lbWJl
cnMuCisKKyAgICAgICAgMi4gQWRkIHRoZSBTZXRJbmxpbmVTdGF0ZSBpdGVtIGFuZCBtYWtlIGl0
IGlubGluZSBpdGVtIHNvIGl0IGJlIGFwcGVuZGVkCisgICAgICAgICAgIGlmIHRoZSBHcmFwaGlj
c0NvbnRleHRTdGF0ZSBjb250YWlucyBvbmx5IGlubGluZSBjaGFuZ2VzLgorCisgICAgICAgIDMu
IERlbGV0ZSB0aGUgaW5saW5lIFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW1zIHNpbmNlIHRoZXkg
ZG8gbm90IHByb3ZpZGUKKyAgICAgICAgICAgYSBnZW5lcmFsIHNvbHV0aW9uIGZvciBTZXRTdGF0
ZS4gRnV0dXJlIHdvcmsgaXMgdG8gbWFrZSBTZXRJbmxpbmVTdGF0ZQorICAgICAgICAgICBoYW5k
bGUgbW9yZSBjYXNlcyBmb3IgY29sb3JzIGFuZCBncmFkaWVudHMuCisKKyAgICAgICAgNC4gTWFr
ZSB0aGUgdGlsZUltYWdlIG9mIFBhdHRlcm4gYmUgYSBSZWZQdHI8TmF0aXZlSW1hZ2U+LiBCdXQg
bWFrZSBzdXJlCisgICAgICAgICAgIFBhdHRlcm46OmNyZWF0ZSgpIG1ldGhvZCBnZW5lcmF0ZXMg
dGhlIE5hdGl2ZUltYWdlIGZyb20gdGhlIEltYWdlLgorCisgICAgICAgIDUuIFJlbW92ZSBlbmNv
ZGluZyB0aGUgSW1hZ2UgZnJvbSBQYXR0ZXJuOjplbmNvZGUoKSBhbmQgcmVtb3ZlIGVuY29kaW5n
CisgICAgICAgICAgIGFuZCBkZWNvZGluZyB0aGUgSW1hZ2VIYW5kbGUgZnJvbSBXZWJLaXQuCisK
KyAgICAgICAgNi4gQWRkIGEgcHJpdmF0ZSBQYXR0ZXJuOjpjcmVhdGUoKSBtZXRob2Qgd2hpY2gg
ZG9lcyBub3QgdGFrZSB0aGUgSW1hZ2UKKyAgICAgICAgICAgYXJndW1lbnQgYW5kIGNhbGwgaXQg
ZnJvbSB0aGUgUGF0dGVybjo6ZGVjb2RlKCkgbWV0aG9kLgorCisgICAgICAgIDcuIE1ha2UgRGlz
cGxheUxpc3Q6OlJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0gZGVjaWRlIHdoZXRoZXIg
dG8gCisgICAgICAgICAgIGFwcGVuZCBhIFNldElubGluZVN0YXRlIG9yIFNldFN0YXRlIGl0ZW0u
IElmIGEgU2V0U3RhdGUgaXMgYXBwZW5kZWQsCisgICAgICAgICAgIG1ha2Ugc3VyZSB0aGUgaW1h
Z2VzIG9mIHRoZSBzdHJva2VQYXR0ZXJuIGFuZCBmaWxsUGF0dGVybiBhcmUgY2FjaGVkIAorICAg
ICAgICAgICBieSB0aGUgRGlzcGxheUxpc3QgYW5kIHRoZSBtX2RlbGVnYXRlLgorCisgICAgICAg
IDguIE1ha2UgU2V0U3RhdGU6OmVuY29kZSgpIGVuY29kZSBhbmQgZGVjb2RlIHRoZSBpZGVudGlm
aWVycyBvZiB0aGUgc3Ryb2tlCisgICAgICAgICAgIHBhdHRlcm4gaW1hZ2UgYW5kIHRoZSBmaWxs
IHBhdHRlcm4gaW1hZ2UuCisKKyAgICAgICAgOS4gTWFrZSB0aGUgUmVwbGF5ZXI6OmFwcGx5SXRl
bSgpIHJlc29sdmUgdGhlIGlkZW50aWZpZXJzIGluIHRoZSBTZXRTdGF0ZQorICAgICAgICAgICBp
dGVtIHRvIGFjdHVhbCBOYXRpdmVJbWFnZXMgYW5kIHNlbmQgdGhlbSB0byBTZXRTdGF0ZTo6YXBw
bHkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNhbnZhczo6YnVpbGRBcnJheUZvckNhbnZhc1BhdHRlcm4pOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGU6OkdyYXBoaWNzQ29u
dGV4dElubGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRl
OjpHcmFwaGljc0NvbnRleHRTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXR0ZXJuOjpQ
YXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OnNldFRpbGVJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXR0ZXJuOjp0aWxlSW1hZ2UgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1BhdHRlcm4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQYXR0ZXJuOjpkZWNvZGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWlybzo6RmlsbFNvdXJjZTo6RmlsbFNvdXJjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
dHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmNy
ZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdDo6c2hvdWxkRHVtcEZvckZsYWdzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRlcyk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6U2V0SW5saW5lU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjphcHBseSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OlNldFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRp
ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVG
aWxsR3JhZGllbnQ6OmdyYWRpZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmFwcGx5IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
OmlzSW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJ
bmxpbmVGaWxsQ29sb3I6OmFwcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0YXRlQ2hh
bmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6c3Ry
b2tlUGF0dGVybkltYWdlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0U3RhdGU6OmZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OlNldElubGluZUZpbGxD
b2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5l
RmlsbENvbG9yOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6OlNldElubGluZVN0cm9rZUNvbG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xv
cjo6Y29sb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldFN0YXRlOjpzdGF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OndpbGxBcHBlbmRJ
dGVtT2ZUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjphcHBseVNldFN0YXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVwbGF5ZXI6OmFwcGx5SXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVRpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVUaWxlOjpwbGF0Zm9ybUFwcGx5U29m
dHdhcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cGF0dGVybkZvckRlc2NyaXB0aW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmJ1aWxkUGF0dGVybik6CisKIDIwMjEtMDItMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gSWYg
dGhlIEdQVVByb2Nlc3MgY3Jhc2hlcyBkdXJpbmcgZnVsbHNjcmVlbiBwbGF5YmFjaywgdmlkZW8g
cGF1c2VzIGFuZCBleGl0cyBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmOTQxN2U1NmYxZDM1M2Fm
OGZjZGU1ZjM0NjFjMTEzZTM3Y2JjMzAuLmNhZDU1NmNjMzkyNTVmYmRlNTU4YjBmOTdlOTUwYzBk
NWE3MGIzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDItMDUgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBs
ZW1lbnQgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgLS0gRGVsZXRlIHRoZSBpbmxpbmUgU2V0U3RhdGUgRGlz
cGxheUxpc3QgaXRlbXMuCisgICAgICAgIC0tIERlbGV0ZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcg
dGhlIEltYWdlSGFuZGxlIHdoaWNoIGlzIFdlYkNvcmU6OkltYWdlLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSk6CisgICAgICAgICogU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8SW1hZ2VIYW5kbGU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEltYWdlSGFuZGxlPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIxLTAyLTA1ICBLYXRlIENoZW5leSAg
PGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6
IENvbXBsZXRpb24gaGFuZGxlciBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCB1bmRlciBXZWJLaXQ6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Zm9yRWFjaFNlc3Npb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKaW5kZXggMGM4NWY4YTgzNzY3OTY2
YmEyNmI1YzMzM2VkNjBjMDFhNTBhYTExNi4uZTVmMjIxMGFlOTg3MzNlOTg0YWI1ODRmNmY5YTNj
ODQ3YjVhODA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZh
cy5jcHAKQEAgLTEyMDIsOSArMTIwMiwxMCBAQCBSZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1
ZT4+IEluc3BlY3RvckNhbnZhczo6YnVpbGRBcnJheUZvckNhbnZhc0dyYWRpZW50KGNvbgogCiBS
ZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1ZT4+IEluc3BlY3RvckNhbnZhczo6YnVpbGRBcnJh
eUZvckNhbnZhc1BhdHRlcm4oY29uc3QgQ2FudmFzUGF0dGVybiYgY2FudmFzUGF0dGVybikKIHsK
LSAgICBJbWFnZSYgdGlsZUltYWdlID0gY2FudmFzUGF0dGVybi5wYXR0ZXJuKCkudGlsZUltYWdl
KCk7CisgICAgYXV0byYgdGlsZUltYWdlID0gY2FudmFzUGF0dGVybi5wYXR0ZXJuKCkudGlsZUlt
YWdlKCk7CisgICAgRmxvYXRSZWN0IHJlY3QgPSB7IHsgfSwgdGlsZUltYWdlLnNpemUoKSB9Owog
ICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRpbGVJbWFnZS5zaXpl
KCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwotICAgIGltYWdlQnVmZmVyLT5jb250
ZXh0KCkuZHJhd0ltYWdlKHRpbGVJbWFnZSwgRmxvYXRQb2ludCgwLCAwKSk7CisgICAgaW1hZ2VC
dWZmZXItPmNvbnRleHQoKS5kcmF3TmF0aXZlSW1hZ2UodGlsZUltYWdlLCB0aWxlSW1hZ2Uuc2l6
ZSgpLCByZWN0LCByZWN0KTsKIAogICAgIFN0cmluZyByZXBlYXQ7CiAgICAgYm9vbCByZXBlYXRY
ID0gY2FudmFzUGF0dGVybi5wYXR0ZXJuKCkucmVwZWF0WCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggMmEwNjc1
YTEzN2VhMjI2OTRmYjBkYWNmYTVjZGVkMTM3MTYxOWMzYi4uMWU1OTRjYmVlNzdiOTY3NTVmNTNi
OWY4ZjQzYTljZmI5ZDU2NjMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03NywyNiArNzcsNiBAQCBwcml2YXRl
OgogICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpm
bGFnKSAmJiAobV9zdGF0ZS5wcm9wZXJ0eSAhPSBzdGF0ZS5wcm9wZXJ0eSkpIFwKICAgICAgICAg
Y2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpmbGFnKTsKIAotR3JhcGhpY3ND
b250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKCkKLSAgICA6IHNob3VsZEFudGlhbGlh
cyh0cnVlKQotICAgICwgc2hvdWxkU21vb3RoRm9udHModHJ1ZSkKLSAgICAsIHNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250cyh0cnVlKQotICAgICwgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoZmFs
c2UpCi0jaWYgVVNFKENHKQotICAgIC8vIENvcmUgR3JhcGhpY3MgaW5jb3JyZWN0bHkgcmVuZGVy
cyBzaGFkb3dzIHdpdGggcmFkaXVzID4gOHB4ICg8cmRhcjovL3Byb2JsZW0vODEwMzQ0Mj4pLAot
ICAgIC8vIGJ1dCB3ZSBuZWVkIHRvIHByZXNlcnZlIHRoaXMgYnVnZ3kgYmVoYXZpb3IgZm9yIGNh
bnZhcyBhbmQgLXdlYmtpdC1ib3gtc2hhZG93LgotICAgICwgc2hhZG93c1VzZUxlZ2FjeVJhZGl1
cyhmYWxzZSkKLSNlbmRpZgotICAgICwgZHJhd0x1bWluYW5jZU1hc2soZmFsc2UpCi17Ci19Ci0K
LUdyYXBoaWNzQ29udGV4dFN0YXRlOjp+R3JhcGhpY3NDb250ZXh0U3RhdGUoKSA9IGRlZmF1bHQ7
Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhp
Y3NDb250ZXh0U3RhdGUoR3JhcGhpY3NDb250ZXh0U3RhdGUmJikgPSBkZWZhdWx0OwotR3JhcGhp
Y3NDb250ZXh0U3RhdGUmIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpvcGVyYXRvcj0oY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZSYgR3Jh
cGhpY3NDb250ZXh0U3RhdGU6Om9wZXJhdG9yPShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKSA9IGRl
ZmF1bHQ7Ci0KIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIEdyYXBoaWNz
Q29udGV4dFN0YXRlQ2hhbmdlOjpjaGFuZ2VzRnJvbVN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlJiBzdGF0ZSkgY29uc3QKIHsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVD
aGFuZ2VGbGFncyBjaGFuZ2VGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggNDA2NDI4ZTg0YmY0MGQ2YzVlNGYxNWFh
ZmVkYzBlMTg2YjgzMTYwMi4uYjI3YzdmYWNhZTM3MjNkYTIzNzcxYzBkMDkzYTNhNGQwMTlhMjEy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEYXNoQXJyYXkuaCIKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdy
YWRpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkltYWdlLmgi
CiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgpAQCAtNzksNyArODAsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEZsb2F0Um91bmRl
ZFJlY3Q7Ci1jbGFzcyBHcmFkaWVudDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEltcGw7CiBjbGFz
cyBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKQEAg
LTE1MCwxNiArMTUwLDcgQEAgT3B0aW9uYWw8RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU+IERvY3Vt
ZW50TWFya2VyTGluZVN0eWxlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICByZXR1cm4ge3sg
Km1vZGUsICpzaG91bGRVc2VEYXJrQXBwZWFyYW5jZSB9fTsKIH0KIAotc3RydWN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlIHsKLSAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRTdGF0ZSgp
OwotICAgIFdFQkNPUkVfRVhQT1JUIH5HcmFwaGljc0NvbnRleHRTdGF0ZSgpOwotCi0gICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRTdGF0ZShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKTsK
LQotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlJiBvcGVyYXRvcj0oY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgb3Bl
cmF0b3I9KEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOwotCitzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0
SW5saW5lU3RhdGUgewogICAgIGVudW0gQ2hhbmdlIDogdWludDMyX3QgewogICAgICAgICBTdHJv
a2VHcmFkaWVudENoYW5nZSAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDAsCiAgICAgICAgIFN0
cm9rZVBhdHRlcm5DaGFuZ2UgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMSwKQEAgLTE4Niwx
MiArMTc3LDIwIEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAjZW5kaWYKICAgICB9
OwogICAgIHVzaW5nIFN0YXRlQ2hhbmdlRmxhZ3MgPSBPcHRpb25TZXQ8Q2hhbmdlPjsKLQotICAg
IFJlZlB0cjxHcmFkaWVudD4gc3Ryb2tlR3JhZGllbnQ7Ci0gICAgUmVmUHRyPFBhdHRlcm4+IHN0
cm9rZVBhdHRlcm47CiAgICAgCi0gICAgUmVmUHRyPEdyYWRpZW50PiBmaWxsR3JhZGllbnQ7Ci0g
ICAgUmVmUHRyPFBhdHRlcm4+IGZpbGxQYXR0ZXJuOworICAgIEdyYXBoaWNzQ29udGV4dElubGlu
ZVN0YXRlKCkKKyAgICAgICAgOiBzaG91bGRBbnRpYWxpYXModHJ1ZSkKKyAgICAgICAgLCBzaG91
bGRTbW9vdGhGb250cyh0cnVlKQorICAgICAgICAsIHNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250
cyh0cnVlKQorICAgICAgICAsIHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKGZhbHNlKQorI2lmIFVT
RShDRykKKyAgICAgICAgLy8gQ29yZSBHcmFwaGljcyBpbmNvcnJlY3RseSByZW5kZXJzIHNoYWRv
d3Mgd2l0aCByYWRpdXMgPiA4cHggKDxyZGFyOi8vcHJvYmxlbS84MTAzNDQyPiksCisgICAgICAg
IC8vIGJ1dCB3ZSBuZWVkIHRvIHByZXNlcnZlIHRoaXMgYnVnZ3kgYmVoYXZpb3IgZm9yIGNhbnZh
cyBhbmQgLXdlYmtpdC1ib3gtc2hhZG93LgorICAgICAgICAsIHNoYWRvd3NVc2VMZWdhY3lSYWRp
dXMoZmFsc2UpCisjZW5kaWYKKyAgICAgICAgLCBkcmF3THVtaW5hbmNlTWFzayhmYWxzZSkKKyAg
ICB7CisgICAgfQogCiAgICAgRmxvYXRTaXplIHNoYWRvd09mZnNldDsKIApAQCAtMjAwLDEwICsx
OTksNiBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogCiAgICAgVGV4dERyYXdpbmdN
b2RlRmxhZ3MgdGV4dERyYXdpbmdNb2RlIHsgVGV4dERyYXdpbmdNb2RlOjpGaWxsIH07CiAKLSAg
ICBDb2xvciBzdHJva2VDb2xvciB7IENvbG9yOjpibGFjayB9OwotICAgIENvbG9yIGZpbGxDb2xv
ciB7IENvbG9yOjpibGFjayB9OwotICAgIENvbG9yIHNoYWRvd0NvbG9yOwotCiAgICAgQWZmaW5l
VHJhbnNmb3JtIHN0cm9rZUdyYWRpZW50U3BhY2VUcmFuc2Zvcm07CiAgICAgQWZmaW5lVHJhbnNm
b3JtIGZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtOwogICAgIApAQCAtMjI4LDYgKzIyMywyNCBA
QCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogI2VuZGlmCiB9OwogCitzdHJ1Y3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgewor
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlKCkgPSBkZWZhdWx0OworICAgIEdyYXBoaWNzQ29udGV4
dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlJiBvdGhlcikKKyAgICAgICAg
OiBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZShvdGhlcikKKyAgICB7CisgICAgfQorCisgICAg
UmVmUHRyPEdyYWRpZW50PiBzdHJva2VHcmFkaWVudDsKKyAgICBSZWZQdHI8UGF0dGVybj4gc3Ry
b2tlUGF0dGVybjsKKworICAgIFJlZlB0cjxHcmFkaWVudD4gZmlsbEdyYWRpZW50OworICAgIFJl
ZlB0cjxQYXR0ZXJuPiBmaWxsUGF0dGVybjsKKworICAgIENvbG9yIHN0cm9rZUNvbG9yIHsgQ29s
b3I6OmJsYWNrIH07CisgICAgQ29sb3IgZmlsbENvbG9yIHsgQ29sb3I6OmJsYWNrIH07CisgICAg
Q29sb3Igc2hhZG93Q29sb3I7Cit9OworCiBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFu
Z2UgewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKCkgPSBkZWZhdWx0OwogICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0
ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgZmxhZ3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCA0MzZiMzdkNmM4ZWM2ZjAwZjRm
ZWI0ZGQzNmY0YTI5MjNjN2Y5NmVhLi5kYTAxMGYzZmRjZDA2ODA1NjI4Yjg2MGNhZTMyYmQ5YmU5
YTQ1NDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTIx
MCwxMSArMjEwLDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1fYW5p
bWF0aW9uU3RhcnRUaW1lcjsKIH07CiAKLWNsYXNzIEltYWdlSGFuZGxlIHsKLXB1YmxpYzoKLSAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlOwotfTsKLQogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEltYWdlJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKaW5kZXgg
Nzk2YTA3YzE4NmI2MmZmNGU2YjZlYTI2MTA3ZmY5ZmM0YzQzOGU3MS4uMmMxNTE0NGMyNjRkZDE1
M2MwMjk0YzAxZGQ4MDA0NTVlYjdlMjEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5jcHAKQEAgLTI3LDI0ICsyNyw3MyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlBhdHRlcm4uaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZWY8UGF0dGVybj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxJbWFnZT4m
JiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKQoreworICAgIGlmIChhdXRv
IG5hdGl2ZUltYWdlID0gdGlsZUltYWdlLT5uYXRpdmVJbWFnZSgpKQorICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBQYXR0ZXJuKG5hdGl2ZUltYWdlLnJlbGVhc2VOb25OdWxsKCksIHJlcGVh
dFgsIHJlcGVhdFkpKTsKKworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKHRpbGVJbWFnZS0+c2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKKwor
ICAgIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gdGlsZUltYWdlLT5pbWFnZU9ic2VydmVyKCk7
CisKKyAgICBpZiAodGlsZUltYWdlLT5pc1NWR0ltYWdlKCkpIHsKKyAgICAgICAgdGlsZUltYWdl
LT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgICAgICB0aWxlSW1hZ2UtPnNldENvbnRh
aW5lclNpemUodGlsZUltYWdlLT5zaXplKCkpOworICAgIH0KKworICAgIGltYWdlQnVmZmVyLT5j
b250ZXh0KCkuZHJhd0ltYWdlKHRpbGVJbWFnZSwgRmxvYXRQb2ludCgwLCAwKSk7CisKKyAgICBp
ZiAodGlsZUltYWdlLT5pc1NWR0ltYWdlKCkpCisgICAgICAgIHRpbGVJbWFnZS0+c2V0SW1hZ2VP
YnNlcnZlcihvYnNlcnZlcik7CisKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0gSW1hZ2VCdWZmZXI6
OnNpbmtJbnRvTmF0aXZlSW1hZ2UoV1RGTW92ZShpbWFnZUJ1ZmZlcikpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFBhdHRlcm4obmF0aXZlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgcmVwZWF0
WCwgcmVwZWF0WSkpOworfQorCitSZWY8UGF0dGVybj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxOYXRp
dmVJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKQogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFBhdHRlcm4oV1RGTW92ZSh0aWxlSW1hZ2UpLCByZXBlYXRY
LCByZXBlYXRZKSk7CiB9CiAKLVBhdHRlcm46OlBhdHRlcm4oUmVmPEltYWdlPiYmIGltYWdlLCBi
b29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSkKK1JlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVhdGUo
Ym9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blNwYWNlVHJhbnNmb3JtYXRpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF0dGVy
bihyZXBlYXRYLCByZXBlYXRZLCBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikpOworfQorCitQ
YXR0ZXJuOjpQYXR0ZXJuKFJlZjxOYXRpdmVJbWFnZT4mJiBpbWFnZSwgYm9vbCByZXBlYXRYLCBi
b29sIHJlcGVhdFkpCiAgICAgOiBtX3RpbGVJbWFnZShXVEZNb3ZlKGltYWdlKSkKICAgICAsIG1f
cmVwZWF0WChyZXBlYXRYKQogICAgICwgbV9yZXBlYXRZKHJlcGVhdFkpCiB7CiB9CiAKK1BhdHRl
cm46OlBhdHRlcm4oYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pCisgICAgOiBtX3JlcGVhdFgocmVwZWF0
WCkKKyAgICAsIG1fcmVwZWF0WShyZXBlYXRZKQorICAgICwgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zv
cm1hdGlvbihwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikKK3sKK30KKwogUGF0dGVybjo6flBh
dHRlcm4oKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgUGF0dGVybjo6c2V0VGlsZUltYWdlKFJlZjxOYXRp
dmVJbWFnZT4mJiB0aWxlSW1hZ2UpCit7CisgICAgQVNTRVJUKCFtX3RpbGVJbWFnZSk7CisgICAg
bV90aWxlSW1hZ2UgPSBXVEZNb3ZlKHRpbGVJbWFnZSk7Cit9CisKK05hdGl2ZUltYWdlJiBQYXR0
ZXJuOjp0aWxlSW1hZ2UoKSBjb25zdAoreworICAgIEFTU0VSVChtX3RpbGVJbWFnZSk7CisgICAg
cmV0dXJuICptX3RpbGVJbWFnZTsKK30KKwogdm9pZCBQYXR0ZXJuOjpzZXRQYXR0ZXJuU3BhY2VU
cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlv
bikKIHsKICAgICBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uID0gcGF0dGVyblNwYWNlVHJh
bnNmb3JtYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QYXR0ZXJuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgK
aW5kZXggMmE1NjNkYTI2MTdkMWIwNDI0OGI5MGFiMDYzOWRiMmNhZjlhODhjMC4uZjhlMzJlMWFl
MjM5MGZjNDgxNTFiYjc4N2E1MmUyY2M0MDQ4Mjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BhdHRlcm4uaApAQCAtNTMsMTQgKzUzLDE1IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNs
YXNzIEltYWdlOwotY2xhc3MgSW1hZ2VIYW5kbGU7CiAKIGNsYXNzIFBhdHRlcm4gZmluYWwgOiBw
dWJsaWMgUmVmQ291bnRlZDxQYXR0ZXJuPiB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxQYXR0ZXJuPiBjcmVhdGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwgYm9vbCBy
ZXBlYXRYLCBib29sIHJlcGVhdFkpOworICAgIHN0YXRpYyBSZWY8UGF0dGVybj4gY3JlYXRlKFJl
ZjxJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBz
dGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShSZWY8TmF0aXZlSW1hZ2U+JiYgdGlsZUltYWdlLCBi
b29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhdHRlcm4o
KTsKIAotICAgIEltYWdlJiB0aWxlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX3RpbGVJbWFnZS5n
ZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGlsZUltYWdlKFJlZjxOYXRpdmVJ
bWFnZT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgTmF0aXZlSW1hZ2UmIHRpbGVJbWFnZSgpIGNv
bnN0OwogCiAgICAgLy8gUGF0dGVybiBzcGFjZSBpcyBhbiBhYnN0cmFjdCBzcGFjZSB0aGF0IG1h
cHMgdG8gdGhlIGRlZmF1bHQgdXNlciBzcGFjZSBieSB0aGUgdHJhbnNmb3JtYXRpb24gJ3VzZXJT
cGFjZVRyYW5zZm9ybWF0aW9uJwogI2lmICFVU0UoRElSRUNUMkQpCkBAIC03NywyMCArNzgsMjAg
QEAgcHVibGljOgogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxS
ZWY8UGF0dGVybj4+IGRlY29kZShEZWNvZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgUGF0dGVybihS
ZWY8SW1hZ2U+JiYsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0
WSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbiA9IHsg
fSk7CiAKLSAgICBSZWY8SW1hZ2U+IG1fdGlsZUltYWdlOwotICAgIEFmZmluZVRyYW5zZm9ybSBt
X3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOworICAgIFBhdHRlcm4oUmVmPE5hdGl2ZUltYWdl
PiYmLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSk7CisgICAgUGF0dGVybihib29sIHJlcGVh
dFgsIGJvb2wgcmVwZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CisKKyAgICBSZWZQdHI8
TmF0aXZlSW1hZ2U+IG1fdGlsZUltYWdlOwogICAgIGJvb2wgbV9yZXBlYXRYOwogICAgIGJvb2wg
bV9yZXBlYXRZOworICAgIEFmZmluZVRyYW5zZm9ybSBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0
aW9uOwogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUGF0dGVybjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgSW1hZ2VIYW5kbGUgaW1hZ2VIYW5kbGU7
Ci0gICAgaW1hZ2VIYW5kbGUuaW1hZ2UgPSBtX3RpbGVJbWFnZS5wdHIoKTsKLSAgICBlbmNvZGVy
IDw8IGltYWdlSGFuZGxlOwogICAgIGVuY29kZXIgPDwgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zvcm1h
dGlvbjsKICAgICBlbmNvZGVyIDw8IG1fcmVwZWF0WDsKICAgICBlbmNvZGVyIDw8IG1fcmVwZWF0
WTsKQEAgLTk5LDExICsxMDAsNiBAQCB2b2lkIFBhdHRlcm46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIE9wdGlvbmFsPFJlZjxQYXR0ZXJu
Pj4gUGF0dGVybjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8SW1h
Z2VIYW5kbGU+IGltYWdlSGFuZGxlOwotICAgIGRlY29kZXIgPj4gaW1hZ2VIYW5kbGU7Ci0gICAg
aWYgKCFpbWFnZUhhbmRsZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQogICAgIE9w
dGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CiAgICAg
ZGVjb2RlciA+PiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKICAgICBpZiAoIXBhdHRlcm5T
cGFjZVRyYW5zZm9ybWF0aW9uKQpAQCAtMTE5LDkgKzExNSw3IEBAIE9wdGlvbmFsPFJlZjxQYXR0
ZXJuPj4gUGF0dGVybjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFyZXBlYXRZ
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgYXV0byBwYXR0ZXJuID0gUGF0
dGVybjo6Y3JlYXRlKGltYWdlSGFuZGxlLT5pbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCAqcmVwZWF0
WCwgKnJlcGVhdFkpOwotICAgIHBhdHRlcm4tPnNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSgqcGF0
dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOwotICAgIHJldHVybiBwYXR0ZXJuOworICAgIHJldHVy
biBQYXR0ZXJuOjpjcmVhdGUoKnJlcGVhdFgsICpyZXBlYXRZLCAqcGF0dGVyblNwYWNlVHJhbnNm
b3JtYXRpb24pOwogfQogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAppbmRleCA3
MzIwZGExY2JmZTkyODVmZDEyNmYwMDI0MTQzOGM0ZGJhMzllY2M5Li43ZmFlNzc3YzM5NjZiNGM0
ODZkZTIyMzJiMTkxMTMyMzFmZDkyZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKQEAgLTU2Nyw3
ICs1NjcsNyBAQCBGaWxsU291cmNlOjpGaWxsU291cmNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiBzdGF0ZSkKICAgICAgICAgcGF0dGVybi5vYmplY3QgPSBhZG9wdFJlZihzdGF0ZS5maWxs
UGF0dGVybi0+Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKEFmZmluZVRyYW5zZm9ybSgpKSk7CiAKICAg
ICAgICAgYXV0byYgcGF0dGVybkltYWdlID0gc3RhdGUuZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgp
OwotICAgICAgICBwYXR0ZXJuLnNpemUgPSBGbG9hdFNpemUocGF0dGVybkltYWdlLndpZHRoKCks
IHBhdHRlcm5JbWFnZS5oZWlnaHQoKSk7CisgICAgICAgIHBhdHRlcm4uc2l6ZSA9IHBhdHRlcm5J
bWFnZS5zaXplKCk7CiAgICAgICAgIHBhdHRlcm4udHJhbnNmb3JtID0gc3RhdGUuZmlsbFBhdHRl
cm4tPnBhdHRlcm5TcGFjZVRyYW5zZm9ybSgpOwogICAgICAgICBwYXR0ZXJuLnJlcGVhdFggPSBz
dGF0ZS5maWxsUGF0dGVybi0+cmVwZWF0WCgpOwogICAgICAgICBwYXR0ZXJuLnJlcGVhdFkgPSBz
dGF0ZS5maWxsUGF0dGVybi0+cmVwZWF0WSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKaW5kZXggNTYwZjc0N2E4
ZmI2NDgxYmU0YTMwMTg1ODUwMGFhOWZhMTYwZjc4Ni4uMTIzNDI0NzRhNjUxOGIzZmUwZDk1NTdm
YzNmY2MwMjI3NGI4Y2EyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCkBAIC0zNSwxMSArMzUsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjYWlyb19wYXR0ZXJuX3QqIFBhdHRlcm46OmNyZWF0ZVBsYXRm
b3JtUGF0dGVybihjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKSBjb25zdAogewotICAgIGF1dG8gbmF0
aXZlSW1hZ2UgPSB0aWxlSW1hZ2UoKS5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAg
IGlmICghbmF0aXZlSW1hZ2UpCisgICAgUGxhdGZvcm1JbWFnZVB0ciBwbGF0Zm9ybUltYWdlID0g
dGlsZUltYWdlKCkucGxhdGZvcm1JbWFnZSgpOworICAgIGlmICghcGxhdGZvcm1JbWFnZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4gPSBj
YWlyb19wYXR0ZXJuX2NyZWF0ZV9mb3Jfc3VyZmFjZShuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFn
ZSgpLmdldCgpKTsKKyAgICBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4gPSBjYWlyb19wYXR0ZXJu
X2NyZWF0ZV9mb3Jfc3VyZmFjZShwbGF0Zm9ybUltYWdlLmdldCgpKTsKIAogICAgIC8vIGNhaXJv
IG1lcmdlcyBwYXR0ZXIgc3BhY2UgYW5kIHVzZXIgc3BhY2UgaXRzZWxmCiAgICAgY2Fpcm9fbWF0
cml4X3QgbWF0cml4ID0gdG9DYWlyb01hdHJpeChtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRl
cm5DRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cu
Y3BwCmluZGV4IDY5NTRjNTY2NTcwYWQ3YWU2YzFlNzYwZjA3ODdkMzc3MGFjYWE2OTQuLmVlMTc1
NjQwOWFjYjhlN2RiZDQ5NzcyZjQ0MjBlYzkwY2MwMGI0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcApAQCAtNTcsMTYgKzU3LDEz
IEBAIHN0YXRpYyB2b2lkIHBhdHRlcm5SZWxlYXNlQ2FsbGJhY2sodm9pZCogaW5mbykKIAogQ0dQ
YXR0ZXJuUmVmIFBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybihjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHVzZXJTcGFjZVRyYW5zZm9ybWF0aW9uKSBjb25zdAogewotICAgIEZsb2F0UmVjdCB0
aWxlUmVjdCA9IHRpbGVJbWFnZSgpLnJlY3QoKTsKKyAgICBGbG9hdFJlY3QgdGlsZVJlY3QgPSB7
IHsgfSwgdGlsZUltYWdlKCkuc2l6ZSgpIH07CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVy
blRyYW5zZm9ybSA9IHVzZXJTcGFjZVRyYW5zZm9ybWF0aW9uICogbV9wYXR0ZXJuU3BhY2VUcmFu
c2Zvcm1hdGlvbjsKICAgICBwYXR0ZXJuVHJhbnNmb3JtLnNjYWxlTm9uVW5pZm9ybSgxLCAtMSk7
CiAgICAgcGF0dGVyblRyYW5zZm9ybS50cmFuc2xhdGUoMCwgLXRpbGVSZWN0LmhlaWdodCgpKTsK
IAotICAgIFBsYXRmb3JtSW1hZ2VQdHIgcGxhdGZvcm1JbWFnZTsKLSAgICBpZiAoYXV0byBuYXRp
dmVJbWFnZSA9IHRpbGVJbWFnZSgpLm5hdGl2ZUltYWdlKCkpCi0gICAgICAgIHBsYXRmb3JtSW1h
Z2UgPSBuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpOwotICAgIAorICAgIFBsYXRmb3JtSW1h
Z2VQdHIgcGxhdGZvcm1JbWFnZSA9IHRpbGVJbWFnZSgpLnBsYXRmb3JtSW1hZ2UoKTsKICAgICBp
ZiAoIXBsYXRmb3JtSW1hZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0LmNwcAppbmRleCBkMTUzZGZhNDVjMjFhZDg3M2U0ZDQ4NDY3MWYzZDA0YWNiNzQ4
NTRiLi41MmUxMThkYzljMDM0ODE1NDYyMzJiMWVlNTVjY2VmYjM4Zjg2Y2I1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTkxLDEwICs5MSwxMCBAQCBib29sIERpc3BsYXlMaXN0Ojpz
aG91bGREdW1wRm9yRmxhZ3MoQXNUZXh0RmxhZ3MgZmxhZ3MsIEl0ZW1IYW5kbGUgaXRlbSkKICAg
ICAgICAgaWYgKCEoZmxhZ3MgJiBBc1RleHRGbGFnOjpJbmNsdWRlc1BsYXRmb3JtT3BlcmF0aW9u
cykpIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHN0YXRlSXRlbSA9IGl0ZW0uZ2V0PFNldFN0
YXRlPigpOwogICAgICAgICAgICAgLy8gRklYTUU6IGZvciBub3csIG9ubHkgZHJvcCB0aGUgaXRl
bSBpZiB0aGUgb25seSBzdGF0ZS1jaGFuZ2UgZmxhZ3MgYXJlIHBsYXRmb3JtLXNwZWNpZmljLgot
ICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkKKyAgICAg
ICAgICAgIGlmIChzdGF0ZUl0ZW0uc3RhdGVDaGFuZ2UoKS5tX2NoYW5nZUZsYWdzID09IEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0
YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4
ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQorICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZUNo
YW5nZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250c0NoYW5nZSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC0yMDMsMTYgKzIwMywxMiBAQCB2b2lkIERpc3Bs
YXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBwZW5kPENv
bmNhdGVuYXRlQ1RNPihpdGVtLmdldDxDb25jYXRlbmF0ZUNUTT4oKSk7CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1cm4gYXBwZW5kPFNldENUTT4oaXRlbS5nZXQ8U2V0
Q1RNPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAg
ICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PihpdGVtLmdldDxTZXRJbmxp
bmVGaWxsR3JhZGllbnQ+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KGl0ZW0uZ2V0PFNl
dElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tl
Q29sb3I6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KGl0ZW0u
Z2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJv
a2VUaGlja25lc3M6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPihp
dGVtLmdldDxTZXRTdHJva2VUaGlja25lc3M+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElu
bGluZVN0YXRlOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGluZVN0YXRlPihpdGVtLmdl
dDxTZXRJbmxpbmVTdGF0ZT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6CiAgICAg
ICAgIHJldHVybiBhcHBlbmQ8U2V0U3RhdGU+KGl0ZW0uZ2V0PFNldFN0YXRlPigpKTsKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CisgICAgICAgIHJldHVybiBhcHBlbmQ8
U2V0U3Ryb2tlVGhpY2tuZXNzPihpdGVtLmdldDxTZXRTdHJva2VUaGlja25lc3M+KCkpOwogICAg
IGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0TGlu
ZUNhcD4oaXRlbS5nZXQ8U2V0TGluZUNhcD4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGlu
ZURhc2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4
IDUwYzhkOGY3NTc3YTE2NzA1ZWNmODU1YWQxNjk4MThiNmRmOThiYmEuLjliNmFlYmVjZWM4NTI2
N2RiNmZhN2Y4NjNlZDUwYmQ1MDFhY2QxYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC03MiwyNiArNzIsMTggQEAgdm9pZCBJdGVtSGFuZGxlOjph
cHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGdldDxTZXRDVE0+KCkuYXBw
bHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVGaWxsR3JhZGll
bnQ+KCkuYXBwbHkoY29udGV4dCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6
IHsKKyAgICAgICAgZ2V0PFNldElubGluZVN0YXRlPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjog
ewotICAgICAgICBnZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNv
bG9yOiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKS5hcHBseShjb250ZXh0
KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRT
dHJva2VUaGlja25lc3M6IHsKICAgICAgICAgZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKS5hcHBs
eShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRTdGF0ZTogewotICAgICAgICBnZXQ8U2V0U3RhdGU+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDogewogICAg
ICAgICBnZXQ8U2V0TGluZUNhcD4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTIxLDcgKzExMyw3IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkNs
aXBUb0ltYWdlQnVmZmVyOiB7Ci0gICAgICAgIGdldDxDbGlwVG9JbWFnZUJ1ZmZlcj4oKS5hcHBs
eShjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDogewpAQCAtMTQwLDE1
ICsxMzIsMTUgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOiB7Ci0gICAgICAgIGdldDxEcmF3SW1hZ2VC
dWZmZXI+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFn
ZTogewotICAgICAgICBnZXQ8RHJhd05hdGl2ZUltYWdlPigpLmFwcGx5KGNvbnRleHQpOworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjogewotICAgICAgICBnZXQ8RHJhd1BhdHRlcm4+KCku
YXBwbHkoY29udGV4dCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdSZWN0OiB7CkBAIC00ODYsMTYg
KzQ3OCw4IEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVzdHJveSgpCiAgICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldENUTT46OnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6
IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8
U2V0SW5saW5lRmlsbENvbG9yPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDogewotICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVGaWxsR3JhZGll
bnQ+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Ry
aXZpYWxseV9kZXN0cnVjdGlibGU8U2V0SW5saW5lU3Ryb2tlQ29sb3I+Ojp2YWx1ZSk7CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0SW5saW5lU3RhdGU+Ojp2YWx1ZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDogewpA
QCAtNjYyLDEyICs2NDYsOCBAQCBib29sIEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1IYW5kbGUg
ZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTY2FsZT4oKnRoaXMs
IGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPFNldENUTT4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6
OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZp
bGxDb2xvcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxHcmFkaWVudDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZpbGxHcmFk
aWVudD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0
cm9rZUNvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lU3Ryb2tlQ29sb3I+
KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToK
KyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZVN0YXRlPigqdGhpcywgaXRlbU9mZnNl
dCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPFNldExpbmVDYXA+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRMaW5lSm9pbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRl
eCBjMGM3M2I4M2JkNTJlYWEwNGE5NTE3ODE4MDQ0NTM5NDdiYmM5NWU5Li45ZGY2OTdiMjEwMGZl
MjIxZTFmZTRjMTI2M2RjYTQwMWIyODU3MTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuY3BwCkBAIC00OCwxNiArNDgsMTIgQEAgc3RhdGljIHNpemVfdCBzaXplT2ZJ
dGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKENvbmNhdGVu
YXRlQ1RNKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06CiAgICAgICAgIHJldHVybiBzaXpl
b2YoU2V0Q1RNKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0g
ICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5saW5lRmlsbEdyYWRpZW50KTsKLSAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5s
aW5lRmlsbENvbG9yKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoK
LSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVTdHJva2VDb2xvcik7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0
cm9rZVRoaWNrbmVzcyk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAg
ICAgIHJldHVybiBzaXplb2YoU2V0SW5saW5lU3RhdGUpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNl
dFN0YXRlOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0YXRlKTsKKyAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRTdHJva2VUaGlja25lc3M6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3Ryb2tl
VGhpY2tuZXNzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1
cm4gc2l6ZW9mKFNldExpbmVDYXApOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgpA
QCAtMTg5LDkgKzE4NSw3IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBlKQogICAg
IGNhc2UgSXRlbVR5cGU6OlNhdmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lU3RhdGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRMaW5lRGFzaDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKQEAgLTMw
Miw5ICsyOTYsNyBAQCBib29sIGlzSW5saW5lSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2Ug
SXRlbVR5cGU6OlNhdmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Rh
dGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRMaW5lSm9pbjoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXggMGU5NDdhMDZkYWI1YTJkZmI0NzY5MDgy
ZjhjYWM1NDhhZjg5MzQzYi4uNjE1ZTNhYjM0YjgxZDliOTdhMDliNTZmMDA0NDcxZmZkY2JlMDgx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC0zNiwxMSArMzYs
OSBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgU2NhbGUsCiAgICAgQ29u
Y2F0ZW5hdGVDVE0sCiAgICAgU2V0Q1RNLAotICAgIFNldElubGluZUZpbGxHcmFkaWVudCwKLSAg
ICBTZXRJbmxpbmVGaWxsQ29sb3IsCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IsCi0gICAgU2V0
U3Ryb2tlVGhpY2tuZXNzLAorICAgIFNldElubGluZVN0YXRlLAogICAgIFNldFN0YXRlLAorICAg
IFNldFN0cm9rZVRoaWNrbmVzcywKICAgICBTZXRMaW5lQ2FwLAogICAgIFNldExpbmVEYXNoLAog
ICAgIFNldExpbmVKb2luLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4
IDIxM2RiOWM4Y2Y0MmVjMWFlMmQxMzM5Mzc1ZDlmNTYzMGU3NmQ3NDMuLjdhMDIzNDg4N2Y1M2Q0
ZDY5NjRkN2NlMjkwMzFmMDIxMjBlYzVlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHAKQEAgLTExNSw4OCArMTE1LDI0IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25jYXRlbmF0ZUNUTSYgaXRlbSkKICAgICByZXR1
cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50
KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVu
dFNwYWNlVHJhbnNmb3JtKQotICAgIDogbV9kYXRhKGdyYWRpZW50LmRhdGEoKSkKLSAgICAsIG1f
Z3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgICwgbV9z
cHJlYWRNZXRob2QoZ3JhZGllbnQuc3ByZWFkTWV0aG9kKCkpCi0gICAgLCBtX2NvbG9yU3RvcENv
dW50KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGdyYWRpZW50LnN0b3BzKCkuc2l6ZSgpKSkKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KTsK
LSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAg
ICAgICAgbV9vZmZzZXRzW2ldID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5vZmZzZXQ7Ci0gICAgICAg
IG1fY29sb3JzW2ldID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5jb2xvci5hc0lubGluZSgpOwotICAg
IH0KLX0KLQotU2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoZmxv
YXQgb2Zmc2V0c1ttYXhDb2xvclN0b3BDb3VudF0sIFNSR0JBPHVpbnQ4X3Q+IGNvbG9yc1ttYXhD
b2xvclN0b3BDb3VudF0sIGNvbnN0IEdyYWRpZW50OjpEYXRhJiBkYXRhLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0sIEdyYWRpZW50U3ByZWFkTWV0aG9kIHNw
cmVhZE1ldGhvZCwgdWludDhfdCBjb2xvclN0b3BDb3VudCkKLSAgICA6IG1fZGF0YShkYXRhKQot
ICAgICwgbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtKGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCi0g
ICAgLCBtX3NwcmVhZE1ldGhvZChzcHJlYWRNZXRob2QpCi0gICAgLCBtX2NvbG9yU3RvcENvdW50
KGNvbG9yU3RvcENvdW50KQotewotICAgIFJFTEVBU0VfQVNTRVJUKG1fY29sb3JTdG9wQ291bnQg
PD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29s
b3JTdG9wQ291bnQ7ICsraSkgewotICAgICAgICBtX29mZnNldHNbaV0gPSBvZmZzZXRzW2ldOwot
ICAgICAgICBtX2NvbG9yc1tpXSA9IGNvbG9yc1tpXTsKLSAgICB9Ci19Ci0KLVJlZjxHcmFkaWVu
dD4gU2V0SW5saW5lRmlsbEdyYWRpZW50OjpncmFkaWVudCgpIGNvbnN0CitTZXRJbmxpbmVTdGF0
ZTo6U2V0SW5saW5lU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmIHN0YXRl
LCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykKKyAg
ICA6IG1fc3RhdGUoc3RhdGUpCisgICAgLCBtX2NoYW5nZUZsYWdzKGNoYW5nZUZsYWdzKQogewot
ICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRlKEdyYWRpZW50OjpEYXRhKG1fZGF0
YSkpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkK
LSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCh7IG1fb2Zmc2V0c1tpXSwgQ29sb3IobV9j
b2xvcnNbaV0pIH0pOwotICAgIGdyYWRpZW50LT5zZXRTcHJlYWRNZXRob2QobV9zcHJlYWRNZXRo
b2QpOwotICAgIHJldHVybiBncmFkaWVudDsKIH0KIAotdm9pZCBTZXRJbmxpbmVGaWxsR3JhZGll
bnQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3ZvaWQgU2V0SW5saW5l
U3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAgICBpZiAo
bV9jb2xvclN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCkKLSAgICAgICAgY29udGV4dC5z
ZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQoKSwgbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKLX0K
LQotYm9vbCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKGNvbnN0IEdyYWRpZW50JiBn
cmFkaWVudCkKLXsKLSAgICBpZiAoZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkgPiBTZXRJbmxpbmVG
aWxsR3JhZGllbnQ6Om1heENvbG9yU3RvcENvdW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBmb3IgKGF1dG8mIGNvbG9yU3RvcCA6IGdyYWRpZW50LnN0b3BzKCkpIHsKLSAgICAgICAg
aWYgKCFjb2xvclN0b3AuY29sb3IuaXNJbmxpbmUoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNo
YW5nZSBzdGF0ZUNoYW5nZSA9IHsgbV9zdGF0ZSwgbV9jaGFuZ2VGbGFncyB9OworICAgIHN0YXRl
Q2hhbmdlLmFwcGx5KGNvbnRleHQpOwogfQogCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lRmlsbEdyYWRpZW50JikKK3N0YXRpYyBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVTdGF0
ZSYpCiB7CiAgICAgLy8gRklYTUU6IER1bXAgZ3JhZGllbnQgZGF0YS4KICAgICByZXR1cm4gdHM7
CiB9CiAKLXZvaWQgU2V0SW5saW5lRmlsbENvbG9yOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQpIGNvbnN0Ci17Ci0gICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IoKSk7Ci19Ci0K
LXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJ
bmxpbmVGaWxsQ29sb3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBz
dGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KLXZvaWQgU2V0SW5saW5lU3Ryb2tl
Q29sb3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsKLSAgICBjb250
ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKCkpOwotfQotCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lU3Ryb2tlQ29sb3ImIHN0YXRl
KQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAgICBy
ZXR1cm4gdHM7Ci19Ci0KIHZvaWQgU2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseShHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3Mo
bV90aGlja25lc3MpOwpAQCAtMjA5LDIzICsxNDUsMzEgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0cm9rZVRoaWNrbmVzcyYgc3RhdGUp
CiB9CiAKIFNldFN0YXRlOjpTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3Rh
dGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQotICAgIDog
bV9zdGF0ZShzdGF0ZSwgZmxhZ3MpCisgICAgOiBtX3N0YXRlQ2hhbmdlKHN0YXRlLCBmbGFncykK
KyAgICAsIG1fc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcihzdGF0ZS5zdHJva2VQYXR0ZXJu
ID8gc3RhdGUuc3Ryb2tlUGF0dGVybi0+dGlsZUltYWdlKCkucmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKCkgOiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKKyAgICAsIG1fZmlsbFBh
dHRlcm5JbWFnZUlkZW50aWZpZXIoc3RhdGUuZmlsbFBhdHRlcm4gPyBzdGF0ZS5maWxsUGF0dGVy
bi0+dGlsZUltYWdlKCkucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgOiBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKSkKIHsKIH0KIAotU2V0U3RhdGU6OlNldFN0YXRlKGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBzdGF0ZUNoYW5nZSkKLSAgICA6IG1fc3RhdGUoc3Rh
dGVDaGFuZ2UpCitTZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVD
aGFuZ2UmIHN0YXRlQ2hhbmdlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0
dGVybkltYWdlSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxQYXR0
ZXJuSW1hZ2VJZGVudGlmaWVyKQorICAgIDogbV9zdGF0ZUNoYW5nZShzdGF0ZUNoYW5nZSkKKyAg
ICAsIG1fc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcihzdHJva2VQYXR0ZXJuSW1hZ2VJZGVu
dGlmaWVyKQorICAgICwgbV9maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcihmaWxsUGF0dGVybklt
YWdlSWRlbnRpZmllcikKIHsKIH0KIAotdm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0KSBjb25zdAordm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBOYXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSog
ZmlsbFBhdHRlcm5JbWFnZSkgY29uc3QKIHsKLSAgICBtX3N0YXRlLmFwcGx5KGNvbnRleHQpOwor
ICAgIGlmIChtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiAmJiBzdHJva2VQYXR0
ZXJuSW1hZ2UpCisgICAgICAgIG1fc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VQYXR0ZXJuLT5z
ZXRUaWxlSW1hZ2UobWFrZVJlZigqc3Ryb2tlUGF0dGVybkltYWdlKSk7CisgICAgaWYgKG1fc3Rh
dGVDaGFuZ2UubV9zdGF0ZS5maWxsUGF0dGVybiAmJiBmaWxsUGF0dGVybkltYWdlKQorICAgICAg
ICBtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4tPnNldFRpbGVJbWFnZShtYWtlUmVm
KCpmaWxsUGF0dGVybkltYWdlKSk7CisgICAgbV9zdGF0ZUNoYW5nZS5hcHBseShjb250ZXh0KTsK
IH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFNldFN0YXRlJiBzdGF0ZSkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBTZXRTdGF0ZSYgc2V0U3RhdGUpCiB7Ci0gICAgdHMgPDwgc3RhdGUuc3Rh
dGUoKTsKKyAgICB0cyA8PCBzZXRTdGF0ZS5zdGF0ZUNoYW5nZSgpOwogICAgIHJldHVybiB0czsK
IH0KIApAQCAtMzAxLDExICsyNDUsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgQ2xpcE91dCYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAK
LU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdy
YXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0K
IHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
V2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQu
Y2xpcFRvSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIG1fZGVzdGluYXRpb25SZWN0KTsKQEAgLTQy
MCwxMSArMzU5LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IERyYXdHbHlwaHMmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi1OT19SRVRV
Uk5fRFVFX1RPX0FTU0VSVCB2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250
ZXh0JikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogdm9pZCBEcmF3
SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1h
Z2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd0ltYWdlQnVm
ZmVyKGltYWdlQnVmZmVyLCBtX2Rlc3RpbmF0aW9uUmVjdCwgbV9zcmNSZWN0LCBtX29wdGlvbnMp
OwpAQCAtNDM4LDExICszNzIsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgRHJhd0ltYWdlQnVmZmVyJiBpdGVtKQogICAgIHJldHVybiB0czsK
IH0KIAotTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5
KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19
Ci0KIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IE5hdGl2ZUltYWdlJiBpbWFnZSkgY29uc3QKIHsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFn
ZShpbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0
aW9ucyk7CkBAIC00NjksMTEgKzM5OCw2IEBAIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hCiB7CiB9
CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBo
aWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZv
aWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTmF0aXZlSW1h
Z2UmIGltYWdlKSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd1BhdHRlcm4oaW1hZ2UsIG1faW1h
Z2VTaXplLCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3BhdHRlcm5UcmFuc2Zvcm0sIG1f
cGhhc2UsIG1fc3BhY2luZywgbV9vcHRpb25zKTsKQEAgLTEwMjMsMTEgKzk0Nyw5IEBAIHN0YXRp
YyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQog
ICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOiB0cyA8PCAic2NhbGUiOyBicmVhazsKICAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRDVE06IHRzIDw8ICJzZXQtY3RtIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVt
VHlwZTo6Q29uY2F0ZW5hdGVDVE06IHRzIDw8ICJjb25jYXRlbnRhdGUtY3RtIjsgYnJlYWs7Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB0cyA8PCAic2V0LWlubGlu
ZS1maWxsLWdyYWRpZW50IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bENvbG9yOiB0cyA8PCAic2V0LWlubGluZS1maWxsLWNvbG9yIjsgYnJlYWs7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLXN0cm9rZS1j
b2xvciI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogdHMg
PDwgInNldC1zdHJva2UtdGhpY2tuZXNzIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lU3RhdGU6IHRzIDw8ICJzZXQtaW5saW5lLXN0YXRlIjsgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3RhdGU6IHRzIDw8ICJzZXQtc3RhdGUiOyBicmVhazsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHRzIDw8ICJzZXQtc3Ryb2tlLXRoaWNrbmVzcyI7
IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHRzIDw8ICJzZXQtbGluZS1j
YXAiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDogdHMgPDwgInNldC1s
aW5lLWRhc2giOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjogdHMgPDwg
InNldC1saW5lLWpvaW4iOyBicmVhazsKQEAgLTExMDYsMjEgKzEwMjgsMTUgQEAgVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2Ug
SXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxDb25jYXRl
bmF0ZUNUTT4oKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5l
RmlsbEdyYWRpZW50OgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGll
bnQ+KCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAgICAgIHRzIDw8
IGl0ZW0uZ2V0PFNldElubGluZVN0YXRlPigpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElu
bGluZUZpbGxDb2xvcj4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZVN0cm9r
ZUNvbG9yPigpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgorICAgICAgICB0cyA8PCBp
dGVtLmdldDxTZXRTdGF0ZT4oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdHJva2VUaGlj
a25lc3M+KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgot
ICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdGF0ZT4oKTsKLSAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0TGlu
ZUNhcD4oKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApp
bmRleCAxZTAzZGU3NjQ5MzVlZTM1YTJkMGQwYzI5MmEyMzQ0NzcyNDdmNDE4Li4yMmVhZWZlNmFm
ODczYjdkZDFiMDg0YTkwYmY2MDY5YTJkZWU2ZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKQEAgLTE2Nyw2NSArMTY3LDE5IEBAIHByaXZhdGU6CiAgICAgQWZmaW5lVHJhbnNm
b3JtIG1fdHJhbnNmb3JtOwogfTsKIAotY2xhc3MgU2V0SW5saW5lRmlsbEdyYWRpZW50IHsKK2Ns
YXNzIFNldElubGluZVN0YXRlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1U
eXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZVN0YXRl
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50OF90IG1heENvbG9yU3RvcENvdW50ID0gNDsKIAotICAgIFNldElubGluZUZp
bGxHcmFkaWVudChjb25zdCBHcmFkaWVudCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGll
bnRTcGFjZVRyYW5zZm9ybSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0SW5saW5lRmlsbEdyYWRp
ZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xv
cnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGllbnRTcHJlYWRNZXRob2Qs
IHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpOwotCi0gICAgc3RhdGljIGJvb2wgaXNJbmxpbmUoY29u
c3QgR3JhZGllbnQmKTsKLSAgICBSZWY8R3JhZGllbnQ+IGdyYWRpZW50KCkgY29uc3Q7CisgICAg
U2V0SW5saW5lU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmLCBHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKICAgICB2b2lkIGFwcGx5KEdyYXBo
aWNzQ29udGV4dCYpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGZsb2F0IG1fb2Zmc2V0c1ttYXhD
b2xvclN0b3BDb3VudF07Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvcnNbbWF4Q29sb3JTdG9w
Q291bnRdOwotICAgIEdyYWRpZW50OjpEYXRhIG1fZGF0YTsKLSAgICBBZmZpbmVUcmFuc2Zvcm0g
bV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtOwotICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIG1fc3By
ZWFkTWV0aG9kIHsgR3JhZGllbnRTcHJlYWRNZXRob2Q6OlBhZCB9OwotICAgIHVpbnQ4X3QgbV9j
b2xvclN0b3BDb3VudCB7IDAgfTsKLX07Ci0KLWNsYXNzIFNldElubGluZUZpbGxDb2xvciB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBl
OjpTZXRJbmxpbmVGaWxsQ29sb3I7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5l
SXRlbSA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBm
YWxzZTsKLQotICAgIFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEp
Ci0gICAgICAgIDogbV9jb2xvckRhdGEoY29sb3JEYXRhKQotICAgIHsKLSAgICB9Ci0KLSAgICBD
b2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xvckRhdGEgfTsgfQotICAgIHZvaWQg
YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU1JHQkE8dWlu
dDhfdD4gbV9jb2xvckRhdGE7Ci19OwotCi1jbGFzcyBTZXRJbmxpbmVTdHJva2VDb2xvciB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBl
OjpTZXRJbmxpbmVTdHJva2VDb2xvcjsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxp
bmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9
IGZhbHNlOwotCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JE
YXRhKQotICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKLSAgICB7Ci0gICAgfQotCi0g
ICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiB7IG1fY29sb3JEYXRhIH07IH0KLQotICAg
IHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU1JH
QkE8dWludDhfdD4gbV9jb2xvckRhdGE7CisgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUg
bV9zdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBtX2No
YW5nZUZsYWdzOwogfTsKIAogY2xhc3MgU2V0U3Ryb2tlVGhpY2tuZXNzIHsKQEAgLTI1NCwzMCAr
MjA4LDMzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRl
bSA9IGZhbHNlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3ND
b250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFu
Z2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZUNoYW5nZSYsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VQYXR0ZXJuSW1h
Z2VJZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFn
ZUlkZW50aWZpZXIpOwogICAgIAotICAgIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdl
JiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KLQotICAgIHN0YXRpYyB2b2lkIGJ1
aWxkZXJTdGF0ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYs
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKKyAgICBjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlQ2hhbmdlOyB9CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRl
cm5JbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3N0cm9rZVBhdHRlcm5JbWFnZUlk
ZW50aWZpZXI7IH0KKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5J
bWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlm
aWVyOyB9CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wU3RhdGVDaGFuZ2VzKFdURjo6VGV4dFN0cmVh
bSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MpOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxTZXRTdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIAotICAgIHZvaWQgYXBwbHkoR3Jh
cGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBO
YXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSogZmlsbFBhdHRlcm5J
bWFnZSkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Ug
bV9zdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBtX3N0YXRlQ2hhbmdlOwor
ICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3N0cm9rZVBhdHRlcm5JbWFnZUlkZW50
aWZpZXI7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fZmlsbFBhdHRlcm5JbWFn
ZUlkZW50aWZpZXI7CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBTZXRTdGF0
ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgYXV0byBjaGFuZ2VGbGFn
cyA9IG1fc3RhdGUubV9jaGFuZ2VGbGFnczsKKyAgICBhdXRvIGNoYW5nZUZsYWdzID0gbV9zdGF0
ZUNoYW5nZS5tX2NoYW5nZUZsYWdzOwogICAgIGVuY29kZXIgPDwgY2hhbmdlRmxhZ3M7CiAKLSAg
ICBhdXRvJiBzdGF0ZSA9IG1fc3RhdGUubV9zdGF0ZTsKKyAgICBhdXRvJiBzdGF0ZSA9IG1fc3Rh
dGVDaGFuZ2UubV9zdGF0ZTsKKyAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPigmc3RhdGUpLCBzaXplb2YoR3JhcGhpY3NDb250
ZXh0SW5saW5lU3RhdGUpLCAxKTsKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7CiAgICAgICAgIGVuY29k
ZXIgPDwgISFzdGF0ZS5zdHJva2VHcmFkaWVudDsKQEAgLTI4Nyw4ICsyNDQsMTAgQEAgdm9pZCBT
ZXRTdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBpZiAoY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2Up
KSB7CiAgICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5zdHJva2VQYXR0ZXJuOwotICAgICAgICBp
ZiAoc3RhdGUuc3Ryb2tlUGF0dGVybikKKyAgICAgICAgaWYgKHN0YXRlLnN0cm9rZVBhdHRlcm4p
IHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgbV9zdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVy
OwogICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGUuc3Ryb2tlUGF0dGVybjsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlKSkgewpAQCAtMjk5LDYwICsyNTgsMjAgQEAgdm9pZCBT
ZXRTdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBpZiAoY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hhbmdlKSkg
ewogICAgICAgICBlbmNvZGVyIDw8ICEhc3RhdGUuZmlsbFBhdHRlcm47Ci0gICAgICAgIGlmIChz
dGF0ZS5maWxsUGF0dGVybikKKyAgICAgICAgaWYgKHN0YXRlLmZpbGxQYXR0ZXJuKSB7CisgICAg
ICAgICAgICBlbmNvZGVyIDw8IG1fZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CiAgICAgICAg
ICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5maWxsUGF0dGVybjsKKyAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93
Q2hhbmdlKSkgewotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd09mZnNldDsKLSAgICAg
ICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dCbHVyOwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRl
LnNoYWRvd0NvbG9yOwotI2lmIFVTRShDRykKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFk
b3dzVXNlTGVnYWN5UmFkaXVzOwotI2VuZGlmIC8vIFVTRShDRykKLSAgICB9Ci0KLSAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVz
c0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc3Ryb2tlVGhpY2tuZXNzOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpUZXh0RHJh
d2luZ01vZGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnRleHREcmF3aW5nTW9k
ZTsKLQogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3Ryb2tlQ29sb3JDaGFuZ2UpKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZUNvbG9y
OwogCiAgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpG
aWxsQ29sb3JDaGFuZ2UpKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbGxDb2xvcjsKIAot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tl
U3R5bGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZVN0eWxlOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUnVs
ZUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuZmlsbFJ1bGU7Ci0KLSAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJh
dGlvbkNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY29tcG9zaXRlT3BlcmF0b3I7
Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkJs
ZW5kTW9kZUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuYmxlbmRNb2RlOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpJbWFnZUlu
dGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5pbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpBbHBoYUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3Rh
dGUuYWxwaGE7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlNob3VsZEFudGlhbGlhc0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUu
c2hvdWxkQW50aWFsaWFzOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTaG91bGRTbW9vdGhGb250c0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIg
PDwgc3RhdGUuc2hvdWxkU21vb3RoRm9udHM7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5n
ZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRz
OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
aGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUu
c2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKQorICAgICAgICBlbmNvZGVyIDw8IHN0
YXRlLnNoYWRvd0NvbG9yOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMzY2LDYg
KzI4NSwxMyBAQCBPcHRpb25hbDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHN0YXRlQ2hhbmdlOwogICAg
IHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MgPSAqY2hhbmdlRmxhZ3M7CiAKKyAgICBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsKKyAgICBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CisK
KyAgICBhdXRvJiBzdGF0ZSA9IHN0YXRlQ2hhbmdlLm1fc3RhdGU7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmc3RhdGUp
LCBzaXplb2YoR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUpLCAxKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKwogICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpIHsKICAgICAg
ICAgT3B0aW9uYWw8Ym9vbD4gaGFzU3Ryb2tlR3JhZGllbnQ7CiAgICAgICAgIGRlY29kZXIgPj4g
aGFzU3Ryb2tlR3JhZGllbnQ7CkBAIC0zODcsMTMgKzMxMywxNyBAQCBPcHRpb25hbDxTZXRTdGF0
ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBpZiAoIWhhc1N0
cm9rZVBhdHRlcm4uaGFzVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAKLSAgICAgICAgaWYgKGhhc1N0cm9rZVBhdHRlcm4udmFsdWUoKSkgewotICAgICAgICAgICAg
YXV0byBzdHJva2VQYXR0ZXJuID0gUGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpOwotICAgICAgICAg
ICAgaWYgKCFzdHJva2VQYXR0ZXJuKQotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgICAgIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW1hZ2VJ
ZGVudGlmaWVyOworICAgICAgICBkZWNvZGVyID4+IGltYWdlSWRlbnRpZmllcjsKKyAgICAgICAg
aWYgKCFpbWFnZUlkZW50aWZpZXIuaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAKLSAgICAgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVy
biA9IFdURk1vdmUoKnN0cm9rZVBhdHRlcm4pOwotICAgICAgICB9CisgICAgICAgIGF1dG8gc3Ry
b2tlUGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgaWYgKCFzdHJv
a2VQYXR0ZXJuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBz
dHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyID0gKmltYWdlSWRlbnRpZmllcjsKKyAgICAgICAg
c3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gV1RGTW92ZSgqc3Ryb2tlUGF0dGVy
bik7CiAgICAgfQogCiAgICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMo
R3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpIHsKQEAgLTQxNiw2NCAr
MzQ2LDE4IEBAIE9wdGlvbmFsPFNldFN0YXRlPiBTZXRTdGF0ZTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgICAgIGRlY29kZXIgPj4gaGFzRmlsbFBhdHRlcm47CiAgICAgICAgIGlmICgh
aGFzRmlsbFBhdHRlcm4uaGFzVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0KLSAgICAgICAgaWYgKGhhc0ZpbGxQYXR0ZXJuLnZhbHVlKCkpIHsKLSAgICAgICAgICAg
IGF1dG8gZmlsbFBhdHRlcm4gPSBQYXR0ZXJuOjpkZWNvZGUoZGVjb2Rlcik7Ci0gICAgICAgICAg
ICBpZiAoIWZpbGxQYXR0ZXJuKQotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
Ci0KLSAgICAgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4gPSBXVEZNb3Zl
KCpmaWxsUGF0dGVybik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2Uu
bV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdl
KSkgewotICAgICAgICBPcHRpb25hbDxGbG9hdFNpemU+IHNoYWRvd09mZnNldDsKLSAgICAgICAg
ZGVjb2RlciA+PiBzaGFkb3dPZmZzZXQ7Ci0gICAgICAgIGlmICghc2hhZG93T2Zmc2V0KQotICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnNoYWRvd09mZnNldCA9ICpzaGFkb3dPZmZzZXQ7Ci0KLSAgICAgICAgT3B0aW9uYWw8Zmxv
YXQ+IHNoYWRvd0JsdXI7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93Qmx1cjsKLSAgICAgICAg
aWYgKCFzaGFkb3dCbHVyKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAg
ICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd0JsdXIgPSAqc2hhZG93Qmx1cjsKLQotICAg
ICAgICBPcHRpb25hbDxDb2xvcj4gc2hhZG93Q29sb3I7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hh
ZG93Q29sb3I7Ci0gICAgICAgIGlmICghc2hhZG93Q29sb3IpCisgICAgICAgIAorICAgICAgICBP
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGltYWdlSWRlbnRpZmllcjsKKyAg
ICAgICAgZGVjb2RlciA+PiBpbWFnZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghaW1hZ2VJZGVu
dGlmaWVyLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0g
ICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93Q29sb3IgPSAqc2hhZG93Q29sb3I7Ci0K
LSNpZiBVU0UoQ0cpCi0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NVc2VMZWdhY3lSYWRp
dXM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSAgICAgICAg
aWYgKCFzaGFkb3dzVXNlTGVnYWN5UmFkaXVzKQorICAgICAgICBhdXRvIGZpbGxQYXR0ZXJuID0g
UGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBpZiAoIWZpbGxQYXR0ZXJuKQogICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnNoYWRvd3NVc2VMZWdhY3lSYWRpdXMgPSAqc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSNl
bmRpZiAvLyBVU0UoQ0cpCi0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxh
Z3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSkp
IHsKLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IHN0cm9rZVRoaWNrbmVzczsKLSAgICAgICAgZGVj
b2RlciA+PiBzdHJva2VUaGlja25lc3M7Ci0gICAgICAgIGlmICghc3Ryb2tlVGhpY2tuZXNzKQot
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5t
X3N0YXRlLnN0cm9rZVRoaWNrbmVzcyA9ICpzdHJva2VUaGlja25lc3M7Ci0gICAgfQotCi0gICAg
aWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlRleHREcmF3aW5nTW9kZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8VGV4dERyYXdp
bmdNb2RlRmxhZ3M+IHRleHREcmF3aW5nTW9kZTsKLSAgICAgICAgZGVjb2RlciA+PiB0ZXh0RHJh
d2luZ01vZGU7Ci0gICAgICAgIGlmICghdGV4dERyYXdpbmdNb2RlKQotICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnRleHREcmF3
aW5nTW9kZSA9IFdURk1vdmUoKnRleHREcmF3aW5nTW9kZSk7CisgICAgICAgIGZpbGxQYXR0ZXJu
SW1hZ2VJZGVudGlmaWVyID0gKmltYWdlSWRlbnRpZmllcjsKKyAgICAgICAgc3RhdGVDaGFuZ2Uu
bV9zdGF0ZS5maWxsUGF0dGVybiA9IFdURk1vdmUoKmZpbGxQYXR0ZXJuKTsKICAgICB9CiAKICAg
ICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKSB7CkBAIC00OTQsOTYgKzM3OCwxNiBAQCBPcHRpb25h
bDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBz
dGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxDb2xvciA9ICpmaWxsQ29sb3I7CiAgICAgfQogCi0gICAg
aWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0cm9rZVN0eWxlQ2hhbmdlKSkgewotICAgICAgICBTdHJva2VTdHlsZSBzdHJva2VTdHls
ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdHJva2VTdHlsZSkpCi0gICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ry
b2tlU3R5bGUgPSBzdHJva2VTdHlsZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9j
aGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFJ1bGVDaGFuZ2Up
KSB7Ci0gICAgICAgIE9wdGlvbmFsPFdpbmRSdWxlPiBmaWxsUnVsZTsKLSAgICAgICAgZGVjb2Rl
ciA+PiBmaWxsUnVsZTsKLSAgICAgICAgaWYgKCFmaWxsUnVsZSkKLSAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUnVsZSA9
ICpmaWxsUnVsZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6Q29tcG9zaXRlT3BlcmF0aW9uQ2hhbmdlKSkg
ewotICAgICAgICBPcHRpb25hbDxDb21wb3NpdGVPcGVyYXRvcj4gY29tcG9zaXRlT3BlcmF0b3I7
Ci0gICAgICAgIGRlY29kZXIgPj4gY29tcG9zaXRlT3BlcmF0b3I7Ci0gICAgICAgIGlmICghY29t
cG9zaXRlT3BlcmF0b3IpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAg
ICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuY29tcG9zaXRlT3BlcmF0b3IgPSAqY29tcG9zaXRlT3Bl
cmF0b3I7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkJsZW5kTW9kZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0
aW9uYWw8QmxlbmRNb2RlPiBibGVuZE1vZGU7Ci0gICAgICAgIGRlY29kZXIgPj4gYmxlbmRNb2Rl
OwotICAgICAgICBpZiAoIWJsZW5kTW9kZSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5ibGVuZE1vZGUgPSAqYmxlbmRNb2Rl
OwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpJbWFnZUludGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlKSkgewot
ICAgICAgICBPcHRpb25hbDxJbnRlcnBvbGF0aW9uUXVhbGl0eT4gaW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eTsKLSAgICAgICAgZGVjb2RlciA+PiBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5Owot
ICAgICAgICBpZiAoIWltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpCi0gICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSA9ICppbWFnZUludGVycG9sYXRpb25RdWFsaXR5OwotICAgIH0KLQot
ICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpBbHBoYUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IGFscGhhOwot
ICAgICAgICBkZWNvZGVyID4+IGFscGhhOwotICAgICAgICBpZiAoIWFscGhhKQotICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmFs
cGhhID0gKmFscGhhOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXNDaGFuZ2UpKSB7
Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNob3VsZEFudGlhbGlhczsKLSAgICAgICAgZGVjb2Rl
ciA+PiBzaG91bGRBbnRpYWxpYXM7Ci0gICAgICAgIGlmICghc2hvdWxkQW50aWFsaWFzKQotICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnNob3VsZEFudGlhbGlhcyA9ICpzaG91bGRBbnRpYWxpYXM7Ci0gICAgfQotCi0gICAgaWYg
KHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlNob3VsZFNtb290aEZvbnRzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91
bGRTbW9vdGhGb250czsKLSAgICAgICAgZGVjb2RlciA+PiBzaG91bGRTbW9vdGhGb250czsKLSAg
ICAgICAgaWYgKCFzaG91bGRTbW9vdGhGb250cykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRTbW9vdGhGb250cyA9
ICpzaG91bGRTbW9vdGhGb250czsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFu
dGl6ZUZvbnRzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRTdWJwaXhl
bFF1YW50aXplRm9udHM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU3VicGl4ZWxRdWFudGl6
ZUZvbnRzOwotICAgICAgICBpZiAoIXNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cykKLSAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0
ZS5zaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHMgPSAqc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZv
bnRzOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSkpIHsK
LSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgICAg
IGRlY29kZXIgPj4gc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgICAgIGlmICghc2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMpCisgICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKKyAgICAgICAgT3B0
aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOworICAgICAgICBkZWNvZGVyID4+IHNoYWRvd0NvbG9y
OworICAgICAgICBpZiAoIXNoYWRvd0NvbG9yKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zID0gKnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnNoYWRvd0NvbG9yID0gKnNoYWRvd0NvbG9yOwogICAgIH0KIAotICAgIHJldHVybiB7IHN0
YXRlQ2hhbmdlIH07CisgICAgcmV0dXJuIHt7IHN0YXRlQ2hhbmdlLCBzdHJva2VQYXR0ZXJuSW1h
Z2VJZGVudGlmaWVyLCBmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllciB9fTsKIH0KIAogY2xhc3Mg
U2V0TGluZUNhcCB7CkBAIC03NTcsOCArNTYxLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogCi0gICAg
Tk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25z
dDsKLQogcHJpdmF0ZToKICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1
ZmZlcklkZW50aWZpZXI7CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb25SZWN0OwpAQCAtMTAz
OSw4ICs4NDEsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYs
IFdlYkNvcmU6OkltYWdlQnVmZmVyJikgY29uc3Q7CiAKLSAgICBOT19SRVRVUk5fRFVFX1RPX0FT
U0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwotCiAgICAgT3B0aW9uYWw8
RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0K
ICAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4
dCYpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAKQEAgLTEwNzIsNyArODcy
LDYgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHZhbGlkYXRlIElt
YWdlUGFpbnRpbmdPcHRpb25zLgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICEh
bV9pbWFnZUlkZW50aWZpZXI7IH0KIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQg
YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0Nv
bnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBn
bG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KQEAgLTExMDQsNyAr
OTAzLDYgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHZhbGlkYXRl
IEltYWdlUGFpbnRpbmdPcHRpb25zLgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJu
ICEhbV9pbWFnZUlkZW50aWZpZXI7IH0KIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZv
aWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGlj
c0NvbnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0
PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KQEAgLTIzMDEs
MTEgKzIwOTksOSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U2NhbGUsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE0sCiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTSwKLSAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudCwKLSAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvciwKLSAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yLAotICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzLAorICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGUsCiAgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdGF0ZSwKKyAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcywKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVDYXAsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRMaW5lRGFzaCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldExpbmVKb2luLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CmluZGV4IGVkYTBiNTU5ODM1ZTBkODllZDBhNTdlNThlNTNjZjEzODk2MzU3MWIuLjQxZmE3NjIy
NmFlNjAzNThiMjA1Y2NkM2I4NjRmNzI4ZDVkYzZkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTYwLDQ5ICs2MCw0MCBAQCB2b2lkIFJlY29yZGVyOjpw
dXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwg
Y29uc3QgVwogICAgIGFwcGVuZDxQdXRJbWFnZURhdGE+KGlucHV0Rm9ybWF0LCBpbWFnZURhdGEs
IHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7CiB9CiAKLXN0YXRpYyBib29sIGNvbnRh
aW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5n
ZSYgY2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdl
RmxhZ3MpCitzdGF0aWMgYm9vbCBjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCiB7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBpbmxp
bmVTdGF0ZUNoYW5nZUZsYWdzIHsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9r
ZVRoaWNrbmVzc0NoYW5nZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUdy
YWRpZW50Q2hhbmdlLAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVy
bkNoYW5nZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5n
ZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hhbmdlLAogICAg
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UsCiAgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UsCi0gICAgICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTaGFkb3dDaGFuZ2UKICAgICB9OwogCi0gICAgaWYgKGNoYW5nZUZsYWdzICE9IChjaGFu
Z2VGbGFncyAmIGlubGluZVN0YXRlQ2hhbmdlRmxhZ3MpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
cm9rZUNvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLnN0cm9rZUNvbG9yLmlzSW5saW5l
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0
YXRlLmZpbGxDb2xvci5pc0lubGluZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVu
dENoYW5nZSkKLSAgICAgICAgJiYgKCFjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50IHx8ICFT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRp
ZW50KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIHJl
dHVybiAhY2hhbmdlRmxhZ3MuY29udGFpbnNBbnkoaW5saW5lU3RhdGVDaGFuZ2VGbGFncyk7CiB9
CiAKLXZvaWQgUmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZUNoYW5nZSYgY2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hh
bmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCit2b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0
ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykKIHsKLSAgICBpZiAoIWNvbnRhaW5zT25s
eUlubGluZVN0YXRlQ2hhbmdlcyhjaGFuZ2VzLCBjaGFuZ2VGbGFncykpIHsKLSAgICAgICAgYXBw
ZW5kPFNldFN0YXRlPihjaGFuZ2VzLm1fc3RhdGUsIGNoYW5nZUZsYWdzKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0SW5saW5lU3Ry
b2tlQ29sb3I+KGNoYW5nZXMubV9zdGF0ZS5zdHJva2VDb2xvci5hc0lubGluZSgpKTsKLQotICAg
IGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlVGhp
Y2tuZXNzQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldFN0cm9rZVRoaWNrbmVzcz4oY2hhbmdl
cy5tX3N0YXRlLnN0cm9rZVRoaWNrbmVzcyk7CisgICAgaWYgKGNvbnRhaW5zT25seUlubGluZVN0
YXRlQ2hhbmdlcyhjaGFuZ2VGbGFncykpCisgICAgICAgIGFwcGVuZDxTZXRJbmxpbmVTdGF0ZT4o
c3RhdGUsIGNoYW5nZUZsYWdzKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHN0YXRlLnN0cm9r
ZVBhdHRlcm4pIHsKKyAgICAgICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICAgICAgICAg
IG1fZGVsZWdhdGUtPmNhY2hlTmF0aXZlSW1hZ2Uoc3RhdGUuc3Ryb2tlUGF0dGVybi0+dGlsZUlt
YWdlKCkpOworICAgICAgICAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZU5hdGl2ZUltYWdlKHN0YXRl
LnN0cm9rZVBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgfQogCi0gICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpKQot
ICAgICAgICBhcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihjaGFuZ2VzLm1fc3RhdGUuZmlsbENv
bG9yLmFzSW5saW5lKCkpOworICAgICAgICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pIHsKKyAgICAg
ICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICAgICAgICAgIG1fZGVsZWdhdGUtPmNhY2hl
TmF0aXZlSW1hZ2Uoc3RhdGUuZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgICAg
IG1fZGlzcGxheUxpc3QuY2FjaGVOYXRpdmVJbWFnZShzdGF0ZS5maWxsUGF0dGVybi0+dGlsZUlt
YWdlKCkpOworICAgICAgICB9CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ+KCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50LCBjaGFuZ2Vz
Lm1fc3RhdGUuZmlsbEdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pOworICAgICAgICBhcHBlbmQ8U2V0
U3RhdGU+KHN0YXRlLCBjaGFuZ2VGbGFncyk7CisgICAgfQogfQogCiB2b2lkIFJlY29yZGVyOjp3
aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBlKQpAQCAtMTE5LDcgKzExMCw3IEBAIHZv
aWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZXNGcm9tTGFzdFN0
YXRlID0gc3RhdGVDaGFuZ2VzLmNoYW5nZXNGcm9tU3RhdGUoY3VycmVudFN0YXRlKCkubGFzdERy
YXdpbmdTdGF0ZSk7CiAgICAgICAgIGlmIChjaGFuZ2VzRnJvbUxhc3RTdGF0ZSkgewogICAgICAg
ICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJwcmUtZHJhd2lu
Zywgc2F2aW5nIHN0YXRlICIgPDwgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Uoc3RhdGVDaGFu
Z2VzLm1fc3RhdGUsIGNoYW5nZXNGcm9tTGFzdFN0YXRlKSk7Ci0gICAgICAgICAgICBhcHBlbmRT
dGF0ZUNoYW5nZUl0ZW0oc3RhdGVDaGFuZ2VzLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSk7CisgICAg
ICAgICAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oc3RhdGVDaGFuZ2VzLm1fc3RhdGUsIGNoYW5n
ZXNGcm9tTGFzdFN0YXRlKTsKICAgICAgICAgICAgIHN0YXRlQ2hhbmdlcy5tX2NoYW5nZUZsYWdz
ID0geyB9OwogICAgICAgICAgICAgY3VycmVudFN0YXRlKCkubGFzdERyYXdpbmdTdGF0ZSA9IHN0
YXRlQ2hhbmdlcy5tX3N0YXRlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaAppbmRleCA4OWE5OTA4NmFhZDExZWFkZTAzNzVmMWRmMTg2NGQzMzMzMTc5NThi
Li43ZmNlYTQyN2Q0MzE3YmNhZDBiMDhhMzQ0NjI2ZjEwZGRmMzBmMTZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSk7
CiAKLSAgICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZUNoYW5nZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKKyAg
ICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYs
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKIAogICAgIEZsb2F0UmVj
dCBleHRlbnRGcm9tTG9jYWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggMzI1ZGI5NzM5ZTlm
Y2YyMTMxZTkxNGU2YWU1Yzg1YTgyZWJhZTFjOS4uMzQ2NDM2MmQ2NzdkNGQ2Yzg0NzJlZDlhN2Rh
MzVkODUxNWFmODdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNw
cApAQCAtNzAsNiArNzAsMjkgQEAgaW5saW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXI+IGFwcGx5TmF0aXZlSW1hZ2VJdGVtKEdyYXBoaWMKICAgICByZXR1cm4g
cmVzb3VyY2VJZGVudGlmaWVyOwogfQogCitpbmxpbmUgc3RhdGljIE9wdGlvbmFsPFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlTZXRTdGF0ZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBOYXRpdmVJbWFnZUhhc2hNYXAmIG5hdGl2ZUltYWdlcywgSXRlbUhhbmRs
ZSBpdGVtKQoreworICAgIGF1dG8mIHNldFN0YXRlSXRlbSA9IGl0ZW0uZ2V0PFNldFN0YXRlPigp
OworCisgICAgTmF0aXZlSW1hZ2UqIHN0cm9rZVBhdHRlcm5JbWFnZSA9IG51bGxwdHI7CisgICAg
TmF0aXZlSW1hZ2UqIGZpbGxQYXR0ZXJuSW1hZ2UgPSBudWxscHRyOworICAgIAorICAgIGlmIChh
dXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRlSXRlbS5zdHJva2VQYXR0ZXJuSW1hZ2VJ
ZGVudGlmaWVyKCkpIHsKKyAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlID0gbmF0aXZlSW1hZ2Vz
LmdldChyZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICBpZiAoIXN0cm9rZVBhdHRlcm5JbWFn
ZSkKKyAgICAgICAgICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7CisgICAgfQorCisgICAg
aWYgKGF1dG8gcmVzb3VyY2VJZGVudGlmaWVyID0gc2V0U3RhdGVJdGVtLmZpbGxQYXR0ZXJuSW1h
Z2VJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgZmlsbFBhdHRlcm5JbWFnZSA9IG5hdGl2ZUltYWdl
cy5nZXQocmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFmaWxsUGF0dGVybkltYWdl
KQorICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBz
ZXRTdGF0ZUl0ZW0uYXBwbHkoY29udGV4dCwgc3Ryb2tlUGF0dGVybkltYWdlLCBmaWxsUGF0dGVy
bkltYWdlKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiB0ZW1wbGF0ZTxjbGFzcyBU
PgogaW5saW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFw
cGx5Rm9udEl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250UmVuZGVyaW5n
UmVzb3VyY2VNYXAmIGZvbnRzLCBJdGVtSGFuZGxlIGl0ZW0pCiB7CkBAIC0xMDUsMTQgKzEyOCwy
MCBAQCBzdGQ6OnBhaXI8T3B0aW9uYWw8U3RvcFJlcGxheVJlYXNvbj4sIE9wdGlvbmFsPFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IFJlcAogICAgICAgICByZXR1cm4geyBXVEY6Om51bGxv
cHQsIFdURjo6bnVsbG9wdCB9OwogICAgIH0KIAotICAgIGlmIChpdGVtLmlzPERyYXdHbHlwaHM+
KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9
IGFwcGx5Rm9udEl0ZW08RHJhd0dseXBocz4obV9jb250ZXh0LCBtX2ZvbnRzLCBpdGVtKSkKKyAg
ICBpZiAoaXRlbS5pczxEcmF3UGF0dGVybj4oKSkgeworICAgICAgICBpZiAoYXV0byBtaXNzaW5n
Q2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08RHJhd1BhdHRl
cm4+KG1fY29udGV4dCwgbV9uYXRpdmVJbWFnZXMsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJu
IHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3Np
bmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IFdURjo6bnVs
bG9wdCwgV1RGOjpudWxsb3B0IH07CiAgICAgfQogCi0gICAgaWYgKGl0ZW0uaXM8RHJhd1BhdHRl
cm4+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmll
ciA9IGFwcGx5TmF0aXZlSW1hZ2VJdGVtPERyYXdQYXR0ZXJuPihtX2NvbnRleHQsIG1fbmF0aXZl
SW1hZ2VzLCBpdGVtKSkKKyAgICBpZiAoaXRlbS5pczxTZXRTdGF0ZT4oKSkgeworICAgICAgICBp
ZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlTZXRTdGF0ZUl0
ZW0obV9jb250ZXh0LCBtX25hdGl2ZUltYWdlcywgaXRlbSkpCisgICAgICAgICAgICByZXR1cm4g
eyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2lu
Z0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKKyAgICAgICAgcmV0dXJuIHsgV1RGOjpudWxs
b3B0LCBXVEY6Om51bGxvcHQgfTsKKyAgICB9CisKKyAgICBpZiAoaXRlbS5pczxEcmF3R2x5cGhz
PigpKSB7CisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIg
PSBhcHBseUZvbnRJdGVtPERyYXdHbHlwaHM+KG1fY29udGV4dCwgbV9mb250cywgaXRlbSkpCiAg
ICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3Vy
Y2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAg
cmV0dXJuIHsgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQgfTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXgg
YWZiZTcwNmFkZGMyMjdkYTEwY2I3ODgyODg4NmMxMjliMTkyNDFjYy4uZjMzY2NlYjExMjMyODBj
ODEyNWNiMjg0YjZlNzgwNzNkMDFiODFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lk
IEZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICB0aWxlSW1hZ2VDb250ZXh0LnRy
YW5zbGF0ZSgtaW5NYXhFZmZlY3RMb2NhdGlvbi54KCksIC1pbk1heEVmZmVjdExvY2F0aW9uLnko
KSk7CiAgICAgdGlsZUltYWdlQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmluQnVmZmVyLCBpbi0+
YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigpKTsKIAotICAgIGF1dG8gdGlsZUltYWdlQ29w
eSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b0ltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CisgICAg
YXV0byB0aWxlSW1hZ2VDb3B5ID0gSW1hZ2VCdWZmZXI6OnNpbmtJbnRvTmF0aXZlSW1hZ2UoV1RG
TW92ZSh0aWxlSW1hZ2UpKTsKICAgICBpZiAoIXRpbGVJbWFnZUNvcHkpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAppbmRleCBhZDRlOGRkOWQ3MWJhYzFhOTIxOTJkYTdhZTZhMTlkNDM0YTcxOWUyLi5hMTRlNWUw
YmNjMmYyZmIxOGZmNzgxNmY2NzRlMTA2ZGFkNGE0NjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzI2Niw3ICszMjY2LDcgQEAg
c3RhdGljIFJlZlB0cjxQYXR0ZXJuPiBwYXR0ZXJuRm9yRGVzY3JpcHRpb24oUGF0dGVybkRlc2Ny
aXB0aW9uIGRlc2NyaXB0aW9uLCBGbG8KICAgICAgICAgaW1hZ2VDb250ZXh0LmRyYXdUZXh0KGZv
bnQsIHRleHRSdW4sIHsgdGV4dEdhcCwgeU9mZnNldCB9LCAwKTsKICAgICB9CiAKLSAgICBhdXRv
IHRpbGVJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b0ltYWdlKFdURk1vdmUoaW1hZ2VCdWZm
ZXIpKTsKKyAgICBhdXRvIHRpbGVJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b05hdGl2ZUlt
YWdlKFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKICAgICBhdXRvIGZpbGxQYXR0ZXJuID0gUGF0dGVy
bjo6Y3JlYXRlKHRpbGVJbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCB0cnVlLCB0cnVlKTsKICAgICBB
ZmZpbmVUcmFuc2Zvcm0gcGF0dGVybk9mZnNldFRyYW5zZm9ybTsKICAgICBwYXR0ZXJuT2Zmc2V0
VHJhbnNmb3JtLnRyYW5zbGF0ZShjb250ZW50T2Zmc2V0ICsgZGVzY3JpcHRpb24ucGhhc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZVBhdHRlcm4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZVBhdHRlcm4uY3BwCmluZGV4IGExZjg1ZjE3NjI2NjFhNWQ4YjMyYTQ1MDRlNjVlZmE4M2Nh
M2E0ZWIuLmM1NjUyZjUxNDk2OTdhODU3ZDkzMzA1NTRiYjNhMzllMTE2ZDRkMWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
UGF0dGVybi5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBQYXR0ZXJuRGF0YSogUmVuZGVyU1ZHUmVz
b3VyY2VQYXR0ZXJuOjpidWlsZFBhdHRlcm4oUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIE9wdAog
CiAgICAgY29uc3QgSW50U2l6ZSB0aWxlSW1hZ2VTaXplID0gdGlsZUltYWdlLT5sb2dpY2FsU2l6
ZSgpOwogCi0gICAgUmVmUHRyPEltYWdlPiBjb3BpZWRJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5r
SW50b0ltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CisgICAgYXV0byBjb3BpZWRJbWFnZSA9IElt
YWdlQnVmZmVyOjpzaW5rSW50b05hdGl2ZUltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CiAgICAg
aWYgKCFjb3BpZWRJbWFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcAppbmRleCBiMGFjMzU4NmIwMjQ5YjRhYmUxZTRmY2JjZTczZTlkOGZhODY1YjQ1
Li5kYTgxNDgxMTgzYzZlMjgxMGUyMzQ2MWViOGMwODYxMTZmYzhiY2ZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCkBAIC00NjAsOSArNDYwLDcgQEAgT3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0
ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWMK
ICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIERpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dENUTToKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9y
OgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgor
ICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNl
IERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldE1pdGVyTGltaXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcAppbmRleCAxOWFmMjk5NjY4MjdkNGI2MDFkOGNkNTI3YmYxNGM5YTc3ZDcwODli
Li5iYjdjODRiZjgxNDc1Y2NjOTE5ZjA3ODMwMDRkOTI5NzE4MDBmZTVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTEwNzUsMTggKzEw
NzUsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlT3B0aW9uYWxJbWFn
ZShEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8SW1hZwogICAgIHJldHVybiBkZWNvZGVJbWFnZShk
ZWNvZGVyLCBpbWFnZSk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCi17
Ci0gICAgZW5jb2RlT3B0aW9uYWxJbWFnZShlbmNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZS5nZXQo
KSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCi17Ci0gICAgaWYgKCFkZWNvZGVP
cHRpb25hbEltYWdlKGRlY29kZXIsIGltYWdlSGFuZGxlLmltYWdlKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPEZv
bnQ+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxXZWJDb3JlOjpGb250PiYg
Zm9udCkKIHsKICAgICBlbmNvZGVyIDw8IGZvbnQtPm9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwNzQzMjViNWE5Y2JkYWRhMTMw
YzA5MWZjM2QzYjA1MjhhYWZkZjk3Li42NGE3Y2ZmMzVlYmExNjFlOThkYTA2ZTkwNTVhNjEwOWIy
ZjhmOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtMTA5LDcgKzEwOSw2IEBAIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFp
bnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVh
ZGVyTWFwOwotY2xhc3MgSW1hZ2VIYW5kbGU7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJl
Y3Q7CiBjbGFzcyBJbnRTaXplOwpAQCAtNDE4LDExICs0MTcsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFJlZjxXZWJDb3JlOjpGb250Pj4gewogICAgIHN0YXRpYyBPcHRpb25h
bDxXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhPiBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYp
OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhh
bmRsZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VIYW5kbGUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwog
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCBk
N2I5MGI1NzJkYTVmYzEzY2QzYmQwODZiNDc3MTRiMTBjZDM1Y2E5Li42NDFhMWM4ZTA2NTcwNjlk
ZmFlNzRiYzBlOWY2N2JhYmY2MDNkZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApA
QCAtMzQ2LDkgKzM0Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTY2FsZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldENUTToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgorICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgog
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46
CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxp
bWl0OgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDI3NDFmNTI1NjdlZmE3MTgwZmQ5NTNjZDI2YTFiZmRiOTNjYjA0NmMuLmI1NWY0YjRiZTczMTcw
ZGFjMDAyODQxZjEyZmJlMmRjOWE0NGVjZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wMi0wNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIElt
cGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9E
aXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIFJlcGxhY2Ugc29t
ZSBvZiB0aGUgaW5saW5lIFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW1zIHdpdGgganVzdCBTZXRT
dGF0ZS4KKyAgICAgICAgUmVwbGFjZSB0aGUgb3RoZXJzIHdpdGggU2V0U3Ryb2tlVGhpY2tuZXNz
IHNpbmNlIGl0IGlzIGlubGluZSBpdGVtLgorCiAyMDIxLTAyLTA1ICBBYWthc2ggSmFpbiAgPGFh
a2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzXSBjb21taXQtcXVldWUgc2hvdWxk
IHVzZSBjb21taXRzLndlYmtpdC5vcmcgdXJsIGluc3RlYWQgb2YgdHJhYyB1cmwKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNw
cAppbmRleCBlODcxN2M3OTE0MGJkZWE0YjVmNTM1NWYwMTY5MDg5ZTYwMDg2NzMzLi42MDJiZGJm
MzJlYWEyYjQ3N2ZiZGViOGUyYWU2MjA3M2FhNDE3NzRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBAIC02NSwx
MSArNjUsMTQgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKICAgICBhdXRv
IGdyYWRpZW50ID0gY3JlYXRlR3JhZGllbnQoKTsKICAgICBhdXRvIHBhdGggPSBjcmVhdGVDb21w
bGV4UGF0aCgpOwogCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgc3RhdGU7CisgICAgc3RhdGUu
ZmlsbENvbG9yID0gQ29sb3I6OnJlZDsKKwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTA7ICsr
aSkgewogICAgICAgICBsaXN0LmFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KDEuNSk7CiAgICAg
ICAgIGxpc3QuYXBwZW5kPEZpbGxQYXRoPihwYXRoKTsKICAgICAgICAgbGlzdC5hcHBlbmQ8Rmls
bFJlY3RXaXRoR3JhZGllbnQ+KEZsb2F0UmVjdCB7IDEuLCAxLiwgMTAuLCAxMC4gfSwgZ3JhZGll
bnQpOwotICAgICAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KENvbG9yOjpyZWQp
OworICAgICAgICBsaXN0LmFwcGVuZDxTZXRTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpGaWxsQ29sb3JDaGFuZ2UpOwogI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQogICAg
ICAgICBsaXN0LmFwcGVuZDxTdHJva2VJbmxpbmVQYXRoPihJbmxpbmVQYXRoRGF0YSB7IExpbmVE
YXRhIHt7IDAuLCAwLiB9LCB7IDEwLiwgMTUuIH19fSk7CiAjZW5kaWYKQEAgLTEwMiwxMSArMTA1
LDExIEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAgICAgICAgICAgICBF
WFBFQ1RfRVEoJml0ZW0uZ3JhZGllbnQoKSwgZ3JhZGllbnQucHRyKCkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENv
bG9yOiB7CisgICAgICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7CiAgICAgICAgICAgICBF
WFBFQ1RfRkFMU0UoaGFuZGxlLT5pc0RyYXdpbmdJdGVtKCkpOwotICAgICAgICAgICAgRVhQRUNU
X1RSVUUoaGFuZGxlLT5pczxTZXRJbmxpbmVGaWxsQ29sb3I+KCkpOwotICAgICAgICAgICAgYXV0
byYgaXRlbSA9IGhhbmRsZS0+Z2V0PFNldElubGluZUZpbGxDb2xvcj4oKTsKLSAgICAgICAgICAg
IEVYUEVDVF9FUShpdGVtLmNvbG9yKCksIENvbG9yOjpyZWQpOworICAgICAgICAgICAgRVhQRUNU
X1RSVUUoaGFuZGxlLT5pczxTZXRTdGF0ZT4oKSk7CisgICAgICAgICAgICBhdXRvJiBpdGVtID0g
aGFuZGxlLT5nZXQ8U2V0U3RhdGU+KCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoaXRlbS5zdGF0
ZUNoYW5nZSgpLm1fc3RhdGUuZmlsbENvbG9yLCBDb2xvcjo6cmVkKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCkBAIC0yMTUsOSAr
MjE4LDkgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogICAgIGxp
c3Quc2V0SXRlbUJ1ZmZlckNsaWVudCgmd3JpdGVyKTsKIAogICAgIGF1dG8gcGF0aCA9IGNyZWF0
ZUNvbXBsZXhQYXRoKCk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENv
bG9yOjpibHVlKTsKKyAgICBsaXN0LmFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KDEwKTsKICAg
ICBsaXN0LmFwcGVuZDxTdHJva2VQYXRoPihwYXRoKTsKLSAgICBsaXN0LmFwcGVuZDxTZXRJbmxp
bmVTdHJva2VDb2xvcj4oQ29sb3I6OnJlZCk7CisgICAgbGlzdC5hcHBlbmQ8U2V0U3Ryb2tlVGhp
Y2tuZXNzPigyMCk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlUGF0aD4ocGF0aCk7CiAKICAgICBE
aXNwbGF5TGlzdCBzaGFsbG93Q29weSB7eyBJdGVtQnVmZmVySGFuZGxlIHsgZ2xvYmFsQnVmZmVy
SWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgbGlzdC5zaXplSW5CeXRlcygpIH0gfX07CkBA
IC0yMzAsOSArMjMzLDkgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50
KQogCiAgICAgRVhQRUNUX0ZBTFNFKHNoYWxsb3dDb3B5LmlzRW1wdHkoKSk7CiAgICAgRVhQRUNU
X0VRKGl0ZW1UeXBlcy5zaXplKCksIDRVKTsKLSAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzBdLCBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIEVYUEVDVF9FUShpdGVtVHlwZXNb
MF0sIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MpOwogICAgIEVYUEVDVF9FUShpdGVtVHlw
ZXNbMV0sIEl0ZW1UeXBlOjpTdHJva2VQYXRoKTsKLSAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzJd
LCBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIEVYUEVDVF9FUShpdGVtVHlw
ZXNbMl0sIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MpOwogICAgIEVYUEVDVF9FUShpdGVt
VHlwZXNbM10sIEl0ZW1UeXBlOjpTdHJva2VQYXRoKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNw
cAppbmRleCAwZmVjNWY3NjVhNDJjOTI0N2E0MmE3NjkwMWYwNTYxNzMyY2RiOWI4Li5iZGE0ZGE5
YTYyMWJmMmU2Mzc1MTc5Zjk2MzUzZDU2MjA3ZDg1YTA2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNw
cApAQCAtNTMsMTEgKzUzLDE0IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgUmVwbGF5V2l0aE1p
c3NpbmdSZXNvdXJjZSkKICAgICBhdXRvIGltYWdlQnVmZmVySWRlbnRpZmllciA9IFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIAogICAgIERpc3BsYXlMaXN0IGxpc3Q7
CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgc3RhdGU7CiAKLSAgICBsaXN0LmFwcGVuZDxTZXRJ
bmxpbmVGaWxsQ29sb3I+KENvbG9yOjpncmVlbik7CisgICAgc3RhdGUuZmlsbENvbG9yID0gQ29s
b3I6OmJsdWU7CisgICAgbGlzdC5hcHBlbmQ8U2V0U3RhdGU+KHN0YXRlLCBHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKTsKICAgICBsaXN0LmFwcGVuZDxGaWxsUmVjdD4oY29u
dGV4dEJvdW5kcyk7CiAgICAgbGlzdC5hcHBlbmQ8RHJhd0ltYWdlQnVmZmVyPihpbWFnZUJ1ZmZl
cklkZW50aWZpZXIsIGNvbnRleHRCb3VuZHMsIGNvbnRleHRCb3VuZHMsIEltYWdlUGFpbnRpbmdP
cHRpb25zIHsgfSk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9y
OjpyZWQpOworICAgIHN0YXRlLnN0cm9rZUNvbG9yID0gQ29sb3I6OnJlZDsKKyAgICBsaXN0LmFw
cGVuZDxTZXRTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNo
YW5nZSk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlTGluZT4oRmxvYXRQb2ludCB7IDAsIGNvbnRl
eHRIZWlnaHQgfSwgRmxvYXRQb2ludCB7IGNvbnRleHRXaWR0aCwgMCB9KTsKIAogICAgIHsKQEAg
LTEyMCw3ICsxMjMsNyBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIE91dE9mTGluZUl0ZW1EZWNv
ZGluZ0ZhaWx1cmUpCiAgICAgcGF0aC5tb3ZlVG8oeyAxMC4sIDEwLiB9KTsKICAgICBwYXRoLmFk
ZExpbmVUbyh7IDUwLiwgNTAuIH0pOwogICAgIHBhdGguYWRkTGluZVRvKHsgMTAuLCAxMC4gfSk7
Ci0gICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oQ29sb3I6OmJs
dWUpOworICAgIG9yaWdpbmFsTGlzdC5hcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigxMCk7CiAg
ICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxGaWxsUGF0aD4oV1RGTW92ZShwYXRoKSk7CiAKICAgICBE
aXNwbGF5TGlzdCBzaGFsbG93Q29weSB7eyBJdGVtQnVmZmVySGFuZGxlIHsgZ2xvYmFsQnVmZmVy
SWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgb3JpZ2luYWxMaXN0LnNpemVJbkJ5dGVzKCkg
fSB9fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBlODNhOGY4ZmMwMzI0ODIwYjYzYzM5MTNmMDY4N2NhNzg4NTUxMjRlLi40
NzlkMjEyZDM2NTlmYTZlNTUzYzlhMTA3YWVkMWEwZWI3ZGM3NDM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjUgQEAKKzIwMjEtMDItMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBsZW1lbnQgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRl
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkaXNw
bGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAgIENoYW5n
ZSAic2V0LWlubGluZS1maWxsLWNvbG9yIiB0byAic2V0LXN0YXRlIiBpbiB0aGUgZXhwZWN0ZWQg
cmVzdWx0cy4KKworICAgICAgICAqIGdwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgIERlbGV0ZSB0aGUgdGVzdHMgd2hpY2ggd2VyZSBmaXhlZCBieSB0aGlzIHBhdGNoLiBUaGlz
IGZpbGUgd2FzIHNvcnRlZCBpbgorICAgICAgICBhc2NlbmRpbmcgb3JkZXIgdG8gbWFrZSBpdCBl
YXN5IHRvIHJlZ2VuZXJhdGUgdGhlIGV4cGVjdGVkIGZhaWx1cmVzIGluCisgICAgICAgIGEgY2Vy
dGFpbiBkaXJlY3RvcnkgYnkgZGVsZXRpbmcgYWxsIHRoZSBlbnRyaWVzIGluIHRoaXMgZGlyZWN0
b3J5IGZyb20KKyAgICAgICAgdGhpcyBmaWxlIGFuZCB0aGVuIHJ1bi13ZWJraXQtdGVzdHMuCisK
KyAgICAgICAgKiBpbXBvcnRlZC9ibGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3LXBhdHRlcm4t
c2l6ZS1leHBlY3RlZC5odG1sOgorICAgICAgICBDaGFuZ2UgdGhlIGV4cGVjdGVkIHJlc3VsdCBi
ZWNhdXNlIGRyYXdpbmcgdGhlIFNWRyBpbWFnZSBhcyBhIHBhdHRlcm4gaGFzCisgICAgICAgIGJl
ZW4gYnJva2VuIGZvciBhd2hpbGUuIFRoaXMgYnVnIHdhcyBub3QgY2F1Z2h0IGJlY2F1c2UgdGhl
IHRlc3QgYW5kIHRoZQorICAgICAgICBleHBlY3RlZCByZXN1bHQgYm90aCBkbyB0aGUgc2FtZSBk
cmF3aW5nLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoZQorICAgICAgICB3aWR0aCBvZiB0aGUg
U1ZHIGltYWdlLgorCiAyMDIxLTAyLTA1ICBSaW5pIFBhdGVsICA8cmluaV9wYXRlbEBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBSZXBvcHVsYXRlIHRoZSBUZXN0RXhwZWN0YXRp
b25zIGZpbGUgIzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMt
ZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52
YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dAppbmRleCAxNDUxYjE5MjUzYzMyMzg5MjhiYmQ5
ZjVlNWRlYmI5Mjc0YzUwZDU3Li40MzQzNmEzMTY1OGNjYTNiYjk1OWMyNjg4N2NkMTk2ZGNjYjUz
NGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXkt
bGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1k
aXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsOCBAQAogICAoc2hhZG93cy1pZ25v
cmUtdHJhbnNmb3JtcyAxKSkKIChmaWxsLXJlY3QKICAgKHJlY3QgYXQgKDEwLDEwKSBzaXplIDU1
eDUwKSBleHRlbnQgYXQgKDEwLDE0MCkgc2l6ZSA1NXg1MCkKLShzZXQtaW5saW5lLWZpbGwtY29s
b3IKLSAgKGNvbG9yICMwMDAwQzg4MCkpCisoc2V0LXN0YXRlCisgIChjaGFuZ2UtZmxhZ3MgMTI4
KQorICAoZmlsbC1jb2xvciAjMDAwMEM4ODApKQogKGZpbGwtcmVjdAogICAocmVjdCBhdCAoMzAs
MzApIHNpemUgNTV4NTApIGV4dGVudCBhdCAoMzAsMTIwKSBzaXplIDU1eDUwKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzM2NmZkOWFkMDc2ZjU1ZWUyODVl
NmY3OTg0YTg4M2UxODZiZjVjZi4uMWFmZTA5MmJlNmU4M2Q5NGM5NTA4ODUzYjQ5MWMyNmVjYTRi
NzU4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xLDQ5
ICsxLDggQEAKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmNh
bnZhc3BhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9z
aXRlLmdsb2JhbEFscGhhLmltYWdlcGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uY29weS5odG1sIFsgQ3Jhc2gg
XQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVz
dGluYXRpb24tYXRvcC5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21w
b3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24taW4uaHRtbCBbIENyYXNoIF0KLWNh
bnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1p
bi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3Zl
cmVkLnBhdHRlcm4uc291cmNlLW91dC5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLmFuaW1hdGVkLmdpZi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLmJhc2ljLmNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5wYXR0ZXJuLmJhc2ljLmltYWdlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnBhdHRlcm4uYmFzaWMubm9jb250ZXh0Lmh0bWwgWyBDcmFzaCBdCi1jYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uY3Jvc3NjYW52YXMuaHRtbCBbIENyYXNoIF0KLWNh
bnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFzMS5odG1sIFsgQ3Jhc2gg
XQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwgWyBD
cmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMS5odG1s
IFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTIu
aHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5ub3Jl
cGVhdC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJu
LnBhaW50Lm5vcmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMi5odG1sIFsgQ3Jhc2ggXQotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jh
c2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0Lm91dHNp
ZGUuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5v
cmllbnRhdGlvbi5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0dGVybi5wYWludC5vcmllbnRhdGlvbi5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQot
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDEuaHRtbCBb
IENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29v
cmQyLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQu
cmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0
ZXJuLnBhaW50LnJlcGVhdC5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHguY29vcmQxLmh0bWwgWyBDcmFz
aCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5vdXRzaWRl
Lmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVw
ZWF0eS5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJu
LnBhaW50LnJlcGVhdHkuY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucmVwZWF0LmVtcHR5Lmh0bWwgWyBDcmFzaCBdCi1jYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucmVwZWF0Lm51bGwuaHRtbCBbIENyYXNoIF0KLWNh
bnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4uYWxwaGEuaHRtbCBbIENyYXNoIF0K
LWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4uYmFzaWMuaHRtbCBbIENyYXNo
IF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMS5o
dG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cucGF0dGVybi50cmFu
c3BhcmVudC4yLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzL2luaXRpYWwucmVz
ZXQucGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotCiBjb21wb3NpdGluZy9jYW52YXMvYWNjZWxlcmF0
ZWQtY2FudmFzLWNvbXBvc2l0aW5nLmh0bWwgWyBGYWlsdXJlIF0KIGNvbXBvc2l0aW5nL2xheWVy
LWNyZWF0aW9uL3NwYW5PdmVybGFwc0NhbnZhcy5odG1sIFsgRmFpbHVyZSBdCiAKIGNzczMvYmxl
bmRpbmcvYmxlbmQtbW9kZS1jbGlwLWFjY2VsZXJhdGVkLWJsZW5kaW5nLWNhbnZhcy5odG1sIFsg
RmFpbHVyZSBdCisKIGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwgWyBGYWls
dXJlIF0KIAogZmFzdC9jYW52YXMvMmQuZmlsbFRleHQuZ3JhZGllbnQuaHRtbCBbIEZhaWx1cmUg
XQpAQCAtNTUsMzMgKzE0LDExIEBAIGZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZC1pbWFnZS5odG1s
IFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmQtc29saWQuaHRtbCBbIEZhaWx1
cmUgXQogZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kaW5nLWNsaXBwaW5nLmh0bWwgWyBGYWlsdXJl
IF0KIGZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWNvbG9yLmh0bWwgWyBG
YWlsdXJlIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWdyYWRpZW50
Lmh0bWwgWyBGYWlsdXJlIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVy
LWltYWdlLmh0bWwgWyBUaW1lb3V0IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xv
ci1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGlu
Zy1ncmFkaWVudC1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZh
cy1ibGVuZGluZy1pbWFnZS1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFz
L2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItY29sb3IuaHRtbCBbIENyYXNoIF0KLWZhc3Qv
Y2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItZ3JhZGllbnQuaHRtbCBbIENyYXNo
IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItaW1hZ2UuaHRtbCBb
IENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItcGF0dGVy
bi5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWNyZWF0ZVBhdHRlcm4tZmlsbFJl
Y3Qtc2hhZG93Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRlUGF0dGVy
bi12aWRlby1sb2FkaW5nLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRl
UGF0dGVybi12aWRlby1tb2RpZnkuaHRtbCBbIENyYXNoIF0KK2Zhc3QvY2FudmFzL2NhbnZhcy1i
bGVuZGluZy1jb2xvci1vdmVyLWdyYWRpZW50Lmh0bWwgWyBGYWlsdXJlIF1gCiBmYXN0L2NhbnZh
cy9jYW52YXMtZHJhd0ltYWdlLWNvbXBvc2l0ZS1jb3B5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1maWxsUGF0aC1wYXR0ZXJuLXNoYWRvdy5odG1sIFsgQ3Jh
c2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWltYWdlLXNoYWRvdy5odG1sIFsgQ3Jhc2ggXQotZmFz
dC9jYW52YXMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1wYXR0ZXJucy5odG1sIFsgQ3Jh
c2ggXQogZmFzdC9jYW52YXMvY2FudmFzLWxhcmdlLWRpbWVuc2lvbnMuaHRtbCBbIEZhaWx1cmUg
XQotZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4tYmVoYXZpb3VyLmh0bWwgWyBDcmFzaCBdCi1m
YXN0L2NhbnZhcy9jYW52YXMtcGF0dGVybi1tb2RpZnkuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2Fu
dmFzL2NhbnZhcy1wYXR0ZXJuLXRyYW5zZm9ybS5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMv
Y2FudmFzLXBhdHRlcm4td2l0aC10cmFuc2Zvcm0uaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFz
L2NhbnZhcy1yZW5kZXItbGF5ZXIuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvaGlkcGkt
cmVwYWludC1vbi1yZXRpbmEtbGVhdmVzLWJpdHMtYmVoaW5kLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLWZhc3QvY2FudmFzL2ltYWdlLW9iamVjdC1pbi1jYW52YXMuaHRtbCBbIENyYXNoIF0K
LWZhc3QvY2FudmFzL2ltYWdlLXBhdHRlcm4tcm90YXRlLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2Nh
bnZhcy9wYXR0ZXJuLXdpdGgtdHJhbnNmb3JtLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9w
YXR0ZXJuZmlsbC1yZXBlYXQuaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZh
cy0yZC13ZWJnbC10ZXh0dXJlLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL2Nh
bnZhcy10ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtY3Jl
YXRpb24tYXR0cmlidXRlcy5odG1sIFsgRmFpbHVyZSBdCkBAIC0xMDEsMjkgKzM4LDI2IEBAIGZh
c3QvY2FudmFzL3dlYmdsL3RleEltYWdlMkQtdmlkZW8tZmxpcFktdHJ1ZS5odG1sIFsgRmFpbHVy
ZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0bWwgWyBGYWlsdXJl
IF0KIGZhc3QvY2FudmFzL3dlYmdsL3VuaWZvcm0tc2FtcGxlcnMtdGVzdC5odG1sIFsgVGltZW91
dCBdCiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbCBbIFRp
bWVvdXQgXQotCiBmYXN0L2RvbS9uYXZpZ2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2guaHRtbCBbIEZh
aWx1cmUgXQogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0LWNyYXNoLmh0bWwgWyBUaW1l
b3V0IF0KIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWltYWdlLW1wNC5odG1sIFsgVGltZW91dCBdCiBm
YXN0L2ltYWdlcy9vcmRlcmVkLWFuaW1hdGVkLWltYWdlLWZyYW1lcy5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi0KIGZhc3QvbWVkaWFjYXB0dXJlZnJvbWVsZW1lbnQvQ2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtLWV4Y2VwdGlvbnMuaHRtbCBbIENyYXNoIF0KIGZhc3QvbWVkaWFjYXB0dXJlZnJv
bWVsZW1lbnQvQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtLXdlYmdsLWV2ZW50cy5odG1sIFsgVGlt
ZW91dCBdCiBmYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVTdHJlYW0vY2FudmFzM2QuaHRtbCBbIEZh
aWx1cmUgXQogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRtbCBbIEZh
aWx1cmUgXQogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1lbGVtZW50LWN1cnJlbnQtdGltZS5odG1s
IFsgRmFpbHVyZSBdCiBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1pbnRlcnJ1
cHRlZC5odG1sIFsgRmFpbHVyZSBdCi0KIGZhc3QvcmVwYWludC9jYW52YXMtb2JqZWN0LWZpdC5o
dG1sIFsgRmFpbHVyZSBdCiBmYXN0L3JlcGFpbnQvY2FudmFzLXB1dEltYWdlRGF0YS5odG1sIFsg
RmFpbHVyZSBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4t
c3RvcC5odG1sIFsgVGltZW91dCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29u
ZC1yZWNvZ25pdGlvbi5odG1sIFsgRmFpbHVyZSBdCi0KIGZhc3QvdGV4dC9jYW52YXMtY29sb3It
Zm9udHMvZmlsbC1ncmFkaWVudC1DT0xSLTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFz
dC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtQ09MUi0yLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvdGV4dC9jYW52YXMtY29sb3ItZm9udHMvc3Ryb2tlLWdy
YWRpZW50LUNPTFItMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3RleHQvY2FudmFz
LWNvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1DT0xSLTQuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogZmFzdC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtQ09MUi01
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9u
dHMvZmlsbC1ncmFkaWVudC1zYml4LTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaHR0cC90
ZXN0cy9jYW52YXMvY29sb3ItZm9udHMvZmlsbC1ncmFkaWVudC1zYml4LTMuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9udHMvZmlsbC1ncmFkaWVu
dC1zYml4LTQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpAQCAtMTgyLDkgKzExNiw4IEBAIGh0
dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxvd2VkLWNy
b3Nzb3JpZ2luLXJlZGlyZWN0Lmh0CiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRl
ci1yZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi5odG1sIFsgVGltZW91dCBdCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1j
cm9zc29yaWdpbi1yZWRpcmVjdC5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1jcm9zc29yaWdpbi5odG1s
IFsgVGltZW91dCBdCi0KLWh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1h
dWRpby12aWRlby1kYXRhYXZhaWxhYmxlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci1hdWRpby1iaXRyYXRlLmh0bWwgWyBGYWlsdXJlIF0KK2h0
dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZh
aWxhYmxlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlh
cmVjb3JkZXIvbXV0ZS10cmFja3MuaHRtbCBbIENyYXNoIF0KIGh0dHAvd3B0L21lZGlhcmVjb3Jk
ZXIvcGF1c2UtcmVjb3JkaW5nLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTE5NSw5NSArMTI4LDExIEBA
IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1pcy11c2VyLXZlcmlmeWlu
Zy1wbGF0Zm9ybS1hdXRoZW50aWNhdG9yCiBpbXBvcnRlZC9ibGluay9mYXN0L2NhbnZhcy9jYW52
YXMtY2xpcC1zdGFjay1wZXJzaXN0ZW5jZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBv
cnRlZC9ibGluay9mYXN0L2NhbnZhcy9jYW52YXMtc3RhdGUtcGVyc2lzdGVuY2Utbm8tZGlydHku
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvYmxpbmsvZmFzdC9jYW52YXMvY2Fu
dmFzLXVuYmFsYW5jZWQtc2F2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC9i
bGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3LXBhdHRlcm4tc2l6ZS5odG1sIFsgQ3Jhc2ggXQog
Ci1pbXBvcnRlZC93M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5jYW52YXNwYXR0
ZXJuLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS5nbG9i
YWxBbHBoYS5pbWFnZXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMv
MmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmNvcHkuaHRtbCBbIENyYXNoIF0KLWltcG9y
dGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9u
LWF0b3AuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVu
Y292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2UtaW4uaHRtbCBb
IENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0
ZXJuLnNvdXJjZS1vdXQuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0
dGVybi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
cGF0dGVybi5iYXNpYy5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8y
ZC5wYXR0ZXJuLmJhc2ljLm5vY29udGV4dC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2Nh
bnZhcy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
Y2FudmFzLzJkLnBhdHRlcm4ubW9kaWZ5LmNhbnZhczEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVk
L3czYy9jYW52YXMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFzMi5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmJhc2ljLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQuY29v
cmQxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQu
bm9yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBh
dHRlcm4ucGFpbnQubm9yZXBlYXQuY29vcmQzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
Y2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmNhbnZhcy5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVu
dGF0aW9uLmltYWdlLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRl
cm4ucGFpbnQucmVwZWF0LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQzLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0Lm91
dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWlu
dC5yZXBlYXR4LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBh
dHRlcm4ucGFpbnQucmVwZWF0eC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9j
YW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmJhc2ljLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5jb29y
ZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5y
ZXBlYXR5Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0
dGVybi5yZXBlYXQuZW1wdHkuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
cGF0dGVybi5yZXBlYXQubnVsbC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8y
ZC5zaGFkb3cucGF0dGVybi5hbHBoYS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZh
cy8yZC5zaGFkb3cucGF0dGVybi5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2Nh
bnZhcy8yZC5zaGFkb3cucGF0dGVybi50cmFuc3BhcmVudC4xLmh0bWwgWyBDcmFzaCBdCi1pbXBv
cnRlZC93M2MvY2FudmFzLzJkLnNoYWRvdy5wYXR0ZXJuLnRyYW5zcGFyZW50LjIuaHRtbCBbIENy
YXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvaW5pdGlhbC5yZXNldC5wYXR0ZXJuLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzL3NlY3VyaXR5LnBhdHRlcm4uY2FudmFzLnRpbWlu
Zy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy9zZWN1cml0eS5wYXR0ZXJuLmNy
b3NzLmh0bWwgWyBDcmFzaCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3JhbmdlL2dlbmVyYWwud2luZG93Lmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBGYWlsdXJl
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9j
b21wb3NpdGluZy8yZC5jb21wb3NpdGUuZ2xvYmFsQWxwaGEuY2FudmFzcGF0dGVybi5odG1sIFsg
Q3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVt
ZW50L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5pbWFnZXBhdHRlcm4uaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9jb21wb3NpdGluZy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uY29weS5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9lbGVtZW50L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5kZXN0
aW5hdGlvbi1hdG9wLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRlLnVuY292ZXJl
ZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9z
aXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1pbi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0aW5nLzJk
LmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2Utb3V0Lmh0bWwgWyBDcmFzaCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1h
bmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLmFuaW1hdGVkLmdpZi5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwt
YW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxs
LWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4uYmFzaWMuaW1hZ2UuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxs
LWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4uYmFzaWMubm9jb250ZXh0Lmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMxLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1l
bnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTEuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMi5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVh
dC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWlu
dC5ub3JlcGVhdC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBh
dHRlcm4ucGFpbnQubm9yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0
eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5k
LXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5vdXRzaWRlLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1l
bnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmNh
bnZhcy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5v
cmllbnRhdGlvbi5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0
dGVybi5wYWludC5yZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9r
ZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1h
bmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDMuaHRtbCBbIENy
YXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVu
dC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0Lm91dHNpZGUu
aHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0
eC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWlu
dC5yZXBlYXR4LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0
dGVybi5wYWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5
bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0
cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2Zp
bGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5Lm91dHNpZGUuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucmVwZWF0LmVtcHR5Lmh0
bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnRyYW5zZm9ybS5pZGVu
dGl0eS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9lbGVtZW50L2ltYWdlLXNtb290aGluZy9pbWFnZXNtb290aGluZy5odG1sIFsgQ3Jh
c2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50
L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLW9yaWdpbi5zdWIuaHRtbCBbIEZhaWx1cmUg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2xp
bmUtc3R5bGVzLzJkLmxpbmUuY2FwLmNsb3NlZC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3BhdGgtb2JqZWN0cy8yZC5w
YXRoLmFyYy5hbmdsZS4yLmh0bWwgWyBDcmFzaCBdCisKIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9wYXRoLW9iamVjdHMvMmQucGF0aC5zdHJva2Uu
c2NhbGUyLmh0bWwgWyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvZWxlbWVudC9zaGFkb3dzLzJkLnNoYWRvdy5wYXR0ZXJuLmFscGhhLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvc2hhZG93cy8yZC5zaGFkb3cucGF0dGVybi5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3NoYWRvd3Mv
MmQuc2hhZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3NoYWRvd3MvMmQuc2hh
ZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMi5odG1sIFsgQ3Jhc2ggXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X3Byb2dyZXNzX25vYXV0b3BsYXkuaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2xvYWRpbmctdGhlLW1lZGlhLXJlc291cmNlL2xvYWQtZXZlbnRzLW5l
dHdvcmtTdGF0ZS5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcHJlc2Vy
dmVzLXBpdGNoLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTM0Miw5ICsxOTEsOSBAQCBzdmcvYXMtaW1h
Z2Uvc3ZnLWNhbnZhcy1wYXR0ZXJuLXdpdGgtbGluay10YWludGVkLmh0bWwgWyBDcmFzaCBdCiBz
dmcvY2FudmFzL2NhbnZhcy1nbG9iYWwtYWxwaGEtc3ZnLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHN2Zy9jYW52YXMvY2FudmFzLXBhdHRlcm4tc3ZnLmh0bWwgWyBDcmFzaCBdCiAKLXdlYmF1
ZGlvL1Bhbm5lci9ocnRmLWRhdGFiYXNlLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmF1ZGlvL2NvZGVj
LXRlc3RzL2FhYy92YnItMTI4a2Jwcy00NGtoei5odG1sIFsgVGltZW91dCBdCiB3ZWJhdWRpby9j
b2RlYy10ZXN0cy9tcDMvMTI4a2Jwcy00NGtoei5odG1sIFsgVGltZW91dCBdCit3ZWJhdWRpby9Q
YW5uZXIvaHJ0Zi1kYXRhYmFzZS5odG1sIFsgVGltZW91dCBdCiAKIHdlYmdsLzEuMC4zL2NvbmZv
cm1hbmNlL2NhbnZhcy9jYW52YXMtdGVzdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8xLjAuMy9j
b25mb3JtYW5jZS9jYW52YXMvZHJhdy1zdGF0aWMtd2ViZ2wtdG8tbXVsdGlwbGUtY2FudmFzLXRl
c3QuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNDE3LDY4ICsyNjYsNiBAQCB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZS90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYmEtcmdiYS11bnNpZ25lZF9z
aG9ydF81Xwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvdW5pZm9ybXMvdW5pZm9ybS1zYW1wbGVy
cy10ZXN0Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZWFkaW5n
L3JlYWQtcGl4ZWxzLXBhY2stcGFyYW1ldGVycy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sIFsgVGltZW91dCBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTFmX2cx
MWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcjE2Zi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yMzJmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yOC1yZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0y
ZC1yOHVpLXJlZF9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcxNmYtcmctZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcmcxNmYtcmctaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzMyZi1yZy1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZzgtcmctdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhh
bGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5z
aWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmExNmYtcmdi
YS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yZ2JhMTZmLXJnYmEtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMzJm
LXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJn
YmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFp
bHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1y
MTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2It
dW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTZmLXJlZC1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0zZC1yMTZmLXJlZC1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIzMmYtcmVkLWZsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXI4LXJlZC11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXI4dWktcmVkX2ludGVnZXItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yZzE2Zi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzE2Zi1yZy1oYWxmX2Zsb2F0
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTNkLXJnMzJmLXJnLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnOC1yZy11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTNkLXJnOHVpLXJnX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdi
LWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXMvdGV4LTNkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IzMmYtcmdi
LWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1NjUt
cmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTE2Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdi
YS1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmEzMmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhNC1y
Z2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRf
NF80Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhOHVpLXJn
YmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTNkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xl
L3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1y
MTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXIxMWZf
ZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJl
IF0KQEAgLTQ5NSwxMCArMjgyLDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11CiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rhbmds
ZS90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQt
cmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiNV9hMS1y
Z2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I1NjUt
cmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2ln
bmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQpAQCAtNTEwLDggKzI5Nyw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYmE4dWktcmdi
YV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1zcmdiOC1yZ2It
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rh
bmdsZS90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9y
ZXYuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTI4LDEwICszMTUsMTAgQEAgd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZzh1aS1yZ19p
bnRlZ2VyLXUKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3Jl
Y3RhbmdsZS90ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJn
YjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjMyZi1yZ2ItZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJf
cmVjdGFuZ2xlL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3Jl
Y3RhbmdsZS90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xl
L3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5n
bGUvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1y
Z2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiOHVpLXJnYl9p
bnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I5X2U1LXJnYi1m
bG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC01NDMsOCArMzMwLDcwIEBAIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiYTQtcmdi
YS11bnNpZ25lCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUv
dGV4LTNkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xl
L3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXNy
Z2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1zcmdi
OC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2Ix
MGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjE2Zi1yZWQtZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtMmQtcjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMzJmLXJlZC1mbG9hdC5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0yZC1yOC1yZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yOHVpLXJlZF9pbnRlZ2VyLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcxNmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcxNmYtcmctaGFs
Zl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzgtcmctdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdi
MTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdi
MzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0y
ZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdl
ci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2Jh
MTZmLXJnYmEtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMzJmLXJnYmEtZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQt
cmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hv
cnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdi
YTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdi
YS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFs
Zl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZf
MTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yMTZmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTZmLXJlZC1oYWxmX2Zs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXIzMmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXI4LXJlZC11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTNkLXI4dWktcmVkX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzE2Zi1y
Zy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yZzE2Zi1yZy1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnMzJmLXJnLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnOC1yZy11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnOHVpLXJnX2ludGVn
ZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjE2
Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVf
YTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9y
dF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1
NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjgtcmdiLXVuc2lnbmVkX2J5
dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtcmdi
YTE2Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1oYWxmX2Zsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXJnYmEzMmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE4LXJn
YmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtc3Jn
YjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcjEx
Zl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXIx
MWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4
LTJkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwg
WyBGYWlsdXJlIF0KQEAgLTU2MSwxMCArNDEwLDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnOHVpLXJn
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1h
Z2VfYml0bWFwL3RleC0yZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRt
YXAvdGV4LTJkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFw
L3RleC0yZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0y
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRt
YXAvdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBf
ZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFw
X2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTc2LDggKzQyNSw4IEBAIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJn
YmE0LXJnCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zy
b21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtc3JnYjgtcmdiLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtc3JnYjhfYWxwaGE4
LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1zcmdi
OC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yMTFm
X2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcjEx
Zl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgt
M2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBb
IEZhaWx1cmUgXQpAQCAtNTk0LDEwICs0NDMsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtcmc4dWktcmcK
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFn
ZV9iaXRtYXAvdGV4LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1h
cC90ZXgtM2QtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAv
dGV4LTNkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qt
cmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1h
cC90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2Jp
dG1hcC90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9m
cm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBf
ZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2Vf
Yml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I5X2U1LXJnYi1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCkBAIC02MDksOCArNDU4LDggQEAgd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtcmdi
YTQtcmcKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJv
bV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2Vf
Yml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1zcmdiOC1yZ2ItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1zcmdiOF9hbHBoYTgt
cmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXNyZ2I4
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9taXNjL2ludGVnZXItY3ViZW1hcC10ZXh0dXJlLXNhbXBsaW5nLmh0bWwg
WyBDcmFzaCBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJk
LXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxm
X2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTYyOCwxMCArNDc3LDEwIEBAIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11bnNp
Z25lZF9ieXRlLmh0CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4
LTJkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0y
ZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgt
MmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjVfYTEtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEu
aHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVv
L3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2ln
bmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJn
Yjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQpAQCAtNjQzLDggKzQ5Miw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYmE0
LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYmE4LXJnYmEtdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
dmlkZW8vdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1z
cmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXIxMWZfZzExZl9i
MTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvdmlkZW8vdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgt
M2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBb
IEZhaWx1cmUgXQpAQCAtNjYxLDEwICs1MTAsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHQK
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiMTZmLXJn
Yi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvdmlkZW8vdGV4LTNkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjMyZi1yZ2It
ZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVv
L3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjU2
NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82
XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3Zp
ZGVvL3RleC0zZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiOHVpLXJnYl9pbnRl
Z2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I5X2U1LXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCkBAIC02NzYsOCArNTI1LDggQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEYKIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25l
ZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2Qt
cmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXNyZ2I4LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy92aWRlby90ZXgtM2Qtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNk
LXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJn
Yi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jl
di5odG1sIFsgRmFpbHVyZSBdCkBAIC02OTQsMTAgKzU0MywxMCBAQCB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVu
c2lnbmVkXwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90
ZXgtMmQtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dl
YmdsX2NhbnZhcy90ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1NjUt
cmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9y
dF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFz
L3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0y
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNp
Z25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9j
YW52YXMvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4
LTJkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC03MDcsOCArNTU2LDgg
QEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQt
cmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmgKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRf
NC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2Vi
Z2xfY2FudmFzL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQt
cmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1zcmdiOC1y
Z2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy93ZWJnbF9jYW52YXMvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4
LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEw
Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWdu
ZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCkBAIC03MjUsMTAgKzU3NCwx
MCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0z
ZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkXwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0z
ZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiMzJmLXJnYi1mbG9hdC5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xf
Y2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2Qtcmdi
NTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEt
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRf
NV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90
ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I4
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCkBAIC03MzgsOCArNTg3LDkgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmgKIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYmE0LXJnYmEt
dW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xf
Y2FudmFzL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1zcmdi
OF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXNyZ2I4LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KKwogd2ViZ2wvbWFueS1jb250ZXh0cy1hY2Nlc3Mt
YWZ0ZXItbG9zcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWNv
bnNvbGUtd2FybmluZy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRz
LWdjLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTc1Miw3ICs2MDIsNyBAQCB3ZWJydGMvY2FwdHVyZUNh
bnZhcy13ZWJydGMtc29mdHdhcmUtaDI2NC1oaWdoLmh0bWwgWyBUaW1lb3V0IF0KIHdlYnJ0Yy9j
YXB0dXJlQ2FudmFzLXdlYnJ0Yy5odG1sIFsgVGltZW91dCBdCiB3ZWJydGMvaDI2NC1iYXNlbGlu
ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJydGMvaDI2NC1oaWdoLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YnJ0Yy92aWRlby5odG1sIFsgRmFpbHVyZSBdCiB3ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3Zv
Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYnJ0Yy92aWRlby1yb3RhdGlvbi5odG1sIFsgVGltZW91dCBd
Ci13ZWJydGMvdmlkZW8tdW5tdXRlLmh0bWwgWyBUaW1lb3V0IF0KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCit3ZWJydGMvdmlkZW8tdW5tdXRlLmh0bWwgWyBUaW1lb3V0IF0KK3dlYnJ0Yy92
aWRlby5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9i
bGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3LXBhdHRlcm4tc2l6ZS1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvc3ZnL2NhbnZhcy9jYW52YXMtZHJhdy1wYXR0ZXJu
LXNpemUtZXhwZWN0ZWQuaHRtbAppbmRleCA1MzkyN2VhYjQ5MmNhMjUxMmJmMGRkNzdkMjU5MmQ2
MTFiMzgyMDFmLi5jNDEyMGQ2ZjJhZjcyNDdmYzcyZTA4YzZjYTRmZjA5OTcyMzEzZmE5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3
LXBhdHRlcm4tc2l6ZS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2Js
aW5rL3N2Zy9jYW52YXMvY2FudmFzLWRyYXctcGF0dGVybi1zaXplLWV4cGVjdGVkLmh0bWwKQEAg
LTEsMjYgKzEsMTIgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICB2YXIgY29udGV4dCA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdjYW52YXMnKVswXS5nZXRDb250ZXh0KCcyZCcpOwotICB2YXIgZm9yY2VM
YXlvdXQgPSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwotCi0gIHZhciBkb21JbWFnZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbWcnKVswXTsKLSAgY29udGV4dC5kcmF3SW1h
Z2UoZG9tSW1hZ2UsIDEwLCAxMCwgODAsIDgwKTsKLQotICB2YXIgbmV3SW1hZ2UgPSBuZXcgSW1h
Z2UoKTsKLSAgbmV3SW1hZ2Uuc3JjID0gZG9tSW1hZ2Uuc3JjOwotICBjb250ZXh0LmZpbGxTdHls
ZSA9IGNvbnRleHQuY3JlYXRlUGF0dGVybihuZXdJbWFnZSwgJ3JlcGVhdCcpOwotICBjb250ZXh0
LmZpbGxSZWN0KDEwLCAxMCwgMTgwLCA4MCk7Ci0KLSAgZG9tSW1hZ2UucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChkb21JbWFnZSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0n
cnVuVGVzdCgpJz4KKzxib2R5PgogVGVzdCBmb3IgY3JidWcuY29tLzIyNzQ4MTogVGhpcyB0ZXN0
IHBhc3NlcyBpZiB0aGVyZSBpcyBhIGdyZWVuIHJlY3RhbmdsZSB3aXRoIGEgdHdvIGJsdWUgY2ly
Y2xlcy48YnIvPgotPGNhbnZhcyB3aWR0aD0iMjAwcHgiIGhlaWdodD0iMTAwcHgiPjwvY2FudmFz
PgotPGltZyBzdHlsZT0id2lkdGg6IDUwcHg7IiBzcmM9ImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3Zn
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEwMCcgaGVpZ2h0PScx
MDAnPjxyZWN0IHdpZHRoPScxMDAnIGhlaWdodD0nMTAwJyBmaWxsPSdncmVlbicgLz48Y2lyY2xl
IGN4PSczMCcgY3k9JzMwJyByPScxNScgZmlsbD0nYmx1ZScvPjwvc3ZnPiIgPgorPGltZyBzdHls
ZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDEwMHB4OyIgc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWws
CisJPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMDAnIGhl
aWdodD0nMTAwJz4KKwkJPHJlY3QgeD0nMTAnIHk9JzEwJyB3aWR0aD0nMTgwJyBoZWlnaHQ9Jzgw
JyBmaWxsPSdncmVlbicvPgorCQk8Y2lyY2xlIGN4PSczMCcgY3k9JzMwJyByPScxNScgZmlsbD0n
Ymx1ZScvPgorCQk8Y2lyY2xlIGN4PScxMzAnIGN5PSczMCcgcj0nMTUnIGZpbGw9J2JsdWUnLz4K
Kwk8L3N2Zz4iID4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419497</attachid>
            <date>2021-02-06 00:50:25 -0800</date>
            <delta_ts>2021-02-14 00:50:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219468-20210206005024.patch</filename>
            <type>text/plain</type>
            <size>132128</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc2YWI1ZWRmOGM1NDQ3
NGUwMWFlYWJkZDNiYzU1NjkzYTM1ZGE4Ni4uMWNhNDhkMGE5NTRlYTU4MDk5NWEzOTdlMDg0Njk4
OTBiZTJkMDAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMS0wMi0wNSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEltcGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZW5kaW5nIHRoZSBHcmFwaGljc0NvbnRleHRT
dGF0ZSB0byB0aGUgR1BVUCBpcyBhIHByb2JsZW1hdGljIGJlY2F1c2UgaXQKKyAgICAgICAgaGFz
IHBvaW50ZXJzIGZvciB0aGUgZ3JhZGllbnRzIGFuZCB0aGUgcGF0dGVybnMgYW5kIGhhcyBvYmpl
Y3RzIGZvciB0aGUKKyAgICAgICAgY29sb3JzLiBIb3dldmVyIG1vc3Qgb2YgdGhlIHRpbWUgaXQg
aW5jbHVkZXMgY2hhbmdlcyBmb3IgaW5saW5lIGRhdGEgb25seQorICAgICAgICB3aGljaCBkb2Vz
IG5vdCBuZWVkIHNwZWNpYWwgZW5jb2RpbmcgYW5kIGRlY29kaW5nLiBTbyBTZXRTdGF0ZSBoYXMg
dG8KKyAgICAgICAgaGFuZGxlIHRoZSBpbmxpbmUgYW5kIHRoZSBub24taW5saW5lIGNhc2VzIGVm
ZmljaWVudGx5LiBUaGUgcGxhbiBpcyB0aGUKKyAgICAgICAgZm9sbG93aW5nOgorCisgICAgICAg
IDEuIE1vdmUgdGhlIFBPRCBtZW1iZXJzIG9mIEdyYXBoaWNzQ29udGV4dFN0YXRlIHRvIGEgbmV3
IGNsYXNzIG5hbWVkCisgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlIGFuZCBt
YWtlIEdyYXBoaWNzQ29udGV4dFN0YXRlIGEgc3VwZXIgY2xhc3MKKyAgICAgICAgICAgb2YgaXQu
IE1ha2UgR3JhcGhpY3NDb250ZXh0U3RhdGUgb3ducyBhbGwgdGhlIHRoZSBub24gUE9EIG1lbWJl
cnMuCisKKyAgICAgICAgMi4gQWRkIHRoZSBTZXRJbmxpbmVTdGF0ZSBpdGVtIGFuZCBtYWtlIGl0
IGlubGluZSBpdGVtIHNvIGl0IGJlIGFwcGVuZGVkCisgICAgICAgICAgIGlmIHRoZSBHcmFwaGlj
c0NvbnRleHRTdGF0ZSBjb250YWlucyBvbmx5IGlubGluZSBjaGFuZ2VzLgorCisgICAgICAgIDMu
IERlbGV0ZSB0aGUgaW5saW5lIFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW1zIHNpbmNlIHRoZXkg
ZG8gbm90IHByb3ZpZGUKKyAgICAgICAgICAgYSBnZW5lcmFsIHNvbHV0aW9uIGZvciBTZXRTdGF0
ZS4gRnV0dXJlIHdvcmsgaXMgdG8gbWFrZSBTZXRJbmxpbmVTdGF0ZQorICAgICAgICAgICBoYW5k
bGUgbW9yZSBjYXNlcyBmb3IgY29sb3JzIGFuZCBncmFkaWVudHMuCisKKyAgICAgICAgNC4gTWFr
ZSB0aGUgdGlsZUltYWdlIG9mIFBhdHRlcm4gYmUgYSBSZWZQdHI8TmF0aXZlSW1hZ2U+LiBCdXQg
bWFrZSBzdXJlCisgICAgICAgICAgIFBhdHRlcm46OmNyZWF0ZSgpIG1ldGhvZCBnZW5lcmF0ZXMg
dGhlIE5hdGl2ZUltYWdlIGZyb20gdGhlIEltYWdlLgorCisgICAgICAgIDUuIFJlbW92ZSBlbmNv
ZGluZyB0aGUgSW1hZ2UgZnJvbSBQYXR0ZXJuOjplbmNvZGUoKSBhbmQgcmVtb3ZlIGVuY29kaW5n
CisgICAgICAgICAgIGFuZCBkZWNvZGluZyB0aGUgSW1hZ2VIYW5kbGUgZnJvbSBXZWJLaXQuCisK
KyAgICAgICAgNi4gQWRkIGEgcHJpdmF0ZSBQYXR0ZXJuOjpjcmVhdGUoKSBtZXRob2Qgd2hpY2gg
ZG9lcyBub3QgdGFrZSB0aGUgSW1hZ2UKKyAgICAgICAgICAgYXJndW1lbnQgYW5kIGNhbGwgaXQg
ZnJvbSB0aGUgUGF0dGVybjo6ZGVjb2RlKCkgbWV0aG9kLgorCisgICAgICAgIDcuIE1ha2UgRGlz
cGxheUxpc3Q6OlJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0gZGVjaWRlIHdoZXRoZXIg
dG8gCisgICAgICAgICAgIGFwcGVuZCBhIFNldElubGluZVN0YXRlIG9yIFNldFN0YXRlIGl0ZW0u
IElmIGEgU2V0U3RhdGUgaXMgYXBwZW5kZWQsCisgICAgICAgICAgIG1ha2Ugc3VyZSB0aGUgaW1h
Z2VzIG9mIHRoZSBzdHJva2VQYXR0ZXJuIGFuZCBmaWxsUGF0dGVybiBhcmUgY2FjaGVkIAorICAg
ICAgICAgICBieSB0aGUgRGlzcGxheUxpc3QgYW5kIHRoZSBtX2RlbGVnYXRlLgorCisgICAgICAg
IDguIE1ha2UgU2V0U3RhdGU6OmVuY29kZSgpIGVuY29kZSBhbmQgZGVjb2RlIHRoZSBpZGVudGlm
aWVycyBvZiB0aGUgc3Ryb2tlCisgICAgICAgICAgIHBhdHRlcm4gaW1hZ2UgYW5kIHRoZSBmaWxs
IHBhdHRlcm4gaW1hZ2UuCisKKyAgICAgICAgOS4gTWFrZSB0aGUgUmVwbGF5ZXI6OmFwcGx5SXRl
bSgpIHJlc29sdmUgdGhlIGlkZW50aWZpZXJzIGluIHRoZSBTZXRTdGF0ZQorICAgICAgICAgICBp
dGVtIHRvIGFjdHVhbCBOYXRpdmVJbWFnZXMgYW5kIHNlbmQgdGhlbSB0byBTZXRTdGF0ZTo6YXBw
bHkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNhbnZhczo6YnVpbGRBcnJheUZvckNhbnZhc1BhdHRlcm4pOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGU6OkdyYXBoaWNzQ29u
dGV4dElubGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRl
OjpHcmFwaGljc0NvbnRleHRTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXR0ZXJuOjpQ
YXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OnNldFRpbGVJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXR0ZXJuOjp0aWxlSW1hZ2UgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1BhdHRlcm4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQYXR0ZXJuOjpkZWNvZGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWlybzo6RmlsbFNvdXJjZTo6RmlsbFNvdXJjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
dHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmNy
ZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdDo6c2hvdWxkRHVtcEZvckZsYWdzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRlcyk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6U2V0SW5saW5lU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjphcHBseSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OlNldFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRp
ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVG
aWxsR3JhZGllbnQ6OmdyYWRpZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmFwcGx5IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
OmlzSW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJ
bmxpbmVGaWxsQ29sb3I6OmFwcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0YXRlQ2hh
bmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6c3Ry
b2tlUGF0dGVybkltYWdlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0U3RhdGU6OmZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OlNldElubGluZUZpbGxD
b2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5l
RmlsbENvbG9yOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6OlNldElubGluZVN0cm9rZUNvbG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xv
cjo6Y29sb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldFN0YXRlOjpzdGF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OndpbGxBcHBlbmRJ
dGVtT2ZUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjphcHBseVNldFN0YXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVwbGF5ZXI6OmFwcGx5SXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVRpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVUaWxlOjpwbGF0Zm9ybUFwcGx5U29m
dHdhcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cGF0dGVybkZvckRlc2NyaXB0aW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmJ1aWxkUGF0dGVybik6CisKIDIwMjEtMDItMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gSWYg
dGhlIEdQVVByb2Nlc3MgY3Jhc2hlcyBkdXJpbmcgZnVsbHNjcmVlbiBwbGF5YmFjaywgdmlkZW8g
cGF1c2VzIGFuZCBleGl0cyBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmOTQxN2U1NmYxZDM1M2Fm
OGZjZGU1ZjM0NjFjMTEzZTM3Y2JjMzAuLmNhZDU1NmNjMzkyNTVmYmRlNTU4YjBmOTdlOTUwYzBk
NWE3MGIzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDItMDUgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBs
ZW1lbnQgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgLS0gRGVsZXRlIHRoZSBpbmxpbmUgU2V0U3RhdGUgRGlz
cGxheUxpc3QgaXRlbXMuCisgICAgICAgIC0tIERlbGV0ZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcg
dGhlIEltYWdlSGFuZGxlIHdoaWNoIGlzIFdlYkNvcmU6OkltYWdlLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSk6CisgICAgICAgICogU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8SW1hZ2VIYW5kbGU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEltYWdlSGFuZGxlPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIxLTAyLTA1ICBLYXRlIENoZW5leSAg
PGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6
IENvbXBsZXRpb24gaGFuZGxlciBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCB1bmRlciBXZWJLaXQ6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Zm9yRWFjaFNlc3Npb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKaW5kZXggMGM4NWY4YTgzNzY3OTY2
YmEyNmI1YzMzM2VkNjBjMDFhNTBhYTExNi4uZTVmMjIxMGFlOTg3MzNlOTg0YWI1ODRmNmY5YTNj
ODQ3YjVhODA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZh
cy5jcHAKQEAgLTEyMDIsOSArMTIwMiwxMCBAQCBSZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1
ZT4+IEluc3BlY3RvckNhbnZhczo6YnVpbGRBcnJheUZvckNhbnZhc0dyYWRpZW50KGNvbgogCiBS
ZWY8SlNPTjo6QXJyYXlPZjxKU09OOjpWYWx1ZT4+IEluc3BlY3RvckNhbnZhczo6YnVpbGRBcnJh
eUZvckNhbnZhc1BhdHRlcm4oY29uc3QgQ2FudmFzUGF0dGVybiYgY2FudmFzUGF0dGVybikKIHsK
LSAgICBJbWFnZSYgdGlsZUltYWdlID0gY2FudmFzUGF0dGVybi5wYXR0ZXJuKCkudGlsZUltYWdl
KCk7CisgICAgYXV0byYgdGlsZUltYWdlID0gY2FudmFzUGF0dGVybi5wYXR0ZXJuKCkudGlsZUlt
YWdlKCk7CisgICAgRmxvYXRSZWN0IHJlY3QgPSB7IHsgfSwgdGlsZUltYWdlLnNpemUoKSB9Owog
ICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRpbGVJbWFnZS5zaXpl
KCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwotICAgIGltYWdlQnVmZmVyLT5jb250
ZXh0KCkuZHJhd0ltYWdlKHRpbGVJbWFnZSwgRmxvYXRQb2ludCgwLCAwKSk7CisgICAgaW1hZ2VC
dWZmZXItPmNvbnRleHQoKS5kcmF3TmF0aXZlSW1hZ2UodGlsZUltYWdlLCB0aWxlSW1hZ2Uuc2l6
ZSgpLCByZWN0LCByZWN0KTsKIAogICAgIFN0cmluZyByZXBlYXQ7CiAgICAgYm9vbCByZXBlYXRY
ID0gY2FudmFzUGF0dGVybi5wYXR0ZXJuKCkucmVwZWF0WCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggMmEwNjc1
YTEzN2VhMjI2OTRmYjBkYWNmYTVjZGVkMTM3MTYxOWMzYi4uMWU1OTRjYmVlNzdiOTY3NTVmNTNi
OWY4ZjQzYTljZmI5ZDU2NjMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03NywyNiArNzcsNiBAQCBwcml2YXRl
OgogICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpm
bGFnKSAmJiAobV9zdGF0ZS5wcm9wZXJ0eSAhPSBzdGF0ZS5wcm9wZXJ0eSkpIFwKICAgICAgICAg
Y2hhbmdlRmxhZ3MuYWRkKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpmbGFnKTsKIAotR3JhcGhpY3ND
b250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKCkKLSAgICA6IHNob3VsZEFudGlhbGlh
cyh0cnVlKQotICAgICwgc2hvdWxkU21vb3RoRm9udHModHJ1ZSkKLSAgICAsIHNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250cyh0cnVlKQotICAgICwgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoZmFs
c2UpCi0jaWYgVVNFKENHKQotICAgIC8vIENvcmUgR3JhcGhpY3MgaW5jb3JyZWN0bHkgcmVuZGVy
cyBzaGFkb3dzIHdpdGggcmFkaXVzID4gOHB4ICg8cmRhcjovL3Byb2JsZW0vODEwMzQ0Mj4pLAot
ICAgIC8vIGJ1dCB3ZSBuZWVkIHRvIHByZXNlcnZlIHRoaXMgYnVnZ3kgYmVoYXZpb3IgZm9yIGNh
bnZhcyBhbmQgLXdlYmtpdC1ib3gtc2hhZG93LgotICAgICwgc2hhZG93c1VzZUxlZ2FjeVJhZGl1
cyhmYWxzZSkKLSNlbmRpZgotICAgICwgZHJhd0x1bWluYW5jZU1hc2soZmFsc2UpCi17Ci19Ci0K
LUdyYXBoaWNzQ29udGV4dFN0YXRlOjp+R3JhcGhpY3NDb250ZXh0U3RhdGUoKSA9IGRlZmF1bHQ7
Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhp
Y3NDb250ZXh0U3RhdGUoR3JhcGhpY3NDb250ZXh0U3RhdGUmJikgPSBkZWZhdWx0OwotR3JhcGhp
Y3NDb250ZXh0U3RhdGUmIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpvcGVyYXRvcj0oY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZSYgR3Jh
cGhpY3NDb250ZXh0U3RhdGU6Om9wZXJhdG9yPShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKSA9IGRl
ZmF1bHQ7Ci0KIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIEdyYXBoaWNz
Q29udGV4dFN0YXRlQ2hhbmdlOjpjaGFuZ2VzRnJvbVN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlJiBzdGF0ZSkgY29uc3QKIHsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVD
aGFuZ2VGbGFncyBjaGFuZ2VGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggNDA2NDI4ZTg0YmY0MGQ2YzVlNGYxNWFh
ZmVkYzBlMTg2YjgzMTYwMi4uYjI3YzdmYWNhZTM3MjNkYTIzNzcxYzBkMDkzYTNhNGQwMTlhMjEy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEYXNoQXJyYXkuaCIKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkdy
YWRpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkltYWdlLmgi
CiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgpAQCAtNzksNyArODAsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEZsb2F0Um91bmRl
ZFJlY3Q7Ci1jbGFzcyBHcmFkaWVudDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEltcGw7CiBjbGFz
cyBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKQEAg
LTE1MCwxNiArMTUwLDcgQEAgT3B0aW9uYWw8RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU+IERvY3Vt
ZW50TWFya2VyTGluZVN0eWxlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICByZXR1cm4ge3sg
Km1vZGUsICpzaG91bGRVc2VEYXJrQXBwZWFyYW5jZSB9fTsKIH0KIAotc3RydWN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlIHsKLSAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRTdGF0ZSgp
OwotICAgIFdFQkNPUkVfRVhQT1JUIH5HcmFwaGljc0NvbnRleHRTdGF0ZSgpOwotCi0gICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRTdGF0ZShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKTsK
LQotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlJiBvcGVyYXRvcj0oY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgb3Bl
cmF0b3I9KEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOwotCitzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0
SW5saW5lU3RhdGUgewogICAgIGVudW0gQ2hhbmdlIDogdWludDMyX3QgewogICAgICAgICBTdHJv
a2VHcmFkaWVudENoYW5nZSAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDAsCiAgICAgICAgIFN0
cm9rZVBhdHRlcm5DaGFuZ2UgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMSwKQEAgLTE4Niwx
MiArMTc3LDIwIEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAjZW5kaWYKICAgICB9
OwogICAgIHVzaW5nIFN0YXRlQ2hhbmdlRmxhZ3MgPSBPcHRpb25TZXQ8Q2hhbmdlPjsKLQotICAg
IFJlZlB0cjxHcmFkaWVudD4gc3Ryb2tlR3JhZGllbnQ7Ci0gICAgUmVmUHRyPFBhdHRlcm4+IHN0
cm9rZVBhdHRlcm47CiAgICAgCi0gICAgUmVmUHRyPEdyYWRpZW50PiBmaWxsR3JhZGllbnQ7Ci0g
ICAgUmVmUHRyPFBhdHRlcm4+IGZpbGxQYXR0ZXJuOworICAgIEdyYXBoaWNzQ29udGV4dElubGlu
ZVN0YXRlKCkKKyAgICAgICAgOiBzaG91bGRBbnRpYWxpYXModHJ1ZSkKKyAgICAgICAgLCBzaG91
bGRTbW9vdGhGb250cyh0cnVlKQorICAgICAgICAsIHNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250
cyh0cnVlKQorICAgICAgICAsIHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKGZhbHNlKQorI2lmIFVT
RShDRykKKyAgICAgICAgLy8gQ29yZSBHcmFwaGljcyBpbmNvcnJlY3RseSByZW5kZXJzIHNoYWRv
d3Mgd2l0aCByYWRpdXMgPiA4cHggKDxyZGFyOi8vcHJvYmxlbS84MTAzNDQyPiksCisgICAgICAg
IC8vIGJ1dCB3ZSBuZWVkIHRvIHByZXNlcnZlIHRoaXMgYnVnZ3kgYmVoYXZpb3IgZm9yIGNhbnZh
cyBhbmQgLXdlYmtpdC1ib3gtc2hhZG93LgorICAgICAgICAsIHNoYWRvd3NVc2VMZWdhY3lSYWRp
dXMoZmFsc2UpCisjZW5kaWYKKyAgICAgICAgLCBkcmF3THVtaW5hbmNlTWFzayhmYWxzZSkKKyAg
ICB7CisgICAgfQogCiAgICAgRmxvYXRTaXplIHNoYWRvd09mZnNldDsKIApAQCAtMjAwLDEwICsx
OTksNiBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogCiAgICAgVGV4dERyYXdpbmdN
b2RlRmxhZ3MgdGV4dERyYXdpbmdNb2RlIHsgVGV4dERyYXdpbmdNb2RlOjpGaWxsIH07CiAKLSAg
ICBDb2xvciBzdHJva2VDb2xvciB7IENvbG9yOjpibGFjayB9OwotICAgIENvbG9yIGZpbGxDb2xv
ciB7IENvbG9yOjpibGFjayB9OwotICAgIENvbG9yIHNoYWRvd0NvbG9yOwotCiAgICAgQWZmaW5l
VHJhbnNmb3JtIHN0cm9rZUdyYWRpZW50U3BhY2VUcmFuc2Zvcm07CiAgICAgQWZmaW5lVHJhbnNm
b3JtIGZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtOwogICAgIApAQCAtMjI4LDYgKzIyMywyNCBA
QCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogI2VuZGlmCiB9OwogCitzdHJ1Y3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgewor
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlKCkgPSBkZWZhdWx0OworICAgIEdyYXBoaWNzQ29udGV4
dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlJiBvdGhlcikKKyAgICAgICAg
OiBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZShvdGhlcikKKyAgICB7CisgICAgfQorCisgICAg
UmVmUHRyPEdyYWRpZW50PiBzdHJva2VHcmFkaWVudDsKKyAgICBSZWZQdHI8UGF0dGVybj4gc3Ry
b2tlUGF0dGVybjsKKworICAgIFJlZlB0cjxHcmFkaWVudD4gZmlsbEdyYWRpZW50OworICAgIFJl
ZlB0cjxQYXR0ZXJuPiBmaWxsUGF0dGVybjsKKworICAgIENvbG9yIHN0cm9rZUNvbG9yIHsgQ29s
b3I6OmJsYWNrIH07CisgICAgQ29sb3IgZmlsbENvbG9yIHsgQ29sb3I6OmJsYWNrIH07CisgICAg
Q29sb3Igc2hhZG93Q29sb3I7Cit9OworCiBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFu
Z2UgewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKCkgPSBkZWZhdWx0OwogICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0
ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgZmxhZ3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCA0MzZiMzdkNmM4ZWM2ZjAwZjRm
ZWI0ZGQzNmY0YTI5MjNjN2Y5NmVhLi5kYTAxMGYzZmRjZDA2ODA1NjI4Yjg2MGNhZTMyYmQ5YmU5
YTQ1NDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTIx
MCwxMSArMjEwLDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1fYW5p
bWF0aW9uU3RhcnRUaW1lcjsKIH07CiAKLWNsYXNzIEltYWdlSGFuZGxlIHsKLXB1YmxpYzoKLSAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlOwotfTsKLQogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEltYWdlJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKaW5kZXgg
Nzk2YTA3YzE4NmI2MmZmNGU2YjZlYTI2MTA3ZmY5ZmM0YzQzOGU3MS4uMmMxNTE0NGMyNjRkZDE1
M2MwMjk0YzAxZGQ4MDA0NTVlYjdlMjEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5jcHAKQEAgLTI3LDI0ICsyNyw3MyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlBhdHRlcm4uaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZWY8UGF0dGVybj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxJbWFnZT4m
JiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKQoreworICAgIGlmIChhdXRv
IG5hdGl2ZUltYWdlID0gdGlsZUltYWdlLT5uYXRpdmVJbWFnZSgpKQorICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBQYXR0ZXJuKG5hdGl2ZUltYWdlLnJlbGVhc2VOb25OdWxsKCksIHJlcGVh
dFgsIHJlcGVhdFkpKTsKKworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKHRpbGVJbWFnZS0+c2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKKwor
ICAgIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gdGlsZUltYWdlLT5pbWFnZU9ic2VydmVyKCk7
CisKKyAgICBpZiAodGlsZUltYWdlLT5pc1NWR0ltYWdlKCkpIHsKKyAgICAgICAgdGlsZUltYWdl
LT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgICAgICB0aWxlSW1hZ2UtPnNldENvbnRh
aW5lclNpemUodGlsZUltYWdlLT5zaXplKCkpOworICAgIH0KKworICAgIGltYWdlQnVmZmVyLT5j
b250ZXh0KCkuZHJhd0ltYWdlKHRpbGVJbWFnZSwgRmxvYXRQb2ludCgwLCAwKSk7CisKKyAgICBp
ZiAodGlsZUltYWdlLT5pc1NWR0ltYWdlKCkpCisgICAgICAgIHRpbGVJbWFnZS0+c2V0SW1hZ2VP
YnNlcnZlcihvYnNlcnZlcik7CisKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0gSW1hZ2VCdWZmZXI6
OnNpbmtJbnRvTmF0aXZlSW1hZ2UoV1RGTW92ZShpbWFnZUJ1ZmZlcikpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFBhdHRlcm4obmF0aXZlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgcmVwZWF0
WCwgcmVwZWF0WSkpOworfQorCitSZWY8UGF0dGVybj4gUGF0dGVybjo6Y3JlYXRlKFJlZjxOYXRp
dmVJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKQogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFBhdHRlcm4oV1RGTW92ZSh0aWxlSW1hZ2UpLCByZXBlYXRY
LCByZXBlYXRZKSk7CiB9CiAKLVBhdHRlcm46OlBhdHRlcm4oUmVmPEltYWdlPiYmIGltYWdlLCBi
b29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSkKK1JlZjxQYXR0ZXJuPiBQYXR0ZXJuOjpjcmVhdGUo
Ym9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blNwYWNlVHJhbnNmb3JtYXRpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF0dGVy
bihyZXBlYXRYLCByZXBlYXRZLCBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikpOworfQorCitQ
YXR0ZXJuOjpQYXR0ZXJuKFJlZjxOYXRpdmVJbWFnZT4mJiBpbWFnZSwgYm9vbCByZXBlYXRYLCBi
b29sIHJlcGVhdFkpCiAgICAgOiBtX3RpbGVJbWFnZShXVEZNb3ZlKGltYWdlKSkKICAgICAsIG1f
cmVwZWF0WChyZXBlYXRYKQogICAgICwgbV9yZXBlYXRZKHJlcGVhdFkpCiB7CiB9CiAKK1BhdHRl
cm46OlBhdHRlcm4oYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pCisgICAgOiBtX3JlcGVhdFgocmVwZWF0
WCkKKyAgICAsIG1fcmVwZWF0WShyZXBlYXRZKQorICAgICwgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zv
cm1hdGlvbihwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbikKK3sKK30KKwogUGF0dGVybjo6flBh
dHRlcm4oKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgUGF0dGVybjo6c2V0VGlsZUltYWdlKFJlZjxOYXRp
dmVJbWFnZT4mJiB0aWxlSW1hZ2UpCit7CisgICAgQVNTRVJUKCFtX3RpbGVJbWFnZSk7CisgICAg
bV90aWxlSW1hZ2UgPSBXVEZNb3ZlKHRpbGVJbWFnZSk7Cit9CisKK05hdGl2ZUltYWdlJiBQYXR0
ZXJuOjp0aWxlSW1hZ2UoKSBjb25zdAoreworICAgIEFTU0VSVChtX3RpbGVJbWFnZSk7CisgICAg
cmV0dXJuICptX3RpbGVJbWFnZTsKK30KKwogdm9pZCBQYXR0ZXJuOjpzZXRQYXR0ZXJuU3BhY2VU
cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlv
bikKIHsKICAgICBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uID0gcGF0dGVyblNwYWNlVHJh
bnNmb3JtYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QYXR0ZXJuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgK
aW5kZXggMmE1NjNkYTI2MTdkMWIwNDI0OGI5MGFiMDYzOWRiMmNhZjlhODhjMC4uZjhlMzJlMWFl
MjM5MGZjNDgxNTFiYjc4N2E1MmUyY2M0MDQ4Mjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BhdHRlcm4uaApAQCAtNTMsMTQgKzUzLDE1IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNs
YXNzIEltYWdlOwotY2xhc3MgSW1hZ2VIYW5kbGU7CiAKIGNsYXNzIFBhdHRlcm4gZmluYWwgOiBw
dWJsaWMgUmVmQ291bnRlZDxQYXR0ZXJuPiB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxQYXR0ZXJuPiBjcmVhdGUoUmVmPEltYWdlPiYmIHRpbGVJbWFnZSwgYm9vbCBy
ZXBlYXRYLCBib29sIHJlcGVhdFkpOworICAgIHN0YXRpYyBSZWY8UGF0dGVybj4gY3JlYXRlKFJl
ZjxJbWFnZT4mJiB0aWxlSW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBz
dGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShSZWY8TmF0aXZlSW1hZ2U+JiYgdGlsZUltYWdlLCBi
b29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhdHRlcm4o
KTsKIAotICAgIEltYWdlJiB0aWxlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX3RpbGVJbWFnZS5n
ZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGlsZUltYWdlKFJlZjxOYXRpdmVJ
bWFnZT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgTmF0aXZlSW1hZ2UmIHRpbGVJbWFnZSgpIGNv
bnN0OwogCiAgICAgLy8gUGF0dGVybiBzcGFjZSBpcyBhbiBhYnN0cmFjdCBzcGFjZSB0aGF0IG1h
cHMgdG8gdGhlIGRlZmF1bHQgdXNlciBzcGFjZSBieSB0aGUgdHJhbnNmb3JtYXRpb24gJ3VzZXJT
cGFjZVRyYW5zZm9ybWF0aW9uJwogI2lmICFVU0UoRElSRUNUMkQpCkBAIC03NywyMCArNzgsMjAg
QEAgcHVibGljOgogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxS
ZWY8UGF0dGVybj4+IGRlY29kZShEZWNvZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgUGF0dGVybihS
ZWY8SW1hZ2U+JiYsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmPFBhdHRlcm4+IGNyZWF0ZShib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0
WSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbiA9IHsg
fSk7CiAKLSAgICBSZWY8SW1hZ2U+IG1fdGlsZUltYWdlOwotICAgIEFmZmluZVRyYW5zZm9ybSBt
X3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOworICAgIFBhdHRlcm4oUmVmPE5hdGl2ZUltYWdl
PiYmLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSk7CisgICAgUGF0dGVybihib29sIHJlcGVh
dFgsIGJvb2wgcmVwZWF0WSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CisKKyAgICBSZWZQdHI8
TmF0aXZlSW1hZ2U+IG1fdGlsZUltYWdlOwogICAgIGJvb2wgbV9yZXBlYXRYOwogICAgIGJvb2wg
bV9yZXBlYXRZOworICAgIEFmZmluZVRyYW5zZm9ybSBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0
aW9uOwogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUGF0dGVybjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgSW1hZ2VIYW5kbGUgaW1hZ2VIYW5kbGU7
Ci0gICAgaW1hZ2VIYW5kbGUuaW1hZ2UgPSBtX3RpbGVJbWFnZS5wdHIoKTsKLSAgICBlbmNvZGVy
IDw8IGltYWdlSGFuZGxlOwogICAgIGVuY29kZXIgPDwgbV9wYXR0ZXJuU3BhY2VUcmFuc2Zvcm1h
dGlvbjsKICAgICBlbmNvZGVyIDw8IG1fcmVwZWF0WDsKICAgICBlbmNvZGVyIDw8IG1fcmVwZWF0
WTsKQEAgLTk5LDExICsxMDAsNiBAQCB2b2lkIFBhdHRlcm46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIE9wdGlvbmFsPFJlZjxQYXR0ZXJu
Pj4gUGF0dGVybjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8SW1h
Z2VIYW5kbGU+IGltYWdlSGFuZGxlOwotICAgIGRlY29kZXIgPj4gaW1hZ2VIYW5kbGU7Ci0gICAg
aWYgKCFpbWFnZUhhbmRsZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQogICAgIE9w
dGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb247CiAgICAg
ZGVjb2RlciA+PiBwYXR0ZXJuU3BhY2VUcmFuc2Zvcm1hdGlvbjsKICAgICBpZiAoIXBhdHRlcm5T
cGFjZVRyYW5zZm9ybWF0aW9uKQpAQCAtMTE5LDkgKzExNSw3IEBAIE9wdGlvbmFsPFJlZjxQYXR0
ZXJuPj4gUGF0dGVybjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFyZXBlYXRZ
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgYXV0byBwYXR0ZXJuID0gUGF0
dGVybjo6Y3JlYXRlKGltYWdlSGFuZGxlLT5pbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCAqcmVwZWF0
WCwgKnJlcGVhdFkpOwotICAgIHBhdHRlcm4tPnNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSgqcGF0
dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOwotICAgIHJldHVybiBwYXR0ZXJuOworICAgIHJldHVy
biBQYXR0ZXJuOjpjcmVhdGUoKnJlcGVhdFgsICpyZXBlYXRZLCAqcGF0dGVyblNwYWNlVHJhbnNm
b3JtYXRpb24pOwogfQogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAppbmRleCA3
MzIwZGExY2JmZTkyODVmZDEyNmYwMDI0MTQzOGM0ZGJhMzllY2M5Li43ZmFlNzc3YzM5NjZiNGM0
ODZkZTIyMzJiMTkxMTMyMzFmZDkyZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKQEAgLTU2Nyw3
ICs1NjcsNyBAQCBGaWxsU291cmNlOjpGaWxsU291cmNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiBzdGF0ZSkKICAgICAgICAgcGF0dGVybi5vYmplY3QgPSBhZG9wdFJlZihzdGF0ZS5maWxs
UGF0dGVybi0+Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKEFmZmluZVRyYW5zZm9ybSgpKSk7CiAKICAg
ICAgICAgYXV0byYgcGF0dGVybkltYWdlID0gc3RhdGUuZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgp
OwotICAgICAgICBwYXR0ZXJuLnNpemUgPSBGbG9hdFNpemUocGF0dGVybkltYWdlLndpZHRoKCks
IHBhdHRlcm5JbWFnZS5oZWlnaHQoKSk7CisgICAgICAgIHBhdHRlcm4uc2l6ZSA9IHBhdHRlcm5J
bWFnZS5zaXplKCk7CiAgICAgICAgIHBhdHRlcm4udHJhbnNmb3JtID0gc3RhdGUuZmlsbFBhdHRl
cm4tPnBhdHRlcm5TcGFjZVRyYW5zZm9ybSgpOwogICAgICAgICBwYXR0ZXJuLnJlcGVhdFggPSBz
dGF0ZS5maWxsUGF0dGVybi0+cmVwZWF0WCgpOwogICAgICAgICBwYXR0ZXJuLnJlcGVhdFkgPSBz
dGF0ZS5maWxsUGF0dGVybi0+cmVwZWF0WSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKaW5kZXggNTYwZjc0N2E4
ZmI2NDgxYmU0YTMwMTg1ODUwMGFhOWZhMTYwZjc4Ni4uMTIzNDI0NzRhNjUxOGIzZmUwZDk1NTdm
YzNmY2MwMjI3NGI4Y2EyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCkBAIC0zNSwxMSArMzUsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjYWlyb19wYXR0ZXJuX3QqIFBhdHRlcm46OmNyZWF0ZVBsYXRm
b3JtUGF0dGVybihjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKSBjb25zdAogewotICAgIGF1dG8gbmF0
aXZlSW1hZ2UgPSB0aWxlSW1hZ2UoKS5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAg
IGlmICghbmF0aXZlSW1hZ2UpCisgICAgUGxhdGZvcm1JbWFnZVB0ciBwbGF0Zm9ybUltYWdlID0g
dGlsZUltYWdlKCkucGxhdGZvcm1JbWFnZSgpOworICAgIGlmICghcGxhdGZvcm1JbWFnZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4gPSBj
YWlyb19wYXR0ZXJuX2NyZWF0ZV9mb3Jfc3VyZmFjZShuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFn
ZSgpLmdldCgpKTsKKyAgICBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4gPSBjYWlyb19wYXR0ZXJu
X2NyZWF0ZV9mb3Jfc3VyZmFjZShwbGF0Zm9ybUltYWdlLmdldCgpKTsKIAogICAgIC8vIGNhaXJv
IG1lcmdlcyBwYXR0ZXIgc3BhY2UgYW5kIHVzZXIgc3BhY2UgaXRzZWxmCiAgICAgY2Fpcm9fbWF0
cml4X3QgbWF0cml4ID0gdG9DYWlyb01hdHJpeChtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRl
cm5DRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cu
Y3BwCmluZGV4IDY5NTRjNTY2NTcwYWQ3YWU2YzFlNzYwZjA3ODdkMzc3MGFjYWE2OTQuLmVlMTc1
NjQwOWFjYjhlN2RiZDQ5NzcyZjQ0MjBlYzkwY2MwMGI0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcApAQCAtNTcsMTYgKzU3LDEz
IEBAIHN0YXRpYyB2b2lkIHBhdHRlcm5SZWxlYXNlQ2FsbGJhY2sodm9pZCogaW5mbykKIAogQ0dQ
YXR0ZXJuUmVmIFBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybihjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHVzZXJTcGFjZVRyYW5zZm9ybWF0aW9uKSBjb25zdAogewotICAgIEZsb2F0UmVjdCB0
aWxlUmVjdCA9IHRpbGVJbWFnZSgpLnJlY3QoKTsKKyAgICBGbG9hdFJlY3QgdGlsZVJlY3QgPSB7
IHsgfSwgdGlsZUltYWdlKCkuc2l6ZSgpIH07CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVy
blRyYW5zZm9ybSA9IHVzZXJTcGFjZVRyYW5zZm9ybWF0aW9uICogbV9wYXR0ZXJuU3BhY2VUcmFu
c2Zvcm1hdGlvbjsKICAgICBwYXR0ZXJuVHJhbnNmb3JtLnNjYWxlTm9uVW5pZm9ybSgxLCAtMSk7
CiAgICAgcGF0dGVyblRyYW5zZm9ybS50cmFuc2xhdGUoMCwgLXRpbGVSZWN0LmhlaWdodCgpKTsK
IAotICAgIFBsYXRmb3JtSW1hZ2VQdHIgcGxhdGZvcm1JbWFnZTsKLSAgICBpZiAoYXV0byBuYXRp
dmVJbWFnZSA9IHRpbGVJbWFnZSgpLm5hdGl2ZUltYWdlKCkpCi0gICAgICAgIHBsYXRmb3JtSW1h
Z2UgPSBuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpOwotICAgIAorICAgIFBsYXRmb3JtSW1h
Z2VQdHIgcGxhdGZvcm1JbWFnZSA9IHRpbGVJbWFnZSgpLnBsYXRmb3JtSW1hZ2UoKTsKICAgICBp
ZiAoIXBsYXRmb3JtSW1hZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0LmNwcAppbmRleCBkMTUzZGZhNDVjMjFhZDg3M2U0ZDQ4NDY3MWYzZDA0YWNiNzQ4
NTRiLi41MmUxMThkYzljMDM0ODE1NDYyMzJiMWVlNTVjY2VmYjM4Zjg2Y2I1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTkxLDEwICs5MSwxMCBAQCBib29sIERpc3BsYXlMaXN0Ojpz
aG91bGREdW1wRm9yRmxhZ3MoQXNUZXh0RmxhZ3MgZmxhZ3MsIEl0ZW1IYW5kbGUgaXRlbSkKICAg
ICAgICAgaWYgKCEoZmxhZ3MgJiBBc1RleHRGbGFnOjpJbmNsdWRlc1BsYXRmb3JtT3BlcmF0aW9u
cykpIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHN0YXRlSXRlbSA9IGl0ZW0uZ2V0PFNldFN0
YXRlPigpOwogICAgICAgICAgICAgLy8gRklYTUU6IGZvciBub3csIG9ubHkgZHJvcCB0aGUgaXRl
bSBpZiB0aGUgb25seSBzdGF0ZS1jaGFuZ2UgZmxhZ3MgYXJlIHBsYXRmb3JtLXNwZWNpZmljLgot
ICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkKKyAgICAg
ICAgICAgIGlmIChzdGF0ZUl0ZW0uc3RhdGVDaGFuZ2UoKS5tX2NoYW5nZUZsYWdzID09IEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0
YXRlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4
ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQorICAgICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZUNo
YW5nZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250c0NoYW5nZSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC0yMDMsMTYgKzIwMywxMiBAQCB2b2lkIERpc3Bs
YXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBwZW5kPENv
bmNhdGVuYXRlQ1RNPihpdGVtLmdldDxDb25jYXRlbmF0ZUNUTT4oKSk7CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1cm4gYXBwZW5kPFNldENUTT4oaXRlbS5nZXQ8U2V0
Q1RNPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAg
ICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PihpdGVtLmdldDxTZXRJbmxp
bmVGaWxsR3JhZGllbnQ+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KGl0ZW0uZ2V0PFNl
dElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tl
Q29sb3I6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KGl0ZW0u
Z2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJv
a2VUaGlja25lc3M6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPihp
dGVtLmdldDxTZXRTdHJva2VUaGlja25lc3M+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElu
bGluZVN0YXRlOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGluZVN0YXRlPihpdGVtLmdl
dDxTZXRJbmxpbmVTdGF0ZT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6CiAgICAg
ICAgIHJldHVybiBhcHBlbmQ8U2V0U3RhdGU+KGl0ZW0uZ2V0PFNldFN0YXRlPigpKTsKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CisgICAgICAgIHJldHVybiBhcHBlbmQ8
U2V0U3Ryb2tlVGhpY2tuZXNzPihpdGVtLmdldDxTZXRTdHJva2VUaGlja25lc3M+KCkpOwogICAg
IGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0TGlu
ZUNhcD4oaXRlbS5nZXQ8U2V0TGluZUNhcD4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGlu
ZURhc2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4
IDUwYzhkOGY3NTc3YTE2NzA1ZWNmODU1YWQxNjk4MThiNmRmOThiYmEuLjliNmFlYmVjZWM4NTI2
N2RiNmZhN2Y4NjNlZDUwYmQ1MDFhY2QxYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC03MiwyNiArNzIsMTggQEAgdm9pZCBJdGVtSGFuZGxlOjph
cHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGdldDxTZXRDVE0+KCkuYXBw
bHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVGaWxsR3JhZGll
bnQ+KCkuYXBwbHkoY29udGV4dCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6
IHsKKyAgICAgICAgZ2V0PFNldElubGluZVN0YXRlPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjog
ewotICAgICAgICBnZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNv
bG9yOiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKS5hcHBseShjb250ZXh0
KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRT
dHJva2VUaGlja25lc3M6IHsKICAgICAgICAgZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKS5hcHBs
eShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRTdGF0ZTogewotICAgICAgICBnZXQ8U2V0U3RhdGU+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDogewogICAg
ICAgICBnZXQ8U2V0TGluZUNhcD4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTIxLDcgKzExMyw3IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkNs
aXBUb0ltYWdlQnVmZmVyOiB7Ci0gICAgICAgIGdldDxDbGlwVG9JbWFnZUJ1ZmZlcj4oKS5hcHBs
eShjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDogewpAQCAtMTQwLDE1
ICsxMzIsMTUgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOiB7Ci0gICAgICAgIGdldDxEcmF3SW1hZ2VC
dWZmZXI+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFn
ZTogewotICAgICAgICBnZXQ8RHJhd05hdGl2ZUltYWdlPigpLmFwcGx5KGNvbnRleHQpOworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjogewotICAgICAgICBnZXQ8RHJhd1BhdHRlcm4+KCku
YXBwbHkoY29udGV4dCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdSZWN0OiB7CkBAIC00ODYsMTYg
KzQ3OCw4IEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVzdHJveSgpCiAgICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldENUTT46OnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6
IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8
U2V0SW5saW5lRmlsbENvbG9yPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDogewotICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVGaWxsR3JhZGll
bnQ+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Ry
aXZpYWxseV9kZXN0cnVjdGlibGU8U2V0SW5saW5lU3Ryb2tlQ29sb3I+Ojp2YWx1ZSk7CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0SW5saW5lU3RhdGU+Ojp2YWx1ZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDogewpA
QCAtNjYyLDEyICs2NDYsOCBAQCBib29sIEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1IYW5kbGUg
ZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTY2FsZT4oKnRoaXMs
IGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPFNldENUTT4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6
OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZp
bGxDb2xvcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxHcmFkaWVudDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZpbGxHcmFk
aWVudD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0
cm9rZUNvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lU3Ryb2tlQ29sb3I+
KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToK
KyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZVN0YXRlPigqdGhpcywgaXRlbU9mZnNl
dCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPFNldExpbmVDYXA+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRMaW5lSm9pbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRl
eCBjMGM3M2I4M2JkNTJlYWEwNGE5NTE3ODE4MDQ0NTM5NDdiYmM5NWU5Li45ZGY2OTdiMjEwMGZl
MjIxZTFmZTRjMTI2M2RjYTQwMWIyODU3MTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuY3BwCkBAIC00OCwxNiArNDgsMTIgQEAgc3RhdGljIHNpemVfdCBzaXplT2ZJ
dGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKENvbmNhdGVu
YXRlQ1RNKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06CiAgICAgICAgIHJldHVybiBzaXpl
b2YoU2V0Q1RNKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0g
ICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5saW5lRmlsbEdyYWRpZW50KTsKLSAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5s
aW5lRmlsbENvbG9yKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoK
LSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVTdHJva2VDb2xvcik7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0
cm9rZVRoaWNrbmVzcyk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAg
ICAgIHJldHVybiBzaXplb2YoU2V0SW5saW5lU3RhdGUpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNl
dFN0YXRlOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0YXRlKTsKKyAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRTdHJva2VUaGlja25lc3M6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3Ryb2tl
VGhpY2tuZXNzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1
cm4gc2l6ZW9mKFNldExpbmVDYXApOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgpA
QCAtMTg5LDkgKzE4NSw3IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBlKQogICAg
IGNhc2UgSXRlbVR5cGU6OlNhdmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lU3RhdGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRMaW5lRGFzaDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKQEAgLTMw
Miw5ICsyOTYsNyBAQCBib29sIGlzSW5saW5lSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2Ug
SXRlbVR5cGU6OlNhdmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Rh
dGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRMaW5lSm9pbjoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXggMGU5NDdhMDZkYWI1YTJkZmI0NzY5MDgy
ZjhjYWM1NDhhZjg5MzQzYi4uNjE1ZTNhYjM0YjgxZDliOTdhMDliNTZmMDA0NDcxZmZkY2JlMDgx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC0zNiwxMSArMzYs
OSBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgU2NhbGUsCiAgICAgQ29u
Y2F0ZW5hdGVDVE0sCiAgICAgU2V0Q1RNLAotICAgIFNldElubGluZUZpbGxHcmFkaWVudCwKLSAg
ICBTZXRJbmxpbmVGaWxsQ29sb3IsCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IsCi0gICAgU2V0
U3Ryb2tlVGhpY2tuZXNzLAorICAgIFNldElubGluZVN0YXRlLAogICAgIFNldFN0YXRlLAorICAg
IFNldFN0cm9rZVRoaWNrbmVzcywKICAgICBTZXRMaW5lQ2FwLAogICAgIFNldExpbmVEYXNoLAog
ICAgIFNldExpbmVKb2luLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4
IDIxM2RiOWM4Y2Y0MmVjMWFlMmQxMzM5Mzc1ZDlmNTYzMGU3NmQ3NDMuLjdhMDIzNDg4N2Y1M2Q0
ZDY5NjRkN2NlMjkwMzFmMDIxMjBlYzVlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHAKQEAgLTExNSw4OCArMTE1LDI0IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25jYXRlbmF0ZUNUTSYgaXRlbSkKICAgICByZXR1
cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50
KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVu
dFNwYWNlVHJhbnNmb3JtKQotICAgIDogbV9kYXRhKGdyYWRpZW50LmRhdGEoKSkKLSAgICAsIG1f
Z3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgICwgbV9z
cHJlYWRNZXRob2QoZ3JhZGllbnQuc3ByZWFkTWV0aG9kKCkpCi0gICAgLCBtX2NvbG9yU3RvcENv
dW50KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGdyYWRpZW50LnN0b3BzKCkuc2l6ZSgpKSkKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KTsK
LSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAg
ICAgICAgbV9vZmZzZXRzW2ldID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5vZmZzZXQ7Ci0gICAgICAg
IG1fY29sb3JzW2ldID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5jb2xvci5hc0lubGluZSgpOwotICAg
IH0KLX0KLQotU2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoZmxv
YXQgb2Zmc2V0c1ttYXhDb2xvclN0b3BDb3VudF0sIFNSR0JBPHVpbnQ4X3Q+IGNvbG9yc1ttYXhD
b2xvclN0b3BDb3VudF0sIGNvbnN0IEdyYWRpZW50OjpEYXRhJiBkYXRhLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0sIEdyYWRpZW50U3ByZWFkTWV0aG9kIHNw
cmVhZE1ldGhvZCwgdWludDhfdCBjb2xvclN0b3BDb3VudCkKLSAgICA6IG1fZGF0YShkYXRhKQot
ICAgICwgbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtKGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCi0g
ICAgLCBtX3NwcmVhZE1ldGhvZChzcHJlYWRNZXRob2QpCi0gICAgLCBtX2NvbG9yU3RvcENvdW50
KGNvbG9yU3RvcENvdW50KQotewotICAgIFJFTEVBU0VfQVNTRVJUKG1fY29sb3JTdG9wQ291bnQg
PD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29s
b3JTdG9wQ291bnQ7ICsraSkgewotICAgICAgICBtX29mZnNldHNbaV0gPSBvZmZzZXRzW2ldOwot
ICAgICAgICBtX2NvbG9yc1tpXSA9IGNvbG9yc1tpXTsKLSAgICB9Ci19Ci0KLVJlZjxHcmFkaWVu
dD4gU2V0SW5saW5lRmlsbEdyYWRpZW50OjpncmFkaWVudCgpIGNvbnN0CitTZXRJbmxpbmVTdGF0
ZTo6U2V0SW5saW5lU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmIHN0YXRl
LCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykKKyAg
ICA6IG1fc3RhdGUoc3RhdGUpCisgICAgLCBtX2NoYW5nZUZsYWdzKGNoYW5nZUZsYWdzKQogewot
ICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRlKEdyYWRpZW50OjpEYXRhKG1fZGF0
YSkpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkK
LSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCh7IG1fb2Zmc2V0c1tpXSwgQ29sb3IobV9j
b2xvcnNbaV0pIH0pOwotICAgIGdyYWRpZW50LT5zZXRTcHJlYWRNZXRob2QobV9zcHJlYWRNZXRo
b2QpOwotICAgIHJldHVybiBncmFkaWVudDsKIH0KIAotdm9pZCBTZXRJbmxpbmVGaWxsR3JhZGll
bnQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3ZvaWQgU2V0SW5saW5l
U3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAgICBpZiAo
bV9jb2xvclN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCkKLSAgICAgICAgY29udGV4dC5z
ZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQoKSwgbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKLX0K
LQotYm9vbCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKGNvbnN0IEdyYWRpZW50JiBn
cmFkaWVudCkKLXsKLSAgICBpZiAoZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkgPiBTZXRJbmxpbmVG
aWxsR3JhZGllbnQ6Om1heENvbG9yU3RvcENvdW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBmb3IgKGF1dG8mIGNvbG9yU3RvcCA6IGdyYWRpZW50LnN0b3BzKCkpIHsKLSAgICAgICAg
aWYgKCFjb2xvclN0b3AuY29sb3IuaXNJbmxpbmUoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNo
YW5nZSBzdGF0ZUNoYW5nZSA9IHsgbV9zdGF0ZSwgbV9jaGFuZ2VGbGFncyB9OworICAgIHN0YXRl
Q2hhbmdlLmFwcGx5KGNvbnRleHQpOwogfQogCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lRmlsbEdyYWRpZW50JikKK3N0YXRpYyBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVTdGF0
ZSYpCiB7CiAgICAgLy8gRklYTUU6IER1bXAgZ3JhZGllbnQgZGF0YS4KICAgICByZXR1cm4gdHM7
CiB9CiAKLXZvaWQgU2V0SW5saW5lRmlsbENvbG9yOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQpIGNvbnN0Ci17Ci0gICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IoKSk7Ci19Ci0K
LXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJ
bmxpbmVGaWxsQ29sb3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBz
dGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KLXZvaWQgU2V0SW5saW5lU3Ryb2tl
Q29sb3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsKLSAgICBjb250
ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKCkpOwotfQotCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lU3Ryb2tlQ29sb3ImIHN0YXRl
KQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAgICBy
ZXR1cm4gdHM7Ci19Ci0KIHZvaWQgU2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseShHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3Mo
bV90aGlja25lc3MpOwpAQCAtMjA5LDIzICsxNDUsMzEgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0cm9rZVRoaWNrbmVzcyYgc3RhdGUp
CiB9CiAKIFNldFN0YXRlOjpTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3Rh
dGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQotICAgIDog
bV9zdGF0ZShzdGF0ZSwgZmxhZ3MpCisgICAgOiBtX3N0YXRlQ2hhbmdlKHN0YXRlLCBmbGFncykK
KyAgICAsIG1fc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcihzdGF0ZS5zdHJva2VQYXR0ZXJu
ID8gc3RhdGUuc3Ryb2tlUGF0dGVybi0+dGlsZUltYWdlKCkucmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKCkgOiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKKyAgICAsIG1fZmlsbFBh
dHRlcm5JbWFnZUlkZW50aWZpZXIoc3RhdGUuZmlsbFBhdHRlcm4gPyBzdGF0ZS5maWxsUGF0dGVy
bi0+dGlsZUltYWdlKCkucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgOiBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKSkKIHsKIH0KIAotU2V0U3RhdGU6OlNldFN0YXRlKGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBzdGF0ZUNoYW5nZSkKLSAgICA6IG1fc3RhdGUoc3Rh
dGVDaGFuZ2UpCitTZXRTdGF0ZTo6U2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVD
aGFuZ2UmIHN0YXRlQ2hhbmdlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0
dGVybkltYWdlSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGZpbGxQYXR0
ZXJuSW1hZ2VJZGVudGlmaWVyKQorICAgIDogbV9zdGF0ZUNoYW5nZShzdGF0ZUNoYW5nZSkKKyAg
ICAsIG1fc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcihzdHJva2VQYXR0ZXJuSW1hZ2VJZGVu
dGlmaWVyKQorICAgICwgbV9maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcihmaWxsUGF0dGVybklt
YWdlSWRlbnRpZmllcikKIHsKIH0KIAotdm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0KSBjb25zdAordm9pZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBOYXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSog
ZmlsbFBhdHRlcm5JbWFnZSkgY29uc3QKIHsKLSAgICBtX3N0YXRlLmFwcGx5KGNvbnRleHQpOwor
ICAgIGlmIChtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVybiAmJiBzdHJva2VQYXR0
ZXJuSW1hZ2UpCisgICAgICAgIG1fc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VQYXR0ZXJuLT5z
ZXRUaWxlSW1hZ2UobWFrZVJlZigqc3Ryb2tlUGF0dGVybkltYWdlKSk7CisgICAgaWYgKG1fc3Rh
dGVDaGFuZ2UubV9zdGF0ZS5maWxsUGF0dGVybiAmJiBmaWxsUGF0dGVybkltYWdlKQorICAgICAg
ICBtX3N0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4tPnNldFRpbGVJbWFnZShtYWtlUmVm
KCpmaWxsUGF0dGVybkltYWdlKSk7CisgICAgbV9zdGF0ZUNoYW5nZS5hcHBseShjb250ZXh0KTsK
IH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFNldFN0YXRlJiBzdGF0ZSkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBTZXRTdGF0ZSYgc2V0U3RhdGUpCiB7Ci0gICAgdHMgPDwgc3RhdGUuc3Rh
dGUoKTsKKyAgICB0cyA8PCBzZXRTdGF0ZS5zdGF0ZUNoYW5nZSgpOwogICAgIHJldHVybiB0czsK
IH0KIApAQCAtMzAxLDExICsyNDUsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgQ2xpcE91dCYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAK
LU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdy
YXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0K
IHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
V2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQu
Y2xpcFRvSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIG1fZGVzdGluYXRpb25SZWN0KTsKQEAgLTQy
MCwxMSArMzU5LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IERyYXdHbHlwaHMmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi1OT19SRVRV
Uk5fRFVFX1RPX0FTU0VSVCB2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250
ZXh0JikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogdm9pZCBEcmF3
SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1h
Z2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd0ltYWdlQnVm
ZmVyKGltYWdlQnVmZmVyLCBtX2Rlc3RpbmF0aW9uUmVjdCwgbV9zcmNSZWN0LCBtX29wdGlvbnMp
OwpAQCAtNDM4LDExICszNzIsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgRHJhd0ltYWdlQnVmZmVyJiBpdGVtKQogICAgIHJldHVybiB0czsK
IH0KIAotTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5
KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19
Ci0KIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IE5hdGl2ZUltYWdlJiBpbWFnZSkgY29uc3QKIHsKICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFn
ZShpbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0
aW9ucyk7CkBAIC00NjksMTEgKzM5OCw2IEBAIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hCiB7CiB9
CiAKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBo
aWNzQ29udGV4dCYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KIHZv
aWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTmF0aXZlSW1h
Z2UmIGltYWdlKSBjb25zdAogewogICAgIGNvbnRleHQuZHJhd1BhdHRlcm4oaW1hZ2UsIG1faW1h
Z2VTaXplLCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3BhdHRlcm5UcmFuc2Zvcm0sIG1f
cGhhc2UsIG1fc3BhY2luZywgbV9vcHRpb25zKTsKQEAgLTEwMjMsMTEgKzk0Nyw5IEBAIHN0YXRp
YyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQog
ICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOiB0cyA8PCAic2NhbGUiOyBicmVhazsKICAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRDVE06IHRzIDw8ICJzZXQtY3RtIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVt
VHlwZTo6Q29uY2F0ZW5hdGVDVE06IHRzIDw8ICJjb25jYXRlbnRhdGUtY3RtIjsgYnJlYWs7Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB0cyA8PCAic2V0LWlubGlu
ZS1maWxsLWdyYWRpZW50IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bENvbG9yOiB0cyA8PCAic2V0LWlubGluZS1maWxsLWNvbG9yIjsgYnJlYWs7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLXN0cm9rZS1j
b2xvciI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogdHMg
PDwgInNldC1zdHJva2UtdGhpY2tuZXNzIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lU3RhdGU6IHRzIDw8ICJzZXQtaW5saW5lLXN0YXRlIjsgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3RhdGU6IHRzIDw8ICJzZXQtc3RhdGUiOyBicmVhazsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHRzIDw8ICJzZXQtc3Ryb2tlLXRoaWNrbmVzcyI7
IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHRzIDw8ICJzZXQtbGluZS1j
YXAiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDogdHMgPDwgInNldC1s
aW5lLWRhc2giOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjogdHMgPDwg
InNldC1saW5lLWpvaW4iOyBicmVhazsKQEAgLTExMDYsMjEgKzEwMjgsMTUgQEAgVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2Ug
SXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxDb25jYXRl
bmF0ZUNUTT4oKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5l
RmlsbEdyYWRpZW50OgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGll
bnQ+KCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAgICAgIHRzIDw8
IGl0ZW0uZ2V0PFNldElubGluZVN0YXRlPigpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElu
bGluZUZpbGxDb2xvcj4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZVN0cm9r
ZUNvbG9yPigpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgorICAgICAgICB0cyA8PCBp
dGVtLmdldDxTZXRTdGF0ZT4oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdHJva2VUaGlj
a25lc3M+KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgot
ICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdGF0ZT4oKTsKLSAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0TGlu
ZUNhcD4oKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApp
bmRleCAxZTAzZGU3NjQ5MzVlZTM1YTJkMGQwYzI5MmEyMzQ0NzcyNDdmNDE4Li4yMmVhZWZlNmFm
ODczYjdkZDFiMDg0YTkwYmY2MDY5YTJkZWU2ZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKQEAgLTE2Nyw2NSArMTY3LDE5IEBAIHByaXZhdGU6CiAgICAgQWZmaW5lVHJhbnNm
b3JtIG1fdHJhbnNmb3JtOwogfTsKIAotY2xhc3MgU2V0SW5saW5lRmlsbEdyYWRpZW50IHsKK2Ns
YXNzIFNldElubGluZVN0YXRlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1U
eXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZVN0YXRl
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50OF90IG1heENvbG9yU3RvcENvdW50ID0gNDsKIAotICAgIFNldElubGluZUZp
bGxHcmFkaWVudChjb25zdCBHcmFkaWVudCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGll
bnRTcGFjZVRyYW5zZm9ybSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0SW5saW5lRmlsbEdyYWRp
ZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xv
cnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGllbnRTcHJlYWRNZXRob2Qs
IHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpOwotCi0gICAgc3RhdGljIGJvb2wgaXNJbmxpbmUoY29u
c3QgR3JhZGllbnQmKTsKLSAgICBSZWY8R3JhZGllbnQ+IGdyYWRpZW50KCkgY29uc3Q7CisgICAg
U2V0SW5saW5lU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUmLCBHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKICAgICB2b2lkIGFwcGx5KEdyYXBo
aWNzQ29udGV4dCYpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGZsb2F0IG1fb2Zmc2V0c1ttYXhD
b2xvclN0b3BDb3VudF07Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvcnNbbWF4Q29sb3JTdG9w
Q291bnRdOwotICAgIEdyYWRpZW50OjpEYXRhIG1fZGF0YTsKLSAgICBBZmZpbmVUcmFuc2Zvcm0g
bV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtOwotICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIG1fc3By
ZWFkTWV0aG9kIHsgR3JhZGllbnRTcHJlYWRNZXRob2Q6OlBhZCB9OwotICAgIHVpbnQ4X3QgbV9j
b2xvclN0b3BDb3VudCB7IDAgfTsKLX07Ci0KLWNsYXNzIFNldElubGluZUZpbGxDb2xvciB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBl
OjpTZXRJbmxpbmVGaWxsQ29sb3I7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5l
SXRlbSA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBm
YWxzZTsKLQotICAgIFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEp
Ci0gICAgICAgIDogbV9jb2xvckRhdGEoY29sb3JEYXRhKQotICAgIHsKLSAgICB9Ci0KLSAgICBD
b2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xvckRhdGEgfTsgfQotICAgIHZvaWQg
YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU1JHQkE8dWlu
dDhfdD4gbV9jb2xvckRhdGE7Ci19OwotCi1jbGFzcyBTZXRJbmxpbmVTdHJva2VDb2xvciB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBl
OjpTZXRJbmxpbmVTdHJva2VDb2xvcjsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxp
bmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9
IGZhbHNlOwotCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JE
YXRhKQotICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKLSAgICB7Ci0gICAgfQotCi0g
ICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiB7IG1fY29sb3JEYXRhIH07IH0KLQotICAg
IHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU1JH
QkE8dWludDhfdD4gbV9jb2xvckRhdGE7CisgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUg
bV9zdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBtX2No
YW5nZUZsYWdzOwogfTsKIAogY2xhc3MgU2V0U3Ryb2tlVGhpY2tuZXNzIHsKQEAgLTI1NCwzMCAr
MjA4LDMzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRl
bSA9IGZhbHNlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3ND
b250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFu
Z2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZUNoYW5nZSYsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VQYXR0ZXJuSW1h
Z2VJZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFn
ZUlkZW50aWZpZXIpOwogICAgIAotICAgIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdl
JiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KLQotICAgIHN0YXRpYyB2b2lkIGJ1
aWxkZXJTdGF0ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYs
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKKyAgICBjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlQ2hhbmdlOyB9CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRl
cm5JbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3N0cm9rZVBhdHRlcm5JbWFnZUlk
ZW50aWZpZXI7IH0KKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5J
bWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlm
aWVyOyB9CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wU3RhdGVDaGFuZ2VzKFdURjo6VGV4dFN0cmVh
bSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MpOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxTZXRTdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIAotICAgIHZvaWQgYXBwbHkoR3Jh
cGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBO
YXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSogZmlsbFBhdHRlcm5J
bWFnZSkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Ug
bV9zdGF0ZTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBtX3N0YXRlQ2hhbmdlOwor
ICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX3N0cm9rZVBhdHRlcm5JbWFnZUlkZW50
aWZpZXI7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fZmlsbFBhdHRlcm5JbWFn
ZUlkZW50aWZpZXI7CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBTZXRTdGF0
ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgYXV0byBjaGFuZ2VGbGFn
cyA9IG1fc3RhdGUubV9jaGFuZ2VGbGFnczsKKyAgICBhdXRvIGNoYW5nZUZsYWdzID0gbV9zdGF0
ZUNoYW5nZS5tX2NoYW5nZUZsYWdzOwogICAgIGVuY29kZXIgPDwgY2hhbmdlRmxhZ3M7CiAKLSAg
ICBhdXRvJiBzdGF0ZSA9IG1fc3RhdGUubV9zdGF0ZTsKKyAgICBhdXRvJiBzdGF0ZSA9IG1fc3Rh
dGVDaGFuZ2UubV9zdGF0ZTsKKyAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPigmc3RhdGUpLCBzaXplb2YoR3JhcGhpY3NDb250
ZXh0SW5saW5lU3RhdGUpLCAxKTsKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7CiAgICAgICAgIGVuY29k
ZXIgPDwgISFzdGF0ZS5zdHJva2VHcmFkaWVudDsKQEAgLTI4Nyw4ICsyNDQsMTAgQEAgdm9pZCBT
ZXRTdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBpZiAoY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2Up
KSB7CiAgICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5zdHJva2VQYXR0ZXJuOwotICAgICAgICBp
ZiAoc3RhdGUuc3Ryb2tlUGF0dGVybikKKyAgICAgICAgaWYgKHN0YXRlLnN0cm9rZVBhdHRlcm4p
IHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgbV9zdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVy
OwogICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGUuc3Ryb2tlUGF0dGVybjsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlKSkgewpAQCAtMjk5LDYwICsyNTgsMjAgQEAgdm9pZCBT
ZXRTdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBpZiAoY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hhbmdlKSkg
ewogICAgICAgICBlbmNvZGVyIDw8ICEhc3RhdGUuZmlsbFBhdHRlcm47Ci0gICAgICAgIGlmIChz
dGF0ZS5maWxsUGF0dGVybikKKyAgICAgICAgaWYgKHN0YXRlLmZpbGxQYXR0ZXJuKSB7CisgICAg
ICAgICAgICBlbmNvZGVyIDw8IG1fZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CiAgICAgICAg
ICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5maWxsUGF0dGVybjsKKyAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93
Q2hhbmdlKSkgewotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd09mZnNldDsKLSAgICAg
ICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dCbHVyOwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRl
LnNoYWRvd0NvbG9yOwotI2lmIFVTRShDRykKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFk
b3dzVXNlTGVnYWN5UmFkaXVzOwotI2VuZGlmIC8vIFVTRShDRykKLSAgICB9Ci0KLSAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVz
c0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc3Ryb2tlVGhpY2tuZXNzOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpUZXh0RHJh
d2luZ01vZGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnRleHREcmF3aW5nTW9k
ZTsKLQogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3Ryb2tlQ29sb3JDaGFuZ2UpKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZUNvbG9y
OwogCiAgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpG
aWxsQ29sb3JDaGFuZ2UpKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbGxDb2xvcjsKIAot
ICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tl
U3R5bGVDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZVN0eWxlOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUnVs
ZUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuZmlsbFJ1bGU7Ci0KLSAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJh
dGlvbkNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY29tcG9zaXRlT3BlcmF0b3I7
Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkJs
ZW5kTW9kZUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuYmxlbmRNb2RlOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpJbWFnZUlu
dGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5pbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpBbHBoYUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3Rh
dGUuYWxwaGE7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlNob3VsZEFudGlhbGlhc0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUu
c2hvdWxkQW50aWFsaWFzOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTaG91bGRTbW9vdGhGb250c0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIg
PDwgc3RhdGUuc2hvdWxkU21vb3RoRm9udHM7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5n
ZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRz
OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
aGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUu
c2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKQorICAgICAgICBlbmNvZGVyIDw8IHN0
YXRlLnNoYWRvd0NvbG9yOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMzY2LDYg
KzI4NSwxMyBAQCBPcHRpb25hbDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHN0YXRlQ2hhbmdlOwogICAg
IHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MgPSAqY2hhbmdlRmxhZ3M7CiAKKyAgICBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcjsKKyAgICBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXI7CisK
KyAgICBhdXRvJiBzdGF0ZSA9IHN0YXRlQ2hhbmdlLm1fc3RhdGU7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmc3RhdGUp
LCBzaXplb2YoR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUpLCAxKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKwogICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpIHsKICAgICAg
ICAgT3B0aW9uYWw8Ym9vbD4gaGFzU3Ryb2tlR3JhZGllbnQ7CiAgICAgICAgIGRlY29kZXIgPj4g
aGFzU3Ryb2tlR3JhZGllbnQ7CkBAIC0zODcsMTMgKzMxMywxNyBAQCBPcHRpb25hbDxTZXRTdGF0
ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBpZiAoIWhhc1N0
cm9rZVBhdHRlcm4uaGFzVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAKLSAgICAgICAgaWYgKGhhc1N0cm9rZVBhdHRlcm4udmFsdWUoKSkgewotICAgICAgICAgICAg
YXV0byBzdHJva2VQYXR0ZXJuID0gUGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpOwotICAgICAgICAg
ICAgaWYgKCFzdHJva2VQYXR0ZXJuKQotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgICAgIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW1hZ2VJ
ZGVudGlmaWVyOworICAgICAgICBkZWNvZGVyID4+IGltYWdlSWRlbnRpZmllcjsKKyAgICAgICAg
aWYgKCFpbWFnZUlkZW50aWZpZXIuaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAKLSAgICAgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlUGF0dGVy
biA9IFdURk1vdmUoKnN0cm9rZVBhdHRlcm4pOwotICAgICAgICB9CisgICAgICAgIGF1dG8gc3Ry
b2tlUGF0dGVybiA9IFBhdHRlcm46OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgaWYgKCFzdHJv
a2VQYXR0ZXJuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBz
dHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyID0gKmltYWdlSWRlbnRpZmllcjsKKyAgICAgICAg
c3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gV1RGTW92ZSgqc3Ryb2tlUGF0dGVy
bik7CiAgICAgfQogCiAgICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMo
R3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpIHsKQEAgLTQxNiw2NCAr
MzQ2LDE4IEBAIE9wdGlvbmFsPFNldFN0YXRlPiBTZXRTdGF0ZTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgICAgIGRlY29kZXIgPj4gaGFzRmlsbFBhdHRlcm47CiAgICAgICAgIGlmICgh
aGFzRmlsbFBhdHRlcm4uaGFzVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0KLSAgICAgICAgaWYgKGhhc0ZpbGxQYXR0ZXJuLnZhbHVlKCkpIHsKLSAgICAgICAgICAg
IGF1dG8gZmlsbFBhdHRlcm4gPSBQYXR0ZXJuOjpkZWNvZGUoZGVjb2Rlcik7Ci0gICAgICAgICAg
ICBpZiAoIWZpbGxQYXR0ZXJuKQotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
Ci0KLSAgICAgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFBhdHRlcm4gPSBXVEZNb3Zl
KCpmaWxsUGF0dGVybik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2Uu
bV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdl
KSkgewotICAgICAgICBPcHRpb25hbDxGbG9hdFNpemU+IHNoYWRvd09mZnNldDsKLSAgICAgICAg
ZGVjb2RlciA+PiBzaGFkb3dPZmZzZXQ7Ci0gICAgICAgIGlmICghc2hhZG93T2Zmc2V0KQotICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnNoYWRvd09mZnNldCA9ICpzaGFkb3dPZmZzZXQ7Ci0KLSAgICAgICAgT3B0aW9uYWw8Zmxv
YXQ+IHNoYWRvd0JsdXI7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93Qmx1cjsKLSAgICAgICAg
aWYgKCFzaGFkb3dCbHVyKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAg
ICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd0JsdXIgPSAqc2hhZG93Qmx1cjsKLQotICAg
ICAgICBPcHRpb25hbDxDb2xvcj4gc2hhZG93Q29sb3I7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hh
ZG93Q29sb3I7Ci0gICAgICAgIGlmICghc2hhZG93Q29sb3IpCisgICAgICAgIAorICAgICAgICBP
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGltYWdlSWRlbnRpZmllcjsKKyAg
ICAgICAgZGVjb2RlciA+PiBpbWFnZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghaW1hZ2VJZGVu
dGlmaWVyLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0g
ICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93Q29sb3IgPSAqc2hhZG93Q29sb3I7Ci0K
LSNpZiBVU0UoQ0cpCi0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NVc2VMZWdhY3lSYWRp
dXM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSAgICAgICAg
aWYgKCFzaGFkb3dzVXNlTGVnYWN5UmFkaXVzKQorICAgICAgICBhdXRvIGZpbGxQYXR0ZXJuID0g
UGF0dGVybjo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBpZiAoIWZpbGxQYXR0ZXJuKQogICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnNoYWRvd3NVc2VMZWdhY3lSYWRpdXMgPSAqc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSNl
bmRpZiAvLyBVU0UoQ0cpCi0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxh
Z3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSkp
IHsKLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IHN0cm9rZVRoaWNrbmVzczsKLSAgICAgICAgZGVj
b2RlciA+PiBzdHJva2VUaGlja25lc3M7Ci0gICAgICAgIGlmICghc3Ryb2tlVGhpY2tuZXNzKQot
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5t
X3N0YXRlLnN0cm9rZVRoaWNrbmVzcyA9ICpzdHJva2VUaGlja25lc3M7Ci0gICAgfQotCi0gICAg
aWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlRleHREcmF3aW5nTW9kZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8VGV4dERyYXdp
bmdNb2RlRmxhZ3M+IHRleHREcmF3aW5nTW9kZTsKLSAgICAgICAgZGVjb2RlciA+PiB0ZXh0RHJh
d2luZ01vZGU7Ci0gICAgICAgIGlmICghdGV4dERyYXdpbmdNb2RlKQotICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnRleHREcmF3
aW5nTW9kZSA9IFdURk1vdmUoKnRleHREcmF3aW5nTW9kZSk7CisgICAgICAgIGZpbGxQYXR0ZXJu
SW1hZ2VJZGVudGlmaWVyID0gKmltYWdlSWRlbnRpZmllcjsKKyAgICAgICAgc3RhdGVDaGFuZ2Uu
bV9zdGF0ZS5maWxsUGF0dGVybiA9IFdURk1vdmUoKmZpbGxQYXR0ZXJuKTsKICAgICB9CiAKICAg
ICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKSB7CkBAIC00OTQsOTYgKzM3OCwxNiBAQCBPcHRpb25h
bDxTZXRTdGF0ZT4gU2V0U3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBz
dGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxDb2xvciA9ICpmaWxsQ29sb3I7CiAgICAgfQogCi0gICAg
aWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0cm9rZVN0eWxlQ2hhbmdlKSkgewotICAgICAgICBTdHJva2VTdHlsZSBzdHJva2VTdHls
ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdHJva2VTdHlsZSkpCi0gICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ry
b2tlU3R5bGUgPSBzdHJva2VTdHlsZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9j
aGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFJ1bGVDaGFuZ2Up
KSB7Ci0gICAgICAgIE9wdGlvbmFsPFdpbmRSdWxlPiBmaWxsUnVsZTsKLSAgICAgICAgZGVjb2Rl
ciA+PiBmaWxsUnVsZTsKLSAgICAgICAgaWYgKCFmaWxsUnVsZSkKLSAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsUnVsZSA9
ICpmaWxsUnVsZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6Q29tcG9zaXRlT3BlcmF0aW9uQ2hhbmdlKSkg
ewotICAgICAgICBPcHRpb25hbDxDb21wb3NpdGVPcGVyYXRvcj4gY29tcG9zaXRlT3BlcmF0b3I7
Ci0gICAgICAgIGRlY29kZXIgPj4gY29tcG9zaXRlT3BlcmF0b3I7Ci0gICAgICAgIGlmICghY29t
cG9zaXRlT3BlcmF0b3IpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAg
ICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuY29tcG9zaXRlT3BlcmF0b3IgPSAqY29tcG9zaXRlT3Bl
cmF0b3I7Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkJsZW5kTW9kZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0
aW9uYWw8QmxlbmRNb2RlPiBibGVuZE1vZGU7Ci0gICAgICAgIGRlY29kZXIgPj4gYmxlbmRNb2Rl
OwotICAgICAgICBpZiAoIWJsZW5kTW9kZSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5ibGVuZE1vZGUgPSAqYmxlbmRNb2Rl
OwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpJbWFnZUludGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlKSkgewot
ICAgICAgICBPcHRpb25hbDxJbnRlcnBvbGF0aW9uUXVhbGl0eT4gaW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eTsKLSAgICAgICAgZGVjb2RlciA+PiBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5Owot
ICAgICAgICBpZiAoIWltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpCi0gICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSA9ICppbWFnZUludGVycG9sYXRpb25RdWFsaXR5OwotICAgIH0KLQot
ICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpBbHBoYUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IGFscGhhOwot
ICAgICAgICBkZWNvZGVyID4+IGFscGhhOwotICAgICAgICBpZiAoIWFscGhhKQotICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmFs
cGhhID0gKmFscGhhOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXNDaGFuZ2UpKSB7
Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNob3VsZEFudGlhbGlhczsKLSAgICAgICAgZGVjb2Rl
ciA+PiBzaG91bGRBbnRpYWxpYXM7Ci0gICAgICAgIGlmICghc2hvdWxkQW50aWFsaWFzKQotICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnNob3VsZEFudGlhbGlhcyA9ICpzaG91bGRBbnRpYWxpYXM7Ci0gICAgfQotCi0gICAgaWYg
KHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlNob3VsZFNtb290aEZvbnRzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91
bGRTbW9vdGhGb250czsKLSAgICAgICAgZGVjb2RlciA+PiBzaG91bGRTbW9vdGhGb250czsKLSAg
ICAgICAgaWYgKCFzaG91bGRTbW9vdGhGb250cykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRTbW9vdGhGb250cyA9
ICpzaG91bGRTbW9vdGhGb250czsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFu
dGl6ZUZvbnRzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRTdWJwaXhl
bFF1YW50aXplRm9udHM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU3VicGl4ZWxRdWFudGl6
ZUZvbnRzOwotICAgICAgICBpZiAoIXNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cykKLSAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0
ZS5zaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHMgPSAqc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZv
bnRzOwotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSkpIHsK
LSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgICAg
IGRlY29kZXIgPj4gc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgICAgIGlmICghc2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMpCisgICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKKyAgICAgICAgT3B0
aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOworICAgICAgICBkZWNvZGVyID4+IHNoYWRvd0NvbG9y
OworICAgICAgICBpZiAoIXNoYWRvd0NvbG9yKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zID0gKnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnNoYWRvd0NvbG9yID0gKnNoYWRvd0NvbG9yOwogICAgIH0KIAotICAgIHJldHVybiB7IHN0
YXRlQ2hhbmdlIH07CisgICAgcmV0dXJuIHt7IHN0YXRlQ2hhbmdlLCBzdHJva2VQYXR0ZXJuSW1h
Z2VJZGVudGlmaWVyLCBmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllciB9fTsKIH0KIAogY2xhc3Mg
U2V0TGluZUNhcCB7CkBAIC03NTcsOCArNTYxLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogCi0gICAg
Tk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25z
dDsKLQogcHJpdmF0ZToKICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1
ZmZlcklkZW50aWZpZXI7CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb25SZWN0OwpAQCAtMTAz
OSw4ICs4NDEsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYs
IFdlYkNvcmU6OkltYWdlQnVmZmVyJikgY29uc3Q7CiAKLSAgICBOT19SRVRVUk5fRFVFX1RPX0FT
U0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwotCiAgICAgT3B0aW9uYWw8
RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0K
ICAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4
dCYpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAKQEAgLTEwNzIsNyArODcy
LDYgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHZhbGlkYXRlIElt
YWdlUGFpbnRpbmdPcHRpb25zLgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICEh
bV9pbWFnZUlkZW50aWZpZXI7IH0KIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQg
YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGljc0Nv
bnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBn
bG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KQEAgLTExMDQsNyAr
OTAzLDYgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHZhbGlkYXRl
IEltYWdlUGFpbnRpbmdPcHRpb25zLgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJu
ICEhbV9pbWFnZUlkZW50aWZpZXI7IH0KIAotICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZv
aWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CiAgICAgdm9pZCBhcHBseShHcmFwaGlj
c0NvbnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8RmxvYXRSZWN0
PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KQEAgLTIzMDEs
MTEgKzIwOTksOSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U2NhbGUsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE0sCiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTSwKLSAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudCwKLSAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvciwKLSAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yLAotICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzLAorICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGUsCiAgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdGF0ZSwKKyAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcywKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVDYXAsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRMaW5lRGFzaCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldExpbmVKb2luLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CmluZGV4IGVkYTBiNTU5ODM1ZTBkODllZDBhNTdlNThlNTNjZjEzODk2MzU3MWIuLjQxZmE3NjIy
NmFlNjAzNThiMjA1Y2NkM2I4NjRmNzI4ZDVkYzZkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTYwLDQ5ICs2MCw0MCBAQCB2b2lkIFJlY29yZGVyOjpw
dXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwg
Y29uc3QgVwogICAgIGFwcGVuZDxQdXRJbWFnZURhdGE+KGlucHV0Rm9ybWF0LCBpbWFnZURhdGEs
IHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7CiB9CiAKLXN0YXRpYyBib29sIGNvbnRh
aW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5n
ZSYgY2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdl
RmxhZ3MpCitzdGF0aWMgYm9vbCBjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCiB7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBpbmxp
bmVTdGF0ZUNoYW5nZUZsYWdzIHsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9r
ZVRoaWNrbmVzc0NoYW5nZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUdy
YWRpZW50Q2hhbmdlLAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVy
bkNoYW5nZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5n
ZSwKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hhbmdlLAogICAg
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UsCiAgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UsCi0gICAgICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UsCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTaGFkb3dDaGFuZ2UKICAgICB9OwogCi0gICAgaWYgKGNoYW5nZUZsYWdzICE9IChjaGFu
Z2VGbGFncyAmIGlubGluZVN0YXRlQ2hhbmdlRmxhZ3MpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
cm9rZUNvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLnN0cm9rZUNvbG9yLmlzSW5saW5l
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0
YXRlLmZpbGxDb2xvci5pc0lubGluZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVu
dENoYW5nZSkKLSAgICAgICAgJiYgKCFjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50IHx8ICFT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRp
ZW50KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIHJl
dHVybiAhY2hhbmdlRmxhZ3MuY29udGFpbnNBbnkoaW5saW5lU3RhdGVDaGFuZ2VGbGFncyk7CiB9
CiAKLXZvaWQgUmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZUNoYW5nZSYgY2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hh
bmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCit2b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0
ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykKIHsKLSAgICBpZiAoIWNvbnRhaW5zT25s
eUlubGluZVN0YXRlQ2hhbmdlcyhjaGFuZ2VzLCBjaGFuZ2VGbGFncykpIHsKLSAgICAgICAgYXBw
ZW5kPFNldFN0YXRlPihjaGFuZ2VzLm1fc3RhdGUsIGNoYW5nZUZsYWdzKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0SW5saW5lU3Ry
b2tlQ29sb3I+KGNoYW5nZXMubV9zdGF0ZS5zdHJva2VDb2xvci5hc0lubGluZSgpKTsKLQotICAg
IGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlVGhp
Y2tuZXNzQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldFN0cm9rZVRoaWNrbmVzcz4oY2hhbmdl
cy5tX3N0YXRlLnN0cm9rZVRoaWNrbmVzcyk7CisgICAgaWYgKGNvbnRhaW5zT25seUlubGluZVN0
YXRlQ2hhbmdlcyhjaGFuZ2VGbGFncykpCisgICAgICAgIGFwcGVuZDxTZXRJbmxpbmVTdGF0ZT4o
c3RhdGUsIGNoYW5nZUZsYWdzKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHN0YXRlLnN0cm9r
ZVBhdHRlcm4pIHsKKyAgICAgICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICAgICAgICAg
IG1fZGVsZWdhdGUtPmNhY2hlTmF0aXZlSW1hZ2Uoc3RhdGUuc3Ryb2tlUGF0dGVybi0+dGlsZUlt
YWdlKCkpOworICAgICAgICAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZU5hdGl2ZUltYWdlKHN0YXRl
LnN0cm9rZVBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgfQogCi0gICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpKQot
ICAgICAgICBhcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihjaGFuZ2VzLm1fc3RhdGUuZmlsbENv
bG9yLmFzSW5saW5lKCkpOworICAgICAgICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pIHsKKyAgICAg
ICAgICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICAgICAgICAgIG1fZGVsZWdhdGUtPmNhY2hl
TmF0aXZlSW1hZ2Uoc3RhdGUuZmlsbFBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKKyAgICAgICAgICAg
IG1fZGlzcGxheUxpc3QuY2FjaGVOYXRpdmVJbWFnZShzdGF0ZS5maWxsUGF0dGVybi0+dGlsZUlt
YWdlKCkpOworICAgICAgICB9CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ+KCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50LCBjaGFuZ2Vz
Lm1fc3RhdGUuZmlsbEdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pOworICAgICAgICBhcHBlbmQ8U2V0
U3RhdGU+KHN0YXRlLCBjaGFuZ2VGbGFncyk7CisgICAgfQogfQogCiB2b2lkIFJlY29yZGVyOjp3
aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBlKQpAQCAtMTE5LDcgKzExMCw3IEBAIHZv
aWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZXNGcm9tTGFzdFN0
YXRlID0gc3RhdGVDaGFuZ2VzLmNoYW5nZXNGcm9tU3RhdGUoY3VycmVudFN0YXRlKCkubGFzdERy
YXdpbmdTdGF0ZSk7CiAgICAgICAgIGlmIChjaGFuZ2VzRnJvbUxhc3RTdGF0ZSkgewogICAgICAg
ICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJwcmUtZHJhd2lu
Zywgc2F2aW5nIHN0YXRlICIgPDwgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Uoc3RhdGVDaGFu
Z2VzLm1fc3RhdGUsIGNoYW5nZXNGcm9tTGFzdFN0YXRlKSk7Ci0gICAgICAgICAgICBhcHBlbmRT
dGF0ZUNoYW5nZUl0ZW0oc3RhdGVDaGFuZ2VzLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSk7CisgICAg
ICAgICAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oc3RhdGVDaGFuZ2VzLm1fc3RhdGUsIGNoYW5n
ZXNGcm9tTGFzdFN0YXRlKTsKICAgICAgICAgICAgIHN0YXRlQ2hhbmdlcy5tX2NoYW5nZUZsYWdz
ID0geyB9OwogICAgICAgICAgICAgY3VycmVudFN0YXRlKCkubGFzdERyYXdpbmdTdGF0ZSA9IHN0
YXRlQ2hhbmdlcy5tX3N0YXRlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaAppbmRleCA4OWE5OTA4NmFhZDExZWFkZTAzNzVmMWRmMTg2NGQzMzMzMTc5NThi
Li43ZmNlYTQyN2Q0MzE3YmNhZDBiMDhhMzQ0NjI2ZjEwZGRmMzBmMTZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSk7
CiAKLSAgICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZUNoYW5nZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKKyAg
ICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYs
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKIAogICAgIEZsb2F0UmVj
dCBleHRlbnRGcm9tTG9jYWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggMzI1ZGI5NzM5ZTlm
Y2YyMTMxZTkxNGU2YWU1Yzg1YTgyZWJhZTFjOS4uMzQ2NDM2MmQ2NzdkNGQ2Yzg0NzJlZDlhN2Rh
MzVkODUxNWFmODdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNw
cApAQCAtNzAsNiArNzAsMjkgQEAgaW5saW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXI+IGFwcGx5TmF0aXZlSW1hZ2VJdGVtKEdyYXBoaWMKICAgICByZXR1cm4g
cmVzb3VyY2VJZGVudGlmaWVyOwogfQogCitpbmxpbmUgc3RhdGljIE9wdGlvbmFsPFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlTZXRTdGF0ZUl0ZW0oR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBOYXRpdmVJbWFnZUhhc2hNYXAmIG5hdGl2ZUltYWdlcywgSXRlbUhhbmRs
ZSBpdGVtKQoreworICAgIGF1dG8mIHNldFN0YXRlSXRlbSA9IGl0ZW0uZ2V0PFNldFN0YXRlPigp
OworCisgICAgTmF0aXZlSW1hZ2UqIHN0cm9rZVBhdHRlcm5JbWFnZSA9IG51bGxwdHI7CisgICAg
TmF0aXZlSW1hZ2UqIGZpbGxQYXR0ZXJuSW1hZ2UgPSBudWxscHRyOworICAgIAorICAgIGlmIChh
dXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRlSXRlbS5zdHJva2VQYXR0ZXJuSW1hZ2VJ
ZGVudGlmaWVyKCkpIHsKKyAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlID0gbmF0aXZlSW1hZ2Vz
LmdldChyZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICBpZiAoIXN0cm9rZVBhdHRlcm5JbWFn
ZSkKKyAgICAgICAgICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7CisgICAgfQorCisgICAg
aWYgKGF1dG8gcmVzb3VyY2VJZGVudGlmaWVyID0gc2V0U3RhdGVJdGVtLmZpbGxQYXR0ZXJuSW1h
Z2VJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgZmlsbFBhdHRlcm5JbWFnZSA9IG5hdGl2ZUltYWdl
cy5nZXQocmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFmaWxsUGF0dGVybkltYWdl
KQorICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBz
ZXRTdGF0ZUl0ZW0uYXBwbHkoY29udGV4dCwgc3Ryb2tlUGF0dGVybkltYWdlLCBmaWxsUGF0dGVy
bkltYWdlKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiB0ZW1wbGF0ZTxjbGFzcyBU
PgogaW5saW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFw
cGx5Rm9udEl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250UmVuZGVyaW5n
UmVzb3VyY2VNYXAmIGZvbnRzLCBJdGVtSGFuZGxlIGl0ZW0pCiB7CkBAIC0xMDUsMTQgKzEyOCwy
MCBAQCBzdGQ6OnBhaXI8T3B0aW9uYWw8U3RvcFJlcGxheVJlYXNvbj4sIE9wdGlvbmFsPFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IFJlcAogICAgICAgICByZXR1cm4geyBXVEY6Om51bGxv
cHQsIFdURjo6bnVsbG9wdCB9OwogICAgIH0KIAotICAgIGlmIChpdGVtLmlzPERyYXdHbHlwaHM+
KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9
IGFwcGx5Rm9udEl0ZW08RHJhd0dseXBocz4obV9jb250ZXh0LCBtX2ZvbnRzLCBpdGVtKSkKKyAg
ICBpZiAoaXRlbS5pczxEcmF3UGF0dGVybj4oKSkgeworICAgICAgICBpZiAoYXV0byBtaXNzaW5n
Q2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08RHJhd1BhdHRl
cm4+KG1fY29udGV4dCwgbV9uYXRpdmVJbWFnZXMsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJu
IHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3Np
bmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IFdURjo6bnVs
bG9wdCwgV1RGOjpudWxsb3B0IH07CiAgICAgfQogCi0gICAgaWYgKGl0ZW0uaXM8RHJhd1BhdHRl
cm4+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmll
ciA9IGFwcGx5TmF0aXZlSW1hZ2VJdGVtPERyYXdQYXR0ZXJuPihtX2NvbnRleHQsIG1fbmF0aXZl
SW1hZ2VzLCBpdGVtKSkKKyAgICBpZiAoaXRlbS5pczxTZXRTdGF0ZT4oKSkgeworICAgICAgICBp
ZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBwbHlTZXRTdGF0ZUl0
ZW0obV9jb250ZXh0LCBtX25hdGl2ZUltYWdlcywgaXRlbSkpCisgICAgICAgICAgICByZXR1cm4g
eyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2lu
Z0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKKyAgICAgICAgcmV0dXJuIHsgV1RGOjpudWxs
b3B0LCBXVEY6Om51bGxvcHQgfTsKKyAgICB9CisKKyAgICBpZiAoaXRlbS5pczxEcmF3R2x5cGhz
PigpKSB7CisgICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIg
PSBhcHBseUZvbnRJdGVtPERyYXdHbHlwaHM+KG1fY29udGV4dCwgbV9mb250cywgaXRlbSkpCiAg
ICAgICAgICAgICByZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3Vy
Y2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAg
cmV0dXJuIHsgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQgfTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXgg
YWZiZTcwNmFkZGMyMjdkYTEwY2I3ODgyODg4NmMxMjliMTkyNDFjYy4uZjMzY2NlYjExMjMyODBj
ODEyNWNiMjg0YjZlNzgwNzNkMDFiODFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lk
IEZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICB0aWxlSW1hZ2VDb250ZXh0LnRy
YW5zbGF0ZSgtaW5NYXhFZmZlY3RMb2NhdGlvbi54KCksIC1pbk1heEVmZmVjdExvY2F0aW9uLnko
KSk7CiAgICAgdGlsZUltYWdlQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmluQnVmZmVyLCBpbi0+
YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigpKTsKIAotICAgIGF1dG8gdGlsZUltYWdlQ29w
eSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b0ltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CisgICAg
YXV0byB0aWxlSW1hZ2VDb3B5ID0gSW1hZ2VCdWZmZXI6OnNpbmtJbnRvTmF0aXZlSW1hZ2UoV1RG
TW92ZSh0aWxlSW1hZ2UpKTsKICAgICBpZiAoIXRpbGVJbWFnZUNvcHkpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAppbmRleCBhZDRlOGRkOWQ3MWJhYzFhOTIxOTJkYTdhZTZhMTlkNDM0YTcxOWUyLi5hMTRlNWUw
YmNjMmYyZmIxOGZmNzgxNmY2NzRlMTA2ZGFkNGE0NjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzI2Niw3ICszMjY2LDcgQEAg
c3RhdGljIFJlZlB0cjxQYXR0ZXJuPiBwYXR0ZXJuRm9yRGVzY3JpcHRpb24oUGF0dGVybkRlc2Ny
aXB0aW9uIGRlc2NyaXB0aW9uLCBGbG8KICAgICAgICAgaW1hZ2VDb250ZXh0LmRyYXdUZXh0KGZv
bnQsIHRleHRSdW4sIHsgdGV4dEdhcCwgeU9mZnNldCB9LCAwKTsKICAgICB9CiAKLSAgICBhdXRv
IHRpbGVJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b0ltYWdlKFdURk1vdmUoaW1hZ2VCdWZm
ZXIpKTsKKyAgICBhdXRvIHRpbGVJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5rSW50b05hdGl2ZUlt
YWdlKFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKICAgICBhdXRvIGZpbGxQYXR0ZXJuID0gUGF0dGVy
bjo6Y3JlYXRlKHRpbGVJbWFnZS5yZWxlYXNlTm9uTnVsbCgpLCB0cnVlLCB0cnVlKTsKICAgICBB
ZmZpbmVUcmFuc2Zvcm0gcGF0dGVybk9mZnNldFRyYW5zZm9ybTsKICAgICBwYXR0ZXJuT2Zmc2V0
VHJhbnNmb3JtLnRyYW5zbGF0ZShjb250ZW50T2Zmc2V0ICsgZGVzY3JpcHRpb24ucGhhc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZVBhdHRlcm4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZVBhdHRlcm4uY3BwCmluZGV4IGExZjg1ZjE3NjI2NjFhNWQ4YjMyYTQ1MDRlNjVlZmE4M2Nh
M2E0ZWIuLmM1NjUyZjUxNDk2OTdhODU3ZDkzMzA1NTRiYjNhMzllMTE2ZDRkMWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
UGF0dGVybi5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBQYXR0ZXJuRGF0YSogUmVuZGVyU1ZHUmVz
b3VyY2VQYXR0ZXJuOjpidWlsZFBhdHRlcm4oUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIE9wdAog
CiAgICAgY29uc3QgSW50U2l6ZSB0aWxlSW1hZ2VTaXplID0gdGlsZUltYWdlLT5sb2dpY2FsU2l6
ZSgpOwogCi0gICAgUmVmUHRyPEltYWdlPiBjb3BpZWRJbWFnZSA9IEltYWdlQnVmZmVyOjpzaW5r
SW50b0ltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CisgICAgYXV0byBjb3BpZWRJbWFnZSA9IElt
YWdlQnVmZmVyOjpzaW5rSW50b05hdGl2ZUltYWdlKFdURk1vdmUodGlsZUltYWdlKSk7CiAgICAg
aWYgKCFjb3BpZWRJbWFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcAppbmRleCBiMGFjMzU4NmIwMjQ5YjRhYmUxZTRmY2JjZTczZTlkOGZhODY1YjQ1
Li5kYTgxNDgxMTgzYzZlMjgxMGUyMzQ2MWViOGMwODYxMTZmYzhiY2ZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCkBAIC00NjAsOSArNDYwLDcgQEAgT3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0
ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWMK
ICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIERpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dENUTToKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9y
OgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgor
ICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNl
IERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldE1pdGVyTGltaXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcAppbmRleCAxOWFmMjk5NjY4MjdkNGI2MDFkOGNkNTI3YmYxNGM5YTc3ZDcwODli
Li5iYjdjODRiZjgxNDc1Y2NjOTE5ZjA3ODMwMDRkOTI5NzE4MDBmZTVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTEwNzUsMTggKzEw
NzUsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlT3B0aW9uYWxJbWFn
ZShEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8SW1hZwogICAgIHJldHVybiBkZWNvZGVJbWFnZShk
ZWNvZGVyLCBpbWFnZSk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCi17
Ci0gICAgZW5jb2RlT3B0aW9uYWxJbWFnZShlbmNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZS5nZXQo
KSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kbGUpCi17Ci0gICAgaWYgKCFkZWNvZGVP
cHRpb25hbEltYWdlKGRlY29kZXIsIGltYWdlSGFuZGxlLmltYWdlKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVmPEZv
bnQ+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxXZWJDb3JlOjpGb250PiYg
Zm9udCkKIHsKICAgICBlbmNvZGVyIDw8IGZvbnQtPm9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwNzQzMjViNWE5Y2JkYWRhMTMw
YzA5MWZjM2QzYjA1MjhhYWZkZjk3Li42NGE3Y2ZmMzVlYmExNjFlOThkYTA2ZTkwNTVhNjEwOWIy
ZjhmOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtMTA5LDcgKzEwOSw2IEBAIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFp
bnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVh
ZGVyTWFwOwotY2xhc3MgSW1hZ2VIYW5kbGU7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJl
Y3Q7CiBjbGFzcyBJbnRTaXplOwpAQCAtNDE4LDExICs0MTcsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFJlZjxXZWJDb3JlOjpGb250Pj4gewogICAgIHN0YXRpYyBPcHRpb25h
bDxXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhPiBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYp
OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhh
bmRsZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VIYW5kbGUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwog
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCBk
N2I5MGI1NzJkYTVmYzEzY2QzYmQwODZiNDc3MTRiMTBjZDM1Y2E5Li42NDFhMWM4ZTA2NTcwNjlk
ZmFlNzRiYzBlOWY2N2JhYmY2MDNkZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApA
QCAtMzQ2LDkgKzM0Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTY2FsZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldENUTToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgorICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgog
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46
CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxp
bWl0OgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDI3NDFmNTI1NjdlZmE3MTgwZmQ5NTNjZDI2YTFiZmRiOTNjYjA0NmMuLmI1NWY0YjRiZTczMTcw
ZGFjMDAyODQxZjEyZmJlMmRjOWE0NGVjZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wMi0wNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIElt
cGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9E
aXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIFJlcGxhY2Ugc29t
ZSBvZiB0aGUgaW5saW5lIFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW1zIHdpdGgganVzdCBTZXRT
dGF0ZS4KKyAgICAgICAgUmVwbGFjZSB0aGUgb3RoZXJzIHdpdGggU2V0U3Ryb2tlVGhpY2tuZXNz
IHNpbmNlIGl0IGlzIGlubGluZSBpdGVtLgorCiAyMDIxLTAyLTA1ICBBYWthc2ggSmFpbiAgPGFh
a2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzXSBjb21taXQtcXVldWUgc2hvdWxk
IHVzZSBjb21taXRzLndlYmtpdC5vcmcgdXJsIGluc3RlYWQgb2YgdHJhYyB1cmwKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNw
cAppbmRleCBlODcxN2M3OTE0MGJkZWE0YjVmNTM1NWYwMTY5MDg5ZTYwMDg2NzMzLi42MDJiZGJm
MzJlYWEyYjQ3N2ZiZGViOGUyYWU2MjA3M2FhNDE3NzRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBAIC02NSwx
MSArNjUsMTQgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKICAgICBhdXRv
IGdyYWRpZW50ID0gY3JlYXRlR3JhZGllbnQoKTsKICAgICBhdXRvIHBhdGggPSBjcmVhdGVDb21w
bGV4UGF0aCgpOwogCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgc3RhdGU7CisgICAgc3RhdGUu
ZmlsbENvbG9yID0gQ29sb3I6OnJlZDsKKwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTA7ICsr
aSkgewogICAgICAgICBsaXN0LmFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KDEuNSk7CiAgICAg
ICAgIGxpc3QuYXBwZW5kPEZpbGxQYXRoPihwYXRoKTsKICAgICAgICAgbGlzdC5hcHBlbmQ8Rmls
bFJlY3RXaXRoR3JhZGllbnQ+KEZsb2F0UmVjdCB7IDEuLCAxLiwgMTAuLCAxMC4gfSwgZ3JhZGll
bnQpOwotICAgICAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KENvbG9yOjpyZWQp
OworICAgICAgICBsaXN0LmFwcGVuZDxTZXRTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpGaWxsQ29sb3JDaGFuZ2UpOwogI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQogICAg
ICAgICBsaXN0LmFwcGVuZDxTdHJva2VJbmxpbmVQYXRoPihJbmxpbmVQYXRoRGF0YSB7IExpbmVE
YXRhIHt7IDAuLCAwLiB9LCB7IDEwLiwgMTUuIH19fSk7CiAjZW5kaWYKQEAgLTEwMiwxMSArMTA1
LDExIEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAgICAgICAgICAgICBF
WFBFQ1RfRVEoJml0ZW0uZ3JhZGllbnQoKSwgZ3JhZGllbnQucHRyKCkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENv
bG9yOiB7CisgICAgICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7CiAgICAgICAgICAgICBF
WFBFQ1RfRkFMU0UoaGFuZGxlLT5pc0RyYXdpbmdJdGVtKCkpOwotICAgICAgICAgICAgRVhQRUNU
X1RSVUUoaGFuZGxlLT5pczxTZXRJbmxpbmVGaWxsQ29sb3I+KCkpOwotICAgICAgICAgICAgYXV0
byYgaXRlbSA9IGhhbmRsZS0+Z2V0PFNldElubGluZUZpbGxDb2xvcj4oKTsKLSAgICAgICAgICAg
IEVYUEVDVF9FUShpdGVtLmNvbG9yKCksIENvbG9yOjpyZWQpOworICAgICAgICAgICAgRVhQRUNU
X1RSVUUoaGFuZGxlLT5pczxTZXRTdGF0ZT4oKSk7CisgICAgICAgICAgICBhdXRvJiBpdGVtID0g
aGFuZGxlLT5nZXQ8U2V0U3RhdGU+KCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoaXRlbS5zdGF0
ZUNoYW5nZSgpLm1fc3RhdGUuZmlsbENvbG9yLCBDb2xvcjo6cmVkKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCkBAIC0yMTUsOSAr
MjE4LDkgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogICAgIGxp
c3Quc2V0SXRlbUJ1ZmZlckNsaWVudCgmd3JpdGVyKTsKIAogICAgIGF1dG8gcGF0aCA9IGNyZWF0
ZUNvbXBsZXhQYXRoKCk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENv
bG9yOjpibHVlKTsKKyAgICBsaXN0LmFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KDEwKTsKICAg
ICBsaXN0LmFwcGVuZDxTdHJva2VQYXRoPihwYXRoKTsKLSAgICBsaXN0LmFwcGVuZDxTZXRJbmxp
bmVTdHJva2VDb2xvcj4oQ29sb3I6OnJlZCk7CisgICAgbGlzdC5hcHBlbmQ8U2V0U3Ryb2tlVGhp
Y2tuZXNzPigyMCk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlUGF0aD4ocGF0aCk7CiAKICAgICBE
aXNwbGF5TGlzdCBzaGFsbG93Q29weSB7eyBJdGVtQnVmZmVySGFuZGxlIHsgZ2xvYmFsQnVmZmVy
SWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgbGlzdC5zaXplSW5CeXRlcygpIH0gfX07CkBA
IC0yMzAsOSArMjMzLDkgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50
KQogCiAgICAgRVhQRUNUX0ZBTFNFKHNoYWxsb3dDb3B5LmlzRW1wdHkoKSk7CiAgICAgRVhQRUNU
X0VRKGl0ZW1UeXBlcy5zaXplKCksIDRVKTsKLSAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzBdLCBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIEVYUEVDVF9FUShpdGVtVHlwZXNb
MF0sIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MpOwogICAgIEVYUEVDVF9FUShpdGVtVHlw
ZXNbMV0sIEl0ZW1UeXBlOjpTdHJva2VQYXRoKTsKLSAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzJd
LCBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIEVYUEVDVF9FUShpdGVtVHlw
ZXNbMl0sIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MpOwogICAgIEVYUEVDVF9FUShpdGVt
VHlwZXNbM10sIEl0ZW1UeXBlOjpTdHJva2VQYXRoKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNw
cAppbmRleCAwZmVjNWY3NjVhNDJjOTI0N2E0MmE3NjkwMWYwNTYxNzMyY2RiOWI4Li5iZGE0ZGE5
YTYyMWJmMmU2Mzc1MTc5Zjk2MzUzZDU2MjA3ZDg1YTA2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNw
cApAQCAtNTMsMTEgKzUzLDE0IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgUmVwbGF5V2l0aE1p
c3NpbmdSZXNvdXJjZSkKICAgICBhdXRvIGltYWdlQnVmZmVySWRlbnRpZmllciA9IFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIAogICAgIERpc3BsYXlMaXN0IGxpc3Q7
CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgc3RhdGU7CiAKLSAgICBsaXN0LmFwcGVuZDxTZXRJ
bmxpbmVGaWxsQ29sb3I+KENvbG9yOjpncmVlbik7CisgICAgc3RhdGUuZmlsbENvbG9yID0gQ29s
b3I6OmJsdWU7CisgICAgbGlzdC5hcHBlbmQ8U2V0U3RhdGU+KHN0YXRlLCBHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKTsKICAgICBsaXN0LmFwcGVuZDxGaWxsUmVjdD4oY29u
dGV4dEJvdW5kcyk7CiAgICAgbGlzdC5hcHBlbmQ8RHJhd0ltYWdlQnVmZmVyPihpbWFnZUJ1ZmZl
cklkZW50aWZpZXIsIGNvbnRleHRCb3VuZHMsIGNvbnRleHRCb3VuZHMsIEltYWdlUGFpbnRpbmdP
cHRpb25zIHsgfSk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9y
OjpyZWQpOworICAgIHN0YXRlLnN0cm9rZUNvbG9yID0gQ29sb3I6OnJlZDsKKyAgICBsaXN0LmFw
cGVuZDxTZXRTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNo
YW5nZSk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlTGluZT4oRmxvYXRQb2ludCB7IDAsIGNvbnRl
eHRIZWlnaHQgfSwgRmxvYXRQb2ludCB7IGNvbnRleHRXaWR0aCwgMCB9KTsKIAogICAgIHsKQEAg
LTEyMCw3ICsxMjMsNyBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIE91dE9mTGluZUl0ZW1EZWNv
ZGluZ0ZhaWx1cmUpCiAgICAgcGF0aC5tb3ZlVG8oeyAxMC4sIDEwLiB9KTsKICAgICBwYXRoLmFk
ZExpbmVUbyh7IDUwLiwgNTAuIH0pOwogICAgIHBhdGguYWRkTGluZVRvKHsgMTAuLCAxMC4gfSk7
Ci0gICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oQ29sb3I6OmJs
dWUpOworICAgIG9yaWdpbmFsTGlzdC5hcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigxMCk7CiAg
ICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxGaWxsUGF0aD4oV1RGTW92ZShwYXRoKSk7CiAKICAgICBE
aXNwbGF5TGlzdCBzaGFsbG93Q29weSB7eyBJdGVtQnVmZmVySGFuZGxlIHsgZ2xvYmFsQnVmZmVy
SWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgb3JpZ2luYWxMaXN0LnNpemVJbkJ5dGVzKCkg
fSB9fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBlODNhOGY4ZmMwMzI0ODIwYjYzYzM5MTNmMDY4N2NhNzg4NTUxMjRlLi40
NzlkMjEyZDM2NTlmYTZlNTUzYzlhMTA3YWVkMWEwZWI3ZGM3NDM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjUgQEAKKzIwMjEtMDItMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBsZW1lbnQgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRl
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkaXNw
bGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAgIENoYW5n
ZSAic2V0LWlubGluZS1maWxsLWNvbG9yIiB0byAic2V0LXN0YXRlIiBpbiB0aGUgZXhwZWN0ZWQg
cmVzdWx0cy4KKworICAgICAgICAqIGdwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgIERlbGV0ZSB0aGUgdGVzdHMgd2hpY2ggd2VyZSBmaXhlZCBieSB0aGlzIHBhdGNoLiBUaGlz
IGZpbGUgd2FzIHNvcnRlZCBpbgorICAgICAgICBhc2NlbmRpbmcgb3JkZXIgdG8gbWFrZSBpdCBl
YXN5IHRvIHJlZ2VuZXJhdGUgdGhlIGV4cGVjdGVkIGZhaWx1cmVzIGluCisgICAgICAgIGEgY2Vy
dGFpbiBkaXJlY3RvcnkgYnkgZGVsZXRpbmcgYWxsIHRoZSBlbnRyaWVzIGluIHRoaXMgZGlyZWN0
b3J5IGZyb20KKyAgICAgICAgdGhpcyBmaWxlIGFuZCB0aGVuIHJ1bi13ZWJraXQtdGVzdHMuCisK
KyAgICAgICAgKiBpbXBvcnRlZC9ibGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3LXBhdHRlcm4t
c2l6ZS1leHBlY3RlZC5odG1sOgorICAgICAgICBDaGFuZ2UgdGhlIGV4cGVjdGVkIHJlc3VsdCBi
ZWNhdXNlIGRyYXdpbmcgdGhlIFNWRyBpbWFnZSBhcyBhIHBhdHRlcm4gaGFzCisgICAgICAgIGJl
ZW4gYnJva2VuIGZvciBhd2hpbGUuIFRoaXMgYnVnIHdhcyBub3QgY2F1Z2h0IGJlY2F1c2UgdGhl
IHRlc3QgYW5kIHRoZQorICAgICAgICBleHBlY3RlZCByZXN1bHQgYm90aCBkbyB0aGUgc2FtZSBk
cmF3aW5nLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoZQorICAgICAgICB3aWR0aCBvZiB0aGUg
U1ZHIGltYWdlLgorCiAyMDIxLTAyLTA1ICBSaW5pIFBhdGVsICA8cmluaV9wYXRlbEBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBSZXBvcHVsYXRlIHRoZSBUZXN0RXhwZWN0YXRp
b25zIGZpbGUgIzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMt
ZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52
YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dAppbmRleCAxNDUxYjE5MjUzYzMyMzg5MjhiYmQ5
ZjVlNWRlYmI5Mjc0YzUwZDU3Li40MzQzNmEzMTY1OGNjYTNiYjk1OWMyNjg4N2NkMTk2ZGNjYjUz
NGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXkt
bGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1k
aXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsOCBAQAogICAoc2hhZG93cy1pZ25v
cmUtdHJhbnNmb3JtcyAxKSkKIChmaWxsLXJlY3QKICAgKHJlY3QgYXQgKDEwLDEwKSBzaXplIDU1
eDUwKSBleHRlbnQgYXQgKDEwLDE0MCkgc2l6ZSA1NXg1MCkKLShzZXQtaW5saW5lLWZpbGwtY29s
b3IKLSAgKGNvbG9yICMwMDAwQzg4MCkpCisoc2V0LXN0YXRlCisgIChjaGFuZ2UtZmxhZ3MgMTI4
KQorICAoZmlsbC1jb2xvciAjMDAwMEM4ODApKQogKGZpbGwtcmVjdAogICAocmVjdCBhdCAoMzAs
MzApIHNpemUgNTV4NTApIGV4dGVudCBhdCAoMzAsMTIwKSBzaXplIDU1eDUwKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzM2NmZkOWFkMDc2ZjU1ZWUyODVl
NmY3OTg0YTg4M2UxODZiZjVjZi4uMWFmZTA5MmJlNmU4M2Q5NGM5NTA4ODUzYjQ5MWMyNmVjYTRi
NzU4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xLDQ5
ICsxLDggQEAKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLmdsb2JhbEFscGhhLmNh
bnZhc3BhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9z
aXRlLmdsb2JhbEFscGhhLmltYWdlcGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uY29weS5odG1sIFsgQ3Jhc2gg
XQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVz
dGluYXRpb24tYXRvcC5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21w
b3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uZGVzdGluYXRpb24taW4uaHRtbCBbIENyYXNoIF0KLWNh
bnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1p
bi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUudW5jb3Zl
cmVkLnBhdHRlcm4uc291cmNlLW91dC5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLmFuaW1hdGVkLmdpZi5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLmJhc2ljLmNhbnZhcy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5wYXR0ZXJuLmJhc2ljLmltYWdlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnBhdHRlcm4uYmFzaWMubm9jb250ZXh0Lmh0bWwgWyBDcmFzaCBdCi1jYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uY3Jvc3NjYW52YXMuaHRtbCBbIENyYXNoIF0KLWNh
bnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFzMS5odG1sIFsgQ3Jhc2gg
XQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwgWyBD
cmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMS5odG1s
IFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTIu
aHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5ub3Jl
cGVhdC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJu
LnBhaW50Lm5vcmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMi5odG1sIFsgQ3Jhc2ggXQotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jh
c2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0Lm91dHNp
ZGUuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5v
cmllbnRhdGlvbi5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0dGVybi5wYWludC5vcmllbnRhdGlvbi5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQot
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDEuaHRtbCBb
IENyYXNoIF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29v
cmQyLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQu
cmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0
ZXJuLnBhaW50LnJlcGVhdC5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHguY29vcmQxLmh0bWwgWyBDcmFz
aCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5vdXRzaWRl
Lmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVw
ZWF0eS5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJu
LnBhaW50LnJlcGVhdHkuY29vcmQxLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5vdXRzaWRlLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucmVwZWF0LmVtcHR5Lmh0bWwgWyBDcmFzaCBdCi1jYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucmVwZWF0Lm51bGwuaHRtbCBbIENyYXNoIF0KLWNh
bnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4uYWxwaGEuaHRtbCBbIENyYXNoIF0K
LWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4uYmFzaWMuaHRtbCBbIENyYXNo
IF0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMS5o
dG1sIFsgQ3Jhc2ggXQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cucGF0dGVybi50cmFu
c3BhcmVudC4yLmh0bWwgWyBDcmFzaCBdCi1jYW52YXMvcGhpbGlwL3Rlc3RzL2luaXRpYWwucmVz
ZXQucGF0dGVybi5odG1sIFsgQ3Jhc2ggXQotCiBjb21wb3NpdGluZy9jYW52YXMvYWNjZWxlcmF0
ZWQtY2FudmFzLWNvbXBvc2l0aW5nLmh0bWwgWyBGYWlsdXJlIF0KIGNvbXBvc2l0aW5nL2xheWVy
LWNyZWF0aW9uL3NwYW5PdmVybGFwc0NhbnZhcy5odG1sIFsgRmFpbHVyZSBdCiAKIGNzczMvYmxl
bmRpbmcvYmxlbmQtbW9kZS1jbGlwLWFjY2VsZXJhdGVkLWJsZW5kaW5nLWNhbnZhcy5odG1sIFsg
RmFpbHVyZSBdCisKIGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwgWyBGYWls
dXJlIF0KIAogZmFzdC9jYW52YXMvMmQuZmlsbFRleHQuZ3JhZGllbnQuaHRtbCBbIEZhaWx1cmUg
XQpAQCAtNTUsMzMgKzE0LDExIEBAIGZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZC1pbWFnZS5odG1s
IFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy9jYW52YXMtYmxlbmQtc29saWQuaHRtbCBbIEZhaWx1
cmUgXQogZmFzdC9jYW52YXMvY2FudmFzLWJsZW5kaW5nLWNsaXBwaW5nLmh0bWwgWyBGYWlsdXJl
IF0KIGZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWNvbG9yLmh0bWwgWyBG
YWlsdXJlIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVyLWdyYWRpZW50
Lmh0bWwgWyBGYWlsdXJlIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xvci1vdmVy
LWltYWdlLmh0bWwgWyBUaW1lb3V0IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1jb2xv
ci1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGlu
Zy1ncmFkaWVudC1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZh
cy1ibGVuZGluZy1pbWFnZS1vdmVyLXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWZhc3QvY2FudmFz
L2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItY29sb3IuaHRtbCBbIENyYXNoIF0KLWZhc3Qv
Y2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItZ3JhZGllbnQuaHRtbCBbIENyYXNo
IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItaW1hZ2UuaHRtbCBb
IENyYXNoIF0KLWZhc3QvY2FudmFzL2NhbnZhcy1ibGVuZGluZy1wYXR0ZXJuLW92ZXItcGF0dGVy
bi5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWNyZWF0ZVBhdHRlcm4tZmlsbFJl
Y3Qtc2hhZG93Lmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRlUGF0dGVy
bi12aWRlby1sb2FkaW5nLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9jYW52YXMtY3JlYXRl
UGF0dGVybi12aWRlby1tb2RpZnkuaHRtbCBbIENyYXNoIF0KK2Zhc3QvY2FudmFzL2NhbnZhcy1i
bGVuZGluZy1jb2xvci1vdmVyLWdyYWRpZW50Lmh0bWwgWyBGYWlsdXJlIF1gCiBmYXN0L2NhbnZh
cy9jYW52YXMtZHJhd0ltYWdlLWNvbXBvc2l0ZS1jb3B5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLWZhc3QvY2FudmFzL2NhbnZhcy1maWxsUGF0aC1wYXR0ZXJuLXNoYWRvdy5odG1sIFsgQ3Jh
c2ggXQotZmFzdC9jYW52YXMvY2FudmFzLWltYWdlLXNoYWRvdy5odG1sIFsgQ3Jhc2ggXQotZmFz
dC9jYW52YXMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1wYXR0ZXJucy5odG1sIFsgQ3Jh
c2ggXQogZmFzdC9jYW52YXMvY2FudmFzLWxhcmdlLWRpbWVuc2lvbnMuaHRtbCBbIEZhaWx1cmUg
XQotZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4tYmVoYXZpb3VyLmh0bWwgWyBDcmFzaCBdCi1m
YXN0L2NhbnZhcy9jYW52YXMtcGF0dGVybi1tb2RpZnkuaHRtbCBbIENyYXNoIF0KLWZhc3QvY2Fu
dmFzL2NhbnZhcy1wYXR0ZXJuLXRyYW5zZm9ybS5odG1sIFsgQ3Jhc2ggXQotZmFzdC9jYW52YXMv
Y2FudmFzLXBhdHRlcm4td2l0aC10cmFuc2Zvcm0uaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFz
L2NhbnZhcy1yZW5kZXItbGF5ZXIuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvaGlkcGkt
cmVwYWludC1vbi1yZXRpbmEtbGVhdmVzLWJpdHMtYmVoaW5kLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLWZhc3QvY2FudmFzL2ltYWdlLW9iamVjdC1pbi1jYW52YXMuaHRtbCBbIENyYXNoIF0K
LWZhc3QvY2FudmFzL2ltYWdlLXBhdHRlcm4tcm90YXRlLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2Nh
bnZhcy9wYXR0ZXJuLXdpdGgtdHJhbnNmb3JtLmh0bWwgWyBDcmFzaCBdCi1mYXN0L2NhbnZhcy9w
YXR0ZXJuZmlsbC1yZXBlYXQuaHRtbCBbIENyYXNoIF0KIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZh
cy0yZC13ZWJnbC10ZXh0dXJlLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL2Nh
bnZhcy10ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtY3Jl
YXRpb24tYXR0cmlidXRlcy5odG1sIFsgRmFpbHVyZSBdCkBAIC0xMDEsMjkgKzM4LDI2IEBAIGZh
c3QvY2FudmFzL3dlYmdsL3RleEltYWdlMkQtdmlkZW8tZmxpcFktdHJ1ZS5odG1sIFsgRmFpbHVy
ZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0bWwgWyBGYWlsdXJl
IF0KIGZhc3QvY2FudmFzL3dlYmdsL3VuaWZvcm0tc2FtcGxlcnMtdGVzdC5odG1sIFsgVGltZW91
dCBdCiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbCBbIFRp
bWVvdXQgXQotCiBmYXN0L2RvbS9uYXZpZ2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2guaHRtbCBbIEZh
aWx1cmUgXQogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0LWNyYXNoLmh0bWwgWyBUaW1l
b3V0IF0KIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWltYWdlLW1wNC5odG1sIFsgVGltZW91dCBdCiBm
YXN0L2ltYWdlcy9vcmRlcmVkLWFuaW1hdGVkLWltYWdlLWZyYW1lcy5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi0KIGZhc3QvbWVkaWFjYXB0dXJlZnJvbWVsZW1lbnQvQ2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtLWV4Y2VwdGlvbnMuaHRtbCBbIENyYXNoIF0KIGZhc3QvbWVkaWFjYXB0dXJlZnJv
bWVsZW1lbnQvQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtLXdlYmdsLWV2ZW50cy5odG1sIFsgVGlt
ZW91dCBdCiBmYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVTdHJlYW0vY2FudmFzM2QuaHRtbCBbIEZh
aWx1cmUgXQogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRtbCBbIEZh
aWx1cmUgXQogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1lbGVtZW50LWN1cnJlbnQtdGltZS5odG1s
IFsgRmFpbHVyZSBdCiBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1pbnRlcnJ1
cHRlZC5odG1sIFsgRmFpbHVyZSBdCi0KIGZhc3QvcmVwYWludC9jYW52YXMtb2JqZWN0LWZpdC5o
dG1sIFsgRmFpbHVyZSBdCiBmYXN0L3JlcGFpbnQvY2FudmFzLXB1dEltYWdlRGF0YS5odG1sIFsg
RmFpbHVyZSBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4t
c3RvcC5odG1sIFsgVGltZW91dCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29u
ZC1yZWNvZ25pdGlvbi5odG1sIFsgRmFpbHVyZSBdCi0KIGZhc3QvdGV4dC9jYW52YXMtY29sb3It
Zm9udHMvZmlsbC1ncmFkaWVudC1DT0xSLTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFz
dC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtQ09MUi0yLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvdGV4dC9jYW52YXMtY29sb3ItZm9udHMvc3Ryb2tlLWdy
YWRpZW50LUNPTFItMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3RleHQvY2FudmFz
LWNvbG9yLWZvbnRzL3N0cm9rZS1ncmFkaWVudC1DT0xSLTQuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogZmFzdC90ZXh0L2NhbnZhcy1jb2xvci1mb250cy9zdHJva2UtZ3JhZGllbnQtQ09MUi01
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9u
dHMvZmlsbC1ncmFkaWVudC1zYml4LTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaHR0cC90
ZXN0cy9jYW52YXMvY29sb3ItZm9udHMvZmlsbC1ncmFkaWVudC1zYml4LTMuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9udHMvZmlsbC1ncmFkaWVu
dC1zYml4LTQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpAQCAtMTgyLDkgKzExNiw4IEBAIGh0
dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxvd2VkLWNy
b3Nzb3JpZ2luLXJlZGlyZWN0Lmh0CiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRl
ci1yZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi5odG1sIFsgVGltZW91dCBdCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1j
cm9zc29yaWdpbi1yZWRpcmVjdC5odG1sIFsgVGltZW91dCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1uby1jcm9zc29yaWdpbi5odG1s
IFsgVGltZW91dCBdCi0KLWh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1h
dWRpby12aWRlby1kYXRhYXZhaWxhYmxlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci1hdWRpby1iaXRyYXRlLmh0bWwgWyBGYWlsdXJlIF0KK2h0
dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZh
aWxhYmxlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci1tdWx0aXBsZS1zdGFydC1zdG9wLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvd3B0L21lZGlh
cmVjb3JkZXIvbXV0ZS10cmFja3MuaHRtbCBbIENyYXNoIF0KIGh0dHAvd3B0L21lZGlhcmVjb3Jk
ZXIvcGF1c2UtcmVjb3JkaW5nLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTE5NSw5NSArMTI4LDExIEBA
IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1pcy11c2VyLXZlcmlmeWlu
Zy1wbGF0Zm9ybS1hdXRoZW50aWNhdG9yCiBpbXBvcnRlZC9ibGluay9mYXN0L2NhbnZhcy9jYW52
YXMtY2xpcC1zdGFjay1wZXJzaXN0ZW5jZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBv
cnRlZC9ibGluay9mYXN0L2NhbnZhcy9jYW52YXMtc3RhdGUtcGVyc2lzdGVuY2Utbm8tZGlydHku
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvYmxpbmsvZmFzdC9jYW52YXMvY2Fu
dmFzLXVuYmFsYW5jZWQtc2F2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC9i
bGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3LXBhdHRlcm4tc2l6ZS5odG1sIFsgQ3Jhc2ggXQog
Ci1pbXBvcnRlZC93M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5jYW52YXNwYXR0
ZXJuLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS5nbG9i
YWxBbHBoYS5pbWFnZXBhdHRlcm4uaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMv
MmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmNvcHkuaHRtbCBbIENyYXNoIF0KLWltcG9y
dGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9u
LWF0b3AuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVu
Y292ZXJlZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93
M2MvY2FudmFzLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2UtaW4uaHRtbCBb
IENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQuY29tcG9zaXRlLnVuY292ZXJlZC5wYXR0
ZXJuLnNvdXJjZS1vdXQuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0
dGVybi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
cGF0dGVybi5iYXNpYy5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8y
ZC5wYXR0ZXJuLmJhc2ljLm5vY29udGV4dC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2Nh
bnZhcy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
Y2FudmFzLzJkLnBhdHRlcm4ubW9kaWZ5LmNhbnZhczEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVk
L3czYy9jYW52YXMvMmQucGF0dGVybi5tb2RpZnkuY2FudmFzMi5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmJhc2ljLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQuY29v
cmQxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQu
bm9yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBh
dHRlcm4ucGFpbnQubm9yZXBlYXQuY29vcmQzLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
Y2FudmFzLzJkLnBhdHRlcm4ucGFpbnQubm9yZXBlYXQub3V0c2lkZS5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmNhbnZhcy5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVu
dGF0aW9uLmltYWdlLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRl
cm4ucGFpbnQucmVwZWF0LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL2NhbnZhcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDIuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQzLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0Lm91
dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWlu
dC5yZXBlYXR4LmJhc2ljLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBh
dHRlcm4ucGFpbnQucmVwZWF0eC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9j
YW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWlt
cG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmJhc2ljLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5jb29y
ZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0dGVybi5wYWludC5y
ZXBlYXR5Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQucGF0
dGVybi5yZXBlYXQuZW1wdHkuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvMmQu
cGF0dGVybi5yZXBlYXQubnVsbC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy8y
ZC5zaGFkb3cucGF0dGVybi5hbHBoYS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZh
cy8yZC5zaGFkb3cucGF0dGVybi5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2Nh
bnZhcy8yZC5zaGFkb3cucGF0dGVybi50cmFuc3BhcmVudC4xLmh0bWwgWyBDcmFzaCBdCi1pbXBv
cnRlZC93M2MvY2FudmFzLzJkLnNoYWRvdy5wYXR0ZXJuLnRyYW5zcGFyZW50LjIuaHRtbCBbIENy
YXNoIF0KLWltcG9ydGVkL3czYy9jYW52YXMvaW5pdGlhbC5yZXNldC5wYXR0ZXJuLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2MvY2FudmFzL3NlY3VyaXR5LnBhdHRlcm4uY2FudmFzLnRpbWlu
Zy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL2NhbnZhcy9zZWN1cml0eS5wYXR0ZXJuLmNy
b3NzLmh0bWwgWyBDcmFzaCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3JhbmdlL2dlbmVyYWwud2luZG93Lmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBGYWlsdXJl
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9j
b21wb3NpdGluZy8yZC5jb21wb3NpdGUuZ2xvYmFsQWxwaGEuY2FudmFzcGF0dGVybi5odG1sIFsg
Q3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVt
ZW50L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS5nbG9iYWxBbHBoYS5pbWFnZXBhdHRlcm4uaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9jb21wb3NpdGluZy8yZC5jb21wb3NpdGUudW5jb3ZlcmVkLnBhdHRlcm4uY29weS5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9lbGVtZW50L2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5kZXN0
aW5hdGlvbi1hdG9wLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9zaXRlLnVuY292ZXJl
ZC5wYXR0ZXJuLmRlc3RpbmF0aW9uLWluLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvY29tcG9zaXRpbmcvMmQuY29tcG9z
aXRlLnVuY292ZXJlZC5wYXR0ZXJuLnNvdXJjZS1pbi5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2NvbXBvc2l0aW5nLzJk
LmNvbXBvc2l0ZS51bmNvdmVyZWQucGF0dGVybi5zb3VyY2Utb3V0Lmh0bWwgWyBDcmFzaCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1h
bmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLmFuaW1hdGVkLmdpZi5odG1sIFsgQ3Jhc2ggXQot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwt
YW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5iYXNpYy5jYW52YXMuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxs
LWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4uYmFzaWMuaW1hZ2UuaHRtbCBbIENyYXNoIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxs
LWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4uYmFzaWMubm9jb250ZXh0Lmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLmNyb3NzY2FudmFzLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQv
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMxLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1l
bnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5jYW52YXMyLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTEuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ubW9kaWZ5LmltYWdlMi5o
dG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVh
dC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWlu
dC5ub3JlcGVhdC5jb29yZDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBh
dHRlcm4ucGFpbnQubm9yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0
eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm5vcmVwZWF0LmNvb3JkMy5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5k
LXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5ub3JlcGVhdC5vdXRzaWRlLmh0bWwgWyBD
cmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1l
bnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50Lm9yaWVudGF0aW9uLmNh
bnZhcy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5v
cmllbnRhdGlvbi5pbWFnZS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0
dGVybi5wYWludC5yZXBlYXQuYmFzaWMuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9r
ZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXQuY29vcmQyLmh0bWwgWyBDcmFzaCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQvZmlsbC1h
bmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdC5jb29yZDMuaHRtbCBbIENy
YXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVu
dC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0Lm91dHNpZGUu
aHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0
eC5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWlu
dC5yZXBlYXR4LmNvb3JkMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0
dGVybi5wYWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5
bGVzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ZpbGwtYW5kLXN0
cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sIFsgQ3Jhc2gg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2Zp
bGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5Lm91dHNpZGUuaHRt
bCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBhdHRlcm4ucmVwZWF0LmVtcHR5Lmh0
bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L2VsZW1lbnQvZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5wYXR0ZXJuLnRyYW5zZm9ybS5pZGVu
dGl0eS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9lbGVtZW50L2ltYWdlLXNtb290aGluZy9pbWFnZXNtb290aGluZy5odG1sIFsgQ3Jh
c2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50
L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLW9yaWdpbi5zdWIuaHRtbCBbIEZhaWx1cmUg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2xp
bmUtc3R5bGVzLzJkLmxpbmUuY2FwLmNsb3NlZC5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3BhdGgtb2JqZWN0cy8yZC5w
YXRoLmFyYy5hbmdsZS4yLmh0bWwgWyBDcmFzaCBdCisKIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9wYXRoLW9iamVjdHMvMmQucGF0aC5zdHJva2Uu
c2NhbGUyLmh0bWwgWyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvZWxlbWVudC9zaGFkb3dzLzJkLnNoYWRvdy5wYXR0ZXJuLmFscGhhLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQvc2hhZG93cy8yZC5zaGFkb3cucGF0dGVybi5iYXNpYy5odG1sIFsgQ3Jhc2ggXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3NoYWRvd3Mv
MmQuc2hhZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMS5odG1sIFsgQ3Jhc2ggXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3NoYWRvd3MvMmQuc2hh
ZG93LnBhdHRlcm4udHJhbnNwYXJlbnQuMi5odG1sIFsgQ3Jhc2ggXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X3Byb2dyZXNzX25vYXV0b3BsYXkuaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2xvYWRpbmctdGhlLW1lZGlhLXJlc291cmNlL2xvYWQtZXZlbnRzLW5l
dHdvcmtTdGF0ZS5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcHJlc2Vy
dmVzLXBpdGNoLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTM0Miw5ICsxOTEsOSBAQCBzdmcvYXMtaW1h
Z2Uvc3ZnLWNhbnZhcy1wYXR0ZXJuLXdpdGgtbGluay10YWludGVkLmh0bWwgWyBDcmFzaCBdCiBz
dmcvY2FudmFzL2NhbnZhcy1nbG9iYWwtYWxwaGEtc3ZnLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHN2Zy9jYW52YXMvY2FudmFzLXBhdHRlcm4tc3ZnLmh0bWwgWyBDcmFzaCBdCiAKLXdlYmF1
ZGlvL1Bhbm5lci9ocnRmLWRhdGFiYXNlLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmF1ZGlvL2NvZGVj
LXRlc3RzL2FhYy92YnItMTI4a2Jwcy00NGtoei5odG1sIFsgVGltZW91dCBdCiB3ZWJhdWRpby9j
b2RlYy10ZXN0cy9tcDMvMTI4a2Jwcy00NGtoei5odG1sIFsgVGltZW91dCBdCit3ZWJhdWRpby9Q
YW5uZXIvaHJ0Zi1kYXRhYmFzZS5odG1sIFsgVGltZW91dCBdCiAKIHdlYmdsLzEuMC4zL2NvbmZv
cm1hbmNlL2NhbnZhcy9jYW52YXMtdGVzdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8xLjAuMy9j
b25mb3JtYW5jZS9jYW52YXMvZHJhdy1zdGF0aWMtd2ViZ2wtdG8tbXVsdGlwbGUtY2FudmFzLXRl
c3QuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNDE3LDY4ICsyNjYsNiBAQCB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZS90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYmEtcmdiYS11bnNpZ25lZF9z
aG9ydF81Xwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvdW5pZm9ybXMvdW5pZm9ybS1zYW1wbGVy
cy10ZXN0Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZWFkaW5n
L3JlYWQtcGl4ZWxzLXBhY2stcGFyYW1ldGVycy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sIFsgVGltZW91dCBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTFmX2cx
MWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcjE2Zi1yZWQtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yMzJmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yOC1yZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0y
ZC1yOHVpLXJlZF9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcxNmYtcmctZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZh
cy90ZXgtMmQtcmcxNmYtcmctaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzMyZi1yZy1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZzgtcmctdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhh
bGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdiLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5z
aWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4
LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmExNmYtcmdi
YS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yZ2JhMTZmLXJnYmEtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMzJm
LXJnYmEtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJn
YmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtMmQtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFp
bHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1y
MTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2It
dW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTZmLXJlZC1mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0zZC1yMTZmLXJlZC1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXIzMmYtcmVkLWZsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXI4LXJlZC11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXI4dWktcmVkX2ludGVnZXItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0zZC1yZzE2Zi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzE2Zi1yZy1oYWxmX2Zsb2F0
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTNkLXJnMzJmLXJnLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnOC1yZy11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMv
dGV4LTNkLXJnOHVpLXJnX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdi
LWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXMvdGV4LTNkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IzMmYtcmdi
LWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1NjUt
cmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTE2Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdi
YS1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmEzMmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhNC1y
Z2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRf
NF80Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhOHVpLXJn
YmFfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTNkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xl
L3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1y
MTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXIxMWZf
ZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwgWyBGYWlsdXJl
IF0KQEAgLTQ5NSwxMCArMjgyLDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11CiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rhbmds
ZS90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQt
cmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiNV9hMS1y
Z2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I1NjUt
cmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2ln
bmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQpAQCAtNTEwLDggKzI5Nyw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJn
YmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXJnYmE4dWktcmdi
YV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1zcmdiOC1yZ2It
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0
ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2Fu
dmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3Rh
bmdsZS90ZXgtM2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9y
ZXYuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTI4LDEwICszMTUsMTAgQEAgd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZzh1aS1yZ19p
bnRlZ2VyLXUKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3Jl
Y3RhbmdsZS90ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJn
YjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXJnYjMyZi1yZ2ItZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBb
IEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJf
cmVjdGFuZ2xlL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3Jl
Y3RhbmdsZS90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xl
L3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5n
bGUvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1y
Z2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiOHVpLXJnYl9p
bnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1yZ2I5X2U1LXJnYi1m
bG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC01NDMsOCArMzMwLDcwIEBAIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlY3RhbmdsZS90ZXgtM2QtcmdiYTQtcmdi
YS11bnNpZ25lCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9y
ZWN0YW5nbGUvdGV4LTNkLXJnYmE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUv
dGV4LTNkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xl
L3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzX3N1Yl9yZWN0YW5nbGUvdGV4LTNkLXNy
Z2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4w
LjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhc19zdWJfcmVjdGFuZ2xlL3RleC0zZC1zcmdi
OC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRt
bCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtMmQtcjExZl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjExZl9nMTFmX2Ix
MGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcjE2Zi1yZWQtZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtMmQtcjE2Zi1yZWQtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yMzJmLXJlZC1mbG9hdC5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0yZC1yOC1yZWQtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yOHVpLXJlZF9pbnRlZ2VyLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcxNmYtcmctZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmcxNmYtcmctaGFs
Zl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0yZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzgtcmctdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
Y2FudmFzL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdi
MTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdi
MzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0y
ZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFz
L3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdl
ci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2Jh
MTZmLXJnYmEtaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhMzJmLXJnYmEtZmxvYXQuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQt
cmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hv
cnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvY2FudmFzL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtMmQtcmdi
YTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdi
YS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFs
Zl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZf
MTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yMTZmLXJlZC1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yMTZmLXJlZC1oYWxmX2Zs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXIzMmYtcmVkLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXI4LXJlZC11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52
YXMvdGV4LTNkLXI4dWktcmVkX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZzE2Zi1y
Zy1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvY2FudmFzL3RleC0zZC1yZzE2Zi1yZy1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnMzJmLXJnLWZs
b2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXJnOC1yZy11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnOHVpLXJnX2ludGVn
ZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjE2
Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVf
YTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9y
dF81XzVfNV8xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9jYW52YXMvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2I1
NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYjgtcmdiLXVuc2lnbmVkX2J5
dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2Nh
bnZhcy90ZXgtM2QtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtcmdi
YTE2Zi1yZ2JhLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1oYWxmX2Zsb2F0Lmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNk
LXJnYmEzMmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRt
bCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90
ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXMvdGV4LTNkLXJnYmE4LXJn
YmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvY2FudmFzL3RleC0zZC1yZ2JhOHVpLXJnYmFfaW50ZWdlci11bnNpZ25lZF9i
eXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9j
YW52YXMvdGV4LTNkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1
cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2NhbnZhcy90ZXgtM2Qtc3Jn
YjgtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcjEx
Zl9nMTFmX2IxMGYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXIx
MWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4
LTJkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8xMWZfcmV2Lmh0bWwg
WyBGYWlsdXJlIF0KQEAgLTU2MSwxMCArNDEwLDEwIEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnOHVpLXJn
CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1h
Z2VfYml0bWFwL3RleC0yZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRt
YXAvdGV4LTJkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFw
L3RleC0yZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0y
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRt
YXAvdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9i
aXRtYXAvdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVfNV8xLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBf
ZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjU2NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFw
X2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX3Nob3J0XzVfNl81
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjgtcmdiLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiOHVpLXJnYl9pbnRlZ2VyLXVuc2ln
bmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1
cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTc2LDggKzQyNSw4IEBAIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJn
YmE0LXJnCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zy
b21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80XzQu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtc3JnYjgtcmdiLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtc3JnYjhfYWxwaGE4
LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1zcmdi
OC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yMTFm
X2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcjEx
Zl9nMTFmX2IxMGYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgt
M2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBb
IEZhaWx1cmUgXQpAQCAtNTk0LDEwICs0NDMsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtcmc4dWktcmcK
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFn
ZV9iaXRtYXAvdGV4LTNkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1h
cC90ZXgtM2QtcmdiMTZmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAv
dGV4LTNkLXJnYjMyZi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qt
cmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNk
LXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1h
cC90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2Jp
dG1hcC90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9m
cm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBf
ZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2Vf
Yml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I4dWktcmdiX2ludGVnZXItdW5zaWdu
ZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I5X2U1LXJnYi1mbG9h
dC5odG1sIFsgRmFpbHVyZSBdCkBAIC02MDksOCArNDU4LDggQEAgd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2Qtcmdi
YTQtcmcKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJv
bV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2Vf
Yml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdl
X2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1zcmdiOC1yZ2ItdW5z
aWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1zcmdiOF9hbHBoYTgt
cmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXNyZ2I4
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9taXNjL2ludGVnZXItY3ViZW1hcC10ZXh0dXJlLXNhbXBsaW5nLmh0bWwg
WyBDcmFzaCBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJk
LXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxm
X2Zsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTYyOCwxMCArNDc3LDEwIEBAIHdlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmc4dWktcmdfaW50ZWdlci11bnNp
Z25lZF9ieXRlLmh0CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4
LTJkLXJnYjE2Zi1yZ2ItZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBb
IEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0y
ZC1yZ2IzMmYtcmdiLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgt
MmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYjVfYTEtcmdiYS11
bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzVfNV81XzEu
aHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVv
L3RleC0yZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wv
Mi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1yZ2I1NjUtcmdiLXVuc2ln
bmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJn
Yjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiOV9lNS1yZ2ItZmxvYXQu
aHRtbCBbIEZhaWx1cmUgXQpAQCAtNjQzLDggKzQ5Miw4IEBAIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy92aWRlby90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwg
WyBGCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYmE0
LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXJnYmE4LXJnYmEtdW5zaWduZWRf
Ynl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
dmlkZW8vdGV4LTJkLXJnYmE4dWktcmdiYV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0yZC1z
cmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTJkLXNyZ2I4X2FscGhhOC1yZ2JhLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0yZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXIxMWZfZzExZl9i
MTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvdmlkZW8vdGV4LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1oYWxmX2Zsb2F0Lmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgt
M2QtcjExZl9nMTFmX2IxMGYtcmdiLXVuc2lnbmVkX2ludF8xMGZfMTFmXzExZl9yZXYuaHRtbCBb
IEZhaWx1cmUgXQpAQCAtNjYxLDEwICs1MTAsMTAgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHQK
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiMTZmLXJn
Yi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvdmlkZW8vdGV4LTNkLXJnYjE2Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjMyZi1yZ2It
ZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiNV9hMS1yZ2JhLXVuc2lnbmVkX2J5dGUu
aHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3ZpZGVv
L3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjU2
NS1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXJnYjU2NS1yZ2ItdW5zaWduZWRfc2hvcnRfNV82
XzUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3Zp
ZGVvL3RleC0zZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiOHVpLXJnYl9pbnRl
Z2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3ZpZGVvL3RleC0zZC1yZ2I5X2U1LXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCkBAIC02NzYsOCArNTI1LDggQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3ZpZGVvL3RleC0zZC1yZ2JhNC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEYKIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25l
ZF9zaG9ydF80XzRfNF80Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy92aWRlby90ZXgtM2QtcmdiYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy92aWRlby90ZXgtM2Qt
cmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNkLXNyZ2I4LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy92aWRlby90ZXgtM2Qtc3JnYjhfYWxwaGE4LXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvdmlkZW8vdGV4LTNk
LXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJn
Yi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItaGFsZl9mbG9hdC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2Fu
dmFzL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWduZWRfaW50XzEwZl8xMWZfMTFmX3Jl
di5odG1sIFsgRmFpbHVyZSBdCkBAIC02OTQsMTAgKzU0MywxMCBAQCB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZzh1aS1yZ19pbnRlZ2VyLXVu
c2lnbmVkXwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90
ZXgtMmQtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2IxNmYtcmdiLWhhbGZfZmxv
YXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dl
YmdsX2NhbnZhcy90ZXgtMmQtcmdiMzJmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1NjUt
cmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9y
dF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfYnl0ZS5odG1sIFsg
RmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFz
L3RleC0yZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRfNV81XzVfMS5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0y
ZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQord2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQtcmdiNTY1LXJnYi11bnNp
Z25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9j
YW52YXMvdGV4LTJkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4
LTJkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCkBAIC03MDcsOCArNTU2LDgg
QEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQt
cmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmgKIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy93ZWJnbF9jYW52YXMvdGV4LTJkLXJnYmE0LXJnYmEtdW5zaWduZWRfc2hvcnRfNF80XzRf
NC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2Vi
Z2xfY2FudmFzL3RleC0yZC1yZ2JhOC1yZ2JhLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUg
XQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtMmQt
cmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1zcmdiOC1y
Z2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0yZC1zcmdiOF9hbHBoYTgtcmdiYS11bnNpZ25l
ZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy93ZWJnbF9jYW52YXMvdGV4LTJkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4
LTNkLXIxMWZfZzExZl9iMTBmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEw
Zi1yZ2ItaGFsZl9mbG9hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yMTFmX2cxMWZfYjEwZi1yZ2ItdW5zaWdu
ZWRfaW50XzEwZl8xMWZfMTFmX3Jldi5odG1sIFsgRmFpbHVyZSBdCkBAIC03MjUsMTAgKzU3NCwx
MCBAQCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0z
ZC1yZzh1aS1yZ19pbnRlZ2VyLXVuc2lnbmVkXwogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiMTZmLXJnYi1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0z
ZC1yZ2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiMzJmLXJnYi1mbG9hdC5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xf
Y2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZhaWx1cmUgXQot
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90ZXgtM2Qtcmdi
NTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEt
dW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1X2ExLXJnYmEtdW5zaWduZWRfc2hvcnRf
NV81XzVfMS5odG1sIFsgRmFpbHVyZSBdCit3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I1NjUtcmdiLXVuc2lnbmVkX2J5dGUuaHRtbCBbIEZh
aWx1cmUgXQord2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL3dlYmdsX2NhbnZhcy90
ZXgtM2QtcmdiNTY1LXJnYi11bnNpZ25lZF9zaG9ydF81XzZfNS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2I4
LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYjh1aS1yZ2JfaW50ZWdlci11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYmExNmYtcmdiYS1mbG9hdC5odG1sIFsgRmFpbHVy
ZSBdCkBAIC03MzgsOCArNTg3LDkgQEAgd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmgKIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXJnYmE0LXJnYmEt
dW5zaWduZWRfc2hvcnRfNF80XzRfNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1yZ2JhOC1yZ2JhLXVuc2lnbmVk
X2J5dGUuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVz
L3dlYmdsX2NhbnZhcy90ZXgtM2QtcmdiYTh1aS1yZ2JhX2ludGVnZXItdW5zaWduZWRfYnl0ZS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xf
Y2FudmFzL3RleC0zZC1zcmdiOC1yZ2ItdW5zaWduZWRfYnl0ZS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvd2ViZ2xfY2FudmFzL3RleC0zZC1zcmdi
OF9hbHBoYTgtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy93ZWJnbF9jYW52YXMvdGV4LTNkLXNyZ2I4LXJnYi11bnNp
Z25lZF9ieXRlLmh0bWwgWyBGYWlsdXJlIF0KKwogd2ViZ2wvbWFueS1jb250ZXh0cy1hY2Nlc3Mt
YWZ0ZXItbG9zcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWNv
bnNvbGUtd2FybmluZy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRz
LWdjLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTc1Miw3ICs2MDIsNyBAQCB3ZWJydGMvY2FwdHVyZUNh
bnZhcy13ZWJydGMtc29mdHdhcmUtaDI2NC1oaWdoLmh0bWwgWyBUaW1lb3V0IF0KIHdlYnJ0Yy9j
YXB0dXJlQ2FudmFzLXdlYnJ0Yy5odG1sIFsgVGltZW91dCBdCiB3ZWJydGMvaDI2NC1iYXNlbGlu
ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJydGMvaDI2NC1oaWdoLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YnJ0Yy92aWRlby5odG1sIFsgRmFpbHVyZSBdCiB3ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3Zv
Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYnJ0Yy92aWRlby1yb3RhdGlvbi5odG1sIFsgVGltZW91dCBd
Ci13ZWJydGMvdmlkZW8tdW5tdXRlLmh0bWwgWyBUaW1lb3V0IF0KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCit3ZWJydGMvdmlkZW8tdW5tdXRlLmh0bWwgWyBUaW1lb3V0IF0KK3dlYnJ0Yy92
aWRlby5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9i
bGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3LXBhdHRlcm4tc2l6ZS1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvc3ZnL2NhbnZhcy9jYW52YXMtZHJhdy1wYXR0ZXJu
LXNpemUtZXhwZWN0ZWQuaHRtbAppbmRleCA1MzkyN2VhYjQ5MmNhMjUxMmJmMGRkNzdkMjU5MmQ2
MTFiMzgyMDFmLi40OTRhYjE1ODI3MGM5Mzk5YTUwNDE3ZThkNWFlZGVlMTFhYzRlYWI3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3
LXBhdHRlcm4tc2l6ZS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2Js
aW5rL3N2Zy9jYW52YXMvY2FudmFzLWRyYXctcGF0dGVybi1zaXplLWV4cGVjdGVkLmh0bWwKQEAg
LTEsMjYgKzEsMTIgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICB2YXIgY29udGV4dCA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdjYW52YXMnKVswXS5nZXRDb250ZXh0KCcyZCcpOwotICB2YXIgZm9yY2VM
YXlvdXQgPSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwotCi0gIHZhciBkb21JbWFnZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbWcnKVswXTsKLSAgY29udGV4dC5kcmF3SW1h
Z2UoZG9tSW1hZ2UsIDEwLCAxMCwgODAsIDgwKTsKLQotICB2YXIgbmV3SW1hZ2UgPSBuZXcgSW1h
Z2UoKTsKLSAgbmV3SW1hZ2Uuc3JjID0gZG9tSW1hZ2Uuc3JjOwotICBjb250ZXh0LmZpbGxTdHls
ZSA9IGNvbnRleHQuY3JlYXRlUGF0dGVybihuZXdJbWFnZSwgJ3JlcGVhdCcpOwotICBjb250ZXh0
LmZpbGxSZWN0KDEwLCAxMCwgMTgwLCA4MCk7Ci0KLSAgZG9tSW1hZ2UucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChkb21JbWFnZSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0n
cnVuVGVzdCgpJz4KKzxib2R5PgogVGVzdCBmb3IgY3JidWcuY29tLzIyNzQ4MTogVGhpcyB0ZXN0
IHBhc3NlcyBpZiB0aGVyZSBpcyBhIGdyZWVuIHJlY3RhbmdsZSB3aXRoIGEgdHdvIGJsdWUgY2ly
Y2xlcy48YnIvPgotPGNhbnZhcyB3aWR0aD0iMjAwcHgiIGhlaWdodD0iMTAwcHgiPjwvY2FudmFz
PgotPGltZyBzdHlsZT0id2lkdGg6IDUwcHg7IiBzcmM9ImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3Zn
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEwMCcgaGVpZ2h0PScx
MDAnPjxyZWN0IHdpZHRoPScxMDAnIGhlaWdodD0nMTAwJyBmaWxsPSdncmVlbicgLz48Y2lyY2xl
IGN4PSczMCcgY3k9JzMwJyByPScxNScgZmlsbD0nYmx1ZScvPjwvc3ZnPiIgPgorPGltZyBzdHls
ZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDEwMHB4OyIgc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWws
CisgICAgPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMDAn
IGhlaWdodD0nMTAwJz4KKyAgICAgICAgPHJlY3QgeD0nMTAnIHk9JzEwJyB3aWR0aD0nMTgwJyBo
ZWlnaHQ9JzgwJyBmaWxsPSdncmVlbicvPgorICAgICAgICA8cmVjdCB4PScxNScgeT0nMTUnIHdp
ZHRoPSczMCcgaGVpZ2h0PSczMCcgZmlsbD0nYmx1ZScgLz4KKyAgICAgICAgPHJlY3QgeD0nMTE1
JyB5PScxNScgd2lkdGg9JzMwJyBoZWlnaHQ9JzMwJyBmaWxsPSdibHVlJyAvPgorICAgIDwvc3Zn
PiIgPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
Ymxpbmsvc3ZnL2NhbnZhcy9jYW52YXMtZHJhdy1wYXR0ZXJuLXNpemUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL2JsaW5rL3N2Zy9jYW52YXMvY2FudmFzLWRyYXctcGF0dGVybi1zaXplLmh0
bWwKaW5kZXggMzkzNjYwNTQyMzA0NjBlY2M3NWVmMWMwZjk2ZTJlZWUyOGYwODVlZS4uZDRmMjE4
ZTlmOTk1MzNlOTFiYmU5MmNmZTE1N2Q3Zjc3YTcyYmNhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvYmxpbmsvc3ZnL2NhbnZhcy9jYW52YXMtZHJhdy1wYXR0ZXJuLXNpemUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9zdmcvY2FudmFzL2NhbnZhcy1kcmF3
LXBhdHRlcm4tc2l6ZS5odG1sCkBAIC0xLDYgKzEsMTEgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8aGVhZD4KKzxzdHlsZT4KKyAgICBjYW52YXMgeworICAgICAgICBpbWFnZS1yZW5kZXJp
bmc6IHBpeGVsYXRlZDsKKyAgICB9Cis8L3N0eWxlPgogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CiAgIHZhciBjb250ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Nh
bnZhcycpWzBdLmdldENvbnRleHQoJzJkJyk7CkBAIC0yMSw2ICsyNiwxMCBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkgewogPGJvZHkgb25sb2FkPSdydW5UZXN0KCknPgogVGVzdCBmb3IgY3JidWcuY29t
LzIyNzQ4MTogVGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIGdyZWVuIHJlY3RhbmdsZSB3
aXRoIGEgdHdvIGJsdWUgY2lyY2xlcy48YnIvPgogPGNhbnZhcyB3aWR0aD0iMjAwcHgiIGhlaWdo
dD0iMTAwcHgiPjwvY2FudmFzPgotPGltZyBzdHlsZT0id2lkdGg6IDMwcHg7IiBzcmM9ImRhdGE6
aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lk
dGg9JzEwMCcgaGVpZ2h0PScxMDAnPjxyZWN0IHdpZHRoPScxMDAnIGhlaWdodD0nMTAwJyBmaWxs
PSdncmVlbicgLz48Y2lyY2xlIGN4PSczMCcgY3k9JzMwJyByPScxNScgZmlsbD0nYmx1ZScvPjwv
c3ZnPiIgPgorPGltZyBzdHlsZT0id2lkdGg6IDMwcHg7IiBzcmM9ImRhdGE6aW1hZ2Uvc3ZnK3ht
bCwKKyAgICA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEw
MCcgaGVpZ2h0PScxMDAnPgorICAgICAgICA8cmVjdCB3aWR0aD0nMTAwJyBoZWlnaHQ9JzEwMCcg
ZmlsbD0nZ3JlZW4nIC8+CisgICAgICAgIDxyZWN0IHg9JzE1JyB5PScxNScgd2lkdGg9JzMwJyBo
ZWlnaHQ9JzMwJyBmaWxsPSdibHVlJyAvPgorICAgIDwvc3ZnPiIgPgogPC9ib2R5PgogPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420236</attachid>
            <date>2021-02-14 00:50:20 -0800</date>
            <delta_ts>2021-02-14 12:52:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219468-20210214005019.patch</filename>
            <type>text/plain</type>
            <size>43765</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM4YjAyZGY0MjEwNWQy
MThjNmNkNDFhZmViOWZkODAwODkzYjYyYS4uNmZhZDk0ZWI5NjcyMWZmMjMzMGYxNjRiNTViMmZl
ODRhMzcwMjJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAyLTEzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmRpbmcgdGhlIEdyYXBoaWNzQ29udGV4dFN0
YXRlIHRvIHRoZSBHUFVQIGlzIGEgcHJvYmxlbWF0aWMgYmVjYXVzZSBpdAorICAgICAgICBoYXMg
cG9pbnRlcnMgZm9yIHRoZSBncmFkaWVudHMgYW5kIHRoZSBwYXR0ZXJucyBhbmQgaGFzIG9iamVj
dHMgZm9yIHRoZQorICAgICAgICBjb2xvcnMuIEhvd2V2ZXIgbW9zdCBvZiB0aGUgdGltZSBpdCBp
bmNsdWRlcyBjaGFuZ2VzIGZvciBpbmxpbmUgZGF0YSBvbmx5CisgICAgICAgIHdoaWNoIGRvZXMg
bm90IG5lZWQgc3BlY2lhbCBlbmNvZGluZyBhbmQgZGVjb2RpbmcuIFNvIFNldFN0YXRlIGhhcyB0
bworICAgICAgICBoYW5kbGUgdGhlIGlubGluZSBhbmQgdGhlIG5vbi1pbmxpbmUgY2FzZXMgZWZm
aWNpZW50bHkuIFRoZSBwbGFuIGlzIHRoZQorICAgICAgICBmb2xsb3dpbmc6CisKKyAgICAgICAg
MS4gTW92ZSB0aGUgaW5saW5lIG1lbWJlcnMgb2YgR3JhcGhpY3NDb250ZXh0U3RhdGUgdG8gYSBu
ZXcgY2xhc3MgbmFtZWQKKyAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgYW5k
IG1ha2UgR3JhcGhpY3NDb250ZXh0U3RhdGUgYSBzdXBlciBjbGFzcworICAgICAgICAgICBvZiBp
dC4gTWFrZSBHcmFwaGljc0NvbnRleHRTdGF0ZSBvd25zIGFsbCB0aGUgdGhlIG5vbiBpbmxpbmUg
bWVtYmVycy4KKworICAgICAgICAyLiBBZGQgU2V0SW5saW5lU3RhdGUgaXRlbSBhbmQgbWFrZSBp
dCBpbmxpbmUgaXRlbSBzbyBpdCBpcyBhcHBlbmRlZCB0bworICAgICAgICAgICB0aGUgZGlzcGxh
eSBsaXN0IGlmIEdyYXBoaWNzQ29udGV4dFN0YXRlIGNvbnRhaW5zIG9ubHkgaW5saW5lIGNoYW5n
ZXMuCisKKyAgICAgICAgMy4gRGVsZXRlIHRoZSBpbmxpbmUgU2V0U3RhdGUgRGlzcGxheUxpc3Qg
aXRlbXMgc2luY2UgdGhleSBjYW4gYmUgYWxsCisgICAgICAgICAgIHJlcGxhY2VkIGJ5IFNldElu
bGluZVN0YXRlLgorCisgICAgICAgIDQuIE1ha2UgU2V0SW5saW5lU3RhdGUgb3duIHRoZSBtZW1i
ZXJzIHRoYXQgY2FuIGJlIGlubGluZWQgc3VjaCBhcyB0aGUKKyAgICAgICAgICAgaW5saW5lIGNv
bG9ycyBhbmQgdGhlIGdyYWRpZW50IHdob3NlIGNvbG9ycyBhcmUgYWxsIGlubGluZS4KKworICAg
ICAgICA1LiBNYWtlIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVt
IGRlY2lkZSB3aGV0aGVyIHRvIAorICAgICAgICAgICBhcHBlbmQgYSBTZXRJbmxpbmVTdGF0ZSBv
ciBTZXRTdGF0ZSBpdGVtLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dElubGluZVN0YXRl
OjpHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1BhdHRlcm4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OlBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5k
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxl
OjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVz
dHJveSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNv
cHkgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXpl
T2ZJdGVtSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5n
SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlw
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdHJva2VUaGlj
a25lc3M6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6
U2V0SW5saW5lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZVN0YXRlOjpJbmxpbmVHcmFkaWVudDo6SW5saW5lR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjpJbmxpbmVHcmFkaWVudDo6Y2FuQmVJbmxp
bmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6SW5s
aW5lR3JhZGllbnQ6OmdyYWRpZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVTdGF0ZTo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQ6OmdyYWRpZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmFwcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5s
aW5lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVG
aWxsQ29sb3I6OmFwcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3Ryb2tlVGhpY2tuZXNzOjpTZXRT
dHJva2VUaGlja25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0cm9r
ZVRoaWNrbmVzczo6dGhpY2tuZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVTdGF0ZTo6c3Ryb2tlQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjpmaWxsQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjpzaGFkb3dDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yOjpT
ZXRJbmxpbmVGaWxsQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlNldElubGluZUZpbGxDb2xvcjo6Y29sb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yOjpTZXRJbmxpbmVTdHJv
a2VDb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5s
aW5lU3Ryb2tlQ29sb3I6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFu
Z2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6d2lsbEFw
cGVuZEl0ZW1PZlR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisKIDIwMjEtMDItMTIgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBQYXR0ZXJuIGhvbGQgYSBOYXRpdmVJ
bWFnZSBpbnN0ZWFkIG9mIGFuIEltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlhODE4YzZlZTc0M2MzOTcwZmE3
MjBkNTkwZjllNWIxNGZkMmE3NjMuLmI1ZmM3YmVjZGE3ZTUwYmEwZDAzNmQyODU5ZWU3ZTJhNTZl
OGUwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTMgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBsZW1l
bnQgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpk
ZWNvZGVJdGVtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIERlbGV0ZSB0aGUgaW5saW5lIFNldFN0YXRlIERpc3Bs
YXlMaXN0IGl0ZW1zLgorCiAyMDIxLTAyLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2UgUGF0dGVybiBob2xkIGEgTmF0aXZlSW1hZ2UgaW5zdGVh
ZCBvZiBhbiBJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggN2Q4YTE2MWEyMjM5ZjUwMmU3NjBhYWI0ODQzZjA5
ZjFlY2IwZmNlZi4uOTAwZDIyODk4OTVhMGQ4MGEyZTcwZjlkZDM2ZTg4MTcxNWM2NWU0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgaWYgKG1fY2hhbmdlRmxhZ3Mu
Y29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OmZsYWcpICYmIChtX3N0YXRlLnByb3BlcnR5
ICE9IHN0YXRlLnByb3BlcnR5KSkgXAogICAgICAgICBjaGFuZ2VGbGFncy5hZGQoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OmZsYWcpOwogCi1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250
ZXh0U3RhdGUoKQorR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGU6OkdyYXBoaWNzQ29udGV4dElu
bGluZVN0YXRlKCkKICAgICA6IHNob3VsZEFudGlhbGlhcyh0cnVlKQogICAgICwgc2hvdWxkU21v
b3RoRm9udHModHJ1ZSkKICAgICAsIHNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyh0cnVlKQpA
QCAtOTEsMTEgKzkxLDEyIEBAIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRT
dGF0ZSgpCiB7CiB9CiAKLUdyYXBoaWNzQ29udGV4dFN0YXRlOjp+R3JhcGhpY3NDb250ZXh0U3Rh
dGUoKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3Rh
dGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRl
eHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUoR3JhcGhpY3NDb250ZXh0U3RhdGUmJikgPSBk
ZWZhdWx0OwotR3JhcGhpY3NDb250ZXh0U3RhdGUmIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpvcGVy
YXRvcj0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0Nv
bnRleHRTdGF0ZSYgR3JhcGhpY3NDb250ZXh0U3RhdGU6Om9wZXJhdG9yPShHcmFwaGljc0NvbnRl
eHRTdGF0ZSYmKSA9IGRlZmF1bHQ7CitHcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250
ZXh0U3RhdGUoKSA9IGRlZmF1bHQ7CisKK0dyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0Nv
bnRleHRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSYgb3RoZXIpCisgICAg
OiBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZShvdGhlcikKK3sKK30KIAogR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2U6OmNo
YW5nZXNGcm9tU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlKSBjb25zdAog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaAppbmRleCBiYjMyYmYzNTk3NDI0YjdlOWFhMGRiY2MxMDk3NGRjOTExMTBlMjc1Li5iNTMx
NmYzNzg4ZWIxZjZkZTI0MTdlOGNiMDc4ZjlkMmZhOGEzYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkRhc2hBcnJheS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2lu
Y2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJH
cmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVu
dGF0aW9uLmgiCkBAIC03OSw3ICs4MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEdyYWRpZW50
OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0SW1wbDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dFBsYXRm
b3JtUHJpdmF0ZTsKIGNsYXNzIEltYWdlQnVmZmVyOwpAQCAtMTUwLDE1ICsxNTAsOCBAQCBPcHRp
b25hbDxEb2N1bWVudE1hcmtlckxpbmVTdHlsZT4gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZAogICAgIHJldHVybiB7eyAqbW9kZSwgKnNob3VsZFVzZURhcmtB
cHBlYXJhbmNlIH19OwogfQogCi1zdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewotICAgIFdF
QkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
fkdyYXBoaWNzQ29udGV4dFN0YXRlKCk7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZShjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29u
dGV4dFN0YXRlKEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOwotCi0gICAgR3JhcGhpY3NDb250ZXh0
U3RhdGUmIG9wZXJhdG9yPShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNP
UkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlJiBvcGVyYXRvcj0oR3JhcGhpY3NDb250ZXh0
U3RhdGUmJik7CitzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgeworICAgIFdFQkNP
UkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlKCk7CiAKICAgICBlbnVtIENoYW5n
ZSA6IHVpbnQzMl90IHsKICAgICAgICAgU3Ryb2tlR3JhZGllbnRDaGFuZ2UgICAgICAgICAgICAg
ICAgICAgID0gMSA8PCAwLApAQCAtMTg3LDEyICsxODAsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUgewogICAgIH07CiAgICAgdXNpbmcgU3RhdGVDaGFuZ2VGbGFncyA9IE9wdGlvblNl
dDxDaGFuZ2U+OwogCi0gICAgUmVmUHRyPEdyYWRpZW50PiBzdHJva2VHcmFkaWVudDsKLSAgICBS
ZWZQdHI8UGF0dGVybj4gc3Ryb2tlUGF0dGVybjsKLSAgICAKLSAgICBSZWZQdHI8R3JhZGllbnQ+
IGZpbGxHcmFkaWVudDsKLSAgICBSZWZQdHI8UGF0dGVybj4gZmlsbFBhdHRlcm47Ci0KICAgICBG
bG9hdFNpemUgc2hhZG93T2Zmc2V0OwogCiAgICAgZmxvYXQgc3Ryb2tlVGhpY2tuZXNzIHsgMCB9
OwpAQCAtMjAwLDEwICsxODcsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogCiAg
ICAgVGV4dERyYXdpbmdNb2RlRmxhZ3MgdGV4dERyYXdpbmdNb2RlIHsgVGV4dERyYXdpbmdNb2Rl
OjpGaWxsIH07CiAKLSAgICBDb2xvciBzdHJva2VDb2xvciB7IENvbG9yOjpibGFjayB9OwotICAg
IENvbG9yIGZpbGxDb2xvciB7IENvbG9yOjpibGFjayB9OwotICAgIENvbG9yIHNoYWRvd0NvbG9y
OwotCiAgICAgQWZmaW5lVHJhbnNmb3JtIHN0cm9rZUdyYWRpZW50U3BhY2VUcmFuc2Zvcm07CiAg
ICAgQWZmaW5lVHJhbnNmb3JtIGZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtOwogICAgIApAQCAt
MjI4LDYgKzIxMSwyMSBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogI2VuZGlmCiB9
OwogCitzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0
SW5saW5lU3RhdGUgeworICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhpY3ND
b250ZXh0SW5saW5lU3RhdGUmKTsKKworICAgIFJlZlB0cjxHcmFkaWVudD4gc3Ryb2tlR3JhZGll
bnQ7CisgICAgUmVmUHRyPFBhdHRlcm4+IHN0cm9rZVBhdHRlcm47CisKKyAgICBSZWZQdHI8R3Jh
ZGllbnQ+IGZpbGxHcmFkaWVudDsKKyAgICBSZWZQdHI8UGF0dGVybj4gZmlsbFBhdHRlcm47CisK
KyAgICBDb2xvciBzdHJva2VDb2xvciB7IENvbG9yOjpibGFjayB9OworICAgIENvbG9yIGZpbGxD
b2xvciB7IENvbG9yOjpibGFjayB9OworICAgIENvbG9yIHNoYWRvd0NvbG9yOworfTsKKwogc3Ry
dWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZUNoYW5nZSgpID0gZGVmYXVsdDsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZShjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0
ZUNoYW5nZUZsYWdzIGZsYWdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0
dGVybi5oCmluZGV4IGI1MTBhN2RkMGNiMjc4NWE1ZWVkNzkyMGMxOTRhNzEyNzZkNGY5ZTkuLmFh
MzEzMmJhYmY3MDIzY2ZhNWYzODA4YzIzOGU5YWZkM2RmYmZiODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKQEAgLTExMCwxNiArMTEwLDE2IEBAIE9wdGlv
bmFsPFBhdHRlcm46OlBhcmFtZXRlcnM+IFBhdHRlcm46OlBhcmFtZXRlcnM6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQogICAgIGlmICghcGF0dGVyblNwYWNlVHJhbnNmb3JtKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WTsKLSAgICBk
ZWNvZGVyID4+IHJlcGVhdFk7Ci0gICAgaWYgKCFyZXBlYXRZKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCiAgICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WDsKICAgICBkZWNvZGVyID4+
IHJlcGVhdFg7CiAgICAgaWYgKCFyZXBlYXRYKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogCisgICAgT3B0aW9uYWw8Ym9vbD4gcmVwZWF0WTsKKyAgICBkZWNvZGVyID4+IHJlcGVhdFk7
CisgICAgaWYgKCFyZXBlYXRZKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAg
cmV0dXJuIHt7ICpyZXBlYXRYLCAqcmVwZWF0WSwgKnBhdHRlcm5TcGFjZVRyYW5zZm9ybSB9fTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggZTA3OWY3MzBiZTg1OWFjM2IwNWI5
NDI5YzMwZTgzNjFkMTQzYWViNC4uNmYzZWFlZWJkNTlmM2RlMDJhMzY5MmZiNzMzYTdiMzgzYzI0
ZTExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC0yMDMsMTQgKzIwMywxMCBAQCB2
b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICByZXR1cm4g
YXBwZW5kPENvbmNhdGVuYXRlQ1RNPihpdGVtLmdldDxDb25jYXRlbmF0ZUNUTT4oKSk7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1cm4gYXBwZW5kPFNldENUTT4oaXRl
bS5nZXQ8U2V0Q1RNPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGll
bnQ6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PihpdGVtLmdl
dDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KGl0
ZW0uZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29s
b3I+KGl0ZW0uZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpKTsKICAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3Ryb2tlVGhp
Y2tuZXNzPihpdGVtLmdldDxTZXRTdHJva2VUaGlja25lc3M+KCkpOworICAgIGNhc2UgSXRlbVR5
cGU6OlNldElubGluZVN0YXRlOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGluZVN0YXRl
PihpdGVtLmdldDxTZXRJbmxpbmVTdGF0ZT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Rh
dGU6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3RhdGU+KGl0ZW0uZ2V0PFNldFN0YXRlPigp
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtQnVmZmVyLmNwcAppbmRleCAzOTVmZTY3MWNjZjc0MjJhMTY1Njc2Yzc5Y2Qx
ZTA5ZWY1NTlhOTRkLi42NWVhNTdkZWQ1YzUzYTYyNTg3NDQzMDhhYzE1MDhiODZlNmIxYTY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtNzIsMjIg
KzcyLDE0IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KQogICAgICAgICBnZXQ8U2V0Q1RNPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDogewotICAg
ICAgICBnZXQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigpLmFwcGx5KGNvbnRleHQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjog
ewotICAgICAgICBnZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNv
bG9yOiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKS5hcHBseShjb250ZXh0
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VU
aGlja25lc3M6IHsKICAgICAgICAgZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKS5hcHBseShjb250
ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVTdGF0ZTogeworICAgICAgICBnZXQ8U2V0SW5saW5lU3RhdGU+KCkuYXBwbHkoY29udGV4dCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6IHsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ4Niwx
NiArNDc4LDggQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0Q1RNPjo6dmFsdWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJs
ZTxTZXRJbmxpbmVGaWxsQ29sb3I+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxHcmFk
aWVudD46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRJbmxpbmVTdHJva2VDb2xvcjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdHJva2VDb2xvcj46OnZhbHVlKTsKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogeworICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdGF0ZT46OnZhbHVlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7
CkBAIC02NjIsMTIgKzY0Niw4IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNvcHkoSXRlbUhhbmRs
ZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNjYWxlPigqdGhp
cywgaXRlbU9mZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1
cm4gY29weUludG88U2V0Q1RNPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5l
RmlsbENvbG9yPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lRmlsbEdy
YWRpZW50PigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5l
U3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVTdHJva2VDb2xv
cj4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRl
OgorICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lU3RhdGU+KCp0aGlzLCBpdGVtT2Zm
c2V0KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1cm4gY29w
eUludG88U2V0TGluZUNhcD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6
OlNldExpbmVKb2luOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCmlu
ZGV4IGMwYzczYjgzYmQ1MmVhYTA0YTk1MTc4MTgwNDQ1Mzk0N2JiYzk1ZTkuLmE1ODk0MDI3MDZh
ZGYyYmExZDJlMDdlMzRmNDZkOTBjYWExYTUxZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5jcHAKQEAgLTQ4LDE0ICs0OCwxMCBAQCBzdGF0aWMgc2l6ZV90IHNpemVP
Zkl0ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2YoQ29uY2F0
ZW5hdGVDVE0pOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0dXJuIHNp
emVvZihTZXRDVE0pOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoK
LSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVGaWxsR3JhZGllbnQpOwotICAgIGNhc2Ug
SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJ
bmxpbmVGaWxsQ29sb3IpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9y
OgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZVN0cm9rZUNvbG9yKTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIHJldHVybiBzaXplb2YoU2V0
U3Ryb2tlVGhpY2tuZXNzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKKyAg
ICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVTdGF0ZSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3RhdGU6CiAgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3RhdGUpOwogICAgIGNhc2UgSXRl
bVR5cGU6OlNldExpbmVDYXA6CkBAIC0xODksOSArMTg1LDcgQEAgYm9vbCBpc0RyYXdpbmdJdGVt
KEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1U
eXBlOjpTY2FsZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxH
cmFkaWVudDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5l
Q2FwOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgogICAgIGNhc2UgSXRlbVR5cGU6
OlNldExpbmVKb2luOgpAQCAtMzAyLDkgKzI5Niw3IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1U
eXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpT
Y2FsZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lRmlsbENvbG9yOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVu
dDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgog
ICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVKb2luOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldE1p
dGVyTGltaXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCAwZTk0
N2EwNmRhYjVhMmRmYjQ3NjkwODJmOGNhYzU0OGFmODkzNDNiLi41MDNlZTUwMGY5N2RkN2MwZDhi
YTEyMmNmMzY1MWIxYTVhNzhjNjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmgKQEAgLTM2LDkgKzM2LDcgQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3Qgewog
ICAgIFNjYWxlLAogICAgIENvbmNhdGVuYXRlQ1RNLAogICAgIFNldENUTSwKLSAgICBTZXRJbmxp
bmVGaWxsR3JhZGllbnQsCi0gICAgU2V0SW5saW5lRmlsbENvbG9yLAotICAgIFNldElubGluZVN0
cm9rZUNvbG9yLAorICAgIFNldElubGluZVN0YXRlLAogICAgIFNldFN0cm9rZVRoaWNrbmVzcywK
ICAgICBTZXRTdGF0ZSwKICAgICBTZXRMaW5lQ2FwLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuY3BwCmluZGV4IGU1MWFjMTM5ZDJhZjQwMTQ5NmNlZDIwOTUzZmVmYmUzNThlZTU3NGEu
LmFlMTY4NzliNzI1OTUyODM0YmIwZTE1NjM3ZWEzYmFkMjcwMDE3MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTExNSw1MCArMTE1LDQzIEBAIHN0YXRpYyBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25jYXRlbmF0ZUNUTSYg
aXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5s
aW5lRmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgIDogbV9kYXRhKGdyYWRpZW50LmRh
dGEoKSkKLSAgICAsIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNm
b3JtKQotICAgICwgbV9zcHJlYWRNZXRob2QoZ3JhZGllbnQuc3ByZWFkTWV0aG9kKCkpCi0gICAg
LCBtX2NvbG9yU3RvcENvdW50KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGdyYWRpZW50LnN0b3BzKCku
c2l6ZSgpKSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENv
bG9yU3RvcENvdW50KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENv
dW50OyArK2kpIHsKLSAgICAgICAgbV9vZmZzZXRzW2ldID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5v
ZmZzZXQ7Ci0gICAgICAgIG1fY29sb3JzW2ldID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5jb2xvci5h
c0lubGluZSgpOwotICAgIH0KK3ZvaWQgU2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit7CisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25l
c3MobV90aGlja25lc3MpOwogfQogCi1TZXRJbmxpbmVGaWxsR3JhZGllbnQ6OlNldElubGluZUZp
bGxHcmFkaWVudChmbG9hdCBvZmZzZXRzW21heENvbG9yU3RvcENvdW50XSwgU1JHQkE8dWludDhf
dD4gY29sb3JzW21heENvbG9yU3RvcENvdW50XSwgY29uc3QgR3JhZGllbnQ6OkRhdGEmIGRhdGEs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGllbnRT
cHJlYWRNZXRob2Qgc3ByZWFkTWV0aG9kLCB1aW50OF90IGNvbG9yU3RvcENvdW50KQotICAgIDog
bV9kYXRhKGRhdGEpCi0gICAgLCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm0oZ3JhZGllbnRTcGFj
ZVRyYW5zZm9ybSkKLSAgICAsIG1fc3ByZWFkTWV0aG9kKHNwcmVhZE1ldGhvZCkKLSAgICAsIG1f
Y29sb3JTdG9wQ291bnQoY29sb3JTdG9wQ291bnQpCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3Ryb2tlVGhpY2tuZXNzJiBzdGF0ZSkKIHsK
LSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50
KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsK
LSAgICAgICAgbV9vZmZzZXRzW2ldID0gb2Zmc2V0c1tpXTsKLSAgICAgICAgbV9jb2xvcnNbaV0g
PSBjb2xvcnNbaV07Ci0gICAgfQorICAgIHRzLmR1bXBQcm9wZXJ0eSgidGhpY2tuZXNzIiwgc3Rh
dGUudGhpY2tuZXNzKCkpOworICAgIHJldHVybiB0czsKIH0KIAotUmVmPEdyYWRpZW50PiBTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ6OmdyYWRpZW50KCkgY29uc3QKK1NldElubGluZVN0YXRlOjpTZXRJ
bmxpbmVTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQorICAgIDogbV9pbmxpbmVT
dGF0ZShzdGF0ZSkKKyAgICAsIG1fY2hhbmdlRmxhZ3MoY2hhbmdlRmxhZ3MpCisgICAgLCBtX3N0
cm9rZUdyYWRpZW50KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dHJva2VHcmFkaWVudENoYW5nZSkgJiYgc3RhdGUuc3Ryb2tlR3JhZGllbnQgPyBJbmxpbmVHcmFk
aWVudCgqc3RhdGUuc3Ryb2tlR3JhZGllbnQpIDogSW5saW5lR3JhZGllbnQoKSkKKyAgICAsIG1f
ZmlsbEdyYWRpZW50KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpG
aWxsR3JhZGllbnRDaGFuZ2UpICYmIHN0YXRlLmZpbGxHcmFkaWVudCA/IElubGluZUdyYWRpZW50
KCpzdGF0ZS5maWxsR3JhZGllbnQpIDogSW5saW5lR3JhZGllbnQoKSkKKyAgICAsIG1fc3Ryb2tl
Q29sb3IoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNv
bG9yQ2hhbmdlKSA/IHN0YXRlLnN0cm9rZUNvbG9yLmFzSW5saW5lKCkgOiBTUkdCQTx1aW50OF90
PigpKQorICAgICwgbV9maWxsQ29sb3IoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSkgPyBzdGF0ZS5maWxsQ29sb3IuYXNJbmxpbmUoKSA6
IFNSR0JBPHVpbnQ4X3Q+KCkpCisgICAgLCBtX3NoYWRvd0NvbG9yKGNoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpID8gc3RhdGUuc2hhZG93Q29s
b3IuYXNJbmxpbmUoKSA6IFNSR0JBPHVpbnQ4X3Q+KCkpCiB7Ci0gICAgYXV0byBncmFkaWVudCA9
IEdyYWRpZW50OjpjcmVhdGUoR3JhZGllbnQ6OkRhdGEobV9kYXRhKSk7Ci0gICAgZm9yICh1aW50
OF90IGkgPSAwOyBpIDwgbV9jb2xvclN0b3BDb3VudDsgKytpKQotICAgICAgICBncmFkaWVudC0+
YWRkQ29sb3JTdG9wKHsgbV9vZmZzZXRzW2ldLCBDb2xvcihtX2NvbG9yc1tpXSkgfSk7Ci0gICAg
Z3JhZGllbnQtPnNldFNwcmVhZE1ldGhvZChtX3NwcmVhZE1ldGhvZCk7Ci0gICAgcmV0dXJuIGdy
YWRpZW50OwogfQogCi12b2lkIFNldElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0KSBjb25zdAorU2V0SW5saW5lU3RhdGU6OklubGluZUdyYWRpZW50OjpJ
bmxpbmVHcmFkaWVudChjb25zdCBHcmFkaWVudCYgZ3JhZGllbnQpCisgICAgOiBkYXRhKGdyYWRp
ZW50LmRhdGEoKSkKKyAgICAsIHNwcmVhZE1ldGhvZChncmFkaWVudC5zcHJlYWRNZXRob2QoKSkK
KyAgICAsIHN0b3BzQ291bnQoZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkpCiB7Ci0gICAgaWYgKG1f
Y29sb3JTdG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpCi0gICAgICAgIGNvbnRleHQuc2V0
RmlsbEdyYWRpZW50KGdyYWRpZW50KCksIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSk7CisgICAg
UkVMRUFTRV9BU1NFUlQoc3RvcHNDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCk7CisgICAgZm9y
ICh1aW50OF90IGkgPSAwOyBpIDwgc3RvcHNDb3VudDsgKytpKSB7CisgICAgICAgIHN0b3BzW2ld
Lm9mZnNldCA9IGdyYWRpZW50LnN0b3BzKClbaV0ub2Zmc2V0OworICAgICAgICBzdG9wc1tpXS5j
b2xvciA9IGdyYWRpZW50LnN0b3BzKClbaV0uY29sb3IuYXNJbmxpbmUoKTsKKyAgICB9CiB9CiAK
LWJvb2wgU2V0SW5saW5lRmlsbEdyYWRpZW50Ojppc0lubGluZShjb25zdCBHcmFkaWVudCYgZ3Jh
ZGllbnQpCitib29sIFNldElubGluZVN0YXRlOjpJbmxpbmVHcmFkaWVudDo6Y2FuQmVJbmxpbmVk
KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKIHsKLSAgICBpZiAoZ3JhZGllbnQuc3RvcHMoKS5z
aXplKCkgPiBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Om1heENvbG9yU3RvcENvdW50KQorICAgIGlm
IChncmFkaWVudC5zdG9wcygpLnNpemUoKSA+IG1heENvbG9yU3RvcENvdW50KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGNvbG9yU3RvcCA6IGdyYWRpZW50LnN0b3Bz
KCkpIHsKQEAgLTE2OSw0MiArMTYyLDM5IEBAIGJvb2wgU2V0SW5saW5lRmlsbEdyYWRpZW50Ojpp
c0lubGluZShjb25zdCBHcmFkaWVudCYgZ3JhZGllbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJ
bmxpbmVGaWxsR3JhZGllbnQmKQorUmVmUHRyPEdyYWRpZW50PiBTZXRJbmxpbmVTdGF0ZTo6SW5s
aW5lR3JhZGllbnQ6OmdyYWRpZW50KCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogRHVtcCBncmFk
aWVudCBkYXRhLgotICAgIHJldHVybiB0czsKKyAgICBhdXRvIGdyYWRpZW50ID0gR3JhZGllbnQ6
OmNyZWF0ZShHcmFkaWVudDo6RGF0YShkYXRhKSk7CisgICAgZm9yICh1aW50OF90IGkgPSAwOyBp
IDwgc3RvcHNDb3VudDsgKytpKQorICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKHsgc3Rv
cHNbaV0ub2Zmc2V0LCB7IHN0b3BzW2ldLmNvbG9yIH0gfSk7CisgICAgZ3JhZGllbnQtPnNldFNw
cmVhZE1ldGhvZChzcHJlYWRNZXRob2QpOworICAgIHJldHVybiBncmFkaWVudDsKIH0KIAotdm9p
ZCBTZXRJbmxpbmVGaWxsQ29sb3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29u
c3QKK3ZvaWQgU2V0SW5saW5lU3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkg
Y29uc3QKIHsKLSAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvcigpKTsKLX0KKyAgICBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0ZUNoYW5nZSA9IHsgbV9pbmxpbmVTdGF0ZSwgbV9j
aGFuZ2VGbGFncyB9OwogCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgY29uc3QgU2V0SW5saW5lRmlsbENvbG9yJiBzdGF0ZSkKLXsKLSAgICB0cy5kdW1wUHJv
cGVydHkoImNvbG9yIiwgc3RhdGUuY29sb3IoKSk7Ci0gICAgcmV0dXJuIHRzOwotfQorICAgIGlm
IChtX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFk
aWVudENoYW5nZSkpCisgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlR3JhZGllbnQg
PSBtX3N0cm9rZUdyYWRpZW50LmdyYWRpZW50KCk7CiAKLXZvaWQgU2V0SW5saW5lU3Ryb2tlQ29s
b3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0
LnNldFN0cm9rZUNvbG9yKGNvbG9yKCkpOwotfQorICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKQorICAgICAgICBz
dGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxHcmFkaWVudCA9IG1fZmlsbEdyYWRpZW50LmdyYWRpZW50
KCk7CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBTZXRJbmxpbmVTdHJva2VDb2xvciYgc3RhdGUpCi17Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJj
b2xvciIsIHN0YXRlLmNvbG9yKCkpOwotICAgIHJldHVybiB0czsKLX0KKyAgICBpZiAobV9jaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2Up
KQorICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0cm9rZUNvbG9yID0gbV9zdHJva2VDb2xv
cjsKIAotdm9pZCBTZXRTdHJva2VUaGlja25lc3M6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcyhtX3RoaWNrbmVz
cyk7CisgICAgaWYgKG1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OkZpbGxDb2xvckNoYW5nZSkpCisgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbENvbG9y
ID0gbV9maWxsQ29sb3I7CisKKyAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSkKKyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0
ZS5zaGFkb3dDb2xvciA9IG1fc2hhZG93Q29sb3I7CisKKyAgICBzdGF0ZUNoYW5nZS5hcHBseShj
b250ZXh0KTsKIH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IFNldFN0cm9rZVRoaWNrbmVzcyYgc3RhdGUpCitzdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lU3RhdGUmKQogewotICAg
IHRzLmR1bXBQcm9wZXJ0eSgidGhpY2tuZXNzIiwgc3RhdGUudGhpY2tuZXNzKCkpOwogICAgIHJl
dHVybiB0czsKIH0KIApAQCAtMTAyMSw5ICsxMDExLDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlw
ZTo6U2NhbGU6IHRzIDw8ICJzY2FsZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENU
TTogdHMgPDwgInNldC1jdG0iOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0
ZUNUTTogdHMgPDwgImNvbmNhdGVudGF0ZS1jdG0iOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6IHRzIDw8ICJzZXQtaW5saW5lLWZpbGwtZ3JhZGllbnQi
OyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6IHRzIDw8ICJz
ZXQtaW5saW5lLWZpbGwtY29sb3IiOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVTdHJva2VDb2xvcjogdHMgPDwgInNldC1pbmxpbmUtc3Ryb2tlLWNvbG9yIjsgYnJlYWs7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6IHRzIDw8ICJzZXQtaW5saW5lLXN0YXRl
IjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOiB0cyA8PCAi
c2V0LXN0cm9rZS10aGlja25lc3MiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0
ZTogdHMgPDwgInNldC1zdGF0ZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVD
YXA6IHRzIDw8ICJzZXQtbGluZS1jYXAiOyBicmVhazsKQEAgLTExMDQsMTQgKzEwOTIsOCBAQCBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAg
ICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0
PENvbmNhdGVuYXRlQ1RNPigpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZUZp
bGxHcmFkaWVudD4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbENvbG9yOgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsQ29sb3I+
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNv
bG9yOgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKTsKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8
U2V0SW5saW5lU3RhdGU+KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNl
dFN0cm9rZVRoaWNrbmVzczoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0U3Ryb2tlVGhpY2tu
ZXNzPigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggNDYyODY1NDJhMzlk
OThiZWFhMDdhODIwZjE2MDc0NzQ3ZDAwYzYzYS4uMDMyOWM5MjQ4MzQzYjRjYTlhMzE4N2IzNDM1
YjExZmY0ZDUwOTFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0xNjcs
ODQgKzE2Nyw2NyBAQCBwcml2YXRlOgogICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsK
IH07CiAKLWNsYXNzIFNldElubGluZUZpbGxHcmFkaWVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQ7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLSAgICBzdGF0
aWMgY29uc3RleHByIHVpbnQ4X3QgbWF4Q29sb3JTdG9wQ291bnQgPSA0OwotCi0gICAgU2V0SW5s
aW5lRmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBn
cmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXRJbmxpbmVGaWxs
R3JhZGllbnQoZmxvYXQgb2Zmc2V0c1ttYXhDb2xvclN0b3BDb3VudF0sIFNSR0JBPHVpbnQ4X3Q+
IGNvbG9yc1ttYXhDb2xvclN0b3BDb3VudF0sIGNvbnN0IEdyYWRpZW50OjpEYXRhJiwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtLCBHcmFkaWVudFNwcmVhZE1l
dGhvZCwgdWludDhfdCBjb2xvclN0b3BDb3VudCk7Ci0KLSAgICBzdGF0aWMgYm9vbCBpc0lubGlu
ZShjb25zdCBHcmFkaWVudCYpOwotICAgIFJlZjxHcmFkaWVudD4gZ3JhZGllbnQoKSBjb25zdDsK
LQotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0g
ICAgZmxvYXQgbV9vZmZzZXRzW21heENvbG9yU3RvcENvdW50XTsKLSAgICBTUkdCQTx1aW50OF90
PiBtX2NvbG9yc1ttYXhDb2xvclN0b3BDb3VudF07Ci0gICAgR3JhZGllbnQ6OkRhdGEgbV9kYXRh
OwotICAgIEFmZmluZVRyYW5zZm9ybSBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm07Ci0gICAgR3Jh
ZGllbnRTcHJlYWRNZXRob2QgbV9zcHJlYWRNZXRob2QgeyBHcmFkaWVudFNwcmVhZE1ldGhvZDo6
UGFkIH07Ci0gICAgdWludDhfdCBtX2NvbG9yU3RvcENvdW50IHsgMCB9OwotfTsKLQotY2xhc3Mg
U2V0SW5saW5lRmlsbENvbG9yIHsKK2NsYXNzIFNldFN0cm9rZVRoaWNrbmVzcyB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJ
bmxpbmVGaWxsQ29sb3I7CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9
IEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGlzSW5saW5lSXRlbSA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2lu
Z0l0ZW0gPSBmYWxzZTsKIAotICAgIFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90PiBj
b2xvckRhdGEpCi0gICAgICAgIDogbV9jb2xvckRhdGEoY29sb3JEYXRhKQorICAgIFNldFN0cm9r
ZVRoaWNrbmVzcyhmbG9hdCB0aGlja25lc3MpCisgICAgICAgIDogbV90aGlja25lc3ModGhpY2tu
ZXNzKQogICAgIHsKICAgICB9CiAKLSAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsg
bV9jb2xvckRhdGEgfTsgfQorICAgIGZsb2F0IHRoaWNrbmVzcygpIGNvbnN0IHsgcmV0dXJuIG1f
dGhpY2tuZXNzOyB9CisKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Owog
CiBwcml2YXRlOgotICAgIFNSR0JBPHVpbnQ4X3Q+IG1fY29sb3JEYXRhOworICAgIGZsb2F0IG1f
dGhpY2tuZXNzIHsgMCB9OwogfTsKIAotY2xhc3MgU2V0SW5saW5lU3Ryb2tlQ29sb3IgeworY2xh
c3MgU2V0SW5saW5lU3RhdGUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5
cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTsK
ICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKICAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOwogCi0gICAgU2V0SW5saW5l
U3Ryb2tlQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JEYXRhKQotICAgICAgICA6IG1fY29sb3JE
YXRhKGNvbG9yRGF0YSkKLSAgICB7Ci0gICAgfQorICAgIHN0cnVjdCBJbmxpbmVHcmFkaWVudCB7
CisgICAgICAgIElubGluZUdyYWRpZW50KCkgPSBkZWZhdWx0OworICAgICAgICBJbmxpbmVHcmFk
aWVudChjb25zdCBHcmFkaWVudCYpOwogCi0gICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVy
biB7IG1fY29sb3JEYXRhIH07IH0KKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IG1h
eENvbG9yU3RvcENvdW50ID0gNDsKKyAgICAgICAgc3RhdGljIGJvb2wgY2FuQmVJbmxpbmVkKGNv
bnN0IEdyYWRpZW50Jik7CiAKLSAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0
OworICAgICAgICBSZWZQdHI8R3JhZGllbnQ+IGdyYWRpZW50KCkgY29uc3Q7CiAKLXByaXZhdGU6
Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvckRhdGE7Ci19OworICAgICAgICBHcmFkaWVudDo6
RGF0YSBkYXRhOworICAgICAgICBHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QgeyBH
cmFkaWVudFNwcmVhZE1ldGhvZDo6UGFkIH07CisgICAgICAgIHVpbnQ4X3Qgc3RvcHNDb3VudCB7
IDAgfTsKIAotY2xhc3MgU2V0U3Ryb2tlVGhpY2tuZXNzIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVz
czsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKLSAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOworICAgICAgICBzdHJ1
Y3QgeworICAgICAgICAgICAgZmxvYXQgb2Zmc2V0OworICAgICAgICAgICAgU1JHQkE8dWludDhf
dD4gY29sb3I7CisgICAgICAgIH0gc3RvcHNbbWF4Q29sb3JTdG9wQ291bnRdOworICAgIH07CiAK
LSAgICBTZXRTdHJva2VUaGlja25lc3MoZmxvYXQgdGhpY2tuZXNzKQotICAgICAgICA6IG1fdGhp
Y2tuZXNzKHRoaWNrbmVzcykKLSAgICB7Ci0gICAgfQorICAgIFdFQkNPUkVfRVhQT1JUIFNldElu
bGluZVN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0YXRlQ2hhbmdlRmxhZ3MpOwogCi0gICAgZmxvYXQgdGhpY2tuZXNzKCkgY29uc3QgeyBy
ZXR1cm4gbV90aGlja25lc3M7IH0KKyAgICBDb2xvciBzdHJva2VDb2xvcigpIGNvbnN0IHsgcmV0
dXJuIHsgbV9zdHJva2VDb2xvciB9OyB9CisgICAgQ29sb3IgZmlsbENvbG9yKCkgY29uc3QgeyBy
ZXR1cm4geyBtX2ZpbGxDb2xvciB9OyB9CisgICAgQ29sb3Igc2hhZG93Q29sb3IoKSBjb25zdCB7
IHJldHVybiB7IG1fc2hhZG93Q29sb3IgfTsgfQogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0Nv
bnRleHQmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBmbG9hdCBtX3RoaWNrbmVzcyB7IDAgfTsK
KyAgICBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSBtX2lubGluZVN0YXRlOworICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIG1fY2hhbmdlRmxhZ3M7CisKKyAgICBJ
bmxpbmVHcmFkaWVudCBtX3N0cm9rZUdyYWRpZW50OworICAgIElubGluZUdyYWRpZW50IG1fZmls
bEdyYWRpZW50OworICAgIFNSR0JBPHVpbnQ4X3Q+IG1fc3Ryb2tlQ29sb3I7CisgICAgU1JHQkE8
dWludDhfdD4gbV9maWxsQ29sb3I7CisgICAgU1JHQkE8dWludDhfdD4gbV9zaGFkb3dDb2xvcjsK
IH07CiAKIGNsYXNzIFNldFN0YXRlIHsKQEAgLTIzMzAsOSArMjMxMyw3IEBAIHRlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZSwKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkNvbmNhdGVuYXRlQ1RNLAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50LAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0SW5saW5lRmlsbENvbG9yLAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldFN0cm9rZVRoaWNrbmVzcywKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldFN0YXRlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGlu
ZUNhcCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBlN2Y5
ZTI4YzM1MDIxOWU4MTNkODgzNDBmZjRmNTRkZTIyZmMxMGMzLi44YjU1ODI1YTgzY2MyYjFmZmQ1
ODBmYTJlMzRhODZmZDg5Y2E5OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCkBAIC02MCwyNiArNjAsMjcgQEAgdm9pZCBSZWNvcmRlcjo6cHV0SW1hZ2VEYXRh
KFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IFcKICAg
ICBhcHBlbmQ8UHV0SW1hZ2VEYXRhPihpbnB1dEZvcm1hdCwgaW1hZ2VEYXRhLCBzcmNSZWN0LCBk
ZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogfQogCi1zdGF0aWMgYm9vbCBjb250YWluc09ubHlJbmxp
bmVTdGF0ZUNoYW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNoYW5nZXMs
IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQorc3Rh
dGljIGJvb2wgY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3Mg
Y2hhbmdlRmxhZ3MpCiB7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U3RhdGVDaGFuZ2VGbGFncyBpbmxpbmVTdGF0ZUNoYW5nZUZsYWdzIHsKLSAgICAgICAgR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSwKLSAgICAgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlLAotICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlLAotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
RmlsbEdyYWRpZW50Q2hhbmdlLAotICAgIH07CisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VQYXR0ZXJuQ2hhbmdlKSAmJiBzdGF0ZS5zdHJv
a2VQYXR0ZXJuKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoY2hhbmdlRmxhZ3Mu
Y29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxQYXR0ZXJuQ2hhbmdlKSAmJiBzdGF0
ZS5maWxsUGF0dGVybikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGNoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkg
JiYgc3RhdGUuc3Ryb2tlR3JhZGllbnQgJiYgIVNldElubGluZVN0YXRlOjpJbmxpbmVHcmFkaWVu
dDo6Y2FuQmVJbmxpbmVkKCpzdGF0ZS5zdHJva2VHcmFkaWVudCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmIChjaGFuZ2VGbGFncyAhPSAoY2hhbmdlRmxhZ3MgJiBpbmxpbmVTdGF0
ZUNoYW5nZUZsYWdzKSkKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkgJiYgc3RhdGUuZmlsbEdyYWRpZW50ICYmICFT
ZXRJbmxpbmVTdGF0ZTo6SW5saW5lR3JhZGllbnQ6OmNhbkJlSW5saW5lZCgqc3RhdGUuZmlsbEdy
YWRpZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSkgJiYgIWNoYW5n
ZXMubV9zdGF0ZS5zdHJva2VDb2xvci5pc0lubGluZSgpKQorICAgIGlmIChjaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpICYmICFzdGF0
ZS5zdHJva2VDb2xvci5pc0lubGluZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNo
YW5nZSkgJiYgIWNoYW5nZXMubV9zdGF0ZS5maWxsQ29sb3IuaXNJbmxpbmUoKSkKKyAgICBpZiAo
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5n
ZSkgJiYgIXN0YXRlLmZpbGxDb2xvci5pc0lubGluZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZp
bGxHcmFkaWVudENoYW5nZSkKLSAgICAgICAgJiYgKCFjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRp
ZW50IHx8ICFTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKCpjaGFuZ2VzLm1fc3RhdGUu
ZmlsbEdyYWRpZW50KSkpCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpICYmICFzdGF0ZS5zaGFkb3dDb2xvci5pc0lubGluZSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTkyLDI4ICs5
MywyMCBAQCB2b2lkIFJlY29yZGVyOjpjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiBpbWFn
ZSkKICAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlTmF0aXZlSW1hZ2UoaW1hZ2UpOwogfQogCi12b2lk
IFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdz
IGNoYW5nZUZsYWdzKQordm9pZCBSZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVtKGNvbnN0
IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRl
Q2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCiB7Ci0gICAgaWYgKCFjb250YWluc09ubHlJbmxpbmVT
dGF0ZUNoYW5nZXMoY2hhbmdlcywgY2hhbmdlRmxhZ3MpKSB7Ci0gICAgICAgIGlmIChhdXRvIHBh
dHRlcm4gPSBjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlUGF0dGVybikKLSAgICAgICAgICAgIGNhY2hl
TmF0aXZlSW1hZ2UocGF0dGVybi0+dGlsZUltYWdlKCkpOwotICAgICAgICBpZiAoYXV0byBwYXR0
ZXJuID0gY2hhbmdlcy5tX3N0YXRlLmZpbGxQYXR0ZXJuKQotICAgICAgICAgICAgY2FjaGVOYXRp
dmVJbWFnZShwYXR0ZXJuLT50aWxlSW1hZ2UoKSk7Ci0gICAgICAgIGFwcGVuZDxTZXRTdGF0ZT4o
Y2hhbmdlcy5tX3N0YXRlLCBjaGFuZ2VGbGFncyk7CisgICAgaWYgKGNvbnRhaW5zT25seUlubGlu
ZVN0YXRlQ2hhbmdlcyhzdGF0ZSwgY2hhbmdlRmxhZ3MpKSB7CisgICAgICAgIGFwcGVuZDxTZXRJ
bmxpbmVTdGF0ZT4oc3RhdGUsIGNoYW5nZUZsYWdzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICAKKyAgICBpZiAoYXV0byBwYXR0ZXJuID0gc3RhdGUuc3Ryb2tlUGF0dGVybikKKyAgICAg
ICAgY2FjaGVOYXRpdmVJbWFnZShwYXR0ZXJuLT50aWxlSW1hZ2UoKSk7CiAKLSAgICBpZiAoY2hh
bmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdl
KSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihjaGFuZ2VzLm1fc3RhdGUu
c3Ryb2tlQ29sb3IuYXNJbmxpbmUoKSk7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMo
R3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSkpCi0gICAgICAgIGFw
cGVuZDxTZXRTdHJva2VUaGlja25lc3M+KGNoYW5nZXMubV9zdGF0ZS5zdHJva2VUaGlja25lc3Mp
OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpG
aWxsQ29sb3JDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihjaGFu
Z2VzLm1fc3RhdGUuZmlsbENvbG9yLmFzSW5saW5lKCkpOworICAgIGlmIChhdXRvIHBhdHRlcm4g
PSBzdGF0ZS5maWxsUGF0dGVybikKKyAgICAgICAgY2FjaGVOYXRpdmVJbWFnZShwYXR0ZXJuLT50
aWxlSW1hZ2UoKSk7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRJbmxpbmVG
aWxsR3JhZGllbnQ+KCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50LCBjaGFuZ2VzLm1fc3Rh
dGUuZmlsbEdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pOworICAgIGFwcGVuZDxTZXRTdGF0ZT4oc3Rh
dGUsIGNoYW5nZUZsYWdzKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW1PZlR5
cGUoSXRlbVR5cGUgdHlwZSkKQEAgLTEzMCw3ICsxMjMsNyBAQCB2b2lkIFJlY29yZGVyOjp3aWxs
QXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBlKQogICAgICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSA9IHN0YXRlQ2hhbmdl
cy5jaGFuZ2VzRnJvbVN0YXRlKGN1cnJlbnRTdGF0ZSgpLmxhc3REcmF3aW5nU3RhdGUpOwogICAg
ICAgICBpZiAoY2hhbmdlc0Zyb21MYXN0U3RhdGUpIHsKICAgICAgICAgICAgIExPR19XSVRIX1NU
UkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAicHJlLWRyYXdpbmcsIHNhdmluZyBzdGF0ZSAi
IDw8IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKHN0YXRlQ2hhbmdlcy5tX3N0YXRlLCBjaGFu
Z2VzRnJvbUxhc3RTdGF0ZSkpOwotICAgICAgICAgICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKHN0
YXRlQ2hhbmdlcywgY2hhbmdlc0Zyb21MYXN0U3RhdGUpOworICAgICAgICAgICAgYXBwZW5kU3Rh
dGVDaGFuZ2VJdGVtKHN0YXRlQ2hhbmdlcy5tX3N0YXRlLCBjaGFuZ2VzRnJvbUxhc3RTdGF0ZSk7
CiAgICAgICAgICAgICBzdGF0ZUNoYW5nZXMubV9jaGFuZ2VGbGFncyA9IHsgfTsKICAgICAgICAg
ICAgIGN1cnJlbnRTdGF0ZSgpLmxhc3REcmF3aW5nU3RhdGUgPSBzdGF0ZUNoYW5nZXMubV9zdGF0
ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXgg
OWZlNDcwM2I5ZTFjMjRmYTQ3ODc5NzgzNTE1OWJlNDExMTBlOGFkNy4uNDA2NmM2NjYwOGRjZTNm
MmRkYjJiMWVjZjczMDhlYjM3NGE5M2Y2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oCkBAIC0xNzMsNyArMTczLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY2FjaGVO
YXRpdmVJbWFnZShOYXRpdmVJbWFnZSYpOwogCi0gICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0
ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmLCBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CisgICAgdm9pZCBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29u
c3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFu
Z2VGbGFncyk7CiAKICAgICBGbG9hdFJlY3QgZXh0ZW50RnJvbUxvY2FsQm91bmRzKGNvbnN0IEZs
b2F0UmVjdCYpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDZlZmZl
ZjBjYjczOTY1OGVlN2RkZThiZmY0ZGIyNTUyMTAyMjViYWYuLjY0M2QwZGFkOTE0Zjc0YWFkNjdi
MGI1YjI2NzZlODljMWZkODA1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTQ2MSw5
ICs0NjEsNyBAQCBPcHRpb25hbDxEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZT4gV0FSTl9VTlVTRURf
UkVUVVJOIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlYwogICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTYXZlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZToK
ICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgRGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgY2FzZSBEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldElubGluZVN0YXRlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRMaW5lQ2FwOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lSm9p
bjoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TWl0ZXJMaW1pdDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMGNhMmJiMjAzZTRjNzQyN2I1NDRlNmUzYTc0M2Q2
YzE4MDUzOTJiMC4uYjk2OTkyYWRjMzMyNDIwYTAzZmQ4ODg2OWUzYWQ4NmYyMzM4ZDRmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTM0Niw5ICszNDYsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTYXZlOgogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2NhbGU6CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0g
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
R3JhZGllbnQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
ZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldElubGluZVN0YXRlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6U2V0TWl0ZXJMaW1pdDoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5NGM0NjQzN2M5OTM3OTNkNGQ2YTBjOGI2ODI4
ZDM0M2VhMTk1ZWU1Li42MmIyZjEzMTRhNzhjZDlmNjYzZDAwYzgwYTlmMzJjZmIwZmZjN2Y0IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjEtMDItMTMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbXBsZW1lbnQgU2V0U3RhdGUgRGlzcGxheUxpc3Qg
aXRlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICBSZXBsYWNlIHRoZSBpbmxpbmUgU2V0U3RhdGUgRGlzcGxheUxpc3Qg
aXRlbXMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAKKyAgICAgICAgU2V0U3RhdGUgaXRlbS4KKwog
MjAyMS0wMi0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIE1ha2UgV2ViS2l0TGVnYWN5LkNyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vz
cyBzdG9wIHRpbWluZyBvdXQgb24gRVdTIGJvdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAppbmRleCBlODcxN2M3OTE0
MGJkZWE0YjVmNTM1NWYwMTY5MDg5ZTYwMDg2NzMzLi43YzgxMmJlZjE1MGFhYzk1YWU5MGMwYWRm
ZDA5Zjc4ZDZmNmY1ODdmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBAIC02NSwxMSArNjUsMTQgQEAgVEVTVChE
aXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKICAgICBhdXRvIGdyYWRpZW50ID0gY3JlYXRl
R3JhZGllbnQoKTsKICAgICBhdXRvIHBhdGggPSBjcmVhdGVDb21wbGV4UGF0aCgpOwogCisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGUgc3RhdGU7CisgICAgc3RhdGUuZmlsbENvbG9yID0gQ29sb3I6
OnJlZDsKKwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTA7ICsraSkgewogICAgICAgICBsaXN0
LmFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KDEuNSk7CiAgICAgICAgIGxpc3QuYXBwZW5kPEZp
bGxQYXRoPihwYXRoKTsKICAgICAgICAgbGlzdC5hcHBlbmQ8RmlsbFJlY3RXaXRoR3JhZGllbnQ+
KEZsb2F0UmVjdCB7IDEuLCAxLiwgMTAuLCAxMC4gfSwgZ3JhZGllbnQpOwotICAgICAgICBsaXN0
LmFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KENvbG9yOjpyZWQpOworICAgICAgICBsaXN0LmFw
cGVuZDxTZXRJbmxpbmVTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29s
b3JDaGFuZ2UpOwogI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQogICAgICAgICBsaXN0LmFw
cGVuZDxTdHJva2VJbmxpbmVQYXRoPihJbmxpbmVQYXRoRGF0YSB7IExpbmVEYXRhIHt7IDAuLCAw
LiB9LCB7IDEwLiwgMTUuIH19fSk7CiAjZW5kaWYKQEAgLTEwMiwxMSArMTA1LDExIEBAIFRFU1Qo
RGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAgICAgICAgICAgICBFWFBFQ1RfRVEoJml0
ZW0uZ3JhZGllbnQoKSwgZ3JhZGllbnQucHRyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KLSAgICAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7CisgICAg
ICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOiB7CiAgICAgICAgICAgICBFWFBFQ1Rf
RkFMU0UoaGFuZGxlLT5pc0RyYXdpbmdJdGVtKCkpOwotICAgICAgICAgICAgRVhQRUNUX1RSVUUo
aGFuZGxlLT5pczxTZXRJbmxpbmVGaWxsQ29sb3I+KCkpOwotICAgICAgICAgICAgYXV0byYgaXRl
bSA9IGhhbmRsZS0+Z2V0PFNldElubGluZUZpbGxDb2xvcj4oKTsKLSAgICAgICAgICAgIEVYUEVD
VF9FUShpdGVtLmNvbG9yKCksIENvbG9yOjpyZWQpOworICAgICAgICAgICAgRVhQRUNUX1RSVUUo
aGFuZGxlLT5pczxTZXRJbmxpbmVTdGF0ZT4oKSk7CisgICAgICAgICAgICBhdXRvJiBpdGVtID0g
aGFuZGxlLT5nZXQ8U2V0SW5saW5lU3RhdGU+KCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoaXRl
bS5maWxsQ29sb3IoKSwgQ29sb3I6OnJlZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQpAQCAtMjExLDEzICsyMTQsMTcgQEAgVEVT
VChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogICAgIH07CiAKICAgICBEaXNw
bGF5TGlzdCBsaXN0OworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOworCiAgICAgU3Ry
b2tlUGF0aFdyaXRlciB3cml0ZXIgeyBzdHJva2VQYXRoSXRlbXMgfTsKICAgICBsaXN0LnNldEl0
ZW1CdWZmZXJDbGllbnQoJndyaXRlcik7CiAKICAgICBhdXRvIHBhdGggPSBjcmVhdGVDb21wbGV4
UGF0aCgpOwotICAgIGxpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6Ymx1
ZSk7CisgICAgc3RhdGUuc3Ryb2tlQ29sb3IgPSBDb2xvcjo6Ymx1ZTsKKyAgICBsaXN0LmFwcGVu
ZDxTZXRJbmxpbmVTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xv
ckNoYW5nZSk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlUGF0aD4ocGF0aCk7Ci0gICAgbGlzdC5h
cHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9yOjpyZWQpOworICAgIHN0YXRlLnN0cm9r
ZUNvbG9yID0gQ29sb3I6OnJlZDsKKyAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVTdGF0ZT4oc3Rh
dGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSk7CiAgICAgbGlzdC5h
cHBlbmQ8U3Ryb2tlUGF0aD4ocGF0aCk7CiAKICAgICBEaXNwbGF5TGlzdCBzaGFsbG93Q29weSB7
eyBJdGVtQnVmZmVySGFuZGxlIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1
ZmZlciwgbGlzdC5zaXplSW5CeXRlcygpIH0gfX07CkBAIC0yMzAsOSArMjM3LDkgQEAgVEVTVChE
aXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogCiAgICAgRVhQRUNUX0ZBTFNFKHNo
YWxsb3dDb3B5LmlzRW1wdHkoKSk7CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlcy5zaXplKCksIDRV
KTsKLSAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzBdLCBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tl
Q29sb3IpOworICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMF0sIEl0ZW1UeXBlOjpTZXRJbmxpbmVT
dGF0ZSk7CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1sxXSwgSXRlbVR5cGU6OlN0cm9rZVBhdGgp
OwotICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMl0sIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VD
b2xvcik7CisgICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1syXSwgSXRlbVR5cGU6OlNldElubGluZVN0
YXRlKTsKICAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzNdLCBJdGVtVHlwZTo6U3Ryb2tlUGF0aCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9E
aXNwbGF5TGlzdFRlc3RzQ0cuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKaW5kZXggMGZlYzVmNzY1YTQyYzkyNDdhNDJhNzY5
MDFmMDU2MTczMmNkYjliOC4uOWQwNTJjMjI1MmJlOTEzMjdlNTJmNjhiNzI2MTZjZTZiMzBlY2Zk
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3Bs
YXlMaXN0VGVzdHNDRy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKQEAgLTUzLDExICs1MywxNCBAQCBURVNUKERpc3Bs
YXlMaXN0VGVzdHMsIFJlcGxheVdpdGhNaXNzaW5nUmVzb3VyY2UpCiAgICAgYXV0byBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7
CiAKICAgICBEaXNwbGF5TGlzdCBsaXN0OworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRl
OwogCi0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihDb2xvcjo6Z3JlZW4pOwor
ICAgIHN0YXRlLmZpbGxDb2xvciA9IENvbG9yOjpncmVlbjsKKyAgICBsaXN0LmFwcGVuZDxTZXRJ
bmxpbmVTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2Up
OwogICAgIGxpc3QuYXBwZW5kPEZpbGxSZWN0Pihjb250ZXh0Qm91bmRzKTsKICAgICBsaXN0LmFw
cGVuZDxEcmF3SW1hZ2VCdWZmZXI+KGltYWdlQnVmZmVySWRlbnRpZmllciwgY29udGV4dEJvdW5k
cywgY29udGV4dEJvdW5kcywgSW1hZ2VQYWludGluZ09wdGlvbnMgeyB9KTsKLSAgICBsaXN0LmFw
cGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oQ29sb3I6OnJlZCk7CisgICAgc3RhdGUuc3Ryb2tl
Q29sb3IgPSBDb2xvcjo6cmVkOworICAgIGxpc3QuYXBwZW5kPFNldElubGluZVN0YXRlPihzdGF0
ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKTsKICAgICBsaXN0LmFw
cGVuZDxTdHJva2VMaW5lPihGbG9hdFBvaW50IHsgMCwgY29udGV4dEhlaWdodCB9LCBGbG9hdFBv
aW50IHsgY29udGV4dFdpZHRoLCAwIH0pOwogCiAgICAgewpAQCAtMTEzLDYgKzExNiw4IEBAIFRF
U1QoRGlzcGxheUxpc3RUZXN0cywgT3V0T2ZMaW5lSXRlbURlY29kaW5nRmFpbHVyZSkKICAgICBH
cmFwaGljc0NvbnRleHQgY29udGV4dCB7IGNnQ29udGV4dC5nZXQoKSB9OwogCiAgICAgRGlzcGxh
eUxpc3Qgb3JpZ2luYWxMaXN0OworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOworCiAg
ICAgV3JpdGluZ0NsaWVudCB3cml0ZXI7CiAgICAgb3JpZ2luYWxMaXN0LnNldEl0ZW1CdWZmZXJD
bGllbnQoJndyaXRlcik7CiAKQEAgLTEyMCw3ICsxMjUsOCBAQCBURVNUKERpc3BsYXlMaXN0VGVz
dHMsIE91dE9mTGluZUl0ZW1EZWNvZGluZ0ZhaWx1cmUpCiAgICAgcGF0aC5tb3ZlVG8oeyAxMC4s
IDEwLiB9KTsKICAgICBwYXRoLmFkZExpbmVUbyh7IDUwLiwgNTAuIH0pOwogICAgIHBhdGguYWRk
TGluZVRvKHsgMTAuLCAxMC4gfSk7Ci0gICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxTZXRJbmxpbmVT
dHJva2VDb2xvcj4oQ29sb3I6OmJsdWUpOworICAgIHN0YXRlLmZpbGxDb2xvciA9IENvbG9yOjpi
bHVlOworICAgIG9yaWdpbmFsTGlzdC5hcHBlbmQ8U2V0SW5saW5lU3RhdGU+KHN0YXRlLCBHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpOwogICAgIG9yaWdpbmFsTGlzdC5h
cHBlbmQ8RmlsbFBhdGg+KFdURk1vdmUocGF0aCkpOwogCiAgICAgRGlzcGxheUxpc3Qgc2hhbGxv
d0NvcHkge3sgSXRlbUJ1ZmZlckhhbmRsZSB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGdsb2Jh
bEl0ZW1CdWZmZXIsIG9yaWdpbmFsTGlzdC5zaXplSW5CeXRlcygpIH0gfX07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420249</attachid>
            <date>2021-02-14 12:52:29 -0800</date>
            <delta_ts>2021-02-15 11:38:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219468-20210214125228.patch</filename>
            <type>text/plain</type>
            <size>47359</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFmZTkwMDNjNDFlZTM1
ODIxYjlmZmI2MTNmZGUwNGRiYzg3NDVlNS4uNmUwMzkwN2M3ZjNmODY4NjA5NDM5NjJiZDlmMWRh
ZDY2ZjA3ODFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIxLTAyLTE0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmRpbmcgdGhlIEdyYXBoaWNzQ29udGV4dFN0
YXRlIHRvIHRoZSBHUFVQIGlzIGEgcHJvYmxlbWF0aWMgYmVjYXVzZSBpdAorICAgICAgICBoYXMg
cG9pbnRlcnMgZm9yIHRoZSBncmFkaWVudHMgYW5kIHRoZSBwYXR0ZXJucyBhbmQgaGFzIG9iamVj
dHMgZm9yIHRoZQorICAgICAgICBjb2xvcnMuIEhvd2V2ZXIgbW9zdCBvZiB0aGUgdGltZSBpdCBp
bmNsdWRlcyBjaGFuZ2VzIGZvciBpbmxpbmUgZGF0YSBvbmx5CisgICAgICAgIHdoaWNoIGRvZXMg
bm90IG5lZWQgc3BlY2lhbCBlbmNvZGluZyBhbmQgZGVjb2RpbmcuIFNvIFNldFN0YXRlIGhhcyB0
bworICAgICAgICBoYW5kbGUgdGhlIGlubGluZSBhbmQgdGhlIG5vbi1pbmxpbmUgY2FzZXMgZWZm
aWNpZW50bHkuIFRoZSBwbGFuIGlzIHRoZQorICAgICAgICBmb2xsb3dpbmc6CisKKyAgICAgICAg
MS4gTW92ZSB0aGUgaW5saW5lIG1lbWJlcnMgb2YgR3JhcGhpY3NDb250ZXh0U3RhdGUgdG8gYSBu
ZXcgY2xhc3MgbmFtZWQKKyAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgYW5k
IG1ha2UgR3JhcGhpY3NDb250ZXh0U3RhdGUgYSBzdXBlciBjbGFzcworICAgICAgICAgICBvZiBp
dC4gTWFrZSBHcmFwaGljc0NvbnRleHRTdGF0ZSBvd25zIGFsbCB0aGUgdGhlIG5vbiBpbmxpbmUg
bWVtYmVycy4KKworICAgICAgICAyLiBBZGQgU2V0SW5saW5lU3RhdGUgaXRlbSBhbmQgbWFrZSBp
dCBpbmxpbmUgaXRlbSBzbyBpdCBpcyBhcHBlbmRlZCB0bworICAgICAgICAgICB0aGUgZGlzcGxh
eSBsaXN0IGlmIEdyYXBoaWNzQ29udGV4dFN0YXRlIGNvbnRhaW5zIG9ubHkgaW5saW5lIGNoYW5n
ZXMuCisKKyAgICAgICAgMy4gRGVsZXRlIHRoZSBpbmxpbmUgU2V0U3RhdGUgRGlzcGxheUxpc3Qg
aXRlbXMgc2luY2UgdGhleSBjYW4gYmUgYWxsCisgICAgICAgICAgIHJlcGxhY2VkIGJ5IFNldElu
bGluZVN0YXRlLgorCisgICAgICAgIDQuIE1ha2UgU2V0SW5saW5lU3RhdGUgb3duIHRoZSBtZW1i
ZXJzIHRoYXQgY2FuIGJlIGlubGluZWQgc3VjaCBhcyB0aGUKKyAgICAgICAgICAgaW5saW5lIGNv
bG9ycyBhbmQgdGhlIGdyYWRpZW50IHdob3NlIGNvbG9ycyBhcmUgYWxsIGlubGluZS4KKworICAg
ICAgICA1LiBNYWtlIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVt
IGRlY2lkZSB3aGV0aGVyIHRvIAorICAgICAgICAgICBhcHBlbmQgYSBTZXRJbmxpbmVTdGF0ZSBv
ciBTZXRTdGF0ZSBpdGVtLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dElubGluZVN0YXRl
OjpHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUGF0dGVybi5oOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6UGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgVW5yZWxhdGVkIGNoYW5nZSB0byBmaXggdGhlIG9yZGVyIG9mIGRlY29k
aW5nIHRoZSBQYXR0ZXJuOjpQYXJhbWV0ZXJzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRlcyk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRTdHJva2VUaGlja25lc3M6OmFwcGx5IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6U2V0SW5saW5lU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjpJbmxpbmVHcmFkaWVudDo6SW5saW5l
R3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRl
OjpJbmxpbmVHcmFkaWVudDo6Y2FuQmVJbmxpbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6SW5saW5lR3JhZGllbnQ6OmdyYWRpZW50IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6c3RhdGVDaGFu
Z2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRl
OjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5l
RmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZp
bGxHcmFkaWVudDo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6YXBwbHkgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0
cm9rZUNvbG9yOjphcHBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRTdHJva2VUaGlja25lc3M6OlNldFN0cm9rZVRoaWNrbmVzcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3Ryb2tlVGhpY2tuZXNzOjp0aGlja25l
c3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRl
OjpzdHJva2VDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0
SW5saW5lU3RhdGU6OmZpbGxDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6U2V0SW5saW5lU3RhdGU6OnNoYWRvd0NvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OlNldElubGluZUZpbGxDb2xvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENv
bG9yOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6OlNldElubGluZVN0cm9rZUNvbG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcjo6Y29s
b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0Ojpjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjp3aWxsQXBwZW5kSXRlbU9mVHlwZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaDoKKwogMjAyMS0wMi0xMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ3Jhc2ggY2FsbGluZyByZXBsYWNlVHJhY2sgb24gYSBzZW5kZXIgdGhhdCBvdXRsaXZl
cyBpdHMgUlRDUGVlckNvbm5lY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjU1NzdlODg0OGNiZDc1MWU5OWI5
NmRhM2E4MjIzOTlkMWVhYzA4Ni4uNGE5NTczMzZmZTI0OTFhZGQyYmY4OGUzZWU5OTA2MTRiZGI2
MGFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xNCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEltcGxlbWVu
dCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRl
Y29kZUl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaDoKKyAgICAgICAgRGVsZXRlIHRoZSBpbmxpbmUgU2V0U3RhdGUgRGlzcGxh
eUxpc3QgaXRlbXMuCisKIDIwMjEtMDItMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCA3ZDhh
MTYxYTIyMzlmNTAyZTc2MGFhYjQ4NDNmMDlmMWVjYjBmY2VmLi45MDBkMjI4OTg5NWEwZDgwYTJl
NzBmOWRkMzZlODgxNzE1YzY1ZTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0
ZToKICAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
ZmxhZykgJiYgKG1fc3RhdGUucHJvcGVydHkgIT0gc3RhdGUucHJvcGVydHkpKSBcCiAgICAgICAg
IGNoYW5nZUZsYWdzLmFkZChHcmFwaGljc0NvbnRleHRTdGF0ZTo6ZmxhZyk7CiAKLUdyYXBoaWNz
Q29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZSgpCitHcmFwaGljc0NvbnRleHRJbmxp
bmVTdGF0ZTo6R3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUoKQogICAgIDogc2hvdWxkQW50aWFs
aWFzKHRydWUpCiAgICAgLCBzaG91bGRTbW9vdGhGb250cyh0cnVlKQogICAgICwgc2hvdWxkU3Vi
cGl4ZWxRdWFudGl6ZUZvbnRzKHRydWUpCkBAIC05MSwxMSArOTEsMTIgQEAgR3JhcGhpY3NDb250
ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKCkKIHsKIH0KIAotR3JhcGhpY3NDb250ZXh0
U3RhdGU6On5HcmFwaGljc0NvbnRleHRTdGF0ZSgpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29udGV4
dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYp
ID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZShH
cmFwaGljc0NvbnRleHRTdGF0ZSYmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZSYg
R3JhcGhpY3NDb250ZXh0U3RhdGU6Om9wZXJhdG9yPShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYpID0gZGVmYXVsdDsKLUdyYXBoaWNzQ29udGV4dFN0YXRlJiBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6b3BlcmF0b3I9KEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpID0gZGVmYXVsdDsKK0dyYXBoaWNz
Q29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZSgpID0gZGVmYXVsdDsKKworR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkdyYXBoaWNzQ29udGV4dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4
dElubGluZVN0YXRlJiBvdGhlcikKKyAgICA6IEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlKG90
aGVyKQoreworfQogCiBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZTo6Y2hhbmdlc0Zyb21TdGF0ZShjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSYgc3RhdGUpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGJiMzJiZjM1OTc0MjRiN2U5YWEw
ZGJjYzEwOTc0ZGM5MTExMGUyNzUuLmI1MzE2ZjM3ODhlYjFmNmRlMjQxN2U4Y2IwNzhmOWQyZmE4
YTNiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGFzaEFycmF5LmgiCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRl
ICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFn
ZS5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKQEAgLTc5LDcgKzgwLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBGbG9hdFJv
dW5kZWRSZWN0OwotY2xhc3MgR3JhZGllbnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRJbXBsOwog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOwogY2xhc3MgSW1hZ2VCdWZmZXI7
CkBAIC0xNTAsMTUgKzE1MCw4IEBAIE9wdGlvbmFsPERvY3VtZW50TWFya2VyTGluZVN0eWxlPiBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAgcmV0dXJu
IHt7ICptb2RlLCAqc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgfX07CiB9CiAKLXN0cnVjdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3Rh
dGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB+R3JhcGhpY3NDb250ZXh0U3RhdGUoKTsKLQotICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJik7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3RhdGUoR3JhcGhpY3NDb250ZXh0U3RhdGUm
Jik7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSYgb3BlcmF0b3I9KGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3RhdGUm
IG9wZXJhdG9yPShHcmFwaGljc0NvbnRleHRTdGF0ZSYmKTsKK3N0cnVjdCBHcmFwaGljc0NvbnRl
eHRJbmxpbmVTdGF0ZSB7CisgICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0SW5saW5l
U3RhdGUoKTsKIAogICAgIGVudW0gQ2hhbmdlIDogdWludDMyX3QgewogICAgICAgICBTdHJva2VH
cmFkaWVudENoYW5nZSAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDAsCkBAIC0xODcsMTIgKzE4
MCw2IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAgICAgfTsKICAgICB1c2luZyBT
dGF0ZUNoYW5nZUZsYWdzID0gT3B0aW9uU2V0PENoYW5nZT47CiAKLSAgICBSZWZQdHI8R3JhZGll
bnQ+IHN0cm9rZUdyYWRpZW50OwotICAgIFJlZlB0cjxQYXR0ZXJuPiBzdHJva2VQYXR0ZXJuOwot
ICAgIAotICAgIFJlZlB0cjxHcmFkaWVudD4gZmlsbEdyYWRpZW50OwotICAgIFJlZlB0cjxQYXR0
ZXJuPiBmaWxsUGF0dGVybjsKLQogICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CiAKICAgICBm
bG9hdCBzdHJva2VUaGlja25lc3MgeyAwIH07CkBAIC0yMDAsMTAgKzE4Nyw2IEBAIHN0cnVjdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSB7CiAKICAgICBUZXh0RHJhd2luZ01vZGVGbGFncyB0ZXh0RHJh
d2luZ01vZGUgeyBUZXh0RHJhd2luZ01vZGU6OkZpbGwgfTsKIAotICAgIENvbG9yIHN0cm9rZUNv
bG9yIHsgQ29sb3I6OmJsYWNrIH07Ci0gICAgQ29sb3IgZmlsbENvbG9yIHsgQ29sb3I6OmJsYWNr
IH07Ci0gICAgQ29sb3Igc2hhZG93Q29sb3I7Ci0KICAgICBBZmZpbmVUcmFuc2Zvcm0gc3Ryb2tl
R3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKICAgICBBZmZpbmVUcmFuc2Zvcm0gZmlsbEdyYWRpZW50
U3BhY2VUcmFuc2Zvcm07CiAgICAgCkBAIC0yMjgsNiArMjExLDIxIEBAIHN0cnVjdCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSB7CiAjZW5kaWYKIH07CiAKK3N0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSB7CisgICAgV0VCQ09SRV9FWFBP
UlQgR3JhcGhpY3NDb250ZXh0U3RhdGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0Nv
bnRleHRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSYpOworCisgICAgUmVm
UHRyPEdyYWRpZW50PiBzdHJva2VHcmFkaWVudDsKKyAgICBSZWZQdHI8UGF0dGVybj4gc3Ryb2tl
UGF0dGVybjsKKworICAgIFJlZlB0cjxHcmFkaWVudD4gZmlsbEdyYWRpZW50OworICAgIFJlZlB0
cjxQYXR0ZXJuPiBmaWxsUGF0dGVybjsKKworICAgIENvbG9yIHN0cm9rZUNvbG9yIHsgQ29sb3I6
OmJsYWNrIH07CisgICAgQ29sb3IgZmlsbENvbG9yIHsgQ29sb3I6OmJsYWNrIH07CisgICAgQ29s
b3Igc2hhZG93Q29sb3I7Cit9OworCiBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Ug
ewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKCkgPSBkZWZhdWx0OwogICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlQ2hhbmdlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwg
R3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKaW5kZXggYjUxMGE3ZGQwY2IyNzg1YTVl
ZWQ3OTIwYzE5NGE3MTI3NmQ0ZjllOS4uYWEzMTMyYmFiZjcwMjNjZmE1ZjM4MDhjMjM4ZTlhZmQz
ZGZiZmI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0
dGVybi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaApA
QCAtMTEwLDE2ICsxMTAsMTYgQEAgT3B0aW9uYWw8UGF0dGVybjo6UGFyYW1ldGVycz4gUGF0dGVy
bjo6UGFyYW1ldGVyczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFwYXR0ZXJu
U3BhY2VUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRp
b25hbDxib29sPiByZXBlYXRZOwotICAgIGRlY29kZXIgPj4gcmVwZWF0WTsKLSAgICBpZiAoIXJl
cGVhdFkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KICAgICBPcHRpb25hbDxib29s
PiByZXBlYXRYOwogICAgIGRlY29kZXIgPj4gcmVwZWF0WDsKICAgICBpZiAoIXJlcGVhdFgpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBPcHRpb25hbDxib29sPiByZXBlYXRZ
OworICAgIGRlY29kZXIgPj4gcmVwZWF0WTsKKyAgICBpZiAoIXJlcGVhdFkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4ge3sgKnJlcGVhdFgsICpyZXBlYXRZLCAq
cGF0dGVyblNwYWNlVHJhbnNmb3JtIH19OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApp
bmRleCBlMDc5ZjczMGJlODU5YWMzYjA1Yjk0MjljMzBlODM2MWQxNDNhZWI0Li42ZjNlYWVlYmQ1
OWYzZGUwMmEzNjkyZmI3MzNhN2IzODNjMjRlMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5j
cHAKQEAgLTIwMywxNCArMjAzLDEwIEBAIHZvaWQgRGlzcGxheUxpc3Q6OmFwcGVuZChJdGVtSGFu
ZGxlIGl0ZW0pCiAgICAgICAgIHJldHVybiBhcHBlbmQ8Q29uY2F0ZW5hdGVDVE0+KGl0ZW0uZ2V0
PENvbmNhdGVuYXRlQ1RNPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06CiAgICAgICAg
IHJldHVybiBhcHBlbmQ8U2V0Q1RNPihpdGVtLmdldDxTZXRDVE0+KCkpOwotICAgIGNhc2UgSXRl
bVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ+KGl0ZW0uZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKSk7Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICByZXR1cm4gYXBw
ZW5kPFNldElubGluZUZpbGxDb2xvcj4oaXRlbS5nZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpKTsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKLSAgICAgICAgcmV0dXJu
IGFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oaXRlbS5nZXQ8U2V0SW5saW5lU3Ryb2tlQ29s
b3I+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKICAgICAgICAg
cmV0dXJuIGFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KGl0ZW0uZ2V0PFNldFN0cm9rZVRoaWNr
bmVzcz4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAgICAgIHJl
dHVybiBhcHBlbmQ8U2V0SW5saW5lU3RhdGU+KGl0ZW0uZ2V0PFNldElubGluZVN0YXRlPigpKTsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKICAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRT
dGF0ZT4oaXRlbS5nZXQ8U2V0U3RhdGU+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVD
YXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IDM5
NWZlNjcxY2NmNzQyMmExNjU2NzZjNzljZDFlMDllZjU1OWE5NGQuLjY1ZWE1N2RlZDVjNTNhNjI1
ODc0NDMwOGFjMTUwOGI4NmU2YjFhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1CdWZmZXIuY3BwCkBAIC03MiwyMiArNzIsMTQgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBs
eShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGdldDxTZXRDVE0+KCkuYXBwbHko
Y29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+
KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVGaWxsQ29s
b3I+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHsKLSAgICAgICAgZ2V0PFNldElubGluZVN0
cm9rZUNvbG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogICAg
IGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogewogICAgICAgICBnZXQ8U2V0U3Ry
b2tlVGhpY2tuZXNzPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQor
ICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOiB7CisgICAgICAgIGdldDxTZXRJbmxp
bmVTdGF0ZT4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtNDg2LDE2ICs0NzgsOCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRl
c3Ryb3koKQogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0
aWJsZTxTZXRDVE0+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxDb2xvcj46OnZhbHVlKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
R3JhZGllbnQ6IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0
cnVjdGlibGU8U2V0SW5saW5lRmlsbEdyYWRpZW50Pjo6dmFsdWUpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOiB7Ci0gICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGlu
ZVN0cm9rZUNvbG9yPjo6dmFsdWUpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRl
OiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxl
PFNldElubGluZVN0YXRlPjo6dmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNh
c2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHsKQEAgLTY2MiwxMiArNjQ2LDggQEAgYm9vbCBJdGVt
SGFuZGxlOjpzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAogICAgICAgICBy
ZXR1cm4gY29weUludG88U2NhbGU+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRDVE06CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRDVE0+KCp0aGlzLCBpdGVt
T2Zmc2V0KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAg
IHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVGaWxsQ29sb3I+KCp0aGlzLCBpdGVtT2Zmc2V0KTsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHJldHVy
biBjb3B5SW50bzxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKLSAgICAgICAgcmV0dXJuIGNv
cHlJbnRvPFNldElubGluZVN0cm9rZUNvbG9yPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lU3RhdGU6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJ
bmxpbmVTdGF0ZT4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExp
bmVDYXA6CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRMaW5lQ2FwPigqdGhpcywgaXRlbU9m
ZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXggYzBjNzNiODNiZDUyZWFhMDRhOTUxNzgxODA0
NDUzOTQ3YmJjOTVlOS4uYTU4OTQwMjcwNmFkZjJiYTFkMmUwN2UzNGY0NmQ5MGNhYTFhNTFmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcApAQCAtNDgsMTQgKzQ4
LDEwIEBAIHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAg
ICAgICAgcmV0dXJuIHNpemVvZihDb25jYXRlbmF0ZUNUTSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0Q1RNOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNldENUTSk7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGlu
ZUZpbGxHcmFkaWVudCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgot
ICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZUZpbGxDb2xvcik7Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5s
aW5lU3Ryb2tlQ29sb3IpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoK
ICAgICAgICAgcmV0dXJuIHNpemVvZihTZXRTdHJva2VUaGlja25lc3MpOworICAgIGNhc2UgSXRl
bVR5cGU6OlNldElubGluZVN0YXRlOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZVN0
YXRlKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKICAgICAgICAgcmV0dXJuIHNpemVv
ZihTZXRTdGF0ZSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKQEAgLTE4OSw5ICsx
ODUsNyBAQCBib29sIGlzRHJhd2luZ0l0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1U
eXBlOjpTYXZlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgSXRlbVR5cGU6
OlNldENUTToKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgIGNhc2UgSXRlbVR5cGU6OlNl
dElubGluZVN0cm9rZUNvbG9yOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOgog
ICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGlu
ZURhc2g6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46CkBAIC0zMDIsOSArMjk2LDcg
QEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpT
YXZlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldENU
TToKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZVN0cm9rZUNvbG9yOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOgogICAgIGNh
c2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46
CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TWl0ZXJMaW1pdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5oCmluZGV4IDBlOTQ3YTA2ZGFiNWEyZGZiNDc2OTA4MmY4Y2FjNTQ4YWY4
OTM0M2IuLjUwM2VlNTAwZjk3ZGQ3YzBkOGJhMTIyY2YzNjUxYjFhNWE3OGM2MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAtMzYsOSArMzYsNyBAQCBlbnVtIGNs
YXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgU2NhbGUsCiAgICAgQ29uY2F0ZW5hdGVDVE0s
CiAgICAgU2V0Q1RNLAotICAgIFNldElubGluZUZpbGxHcmFkaWVudCwKLSAgICBTZXRJbmxpbmVG
aWxsQ29sb3IsCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IsCisgICAgU2V0SW5saW5lU3RhdGUs
CiAgICAgU2V0U3Ryb2tlVGhpY2tuZXNzLAogICAgIFNldFN0YXRlLAogICAgIFNldExpbmVDYXAs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggZTUxYWMxMzlkMmFmNDAx
NDk2Y2VkMjA5NTNmZWZiZTM1OGVlNTc0YS4uNGU3ZmY2ZDk4YmM2OTFmNTBmNWIyNzJmMTk3ZDQ5
YTczZjgxZjBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMTE1
LDUwICsxMTUsNDMgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IENvbmNhdGVuYXRlQ1RNJiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAotU2V0
SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoY29uc3QgR3JhZGllbnQm
IGdyYWRpZW50LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0p
Ci0gICAgOiBtX2RhdGEoZ3JhZGllbnQuZGF0YSgpKQotICAgICwgbV9ncmFkaWVudFNwYWNlVHJh
bnNmb3JtKGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCi0gICAgLCBtX3NwcmVhZE1ldGhvZChncmFk
aWVudC5zcHJlYWRNZXRob2QoKSkKLSAgICAsIG1fY29sb3JTdG9wQ291bnQoc3RhdGljX2Nhc3Q8
dWludDhfdD4oZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkpKQotewotICAgIFJFTEVBU0VfQVNTRVJU
KG1fY29sb3JTdG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAgIGZvciAodWludDhf
dCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkgewotICAgICAgICBtX29mZnNldHNb
aV0gPSBncmFkaWVudC5zdG9wcygpW2ldLm9mZnNldDsKLSAgICAgICAgbV9jb2xvcnNbaV0gPSBn
cmFkaWVudC5zdG9wcygpW2ldLmNvbG9yLmFzSW5saW5lKCk7Ci0gICAgfQordm9pZCBTZXRTdHJv
a2VUaGlja25lc3M6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAg
ICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcyhtX3RoaWNrbmVzcyk7CiB9CiAKLVNldElubGlu
ZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KGZsb2F0IG9mZnNldHNbbWF4Q29s
b3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdLCBj
b25zdCBHcmFkaWVudDo6RGF0YSYgZGF0YSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVu
dFNwYWNlVHJhbnNmb3JtLCBHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QsIHVpbnQ4
X3QgY29sb3JTdG9wQ291bnQpCi0gICAgOiBtX2RhdGEoZGF0YSkKLSAgICAsIG1fZ3JhZGllbnRT
cGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgICwgbV9zcHJlYWRNZXRo
b2Qoc3ByZWFkTWV0aG9kKQotICAgICwgbV9jb2xvclN0b3BDb3VudChjb2xvclN0b3BDb3VudCkK
K3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRT
dHJva2VUaGlja25lc3MmIHN0YXRlKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fY29sb3JTdG9w
Q291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8
IG1fY29sb3JTdG9wQ291bnQ7ICsraSkgewotICAgICAgICBtX29mZnNldHNbaV0gPSBvZmZzZXRz
W2ldOwotICAgICAgICBtX2NvbG9yc1tpXSA9IGNvbG9yc1tpXTsKLSAgICB9CisgICAgdHMuZHVt
cFByb3BlcnR5KCJ0aGlja25lc3MiLCBzdGF0ZS50aGlja25lc3MoKSk7CisgICAgcmV0dXJuIHRz
OwogfQogCi1SZWY8R3JhZGllbnQ+IFNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQoKSBj
b25zdAorU2V0SW5saW5lU3RhdGU6OlNldElubGluZVN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hh
bmdlRmxhZ3MpCisgICAgOiBtX2lubGluZVN0YXRlKHN0YXRlKQorICAgICwgbV9jaGFuZ2VGbGFn
cyhjaGFuZ2VGbGFncykKKyAgICAsIG1fc3Ryb2tlR3JhZGllbnQoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUdyYWRpZW50Q2hhbmdlKSAmJiBzdGF0ZS5z
dHJva2VHcmFkaWVudCA/IElubGluZUdyYWRpZW50KCpzdGF0ZS5zdHJva2VHcmFkaWVudCkgOiBJ
bmxpbmVHcmFkaWVudCgpKQorICAgICwgbV9maWxsR3JhZGllbnQoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkgJiYgc3RhdGUuZmls
bEdyYWRpZW50ID8gSW5saW5lR3JhZGllbnQoKnN0YXRlLmZpbGxHcmFkaWVudCkgOiBJbmxpbmVH
cmFkaWVudCgpKQorICAgICwgbV9zdHJva2VDb2xvcihjaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpID8gc3RhdGUuc3Ryb2tlQ29sb3Iu
YXNJbmxpbmUoKSA6IFNSR0JBPHVpbnQ4X3Q+KCkpCisgICAgLCBtX2ZpbGxDb2xvcihjaGFuZ2VG
bGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSA/IHN0
YXRlLmZpbGxDb2xvci5hc0lubGluZSgpIDogU1JHQkE8dWludDhfdD4oKSkKKyAgICAsIG1fc2hh
ZG93Q29sb3IoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRv
d0NoYW5nZSkgPyBzdGF0ZS5zaGFkb3dDb2xvci5hc0lubGluZSgpIDogU1JHQkE8dWludDhfdD4o
KSkKIHsKLSAgICBhdXRvIGdyYWRpZW50ID0gR3JhZGllbnQ6OmNyZWF0ZShHcmFkaWVudDo6RGF0
YShtX2RhdGEpKTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50
OyArK2kpCi0gICAgICAgIGdyYWRpZW50LT5hZGRDb2xvclN0b3AoeyBtX29mZnNldHNbaV0sIENv
bG9yKG1fY29sb3JzW2ldKSB9KTsKLSAgICBncmFkaWVudC0+c2V0U3ByZWFkTWV0aG9kKG1fc3By
ZWFkTWV0aG9kKTsKLSAgICByZXR1cm4gZ3JhZGllbnQ7CiB9CiAKLXZvaWQgU2V0SW5saW5lRmls
bEdyYWRpZW50OjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CitTZXRJbmxp
bmVTdGF0ZTo6SW5saW5lR3JhZGllbnQ6OklubGluZUdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiBn
cmFkaWVudCkKKyAgICA6IGRhdGEoZ3JhZGllbnQuZGF0YSgpKQorICAgICwgc3ByZWFkTWV0aG9k
KGdyYWRpZW50LnNwcmVhZE1ldGhvZCgpKQorICAgICwgc3RvcHNDb3VudChncmFkaWVudC5zdG9w
cygpLnNpemUoKSkKIHsKLSAgICBpZiAobV9jb2xvclN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BD
b3VudCkKLSAgICAgICAgY29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQoKSwgbV9ncmFk
aWVudFNwYWNlVHJhbnNmb3JtKTsKKyAgICBSRUxFQVNFX0FTU0VSVChzdG9wc0NvdW50IDw9IG1h
eENvbG9yU3RvcENvdW50KTsKKyAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBzdG9wc0NvdW50
OyArK2kpIHsKKyAgICAgICAgc3RvcHNbaV0ub2Zmc2V0ID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5v
ZmZzZXQ7CisgICAgICAgIHN0b3BzW2ldLmNvbG9yID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5jb2xv
ci5hc0lubGluZSgpOworICAgIH0KIH0KIAotYm9vbCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Omlz
SW5saW5lKGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKK2Jvb2wgU2V0SW5saW5lU3RhdGU6Oklu
bGluZUdyYWRpZW50OjpjYW5CZUlubGluZWQoY29uc3QgR3JhZGllbnQmIGdyYWRpZW50KQogewot
ICAgIGlmIChncmFkaWVudC5zdG9wcygpLnNpemUoKSA+IFNldElubGluZUZpbGxHcmFkaWVudDo6
bWF4Q29sb3JTdG9wQ291bnQpCisgICAgaWYgKGdyYWRpZW50LnN0b3BzKCkuc2l6ZSgpID4gbWF4
Q29sb3JTdG9wQ291bnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZvciAoYXV0byYg
Y29sb3JTdG9wIDogZ3JhZGllbnQuc3RvcHMoKSkgewpAQCAtMTY5LDQyICsxNjIsNDUgQEAgYm9v
bCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKGNvbnN0IEdyYWRpZW50JiBncmFkaWVu
dCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldElubGluZUZpbGxHcmFkaWVudCYpCitSZWZQdHI8R3Jh
ZGllbnQ+IFNldElubGluZVN0YXRlOjpJbmxpbmVHcmFkaWVudDo6Z3JhZGllbnQoKSBjb25zdAog
ewotICAgIC8vIEZJWE1FOiBEdW1wIGdyYWRpZW50IGRhdGEuCi0gICAgcmV0dXJuIHRzOworICAg
IGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRlKEdyYWRpZW50OjpEYXRhKGRhdGEpKTsK
KyAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBzdG9wc0NvdW50OyArK2kpCisgICAgICAgIGdy
YWRpZW50LT5hZGRDb2xvclN0b3AoeyBzdG9wc1tpXS5vZmZzZXQsIHsgc3RvcHNbaV0uY29sb3Ig
fSB9KTsKKyAgICBncmFkaWVudC0+c2V0U3ByZWFkTWV0aG9kKHNwcmVhZE1ldGhvZCk7CisgICAg
cmV0dXJuIGdyYWRpZW50OwogfQogCi12b2lkIFNldElubGluZUZpbGxDb2xvcjo6YXBwbHkoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAorR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Ug
U2V0SW5saW5lU3RhdGU6OnN0YXRlQ2hhbmdlKCkgY29uc3QKIHsKLSAgICBjb250ZXh0LnNldEZp
bGxDb2xvcihjb2xvcigpKTsKLX0KKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0
ZUNoYW5nZSA9IHsgbV9pbmxpbmVTdGF0ZSwgbV9jaGFuZ2VGbGFncyB9OwogCi1zdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lRmlsbENv
bG9yJiBzdGF0ZSkKLXsKLSAgICB0cy5kdW1wUHJvcGVydHkoImNvbG9yIiwgc3RhdGUuY29sb3Io
KSk7Ci0gICAgcmV0dXJuIHRzOwotfQorICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpCisgICAgICAgIHN0YXRl
Q2hhbmdlLm1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBtX3N0cm9rZUdyYWRpZW50LmdyYWRpZW50
KCk7CiAKLXZvaWQgU2V0SW5saW5lU3Ryb2tlQ29sb3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCkgY29uc3QKLXsKLSAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKCkpOwot
fQorICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpG
aWxsR3JhZGllbnRDaGFuZ2UpKQorICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxHcmFk
aWVudCA9IG1fZmlsbEdyYWRpZW50LmdyYWRpZW50KCk7CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVTdHJva2VDb2xvciYgc3Rh
dGUpCi17Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJjb2xvciIsIHN0YXRlLmNvbG9yKCkpOwotICAg
IHJldHVybiB0czsKKyAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKQorICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRl
LnN0cm9rZUNvbG9yID0gbV9zdHJva2VDb2xvcjsKKworICAgIGlmIChtX2NoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpKQorICAgICAgICBz
dGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxDb2xvciA9IG1fZmlsbENvbG9yOworCisgICAgaWYgKG1f
Y2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkp
CisgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93Q29sb3IgPSBtX3NoYWRvd0NvbG9y
OworICAgIAorICAgIHJldHVybiBzdGF0ZUNoYW5nZTsKIH0KIAotdm9pZCBTZXRTdHJva2VUaGlj
a25lc3M6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3ZvaWQgU2V0SW5s
aW5lU3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAgICBj
b250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcyhtX3RoaWNrbmVzcyk7CisgICAgc3RhdGVDaGFuZ2Uo
KS5hcHBseShjb250ZXh0KTsKIH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0cm9rZVRoaWNrbmVzcyYgc3RhdGUpCitzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lU3RhdGUm
IGlubGluZVN0YXRlKQogewotICAgIHRzLmR1bXBQcm9wZXJ0eSgidGhpY2tuZXNzIiwgc3RhdGUu
dGhpY2tuZXNzKCkpOworICAgIHRzIDw8IGlubGluZVN0YXRlLnN0YXRlQ2hhbmdlKCk7CiAgICAg
cmV0dXJuIHRzOwogfQogCkBAIC0xMDIxLDkgKzEwMTcsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1U
eXBlOjpTY2FsZTogdHMgPDwgInNjYWxlIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0
Q1RNOiB0cyA8PCAic2V0LWN0bSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVu
YXRlQ1RNOiB0cyA8PCAiY29uY2F0ZW50YXRlLWN0bSI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5
cGU6OlNldElubGluZUZpbGxHcmFkaWVudDogdHMgPDwgInNldC1pbmxpbmUtZmlsbC1ncmFkaWVu
dCI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjogdHMgPDwg
InNldC1pbmxpbmUtZmlsbC1jb2xvciI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElu
bGluZVN0cm9rZUNvbG9yOiB0cyA8PCAic2V0LWlubGluZS1zdHJva2UtY29sb3IiOyBicmVhazsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogdHMgPDwgInNldC1pbmxpbmUtc3Rh
dGUiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHRzIDw8
ICJzZXQtc3Ryb2tlLXRoaWNrbmVzcyI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0
YXRlOiB0cyA8PCAic2V0LXN0YXRlIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGlu
ZUNhcDogdHMgPDwgInNldC1saW5lLWNhcCI7IGJyZWFrOwpAQCAtMTEwNCwxNCArMTA5OCw4IEBA
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkK
ICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICAgICAgdHMgPDwgaXRlbS5n
ZXQ8Q29uY2F0ZW5hdGVDVE0+KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6
OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5l
RmlsbEdyYWRpZW50PigpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZUZpbGxDb2xv
cj4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tl
Q29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpOwor
ICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOgorICAgICAgICB0cyA8PCBpdGVtLmdl
dDxTZXRJbmxpbmVTdGF0ZT4oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdHJva2VUaGlj
a25lc3M+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCA0NjI4NjU0MmEz
OWQ5OGJlYWEwN2E4MjBmMTYwNzQ3NDdkMDBjNjNhLi5iMThkNGU4Y2M0ZDI1NTFiZjc3MjQ0NzU2
NmQyMGE1OGUxMTljNmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTE2
Nyw4NCArMTY3LDY4IEBAIHByaXZhdGU6CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3Jt
OwogfTsKIAotY2xhc3MgU2V0SW5saW5lRmlsbEdyYWRpZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZUZpbGxH
cmFkaWVudDsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsK
LSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOwotICAgIHN0
YXRpYyBjb25zdGV4cHIgdWludDhfdCBtYXhDb2xvclN0b3BDb3VudCA9IDQ7Ci0KLSAgICBTZXRJ
bmxpbmVGaWxsR3JhZGllbnQoY29uc3QgR3JhZGllbnQmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pOwotICAgIFdFQkNPUkVfRVhQT1JUIFNldElubGluZUZp
bGxHcmFkaWVudChmbG9hdCBvZmZzZXRzW21heENvbG9yU3RvcENvdW50XSwgU1JHQkE8dWludDhf
dD4gY29sb3JzW21heENvbG9yU3RvcENvdW50XSwgY29uc3QgR3JhZGllbnQ6OkRhdGEmLCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0sIEdyYWRpZW50U3ByZWFk
TWV0aG9kLCB1aW50OF90IGNvbG9yU3RvcENvdW50KTsKLQotICAgIHN0YXRpYyBib29sIGlzSW5s
aW5lKGNvbnN0IEdyYWRpZW50Jik7Ci0gICAgUmVmPEdyYWRpZW50PiBncmFkaWVudCgpIGNvbnN0
OwotCi0gICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICBmbG9hdCBtX29mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdOwotICAgIFNSR0JBPHVpbnQ4
X3Q+IG1fY29sb3JzW21heENvbG9yU3RvcENvdW50XTsKLSAgICBHcmFkaWVudDo6RGF0YSBtX2Rh
dGE7Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKLSAgICBH
cmFkaWVudFNwcmVhZE1ldGhvZCBtX3NwcmVhZE1ldGhvZCB7IEdyYWRpZW50U3ByZWFkTWV0aG9k
OjpQYWQgfTsKLSAgICB1aW50OF90IG1fY29sb3JTdG9wQ291bnQgeyAwIH07Ci19OwotCi1jbGFz
cyBTZXRJbmxpbmVGaWxsQ29sb3IgeworY2xhc3MgU2V0U3Ryb2tlVGhpY2tuZXNzIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNl
dElubGluZUZpbGxDb2xvcjsKKyAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBl
ID0gSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczsKICAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3
aW5nSXRlbSA9IGZhbHNlOwogCi0gICAgU2V0SW5saW5lRmlsbENvbG9yKFNSR0JBPHVpbnQ4X3Q+
IGNvbG9yRGF0YSkKLSAgICAgICAgOiBtX2NvbG9yRGF0YShjb2xvckRhdGEpCisgICAgU2V0U3Ry
b2tlVGhpY2tuZXNzKGZsb2F0IHRoaWNrbmVzcykKKyAgICAgICAgOiBtX3RoaWNrbmVzcyh0aGlj
a25lc3MpCiAgICAgewogICAgIH0KIAotICAgIENvbG9yIGNvbG9yKCkgY29uc3QgeyByZXR1cm4g
eyBtX2NvbG9yRGF0YSB9OyB9CisgICAgZmxvYXQgdGhpY2tuZXNzKCkgY29uc3QgeyByZXR1cm4g
bV90aGlja25lc3M7IH0KKwogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7
CiAKIHByaXZhdGU6Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvckRhdGE7CisgICAgZmxvYXQg
bV90aGlja25lc3MgeyAwIH07CiB9OwogCi1jbGFzcyBTZXRJbmxpbmVTdHJva2VDb2xvciB7Citj
bGFzcyBTZXRJbmxpbmVTdGF0ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVt
VHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjsKKyAgICBzdGF0
aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZVN0YXRl
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7CiAKLSAgICBTZXRJbmxp
bmVTdHJva2VDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEpCi0gICAgICAgIDogbV9jb2xv
ckRhdGEoY29sb3JEYXRhKQotICAgIHsKLSAgICB9CisgICAgc3RydWN0IElubGluZUdyYWRpZW50
IHsKKyAgICAgICAgSW5saW5lR3JhZGllbnQoKSA9IGRlZmF1bHQ7CisgICAgICAgIElubGluZUdy
YWRpZW50KGNvbnN0IEdyYWRpZW50Jik7CiAKLSAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0
dXJuIHsgbV9jb2xvckRhdGEgfTsgfQorICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3Qg
bWF4Q29sb3JTdG9wQ291bnQgPSA0OworICAgICAgICBzdGF0aWMgYm9vbCBjYW5CZUlubGluZWQo
Y29uc3QgR3JhZGllbnQmKTsKIAotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29u
c3Q7CisgICAgICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGllbnQoKSBjb25zdDsKIAotcHJpdmF0
ZToKLSAgICBTUkdCQTx1aW50OF90PiBtX2NvbG9yRGF0YTsKLX07CisgICAgICAgIEdyYWRpZW50
OjpEYXRhIGRhdGE7CisgICAgICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIHNwcmVhZE1ldGhvZCB7
IEdyYWRpZW50U3ByZWFkTWV0aG9kOjpQYWQgfTsKKyAgICAgICAgdWludDhfdCBzdG9wc0NvdW50
IHsgMCB9OwogCi1jbGFzcyBTZXRTdHJva2VUaGlja25lc3MgewotcHVibGljOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tu
ZXNzOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwotICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7CisgICAgICAgIHN0
cnVjdCB7CisgICAgICAgICAgICBmbG9hdCBvZmZzZXQ7CisgICAgICAgICAgICBTUkdCQTx1aW50
OF90PiBjb2xvcjsKKyAgICAgICAgfSBzdG9wc1ttYXhDb2xvclN0b3BDb3VudF07CisgICAgfTsK
IAotICAgIFNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlja25lc3MpCi0gICAgICAgIDogbV90
aGlja25lc3ModGhpY2tuZXNzKQotICAgIHsKLSAgICB9CisgICAgV0VCQ09SRV9FWFBPUlQgU2V0
SW5saW5lU3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRT
dGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7CiAKLSAgICBmbG9hdCB0aGlja25lc3MoKSBjb25zdCB7
IHJldHVybiBtX3RoaWNrbmVzczsgfQorICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHN0
YXRlQ2hhbmdlKCkgY29uc3Q7CisgICAgQ29sb3Igc3Ryb2tlQ29sb3IoKSBjb25zdCB7IHJldHVy
biB7IG1fc3Ryb2tlQ29sb3IgfTsgfQorICAgIENvbG9yIGZpbGxDb2xvcigpIGNvbnN0IHsgcmV0
dXJuIHsgbV9maWxsQ29sb3IgfTsgfQorICAgIENvbG9yIHNoYWRvd0NvbG9yKCkgY29uc3QgeyBy
ZXR1cm4geyBtX3NoYWRvd0NvbG9yIH07IH0KIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250
ZXh0JikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZmxvYXQgbV90aGlja25lc3MgeyAwIH07Cisg
ICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgbV9pbmxpbmVTdGF0ZTsKKyAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBtX2NoYW5nZUZsYWdzOworCisgICAgSW5s
aW5lR3JhZGllbnQgbV9zdHJva2VHcmFkaWVudDsKKyAgICBJbmxpbmVHcmFkaWVudCBtX2ZpbGxH
cmFkaWVudDsKKyAgICBTUkdCQTx1aW50OF90PiBtX3N0cm9rZUNvbG9yOworICAgIFNSR0JBPHVp
bnQ4X3Q+IG1fZmlsbENvbG9yOworICAgIFNSR0JBPHVpbnQ4X3Q+IG1fc2hhZG93Q29sb3I7CiB9
OwogCiBjbGFzcyBTZXRTdGF0ZSB7CkBAIC0yMzMwLDkgKzIzMTQsNyBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2NhbGUsCiAgICAgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE0sCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpDb25jYXRlbmF0ZUNUTSwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldElubGluZUZpbGxHcmFkaWVudCwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldElubGluZUZpbGxDb2xvciwKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldElubGluZVN0cm9rZUNvbG9yLAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0SW5saW5lU3RhdGUsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRTdHJva2VUaGlja25lc3MsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRTdGF0ZSwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVD
YXAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggZTdmOWUy
OGMzNTAyMTllODEzZDg4MzQwZmY0ZjU0ZGUyMmZjMTBjMy4uOGI1NTgyNWE4M2NjMmIxZmZkNTgw
ZmEyZTM0YTg2ZmQ4OWNhOThkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmNwcApAQCAtNjAsMjYgKzYwLDI3IEBAIHZvaWQgUmVjb3JkZXI6OnB1dEltYWdlRGF0YShX
ZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBXCiAgICAg
YXBwZW5kPFB1dEltYWdlRGF0YT4oaW5wdXRGb3JtYXQsIGltYWdlRGF0YSwgc3JjUmVjdCwgZGVz
dFBvaW50LCBkZXN0Rm9ybWF0KTsKIH0KIAotc3RhdGljIGJvb2wgY29udGFpbnNPbmx5SW5saW5l
U3RhdGVDaGFuZ2VzKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBjaGFuZ2VzLCBH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykKK3N0YXRp
YyBib29sIGNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjb25zdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNo
YW5nZUZsYWdzKQogewotICAgIHN0YXRpYyBjb25zdGV4cHIgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MgaW5saW5lU3RhdGVDaGFuZ2VGbGFncyB7Ci0gICAgICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UsCi0gICAgICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSwKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGU6OkZpbGxDb2xvckNoYW5nZSwKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZp
bGxHcmFkaWVudENoYW5nZSwKLSAgICB9OworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVybkNoYW5nZSkgJiYgc3RhdGUuc3Ryb2tl
UGF0dGVybikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGNoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUGF0dGVybkNoYW5nZSkgJiYgc3RhdGUu
ZmlsbFBhdHRlcm4pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChjaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpICYm
IHN0YXRlLnN0cm9rZUdyYWRpZW50ICYmICFTZXRJbmxpbmVTdGF0ZTo6SW5saW5lR3JhZGllbnQ6
OmNhbkJlSW5saW5lZCgqc3RhdGUuc3Ryb2tlR3JhZGllbnQpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MgIT0gKGNoYW5nZUZsYWdzICYgaW5saW5lU3RhdGVD
aGFuZ2VGbGFncykpCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpICYmIHN0YXRlLmZpbGxHcmFkaWVudCAmJiAhU2V0
SW5saW5lU3RhdGU6OklubGluZUdyYWRpZW50OjpjYW5CZUlubGluZWQoKnN0YXRlLmZpbGxHcmFk
aWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250
YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpICYmICFjaGFuZ2Vz
Lm1fc3RhdGUuc3Ryb2tlQ29sb3IuaXNJbmxpbmUoKSkKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSAmJiAhc3RhdGUu
c3Ryb2tlQ29sb3IuaXNJbmxpbmUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFu
Z2UpICYmICFjaGFuZ2VzLm1fc3RhdGUuZmlsbENvbG9yLmlzSW5saW5lKCkpCisgICAgaWYgKGNo
YW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2Up
ICYmICFzdGF0ZS5maWxsQ29sb3IuaXNJbmxpbmUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxs
R3JhZGllbnRDaGFuZ2UpCi0gICAgICAgICYmICghY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVu
dCB8fCAhU2V0SW5saW5lRmlsbEdyYWRpZW50Ojppc0lubGluZSgqY2hhbmdlcy5tX3N0YXRlLmZp
bGxHcmFkaWVudCkpKQorICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSAmJiAhc3RhdGUuc2hhZG93Q29sb3IuaXNJbmxpbmUoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC05MiwyOCArOTMs
MjAgQEAgdm9pZCBSZWNvcmRlcjo6Y2FjaGVOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYgaW1hZ2Up
CiAgICAgbV9kaXNwbGF5TGlzdC5jYWNoZU5hdGl2ZUltYWdlKGltYWdlKTsKIH0KIAotdm9pZCBS
ZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVtKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRl
Q2hhbmdlJiBjaGFuZ2VzLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBj
aGFuZ2VGbGFncykKK3ZvaWQgUmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNo
YW5nZUZsYWdzIGNoYW5nZUZsYWdzKQogewotICAgIGlmICghY29udGFpbnNPbmx5SW5saW5lU3Rh
dGVDaGFuZ2VzKGNoYW5nZXMsIGNoYW5nZUZsYWdzKSkgewotICAgICAgICBpZiAoYXV0byBwYXR0
ZXJuID0gY2hhbmdlcy5tX3N0YXRlLnN0cm9rZVBhdHRlcm4pCi0gICAgICAgICAgICBjYWNoZU5h
dGl2ZUltYWdlKHBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKLSAgICAgICAgaWYgKGF1dG8gcGF0dGVy
biA9IGNoYW5nZXMubV9zdGF0ZS5maWxsUGF0dGVybikKLSAgICAgICAgICAgIGNhY2hlTmF0aXZl
SW1hZ2UocGF0dGVybi0+dGlsZUltYWdlKCkpOwotICAgICAgICBhcHBlbmQ8U2V0U3RhdGU+KGNo
YW5nZXMubV9zdGF0ZSwgY2hhbmdlRmxhZ3MpOworICAgIGlmIChjb250YWluc09ubHlJbmxpbmVT
dGF0ZUNoYW5nZXMoc3RhdGUsIGNoYW5nZUZsYWdzKSkgeworICAgICAgICBhcHBlbmQ8U2V0SW5s
aW5lU3RhdGU+KHN0YXRlLCBjaGFuZ2VGbGFncyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Cisg
ICAgCisgICAgaWYgKGF1dG8gcGF0dGVybiA9IHN0YXRlLnN0cm9rZVBhdHRlcm4pCisgICAgICAg
IGNhY2hlTmF0aXZlSW1hZ2UocGF0dGVybi0+dGlsZUltYWdlKCkpOwogCi0gICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSkp
Ci0gICAgICAgIGFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oY2hhbmdlcy5tX3N0YXRlLnN0
cm9rZUNvbG9yLmFzSW5saW5lKCkpOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UpKQotICAgICAgICBhcHBl
bmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzKTsK
LQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6Rmls
bENvbG9yQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oY2hhbmdl
cy5tX3N0YXRlLmZpbGxDb2xvci5hc0lubGluZSgpKTsKKyAgICBpZiAoYXV0byBwYXR0ZXJuID0g
c3RhdGUuZmlsbFBhdHRlcm4pCisgICAgICAgIGNhY2hlTmF0aXZlSW1hZ2UocGF0dGVybi0+dGls
ZUltYWdlKCkpOwogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0SW5saW5lRmls
bEdyYWRpZW50PigqY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCwgY2hhbmdlcy5tX3N0YXRl
LmZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKKyAgICBhcHBlbmQ8U2V0U3RhdGU+KHN0YXRl
LCBjaGFuZ2VGbGFncyk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBl
KEl0ZW1UeXBlIHR5cGUpCkBAIC0xMzAsNyArMTIzLDcgQEAgdm9pZCBSZWNvcmRlcjo6d2lsbEFw
cGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlc0Zyb21MYXN0U3RhdGUgPSBzdGF0ZUNoYW5nZXMu
Y2hhbmdlc0Zyb21TdGF0ZShjdXJyZW50U3RhdGUoKS5sYXN0RHJhd2luZ1N0YXRlKTsKICAgICAg
ICAgaWYgKGNoYW5nZXNGcm9tTGFzdFN0YXRlKSB7CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJF
QU0oRGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgInByZS1kcmF3aW5nLCBzYXZpbmcgc3RhdGUgIiA8
PCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZShzdGF0ZUNoYW5nZXMubV9zdGF0ZSwgY2hhbmdl
c0Zyb21MYXN0U3RhdGUpKTsKLSAgICAgICAgICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShzdGF0
ZUNoYW5nZXMsIGNoYW5nZXNGcm9tTGFzdFN0YXRlKTsKKyAgICAgICAgICAgIGFwcGVuZFN0YXRl
Q2hhbmdlSXRlbShzdGF0ZUNoYW5nZXMubV9zdGF0ZSwgY2hhbmdlc0Zyb21MYXN0U3RhdGUpOwog
ICAgICAgICAgICAgc3RhdGVDaGFuZ2VzLm1fY2hhbmdlRmxhZ3MgPSB7IH07CiAgICAgICAgICAg
ICBjdXJyZW50U3RhdGUoKS5sYXN0RHJhd2luZ1N0YXRlID0gc3RhdGVDaGFuZ2VzLm1fc3RhdGU7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDlm
ZTQ3MDNiOWUxYzI0ZmE0Nzg3OTc4MzUxNTliZTQxMTEwZThhZDcuLjQwNjZjNjY2MDhkY2UzZjJk
ZGIyYjFlY2Y3MzA4ZWIzNzRhOTNmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaApAQCAtMTczLDcgKzE3Myw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNhY2hlTmF0
aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmKTsKIAotICAgIHZvaWQgYXBwZW5kU3RhdGVDaGFuZ2VJdGVt
KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MpOworICAgIHZvaWQgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtKGNvbnN0
IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdl
RmxhZ3MpOwogCiAgICAgRmxvYXRSZWN0IGV4dGVudEZyb21Mb2NhbEJvdW5kcyhjb25zdCBGbG9h
dFJlY3QmKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCAyYzc2MjUx
ODZhZWUxNWQ3NzJiNzY0YmRkNTU5ZjBhMWMyNzBiZDQxLi45Yzc2MjE3NWRkYWQ2YjAwNWFiZTgw
YWZhY2Y4MzI5OTY2NDk1ZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC00NjEsOSAr
NDYxLDcgQEAgT3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JF
VFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWMKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2NhbGU6CiAg
ICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTToKLSAgICBjYXNlIERpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgorICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U2V0TGluZUNhcDoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46
CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDBjYTJiYjIwM2U0Yzc0MjdiNTQ0ZTZlM2E3NDNkNmMx
ODA1MzkyYjAuLmI5Njk5MmFkYzMzMjQyMGEwM2ZkODg4NjllM2FkODZmMjMzOGQ0ZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0zNDYsOSArMzQ2LDcgQEAgcHJvdGVjdGVkOgog
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgogICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgotICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdy
YWRpZW50OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
SW5saW5lU3Ryb2tlQ29sb3I6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGRkMWI1ZjEyYjAwNDZkYTAzMzI4ZDQ2OGFjZWVj
Y2MwNDJiMTFjNy4uN2M5NGM1NWM1OTE3ZWY2ZjZmMGUyZTBkZTk3ZTJjNzk1Y2JlNDI5NCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDIxLTAyLTE0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgor
CisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0IGl0
ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgUmVwbGFjZSB0aGUgaW5saW5lIFNldFN0YXRlIERpc3BsYXlMaXN0IGl0
ZW1zIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgCisgICAgICAgIFNldFN0YXRlIGl0ZW0uCisKIDIw
MjEtMDItMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1
Y2UgZXhwbGljaXQgdXNhZ2Ugb2YgW29iakMgcmVsZWFzZV0gaW4gV2ViS2l0CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAK
aW5kZXggZTg3MTdjNzkxNDBiZGVhNGI1ZjUzNTVmMDE2OTA4OWU2MDA4NjczMy4uN2M4MTJiZWYx
NTBhYWM5NWFlOTBjMGFkZmQwOWY3OGQ2ZjZmNTg3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApAQCAtNjUsMTEg
KzY1LDE0IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAgICAgYXV0byBn
cmFkaWVudCA9IGNyZWF0ZUdyYWRpZW50KCk7CiAgICAgYXV0byBwYXRoID0gY3JlYXRlQ29tcGxl
eFBhdGgoKTsKIAorICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOworICAgIHN0YXRlLmZp
bGxDb2xvciA9IENvbG9yOjpyZWQ7CisKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDUwOyArK2kp
IHsKICAgICAgICAgbGlzdC5hcHBlbmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigxLjUpOwogICAgICAg
ICBsaXN0LmFwcGVuZDxGaWxsUGF0aD4ocGF0aCk7CiAgICAgICAgIGxpc3QuYXBwZW5kPEZpbGxS
ZWN0V2l0aEdyYWRpZW50PihGbG9hdFJlY3QgeyAxLiwgMS4sIDEwLiwgMTAuIH0sIGdyYWRpZW50
KTsKLSAgICAgICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihDb2xvcjo6cmVkKTsK
KyAgICAgICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lU3RhdGU+KHN0YXRlLCBHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKTsKICNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkK
ICAgICAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlSW5saW5lUGF0aD4oSW5saW5lUGF0aERhdGEgeyBM
aW5lRGF0YSB7eyAwLiwgMC4gfSwgeyAxMC4sIDE1LiB9fX0pOwogI2VuZGlmCkBAIC0xMDIsMTEg
KzEwNSwxMSBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEFwcGVuZEl0ZW1zKQogICAgICAgICAg
ICAgRVhQRUNUX0VRKCZpdGVtLmdyYWRpZW50KCksIGdyYWRpZW50LnB0cigpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZp
bGxDb2xvcjogeworICAgICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogewogICAg
ICAgICAgICAgRVhQRUNUX0ZBTFNFKGhhbmRsZS0+aXNEcmF3aW5nSXRlbSgpKTsKLSAgICAgICAg
ICAgIEVYUEVDVF9UUlVFKGhhbmRsZS0+aXM8U2V0SW5saW5lRmlsbENvbG9yPigpKTsKLSAgICAg
ICAgICAgIGF1dG8mIGl0ZW0gPSBoYW5kbGUtPmdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCk7Ci0g
ICAgICAgICAgICBFWFBFQ1RfRVEoaXRlbS5jb2xvcigpLCBDb2xvcjo6cmVkKTsKKyAgICAgICAg
ICAgIEVYUEVDVF9UUlVFKGhhbmRsZS0+aXM8U2V0SW5saW5lU3RhdGU+KCkpOworICAgICAgICAg
ICAgYXV0byYgaXRlbSA9IGhhbmRsZS0+Z2V0PFNldElubGluZVN0YXRlPigpOworICAgICAgICAg
ICAgRVhQRUNUX0VRKGl0ZW0uZmlsbENvbG9yKCksIENvbG9yOjpyZWQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKQEAgLTIxMSwx
MyArMjE0LDE3IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgSXRlbUJ1ZmZlckNsaWVudCkKICAg
ICB9OwogCiAgICAgRGlzcGxheUxpc3QgbGlzdDsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZSBz
dGF0ZTsKKwogICAgIFN0cm9rZVBhdGhXcml0ZXIgd3JpdGVyIHsgc3Ryb2tlUGF0aEl0ZW1zIH07
CiAgICAgbGlzdC5zZXRJdGVtQnVmZmVyQ2xpZW50KCZ3cml0ZXIpOwogCiAgICAgYXV0byBwYXRo
ID0gY3JlYXRlQ29tcGxleFBhdGgoKTsKLSAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VD
b2xvcj4oQ29sb3I6OmJsdWUpOworICAgIHN0YXRlLnN0cm9rZUNvbG9yID0gQ29sb3I6OmJsdWU7
CisgICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lU3RhdGU+KHN0YXRlLCBHcmFwaGljc0NvbnRleHRT
dGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpOwogICAgIGxpc3QuYXBwZW5kPFN0cm9rZVBhdGg+KHBh
dGgpOwotICAgIGxpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6cmVkKTsK
KyAgICBzdGF0ZS5zdHJva2VDb2xvciA9IENvbG9yOjpyZWQ7CisgICAgbGlzdC5hcHBlbmQ8U2V0
SW5saW5lU3RhdGU+KHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFu
Z2UpOwogICAgIGxpc3QuYXBwZW5kPFN0cm9rZVBhdGg+KHBhdGgpOwogCiAgICAgRGlzcGxheUxp
c3Qgc2hhbGxvd0NvcHkge3sgSXRlbUJ1ZmZlckhhbmRsZSB7IGdsb2JhbEJ1ZmZlcklkZW50aWZp
ZXIsIGdsb2JhbEl0ZW1CdWZmZXIsIGxpc3Quc2l6ZUluQnl0ZXMoKSB9IH19OwpAQCAtMjMwLDkg
KzIzNyw5IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgSXRlbUJ1ZmZlckNsaWVudCkKIAogICAg
IEVYUEVDVF9GQUxTRShzaGFsbG93Q29weS5pc0VtcHR5KCkpOwogICAgIEVYUEVDVF9FUShpdGVt
VHlwZXMuc2l6ZSgpLCA0VSk7Ci0gICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1swXSwgSXRlbVR5cGU6
OlNldElubGluZVN0cm9rZUNvbG9yKTsKKyAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzBdLCBJdGVt
VHlwZTo6U2V0SW5saW5lU3RhdGUpOwogICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMV0sIEl0ZW1U
eXBlOjpTdHJva2VQYXRoKTsKLSAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzJdLCBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMl0sIEl0ZW1U
eXBlOjpTZXRJbmxpbmVTdGF0ZSk7CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1szXSwgSXRlbVR5
cGU6OlN0cm9rZVBhdGgpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCmluZGV4IDBmZWM1Zjc2
NWE0MmM5MjQ3YTQyYTc2OTAxZjA1NjE3MzJjZGI5YjguLjlkMDUyYzIyNTJiZTkxMzI3ZTUyZjY4
YjcyNjE2Y2U2YjMwZWNmZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCkBAIC01MywxMSArNTMs
MTQgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBSZXBsYXlXaXRoTWlzc2luZ1Jlc291cmNlKQog
ICAgIGF1dG8gaW1hZ2VCdWZmZXJJZGVudGlmaWVyID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogCiAgICAgRGlzcGxheUxpc3QgbGlzdDsKKyAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZSBzdGF0ZTsKIAotICAgIGxpc3QuYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4o
Q29sb3I6OmdyZWVuKTsKKyAgICBzdGF0ZS5maWxsQ29sb3IgPSBDb2xvcjo6Z3JlZW47CisgICAg
bGlzdC5hcHBlbmQ8U2V0SW5saW5lU3RhdGU+KHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
RmlsbENvbG9yQ2hhbmdlKTsKICAgICBsaXN0LmFwcGVuZDxGaWxsUmVjdD4oY29udGV4dEJvdW5k
cyk7CiAgICAgbGlzdC5hcHBlbmQ8RHJhd0ltYWdlQnVmZmVyPihpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIsIGNvbnRleHRCb3VuZHMsIGNvbnRleHRCb3VuZHMsIEltYWdlUGFpbnRpbmdPcHRpb25zIHsg
fSk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9yOjpyZWQpOwor
ICAgIHN0YXRlLnN0cm9rZUNvbG9yID0gQ29sb3I6OnJlZDsKKyAgICBsaXN0LmFwcGVuZDxTZXRJ
bmxpbmVTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5n
ZSk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlTGluZT4oRmxvYXRQb2ludCB7IDAsIGNvbnRleHRI
ZWlnaHQgfSwgRmxvYXRQb2ludCB7IGNvbnRleHRXaWR0aCwgMCB9KTsKIAogICAgIHsKQEAgLTEx
Myw2ICsxMTYsOCBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIE91dE9mTGluZUl0ZW1EZWNvZGlu
Z0ZhaWx1cmUpCiAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQgeyBjZ0NvbnRleHQuZ2V0KCkg
fTsKIAogICAgIERpc3BsYXlMaXN0IG9yaWdpbmFsTGlzdDsKKyAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZSBzdGF0ZTsKKwogICAgIFdyaXRpbmdDbGllbnQgd3JpdGVyOwogICAgIG9yaWdpbmFsTGlz
dC5zZXRJdGVtQnVmZmVyQ2xpZW50KCZ3cml0ZXIpOwogCkBAIC0xMjAsNyArMTI1LDggQEAgVEVT
VChEaXNwbGF5TGlzdFRlc3RzLCBPdXRPZkxpbmVJdGVtRGVjb2RpbmdGYWlsdXJlKQogICAgIHBh
dGgubW92ZVRvKHsgMTAuLCAxMC4gfSk7CiAgICAgcGF0aC5hZGRMaW5lVG8oeyA1MC4sIDUwLiB9
KTsKICAgICBwYXRoLmFkZExpbmVUbyh7IDEwLiwgMTAuIH0pOwotICAgIG9yaWdpbmFsTGlzdC5h
cHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9yOjpibHVlKTsKKyAgICBzdGF0ZS5maWxs
Q29sb3IgPSBDb2xvcjo6Ymx1ZTsKKyAgICBvcmlnaW5hbExpc3QuYXBwZW5kPFNldElubGluZVN0
YXRlPihzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKTsKICAg
ICBvcmlnaW5hbExpc3QuYXBwZW5kPEZpbGxQYXRoPihXVEZNb3ZlKHBhdGgpKTsKIAogICAgIERp
c3BsYXlMaXN0IHNoYWxsb3dDb3B5IHt7IEl0ZW1CdWZmZXJIYW5kbGUgeyBnbG9iYWxCdWZmZXJJ
ZGVudGlmaWVyLCBnbG9iYWxJdGVtQnVmZmVyLCBvcmlnaW5hbExpc3Quc2l6ZUluQnl0ZXMoKSB9
IH19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDhjNTA1NGI2ZDM4NzA5NTFhZGE4ZjNjNmZiN2M1NDU4NGI0OTM0NzIuLmQy
ODExYzFiZWNjYTExNTgyNzQ4OWM1MmI0ZjU1YjNjODQ5MGRjYWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMS0wMi0xNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbR1BVIFByb2Nlc3NdIEltcGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVt
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRpc3Bs
YXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkaXNw
bGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXNoYWRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3QtZXhwZWN0ZWQudHh0OgorCiAy
MDIxLTAyLTEzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFz
aCBjYWxsaW5nIHJlcGxhY2VUcmFjayBvbiBhIHNlbmRlciB0aGF0IG91dGxpdmVzIGl0cyBSVENQ
ZWVyQ29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZh
cy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2Nh
bnZhcy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0CmluZGV4IDE0NTFiMTkyNTNjMzIzODkyOGJi
ZDlmNWU1ZGViYjkyNzRjNTBkNTcuLmZjYzQ0ZWJiZGMxZTIzYTAxMWYxYTk4NmFlZTQ4ZmYzZmE1
ZWM3ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxh
eS1saXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFz
LWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMTQgQEAKIAogKHNhdmUpCi0o
c2V0LXN0YXRlCisoc2V0LWlubGluZS1zdGF0ZQogICAoY2hhbmdlLWZsYWdzIDUyNTQ1NikKICAg
KHN0cm9rZS10aGlja25lc3MgMS4wMCkKICAgKGZpbGwtY29sb3IgI0M4MDAwMCkKICAgKHNoYWRv
d3MtaWdub3JlLXRyYW5zZm9ybXMgMSkpCiAoZmlsbC1yZWN0CiAgIChyZWN0IGF0ICgxMCwxMCkg
c2l6ZSA1NXg1MCkgZXh0ZW50IGF0ICgxMCwxNDApIHNpemUgNTV4NTApCi0oc2V0LWlubGluZS1m
aWxsLWNvbG9yCi0gIChjb2xvciAjMDAwMEM4ODApKQorKHNldC1pbmxpbmUtc3RhdGUKKyAgKGNo
YW5nZS1mbGFncyAxMjgpCisgIChmaWxsLWNvbG9yICMwMDAwQzg4MCkpCiAoZmlsbC1yZWN0CiAg
IChyZWN0IGF0ICgzMCwzMCkgc2l6ZSA1NXg1MCkgZXh0ZW50IGF0ICgzMCwxMjApIHNpemUgNTV4
NTApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVz
LXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvZXh0ZW50LWlu
Y2x1ZGVzLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggNTkwYjkzZjVjODkyY2FlMzdmNDI0NjA5
YThmZTQ4MDMzZTY2ODM2OC4uMTU3NWVhNmVjOWJhNjViZjA2Y2MwMzM5NmQyZDYyNzBhM2QxZjY1
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy1z
aGFkb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9leHRlbnQt
aW5jbHVkZXMtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAKICAgKHggMC4wMCkK
ICAgKHkgMC4wMCkpCiAoc2F2ZSkKLShzZXQtc3RhdGUKKyhzZXQtaW5saW5lLXN0YXRlCiAgIChj
aGFuZ2UtZmxhZ3MgNTEyKQogICAoc2hhZG93LWJsdXIgMTIuMDApCiAgIChzaGFkb3ctb2Zmc2V0
IHdpZHRoPTEwIGhlaWdodD0yMCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0
cy9leHRlbnQtaW5jbHVkZXMtdHJhbnNmb3Jtcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
aXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtZXhwZWN0ZWQudHh0CmluZGV4
IDI4Y2NmNGMwMTg1OWRlMTkwYjBhOWEyN2ZhMmZlYzAwNjNlZDhlMWMuLmJmMGNjMzQyZmE2YTVh
YWFiODRiYTg5YmFmM2FmMzE3NzYzNDI0ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Rpc3Bs
YXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJhbnNmb3Jtcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLWV4cGVjdGVk
LnR4dApAQCAtNSw3ICs1LDcgQEAKIChjb25jYXRlbnRhdGUtY3RtCiAgIChjdG0ge209KCgwLjg3
LDAuNTApKC0wLjUwLDAuODcpKSB0PSg4MS43MCwtMTguMzApfSkpCiAoc2F2ZSkKLShzZXQtc3Rh
dGUKKyhzZXQtaW5saW5lLXN0YXRlCiAgIChjaGFuZ2UtZmxhZ3MgNTEyKQogICAoc2hhZG93LWJs
dXIgMTIuMDApCiAgIChzaGFkb3ctb2Zmc2V0IHdpZHRoPTEwIGhlaWdodD0yMCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3QtZXhwZWN0ZWQu
dHh0CmluZGV4IGJjMTdiNTExNDk5ZjgyNTZjOTkyOTBkYWU4NjE0ZDQ4OTRjYWY5Y2MuLmJiM2U3
Y2ZhNTVkZWJmNjA2MWJmMDA1ZGU4NWE1YzA3NmVlMzlhNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Rpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0LWV4cGVjdGVkLnR4dApAQCAt
Nyw3ICs3LDcgQEAKICAgKGNvbG9yICMwMDgwMDApCiAgIChjb21wb3NpdGUtb3BlcmF0aW9uIHNv
dXJjZS1vdmVyKQogICAoYmxlbmQtbW9kZSBub3JtYWwpIGV4dGVudCBhdCAoMCwwKSBzaXplIDEw
NHgxMDQpCi0oc2V0LXN0YXRlCisoc2V0LWlubGluZS1zdGF0ZQogICAoY2hhbmdlLWZsYWdzIDMy
OTYwKQogICAoZmlsbC1jb2xvciAjMDAwMEZGKQogICAoc3Ryb2tlLXN0eWxlIDApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420343</attachid>
            <date>2021-02-15 11:38:32 -0800</date>
            <delta_ts>2021-02-16 22:53:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219468-20210215113831.patch</filename>
            <type>text/plain</type>
            <size>46815</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIzNmIyODBmM2Y5MTM3
ZDFmMTBiM2JlODU4ZjNiZWUzZDc4YzY0Ni4uYzhmM2FiMTViNmVlYzVhMmY0M2IyZWRjZDU3YWJj
ZGFkYmI1MzM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIxLTAyLTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmRpbmcgdGhlIEdyYXBoaWNzQ29udGV4dFN0
YXRlIHRvIHRoZSBHUFVQIGlzIGEgcHJvYmxlbWF0aWMgYmVjYXVzZSBpdAorICAgICAgICBoYXMg
cG9pbnRlcnMgZm9yIHRoZSBncmFkaWVudHMgYW5kIHRoZSBwYXR0ZXJucyBhbmQgaGFzIG9iamVj
dHMgZm9yIHRoZQorICAgICAgICBjb2xvcnMuIEhvd2V2ZXIgbW9zdCBvZiB0aGUgdGltZSBpdCBp
bmNsdWRlcyBjaGFuZ2VzIGZvciBpbmxpbmUgZGF0YSBvbmx5CisgICAgICAgIHdoaWNoIGRvZXMg
bm90IG5lZWQgc3BlY2lhbCBlbmNvZGluZyBhbmQgZGVjb2RpbmcuIFNvIFNldFN0YXRlIGhhcyB0
bworICAgICAgICBoYW5kbGUgdGhlIGlubGluZSBhbmQgdGhlIG5vbi1pbmxpbmUgY2FzZXMgZWZm
aWNpZW50bHkuIFRoaXMgd2lsbCBlbGltaW5hdGUKKyAgICAgICAgdGhlIG5lZWQgdG8gaGF2ZSBE
aXNwbGF5TGlzdCBpdGVtcyBmb3Igc3BlY2lhbCBpbmxpbmUgY2FzZXMgc3VjaCBhczoKKyAgICAg
ICAgU2V0SW5saW5lRmlsbEdyYWRpZW50LCBTZXRJbmxpbmVGaWxsQ29sb3IgYW5kIFNldElubGlu
ZVN0cm9rZUNvbG9yLiBUaGUKKyAgICAgICAgb25seSBkcmF3YmFjayBpcyB0aGUgc2l6ZSBvZiB0
aGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nIHdpbGwgYmUgY29uc3RhbnQKKyAgICAgICAgYW5kIGxh
cmdlIGV2ZW4gaWYgdGhlcmUgaXMgb25seSBvbmUgY2hhbmdlIGluIEdyYXBoaWNzQ29udGV4dFN0
YXRlLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgMS4g
TW92ZSB0aGUgaW5saW5lIG1lbWJlcnMgb2YgR3JhcGhpY3NDb250ZXh0U3RhdGUgdG8gYSBuZXcg
Y2xhc3MgbmFtZWQKKyAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgYW5kIG1h
a2UgR3JhcGhpY3NDb250ZXh0U3RhdGUgYSBzdXBlciBjbGFzcworICAgICAgICAgICBvZiBpdC4g
TWFrZSBHcmFwaGljc0NvbnRleHRTdGF0ZSBvd25zIGFsbCB0aGUgdGhlIG5vbiBpbmxpbmUgbWVt
YmVycy4KKworICAgICAgICAyLiBBZGQgU2V0SW5saW5lU3RhdGUgaXRlbSBhbmQgbWFrZSBpdCBp
bmxpbmUgaXRlbSBzbyBpdCBpcyBhcHBlbmRlZCB0bworICAgICAgICAgICB0aGUgZGlzcGxheSBs
aXN0IGlmIEdyYXBoaWNzQ29udGV4dFN0YXRlIGNvbnRhaW5zIG9ubHkgaW5saW5lIGNoYW5nZXMu
CisKKyAgICAgICAgMy4gRGVsZXRlIHRoZSBpbmxpbmUgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRl
bXMgc2luY2UgdGhleSBjYW4gYmUgYWxsCisgICAgICAgICAgIHJlcGxhY2VkIGJ5IFNldElubGlu
ZVN0YXRlLgorCisgICAgICAgIDQuIE1ha2UgU2V0SW5saW5lU3RhdGUgb3duIHRoZSBtZW1iZXJz
IHRoYXQgY2FuIGJlIGlubGluZWQgc3VjaCBhcyB0aGUKKyAgICAgICAgICAgaW5saW5lIGNvbG9y
cyBhbmQgdGhlIGdyYWRpZW50IHdob3NlIGNvbG9ycyBhcmUgYWxsIGlubGluZS4KKworICAgICAg
ICA1LiBNYWtlIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVtIGRl
Y2lkZSB3aGV0aGVyIHRvIAorICAgICAgICAgICBhcHBlbmQgYSBTZXRJbmxpbmVTdGF0ZSBvciBT
ZXRTdGF0ZSBpdGVtLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlOjpH
cmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1IYW5kbGU6OnNhZmVDb3B5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6c2l6ZU9mSXRlbUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OmlzRHJhd2luZ0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OmlzSW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6U2V0SW5saW5lU3RhdGU6OlNldElubGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6SW5saW5lR3JhZGllbnQ6OklubGluZUdyYWRp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6SW5s
aW5lR3JhZGllbnQ6OmNhbkJlSW5saW5lZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6U2V0SW5saW5lU3RhdGU6OklubGluZUdyYWRpZW50OjpncmFkaWVudCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3RhdGU6OnN0YXRlQ2hhbmdlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6YXBw
bHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxH
cmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmdyYWRpZW50IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQ6OmFwcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OmFwcGx5IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VD
b2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0U3Ryb2tlVGhpY2tuZXNzOjpTZXRTdHJva2VUaGlja25lc3MpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0cm9rZVRoaWNrbmVzczo6dGhpY2tuZXNzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6c3Ry
b2tlQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZVN0YXRlOjpmaWxsQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldElubGluZVN0YXRlOjpzaGFkb3dDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yOjpTZXRJbmxpbmVGaWxsQ29sb3IpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6
Y29sb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNl
dElubGluZVN0cm9rZUNvbG9yOjpTZXRJbmxpbmVTdHJva2VDb2xvcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6OmNvbG9yIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Y29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6d2lsbEFwcGVuZEl0ZW1PZlR5cGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6
CisKIDIwMjEtMDItMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgV2ViUlRDUGxhdGZvcm1Db2RlY3NJbkdQVVByb2Nlc3NFbmFibGVkIHRvIFBhZ2Ug
U2V0dGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGU2NDkxODRjZTUwOTkyNjZhZjRhNWZmN2MxMzQwMWJhNWU4
M2RlOC4uNjNiMWI0ZTAxZWNlYzNjNTI1ZmY5NDk1MWEwMGEwYTI3NTdmZGJkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFw
cGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEltcGxlbWVudCBTZXRTdGF0ZSBEaXNw
bGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlY29kZUl0ZW0pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoK
KyAgICAgICAgRGVsZXRlIHRoZSBpbmxpbmUgU2V0U3RhdGUgRGlzcGxheUxpc3QgaXRlbXMuCisK
IDIwMjEtMDItMTUgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAK
ICAgICAgICAgW1dQRV1bR1RLXSBTbGVlcERpc2FibGVyIGRvZXMgbm90IGluaGliaXQgc2xlZXAg
d2l0aCBidWJibGV3cmFwIHNhbmRib3ggZW5hYmxlZDogbmVlZCB0byBydW4geGRnLWRidXMtcHJv
eHkgdW5kZXIgYndyYXAgb3IgeGRnLWRlc2t0b3AtcG9ydGFsIGRvZXMgbm90IHJlYWQgb3VyIGFw
cCBJRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAKaW5kZXggN2Q4YTE2MWEyMjM5ZjUwMmU3NjBhYWI0ODQzZjA5ZjFlY2IwZmNl
Zi4uOTAwZDIyODk4OTVhMGQ4MGEyZTcwZjlkZDM2ZTg4MTcxNWM2NWU0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBA
IC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgaWYgKG1fY2hhbmdlRmxhZ3MuY29udGFpbnMo
R3JhcGhpY3NDb250ZXh0U3RhdGU6OmZsYWcpICYmIChtX3N0YXRlLnByb3BlcnR5ICE9IHN0YXRl
LnByb3BlcnR5KSkgXAogICAgICAgICBjaGFuZ2VGbGFncy5hZGQoR3JhcGhpY3NDb250ZXh0U3Rh
dGU6OmZsYWcpOwogCi1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUo
KQorR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGU6OkdyYXBoaWNzQ29udGV4dElubGluZVN0YXRl
KCkKICAgICA6IHNob3VsZEFudGlhbGlhcyh0cnVlKQogICAgICwgc2hvdWxkU21vb3RoRm9udHMo
dHJ1ZSkKICAgICAsIHNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyh0cnVlKQpAQCAtOTEsMTEg
KzkxLDEyIEBAIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0ZSgpCiB7
CiB9CiAKLUdyYXBoaWNzQ29udGV4dFN0YXRlOjp+R3JhcGhpY3NDb250ZXh0U3RhdGUoKSA9IGRl
ZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUoY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0ZTo6
R3JhcGhpY3NDb250ZXh0U3RhdGUoR3JhcGhpY3NDb250ZXh0U3RhdGUmJikgPSBkZWZhdWx0Owot
R3JhcGhpY3NDb250ZXh0U3RhdGUmIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpvcGVyYXRvcj0oY29u
c3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKSA9IGRlZmF1bHQ7Ci1HcmFwaGljc0NvbnRleHRTdGF0
ZSYgR3JhcGhpY3NDb250ZXh0U3RhdGU6Om9wZXJhdG9yPShHcmFwaGljc0NvbnRleHRTdGF0ZSYm
KSA9IGRlZmF1bHQ7CitHcmFwaGljc0NvbnRleHRTdGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUo
KSA9IGRlZmF1bHQ7CisKK0dyYXBoaWNzQ29udGV4dFN0YXRlOjpHcmFwaGljc0NvbnRleHRTdGF0
ZShjb25zdCBHcmFwaGljc0NvbnRleHRJbmxpbmVTdGF0ZSYgb3RoZXIpCisgICAgOiBHcmFwaGlj
c0NvbnRleHRJbmxpbmVTdGF0ZShvdGhlcikKK3sKK30KIAogR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2U6OmNoYW5nZXNGcm9t
U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlKSBjb25zdAogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRl
eCBiYjMyYmYzNTk3NDI0YjdlOWFhMGRiY2MxMDk3NGRjOTExMTBlMjc1Li5iNTMxNmYzNzg4ZWIx
ZjZkZTI0MTdlOGNiMDc4ZjlkMmZhOGEzYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkRhc2hBcnJheS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZv
bnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5
cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgi
CkBAIC03OSw3ICs4MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWZmaW5lVHJh
bnNmb3JtOwogY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEdyYWRpZW50OwogY2xhc3Mg
R3JhcGhpY3NDb250ZXh0SW1wbDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0
ZTsKIGNsYXNzIEltYWdlQnVmZmVyOwpAQCAtMTUwLDE1ICsxNTAsOCBAQCBPcHRpb25hbDxEb2N1
bWVudE1hcmtlckxpbmVTdHlsZT4gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZAogICAgIHJldHVybiB7eyAqbW9kZSwgKnNob3VsZFVzZURhcmtBcHBlYXJhbmNl
IH19OwogfQogCi1zdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewotICAgIFdFQkNPUkVfRVhQ
T1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgfkdyYXBoaWNz
Q29udGV4dFN0YXRlKCk7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZShjb25zdCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRl
KEdyYXBoaWNzQ29udGV4dFN0YXRlJiYpOwotCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGUmIG9w
ZXJhdG9yPShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOwotICAgIFdFQkNPUkVfRVhQT1JU
IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBvcGVyYXRvcj0oR3JhcGhpY3NDb250ZXh0U3RhdGUmJik7
CitzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0SW5saW5lU3RhdGUgeworICAgIFdFQkNPUkVfRVhQT1JU
IEdyYXBoaWNzQ29udGV4dElubGluZVN0YXRlKCk7CiAKICAgICBlbnVtIENoYW5nZSA6IHVpbnQz
Ml90IHsKICAgICAgICAgU3Ryb2tlR3JhZGllbnRDaGFuZ2UgICAgICAgICAgICAgICAgICAgID0g
MSA8PCAwLApAQCAtMTg3LDEyICsxODAsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUg
ewogICAgIH07CiAgICAgdXNpbmcgU3RhdGVDaGFuZ2VGbGFncyA9IE9wdGlvblNldDxDaGFuZ2U+
OwogCi0gICAgUmVmUHRyPEdyYWRpZW50PiBzdHJva2VHcmFkaWVudDsKLSAgICBSZWZQdHI8UGF0
dGVybj4gc3Ryb2tlUGF0dGVybjsKLSAgICAKLSAgICBSZWZQdHI8R3JhZGllbnQ+IGZpbGxHcmFk
aWVudDsKLSAgICBSZWZQdHI8UGF0dGVybj4gZmlsbFBhdHRlcm47Ci0KICAgICBGbG9hdFNpemUg
c2hhZG93T2Zmc2V0OwogCiAgICAgZmxvYXQgc3Ryb2tlVGhpY2tuZXNzIHsgMCB9OwpAQCAtMjAw
LDEwICsxODcsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogCiAgICAgVGV4dERy
YXdpbmdNb2RlRmxhZ3MgdGV4dERyYXdpbmdNb2RlIHsgVGV4dERyYXdpbmdNb2RlOjpGaWxsIH07
CiAKLSAgICBDb2xvciBzdHJva2VDb2xvciB7IENvbG9yOjpibGFjayB9OwotICAgIENvbG9yIGZp
bGxDb2xvciB7IENvbG9yOjpibGFjayB9OwotICAgIENvbG9yIHNoYWRvd0NvbG9yOwotCiAgICAg
QWZmaW5lVHJhbnNmb3JtIHN0cm9rZUdyYWRpZW50U3BhY2VUcmFuc2Zvcm07CiAgICAgQWZmaW5l
VHJhbnNmb3JtIGZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtOwogICAgIApAQCAtMjI4LDYgKzIx
MSwyMSBAQCBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgewogI2VuZGlmCiB9OwogCitzdHJ1
Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGUgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0SW5saW5lU3Rh
dGUgeworICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dFN0YXRlKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0SW5s
aW5lU3RhdGUmKTsKKworICAgIFJlZlB0cjxHcmFkaWVudD4gc3Ryb2tlR3JhZGllbnQ7CisgICAg
UmVmUHRyPFBhdHRlcm4+IHN0cm9rZVBhdHRlcm47CisKKyAgICBSZWZQdHI8R3JhZGllbnQ+IGZp
bGxHcmFkaWVudDsKKyAgICBSZWZQdHI8UGF0dGVybj4gZmlsbFBhdHRlcm47CisKKyAgICBDb2xv
ciBzdHJva2VDb2xvciB7IENvbG9yOjpibGFjayB9OworICAgIENvbG9yIGZpbGxDb2xvciB7IENv
bG9yOjpibGFjayB9OworICAgIENvbG9yIHNoYWRvd0NvbG9yOworfTsKKwogc3RydWN0IEdyYXBo
aWNzQ29udGV4dFN0YXRlQ2hhbmdlIHsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSgp
ID0gZGVmYXVsdDsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZShjb25zdCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZs
YWdzIGZsYWdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggZTA3OWY3MzBiZTg1OWFj
M2IwNWI5NDI5YzMwZTgzNjFkMTQzYWViNC4uNmYzZWFlZWJkNTlmM2RlMDJhMzY5MmZiNzMzYTdi
MzgzYzI0ZTExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC0yMDMsMTQgKzIwMywx
MCBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICBy
ZXR1cm4gYXBwZW5kPENvbmNhdGVuYXRlQ1RNPihpdGVtLmdldDxDb25jYXRlbmF0ZUNUTT4oKSk7
CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1cm4gYXBwZW5kPFNldENU
TT4oaXRlbS5nZXQ8U2V0Q1RNPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
R3JhZGllbnQ6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50Pihp
dGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNl
dElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsQ29s
b3I+KGl0ZW0uZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lU3Ry
b2tlQ29sb3I+KGl0ZW0uZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3Ry
b2tlVGhpY2tuZXNzPihpdGVtLmdldDxTZXRTdHJva2VUaGlja25lc3M+KCkpOworICAgIGNhc2Ug
SXRlbVR5cGU6OlNldElubGluZVN0YXRlOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGlu
ZVN0YXRlPihpdGVtLmdldDxTZXRJbmxpbmVTdGF0ZT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3RhdGU6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3RhdGU+KGl0ZW0uZ2V0PFNldFN0
YXRlPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAppbmRleCAzOTVmZTY3MWNjZjc0MjJhMTY1Njc2
Yzc5Y2QxZTA5ZWY1NTlhOTRkLi42NWVhNTdkZWQ1YzUzYTYyNTg3NDQzMDhhYzE1MDhiODZlNmIx
YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAt
NzIsMjIgKzcyLDE0IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0KQogICAgICAgICBnZXQ8U2V0Q1RNPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDog
ewotICAgICAgICBnZXQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigpLmFwcGx5KGNvbnRleHQpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxD
b2xvcjogewotICAgICAgICBnZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpLmFwcGx5KGNvbnRleHQp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0
cm9rZUNvbG9yOiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKS5hcHBseShj
b250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRT
dHJva2VUaGlja25lc3M6IHsKICAgICAgICAgZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKS5hcHBs
eShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVTdGF0ZTogeworICAgICAgICBnZXQ8U2V0SW5saW5lU3RhdGU+KCkuYXBwbHkoY29u
dGV4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Rh
dGU6IHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAg
LTQ4NiwxNiArNDc4LDggQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0Q1RNPjo6dmFsdWUp
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZp
bGxDb2xvcjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3Ry
dWN0aWJsZTxTZXRJbmxpbmVGaWxsQ29sb3I+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZp
bGxHcmFkaWVudD46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdHJva2VDb2xvcj46OnZhbHVl
KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTogeworICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdGF0ZT46OnZh
bHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5l
Q2FwOiB7CkBAIC02NjIsMTIgKzY0Niw4IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNvcHkoSXRl
bUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNjYWxl
PigqdGhpcywgaXRlbU9mZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAg
ICByZXR1cm4gY29weUludG88U2V0Q1RNPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0
SW5saW5lRmlsbENvbG9yPigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5l
RmlsbEdyYWRpZW50PigqdGhpcywgaXRlbU9mZnNldCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVTdHJv
a2VDb2xvcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZVN0YXRlOgorICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lU3RhdGU+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1
cm4gY29weUludG88U2V0TGluZUNhcD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRl
bVR5cGU6OlNldExpbmVKb2luOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUu
Y3BwCmluZGV4IGMwYzczYjgzYmQ1MmVhYTA0YTk1MTc4MTgwNDQ1Mzk0N2JiYzk1ZTkuLmE1ODk0
MDI3MDZhZGYyYmExZDJlMDdlMzRmNDZkOTBjYWExYTUxZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTQ4LDE0ICs0OCwxMCBAQCBzdGF0aWMgc2l6ZV90
IHNpemVPZkl0ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2Yo
Q29uY2F0ZW5hdGVDVE0pOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0
dXJuIHNpemVvZihTZXRDVE0pOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFk
aWVudDoKLSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVGaWxsR3JhZGllbnQpOwotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIHNpemVv
ZihTZXRJbmxpbmVGaWxsQ29sb3IpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9r
ZUNvbG9yOgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZVN0cm9rZUNvbG9yKTsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIHJldHVybiBzaXpl
b2YoU2V0U3Ryb2tlVGhpY2tuZXNzKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0
ZToKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVTdGF0ZSk7CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0U3RhdGU6CiAgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3RhdGUpOwogICAgIGNh
c2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CkBAIC0xODksOSArMTg1LDcgQEAgYm9vbCBpc0RyYXdp
bmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNl
IEl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRMaW5lQ2FwOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgogICAgIGNhc2UgSXRl
bVR5cGU6OlNldExpbmVKb2luOgpAQCAtMzAyLDkgKzI5Niw3IEBAIGJvb2wgaXNJbmxpbmVJdGVt
KEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1U
eXBlOjpTY2FsZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxH
cmFkaWVudDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5l
Q2FwOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVKb2luOgogICAgIGNhc2UgSXRlbVR5cGU6
OlNldE1pdGVyTGltaXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRl
eCAwZTk0N2EwNmRhYjVhMmRmYjQ3NjkwODJmOGNhYzU0OGFmODkzNDNiLi41MDNlZTUwMGY5N2Rk
N2MwZDhiYTEyMmNmMzY1MWIxYTVhNzhjNjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmgKQEAgLTM2LDkgKzM2LDcgQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4
X3QgewogICAgIFNjYWxlLAogICAgIENvbmNhdGVuYXRlQ1RNLAogICAgIFNldENUTSwKLSAgICBT
ZXRJbmxpbmVGaWxsR3JhZGllbnQsCi0gICAgU2V0SW5saW5lRmlsbENvbG9yLAotICAgIFNldElu
bGluZVN0cm9rZUNvbG9yLAorICAgIFNldElubGluZVN0YXRlLAogICAgIFNldFN0cm9rZVRoaWNr
bmVzcywKICAgICBTZXRTdGF0ZSwKICAgICBTZXRMaW5lQ2FwLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuY3BwCmluZGV4IGU1MWFjMTM5ZDJhZjQwMTQ5NmNlZDIwOTUzZmVmYmUzNThl
ZTU3NGEuLjRlN2ZmNmQ5OGJjNjkxZjUwZjViMjcyZjE5N2Q0OWE3M2Y4MWYwZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTExNSw1MCArMTE1LDQzIEBAIHN0YXRp
YyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25jYXRlbmF0
ZUNUTSYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6
U2V0SW5saW5lRmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgIDogbV9kYXRhKGdyYWRp
ZW50LmRhdGEoKSkKLSAgICAsIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNl
VHJhbnNmb3JtKQotICAgICwgbV9zcHJlYWRNZXRob2QoZ3JhZGllbnQuc3ByZWFkTWV0aG9kKCkp
Ci0gICAgLCBtX2NvbG9yU3RvcENvdW50KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGdyYWRpZW50LnN0
b3BzKCkuc2l6ZSgpKSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9
IG1heENvbG9yU3RvcENvdW50KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9y
U3RvcENvdW50OyArK2kpIHsKLSAgICAgICAgbV9vZmZzZXRzW2ldID0gZ3JhZGllbnQuc3RvcHMo
KVtpXS5vZmZzZXQ7Ci0gICAgICAgIG1fY29sb3JzW2ldID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5j
b2xvci5hc0lubGluZSgpOwotICAgIH0KK3ZvaWQgU2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseShH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit7CisgICAgY29udGV4dC5zZXRTdHJva2VU
aGlja25lc3MobV90aGlja25lc3MpOwogfQogCi1TZXRJbmxpbmVGaWxsR3JhZGllbnQ6OlNldElu
bGluZUZpbGxHcmFkaWVudChmbG9hdCBvZmZzZXRzW21heENvbG9yU3RvcENvdW50XSwgU1JHQkE8
dWludDhfdD4gY29sb3JzW21heENvbG9yU3RvcENvdW50XSwgY29uc3QgR3JhZGllbnQ6OkRhdGEm
IGRhdGEsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3Jh
ZGllbnRTcHJlYWRNZXRob2Qgc3ByZWFkTWV0aG9kLCB1aW50OF90IGNvbG9yU3RvcENvdW50KQot
ICAgIDogbV9kYXRhKGRhdGEpCi0gICAgLCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm0oZ3JhZGll
bnRTcGFjZVRyYW5zZm9ybSkKLSAgICAsIG1fc3ByZWFkTWV0aG9kKHNwcmVhZE1ldGhvZCkKLSAg
ICAsIG1fY29sb3JTdG9wQ291bnQoY29sb3JTdG9wQ291bnQpCitzdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3Ryb2tlVGhpY2tuZXNzJiBzdGF0
ZSkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3Rv
cENvdW50KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyAr
K2kpIHsKLSAgICAgICAgbV9vZmZzZXRzW2ldID0gb2Zmc2V0c1tpXTsKLSAgICAgICAgbV9jb2xv
cnNbaV0gPSBjb2xvcnNbaV07Ci0gICAgfQorICAgIHRzLmR1bXBQcm9wZXJ0eSgidGhpY2tuZXNz
Iiwgc3RhdGUudGhpY2tuZXNzKCkpOworICAgIHJldHVybiB0czsKIH0KIAotUmVmPEdyYWRpZW50
PiBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmdyYWRpZW50KCkgY29uc3QKK1NldElubGluZVN0YXRl
OjpTZXRJbmxpbmVTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQorICAgIDogbV9p
bmxpbmVTdGF0ZShzdGF0ZSkKKyAgICAsIG1fY2hhbmdlRmxhZ3MoY2hhbmdlRmxhZ3MpCisgICAg
LCBtX3N0cm9rZUdyYWRpZW50KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkgJiYgc3RhdGUuc3Ryb2tlR3JhZGllbnQgPyBJbmxp
bmVHcmFkaWVudCgqc3RhdGUuc3Ryb2tlR3JhZGllbnQpIDogSW5saW5lR3JhZGllbnQoKSkKKyAg
ICAsIG1fZmlsbEdyYWRpZW50KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpICYmIHN0YXRlLmZpbGxHcmFkaWVudCA/IElubGluZUdy
YWRpZW50KCpzdGF0ZS5maWxsR3JhZGllbnQpIDogSW5saW5lR3JhZGllbnQoKSkKKyAgICAsIG1f
c3Ryb2tlQ29sb3IoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
cm9rZUNvbG9yQ2hhbmdlKSA/IHN0YXRlLnN0cm9rZUNvbG9yLmFzSW5saW5lKCkgOiBTUkdCQTx1
aW50OF90PigpKQorICAgICwgbV9maWxsQ29sb3IoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSkgPyBzdGF0ZS5maWxsQ29sb3IuYXNJbmxp
bmUoKSA6IFNSR0JBPHVpbnQ4X3Q+KCkpCisgICAgLCBtX3NoYWRvd0NvbG9yKGNoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpID8gc3RhdGUuc2hh
ZG93Q29sb3IuYXNJbmxpbmUoKSA6IFNSR0JBPHVpbnQ4X3Q+KCkpCiB7Ci0gICAgYXV0byBncmFk
aWVudCA9IEdyYWRpZW50OjpjcmVhdGUoR3JhZGllbnQ6OkRhdGEobV9kYXRhKSk7Ci0gICAgZm9y
ICh1aW50OF90IGkgPSAwOyBpIDwgbV9jb2xvclN0b3BDb3VudDsgKytpKQotICAgICAgICBncmFk
aWVudC0+YWRkQ29sb3JTdG9wKHsgbV9vZmZzZXRzW2ldLCBDb2xvcihtX2NvbG9yc1tpXSkgfSk7
Ci0gICAgZ3JhZGllbnQtPnNldFNwcmVhZE1ldGhvZChtX3NwcmVhZE1ldGhvZCk7Ci0gICAgcmV0
dXJuIGdyYWRpZW50OwogfQogCi12b2lkIFNldElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAorU2V0SW5saW5lU3RhdGU6OklubGluZUdyYWRp
ZW50OjpJbmxpbmVHcmFkaWVudChjb25zdCBHcmFkaWVudCYgZ3JhZGllbnQpCisgICAgOiBkYXRh
KGdyYWRpZW50LmRhdGEoKSkKKyAgICAsIHNwcmVhZE1ldGhvZChncmFkaWVudC5zcHJlYWRNZXRo
b2QoKSkKKyAgICAsIHN0b3BzQ291bnQoZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkpCiB7Ci0gICAg
aWYgKG1fY29sb3JTdG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpCi0gICAgICAgIGNvbnRl
eHQuc2V0RmlsbEdyYWRpZW50KGdyYWRpZW50KCksIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSk7
CisgICAgUkVMRUFTRV9BU1NFUlQoc3RvcHNDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCk7Cisg
ICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgc3RvcHNDb3VudDsgKytpKSB7CisgICAgICAgIHN0
b3BzW2ldLm9mZnNldCA9IGdyYWRpZW50LnN0b3BzKClbaV0ub2Zmc2V0OworICAgICAgICBzdG9w
c1tpXS5jb2xvciA9IGdyYWRpZW50LnN0b3BzKClbaV0uY29sb3IuYXNJbmxpbmUoKTsKKyAgICB9
CiB9CiAKLWJvb2wgU2V0SW5saW5lRmlsbEdyYWRpZW50Ojppc0lubGluZShjb25zdCBHcmFkaWVu
dCYgZ3JhZGllbnQpCitib29sIFNldElubGluZVN0YXRlOjpJbmxpbmVHcmFkaWVudDo6Y2FuQmVJ
bmxpbmVkKGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKIHsKLSAgICBpZiAoZ3JhZGllbnQuc3Rv
cHMoKS5zaXplKCkgPiBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Om1heENvbG9yU3RvcENvdW50KQor
ICAgIGlmIChncmFkaWVudC5zdG9wcygpLnNpemUoKSA+IG1heENvbG9yU3RvcENvdW50KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGNvbG9yU3RvcCA6IGdyYWRpZW50
LnN0b3BzKCkpIHsKQEAgLTE2OSw0MiArMTYyLDQ1IEBAIGJvb2wgU2V0SW5saW5lRmlsbEdyYWRp
ZW50Ojppc0lubGluZShjb25zdCBHcmFkaWVudCYgZ3JhZGllbnQpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBTZXRJbmxpbmVGaWxsR3JhZGllbnQmKQorUmVmUHRyPEdyYWRpZW50PiBTZXRJbmxpbmVTdGF0
ZTo6SW5saW5lR3JhZGllbnQ6OmdyYWRpZW50KCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogRHVt
cCBncmFkaWVudCBkYXRhLgotICAgIHJldHVybiB0czsKKyAgICBhdXRvIGdyYWRpZW50ID0gR3Jh
ZGllbnQ6OmNyZWF0ZShHcmFkaWVudDo6RGF0YShkYXRhKSk7CisgICAgZm9yICh1aW50OF90IGkg
PSAwOyBpIDwgc3RvcHNDb3VudDsgKytpKQorICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9w
KHsgc3RvcHNbaV0ub2Zmc2V0LCB7IHN0b3BzW2ldLmNvbG9yIH0gfSk7CisgICAgZ3JhZGllbnQt
PnNldFNwcmVhZE1ldGhvZChzcHJlYWRNZXRob2QpOworICAgIHJldHVybiBncmFkaWVudDsKIH0K
IAotdm9pZCBTZXRJbmxpbmVGaWxsQ29sb3I6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkgY29uc3QKK0dyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIFNldElubGluZVN0YXRlOjpzdGF0
ZUNoYW5nZSgpIGNvbnN0CiB7Ci0gICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IoKSk7Ci19
CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Ugc3RhdGVDaGFuZ2UgPSB7IG1faW5saW5l
U3RhdGUsIG1fY2hhbmdlRmxhZ3MgfTsKIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldElubGluZUZpbGxDb2xvciYgc3RhdGUpCi17Ci0gICAg
dHMuZHVtcFByb3BlcnR5KCJjb2xvciIsIHN0YXRlLmNvbG9yKCkpOwotICAgIHJldHVybiB0czsK
LX0KKyAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKQorICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnN0cm9r
ZUdyYWRpZW50ID0gbV9zdHJva2VHcmFkaWVudC5ncmFkaWVudCgpOwogCi12b2lkIFNldElubGlu
ZVN0cm9rZUNvbG9yOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Ci17Ci0g
ICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcigpKTsKLX0KKyAgICBpZiAobV9jaGFuZ2VG
bGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlKSkK
KyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5maWxsR3JhZGllbnQgPSBtX2ZpbGxHcmFkaWVu
dC5ncmFkaWVudCgpOwogCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgY29uc3QgU2V0SW5saW5lU3Ryb2tlQ29sb3ImIHN0YXRlKQotewotICAgIHRzLmR1bXBQ
cm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKLSAgICByZXR1cm4gdHM7CisgICAgaWYg
KG1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9y
Q2hhbmdlKSkKKyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VDb2xvciA9IG1fc3Ry
b2tlQ29sb3I7CisKKyAgICBpZiAobV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkKKyAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5m
aWxsQ29sb3IgPSBtX2ZpbGxDb2xvcjsKKworICAgIGlmIChtX2NoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKQorICAgICAgICBzdGF0ZUNoYW5n
ZS5tX3N0YXRlLnNoYWRvd0NvbG9yID0gbV9zaGFkb3dDb2xvcjsKKyAgICAKKyAgICByZXR1cm4g
c3RhdGVDaGFuZ2U7CiB9CiAKLXZvaWQgU2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit2b2lkIFNldElubGluZVN0YXRlOjphcHBseShHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7Ci0gICAgY29udGV4dC5zZXRTdHJva2VUaGlj
a25lc3MobV90aGlja25lc3MpOworICAgIHN0YXRlQ2hhbmdlKCkuYXBwbHkoY29udGV4dCk7CiB9
CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBT
ZXRTdHJva2VUaGlja25lc3MmIHN0YXRlKQorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldElubGluZVN0YXRlJiBpbmxpbmVTdGF0ZSkKIHsKLSAg
ICB0cy5kdW1wUHJvcGVydHkoInRoaWNrbmVzcyIsIHN0YXRlLnRoaWNrbmVzcygpKTsKKyAgICB0
cyA8PCBpbmxpbmVTdGF0ZS5zdGF0ZUNoYW5nZSgpOwogICAgIHJldHVybiB0czsKIH0KIApAQCAt
MTAyMSw5ICsxMDE3LDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6IHRzIDw8ICJz
Y2FsZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTTogdHMgPDwgInNldC1jdG0i
OyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTTogdHMgPDwgImNvbmNh
dGVudGF0ZS1jdG0iOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQ6IHRzIDw8ICJzZXQtaW5saW5lLWZpbGwtZ3JhZGllbnQiOyBicmVhazsKLSAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLWZpbGwtY29s
b3IiOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjogdHMg
PDwgInNldC1pbmxpbmUtc3Ryb2tlLWNvbG9yIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3RhdGU6IHRzIDw8ICJzZXQtaW5saW5lLXN0YXRlIjsgYnJlYWs7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOiB0cyA8PCAic2V0LXN0cm9rZS10aGlja25l
c3MiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogdHMgPDwgInNldC1zdGF0
ZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHRzIDw8ICJzZXQtbGlu
ZS1jYXAiOyBicmVhazsKQEAgLTExMDQsMTQgKzEwOTgsOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6
Q29uY2F0ZW5hdGVDVE06CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PENvbmNhdGVuYXRlQ1RNPigp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGll
bnQ6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAg
ICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAgICAgICB0cyA8
PCBpdGVtLmdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVTdGF0ZToKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lU3RhdGU+KCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoK
ICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggNDYyODY1NDJhMzlkOThiZWFhMDdhODIwZjE2MDc0
NzQ3ZDAwYzYzYS4uYjE4ZDRlOGNjNGQyNTUxYmY3NzI0NDc1NjZkMjBhNThlMTE5YzZkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0xNjcsODQgKzE2Nyw2OCBAQCBwcml2
YXRlOgogICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKIH07CiAKLWNsYXNzIFNldElu
bGluZUZpbGxHcmFkaWVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlw
ZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4
X3QgbWF4Q29sb3JTdG9wQ291bnQgPSA0OwotCi0gICAgU2V0SW5saW5lRmlsbEdyYWRpZW50KGNv
bnN0IEdyYWRpZW50JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNm
b3JtKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXRJbmxpbmVGaWxsR3JhZGllbnQoZmxvYXQgb2Zm
c2V0c1ttYXhDb2xvclN0b3BDb3VudF0sIFNSR0JBPHVpbnQ4X3Q+IGNvbG9yc1ttYXhDb2xvclN0
b3BDb3VudF0sIGNvbnN0IEdyYWRpZW50OjpEYXRhJiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBn
cmFkaWVudFNwYWNlVHJhbnNmb3JtLCBHcmFkaWVudFNwcmVhZE1ldGhvZCwgdWludDhfdCBjb2xv
clN0b3BDb3VudCk7Ci0KLSAgICBzdGF0aWMgYm9vbCBpc0lubGluZShjb25zdCBHcmFkaWVudCYp
OwotICAgIFJlZjxHcmFkaWVudD4gZ3JhZGllbnQoKSBjb25zdDsKLQotICAgIHZvaWQgYXBwbHko
R3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgZmxvYXQgbV9vZmZzZXRz
W21heENvbG9yU3RvcENvdW50XTsKLSAgICBTUkdCQTx1aW50OF90PiBtX2NvbG9yc1ttYXhDb2xv
clN0b3BDb3VudF07Ci0gICAgR3JhZGllbnQ6OkRhdGEgbV9kYXRhOwotICAgIEFmZmluZVRyYW5z
Zm9ybSBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm07Ci0gICAgR3JhZGllbnRTcHJlYWRNZXRob2Qg
bV9zcHJlYWRNZXRob2QgeyBHcmFkaWVudFNwcmVhZE1ldGhvZDo6UGFkIH07Ci0gICAgdWludDhf
dCBtX2NvbG9yU3RvcENvdW50IHsgMCB9OwotfTsKLQotY2xhc3MgU2V0SW5saW5lRmlsbENvbG9y
IHsKK2NsYXNzIFNldFN0cm9rZVRoaWNrbmVzcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRTdHJv
a2VUaGlja25lc3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRy
dWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKIAot
ICAgIFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEpCi0gICAgICAg
IDogbV9jb2xvckRhdGEoY29sb3JEYXRhKQorICAgIFNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0
aGlja25lc3MpCisgICAgICAgIDogbV90aGlja25lc3ModGhpY2tuZXNzKQogICAgIHsKICAgICB9
CiAKLSAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xvckRhdGEgfTsgfQor
ICAgIGZsb2F0IHRoaWNrbmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fdGhpY2tuZXNzOyB9CisKICAg
ICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFNS
R0JBPHVpbnQ4X3Q+IG1fY29sb3JEYXRhOworICAgIGZsb2F0IG1fdGhpY2tuZXNzIHsgMCB9Owog
fTsKIAotY2xhc3MgU2V0SW5saW5lU3Ryb2tlQ29sb3IgeworY2xhc3MgU2V0SW5saW5lU3RhdGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVt
VHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I7CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlw
ZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZTsKICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
aXNEcmF3aW5nSXRlbSA9IGZhbHNlOwogCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8
dWludDhfdD4gY29sb3JEYXRhKQotICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKLSAg
ICB7Ci0gICAgfQorICAgIHN0cnVjdCBJbmxpbmVHcmFkaWVudCB7CisgICAgICAgIElubGluZUdy
YWRpZW50KCkgPSBkZWZhdWx0OworICAgICAgICBJbmxpbmVHcmFkaWVudChjb25zdCBHcmFkaWVu
dCYpOwogCi0gICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiB7IG1fY29sb3JEYXRhIH07
IH0KKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IG1heENvbG9yU3RvcENvdW50ID0g
NDsKKyAgICAgICAgc3RhdGljIGJvb2wgY2FuQmVJbmxpbmVkKGNvbnN0IEdyYWRpZW50Jik7CiAK
LSAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworICAgICAgICBSZWZQdHI8
R3JhZGllbnQ+IGdyYWRpZW50KCkgY29uc3Q7CiAKLXByaXZhdGU6Ci0gICAgU1JHQkE8dWludDhf
dD4gbV9jb2xvckRhdGE7Ci19OworICAgICAgICBHcmFkaWVudDo6RGF0YSBkYXRhOworICAgICAg
ICBHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QgeyBHcmFkaWVudFNwcmVhZE1ldGhv
ZDo6UGFkIH07CisgICAgICAgIHVpbnQ4X3Qgc3RvcHNDb3VudCB7IDAgfTsKIAotY2xhc3MgU2V0
U3Ryb2tlVGhpY2tuZXNzIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBl
IGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczsKLSAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAg
ZmxvYXQgb2Zmc2V0OworICAgICAgICAgICAgU1JHQkE8dWludDhfdD4gY29sb3I7CisgICAgICAg
IH0gc3RvcHNbbWF4Q29sb3JTdG9wQ291bnRdOworICAgIH07CiAKLSAgICBTZXRTdHJva2VUaGlj
a25lc3MoZmxvYXQgdGhpY2tuZXNzKQotICAgICAgICA6IG1fdGhpY2tuZXNzKHRoaWNrbmVzcykK
LSAgICB7Ci0gICAgfQorICAgIFdFQkNPUkVfRVhQT1JUIFNldElubGluZVN0YXRlKGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxh
Z3MpOwogCi0gICAgZmxvYXQgdGhpY2tuZXNzKCkgY29uc3QgeyByZXR1cm4gbV90aGlja25lc3M7
IH0KKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0ZUNoYW5nZSgpIGNvbnN0Owor
ICAgIENvbG9yIHN0cm9rZUNvbG9yKCkgY29uc3QgeyByZXR1cm4geyBtX3N0cm9rZUNvbG9yIH07
IH0KKyAgICBDb2xvciBmaWxsQ29sb3IoKSBjb25zdCB7IHJldHVybiB7IG1fZmlsbENvbG9yIH07
IH0KKyAgICBDb2xvciBzaGFkb3dDb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9zaGFkb3dDb2xv
ciB9OyB9CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIGZsb2F0IG1fdGhpY2tuZXNzIHsgMCB9OworICAgIEdyYXBoaWNzQ29udGV4dElu
bGluZVN0YXRlIG1faW5saW5lU3RhdGU7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRl
Q2hhbmdlRmxhZ3MgbV9jaGFuZ2VGbGFnczsKKworICAgIElubGluZUdyYWRpZW50IG1fc3Ryb2tl
R3JhZGllbnQ7CisgICAgSW5saW5lR3JhZGllbnQgbV9maWxsR3JhZGllbnQ7CisgICAgU1JHQkE8
dWludDhfdD4gbV9zdHJva2VDb2xvcjsKKyAgICBTUkdCQTx1aW50OF90PiBtX2ZpbGxDb2xvcjsK
KyAgICBTUkdCQTx1aW50OF90PiBtX3NoYWRvd0NvbG9yOwogfTsKIAogY2xhc3MgU2V0U3RhdGUg
ewpAQCAtMjMzMCw5ICsyMzE0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNjYWxlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
Q1RNLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE0s
Ci0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGll
bnQsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29s
b3IsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VD
b2xvciwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0YXRl
LAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNz
LAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3RhdGUsCiAgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGU3ZjllMjhjMzUwMjE5ZTgxM2Q4ODM0MGZm
NGY1NGRlMjJmYzEwYzMuLjhiNTU4MjVhODNjYzJiMWZmZDU4MGZhMmUzNGE4NmZkODljYTk4ZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTYwLDI2ICs2
MCwyNyBAQCB2b2lkIFJlY29yZGVyOjpwdXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0
aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgVwogICAgIGFwcGVuZDxQdXRJbWFnZURhdGE+
KGlucHV0Rm9ybWF0LCBpbWFnZURhdGEsIHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7
CiB9CiAKLXN0YXRpYyBib29sIGNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgY2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCitzdGF0aWMgYm9vbCBjb250YWluc09ubHlJ
bmxpbmVTdGF0ZUNoYW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykKIHsKLSAgICBz
dGF0aWMgY29uc3RleHByIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGlu
bGluZVN0YXRlQ2hhbmdlRmxhZ3MgewotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ry
b2tlVGhpY2tuZXNzQ2hhbmdlLAotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tl
Q29sb3JDaGFuZ2UsCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFu
Z2UsCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UsCi0g
ICAgfTsKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0cm9rZVBhdHRlcm5DaGFuZ2UpICYmIHN0YXRlLnN0cm9rZVBhdHRlcm4pCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6RmlsbFBhdHRlcm5DaGFuZ2UpICYmIHN0YXRlLmZpbGxQYXR0ZXJuKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlN0cm9rZUdyYWRpZW50Q2hhbmdlKSAmJiBzdGF0ZS5zdHJva2VHcmFkaWVu
dCAmJiAhU2V0SW5saW5lU3RhdGU6OklubGluZUdyYWRpZW50OjpjYW5CZUlubGluZWQoKnN0YXRl
LnN0cm9rZUdyYWRpZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNoYW5n
ZUZsYWdzICE9IChjaGFuZ2VGbGFncyAmIGlubGluZVN0YXRlQ2hhbmdlRmxhZ3MpKQorICAgIGlm
IChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50
Q2hhbmdlKSAmJiBzdGF0ZS5maWxsR3JhZGllbnQgJiYgIVNldElubGluZVN0YXRlOjpJbmxpbmVH
cmFkaWVudDo6Y2FuQmVJbmxpbmVkKCpzdGF0ZS5maWxsR3JhZGllbnQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0
U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLnN0cm9rZUNvbG9y
LmlzSW5saW5lKCkpCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSkgJiYgIXN0YXRlLnN0cm9rZUNvbG9yLmlzSW5saW5l
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0
YXRlLmZpbGxDb2xvci5pc0lubGluZSgpKQorICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAmJiAhc3RhdGUuZmlsbENvbG9y
LmlzSW5saW5lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChjaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlKQotICAg
ICAgICAmJiAoIWNoYW5nZXMubV9zdGF0ZS5maWxsR3JhZGllbnQgfHwgIVNldElubGluZUZpbGxH
cmFkaWVudDo6aXNJbmxpbmUoKmNoYW5nZXMubV9zdGF0ZS5maWxsR3JhZGllbnQpKSkKKyAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd0NoYW5n
ZSkgJiYgIXN0YXRlLnNoYWRvd0NvbG9yLmlzSW5saW5lKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtOTIsMjggKzkzLDIwIEBAIHZvaWQgUmVjb3JkZXI6
OmNhY2hlTmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIGltYWdlKQogICAgIG1fZGlzcGxheUxpc3Qu
Y2FjaGVOYXRpdmVJbWFnZShpbWFnZSk7CiB9CiAKLXZvaWQgUmVjb3JkZXI6OmFwcGVuZFN0YXRl
Q2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgY2hhbmdlcywgR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCit2b2lkIFJl
Y29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUm
IHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFn
cykKIHsKLSAgICBpZiAoIWNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjaGFuZ2VzLCBj
aGFuZ2VGbGFncykpIHsKLSAgICAgICAgaWYgKGF1dG8gcGF0dGVybiA9IGNoYW5nZXMubV9zdGF0
ZS5zdHJva2VQYXR0ZXJuKQotICAgICAgICAgICAgY2FjaGVOYXRpdmVJbWFnZShwYXR0ZXJuLT50
aWxlSW1hZ2UoKSk7Ci0gICAgICAgIGlmIChhdXRvIHBhdHRlcm4gPSBjaGFuZ2VzLm1fc3RhdGUu
ZmlsbFBhdHRlcm4pCi0gICAgICAgICAgICBjYWNoZU5hdGl2ZUltYWdlKHBhdHRlcm4tPnRpbGVJ
bWFnZSgpKTsKLSAgICAgICAgYXBwZW5kPFNldFN0YXRlPihjaGFuZ2VzLm1fc3RhdGUsIGNoYW5n
ZUZsYWdzKTsKKyAgICBpZiAoY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKHN0YXRlLCBj
aGFuZ2VGbGFncykpIHsKKyAgICAgICAgYXBwZW5kPFNldElubGluZVN0YXRlPihzdGF0ZSwgY2hh
bmdlRmxhZ3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIAorICAgIGlmIChhdXRvIHBh
dHRlcm4gPSBzdGF0ZS5zdHJva2VQYXR0ZXJuKQorICAgICAgICBjYWNoZU5hdGl2ZUltYWdlKHBh
dHRlcm4tPnRpbGVJbWFnZSgpKTsKIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0
SW5saW5lU3Ryb2tlQ29sb3I+KGNoYW5nZXMubV9zdGF0ZS5zdHJva2VDb2xvci5hc0lubGluZSgp
KTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3Ryb2tlVGhpY2tuZXNzQ2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldFN0cm9rZVRoaWNrbmVz
cz4oY2hhbmdlcy5tX3N0YXRlLnN0cm9rZVRoaWNrbmVzcyk7Ci0KLSAgICBpZiAoY2hhbmdlRmxh
Z3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSkpCi0gICAg
ICAgIGFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KGNoYW5nZXMubV9zdGF0ZS5maWxsQ29sb3Iu
YXNJbmxpbmUoKSk7CisgICAgaWYgKGF1dG8gcGF0dGVybiA9IHN0YXRlLmZpbGxQYXR0ZXJuKQor
ICAgICAgICBjYWNoZU5hdGl2ZUltYWdlKHBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKIAotICAgIGlm
IChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50
Q2hhbmdlKSkKLSAgICAgICAgYXBwZW5kPFNldElubGluZUZpbGxHcmFkaWVudD4oKmNoYW5nZXMu
bV9zdGF0ZS5maWxsR3JhZGllbnQsIGNoYW5nZXMubV9zdGF0ZS5maWxsR3JhZGllbnRTcGFjZVRy
YW5zZm9ybSk7CisgICAgYXBwZW5kPFNldFN0YXRlPihzdGF0ZSwgY2hhbmdlRmxhZ3MpOwogfQog
CiB2b2lkIFJlY29yZGVyOjp3aWxsQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBlKQpAQCAt
MTMwLDcgKzEyMyw3IEBAIHZvaWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1U
eXBlIHR5cGUpCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdz
IGNoYW5nZXNGcm9tTGFzdFN0YXRlID0gc3RhdGVDaGFuZ2VzLmNoYW5nZXNGcm9tU3RhdGUoY3Vy
cmVudFN0YXRlKCkubGFzdERyYXdpbmdTdGF0ZSk7CiAgICAgICAgIGlmIChjaGFuZ2VzRnJvbUxh
c3RTdGF0ZSkgewogICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3Ry
ZWFtIDw8ICJwcmUtZHJhd2luZywgc2F2aW5nIHN0YXRlICIgPDwgR3JhcGhpY3NDb250ZXh0U3Rh
dGVDaGFuZ2Uoc3RhdGVDaGFuZ2VzLm1fc3RhdGUsIGNoYW5nZXNGcm9tTGFzdFN0YXRlKSk7Ci0g
ICAgICAgICAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oc3RhdGVDaGFuZ2VzLCBjaGFuZ2VzRnJv
bUxhc3RTdGF0ZSk7CisgICAgICAgICAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oc3RhdGVDaGFu
Z2VzLm1fc3RhdGUsIGNoYW5nZXNGcm9tTGFzdFN0YXRlKTsKICAgICAgICAgICAgIHN0YXRlQ2hh
bmdlcy5tX2NoYW5nZUZsYWdzID0geyB9OwogICAgICAgICAgICAgY3VycmVudFN0YXRlKCkubGFz
dERyYXdpbmdTdGF0ZSA9IHN0YXRlQ2hhbmdlcy5tX3N0YXRlOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA5ZmU0NzAzYjllMWMyNGZhNDc4Nzk3
ODM1MTU5YmU0MTExMGU4YWQ3Li40MDY2YzY2NjA4ZGNlM2YyZGRiMmIxZWNmNzMwOGViMzc0YTkz
ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTE3Myw3ICsx
NzMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUltYWdl
Jik7CiAKLSAgICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZUNoYW5nZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsK
KyAgICB2b2lkIGFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKIAogICAgIEZsb2F0
UmVjdCBleHRlbnRGcm9tTG9jYWxCb3VuZHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggMmM3NjI1MTg2YWVlMTVkNzcyYjc2NGJkZDU1
OWYwYTFjMjcwYmQ0MS4uOWM3NjIxNzVkZGFkNmIwMDVhYmU4MGFmYWNmODMyOTk2NjQ5NWVlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNDYxLDkgKzQ2MSw3IEBAIE9wdGlvbmFsPERp
c3BsYXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6ZGVjCiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6CiAgICAg
Y2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElu
bGluZUZpbGxDb2xvcjoKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5l
RmlsbEdyYWRpZW50OgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVT
dHJva2VDb2xvcjoKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Rh
dGU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgY2Fz
ZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgogICAgIGNhc2UgRGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApp
bmRleCAwY2EyYmIyMDNlNGM3NDI3YjU0NGU2ZTNhNzQzZDZjMTgwNTM5MmIwLi5iOTY5OTJhZGMz
MzI0MjBhMDNmZDg4ODY5ZTNhZDg2ZjIzMzhkNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaApAQCAtMzQ2LDkgKzM0Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgY2FzZSBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlNldENUTToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgor
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Rh
dGU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5l
Q2FwOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGlu
ZUpvaW46CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRN
aXRlckxpbWl0OgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDEyYTQxMzEwMGNmZGM3YjE2ZWRiNjQ1NjZiM2M5ZGM2ZDFkYjI4MzQuLjU0Njg2MDQ0
MjE2MmI4NWY2M2U0YTU2MDBiNTgwYjFlYjljMGU1NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wMi0xNSAg
U2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nl
c3NdIEltcGxlbWVudCBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRl
c3RzQ0cuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIFJlcGxh
Y2UgdGhlIGlubGluZSBTZXRTdGF0ZSBEaXNwbGF5TGlzdCBpdGVtcyB3aXRoIHRoZSBjb3JyZXNw
b25kaW5nIAorICAgICAgICBTZXRTdGF0ZSBpdGVtLgorCiAyMDIxLTAyLTE1ICBBZGFtIFJvYmVu
ICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYGdpdCBjb21taXQgLXZgIHN1cHBv
cnQgdG8gY29tbWl0LWxvZy1lZGl0b3IKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAppbmRleCBlODcxN2M3OTE0MGJkZWE0
YjVmNTM1NWYwMTY5MDg5ZTYwMDg2NzMzLi43YzgxMmJlZjE1MGFhYzk1YWU5MGMwYWRmZDA5Zjc4
ZDZmNmY1ODdmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBAIC02NSwxMSArNjUsMTQgQEAgVEVTVChEaXNwbGF5
TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKICAgICBhdXRvIGdyYWRpZW50ID0gY3JlYXRlR3JhZGll
bnQoKTsKICAgICBhdXRvIHBhdGggPSBjcmVhdGVDb21wbGV4UGF0aCgpOwogCisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGUgc3RhdGU7CisgICAgc3RhdGUuZmlsbENvbG9yID0gQ29sb3I6OnJlZDsK
KwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTA7ICsraSkgewogICAgICAgICBsaXN0LmFwcGVu
ZDxTZXRTdHJva2VUaGlja25lc3M+KDEuNSk7CiAgICAgICAgIGxpc3QuYXBwZW5kPEZpbGxQYXRo
PihwYXRoKTsKICAgICAgICAgbGlzdC5hcHBlbmQ8RmlsbFJlY3RXaXRoR3JhZGllbnQ+KEZsb2F0
UmVjdCB7IDEuLCAxLiwgMTAuLCAxMC4gfSwgZ3JhZGllbnQpOwotICAgICAgICBsaXN0LmFwcGVu
ZDxTZXRJbmxpbmVGaWxsQ29sb3I+KENvbG9yOjpyZWQpOworICAgICAgICBsaXN0LmFwcGVuZDxT
ZXRJbmxpbmVTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFu
Z2UpOwogI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQogICAgICAgICBsaXN0LmFwcGVuZDxT
dHJva2VJbmxpbmVQYXRoPihJbmxpbmVQYXRoRGF0YSB7IExpbmVEYXRhIHt7IDAuLCAwLiB9LCB7
IDEwLiwgMTUuIH19fSk7CiAjZW5kaWYKQEAgLTEwMiwxMSArMTA1LDExIEBAIFRFU1QoRGlzcGxh
eUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAgICAgICAgICAgICBFWFBFQ1RfRVEoJml0ZW0uZ3Jh
ZGllbnQoKSwgZ3JhZGllbnQucHRyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7CisgICAgICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZVN0YXRlOiB7CiAgICAgICAgICAgICBFWFBFQ1RfRkFMU0Uo
aGFuZGxlLT5pc0RyYXdpbmdJdGVtKCkpOwotICAgICAgICAgICAgRVhQRUNUX1RSVUUoaGFuZGxl
LT5pczxTZXRJbmxpbmVGaWxsQ29sb3I+KCkpOwotICAgICAgICAgICAgYXV0byYgaXRlbSA9IGhh
bmRsZS0+Z2V0PFNldElubGluZUZpbGxDb2xvcj4oKTsKLSAgICAgICAgICAgIEVYUEVDVF9FUShp
dGVtLmNvbG9yKCksIENvbG9yOjpyZWQpOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoaGFuZGxl
LT5pczxTZXRJbmxpbmVTdGF0ZT4oKSk7CisgICAgICAgICAgICBhdXRvJiBpdGVtID0gaGFuZGxl
LT5nZXQ8U2V0SW5saW5lU3RhdGU+KCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoaXRlbS5maWxs
Q29sb3IoKSwgQ29sb3I6OnJlZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogI2lm
IEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQpAQCAtMjExLDEzICsyMTQsMTcgQEAgVEVTVChEaXNw
bGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogICAgIH07CiAKICAgICBEaXNwbGF5TGlz
dCBsaXN0OworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOworCiAgICAgU3Ryb2tlUGF0
aFdyaXRlciB3cml0ZXIgeyBzdHJva2VQYXRoSXRlbXMgfTsKICAgICBsaXN0LnNldEl0ZW1CdWZm
ZXJDbGllbnQoJndyaXRlcik7CiAKICAgICBhdXRvIHBhdGggPSBjcmVhdGVDb21wbGV4UGF0aCgp
OwotICAgIGxpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6Ymx1ZSk7Cisg
ICAgc3RhdGUuc3Ryb2tlQ29sb3IgPSBDb2xvcjo6Ymx1ZTsKKyAgICBsaXN0LmFwcGVuZDxTZXRJ
bmxpbmVTdGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5n
ZSk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ryb2tlUGF0aD4ocGF0aCk7Ci0gICAgbGlzdC5hcHBlbmQ8
U2V0SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9yOjpyZWQpOworICAgIHN0YXRlLnN0cm9rZUNvbG9y
ID0gQ29sb3I6OnJlZDsKKyAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVTdGF0ZT4oc3RhdGUsIEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSk7CiAgICAgbGlzdC5hcHBlbmQ8
U3Ryb2tlUGF0aD4ocGF0aCk7CiAKICAgICBEaXNwbGF5TGlzdCBzaGFsbG93Q29weSB7eyBJdGVt
QnVmZmVySGFuZGxlIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwg
bGlzdC5zaXplSW5CeXRlcygpIH0gfX07CkBAIC0yMzAsOSArMjM3LDkgQEAgVEVTVChEaXNwbGF5
TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogCiAgICAgRVhQRUNUX0ZBTFNFKHNoYWxsb3dD
b3B5LmlzRW1wdHkoKSk7CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlcy5zaXplKCksIDRVKTsKLSAg
ICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzBdLCBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3Ip
OworICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMF0sIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdGF0ZSk7
CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1sxXSwgSXRlbVR5cGU6OlN0cm9rZVBhdGgpOwotICAg
IEVYUEVDVF9FUShpdGVtVHlwZXNbMl0sIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcik7
CisgICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1syXSwgSXRlbVR5cGU6OlNldElubGluZVN0YXRlKTsK
ICAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzNdLCBJdGVtVHlwZTo6U3Ryb2tlUGF0aCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5
TGlzdFRlc3RzQ0cuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rp
c3BsYXlMaXN0VGVzdHNDRy5jcHAKaW5kZXggMGZlYzVmNzY1YTQyYzkyNDdhNDJhNzY5MDFmMDU2
MTczMmNkYjliOC4uOWQwNTJjMjI1MmJlOTEzMjdlNTJmNjhiNzI2MTZjZTZiMzBlY2ZkNyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0
VGVzdHNDRy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rp
c3BsYXlMaXN0VGVzdHNDRy5jcHAKQEAgLTUzLDExICs1MywxNCBAQCBURVNUKERpc3BsYXlMaXN0
VGVzdHMsIFJlcGxheVdpdGhNaXNzaW5nUmVzb3VyY2UpCiAgICAgYXV0byBpbWFnZUJ1ZmZlcklk
ZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAKICAg
ICBEaXNwbGF5TGlzdCBsaXN0OworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOwogCi0g
ICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihDb2xvcjo6Z3JlZW4pOworICAgIHN0
YXRlLmZpbGxDb2xvciA9IENvbG9yOjpncmVlbjsKKyAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVT
dGF0ZT4oc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpOwogICAg
IGxpc3QuYXBwZW5kPEZpbGxSZWN0Pihjb250ZXh0Qm91bmRzKTsKICAgICBsaXN0LmFwcGVuZDxE
cmF3SW1hZ2VCdWZmZXI+KGltYWdlQnVmZmVySWRlbnRpZmllciwgY29udGV4dEJvdW5kcywgY29u
dGV4dEJvdW5kcywgSW1hZ2VQYWludGluZ09wdGlvbnMgeyB9KTsKLSAgICBsaXN0LmFwcGVuZDxT
ZXRJbmxpbmVTdHJva2VDb2xvcj4oQ29sb3I6OnJlZCk7CisgICAgc3RhdGUuc3Ryb2tlQ29sb3Ig
PSBDb2xvcjo6cmVkOworICAgIGxpc3QuYXBwZW5kPFNldElubGluZVN0YXRlPihzdGF0ZSwgR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKTsKICAgICBsaXN0LmFwcGVuZDxT
dHJva2VMaW5lPihGbG9hdFBvaW50IHsgMCwgY29udGV4dEhlaWdodCB9LCBGbG9hdFBvaW50IHsg
Y29udGV4dFdpZHRoLCAwIH0pOwogCiAgICAgewpAQCAtMTEzLDYgKzExNiw4IEBAIFRFU1QoRGlz
cGxheUxpc3RUZXN0cywgT3V0T2ZMaW5lSXRlbURlY29kaW5nRmFpbHVyZSkKICAgICBHcmFwaGlj
c0NvbnRleHQgY29udGV4dCB7IGNnQ29udGV4dC5nZXQoKSB9OwogCiAgICAgRGlzcGxheUxpc3Qg
b3JpZ2luYWxMaXN0OworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOworCiAgICAgV3Jp
dGluZ0NsaWVudCB3cml0ZXI7CiAgICAgb3JpZ2luYWxMaXN0LnNldEl0ZW1CdWZmZXJDbGllbnQo
JndyaXRlcik7CiAKQEAgLTEyMCw3ICsxMjUsOCBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIE91
dE9mTGluZUl0ZW1EZWNvZGluZ0ZhaWx1cmUpCiAgICAgcGF0aC5tb3ZlVG8oeyAxMC4sIDEwLiB9
KTsKICAgICBwYXRoLmFkZExpbmVUbyh7IDUwLiwgNTAuIH0pOwogICAgIHBhdGguYWRkTGluZVRv
KHsgMTAuLCAxMC4gfSk7Ci0gICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VD
b2xvcj4oQ29sb3I6OmJsdWUpOworICAgIHN0YXRlLmZpbGxDb2xvciA9IENvbG9yOjpibHVlOwor
ICAgIG9yaWdpbmFsTGlzdC5hcHBlbmQ8U2V0SW5saW5lU3RhdGU+KHN0YXRlLCBHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpOwogICAgIG9yaWdpbmFsTGlzdC5hcHBlbmQ8
RmlsbFBhdGg+KFdURk1vdmUocGF0aCkpOwogCiAgICAgRGlzcGxheUxpc3Qgc2hhbGxvd0NvcHkg
e3sgSXRlbUJ1ZmZlckhhbmRsZSB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1C
dWZmZXIsIG9yaWdpbmFsTGlzdC5zaXplSW5CeXRlcygpIH0gfX07CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTM2Y2IzZDk0
NjU1YzExNjEzNjAwZjc5MWJiMTJmNjkyZGVmNzczMy4uNGM5ZjA0YjE5Y2NiNzAwZjlkM2I0OGE0
Zjg1YzJjOWJkNmNmY2MyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IFNldFN0YXRlIERpc3BsYXlMaXN0IGl0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5
LWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVk
ZXMtc2hhZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkaXNwbGF5bGlzdHMvZXh0ZW50LWlu
Y2x1ZGVzLXRyYW5zZm9ybXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9s
YXllci1kaXNwYXktbGlzdC1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTUgIENocmlzIEdhbWJy
ZWxsICA8Y2dhbWJyZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGF5b3V0VGVzdHNdIENvbnZl
cnQgaHR0cC90ZXN0cy9zdmcgY29udmVydCBQSFAgdG8gUHl0aG9uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQK
aW5kZXggMTQ1MWIxOTI1M2MzMjM4OTI4YmJkOWY1ZTVkZWJiOTI3NGM1MGQ1Ny4uZmNjNDRlYmJk
YzFlMjNhMDExZjFhOTg2YWVlNDhmZjNmYTVlYzdkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dApAQCAt
MSwxMyArMSwxNCBAQAogCiAoc2F2ZSkKLShzZXQtc3RhdGUKKyhzZXQtaW5saW5lLXN0YXRlCiAg
IChjaGFuZ2UtZmxhZ3MgNTI1NDU2KQogICAoc3Ryb2tlLXRoaWNrbmVzcyAxLjAwKQogICAoZmls
bC1jb2xvciAjQzgwMDAwKQogICAoc2hhZG93cy1pZ25vcmUtdHJhbnNmb3JtcyAxKSkKIChmaWxs
LXJlY3QKICAgKHJlY3QgYXQgKDEwLDEwKSBzaXplIDU1eDUwKSBleHRlbnQgYXQgKDEwLDE0MCkg
c2l6ZSA1NXg1MCkKLShzZXQtaW5saW5lLWZpbGwtY29sb3IKLSAgKGNvbG9yICMwMDAwQzg4MCkp
Cisoc2V0LWlubGluZS1zdGF0ZQorICAoY2hhbmdlLWZsYWdzIDEyOCkKKyAgKGZpbGwtY29sb3Ig
IzAwMDBDODgwKSkKIChmaWxsLXJlY3QKICAgKHJlY3QgYXQgKDMwLDMwKSBzaXplIDU1eDUwKSBl
eHRlbnQgYXQgKDMwLDEyMCkgc2l6ZSA1NXg1MCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rp
c3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtc2hhZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Rpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtc2hhZG93LWV4cGVjdGVkLnR4dAppbmRl
eCA1OTBiOTNmNWM4OTJjYWUzN2Y0MjQ2MDlhOGZlNDgwMzNlNjY4MzY4Li4xNTc1ZWE2ZWM5YmE2
NWJmMDZjYzAzMzk2ZDJkNjI3MGEzZDFmNjUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9kaXNw
bGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy1zaGFkb3ctZXhwZWN0ZWQudHh0CkBA
IC0zLDcgKzMsNyBAQAogICAoeCAwLjAwKQogICAoeSAwLjAwKSkKIChzYXZlKQotKHNldC1zdGF0
ZQorKHNldC1pbmxpbmUtc3RhdGUKICAgKGNoYW5nZS1mbGFncyA1MTIpCiAgIChzaGFkb3ctYmx1
ciAxMi4wMCkKICAgKHNoYWRvdy1vZmZzZXQgd2lkdGg9MTAgaGVpZ2h0PTIwKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJh
bnNmb3Jtcy1leHBlY3RlZC50eHQKaW5kZXggMjhjY2Y0YzAxODU5ZGUxOTBiMGE5YTI3ZmEyZmVj
MDA2M2VkOGUxYy4uYmYwY2MzNDJmYTZhNWFhYWI4NGJhODliYWYzYWYzMTc3NjM0MjQ4OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zv
cm1zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvZXh0ZW50LWlu
Y2x1ZGVzLXRyYW5zZm9ybXMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQAogKGNvbmNhdGVu
dGF0ZS1jdG0KICAgKGN0bSB7bT0oKDAuODcsMC41MCkoLTAuNTAsMC44NykpIHQ9KDgxLjcwLC0x
OC4zMCl9KSkKIChzYXZlKQotKHNldC1zdGF0ZQorKHNldC1pbmxpbmUtc3RhdGUKICAgKGNoYW5n
ZS1mbGFncyA1MTIpCiAgIChzaGFkb3ctYmx1ciAxMi4wMCkKICAgKHNoYWRvdy1vZmZzZXQgd2lk
dGg9MTAgaGVpZ2h0PTIwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2xh
eWVyLWRpc3BheS1saXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9s
YXllci1kaXNwYXktbGlzdC1leHBlY3RlZC50eHQKaW5kZXggYmMxN2I1MTE0OTlmODI1NmM5OTI5
MGRhZTg2MTRkNDg5NGNhZjljYy4uYmIzZTdjZmE1NWRlYmY2MDYxYmYwMDVkZTg1YTVjMDc2ZWUz
OWE1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1s
aXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvbGF5ZXItZGlz
cGF5LWxpc3QtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsNyBAQAogICAoY29sb3IgIzAwODAwMCkK
ICAgKGNvbXBvc2l0ZS1vcGVyYXRpb24gc291cmNlLW92ZXIpCiAgIChibGVuZC1tb2RlIG5vcm1h
bCkgZXh0ZW50IGF0ICgwLDApIHNpemUgMTA0eDEwNCkKLShzZXQtc3RhdGUKKyhzZXQtaW5saW5l
LXN0YXRlCiAgIChjaGFuZ2UtZmxhZ3MgMzI5NjApCiAgIChmaWxsLWNvbG9yICMwMDAwRkYpCiAg
IChzdHJva2Utc3R5bGUgMCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420601</attachid>
            <date>2021-02-16 22:53:45 -0800</date>
            <delta_ts>2021-02-17 01:45:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219468-20210216225344.patch</filename>
            <type>text/plain</type>
            <size>98255</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwNWExMGQ5N2Q5MTVk
YmM4ODkwZDdhNjE0YTNkMWUwMjE4NzYwOS4uMWIxZTA0MWY5NTNiMDU1Mjc4ZTRkMDE5ZDRlNmQ4
NmYwMjkxM2M5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIxLTAyLTE2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
UmVjb3JkIGNoYW5nZXMgaW4gR3JhcGhpY3NDb250ZXh0U3RhdGUgYXMgaW5kaXZpZHVhbCBEaXNw
bGF5TGlzdCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Ojpz
aG91bGREdW1wRm9yRmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0OjphcHBlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1IYW5kbGU6OmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtSGFuZGxlOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
SGFuZGxlOjpzYWZlQ29weSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lu
bGluZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Om9wZXJhdG9yPDwpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZp
bGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmdyYWRpZW50IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxs
R3JhZGllbnQ6OmFwcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzSW5saW5lKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6OmFwcGx5IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJv
a2VDb2xvcjo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlNldFN0cm9rZVRoaWNrbmVzczo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpTZXRTdGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OmFwcGx5KTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmFwcGxpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjpTZXRJbmxpbmVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3RhdGU6OmFwcGx5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6YXJndW1l
bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFNoYWRvd3NJZ25v
cmVUcmFuc2Zvcm1zOjpzaGFkb3dzSWdub3JlVHJhbnNmb3JtcyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0TGVnYWN5U2hhZG93OjpvZmZzZXQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldExlZ2FjeVNoYWRvdzo6Ymx1ciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0TGVnYWN5U2hhZG93Ojpjb2xvciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U2hhZG93OjpvZmZzZXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFNoYWRvdzo6Ymx1ciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U2hhZG93Ojpjb2xvciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3Ryb2tlVGhpY2tuZXNz
Ojp0aGlja25lc3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFRl
eHREcmF3aW5nTW9kZTo6dGV4dERyYXdpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRTdHJva2VDb2xvcjo6Y29sb3IgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlNldEZpbGxDb2xvcjo6Y29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0cm9rZVN0eWxlOjpzdHlsZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0RmlsbFJ1bGU6OmZpbGxSdWxlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRBbHBoYTo6YWxwaGEgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldENvbXBvc2l0ZU9wZXJhdGlvbjo6Y29t
cG9zaXRlT3BlcmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNl
dENvbXBvc2l0ZU9wZXJhdGlvbjo6YmxlbmRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRTaG91bGRBbnRpYWxpYXM6OnNob3VsZEFudGlhbGlhcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U2hvdWxkU21vb3RoRm9udHM6OnNo
b3VsZFNtb290aEZvbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpT
ZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM6OnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0RHJhd0x1bWluYW5j
ZU1hc2s6OmRyYXdMdW1pbmFuY2VNYXNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5OjppbWFnZUludGVycG9sYXRpb25R
dWFsaXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRVc2VEYXJr
QXBwZWFyYW5jZTo6dXNlRGFya0FwcGVhcmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6U2V0SW5saW5lRmlsbENvbG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3I6
OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpT
ZXRJbmxpbmVTdHJva2VDb2xvcjo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yOjpjb2xvciBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3Ryb2tl
VGhpY2tuZXNzOjpTZXRTdHJva2VUaGlja25lc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpzdGF0ZUNoYW5nZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0cm9rZVBhdHRlcm5QYXJh
bWV0ZXJzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpT
ZXRTdGF0ZTo6ZmlsbFBhdHRlcm5QYXJhbWV0ZXJzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6c3Ryb2tlUGF0dGVybkltYWdlSWRlbnRp
ZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0
U3RhdGU6OmZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZW5jb2RlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Y29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OmFwcGx5SXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YXBwbHlTZXRTdGF0ZUl0ZW0pOiBEZWxldGVkLgorCiAy
MDIxLTAyLTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gQ29ubmVjdCBUb3VjaCBCYXIgdG8gTWVkaWFTZXNzaW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDhmMzVkMTcyZjI2ZTlkZWQxZTYwYjM1ZmRhY2FiZjQzZjZlOWUzYjEuLjcxOWI0YWVjOWExMTVi
OGM5YjIwOTY1NGRlNWI0YjZkOTgzNDIxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDItMTYgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVSBQcm9jZXNzXSBSZWNvcmQgY2hhbmdlcyBpbiBHcmFwaGljc0NvbnRleHRTdGF0ZSBhcyBp
bmRpdmlkdWFsIERpc3BsYXlMaXN0IGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRl
Y29kZUl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaDoKKwogMjAyMS0wMi0xNSAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcyODY3LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcAppbmRl
eCBkYzU0YTk5ODVlNGQ0MjA2N2RhNmMyMzgxODM1ZmJkMzczNjg3NjFiLi5iYTVkOGQ0OTE4ODAy
OWFkYzAwMGRlMjRhMTlhOTUwNzJmMDQzYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcApAQCAtMTk1LDQgKzE5NSwyNiBAQCBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBBbHBoYVByZW11bHRpcGxpY2F0
aW9uIHByZW11bHRpcGxpY2F0aW9uKQogICAgIHJldHVybiB0czsKIH0KIAorVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xh
dGlvblF1YWxpdHkpCit7CisgICAgc3dpdGNoIChpbnRlcnBvbGF0aW9uUXVhbGl0eSkgeworICAg
IGNhc2UgSW50ZXJwb2xhdGlvblF1YWxpdHk6OkRlZmF1bHQ6CisgICAgICAgIHRzIDw8ICJEZWZh
dWx0IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6RG9O
b3RJbnRlcnBvbGF0ZToKKyAgICAgICAgdHMgPDwgIkRvTm90SW50ZXJwb2xhdGUiOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpMb3c6CisgICAgICAgIHRz
IDw8ICJMb3ciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5
OjpNZWRpdW06CisgICAgICAgIHRzIDw8ICJNZWRpdW0iOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpIaWdoOgorICAgICAgICB0cyA8PCAiSGlnaCI7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMuaAppbmRleCA0NmVmMDQ2ZGVlYjAyYmExMGQzNzY1Y2RkMGY1YzZlYjc4ZWY1ZWExLi5j
MDY2MDBiOWIyMjQwMTAwOTNiZWRjZGM3NmIwYWMyYjFlZmQ4NjY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oCkBAIC0xMzIsNiArMTMy
LDcgQEAgV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIFdlYkNvcmU6OkNvbXBvc2l0ZU8KIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXaW5kUnVsZSk7CiBXRUJDT1JFX0VY
UE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTGluZUNh
cCk7CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgTGluZUpvaW4pOworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEludGVycG9sYXRpb25RdWFsaXR5KTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBlMDc5Zjcz
MGJlODU5YWMzYjA1Yjk0MjljMzBlODM2MWQxNDNhZWI0Li4zZjg2MDI5Mzk3OTBiZmY3MTE1N2E3
ZDdlMTBhODI2NGM4YmE0MzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTg3LDI4
ICs4NywxNSBAQCB2b2lkIERpc3BsYXlMaXN0OjpjbGVhcigpCiBib29sIERpc3BsYXlMaXN0Ojpz
aG91bGREdW1wRm9yRmxhZ3MoQXNUZXh0RmxhZ3MgZmxhZ3MsIEl0ZW1IYW5kbGUgaXRlbSkKIHsK
ICAgICBzd2l0Y2ggKGl0ZW0udHlwZSgpKSB7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6
Ci0gICAgICAgIGlmICghKGZsYWdzICYgQXNUZXh0RmxhZzo6SW5jbHVkZXNQbGF0Zm9ybU9wZXJh
dGlvbnMpKSB7Ci0gICAgICAgICAgICBjb25zdCBhdXRvJiBzdGF0ZUl0ZW0gPSBpdGVtLmdldDxT
ZXRTdGF0ZT4oKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBmb3Igbm93LCBvbmx5IGRyb3AgdGhl
IGl0ZW0gaWYgdGhlIG9ubHkgc3RhdGUtY2hhbmdlIGZsYWdzIGFyZSBwbGF0Zm9ybS1zcGVjaWZp
Yy4KLSAgICAgICAgICAgIGlmIChzdGF0ZUl0ZW0uc3RhdGVDaGFuZ2UoKS5tX2NoYW5nZUZsYWdz
ID09IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFu
Z2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgICAgICBpZiAoc3Rh
dGVJdGVtLnN0YXRlQ2hhbmdlKCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzQ2hhbmdlKQotICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM6CiAjaWYgVVNFKENHKQogICAgIGNhc2Ug
SXRlbVR5cGU6OkFwcGx5RmlsbFBhdHRlcm46CiAgICAgY2FzZSBJdGVtVHlwZTo6QXBwbHlTdHJv
a2VQYXR0ZXJuOgotICAgICAgICBpZiAoIShmbGFncyAmIEFzVGV4dEZsYWc6OkluY2x1ZGVzUGxh
dGZvcm1PcGVyYXRpb25zKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgYnJl
YWs7CiAjZW5kaWYKKyAgICAgICAgcmV0dXJuIGZsYWdzICYgQXNUZXh0RmxhZzo6SW5jbHVkZXNQ
bGF0Zm9ybU9wZXJhdGlvbnM7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7CisgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogU3RyaW5nIERpc3Bs
YXlMaXN0Ojphc1RleHQoQXNUZXh0RmxhZ3MgZmxhZ3MpIGNvbnN0CkBAIC0yMDMsMTYgKzE5MCw1
MiBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICBy
ZXR1cm4gYXBwZW5kPENvbmNhdGVuYXRlQ1RNPihpdGVtLmdldDxDb25jYXRlbmF0ZUNUTT4oKSk7
CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1cm4gYXBwZW5kPFNldENU
TT4oaXRlbS5nZXQ8U2V0Q1RNPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
R3JhZGllbnQ6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50Pihp
dGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNl
dElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxsQ29s
b3I+KGl0ZW0uZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5lU3Ry
b2tlQ29sb3I+KGl0ZW0uZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpKTsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VHcmFkaWVudDoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdHJv
a2VHcmFkaWVudD4oaXRlbS5nZXQ8U2V0U3Ryb2tlR3JhZGllbnQ+KCkpOworICAgIGNhc2UgSXRl
bVR5cGU6OlNldFN0cm9rZVBhdHRlcm46CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3Ryb2tl
UGF0dGVybj4oaXRlbS5nZXQ8U2V0U3Ryb2tlUGF0dGVybj4oKSk7CisgICAgY2FzZSBJdGVtVHlw
ZTo6U2V0RmlsbEdyYWRpZW50OgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldEZpbGxHcmFkaWVu
dD4oaXRlbS5nZXQ8U2V0RmlsbEdyYWRpZW50PigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRG
aWxsUGF0dGVybjoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRGaWxsUGF0dGVybj4oaXRlbS5n
ZXQ8U2V0RmlsbFBhdHRlcm4+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvd3NJZ25v
cmVUcmFuc2Zvcm1zOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zPihpdGVtLmdldDxTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3Jtcz4oKSk7CisjaWYgVVNF
KENHKQorICAgIGNhc2UgSXRlbVR5cGU6OlNldExlZ2FjeVNoYWRvdzoKKyAgICAgICAgcmV0dXJu
IGFwcGVuZDxTZXRMZWdhY3lTaGFkb3c+KGl0ZW0uZ2V0PFNldExlZ2FjeVNoYWRvdz4oKSk7Cisj
ZW5kaWYKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaGFkb3c6CisgICAgICAgIHJldHVybiBhcHBl
bmQ8U2V0U2hhZG93PihpdGVtLmdldDxTZXRTaGFkb3c+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6
OlNldFN0cm9rZVRoaWNrbmVzczoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdHJva2VUaGlj
a25lc3M+KGl0ZW0uZ2V0PFNldFN0cm9rZVRoaWNrbmVzcz4oKSk7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0U3RhdGU6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U3RhdGU+KGl0ZW0uZ2V0PFNl
dFN0YXRlPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRUZXh0RHJhd2luZ01vZGU6CisgICAg
ICAgIHJldHVybiBhcHBlbmQ8U2V0VGV4dERyYXdpbmdNb2RlPihpdGVtLmdldDxTZXRUZXh0RHJh
d2luZ01vZGU+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUNvbG9yOgorICAgICAg
ICByZXR1cm4gYXBwZW5kPFNldFN0cm9rZUNvbG9yPihpdGVtLmdldDxTZXRTdHJva2VDb2xvcj4o
KSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbENvbG9yOgorICAgICAgICByZXR1cm4gYXBw
ZW5kPFNldEZpbGxDb2xvcj4oaXRlbS5nZXQ8U2V0RmlsbENvbG9yPigpKTsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VTdHlsZToKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdHJva2VT
dHlsZT4oaXRlbS5nZXQ8U2V0U3Ryb2tlU3R5bGU+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNl
dEZpbGxSdWxlOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldEZpbGxSdWxlPihpdGVtLmdldDxT
ZXRGaWxsUnVsZT4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0QWxwaGE6CisgICAgICAgIHJl
dHVybiBhcHBlbmQ8U2V0QWxwaGE+KGl0ZW0uZ2V0PFNldEFscGhhPigpKTsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRDb21wb3NpdGVPcGVyYXRpb246CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0
Q29tcG9zaXRlT3BlcmF0aW9uPihpdGVtLmdldDxTZXRDb21wb3NpdGVPcGVyYXRpb24+KCkpOwor
ICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZEFudGlhbGlhczoKKyAgICAgICAgcmV0dXJuIGFw
cGVuZDxTZXRTaG91bGRBbnRpYWxpYXM+KGl0ZW0uZ2V0PFNldFNob3VsZEFudGlhbGlhcz4oKSk7
CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU21vb3RoRm9udHM6CisgICAgICAgIHJldHVy
biBhcHBlbmQ8U2V0U2hvdWxkU21vb3RoRm9udHM+KGl0ZW0uZ2V0PFNldFNob3VsZFNtb290aEZv
bnRzPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9u
dHM6CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRz
PihpdGVtLmdldDxTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM+KCkpOworICAgIGNhc2Ug
SXRlbVR5cGU6OlNldERyYXdMdW1pbmFuY2VNYXNrOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNl
dERyYXdMdW1pbmFuY2VNYXNrPihpdGVtLmdldDxTZXREcmF3THVtaW5hbmNlTWFzaz4oKSk7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eToKKyAgICAgICAg
cmV0dXJuIGFwcGVuZDxTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5PihpdGVtLmdldDxTZXRJ
bWFnZUludGVycG9sYXRpb25RdWFsaXR5PigpKTsKKyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQ
T1JUKQorICAgIGNhc2UgSXRlbVR5cGU6OlNldFVzZURhcmtBcHBlYXJhbmNlOgorICAgICAgICBy
ZXR1cm4gYXBwZW5kPFNldFVzZURhcmtBcHBlYXJhbmNlPihpdGVtLmdldDxTZXRVc2VEYXJrQXBw
ZWFyYW5jZT4oKSk7CisjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAg
ICAgICByZXR1cm4gYXBwZW5kPFNldExpbmVDYXA+KGl0ZW0uZ2V0PFNldExpbmVDYXA+KCkpOwog
ICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtQnVmZmVyLmNwcAppbmRleCAzOTVmZTY3MWNjZjc0MjJhMTY1Njc2Yzc5Y2QxZTA5
ZWY1NTlhOTRkLi4xMWE4NjEyOTJjNTMxMzdmZTI2YmJjZWEwYjI5OTMyYWI2MTFlNmY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtNzIsMjYgKzcy
LDk0IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQog
ICAgICAgICBnZXQ8U2V0Q1RNPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDogewotICAgICAg
ICBnZXQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigpLmFwcGx5KGNvbnRleHQpOworICAgIGNhc2Ug
SXRlbVR5cGU6OlNldFN0cm9rZUdyYWRpZW50OiB7CisgICAgICAgIGdldDxTZXRTdHJva2VHcmFk
aWVudD4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6IHsKLSAgICAgICAgZ2V0PFNldElubGluZUZp
bGxDb2xvcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VQ
YXR0ZXJuOiB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxHcmFkaWVudDogeworICAgICAgICBn
ZXQ8U2V0RmlsbEdyYWRpZW50PigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxQYXR0ZXJuOiB7CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5
cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOiB7CisgICAgICAgIGdldDxTZXRTaGFkb3dz
SWdub3JlVHJhbnNmb3Jtcz4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNpZiBVU0UoQ0cpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGVnYWN5U2hhZG93OiB7Cisg
ICAgICAgIGdldDxTZXRMZWdhY3lTaGFkb3c+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHsK
LSAgICAgICAgZ2V0PFNldElubGluZVN0cm9rZUNvbG9yPigpLmFwcGx5KGNvbnRleHQpOworI2Vu
ZGlmCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93OiB7CisgICAgICAgIGdldDxTZXRTaGFk
b3c+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOiB7CiAgICAgICAgIGdldDxTZXRTdHJva2VUaGlj
a25lc3M+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3RhdGU6IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0VGV4dERyYXdpbmdNb2RlOiB7CisgICAgICAgIGdldDxTZXRU
ZXh0RHJhd2luZ01vZGU+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlQ29sb3I6IHsKKyAgICAgICAgZ2V0PFNldFN0
cm9rZUNvbG9yPigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGNhc2UgSXRlbVR5cGU6OlNldEZpbGxDb2xvcjogeworICAgICAgICBnZXQ8U2V0RmlsbENvbG9y
PigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRl
bVR5cGU6OlNldFN0cm9rZVN0eWxlOiB7CisgICAgICAgIGdldDxTZXRTdHJva2VTdHlsZT4oKS5h
cHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRGaWxsUnVsZTogeworICAgICAgICBnZXQ8U2V0RmlsbFJ1bGU+KCkuYXBwbHkoY29udGV4
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0QWxwaGE6
IHsKKyAgICAgICAgZ2V0PFNldEFscGhhPigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldENvbXBvc2l0ZU9wZXJhdGlvbjogewor
ICAgICAgICBnZXQ8U2V0Q29tcG9zaXRlT3BlcmF0aW9uPigpLmFwcGx5KGNvbnRleHQpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZEFudGlhbGlh
czogeworICAgICAgICBnZXQ8U2V0U2hvdWxkQW50aWFsaWFzPigpLmFwcGx5KGNvbnRleHQpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZFNtb290
aEZvbnRzOiB7CisgICAgICAgIGdldDxTZXRTaG91bGRTbW9vdGhGb250cz4oKS5hcHBseShjb250
ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91
bGRTdWJwaXhlbFF1YW50aXplRm9udHM6IHsKKyAgICAgICAgZ2V0PFNldFNob3VsZFN1YnBpeGVs
UXVhbnRpemVGb250cz4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXREcmF3THVtaW5hbmNlTWFzazogeworICAgICAgICBnZXQ8
U2V0RHJhd0x1bWluYW5jZU1hc2s+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTog
eworICAgICAgICBnZXQ8U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eT4oKS5hcHBseShjb250
ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQ
T1JUKQorICAgIGNhc2UgSXRlbVR5cGU6OlNldFVzZURhcmtBcHBlYXJhbmNlOiB7CisgICAgICAg
IGdldDxTZXRVc2VEYXJrQXBwZWFyYW5jZT4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHsKICAg
ICAgICAgZ2V0PFNldExpbmVDYXA+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsK
QEAgLTM1NCw4ICs0MjIsMTIgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAg
Z2V0PFNldExpbmVEYXNoPigpLn5TZXRMaW5lRGFzaCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7Ci0gICAgICAgIGdldDxTZXRTdGF0ZT4o
KS5+U2V0U3RhdGUoKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VHcmFkaWVudDogewor
ICAgICAgICBnZXQ8U2V0U3Ryb2tlR3JhZGllbnQ+KCkuflNldFN0cm9rZUdyYWRpZW50KCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbEdyYWRpZW50
OiB7CisgICAgICAgIGdldDxTZXRGaWxsR3JhZGllbnQ+KCkuflNldEZpbGxHcmFkaWVudCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZVBhdGg6IHsK
QEAgLTQ4NiwxOCArNTU4LDg2IEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVzdHJveSgpCiAgICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldENUTT46OnZh
bHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVGaWxsQ29sb3I6IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9k
ZXN0cnVjdGlibGU8U2V0SW5saW5lRmlsbENvbG9yPjo6dmFsdWUpOworICAgIGNhc2UgSXRlbVR5
cGU6OlNldFN0cm9rZVBhdHRlcm46IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Ry
aXZpYWxseV9kZXN0cnVjdGlibGU8U2V0U3Ryb2tlUGF0dGVybj46OnZhbHVlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsUGF0dGVybjogeworICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRGaWxs
UGF0dGVybj46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtczogeworICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3Jt
cz46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Ry
aXZpYWxseV9kZXN0cnVjdGlibGU8U2V0SW5saW5lRmlsbEdyYWRpZW50Pjo6dmFsdWUpOworI2lm
IFVTRShDRykKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMZWdhY3lTaGFkb3c6IHsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0TGVnYWN5U2hh
ZG93Pjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U2hhZG93OiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2
aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldFNoYWRvdz46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0U3Ryb2tlVGhp
Y2tuZXNzPjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5
cGU6OlNldFRleHREcmF3aW5nTW9kZTogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRUZXh0RHJhd2luZ01vZGU+Ojp2YWx1ZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlQ29sb3I6IHsK
KyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0
U3Ryb2tlQ29sb3I+Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0RmlsbENvbG9yOiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190
cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldEZpbGxDb2xvcj46OnZhbHVlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VTdHlsZTogeworICAgICAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRTdHJva2VT
dHlsZT46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRGaWxsUnVsZTogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5
X2Rlc3RydWN0aWJsZTxTZXRGaWxsUnVsZT46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRBbHBoYTogeworICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRBbHBoYT46OnZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDb21wb3NpdGVPcGVyYXRp
b246IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGli
bGU8U2V0Q29tcG9zaXRlT3BlcmF0aW9uPjo6dmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOiB7Ci0gICAgICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZVN0cm9r
ZUNvbG9yPjo6dmFsdWUpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZEFudGlhbGlhczog
eworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxT
ZXRTaG91bGRBbnRpYWxpYXM+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU21vb3RoRm9udHM6IHsKKyAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0U2hvdWxkU21vb3RoRm9udHM+
Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0
U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250
cz46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXREcmF3THVtaW5hbmNlTWFzazogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJp
dmlhbGx5X2Rlc3RydWN0aWJsZTxTZXREcmF3THVtaW5hbmNlTWFzaz46OnZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbWFnZUludGVycG9sYXRp
b25RdWFsaXR5OiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVz
dHJ1Y3RpYmxlPFNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk+Ojp2YWx1ZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRVc2VEYXJrQXBwZWFyYW5jZTogeworICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRVc2VEYXJrQXBwZWFyYW5jZT46OnZh
bHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6
OlNldExpbmVDYXA6IHsKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9k
ZXN0cnVjdGlibGU8U2V0TGluZUNhcD46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTEw
LDEwICs2NTAsNiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRNaXRlckxpbWl0Pjo6dmFs
dWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9r
ZVRoaWNrbmVzczogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rl
c3RydWN0aWJsZTxTZXRTdHJva2VUaGlja25lc3M+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlRWxsaXBzZTogewogICAgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTdHJva2VFbGxpcHNlPjo6
dmFsdWUpOwogICAgICAgICByZXR1cm47CkBAIC02MDAsOCArNzM2LDYgQEAgYm9vbCBJdGVtSGFu
ZGxlOjpzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAogICAgICAgICByZXR1
cm4gY29weUludG88UHV0SW1hZ2VEYXRhPigqdGhpcywgaXRlbU9mZnNldCk7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0TGluZURhc2g6CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRMaW5lRGFz
aD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgotICAg
ICAgICByZXR1cm4gY29weUludG88U2V0U3RhdGU+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKICAgICBj
YXNlIEl0ZW1UeXBlOjpTdHJva2VQYXRoOgogICAgICAgICByZXR1cm4gY29weUludG88U3Ryb2tl
UGF0aD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OkFwcGx5RGV2aWNl
U2NhbGVGYWN0b3I6CkBAIC02NjIsMjAgKzc5Niw1OCBAQCBib29sIEl0ZW1IYW5kbGU6OnNhZmVD
b3B5KEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIHJldHVybiBjb3B5SW50
bzxTY2FsZT4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToK
ICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldENUTT4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPFNldElubGluZUZpbGxDb2xvcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRl
bVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNl
dElubGluZUZpbGxHcmFkaWVudD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5
cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5s
aW5lU3Ryb2tlQ29sb3I+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRTdHJva2VHcmFkaWVudDoKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFN0cm9rZUdyYWRp
ZW50PigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlUGF0
dGVybjoKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFN0cm9rZVBhdHRlcm4+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsR3JhZGllbnQ6CisgICAgICAg
IHJldHVybiBjb3B5SW50bzxTZXRGaWxsR3JhZGllbnQ+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsUGF0dGVybjoKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRv
PFNldEZpbGxQYXR0ZXJuPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRT
aGFkb3dzSWdub3JlVHJhbnNmb3Jtcz4oKnRoaXMsIGl0ZW1PZmZzZXQpOworI2lmIFVTRShDRykK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMZWdhY3lTaGFkb3c6CisgICAgICAgIHJldHVybiBjb3B5
SW50bzxTZXRMZWdhY3lTaGFkb3c+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyNlbmRpZgorICAgIGNh
c2UgSXRlbVR5cGU6OlNldFNoYWRvdzoKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFNoYWRv
dz4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNr
bmVzczoKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFN0cm9rZVRoaWNrbmVzcz4oKnRoaXMs
IGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFRleHREcmF3aW5nTW9kZToKKyAg
ICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFRleHREcmF3aW5nTW9kZT4oKnRoaXMsIGl0ZW1PZmZz
ZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUNvbG9yOgorICAgICAgICByZXR1cm4g
Y29weUludG88U2V0U3Ryb2tlQ29sb3I+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRGaWxsQ29sb3I6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRGaWxsQ29s
b3I+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VTdHls
ZToKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFN0cm9rZVN0eWxlPigqdGhpcywgaXRlbU9m
ZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbFJ1bGU6CisgICAgICAgIHJldHVybiBj
b3B5SW50bzxTZXRGaWxsUnVsZT4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5
cGU6OlNldEFscGhhOgorICAgICAgICByZXR1cm4gY29weUludG88U2V0QWxwaGE+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDb21wb3NpdGVPcGVyYXRpb246Cisg
ICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRDb21wb3NpdGVPcGVyYXRpb24+KCp0aGlzLCBpdGVt
T2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRBbnRpYWxpYXM6CisgICAgICAg
IHJldHVybiBjb3B5SW50bzxTZXRTaG91bGRBbnRpYWxpYXM+KCp0aGlzLCBpdGVtT2Zmc2V0KTsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRTbW9vdGhGb250czoKKyAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPFNldFNob3VsZFNtb290aEZvbnRzPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOgorICAgICAgICBy
ZXR1cm4gY29weUludG88U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzPigqdGhpcywgaXRl
bU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RHJhd0x1bWluYW5jZU1hc2s6CisgICAg
ICAgIHJldHVybiBjb3B5SW50bzxTZXREcmF3THVtaW5hbmNlTWFzaz4oKnRoaXMsIGl0ZW1PZmZz
ZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk6Cisg
ICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5PigqdGhp
cywgaXRlbU9mZnNldCk7CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRVc2VEYXJrQXBwZWFyYW5jZToKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRv
PFNldFVzZURhcmtBcHBlYXJhbmNlPigqdGhpcywgaXRlbU9mZnNldCk7CisjZW5kaWYKICAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1cm4gY29weUludG88U2V0TGlu
ZUNhcD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVKb2lu
OgogICAgICAgICByZXR1cm4gY29weUludG88U2V0TGluZUpvaW4+KCp0aGlzLCBpdGVtT2Zmc2V0
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgogICAgICAgICByZXR1cm4gY29w
eUludG88U2V0TWl0ZXJMaW1pdD4oKnRoaXMsIGl0ZW1PZmZzZXQpOwotICAgIGNhc2UgSXRlbVR5
cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFN0cm9r
ZVRoaWNrbmVzcz4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9r
ZUVsbGlwc2U6CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTdHJva2VFbGxpcHNlPigqdGhpcywg
aXRlbU9mZnNldCk7CiAjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXggYzBjNzNiODNiZDUyZWFhMDRhOTUxNzgx
ODA0NDUzOTQ3YmJjOTVlOS4uNmNlZmE3MmZiMzFiYTMyMDQ5ZTQ4MWM3NzQ2MTdkYmZjNWI3Nzk2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcApAQCAtNDgsMTYg
KzQ4LDUyIEBAIHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkK
ICAgICAgICAgcmV0dXJuIHNpemVvZihDb25jYXRlbmF0ZUNUTSk7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6U2V0Q1RNOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNldENUTSk7Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElu
bGluZUZpbGxHcmFkaWVudCk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9y
OgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZUZpbGxDb2xvcik7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0
SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUdyYWRpZW50
OgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0cm9rZUdyYWRpZW50KTsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VQYXR0ZXJuOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0cm9r
ZVBhdHRlcm4pOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxHcmFkaWVudDoKKyAgICAgICAg
cmV0dXJuIHNpemVvZihTZXRGaWxsR3JhZGllbnQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEZp
bGxQYXR0ZXJuOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldEZpbGxQYXR0ZXJuKTsKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtczoKKyAgICAgICAgcmV0dXJu
IHNpemVvZihTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3Jtcyk7CisjaWYgVVNFKENHKQorICAgIGNh
c2UgSXRlbVR5cGU6OlNldExlZ2FjeVNoYWRvdzoKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRM
ZWdhY3lTaGFkb3cpOworI2VuZGlmCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93OgorICAg
ICAgICByZXR1cm4gc2l6ZW9mKFNldFNoYWRvdyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ry
b2tlVGhpY2tuZXNzOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0cm9rZVRoaWNrbmVzcyk7
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0
U3RhdGUpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFRleHREcmF3aW5nTW9kZToKKyAgICAgICAg
cmV0dXJuIHNpemVvZihTZXRUZXh0RHJhd2luZ01vZGUpOworICAgIGNhc2UgSXRlbVR5cGU6OlNl
dFN0cm9rZUNvbG9yOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFN0cm9rZUNvbG9yKTsKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsQ29sb3I6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0
RmlsbENvbG9yKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VTdHlsZToKKyAgICAgICAg
cmV0dXJuIHNpemVvZihTZXRTdHJva2VTdHlsZSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0Rmls
bFJ1bGU6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0RmlsbFJ1bGUpOworICAgIGNhc2UgSXRl
bVR5cGU6OlNldEFscGhhOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldEFscGhhKTsKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRDb21wb3NpdGVPcGVyYXRpb246CisgICAgICAgIHJldHVybiBzaXpl
b2YoU2V0Q29tcG9zaXRlT3BlcmF0aW9uKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRB
bnRpYWxpYXM6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0U2hvdWxkQW50aWFsaWFzKTsKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRTbW9vdGhGb250czoKKyAgICAgICAgcmV0dXJuIHNp
emVvZihTZXRTaG91bGRTbW9vdGhGb250cyk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxk
U3VicGl4ZWxRdWFudGl6ZUZvbnRzOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFNob3VsZFN1
YnBpeGVsUXVhbnRpemVGb250cyk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RHJhd0x1bWluYW5j
ZU1hc2s6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0RHJhd0x1bWluYW5jZU1hc2spOworICAg
IGNhc2UgSXRlbVR5cGU6OlNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk6CisgICAgICAgIHJl
dHVybiBzaXplb2YoU2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CisjaWYgSEFWRShPU19E
QVJLX01PREVfU1VQUE9SVCkKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRVc2VEYXJrQXBwZWFyYW5j
ZToKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRVc2VEYXJrQXBwZWFyYW5jZSk7CisjZW5kaWYK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNl
dExpbmVDYXApOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgpAQCAtMTg5LDE1ICsy
MjUsMzUgQEAgYm9vbCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVt
VHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VHcmFkaWVu
dDoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VQYXR0ZXJuOgorICAgIGNhc2UgSXRlbVR5
cGU6OlNldEZpbGxHcmFkaWVudDoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsUGF0dGVybjoK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtczoKKyNpZiBVU0Uo
Q0cpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGVnYWN5U2hhZG93OgorI2VuZGlmCisgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U2hhZG93OgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNr
bmVzczoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRUZXh0RHJhd2luZ01vZGU6CisgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3Ryb2tlQ29sb3I6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbENvbG9y
OgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVN0eWxlOgorICAgIGNhc2UgSXRlbVR5cGU6
OlNldEZpbGxSdWxlOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldEFscGhhOgorICAgIGNhc2UgSXRl
bVR5cGU6OlNldENvbXBvc2l0ZU9wZXJhdGlvbjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91
bGRBbnRpYWxpYXM6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU21vb3RoRm9udHM6Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOgorICAgIGNh
c2UgSXRlbVR5cGU6OlNldERyYXdMdW1pbmFuY2VNYXNrOgorICAgIGNhc2UgSXRlbVR5cGU6OlNl
dEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk6CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9S
VCkKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRVc2VEYXJrQXBwZWFyYW5jZToKKyNlbmRpZgogICAg
IGNhc2UgSXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZURh
c2g6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0TWl0ZXJMaW1pdDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKLSAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgY2FzZSBJdGVtVHlwZTo6VHJhbnNsYXRl
OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY2FzZSBJdGVtVHlwZTo6QmVnaW5UcmFuc3Bh
cmVuY3lMYXllcjoKQEAgLTI2NSw3ICszMjEsOCBAQCBib29sIGlzSW5saW5lSXRlbShJdGVtVHlw
ZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSb3VuZGVkUmVjdDoKICAgICBjYXNlIEl0
ZW1UeXBlOjpQdXRJbWFnZURhdGE6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZURhc2g6Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tl
R3JhZGllbnQ6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbEdyYWRpZW50OgogICAgIGNhc2Ug
SXRlbVR5cGU6OlN0cm9rZVBhdGg6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpBcHBseURldmljZVNjYWxlRmFjdG9yOgpAQCAtMzAyLDEzICszNTksMzIgQEAgYm9v
bCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpTYXZlOgog
ICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9r
ZUNvbG9yOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVBhdHRlcm46CisgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0RmlsbFBhdHRlcm46CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93c0ln
bm9yZVRyYW5zZm9ybXM6CisjaWYgVVNFKENHKQorICAgIGNhc2UgSXRlbVR5cGU6OlNldExlZ2Fj
eVNoYWRvdzoKKyNlbmRpZgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvdzoKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0VGV4
dERyYXdpbmdNb2RlOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUNvbG9yOgorICAgIGNh
c2UgSXRlbVR5cGU6OlNldEZpbGxDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VT
dHlsZToKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsUnVsZToKKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRBbHBoYToKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDb21wb3NpdGVPcGVyYXRpb246Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkQW50aWFsaWFzOgorICAgIGNhc2UgSXRlbVR5cGU6
OlNldFNob3VsZFNtb290aEZvbnRzOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250czoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXREcmF3THVtaW5hbmNlTWFz
azoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5OgorI2lm
IEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0VXNlRGFy
a0FwcGVhcmFuY2U6CisjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAg
IGNhc2UgSXRlbVR5cGU6OlNldExpbmVKb2luOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldE1pdGVy
TGltaXQ6Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgIGNhc2Ug
SXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6CiAjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCiAg
ICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlSW5saW5lUGF0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5oCmluZGV4IDBlOTQ3YTA2ZGFiNWEyZGZiNDc2OTA4MmY4Y2FjNTQ4YWY4
OTM0M2IuLmRmNmUzNzdmNjA0OGFmODZjY2Q3NzQ4MGZjMDkwYmM4Njc2YmZlMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAtMzYsMTEgKzM2LDMxIEBAIGVudW0g
Y2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBTY2FsZSwKICAgICBDb25jYXRlbmF0ZUNU
TSwKICAgICBTZXRDVE0sCi0gICAgU2V0SW5saW5lRmlsbEdyYWRpZW50LAotICAgIFNldElubGlu
ZUZpbGxDb2xvciwKLSAgICBTZXRJbmxpbmVTdHJva2VDb2xvciwKKyAgICBTZXRTdHJva2VHcmFk
aWVudCwKKyAgICBTZXRTdHJva2VQYXR0ZXJuLAorICAgIFNldEZpbGxHcmFkaWVudCwKKyAgICBT
ZXRGaWxsUGF0dGVybiwKKyAgICBTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtcywKKyNpZiBVU0Uo
Q0cpCisgICAgU2V0TGVnYWN5U2hhZG93LAorI2VuZGlmCisgICAgU2V0U2hhZG93LAogICAgIFNl
dFN0cm9rZVRoaWNrbmVzcywKLSAgICBTZXRTdGF0ZSwKKyAgICBTZXRUZXh0RHJhd2luZ01vZGUs
CisgICAgU2V0U3Ryb2tlQ29sb3IsCisgICAgU2V0RmlsbENvbG9yLAorICAgIFNldFN0cm9rZVN0
eWxlLAorICAgIFNldEZpbGxSdWxlLAorICAgIFNldEFscGhhLAorICAgIFNldENvbXBvc2l0ZU9w
ZXJhdGlvbiwKKyAgICBTZXRTaG91bGRBbnRpYWxpYXMsCisgICAgU2V0U2hvdWxkU21vb3RoRm9u
dHMsCisgICAgU2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzLAorICAgIFNldERyYXdMdW1p
bmFuY2VNYXNrLAorICAgIFNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksCisjaWYgSEFWRShP
U19EQVJLX01PREVfU1VQUE9SVCkKKyAgICBTZXRVc2VEYXJrQXBwZWFyYW5jZSwKKyNlbmRpZgog
ICAgIFNldExpbmVDYXAsCiAgICAgU2V0TGluZURhc2gsCiAgICAgU2V0TGluZUpvaW4sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggZTUxYWMxMzlkMmFmNDAxNDk2Y2Vk
MjA5NTNmZWZiZTM1OGVlNTc0YS4uZjAyZWZiNTgwY2M4ODE0MTNlOTQwZWMxYTA3Mzk3ZmVmZTBi
NzNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMTE1LDEyNiAr
MTE1LDE0MyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgQ29uY2F0ZW5hdGVDVE0mIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi1TZXRJbmxp
bmVGaWxsR3JhZGllbnQ6OlNldElubGluZUZpbGxHcmFkaWVudChjb25zdCBHcmFkaWVudCYgZ3Jh
ZGllbnQsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSkKLSAg
ICA6IG1fZGF0YShncmFkaWVudC5kYXRhKCkpCi0gICAgLCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zv
cm0oZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSkKLSAgICAsIG1fc3ByZWFkTWV0aG9kKGdyYWRpZW50
LnNwcmVhZE1ldGhvZCgpKQotICAgICwgbV9jb2xvclN0b3BDb3VudChzdGF0aWNfY2FzdDx1aW50
OF90PihncmFkaWVudC5zdG9wcygpLnNpemUoKSkpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9j
b2xvclN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCk7Ci0gICAgZm9yICh1aW50OF90IGkg
PSAwOyBpIDwgbV9jb2xvclN0b3BDb3VudDsgKytpKSB7Ci0gICAgICAgIG1fb2Zmc2V0c1tpXSA9
IGdyYWRpZW50LnN0b3BzKClbaV0ub2Zmc2V0OwotICAgICAgICBtX2NvbG9yc1tpXSA9IGdyYWRp
ZW50LnN0b3BzKClbaV0uY29sb3IuYXNJbmxpbmUoKTsKLSAgICB9CitzdGF0aWMgVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3Ryb2tlR3JhZGllbnQmIGl0
ZW0pCit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJncmFkaWVudCIsICZpdGVtLmdyYWRpZW50KCkp
OworICAgIHRzLmR1bXBQcm9wZXJ0eSgiZ3JhZGllbnQtc3BhY2UtdHJhbnNmb3JtIiwgaXRlbS5n
cmFkaWVudFNwYWNlVHJhbnNmb3JtKCkpOworICAgIHJldHVybiB0czsKIH0KIAotU2V0SW5saW5l
RmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoZmxvYXQgb2Zmc2V0c1ttYXhDb2xv
clN0b3BDb3VudF0sIFNSR0JBPHVpbnQ4X3Q+IGNvbG9yc1ttYXhDb2xvclN0b3BDb3VudF0sIGNv
bnN0IEdyYWRpZW50OjpEYXRhJiBkYXRhLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50
U3BhY2VUcmFuc2Zvcm0sIEdyYWRpZW50U3ByZWFkTWV0aG9kIHNwcmVhZE1ldGhvZCwgdWludDhf
dCBjb2xvclN0b3BDb3VudCkKLSAgICA6IG1fZGF0YShkYXRhKQotICAgICwgbV9ncmFkaWVudFNw
YWNlVHJhbnNmb3JtKGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCi0gICAgLCBtX3NwcmVhZE1ldGhv
ZChzcHJlYWRNZXRob2QpCi0gICAgLCBtX2NvbG9yU3RvcENvdW50KGNvbG9yU3RvcENvdW50KQor
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0
cm9rZVBhdHRlcm4mKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fY29sb3JTdG9wQ291bnQgPD0g
bWF4Q29sb3JTdG9wQ291bnQpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JT
dG9wQ291bnQ7ICsraSkgewotICAgICAgICBtX29mZnNldHNbaV0gPSBvZmZzZXRzW2ldOwotICAg
ICAgICBtX2NvbG9yc1tpXSA9IGNvbG9yc1tpXTsKLSAgICB9CisgICAgLy8gRklYTUU6IER1bXAg
cGF0dGVybiBwYXJhbWV0ZXJzLgorICAgIHJldHVybiB0czsKIH0KIAotUmVmPEdyYWRpZW50PiBT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmdyYWRpZW50KCkgY29uc3QKK3N0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRGaWxsR3JhZGllbnQmIGl0ZW0p
CiB7Ci0gICAgYXV0byBncmFkaWVudCA9IEdyYWRpZW50OjpjcmVhdGUoR3JhZGllbnQ6OkRhdGEo
bV9kYXRhKSk7Ci0gICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgbV9jb2xvclN0b3BDb3VudDsg
KytpKQotICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKHsgbV9vZmZzZXRzW2ldLCBDb2xv
cihtX2NvbG9yc1tpXSkgfSk7Ci0gICAgZ3JhZGllbnQtPnNldFNwcmVhZE1ldGhvZChtX3NwcmVh
ZE1ldGhvZCk7Ci0gICAgcmV0dXJuIGdyYWRpZW50OworICAgIHRzLmR1bXBQcm9wZXJ0eSgiZ3Jh
ZGllbnQiLCAmaXRlbS5ncmFkaWVudCgpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImdyYWRpZW50
LXNwYWNlLXRyYW5zZm9ybSIsIGl0ZW0uZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBy
ZXR1cm4gdHM7CiB9CiAKLXZvaWQgU2V0SW5saW5lRmlsbEdyYWRpZW50OjphcHBseShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0RmlsbFBhdHRlcm4mKQogewotICAgIGlmIChtX2NvbG9y
U3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KQotICAgICAgICBjb250ZXh0LnNldEZpbGxH
cmFkaWVudChncmFkaWVudCgpLCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm0pOworICAgIC8vIEZJ
WE1FOiBEdW1wIHBhdHRlcm4gcGFyYW1ldGVycy4KKyAgICByZXR1cm4gdHM7CiB9CiAKLWJvb2wg
U2V0SW5saW5lRmlsbEdyYWRpZW50Ojppc0lubGluZShjb25zdCBHcmFkaWVudCYgZ3JhZGllbnQp
CitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0
U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMmIGl0ZW0pCiB7Ci0gICAgaWYgKGdyYWRpZW50LnN0b3Bz
KCkuc2l6ZSgpID4gU2V0SW5saW5lRmlsbEdyYWRpZW50OjptYXhDb2xvclN0b3BDb3VudCkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hhZG93cy1pZ25vcmUt
dHJhbnNmb3JtcyIsIGl0ZW0uc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSk7CisgICAgcmV0dXJu
IHRzOworfQogCi0gICAgZm9yIChhdXRvJiBjb2xvclN0b3AgOiBncmFkaWVudC5zdG9wcygpKSB7
Ci0gICAgICAgIGlmICghY29sb3JTdG9wLmNvbG9yLmlzSW5saW5lKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQorI2lmIFVTRShDRykKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRMZWdhY3lTaGFkb3cmIGl0ZW0pCit7Cisg
ICAgdHMuZHVtcFByb3BlcnR5KCJzaGFkb3ctb2Zmc2V0IiwgaXRlbS5vZmZzZXQoKSk7CisgICAg
dHMuZHVtcFByb3BlcnR5KCJzaGFkb3ctYmx1ciIsIGl0ZW0uYmx1cigpKTsKKyAgICB0cy5kdW1w
UHJvcGVydHkoInNoYWRvdy1jb2xvciIsIGl0ZW0uY29sb3IoKSk7CisgICAgcmV0dXJuIHRzOwor
fQorI2VuZGlmCiAKLSAgICByZXR1cm4gdHJ1ZTsKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRTaGFkb3cmIGl0ZW0pCit7CisgICAgdHMuZHVt
cFByb3BlcnR5KCJzaGFkb3ctb2Zmc2V0IiwgaXRlbS5vZmZzZXQoKSk7CisgICAgdHMuZHVtcFBy
b3BlcnR5KCJzaGFkb3ctYmx1ciIsIGl0ZW0uYmx1cigpKTsKKyAgICB0cy5kdW1wUHJvcGVydHko
InNoYWRvdy1jb2xvciIsIGl0ZW0uY29sb3IoKSk7CisgICAgcmV0dXJuIHRzOwogfQogCi1zdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5l
RmlsbEdyYWRpZW50JikKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBTZXRTdHJva2VUaGlja25lc3MmIGl0ZW0pCiB7Ci0gICAgLy8gRklYTUU6IER1
bXAgZ3JhZGllbnQgZGF0YS4KKyAgICB0cy5kdW1wUHJvcGVydHkoInN0cm9rZS10aGlja25lc3Mi
LCBpdGVtLnRoaWNrbmVzcygpKTsKICAgICByZXR1cm4gdHM7CiB9CiAKLXZvaWQgU2V0SW5saW5l
RmlsbENvbG9yOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CitzdGF0aWMg
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0VGV4dERyYXdp
bmdNb2RlJikKIHsKLSAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvcigpKTsKKyAgICAvLyBG
SVhNRTogRHVtcCB0ZXh0RHJhd2luZ01vZGUoKS4KKyAgICByZXR1cm4gdHM7CiB9CiAKLXN0YXRp
YyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbmxpbmVG
aWxsQ29sb3ImIHN0YXRlKQorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFNldFN0cm9rZUNvbG9yJiBpdGVtKQogewotICAgIHRzLmR1bXBQcm9wZXJ0
eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInN0cm9rZS1j
b2xvciIsIGl0ZW0uY29sb3IoKSk7CiAgICAgcmV0dXJuIHRzOwogfQogCi12b2lkIFNldElubGlu
ZVN0cm9rZUNvbG9yOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CitzdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0RmlsbENv
bG9yJiBpdGVtKQogewotICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoY29sb3IoKSk7CisgICAg
dHMuZHVtcFByb3BlcnR5KCJmaWxsLWNvbG9yIiwgaXRlbS5jb2xvcigpKTsKKyAgICByZXR1cm4g
dHM7CiB9CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBTZXRJbmxpbmVTdHJva2VDb2xvciYgc3RhdGUpCitzdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3Ryb2tlU3R5bGUmIGl0ZW0pCiB7Ci0g
ICAgdHMuZHVtcFByb3BlcnR5KCJjb2xvciIsIHN0YXRlLmNvbG9yKCkpOworICAgIHRzLmR1bXBQ
cm9wZXJ0eSgic3Ryb2tlLXN0eWxlIiwgaXRlbS5zdHlsZSgpKTsKICAgICByZXR1cm4gdHM7CiB9
CiAKLXZvaWQgU2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQpIGNvbnN0CitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgU2V0RmlsbFJ1bGUmIGl0ZW0pCiB7Ci0gICAgY29udGV4dC5zZXRTdHJva2VUaGlja25l
c3MobV90aGlja25lc3MpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiZmlsbC1ydWxlIiwgaXRlbS5m
aWxsUnVsZSgpKTsKKyAgICByZXR1cm4gdHM7CiB9CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRTdHJva2VUaGlja25lc3MmIHN0YXRlKQor
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldEFs
cGhhJiBpdGVtKQogewotICAgIHRzLmR1bXBQcm9wZXJ0eSgidGhpY2tuZXNzIiwgc3RhdGUudGhp
Y2tuZXNzKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiYWxwaGEiLCBpdGVtLmFscGhhKCkpOwog
ICAgIHJldHVybiB0czsKIH0KIAotU2V0U3RhdGU6OlNldFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3Mg
ZmxhZ3MpCi0gICAgOiBtX3N0YXRlQ2hhbmdlKHN0YXRlLCBmbGFncykKK3N0YXRpYyBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRDb21wb3NpdGVPcGVyYXRp
b24mIGl0ZW0pCiB7CisgICAgdHMuZHVtcFByb3BlcnR5KCJjb21wb3NpdGUtb3BlcmF0b3IiLCBp
dGVtLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiYmxlbmQtbW9k
ZSIsIGl0ZW0uYmxlbmRNb2RlKCkpOworICAgIHJldHVybiB0czsKIH0KIAotU2V0U3RhdGU6OlNl
dFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBzdGF0ZUNoYW5nZSwgY29u
c3QgUGF0dGVybkRhdGEmIHN0cm9rZVBhdHRlcm4sIGNvbnN0IFBhdHRlcm5EYXRhJiBmaWxsUGF0
dGVybikKLSAgICA6IG1fc3RhdGVDaGFuZ2Uoc3RhdGVDaGFuZ2UpCi0gICAgLCBtX3N0cm9rZVBh
dHRlcm4oc3Ryb2tlUGF0dGVybikKLSAgICAsIG1fZmlsbFBhdHRlcm4oZmlsbFBhdHRlcm4pCitz
dGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U2hv
dWxkQW50aWFsaWFzJiBpdGVtKQogeworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hvdWxkLWFudGlh
bGlhcyIsIGl0ZW0uc2hvdWxkQW50aWFsaWFzKCkpOworICAgIHJldHVybiB0czsKIH0KIAotdm9p
ZCBTZXRTdGF0ZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOYXRpdmVJbWFnZSog
c3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJbWFnZSogZmlsbFBhdHRlcm5JbWFnZSkKK3N0YXRp
YyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRTaG91bGRT
bW9vdGhGb250cyYgaXRlbSkKIHsKLSAgICBpZiAobV9zdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VQYXR0ZXJuQ2hhbmdlKSAmJiBz
dHJva2VQYXR0ZXJuSW1hZ2UpCi0gICAgICAgIG1fc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuID0gUGF0dGVybjo6Y3JlYXRlKG1ha2VSZWYoKnN0cm9rZVBhdHRlcm5JbWFnZSksIG1f
c3Ryb2tlUGF0dGVybi5wYXJhbWV0ZXJzKTsKLSAgICBpZiAobV9zdGF0ZUNoYW5nZS5tX2NoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUGF0dGVybkNoYW5nZSkg
JiYgZmlsbFBhdHRlcm5JbWFnZSkKLSAgICAgICAgbV9zdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxQ
YXR0ZXJuID0gUGF0dGVybjo6Y3JlYXRlKG1ha2VSZWYoKmZpbGxQYXR0ZXJuSW1hZ2UpLCBtX2Zp
bGxQYXR0ZXJuLnBhcmFtZXRlcnMpOwotICAgIG1fc3RhdGVDaGFuZ2UuYXBwbHkoY29udGV4dCk7
CisgICAgdHMuZHVtcFByb3BlcnR5KCJzaG91bGQtc21vb3RoLWZvbnRzIiwgaXRlbS5zaG91bGRT
bW9vdGhGb250cygpKTsKKyAgICByZXR1cm4gdHM7CiB9CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRTdGF0ZSYgc3RhdGUpCitzdGF0aWMg
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U2hvdWxkU3Vi
cGl4ZWxRdWFudGl6ZUZvbnRzJiBpdGVtKQogewotICAgIHRzIDw8IHN0YXRlLnN0YXRlQ2hhbmdl
KCk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJzaG91bGQtc3VicGl4ZWwtcXVhbnRpemUtZm9udHMi
LCBpdGVtLnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cygpKTsKICAgICByZXR1cm4gdHM7CiB9
CiAKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBT
ZXREcmF3THVtaW5hbmNlTWFzayYgaXRlbSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHkoImRyYXct
bHVtaW5hbmNlLW1hc2siLCBpdGVtLmRyYXdMdW1pbmFuY2VNYXNrKCkpOworICAgIHJldHVybiB0
czsKK30KKworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IFNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkmIGl0ZW0pCit7CisgICAgdHMuZHVtcFBy
b3BlcnR5KCJpbWFnZS1pbnRlcnBvbGF0aW9uLXF1YWxpdHkiLCBpdGVtLmltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHkoKSk7CisgICAgcmV0dXJuIHRzOworfQorCisjaWYgSEFWRShPU19EQVJLX01P
REVfU1VQUE9SVCkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBTZXRVc2VEYXJrQXBwZWFyYW5jZSYgaXRlbSkKK3sKKyAgICB0cy5kdW1wUHJvcGVy
dHkoInVzZS1kYXJrLWFwcGVhcmFuY2UiLCBpdGVtLnVzZURhcmtBcHBlYXJhbmNlKCkpOworICAg
IHJldHVybiB0czsKK30KKyNlbmRpZgorCiB2b2lkIFNldExpbmVDYXA6OmFwcGx5KEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKICAgICBjb250ZXh0LnNldExpbmVDYXAobV9saW5l
Q2FwKTsKQEAgLTEwMjEsMTEgKzEwMzgsMzEgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2Nh
bGU6IHRzIDw8ICJzY2FsZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTTogdHMg
PDwgInNldC1jdG0iOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTTog
dHMgPDwgImNvbmNhdGVudGF0ZS1jdG0iOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVGaWxsR3JhZGllbnQ6IHRzIDw8ICJzZXQtaW5saW5lLWZpbGwtZ3JhZGllbnQiOyBicmVh
azsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6IHRzIDw8ICJzZXQtaW5s
aW5lLWZpbGwtY29sb3IiOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJv
a2VDb2xvcjogdHMgPDwgInNldC1pbmxpbmUtc3Ryb2tlLWNvbG9yIjsgYnJlYWs7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3Ryb2tlR3JhZGllbnQ6IHRzIDw8ICJzZXQtc3Ryb2tlLWdyYWRpZW50
IjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlUGF0dGVybjogdHMgPDwgInNl
dC1zdHJva2UtcGF0dGVybiI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxHcmFk
aWVudDogdHMgPDwgInNldC1maWxsLWdyYWRpZW50IjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlw
ZTo6U2V0RmlsbFBhdHRlcm46IHRzIDw8ICJzZXQtZmlsbC1wYXR0ZXJuIjsgYnJlYWs7CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6IHRzIDw8ICJzZXQtc2hh
ZG93cy1pZ25vcmUtdHJhbnNmb3JtcyI7IGJyZWFrOworI2lmIFVTRShDRykKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRMZWdhY3lTaGFkb3c6IHRzIDw8ICJzZXQtbGVnYWN5LXNoYWRvdyI7IGJyZWFr
OworI2VuZGlmCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93OiB0cyA8PCAic2V0LXNoYWRv
dyI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogdHMgPDwg
InNldC1zdHJva2UtdGhpY2tuZXNzIjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Rh
dGU6IHRzIDw8ICJzZXQtc3RhdGUiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRUZXh0
RHJhd2luZ01vZGU6IHRzIDw8ICJzZXQtdGV4dC1kcmF3aW5nLW1vZGUiOyBicmVhazsKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VDb2xvcjogdHMgPDwgInNldC1zdHJva2UtY29sb3IiOyBi
cmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsQ29sb3I6IHRzIDw8ICJzZXQtZmlsbC1j
b2xvciI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVN0eWxlOiB0cyA8PCAi
c2V0LXN0cm9rZS1zdHlsZSI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxSdWxl
OiB0cyA8PCAic2V0LWZpbGwtcnVsZSI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEFs
cGhhOiB0cyA8PCAic2V0LWFscGhhIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q29t
cG9zaXRlT3BlcmF0aW9uOiB0cyA8PCAic2V0LWNvbXBvc2l0ZS1vcGVyYXRpb24iOyBicmVhazsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRBbnRpYWxpYXM6IHRzIDw8ICJzZXQtc2hvdWxk
LWFudGlhbGlhcyI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZFNtb290aEZv
bnRzOiB0cyA8PCAic2V0LXNob3VsZC1zbW9vdGhGb250cyI7IGJyZWFrOworICAgIGNhc2UgSXRl
bVR5cGU6OlNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czogdHMgPDwgInNldC1zaG91bGQt
c3VicGl4ZWwtcXVhbnRpemUtZm9udHMiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRE
cmF3THVtaW5hbmNlTWFzazogdHMgPDwgInNldC1kcmF3LWx1bWluYW5jZS1tYXNrIjsgYnJlYWs7
CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTogdHMgPDwg
InNldC1pbWFnZS1pbnRlcnBvbGF0aW9uLXF1YWxpdHkiOyBicmVhazsKKyNpZiBIQVZFKE9TX0RB
UktfTU9ERV9TVVBQT1JUKQorICAgIGNhc2UgSXRlbVR5cGU6OlNldFVzZURhcmtBcHBlYXJhbmNl
OiB0cyA8PCAic2V0LXVzZS1kYXJrLWFwcGVhcmFuY2UiOyBicmVhazsKKyNlbmRpZgogICAgIGNh
c2UgSXRlbVR5cGU6OlNldExpbmVDYXA6IHRzIDw8ICJzZXQtbGluZS1jYXAiOyBicmVhazsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDogdHMgPDwgInNldC1saW5lLWRhc2giOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjogdHMgPDwgInNldC1saW5lLWpvaW4i
OyBicmVhazsKQEAgLTExMDQsMjEgKzExNDEsNzMgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNh
dGVuYXRlQ1RNOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxDb25jYXRlbmF0ZUNUTT4oKTsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50Ogot
ICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCk7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3Ryb2tlR3JhZGllbnQ6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNl
dFN0cm9rZUdyYWRpZW50PigpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRTdHJva2VQYXR0ZXJuOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdHJva2VQYXR0ZXJu
PigpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsR3JhZGllbnQ6
CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldEZpbGxHcmFkaWVudD4oKTsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICB0cyA8
PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0
RmlsbFBhdHRlcm46CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldEZpbGxQYXR0ZXJuPigpOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoK
LSAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KCk7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6CisgICAgICAgIHRzIDw8IGl0
ZW0uZ2V0PFNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zPigpOworICAgICAgICBicmVhazsKKyNp
ZiBVU0UoQ0cpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGVnYWN5U2hhZG93OgorICAgICAgICB0
cyA8PCBpdGVtLmdldDxTZXRMZWdhY3lTaGFkb3c+KCk7CisgICAgICAgIGJyZWFrOworI2VuZGlm
CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93OgorICAgICAgICB0cyA8PCBpdGVtLmdldDxT
ZXRTaGFkb3c+KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9r
ZVRoaWNrbmVzczoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKLSAgICAgICAg
dHMgPDwgaXRlbS5nZXQ8U2V0U3RhdGU+KCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0VGV4dERy
YXdpbmdNb2RlOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRUZXh0RHJhd2luZ01vZGU+KCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUNvbG9yOgorICAg
ICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdHJva2VDb2xvcj4oKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbENvbG9yOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxT
ZXRGaWxsQ29sb3I+KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0
cm9rZVN0eWxlOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTdHJva2VTdHlsZT4oKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbFJ1bGU6CisgICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PFNldEZpbGxSdWxlPigpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRBbHBoYToKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0QWxwaGE+KCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldENvbXBvc2l0ZU9wZXJhdGlvbjoK
KyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0Q29tcG9zaXRlT3BlcmF0aW9uPigpOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRBbnRpYWxpYXM6CisgICAgICAg
IHRzIDw8IGl0ZW0uZ2V0PFNldFNob3VsZEFudGlhbGlhcz4oKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU21vb3RoRm9udHM6CisgICAgICAgIHRzIDw8IGl0
ZW0uZ2V0PFNldFNob3VsZFNtb290aEZvbnRzPigpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM6CisgICAgICAgIHRzIDw8
IGl0ZW0uZ2V0PFNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cz4oKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RHJhd0x1bWluYW5jZU1hc2s6CisgICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PFNldERyYXdMdW1pbmFuY2VNYXNrPigpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5OgorICAgICAgICB0
cyA8PCBpdGVtLmdldDxTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5PigpOworICAgICAgICBi
cmVhazsKKyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQorICAgIGNhc2UgSXRlbVR5cGU6
OlNldFVzZURhcmtBcHBlYXJhbmNlOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRVc2VEYXJr
QXBwZWFyYW5jZT4oKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRMaW5lQ2FwOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRMaW5lQ2FwPigpOwogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDQ2Mjg2NTQy
YTM5ZDk4YmVhYTA3YTgyMGYxNjA3NDc0N2QwMGM2M2EuLmZmOWY3Y2U4NmYyMDNkNDA0NGExODEy
ZWExMzdhZGYwYzMyZDVhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAt
MTY3LDQ1NSArMTY3LDM1NCBAQCBwcml2YXRlOgogICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5z
Zm9ybTsKIH07CiAKLWNsYXNzIFNldElubGluZUZpbGxHcmFkaWVudCB7Cit0ZW1wbGF0ZSA8SXRl
bVR5cGUgdHlwZSwgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqYXBwbGllcikoUmVmPEdyYWRpZW50
PiYmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKT4KK2NsYXNzIFNldEdyYWRpZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNl
dElubGluZUZpbGxHcmFkaWVudDsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJ
dGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gdHlw
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQ4X3QgbWF4Q29sb3JTdG9wQ291bnQgPSA0OwogCi0gICAgU2V0SW5saW5l
RmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFk
aWVudFNwYWNlVHJhbnNmb3JtKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQoZmxvYXQgb2Zmc2V0c1ttYXhDb2xvclN0b3BDb3VudF0sIFNSR0JBPHVpbnQ4X3Q+IGNv
bG9yc1ttYXhDb2xvclN0b3BDb3VudF0sIGNvbnN0IEdyYWRpZW50OjpEYXRhJiwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtLCBHcmFkaWVudFNwcmVhZE1ldGhv
ZCwgdWludDhfdCBjb2xvclN0b3BDb3VudCk7CisgICAgU2V0R3JhZGllbnQoUmVmPEdyYWRpZW50
PiYmIGdyYWRpZW50LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50U3BhY2VUcmFuc2Zv
cm0pCisgICAgICAgIDogbV9ncmFkaWVudChXVEZNb3ZlKGdyYWRpZW50KSkKKyAgICAgICAgLCBt
X2dyYWRpZW50U3BhY2VUcmFuc2Zvcm0oZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSkKKyAgICB7Cisg
ICAgfQogCi0gICAgc3RhdGljIGJvb2wgaXNJbmxpbmUoY29uc3QgR3JhZGllbnQmKTsKLSAgICBS
ZWY8R3JhZGllbnQ+IGdyYWRpZW50KCkgY29uc3Q7CisgICAgY29uc3QgR3JhZGllbnQmIGdyYWRp
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9ncmFkaWVudDsgfQorICAgIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhZGllbnRT
cGFjZVRyYW5zZm9ybTsgfQogCi0gICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25z
dDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBtX2dyYWRpZW50LmdldCgpOwor
ICAgICAgICBlbmNvZGVyIDw8IG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKKyAgICB9CiAKLXBy
aXZhdGU6Ci0gICAgZmxvYXQgbV9vZmZzZXRzW21heENvbG9yU3RvcENvdW50XTsKLSAgICBTUkdC
QTx1aW50OF90PiBtX2NvbG9yc1ttYXhDb2xvclN0b3BDb3VudF07Ci0gICAgR3JhZGllbnQ6OkRh
dGEgbV9kYXRhOwotICAgIEFmZmluZVRyYW5zZm9ybSBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm07
Ci0gICAgR3JhZGllbnRTcHJlYWRNZXRob2QgbV9zcHJlYWRNZXRob2QgeyBHcmFkaWVudFNwcmVh
ZE1ldGhvZDo6UGFkIH07Ci0gICAgdWludDhfdCBtX2NvbG9yU3RvcENvdW50IHsgMCB9OwotfTsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U2V0R3JhZGllbnQ+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgYXV0byBncmFkaWVudCA9
IEdyYWRpZW50OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGlmICghZ3JhZGllbnQpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi1jbGFzcyBTZXRJbmxpbmVGaWxsQ29sb3Ig
ewotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVt
VHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lu
bGluZUl0ZW0gPSB0cnVlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVt
ID0gZmFsc2U7CisgICAgICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gZ3JhZGllbnRTcGFj
ZVRyYW5zZm9ybTsKKyAgICAgICAgZGVjb2RlciA+PiBncmFkaWVudFNwYWNlVHJhbnNmb3JtOwor
ICAgICAgICBpZiAoIWdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCisgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpncmFk
aWVudCksICpncmFkaWVudFNwYWNlVHJhbnNmb3JtIH0gfTsKKyAgICB9CiAKLSAgICBTZXRJbmxp
bmVGaWxsQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JEYXRhKQotICAgICAgICA6IG1fY29sb3JE
YXRhKGNvbG9yRGF0YSkKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkK
ICAgICB7CisgICAgICAgIChjb250ZXh0LiphcHBsaWVyKShtX2dyYWRpZW50LmdldCgpLCBtX2dy
YWRpZW50U3BhY2VUcmFuc2Zvcm0pOwogICAgIH0KIAotICAgIENvbG9yIGNvbG9yKCkgY29uc3Qg
eyByZXR1cm4geyBtX2NvbG9yRGF0YSB9OyB9Ci0gICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRl
eHQmKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBTUkdCQTx1aW50OF90PiBtX2NvbG9yRGF0YTsK
K3Byb3RlY3RlZDoKKyAgICBSZWY8R3JhZGllbnQ+IG1fZ3JhZGllbnQ7CisgICAgQWZmaW5lVHJh
bnNmb3JtIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKIH07CiAKLWNsYXNzIFNldElubGluZVN0
cm9rZUNvbG9yIHsKK3RlbXBsYXRlIDxJdGVtVHlwZSB0eXBlLCB2b2lkIChHcmFwaGljc0NvbnRl
eHQ6OiphcHBsaWVyKShSZWY8UGF0dGVybj4mJik+CitjbGFzcyBTZXRQYXR0ZXJuIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNl
dElubGluZVN0cm9rZUNvbG9yOworICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5
cGUgPSB0eXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVl
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7CiAKLSAg
ICBTZXRJbmxpbmVTdHJva2VDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEpCi0gICAgICAg
IDogbV9jb2xvckRhdGEoY29sb3JEYXRhKQorICAgIFNldFBhdHRlcm4oUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgUGF0dGVybjo6UGFyYW1ldGVycyYg
cGFyYW1ldGVycykKKyAgICAgICAgOiBtX2ltYWdlSWRlbnRpZmllcihpbWFnZUlkZW50aWZpZXIp
CisgICAgICAgICwgbV9wYXJhbWV0ZXJzKHBhcmFtZXRlcnMpCiAgICAgewogICAgIH0KIAotICAg
IENvbG9yIGNvbG9yKCkgY29uc3QgeyByZXR1cm4geyBtX2NvbG9yRGF0YSB9OyB9CisgICAgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faW1hZ2VJZGVudGlmaWVyOyB9CisgICAgY29uc3QgUGF0dGVybjo6UGFyYW1ldGVycyYgcGFy
YW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyczsgfQogCi0gICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgTmF0aXZlSW1hZ2UmIGltYWdlKSBjb25zdAorICAgIHsKKyAgICAgICAgYXV0
byBwYXR0ZXJuID0gUGF0dGVybjo6Y3JlYXRlKG1ha2VSZWYoaW1hZ2UpLCBtX3BhcmFtZXRlcnMp
OworICAgICAgICAoY29udGV4dC4qYXBwbGllcikoV1RGTW92ZShwYXR0ZXJuKSk7CisgICAgfQog
Ci1wcml2YXRlOgotICAgIFNSR0JBPHVpbnQ4X3Q+IG1fY29sb3JEYXRhOworcHJvdGVjdGVkOgor
ICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlSWRlbnRpZmllcjsKKyAgICBQ
YXR0ZXJuOjpQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKIH07CiAKLWNsYXNzIFNldFN0cm9rZVRo
aWNrbmVzcyB7Cit0ZW1wbGF0ZSA8SXRlbVR5cGUgdHlwZSwgdHlwZW5hbWUgQXBwbGllciwgQXBw
bGllciBhcHBsaWVyLCBjbGFzcy4uLiBBcmd1bWVudHM+CitjbGFzcyBTZXRJbmxpbmVTdGF0ZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1U
eXBlOjpTZXRTdHJva2VUaGlja25lc3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBp
dGVtVHlwZSA9IHR5cGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9
IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsK
IAotICAgIFNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlja25lc3MpCi0gICAgICAgIDogbV90
aGlja25lc3ModGhpY2tuZXNzKQorICAgIFNldElubGluZVN0YXRlKEFyZ3VtZW50cy4uLiBhcmd1
bWVudHMpCisgICAgICAgIDogbV9hcmd1bWVudHMoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJn
dW1lbnRzKS4uLikKICAgICB7CiAgICAgfQogCi0gICAgZmxvYXQgdGhpY2tuZXNzKCkgY29uc3Qg
eyByZXR1cm4gbV90aGlja25lc3M7IH0KKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCkgY29uc3QKKyAgICB7CisgICAgICAgIHN0ZDo6YXBwbHkoWyZdKEFyZ3VtZW50cy4u
LiBhcmd1bWVudHMpIHsKKyAgICAgICAgICAgIChjb250ZXh0LiphcHBsaWVyKShzdGQ6OmZvcndh
cmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKTsKKyAgICAgICAgfSwgbV9hcmd1bWVudHMpOwor
ICAgIH0KIAotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgdGVt
cGxhdGU8IHN0ZDo6c2l6ZV90IEk+CisgICAgY29uc3QgYXV0byYgYXJndW1lbnQoKSBjb25zdCB7
IHJldHVybiBzdGQ6OmdldDxJPihtX2FyZ3VtZW50cyk7IH0KIAotcHJpdmF0ZToKLSAgICBmbG9h
dCBtX3RoaWNrbmVzcyB7IDAgfTsKK3Byb3RlY3RlZDoKKyAgICBzdGQ6OnR1cGxlPEFyZ3VtZW50
cy4uLj4gbV9hcmd1bWVudHM7CiB9OwogCi1jbGFzcyBTZXRTdGF0ZSB7Cit1c2luZyBTZXRTdHJv
a2VHcmFkaWVudCA9IFNldEdyYWRpZW50PAorICAgIEl0ZW1UeXBlOjpTZXRTdHJva2VHcmFkaWVu
dCwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VHcmFkaWVudAorPjsKKwordXNpbmcg
U2V0U3Ryb2tlUGF0dGVybiA9IFNldFBhdHRlcm48CisgICAgSXRlbVR5cGU6OlNldFN0cm9rZVBh
dHRlcm4sCisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybgorPjsKKwordXNp
bmcgU2V0RmlsbEdyYWRpZW50ID0gU2V0R3JhZGllbnQ8CisgICAgSXRlbVR5cGU6OlNldEZpbGxH
cmFkaWVudCwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsR3JhZGllbnQKKz47CisKK3Vz
aW5nIFNldEZpbGxQYXR0ZXJuID0gU2V0UGF0dGVybjwKKyAgICBJdGVtVHlwZTo6U2V0RmlsbFBh
dHRlcm4sCisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbFBhdHRlcm4KKz47CisKK3VzaW5n
IFNldElubGluZVNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID0gU2V0SW5saW5lU3RhdGU8CisgICAg
SXRlbVR5cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zLAorICAgIHZvaWQgKEdyYXBoaWNz
Q29udGV4dDo6KikoYm9vbCksCisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0U2hhZG93c0lnbm9y
ZVRyYW5zZm9ybXMsCisgICAgYm9vbAorPjsKKworY2xhc3MgU2V0U2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXMgOiBwdWJsaWMgU2V0SW5saW5lU2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6U2V0
U3RhdGU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IGZhbHNlOwot
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0KLSAgICBX
RUJDT1JFX0VYUE9SVCBTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKTsKLQotICAgIGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlQ2hhbmdlJiBzdGF0ZUNoYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVD
aGFuZ2U7IH0KLSAgICBjb25zdCBQYXR0ZXJuOjpQYXJhbWV0ZXJzJiBzdHJva2VQYXR0ZXJuUGFy
YW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fc3Ryb2tlUGF0dGVybi5wYXJhbWV0ZXJzOyB9Ci0g
ICAgY29uc3QgUGF0dGVybjo6UGFyYW1ldGVycyYgZmlsbFBhdHRlcm5QYXJhbWV0ZXJzKCkgY29u
c3QgeyByZXR1cm4gbV9maWxsUGF0dGVybi5wYXJhbWV0ZXJzOyB9Ci0gICAgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX3N0cm9rZVBhdHRlcm4udGlsZUltYWdlSWRlbnRpZmllcjsgfQotICAgIFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fZmlsbFBhdHRlcm4udGlsZUltYWdlSWRlbnRpZmllcjsgfQotCi0gICAgc3RhdGlj
IHZvaWQgYnVpbGRlclN0YXRlKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MpOwotCi0gICAg
c3RhdGljIHZvaWQgZHVtcFN0YXRlQ2hhbmdlcyhXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdz
KTsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U2V0U3Rh
dGU+IGRlY29kZShEZWNvZGVyJik7Ci0KLSAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYs
IE5hdGl2ZUltYWdlKiBzdHJva2VQYXR0ZXJuSW1hZ2UsIE5hdGl2ZUltYWdlKiBmaWxsUGF0dGVy
bkltYWdlKTsKLQotcHJpdmF0ZToKLSAgICBzdHJ1Y3QgUGF0dGVybkRhdGEgewotICAgICAgICBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgdGlsZUltYWdlSWRlbnRpZmllcjsKLSAgICAgICAg
UGF0dGVybjo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgIH07Ci0KLSAgICBXRUJDT1JFX0VY
UE9SVCBTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYsIGNvbnN0IFBh
dHRlcm5EYXRhJiBzdHJva2VQYXR0ZXJuLCBjb25zdCBQYXR0ZXJuRGF0YSYgZmlsbFBhdHRlcm4p
OwotCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UgbV9zdGF0ZUNoYW5nZTsKLSAgICBQ
YXR0ZXJuRGF0YSBtX3N0cm9rZVBhdHRlcm47Ci0gICAgUGF0dGVybkRhdGEgbV9maWxsUGF0dGVy
bjsKKyAgICB1c2luZyBTZXRJbmxpbmVTaGFkb3dzSWdub3JlVHJhbnNmb3Jtczo6U2V0SW5saW5l
U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CisgICAgYm9vbCBzaGFkb3dzSWdub3JlVHJhbnNmb3Jt
cygpIGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50PDA+KCk7IH0KIH07CiAKLXRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Ci12b2lkIFNldFN0YXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
LXsKLSAgICBhdXRvIGNoYW5nZUZsYWdzID0gbV9zdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzOwot
ICAgIGVuY29kZXIgPDwgY2hhbmdlRmxhZ3M7Ci0KLSAgICBhdXRvJiBzdGF0ZSA9IG1fc3RhdGVD
aGFuZ2UubV9zdGF0ZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7Ci0gICAgICAgIGVuY29kZXIgPDwg
ISFzdGF0ZS5zdHJva2VHcmFkaWVudDsKLSAgICAgICAgaWYgKHN0YXRlLnN0cm9rZUdyYWRpZW50
KQotICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGUuc3Ryb2tlR3JhZGllbnQ7Ci0gICAgfQot
Ci0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJv
a2VQYXR0ZXJuQ2hhbmdlKSkgewotICAgICAgICBlbmNvZGVyIDw8ICEhc3RhdGUuc3Ryb2tlUGF0
dGVybjsKLSAgICAgICAgaWYgKGF1dG8mIHBhdHRlcm4gPSBzdGF0ZS5zdHJva2VQYXR0ZXJuKSB7
Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHBhdHRlcm4tPnRpbGVJbWFnZSgpLnJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcigpOwotICAgICAgICAgICAgZW5jb2RlciA8PCBwYXR0ZXJuLT5wYXJh
bWV0ZXJzKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpIHsKLSAgICAgICAg
ZW5jb2RlciA8PCAhIXN0YXRlLmZpbGxHcmFkaWVudDsKLSAgICAgICAgaWYgKHN0YXRlLmZpbGxH
cmFkaWVudCkKLSAgICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRlLmZpbGxHcmFkaWVudDsKLSAg
ICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OkZpbGxQYXR0ZXJuQ2hhbmdlKSkgewotICAgICAgICBlbmNvZGVyIDw8ICEhc3RhdGUuZmlsbFBh
dHRlcm47Ci0gICAgICAgIGlmIChhdXRvJiBwYXR0ZXJuID0gc3RhdGUuZmlsbFBhdHRlcm4pIHsK
LSAgICAgICAgICAgIGVuY29kZXIgPDwgcGF0dGVybi0+dGlsZUltYWdlKCkucmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKCk7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHBhdHRlcm4tPnBhcmFt
ZXRlcnMoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93Q2hhbmdlKSkgewotICAgICAgICBlbmNvZGVy
IDw8IHN0YXRlLnNoYWRvd09mZnNldDsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dC
bHVyOwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd0NvbG9yOwogI2lmIFVTRShDRykK
LSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFkaXVzOwotI2VuZGlm
IC8vIFVTRShDRykKLSAgICB9Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIg
PDwgc3RhdGUuc3Ryb2tlVGhpY2tuZXNzOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpUZXh0RHJhd2luZ01vZGVDaGFuZ2UpKQotICAgICAgICBl
bmNvZGVyIDw8IHN0YXRlLnRleHREcmF3aW5nTW9kZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpKQotICAgICAg
ICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZUNvbG9yOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2UpKQotICAgICAgICBl
bmNvZGVyIDw8IHN0YXRlLmZpbGxDb2xvcjsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlu
cyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlU3R5bGVDaGFuZ2UpKQotICAgICAgICBlbmNv
ZGVyIDw8IHN0YXRlLnN0cm9rZVN0eWxlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsUnVsZUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIg
PDwgc3RhdGUuZmlsbFJ1bGU7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJhdGlvbkNoYW5nZSkpCi0gICAgICAgIGVuY29k
ZXIgPDwgc3RhdGUuY29tcG9zaXRlT3BlcmF0b3I7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkJsZW5kTW9kZUNoYW5nZSkpCi0gICAgICAgIGVu
Y29kZXIgPDwgc3RhdGUuYmxlbmRNb2RlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpJbWFnZUludGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlKSkK
LSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5OwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpBbHBoYUNo
YW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuYWxwaGE7Ci0KLSAgICBpZiAoY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZEFudGlhbGlhc0NoYW5n
ZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hvdWxkQW50aWFsaWFzOwotCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTbW9vdGhG
b250c0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hvdWxkU21vb3RoRm9udHM7
Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNo
b3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3Rh
dGUuc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5n
ZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci19
Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25hbDxTZXRTdGF0ZT4gU2V0U3RhdGU6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPEdyYXBoaWNzQ29udGV4
dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzPiBjaGFuZ2VGbGFnczsKLSAgICBkZWNvZGVyID4+IGNo
YW5nZUZsYWdzOwotICAgIGlmICghY2hhbmdlRmxhZ3MpCi0gICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0KLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSBzdGF0ZUNoYW5nZTsKLSAg
ICBzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzID0gKmNoYW5nZUZsYWdzOwotCi0gICAgUGF0dGVy
bkRhdGEgc3Ryb2tlUGF0dGVybjsKLSAgICBQYXR0ZXJuRGF0YSBmaWxsUGF0dGVybjsKLQotICAg
IGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaGFz
U3Ryb2tlR3JhZGllbnQ7Ci0gICAgICAgIGRlY29kZXIgPj4gaGFzU3Ryb2tlR3JhZGllbnQ7Ci0g
ICAgICAgIGlmICghaGFzU3Ryb2tlR3JhZGllbnQuaGFzVmFsdWUoKSkKLSAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgaWYgKGhhc1N0cm9rZUdyYWRpZW50LnZhbHVl
KCkpIHsKLSAgICAgICAgICAgIGF1dG8gc3Ryb2tlR3JhZGllbnQgPSBHcmFkaWVudDo6ZGVjb2Rl
KGRlY29kZXIpOwotICAgICAgICAgICAgaWYgKCFzdHJva2VHcmFkaWVudCkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0
YXRlLnN0cm9rZUdyYWRpZW50ID0gV1RGTW92ZSgqc3Ryb2tlR3JhZGllbnQpOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVBhdHRlcm5DaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlv
bmFsPGJvb2w+IGhhc1N0cm9rZVBhdHRlcm47Ci0gICAgICAgIGRlY29kZXIgPj4gaGFzU3Ryb2tl
UGF0dGVybjsKLSAgICAgICAgaWYgKCFoYXNTdHJva2VQYXR0ZXJuLmhhc1ZhbHVlKCkpCi0gICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmIChoYXNTdHJva2VQYXR0
ZXJuLnZhbHVlKCkpIHsKLSAgICAgICAgICAgIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcj4gcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOwotICAgICAgICAgICAgZGVjb2Rl
ciA+PiByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7Ci0gICAgICAgICAgICBpZiAoIXJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBPcHRpb25hbDxQYXR0ZXJuOjpQYXJhbWV0
ZXJzPiBwYXJhbWV0ZXJzOwotICAgICAgICAgICAgZGVjb2RlciA+PiBwYXJhbWV0ZXJzOwotICAg
ICAgICAgICAgaWYgKCFwYXJhbWV0ZXJzKQotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0KLSAgICAgICAgICAgIHN0cm9rZVBhdHRlcm4gPSB7ICpyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIsICpwYXJhbWV0ZXJzIH07Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAo
c3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
RmlsbEdyYWRpZW50Q2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBoYXNGaWxsR3Jh
ZGllbnQ7Ci0gICAgICAgIGRlY29kZXIgPj4gaGFzRmlsbEdyYWRpZW50OwotICAgICAgICBpZiAo
IWhhc0ZpbGxHcmFkaWVudC5oYXNWYWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLQotICAgICAgICBpZiAoaGFzRmlsbEdyYWRpZW50LnZhbHVlKCkpIHsKLSAgICAgICAg
ICAgIGF1dG8gZmlsbEdyYWRpZW50ID0gR3JhZGllbnQ6OmRlY29kZShkZWNvZGVyKTsKLSAgICAg
ICAgICAgIGlmICghZmlsbEdyYWRpZW50KQotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0KLSAgICAgICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbEdyYWRpZW50ID0g
V1RGTW92ZSgqZmlsbEdyYWRpZW50KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzdGF0
ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxs
UGF0dGVybkNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaGFzRmlsbFBhdHRlcm47
Ci0gICAgICAgIGRlY29kZXIgPj4gaGFzRmlsbFBhdHRlcm47Ci0gICAgICAgIGlmICghaGFzRmls
bFBhdHRlcm4uaGFzVmFsdWUoKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0K
LSAgICAgICAgaWYgKGhhc0ZpbGxQYXR0ZXJuLnZhbHVlKCkpIHsKLSAgICAgICAgICAgIE9wdGlv
bmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyOwotICAgICAgICAgICAgZGVjb2RlciA+PiByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7
Ci0gICAgICAgICAgICBpZiAoIXJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKLSAgICAgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBPcHRpb25hbDxQYXR0
ZXJuOjpQYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzOwotICAgICAgICAgICAgZGVjb2RlciA+PiBwYXJh
bWV0ZXJzOwotICAgICAgICAgICAgaWYgKCFwYXJhbWV0ZXJzKQotICAgICAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgICAgIGZpbGxQYXR0ZXJuID0geyAqcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLCAqcGFyYW1ldGVycyB9OwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBz
aGFkb3dPZmZzZXQ7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hhZG93T2Zmc2V0OwotICAgICAgICBp
ZiAoIXNoYWRvd09mZnNldCkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAg
ICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dPZmZzZXQgPSAqc2hhZG93T2Zmc2V0Owot
Ci0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzaGFkb3dCbHVyOwotICAgICAgICBkZWNvZGVyID4+
IHNoYWRvd0JsdXI7Ci0gICAgICAgIGlmICghc2hhZG93Qmx1cikKLSAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dCbHVy
ID0gKnNoYWRvd0JsdXI7Ci0KLSAgICAgICAgT3B0aW9uYWw8Q29sb3I+IHNoYWRvd0NvbG9yOwot
ICAgICAgICBkZWNvZGVyID4+IHNoYWRvd0NvbG9yOwotICAgICAgICBpZiAoIXNoYWRvd0NvbG9y
KQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK3VzaW5nIFNldElubGluZUxlZ2Fj
eVNoYWRvdyA9IFNldElubGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRMZWdhY3lTaGFkb3cs
CisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCwg
Y29uc3QgQ29sb3ImKSwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRMZWdhY3lTaGFkb3csCisg
ICAgRmxvYXRTaXplLCBmbG9hdCwgU1JHQkE8dWludDhfdD4KKz47CisKK2NsYXNzIFNldExlZ2Fj
eVNoYWRvdyA6IHB1YmxpYyBTZXRJbmxpbmVMZWdhY3lTaGFkb3cgeworcHVibGljOgorICAgIHVz
aW5nIFNldElubGluZUxlZ2FjeVNoYWRvdzo6U2V0SW5saW5lTGVnYWN5U2hhZG93OworICAgIEZs
b2F0U2l6ZSBvZmZzZXQoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9CisgICAgZmxv
YXQgYmx1cigpIGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50PDE+KCk7IH0KKyAgICBDb2xvciBjb2xv
cigpIGNvbnN0IHsgcmV0dXJuIHsgYXJndW1lbnQ8Mj4oKSB9OyB9Cit9OworI2VuZGlmCiAKLSAg
ICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dDb2xvciA9ICpzaGFkb3dDb2xvcjsKK3Vz
aW5nIFNldElubGluZVNoYWRvdyA9IFNldElubGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRT
aGFkb3csCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShjb25zdCBGbG9hdFNpemUmLCBm
bG9hdCwgY29uc3QgQ29sb3ImKSwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRTaGFkb3csCisg
ICAgRmxvYXRTaXplLCBmbG9hdCwgU1JHQkE8dWludDhfdD4KKz47CiAKLSNpZiBVU0UoQ0cpCi0g
ICAgICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7Ci0gICAgICAgIGRl
Y29kZXIgPj4gc2hhZG93c1VzZUxlZ2FjeVJhZGl1czsKLSAgICAgICAgaWYgKCFzaGFkb3dzVXNl
TGVnYWN5UmFkaXVzKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAg
ICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd3NVc2VMZWdhY3lSYWRpdXMgPSAqc2hhZG93c1Vz
ZUxlZ2FjeVJhZGl1czsKLSNlbmRpZiAvLyBVU0UoQ0cpCi0gICAgfQorY2xhc3MgU2V0U2hhZG93
IDogcHVibGljIFNldElubGluZVNoYWRvdyB7CitwdWJsaWM6CisgICAgdXNpbmcgU2V0SW5saW5l
U2hhZG93OjpTZXRJbmxpbmVTaGFkb3c7CisgICAgRmxvYXRTaXplIG9mZnNldCgpIGNvbnN0IHsg
cmV0dXJuIGFyZ3VtZW50PDA+KCk7IH0KKyAgICBmbG9hdCBibHVyKCkgY29uc3QgeyByZXR1cm4g
YXJndW1lbnQ8MT4oKTsgfQorICAgIENvbG9yIGNvbG9yKCkgY29uc3QgeyByZXR1cm4geyBhcmd1
bWVudDwyPigpIH07IH0KK307CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlVGhpY2tuZXNzQ2hhbmdlKSkgewot
ICAgICAgICBPcHRpb25hbDxmbG9hdD4gc3Ryb2tlVGhpY2tuZXNzOwotICAgICAgICBkZWNvZGVy
ID4+IHN0cm9rZVRoaWNrbmVzczsKLSAgICAgICAgaWYgKCFzdHJva2VUaGlja25lc3MpCi0gICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwordXNpbmcgU2V0SW5saW5lU3Ryb2tlVGhpY2tu
ZXNzID0gU2V0SW5saW5lU3RhdGU8CisgICAgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcywK
KyAgICB2b2lkIChHcmFwaGljc0NvbnRleHQ6OiopKGZsb2F0KSwKKyAgICAmR3JhcGhpY3NDb250
ZXh0OjpzZXRTdHJva2VUaGlja25lc3MsCisgICAgZmxvYXQKKz47CiAKLSAgICAgICAgc3RhdGVD
aGFuZ2UubV9zdGF0ZS5zdHJva2VUaGlja25lc3MgPSAqc3Ryb2tlVGhpY2tuZXNzOwotICAgIH0K
K2NsYXNzIFNldFN0cm9rZVRoaWNrbmVzcyA6IHB1YmxpYyBTZXRJbmxpbmVTdHJva2VUaGlja25l
c3MgeworcHVibGljOgorICAgIHVzaW5nIFNldElubGluZVN0cm9rZVRoaWNrbmVzczo6U2V0SW5s
aW5lU3Ryb2tlVGhpY2tuZXNzOworICAgIGZsb2F0IHRoaWNrbmVzcygpIGNvbnN0IHsgcmV0dXJu
IGFyZ3VtZW50PDA+KCk7IH0KK307CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6VGV4dERyYXdpbmdNb2RlQ2hhbmdlKSkg
ewotICAgICAgICBPcHRpb25hbDxUZXh0RHJhd2luZ01vZGVGbGFncz4gdGV4dERyYXdpbmdNb2Rl
OwotICAgICAgICBkZWNvZGVyID4+IHRleHREcmF3aW5nTW9kZTsKLSAgICAgICAgaWYgKCF0ZXh0
RHJhd2luZ01vZGUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwordXNpbmcgU2V0
SW5saW5lVGV4dERyYXdpbmdNb2RlID0gU2V0SW5saW5lU3RhdGU8CisgICAgSXRlbVR5cGU6OlNl
dFRleHREcmF3aW5nTW9kZSwKKyAgICB2b2lkIChHcmFwaGljc0NvbnRleHQ6OiopKFRleHREcmF3
aW5nTW9kZUZsYWdzKSwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRUZXh0RHJhd2luZ01vZGUs
CisgICAgVGV4dERyYXdpbmdNb2RlRmxhZ3MKKz47CiAKLSAgICAgICAgc3RhdGVDaGFuZ2UubV9z
dGF0ZS50ZXh0RHJhd2luZ01vZGUgPSBXVEZNb3ZlKCp0ZXh0RHJhd2luZ01vZGUpOwotICAgIH0K
K2NsYXNzIFNldFRleHREcmF3aW5nTW9kZSA6IHB1YmxpYyBTZXRJbmxpbmVUZXh0RHJhd2luZ01v
ZGUgeworcHVibGljOgorICAgIHVzaW5nIFNldElubGluZVRleHREcmF3aW5nTW9kZTo6U2V0SW5s
aW5lVGV4dERyYXdpbmdNb2RlOworICAgIFRleHREcmF3aW5nTW9kZUZsYWdzIHRleHREcmF3aW5n
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50PDA+KCk7IH0KK307CiAKLSAgICBpZiAoc3Rh
dGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ry
b2tlQ29sb3JDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPENvbG9yPiBzdHJva2VDb2xvcjsK
LSAgICAgICAgZGVjb2RlciA+PiBzdHJva2VDb2xvcjsKLSAgICAgICAgaWYgKCFzdHJva2VDb2xv
cikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit1c2luZyBTZXRJbmxpbmVTdHJv
a2VDb2xvciA9IFNldElubGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRTdHJva2VDb2xvciwK
KyAgICB2b2lkIChHcmFwaGljc0NvbnRleHQ6OiopKGNvbnN0IENvbG9yJiksCisgICAgJkdyYXBo
aWNzQ29udGV4dDo6c2V0U3Ryb2tlQ29sb3IsCisgICAgU1JHQkE8dWludDhfdD4KKz47CiAKLSAg
ICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VDb2xvciA9ICpzdHJva2VDb2xvcjsKLSAg
ICB9CitjbGFzcyBTZXRTdHJva2VDb2xvciA6IHB1YmxpYyBTZXRJbmxpbmVTdHJva2VDb2xvciB7
CitwdWJsaWM6CisgICAgdXNpbmcgU2V0SW5saW5lU3Ryb2tlQ29sb3I6OlNldElubGluZVN0cm9r
ZUNvbG9yOworICAgIENvbG9yIGNvbG9yKCkgY29uc3QgeyByZXR1cm4geyBhcmd1bWVudDwwPigp
IH07IH0KK307CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25h
bDxDb2xvcj4gZmlsbENvbG9yOwotICAgICAgICBkZWNvZGVyID4+IGZpbGxDb2xvcjsKLSAgICAg
ICAgaWYgKCFmaWxsQ29sb3IpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwordXNp
bmcgU2V0SW5saW5lRmlsbENvbG9yID0gU2V0SW5saW5lU3RhdGU8CisgICAgSXRlbVR5cGU6OlNl
dEZpbGxDb2xvciwKKyAgICB2b2lkIChHcmFwaGljc0NvbnRleHQ6OiopKGNvbnN0IENvbG9yJiks
CisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbENvbG9yLAorICAgIFNSR0JBPHVpbnQ4X3Q+
Cis+OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbENvbG9yID0gKmZpbGxDb2xv
cjsKLSAgICB9CitjbGFzcyBTZXRGaWxsQ29sb3IgOiBwdWJsaWMgU2V0SW5saW5lRmlsbENvbG9y
IHsKK3B1YmxpYzoKKyAgICB1c2luZyBTZXRJbmxpbmVGaWxsQ29sb3I6OlNldElubGluZUZpbGxD
b2xvcjsKKyAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgYXJndW1lbnQ8MD4oKSB9
OyB9Cit9OwogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVN0eWxlQ2hhbmdlKSkgewotICAgICAgICBTdHJva2VT
dHlsZSBzdHJva2VTdHlsZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdHJva2VTdHls
ZSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwordXNpbmcgU2V0SW5saW5lU3Ry
b2tlU3R5bGUgPSBTZXRJbmxpbmVTdGF0ZTwKKyAgICBJdGVtVHlwZTo6U2V0U3Ryb2tlU3R5bGUs
CisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShTdHJva2VTdHlsZSksCisgICAgJkdyYXBo
aWNzQ29udGV4dDo6c2V0U3Ryb2tlU3R5bGUsCisgICAgU3Ryb2tlU3R5bGUKKz47CiAKLSAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VTdHlsZSA9IHN0cm9rZVN0eWxlOwotICAgIH0K
LQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpGaWxsUnVsZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8V2luZFJ1bGU+
IGZpbGxSdWxlOwotICAgICAgICBkZWNvZGVyID4+IGZpbGxSdWxlOwotICAgICAgICBpZiAoIWZp
bGxSdWxlKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK2NsYXNzIFNldFN0cm9r
ZVN0eWxlIDogcHVibGljIFNldElubGluZVN0cm9rZVN0eWxlIHsKK3B1YmxpYzoKKyAgICB1c2lu
ZyBTZXRJbmxpbmVTdHJva2VTdHlsZTo6U2V0SW5saW5lU3Ryb2tlU3R5bGU7CisgICAgU3Ryb2tl
U3R5bGUgc3R5bGUoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9Cit9OwogCi0gICAg
ICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuZmlsbFJ1bGUgPSAqZmlsbFJ1bGU7Ci0gICAgfQordXNp
bmcgU2V0SW5saW5lRmlsbFJ1bGUgPSBTZXRJbmxpbmVTdGF0ZTwKKyAgICBJdGVtVHlwZTo6U2V0
RmlsbFJ1bGUsCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShXaW5kUnVsZSksCisgICAg
JkdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbFJ1bGUsCisgICAgV2luZFJ1bGUKKz47CiAKLSAgICBp
ZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6Q29tcG9zaXRlT3BlcmF0aW9uQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxDb21wb3Np
dGVPcGVyYXRvcj4gY29tcG9zaXRlT3BlcmF0b3I7Ci0gICAgICAgIGRlY29kZXIgPj4gY29tcG9z
aXRlT3BlcmF0b3I7Ci0gICAgICAgIGlmICghY29tcG9zaXRlT3BlcmF0b3IpCi0gICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworY2xhc3MgU2V0RmlsbFJ1bGUgOiBwdWJsaWMgU2V0SW5s
aW5lRmlsbFJ1bGUgeworcHVibGljOgorICAgIHVzaW5nIFNldElubGluZUZpbGxSdWxlOjpTZXRJ
bmxpbmVGaWxsUnVsZTsKKyAgICBXaW5kUnVsZSBmaWxsUnVsZSgpIGNvbnN0IHsgcmV0dXJuIGFy
Z3VtZW50PDA+KCk7IH0KK307CiAKLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5jb21wb3Np
dGVPcGVyYXRvciA9ICpjb21wb3NpdGVPcGVyYXRvcjsKLSAgICB9Cit1c2luZyBTZXRJbmxpbmVB
bHBoYSA9IFNldElubGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRBbHBoYSwKKyAgICB2b2lk
IChHcmFwaGljc0NvbnRleHQ6OiopKGZsb2F0KSwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRB
bHBoYSwKKyAgICBmbG9hdAorPjsKIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UpKSB7Ci0gICAg
ICAgIE9wdGlvbmFsPEJsZW5kTW9kZT4gYmxlbmRNb2RlOwotICAgICAgICBkZWNvZGVyID4+IGJs
ZW5kTW9kZTsKLSAgICAgICAgaWYgKCFibGVuZE1vZGUpCi0gICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworY2xhc3MgU2V0QWxwaGEgOiBwdWJsaWMgU2V0SW5saW5lQWxwaGEgeworcHVi
bGljOgorICAgIHVzaW5nIFNldElubGluZUFscGhhOjpTZXRJbmxpbmVBbHBoYTsKKyAgICBmbG9h
dCBhbHBoYSgpIGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50PDA+KCk7IH0KK307CiAKLSAgICAgICAg
c3RhdGVDaGFuZ2UubV9zdGF0ZS5ibGVuZE1vZGUgPSAqYmxlbmRNb2RlOwotICAgIH0KK3VzaW5n
IFNldElubGluZUNvbXBvc2l0ZU9wZXJhdGlvbiA9IFNldElubGluZVN0YXRlPAorICAgIEl0ZW1U
eXBlOjpTZXRDb21wb3NpdGVPcGVyYXRpb24sCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0Ojoq
KShDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKSwKKyAgICAmR3JhcGhpY3NDb250ZXh0Ojpz
ZXRDb21wb3NpdGVPcGVyYXRpb24sCisgICAgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZQor
PjsKIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpJbWFnZUludGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlKSkgewotICAgICAg
ICBPcHRpb25hbDxJbnRlcnBvbGF0aW9uUXVhbGl0eT4gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0
eTsKLSAgICAgICAgZGVjb2RlciA+PiBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5OwotICAgICAg
ICBpZiAoIWltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpCi0gICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworY2xhc3MgU2V0Q29tcG9zaXRlT3BlcmF0aW9uIDogcHVibGljIFNldElubGlu
ZUNvbXBvc2l0ZU9wZXJhdGlvbiB7CitwdWJsaWM6CisgICAgdXNpbmcgU2V0SW5saW5lQ29tcG9z
aXRlT3BlcmF0aW9uOjpTZXRJbmxpbmVDb21wb3NpdGVPcGVyYXRpb247CisgICAgQ29tcG9zaXRl
T3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigp
OyB9CisgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50PDE+
KCk7IH0KK307CiAKLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5pbWFnZUludGVycG9sYXRp
b25RdWFsaXR5ID0gKmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk7Ci0gICAgfQordXNpbmcgU2V0
SW5saW5lU2hvdWxkQW50aWFsaWFzID0gU2V0SW5saW5lU3RhdGU8CisgICAgSXRlbVR5cGU6OlNl
dFNob3VsZEFudGlhbGlhcywKKyAgICB2b2lkIChHcmFwaGljc0NvbnRleHQ6OiopKGJvb2wpLAor
ICAgICZHcmFwaGljc0NvbnRleHQ6OnNldFNob3VsZEFudGlhbGlhcywKKyAgICBib29sCis+Owog
Ci0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250
ZXh0U3RhdGU6OkFscGhhQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxmbG9hdD4gYWxwaGE7
Ci0gICAgICAgIGRlY29kZXIgPj4gYWxwaGE7Ci0gICAgICAgIGlmICghYWxwaGEpCi0gICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworY2xhc3MgU2V0U2hvdWxkQW50aWFsaWFzIDogcHVi
bGljIFNldElubGluZVNob3VsZEFudGlhbGlhcyB7CitwdWJsaWM6CisgICAgdXNpbmcgU2V0SW5s
aW5lU2hvdWxkQW50aWFsaWFzOjpTZXRJbmxpbmVTaG91bGRBbnRpYWxpYXM7CisgICAgYm9vbCBz
aG91bGRBbnRpYWxpYXMoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9Cit9OwogCi0g
ICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuYWxwaGEgPSAqYWxwaGE7Ci0gICAgfQordXNpbmcg
U2V0SW5saW5lU2hvdWxkU21vb3RoRm9udHMgPSBTZXRJbmxpbmVTdGF0ZTwKKyAgICBJdGVtVHlw
ZTo6U2V0U2hvdWxkU21vb3RoRm9udHMsCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShi
b29sKSwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRTaG91bGRTbW9vdGhGb250cywKKyAgICBi
b29sCis+OwogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZEFudGlhbGlhc0NoYW5nZSkpIHsKLSAgICAgICAgT3B0
aW9uYWw8Ym9vbD4gc2hvdWxkQW50aWFsaWFzOwotICAgICAgICBkZWNvZGVyID4+IHNob3VsZEFu
dGlhbGlhczsKLSAgICAgICAgaWYgKCFzaG91bGRBbnRpYWxpYXMpCi0gICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworY2xhc3MgU2V0U2hvdWxkU21vb3RoRm9udHMgOiBwdWJsaWMgU2V0
SW5saW5lU2hvdWxkU21vb3RoRm9udHMgeworcHVibGljOgorICAgIHVzaW5nIFNldElubGluZVNo
b3VsZFNtb290aEZvbnRzOjpTZXRJbmxpbmVTaG91bGRTbW9vdGhGb250czsKKyAgICBib29sIHNo
b3VsZFNtb290aEZvbnRzKCkgY29uc3QgeyByZXR1cm4gYXJndW1lbnQ8MD4oKTsgfQorfTsKIAot
ICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNob3VsZEFudGlhbGlhcyA9ICpzaG91bGRBbnRp
YWxpYXM7Ci0gICAgfQordXNpbmcgU2V0SW5saW5lU2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRz
ID0gU2V0SW5saW5lU3RhdGU8CisgICAgSXRlbVR5cGU6OlNldFNob3VsZFN1YnBpeGVsUXVhbnRp
emVGb250cywKKyAgICB2b2lkIChHcmFwaGljc0NvbnRleHQ6OiopKGJvb2wpLAorICAgICZHcmFw
aGljc0NvbnRleHQ6OnNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cywKKyAgICBib29sCis+
OwogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlNob3VsZFNtb290aEZvbnRzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25h
bDxib29sPiBzaG91bGRTbW9vdGhGb250czsKLSAgICAgICAgZGVjb2RlciA+PiBzaG91bGRTbW9v
dGhGb250czsKLSAgICAgICAgaWYgKCFzaG91bGRTbW9vdGhGb250cykKLSAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CitjbGFzcyBTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHMg
OiBwdWJsaWMgU2V0SW5saW5lU2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzIHsKK3B1YmxpYzoK
KyAgICB1c2luZyBTZXRJbmxpbmVTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM6OlNldElubGlu
ZVNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czsKKyAgICBib29sIHNob3VsZFN1YnBpeGVsUXVh
bnRpemVGb250cygpIGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50PDA+KCk7IH0KK307CiAKLSAgICAg
ICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRTbW9vdGhGb250cyA9ICpzaG91bGRTbW9vdGhG
b250czsKLSAgICB9Cit1c2luZyBTZXRJbmxpbmVEcmF3THVtaW5hbmNlTWFzayA9IFNldElubGlu
ZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXREcmF3THVtaW5hbmNlTWFzaywKKyAgICB2b2lkIChH
cmFwaGljc0NvbnRleHQ6OiopKGJvb2wpLAorICAgICZHcmFwaGljc0NvbnRleHQ6OnNldERyYXdM
dW1pbmFuY2VNYXNrLAorICAgIGJvb2wKKz47CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxRdWFu
dGl6ZUZvbnRzQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRTdWJwaXhl
bFF1YW50aXplRm9udHM7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkU3VicGl4ZWxRdWFudGl6
ZUZvbnRzOwotICAgICAgICBpZiAoIXNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cykKLSAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CitjbGFzcyBTZXREcmF3THVtaW5hbmNlTWFzayA6
IHB1YmxpYyBTZXRJbmxpbmVEcmF3THVtaW5hbmNlTWFzayB7CitwdWJsaWM6CisgICAgdXNpbmcg
U2V0SW5saW5lRHJhd0x1bWluYW5jZU1hc2s6OlNldElubGluZURyYXdMdW1pbmFuY2VNYXNrOwor
ICAgIGJvb2wgZHJhd0x1bWluYW5jZU1hc2soKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigp
OyB9Cit9OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hvdWxkU3VicGl4ZWxRdWFu
dGl6ZUZvbnRzID0gKnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czsKLSAgICB9Cit1c2luZyBT
ZXRJbmxpbmVJbWFnZUludGVycG9sYXRpb25RdWFsaXR5ID0gU2V0SW5saW5lU3RhdGU8CisgICAg
SXRlbVR5cGU6OlNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksCisgICAgdm9pZCAoR3JhcGhp
Y3NDb250ZXh0OjoqKShJbnRlcnBvbGF0aW9uUXVhbGl0eSksCisgICAgJkdyYXBoaWNzQ29udGV4
dDo6c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0
eQorPjsKIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpTaGFkb3dzSWdub3JlVHJhbnNmb3Jtc0NoYW5nZSkpIHsKLSAgICAg
ICAgT3B0aW9uYWw8Ym9vbD4gc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgICAgIGRlY29k
ZXIgPj4gc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAgICAgIGlmICghc2hhZG93c0lnbm9y
ZVRyYW5zZm9ybXMpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworY2xhc3MgU2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSA6IHB1YmxpYyBTZXRJbmxpbmVJbWFnZUludGVycG9s
YXRpb25RdWFsaXR5IHsKK3B1YmxpYzoKKyAgICB1c2luZyBTZXRJbmxpbmVJbWFnZUludGVycG9s
YXRpb25RdWFsaXR5OjpTZXRJbmxpbmVJbWFnZUludGVycG9sYXRpb25RdWFsaXR5OworICAgIElu
dGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSBjb25zdCB7IHJl
dHVybiBhcmd1bWVudDwwPigpOyB9Cit9OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUu
c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMgPSAqc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7Ci0gICAg
fQorI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCit1c2luZyBTZXRJbmxpbmVVc2VEYXJr
QXBwZWFyYW5jZSA9IFNldElubGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRVc2VEYXJrQXBw
ZWFyYW5jZSwKKyAgICB2b2lkIChHcmFwaGljc0NvbnRleHQ6OiopKGJvb2wpLAorICAgICZHcmFw
aGljc0NvbnRleHQ6OnNldFVzZURhcmtBcHBlYXJhbmNlLAorICAgIGJvb2wKKz47CiAKLSAgICBy
ZXR1cm4ge3sgc3RhdGVDaGFuZ2UsIHN0cm9rZVBhdHRlcm4sIGZpbGxQYXR0ZXJuIH19OwotfQor
Y2xhc3MgU2V0VXNlRGFya0FwcGVhcmFuY2UgOiBwdWJsaWMgU2V0SW5saW5lVXNlRGFya0FwcGVh
cmFuY2UgeworcHVibGljOgorICAgIHVzaW5nIFNldElubGluZVVzZURhcmtBcHBlYXJhbmNlOjpT
ZXRJbmxpbmVVc2VEYXJrQXBwZWFyYW5jZTsKKyAgICBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkg
Y29uc3QgeyByZXR1cm4gYXJndW1lbnQ8MD4oKTsgfQorfTsKKyNlbmRpZgogCiBjbGFzcyBTZXRM
aW5lQ2FwIHsKIHB1YmxpYzoKQEAgLTIzMzAsMTEgKzIyMjksMzEgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0Q1RNLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6Q29uY2F0ZW5hdGVDVE0sCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
ZXRJbmxpbmVGaWxsR3JhZGllbnQsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRJbmxpbmVGaWxsQ29sb3IsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRJbmxpbmVTdHJva2VDb2xvciwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldFN0cm9rZUdyYWRpZW50LAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U2V0U3Ryb2tlUGF0dGVybiwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldEZpbGxHcmFkaWVudCwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dEZpbGxQYXR0ZXJuLAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U2hh
ZG93c0lnbm9yZVRyYW5zZm9ybXMsCisjaWYgVVNFKENHKQorICAgIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0TGVnYWN5U2hhZG93LAorI2VuZGlmCisgICAgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTaGFkb3csCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3MsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRTdGF0ZSwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldFRleHREcmF3aW5nTW9kZSwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldFN0cm9rZUNvbG9yLAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
RmlsbENvbG9yLAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tl
U3R5bGUsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRGaWxsUnVsZSwK
KyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldEFscGhhLAorICAgIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q29tcG9zaXRlT3BlcmF0aW9uLAorICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U2hvdWxkQW50aWFsaWFzLAorICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U2hvdWxkU21vb3RoRm9udHMsCisgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTaG91bGRTdWJwaXhlbFF1YW50aXpl
Rm9udHMsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXREcmF3THVtaW5h
bmNlTWFzaywKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldEltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHksCisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKKyAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFVzZURhcmtBcHBlYXJhbmNlLAorI2Vu
ZGlmCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwLAogICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZURhc2gsCiAgICAgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lSm9pbiwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBlN2Y5ZTI4YzM1MDIxOWU4MTNkODgzNDBmZjRm
NTRkZTIyZmMxMGMzLi45ZDQ5NTJhNDliZjA3NzZiZGU4N2ZmMGQyNTZjNWQ5MTM5Mzk0NDkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC02MCwzMSArNjAs
NiBAQCB2b2lkIFJlY29yZGVyOjpwdXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgVwogICAgIGFwcGVuZDxQdXRJbWFnZURhdGE+KGlu
cHV0Rm9ybWF0LCBpbWFnZURhdGEsIHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7CiB9
CiAKLXN0YXRpYyBib29sIGNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgY2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCi17Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBpbmxpbmVTdGF0ZUNoYW5nZUZsYWdz
IHsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSwK
LSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlLAotICAgICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlLAotICAgICAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlLAotICAgIH07Ci0KLSAgICBpZiAoY2hh
bmdlRmxhZ3MgIT0gKGNoYW5nZUZsYWdzICYgaW5saW5lU3RhdGVDaGFuZ2VGbGFncykpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGlj
c0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29sb3JDaGFuZ2UpICYmICFjaGFuZ2VzLm1fc3RhdGUuc3Ry
b2tlQ29sb3IuaXNJbmxpbmUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGNo
YW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsQ29sb3JDaGFuZ2Up
ICYmICFjaGFuZ2VzLm1fc3RhdGUuZmlsbENvbG9yLmlzSW5saW5lKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlKQotICAgICAgICAmJiAoIWNoYW5nZXMubV9zdGF0ZS5m
aWxsR3JhZGllbnQgfHwgIVNldElubGluZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUoKmNoYW5nZXMu
bV9zdGF0ZS5maWxsR3JhZGllbnQpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KIHZvaWQgUmVjb3JkZXI6OmNhY2hlTmF0aXZlSW1hZ2UoTmF0aXZlSW1h
Z2UmIGltYWdlKQogewogICAgIGlmIChtX2RlbGVnYXRlKQpAQCAtOTQsMjYgKzY5LDgxIEBAIHZv
aWQgUmVjb3JkZXI6OmNhY2hlTmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIGltYWdlKQogCiB2b2lk
IFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW0oY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdz
IGNoYW5nZUZsYWdzKQogewotICAgIGlmICghY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2Vz
KGNoYW5nZXMsIGNoYW5nZUZsYWdzKSkgewotICAgICAgICBpZiAoYXV0byBwYXR0ZXJuID0gY2hh
bmdlcy5tX3N0YXRlLnN0cm9rZVBhdHRlcm4pCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VHcmFkaWVudENoYW5nZSkpCisgICAgICAgIGFw
cGVuZDxTZXRTdHJva2VHcmFkaWVudD4oKmNoYW5nZXMubV9zdGF0ZS5zdHJva2VHcmFkaWVudCwg
Y2hhbmdlcy5tX3N0YXRlLnN0cm9rZUdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pOworCisgICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VQYXR0ZXJu
Q2hhbmdlKSkgeworICAgICAgICBpZiAoYXV0byBwYXR0ZXJuID0gY2hhbmdlcy5tX3N0YXRlLnN0
cm9rZVBhdHRlcm4pIHsKICAgICAgICAgICAgIGNhY2hlTmF0aXZlSW1hZ2UocGF0dGVybi0+dGls
ZUltYWdlKCkpOwotICAgICAgICBpZiAoYXV0byBwYXR0ZXJuID0gY2hhbmdlcy5tX3N0YXRlLmZp
bGxQYXR0ZXJuKQorICAgICAgICAgICAgYXBwZW5kPFNldFN0cm9rZVBhdHRlcm4+KHBhdHRlcm4t
PnRpbGVJbWFnZSgpLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBwYXR0ZXJuLT5wYXJh
bWV0ZXJzKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKQorICAgICAgICBh
cHBlbmQ8U2V0RmlsbEdyYWRpZW50PigqY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCwgY2hh
bmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKKworICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFBhdHRlcm5DaGFuZ2Up
KSB7CisgICAgICAgIGlmIChhdXRvIHBhdHRlcm4gPSBjaGFuZ2VzLm1fc3RhdGUuZmlsbFBhdHRl
cm4pIHsKICAgICAgICAgICAgIGNhY2hlTmF0aXZlSW1hZ2UocGF0dGVybi0+dGlsZUltYWdlKCkp
OwotICAgICAgICBhcHBlbmQ8U2V0U3RhdGU+KGNoYW5nZXMubV9zdGF0ZSwgY2hhbmdlRmxhZ3Mp
OwotICAgICAgICByZXR1cm47CisgICAgICAgICAgICBhcHBlbmQ8U2V0RmlsbFBhdHRlcm4+KHBh
dHRlcm4tPnRpbGVJbWFnZSgpLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBwYXR0ZXJu
LT5wYXJhbWV0ZXJzKCkpOworICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGNoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xvckNoYW5nZSkpCi0gICAg
ICAgIGFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oY2hhbmdlcy5tX3N0YXRlLnN0cm9rZUNv
bG9yLmFzSW5saW5lKCkpOworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5zZm9ybXNDaGFuZ2UpKQorICAgICAgICBhcHBl
bmQ8U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM+KGNoYW5nZXMubV9zdGF0ZS5zaGFkb3dzSWdu
b3JlVHJhbnNmb3Jtcyk7CisKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsKKyNpZiBVU0UoQ0cpCisgICAgICAgIGlmIChj
aGFuZ2VzLm1fc3RhdGUuc2hhZG93c1VzZUxlZ2FjeVJhZGl1cykKKyAgICAgICAgICAgIGFwcGVu
ZDxTZXRMZWdhY3lTaGFkb3c+KGNoYW5nZXMubV9zdGF0ZS5zaGFkb3dPZmZzZXQsIGNoYW5nZXMu
bV9zdGF0ZS5zaGFkb3dCbHVyLCBjaGFuZ2VzLm1fc3RhdGUuc2hhZG93Q29sb3IuYXNJbmxpbmUo
KSk7CisgICAgICAgIGVsc2UKKyNlbmRpZgorICAgICAgICAgICAgYXBwZW5kPFNldFNoYWRvdz4o
Y2hhbmdlcy5tX3N0YXRlLnNoYWRvd09mZnNldCwgY2hhbmdlcy5tX3N0YXRlLnNoYWRvd0JsdXIs
IGNoYW5nZXMubV9zdGF0ZS5zaGFkb3dDb2xvci5hc0lubGluZSgpKTsKKyAgICB9CiAKICAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNr
bmVzc0NoYW5nZSkpCiAgICAgICAgIGFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KGNoYW5nZXMu
bV9zdGF0ZS5zdHJva2VUaGlja25lc3MpOwogCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpUZXh0RHJhd2luZ01vZGVDaGFuZ2UpKQorICAgICAgICBh
cHBlbmQ8U2V0VGV4dERyYXdpbmdNb2RlPihjaGFuZ2VzLm1fc3RhdGUudGV4dERyYXdpbmdNb2Rl
KTsKKworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3Ryb2tlQ29sb3JDaGFuZ2UpKQorICAgICAgICBhcHBlbmQ8U2V0U3Ryb2tlQ29sb3I+KGNoYW5n
ZXMubV9zdGF0ZS5zdHJva2VDb2xvci5hc0lubGluZSgpKTsKKwogICAgIGlmIChjaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkKLSAgICAg
ICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oY2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci5h
c0lubGluZSgpKTsKKyAgICAgICAgYXBwZW5kPFNldEZpbGxDb2xvcj4oY2hhbmdlcy5tX3N0YXRl
LmZpbGxDb2xvci5hc0lubGluZSgpKTsKIAotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hhbmdlKSkKLSAgICAgICAgYXBwZW5k
PFNldElubGluZUZpbGxHcmFkaWVudD4oKmNoYW5nZXMubV9zdGF0ZS5maWxsR3JhZGllbnQsIGNo
YW5nZXMubV9zdGF0ZS5maWxsR3JhZGllbnRTcGFjZVRyYW5zZm9ybSk7CisgICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VTdHlsZUNoYW5nZSkp
CisgICAgICAgIGFwcGVuZDxTZXRTdHJva2VTdHlsZT4oY2hhbmdlcy5tX3N0YXRlLnN0cm9rZVN0
eWxlKTsKKworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6RmlsbFJ1bGVDaGFuZ2UpKQorICAgICAgICBhcHBlbmQ8U2V0RmlsbFJ1bGU+KGNoYW5nZXMu
bV9zdGF0ZS5maWxsUnVsZSk7CisKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkFscGhhQ2hhbmdlKSkKKyAgICAgICAgYXBwZW5kPFNldEFscGhhPihj
aGFuZ2VzLm1fc3RhdGUuYWxwaGEpOworCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zQW55
KHsgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJhdGlvbkNoYW5nZSwgR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkJsZW5kTW9kZUNoYW5nZSB9KSkKKyAgICAgICAgYXBwZW5kPFNldENv
bXBvc2l0ZU9wZXJhdGlvbj4oY2hhbmdlcy5tX3N0YXRlLmNvbXBvc2l0ZU9wZXJhdG9yLCBjaGFu
Z2VzLm1fc3RhdGUuYmxlbmRNb2RlKTsKKyAgICAKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFp
bnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZEFudGlhbGlhc0NoYW5nZSkpCisgICAgICAg
IGFwcGVuZDxTZXRTaG91bGRBbnRpYWxpYXM+KGNoYW5nZXMubV9zdGF0ZS5zaG91bGRBbnRpYWxp
YXMpOworCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRl
OjpTaG91bGRTbW9vdGhGb250c0NoYW5nZSkpCisgICAgICAgIGFwcGVuZDxTZXRTaG91bGRTbW9v
dGhGb250cz4oY2hhbmdlcy5tX3N0YXRlLnNob3VsZFNtb290aEZvbnRzKTsKKworICAgIGlmIChj
aGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxR
dWFudGl6ZUZvbnRzQ2hhbmdlKSkKKyAgICAgICAgYXBwZW5kPFNldFNob3VsZFN1YnBpeGVsUXVh
bnRpemVGb250cz4oY2hhbmdlcy5tX3N0YXRlLnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyk7
CisKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkRy
YXdMdW1pbmFuY2VNYXNrQ2hhbmdlKSkKKyAgICAgICAgYXBwZW5kPFNldERyYXdMdW1pbmFuY2VN
YXNrPihjaGFuZ2VzLm1fc3RhdGUuZHJhd0x1bWluYW5jZU1hc2spOworCisgICAgaWYgKGNoYW5n
ZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpJbWFnZUludGVycG9sYXRpb25R
dWFsaXR5Q2hhbmdlKSkKKyAgICAgICAgYXBwZW5kPFNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHk+KGNoYW5nZXMubV9zdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KTsKKworI2lmIEhB
VkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdy
YXBoaWNzQ29udGV4dFN0YXRlOjpVc2VEYXJrQXBwZWFyYW5jZUNoYW5nZSkpCisgICAgICAgIGFw
cGVuZDxTZXRVc2VEYXJrQXBwZWFyYW5jZT4oY2hhbmdlcy5tX3N0YXRlLnVzZURhcmtBcHBlYXJh
bmNlKTsKKyNlbmRpZgogfQogCiB2b2lkIFJlY29yZGVyOjp3aWxsQXBwZW5kSXRlbU9mVHlwZShJ
dGVtVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCmlu
ZGV4IDRkOTA2YTI0NTY0NDYyZjZlMDE4MTY5ZDFiMTY4OTkyZDhkZjJjY2EuLjBhZmFkY2QwZjY4
MGE1ZmIwYTcxMTI2MTQ4NjQ3NTc4OWE0NWJlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZXBsYXllci5jcHAKQEAgLTcwLDI5ICs3MCw2IEBAIGlubGluZSBzdGF0aWMgT3B0aW9u
YWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseU5hdGl2ZUltYWdlSXRlbShHcmFw
aGljCiAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKIH0KIAotaW5saW5lIHN0YXRpYyBP
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5U2V0U3RhdGVJdGVtKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTmF0aXZlSW1hZ2VIYXNoTWFwJiBuYXRpdmVJ
bWFnZXMsIEl0ZW1IYW5kbGUgaXRlbSkKLXsKLSAgICBhdXRvJiBzZXRTdGF0ZUl0ZW0gPSBpdGVt
LmdldDxTZXRTdGF0ZT4oKTsKLQotICAgIE5hdGl2ZUltYWdlKiBzdHJva2VQYXR0ZXJuSW1hZ2Ug
PSBudWxscHRyOwotICAgIE5hdGl2ZUltYWdlKiBmaWxsUGF0dGVybkltYWdlID0gbnVsbHB0cjsK
LQotICAgIGlmIChhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNldFN0YXRlSXRlbS5zdHJva2VQ
YXR0ZXJuSW1hZ2VJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlID0g
bmF0aXZlSW1hZ2VzLmdldChyZXNvdXJjZUlkZW50aWZpZXIpOwotICAgICAgICBpZiAoIXN0cm9r
ZVBhdHRlcm5JbWFnZSkKLSAgICAgICAgICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7Ci0g
ICAgfQotCi0gICAgaWYgKGF1dG8gcmVzb3VyY2VJZGVudGlmaWVyID0gc2V0U3RhdGVJdGVtLmZp
bGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgZmlsbFBhdHRlcm5JbWFnZSA9
IG5hdGl2ZUltYWdlcy5nZXQocmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICAgICAgaWYgKCFmaWxs
UGF0dGVybkltYWdlKQotICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKLSAg
ICB9Ci0KLSAgICBzZXRTdGF0ZUl0ZW0uYXBwbHkoY29udGV4dCwgc3Ryb2tlUGF0dGVybkltYWdl
LCBmaWxsUGF0dGVybkltYWdlKTsKLSAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotfQotCiB0ZW1w
bGF0ZTxjbGFzcyBUPgogaW5saW5lIHN0YXRpYyBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXI+IGFwcGx5Rm9udEl0ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
b250UmVuZGVyaW5nUmVzb3VyY2VNYXAmIGZvbnRzLCBJdGVtSGFuZGxlIGl0ZW0pCiB7CkBAIC0x
MTAsNiArODcsMTggQEAgc3RkOjpwYWlyPE9wdGlvbmFsPFN0b3BSZXBsYXlSZWFzb24+LCBPcHRp
b25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+PiBSZXAKICAgICBpZiAobV9kZWxlZ2F0
ZSAmJiBtX2RlbGVnYXRlLT5hcHBseShpdGVtLCBtX2NvbnRleHQpKQogICAgICAgICByZXR1cm4g
eyBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCB9OwogCisgICAgaWYgKGl0ZW0uaXM8U2V0U3Ry
b2tlUGF0dGVybj4oKSkgeworICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJ
ZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08U2V0U3Ryb2tlUGF0dGVybj4obV9jb250
ZXh0LCBtX25hdGl2ZUltYWdlcywgaXRlbSkpCisgICAgICAgICAgICByZXR1cm4geyBTdG9wUmVw
bGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUobWlzc2luZ0NhY2hlZFJl
c291cmNlSWRlbnRpZmllcikgfTsKKyAgICAgICAgcmV0dXJuIHsgV1RGOjpudWxsb3B0LCBXVEY6
Om51bGxvcHQgfTsKKyAgICB9CisKKyAgICBpZiAoaXRlbS5pczxTZXRGaWxsUGF0dGVybj4oKSkg
eworICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBw
bHlOYXRpdmVJbWFnZUl0ZW08U2V0RmlsbFBhdHRlcm4+KG1fY29udGV4dCwgbV9uYXRpdmVJbWFn
ZXMsIGl0ZW0pKQorICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2lu
Z0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIp
IH07CisgICAgICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CisgICAg
fQorCiAgICAgaWYgKGl0ZW0uaXM8RHJhd0ltYWdlQnVmZmVyPigpKSB7CiAgICAgICAgIGlmIChh
dXRvIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseUltYWdlQnVmZmVySXRl
bTxEcmF3SW1hZ2VCdWZmZXI+KG1fY29udGV4dCwgbV9pbWFnZUJ1ZmZlcnMsIGl0ZW0pKQogICAg
ICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNl
LCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CkBAIC0xNDAsMTIg
KzEyOSw2IEBAIHN0ZDo6cGFpcjxPcHRpb25hbDxTdG9wUmVwbGF5UmVhc29uPiwgT3B0aW9uYWw8
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPj4gUmVwCiAgICAgICAgIHJldHVybiB7IFdURjo6
bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CiAgICAgfQogCi0gICAgaWYgKGl0ZW0uaXM8U2V0U3Rh
dGU+KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmll
ciA9IGFwcGx5U2V0U3RhdGVJdGVtKG1fY29udGV4dCwgbV9uYXRpdmVJbWFnZXMsIGl0ZW0pKQot
ICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291
cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07Ci0gICAgICAg
IHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07Ci0gICAgfQotCiAgICAgaXRl
bS5hcHBseShtX2NvbnRleHQpOwogICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgV1RGOjpudWxs
b3B0IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggMmM3NjI1MTg2YWVlMTVkNzcy
Yjc2NGJkZDU1OWYwYTFjMjcwYmQ0MS4uY2NiNGZhNTk2MTViNWNkYWUwMThjYTkxNzMyMmY5OTEz
MzYwMzJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNDIzLDggKzQyMywxMCBAQCBP
cHRpb25hbDxEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZT4gV0FSTl9VTlVTRURfUkVUVVJOIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlYwogICAgICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERp
c3BsYXlMaXN0OjpQdXRJbWFnZURhdGE+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOwog
ICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKICAgICAgICAgcmV0
dXJuIGRlY29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6U2V0TGluZURhc2g+KGRhdGEsIGxlbmd0
aCwgaGFuZGxlTG9jYXRpb24pOwotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRT
dGF0ZToKLSAgICAgICAgcmV0dXJuIGRlY29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6U2V0U3Rh
dGU+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOworICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRTdHJva2VHcmFkaWVudDoKKyAgICAgICAgcmV0dXJuIGRlY29kZUFuZENy
ZWF0ZTxEaXNwbGF5TGlzdDo6U2V0U3Ryb2tlR3JhZGllbnQ+KGRhdGEsIGxlbmd0aCwgaGFuZGxl
TG9jYXRpb24pOworICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRGaWxsR3JhZGll
bnQ6CisgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OlNldEZpbGxH
cmFkaWVudD4oZGF0YSwgbGVuZ3RoLCBoYW5kbGVMb2NhdGlvbik7CiAgICAgY2FzZSBEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlN0cm9rZVBhdGg6CiAgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVh
dGU8RGlzcGxheUxpc3Q6OlN0cm9rZVBhdGg+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24p
OwogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpBcHBseURldmljZVNjYWxlRmFjdG9y
OgpAQCAtNDYxLDEzICs0NjMsMzIgQEAgT3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU+
IFdBUk5fVU5VU0VEX1JFVFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWMKICAgICBjYXNl
IERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2NhbGU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTToKLSAg
ICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgIGNh
c2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgY2Fz
ZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgorICAgIGNhc2Ug
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VQYXR0ZXJuOgorICAgIGNhc2UgRGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRGaWxsUGF0dGVybjoKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6CisjaWYgVVNFKENHKQorICAgIGNh
c2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMZWdhY3lTaGFkb3c6CisjZW5kaWYKKyAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U2hhZG93OgorICAgIGNhc2UgRGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldFRleHREcmF3aW5nTW9kZToKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0U3Ryb2tlQ29sb3I6CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dEZpbGxDb2xvcjoKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlU3R5
bGU6CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldEZpbGxSdWxlOgorICAgIGNh
c2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRBbHBoYToKKyAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0Q29tcG9zaXRlT3BlcmF0aW9uOgorICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRTaG91bGRBbnRpYWxpYXM6CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlNldFNob3VsZFNtb290aEZvbnRzOgorICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM6CisgICAgY2FzZSBEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldERyYXdMdW1pbmFuY2VNYXNrOgorICAgIGNhc2UgRGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5OgorI2lmIEhBVkUoT1NfREFS
S19NT0RFX1NVUFBPUlQpCisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFVzZURh
cmtBcHBlYXJhbmNlOgorI2VuZGlmCiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dExpbmVDYXA6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgog
ICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgotICAgIGNhc2Ug
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgY2FzZSBEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6CiAjaWYgRU5BQkxFKElOTElORV9QQVRI
X0RBVEEpCiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZUlubGluZVBhdGg6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDBjYTJiYjIwM2U0Yzc0MjdiNTQ0ZTZl
M2E3NDNkNmMxODA1MzkyYjAuLjljMTVmZGIwNGQ5OGQ5OWI0N2FlYmJjMWNkNzc1OWQ2ZDgzM2Q4
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0zMDgsOCArMzA4LDEwIEBAIHBy
b3RlY3RlZDoKICAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9i
amVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VEYXRhPihpdGVtLmdldDxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VEYXRhPigpKTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVEYXNoOgogICAgICAgICAgICAgcmV0dXJuIElQ
Qzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRM
aW5lRGFzaD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldExpbmVEYXNoPigpKTsK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0YXRlOgot
ICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZT4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldFN0YXRlPigpKTsKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldFN0cm9rZUdyYWRpZW50OgorICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6
ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdHJva2VHcmFkaWVu
dD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0cm9rZUdyYWRpZW50PigpKTsK
KyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldEZpbGxHcmFk
aWVudDoKKyAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVj
dDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0RmlsbEdyYWRpZW50PihpdGVtLmdldDxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6U2V0RmlsbEdyYWRpZW50PigpKTsKICAgICAgICAgY2FzZSBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZVBhdGg6CiAgICAgICAgICAgICByZXR1cm4g
SVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlN0
cm9rZVBhdGg+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTdHJva2VQYXRoPigpKTsK
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkFwcGx5RGV2aWNl
U2NhbGVGYWN0b3I6CkBAIC0zNDYsMTMgKzM0OCwzMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTYXZlOgogICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2NhbGU6CiAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIGNhc2Ug
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0g
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJv
a2VDb2xvcjoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dFN0cm9rZVBhdHRlcm46CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRGaWxsUGF0dGVybjoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOgorI2lmIFVTRShDRykKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExlZ2FjeVNoYWRvdzoK
KyNlbmRpZgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
U2hhZG93OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
U3Ryb2tlVGhpY2tuZXNzOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0VGV4dERyYXdpbmdNb2RlOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlQ29sb3I6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRGaWxsQ29sb3I6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VTdHlsZToKKyAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldEZpbGxSdWxlOgorICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0QWxwaGE6CisgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDb21wb3NpdGVPcGVyYXRpb246CisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTaG91bGRBbnRpYWxp
YXM6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTaG91
bGRTbW9vdGhGb250czoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czoKKyAgICAgICAgY2FzZSBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldERyYXdMdW1pbmFuY2VNYXNrOgorICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eToKKyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQorICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0VXNlRGFya0FwcGVhcmFuY2U6CisjZW5k
aWYKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVD
YXA6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5l
Sm9pbjoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldE1p
dGVyTGltaXQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
ZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTdHJva2VFbGxpcHNlOgogI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlSW5saW5lUGF0
aDoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0
ZjYxYTAzNjk4NjMwMWZjNDgwN2MyYjA4OGVlNTZlNjhjNmU2NmUzLi5jOTExYTcxZWZkMmZhZjcx
MDI1N2ExYWY2MzgyNDZmNGMyNDAxOTllIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTYgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSZWNv
cmQgY2hhbmdlcyBpbiBHcmFwaGljc0NvbnRleHRTdGF0ZSBhcyBpbmRpdmlkdWFsIERpc3BsYXlM
aXN0IGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTk0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisKIDIwMjEtMDItMTUgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtld3NdIEFkZCBweXRob24gMyBzdXBwb3J0IC0gcGFydCAyCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAKaW5kZXggZTg3MTdjNzkxNDBiZGVhNGI1ZjUzNTVmMDE2OTA4OWU2MDA4NjczMy4u
YTY1ZWNkMGExYTUyNDBhNTBkNTdlNTk1NTM5NTAyODk2MzE2NDQ4MiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApA
QCAtNjksNyArNjksNyBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEFwcGVuZEl0ZW1zKQogICAg
ICAgICBsaXN0LmFwcGVuZDxTZXRTdHJva2VUaGlja25lc3M+KDEuNSk7CiAgICAgICAgIGxpc3Qu
YXBwZW5kPEZpbGxQYXRoPihwYXRoKTsKICAgICAgICAgbGlzdC5hcHBlbmQ8RmlsbFJlY3RXaXRo
R3JhZGllbnQ+KEZsb2F0UmVjdCB7IDEuLCAxLiwgMTAuLCAxMC4gfSwgZ3JhZGllbnQpOwotICAg
ICAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KENvbG9yOjpyZWQpOworICAgICAg
ICBsaXN0LmFwcGVuZDxTZXRGaWxsQ29sb3I+KENvbG9yOjpyZWQpOwogI2lmIEVOQUJMRShJTkxJ
TkVfUEFUSF9EQVRBKQogICAgICAgICBsaXN0LmFwcGVuZDxTdHJva2VJbmxpbmVQYXRoPihJbmxp
bmVQYXRoRGF0YSB7IExpbmVEYXRhIHt7IDAuLCAwLiB9LCB7IDEwLiwgMTUuIH19fSk7CiAjZW5k
aWYKQEAgLTEwMiwxMCArMTAyLDEwIEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRl
bXMpCiAgICAgICAgICAgICBFWFBFQ1RfRVEoJml0ZW0uZ3JhZGllbnQoKSwgZ3JhZGllbnQucHRy
KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7CisgICAgICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxD
b2xvcjogewogICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGhhbmRsZS0+aXNEcmF3aW5nSXRlbSgp
KTsKLSAgICAgICAgICAgIEVYUEVDVF9UUlVFKGhhbmRsZS0+aXM8U2V0SW5saW5lRmlsbENvbG9y
PigpKTsKLSAgICAgICAgICAgIGF1dG8mIGl0ZW0gPSBoYW5kbGUtPmdldDxTZXRJbmxpbmVGaWxs
Q29sb3I+KCk7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShoYW5kbGUtPmlzPFNldEZpbGxDb2xv
cj4oKSk7CisgICAgICAgICAgICBhdXRvJiBpdGVtID0gaGFuZGxlLT5nZXQ8U2V0RmlsbENvbG9y
PigpOwogICAgICAgICAgICAgRVhQRUNUX0VRKGl0ZW0uY29sb3IoKSwgQ29sb3I6OnJlZCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjE1LDkgKzIxNSw5IEBAIFRFU1QoRGlz
cGxheUxpc3RUZXN0cywgSXRlbUJ1ZmZlckNsaWVudCkKICAgICBsaXN0LnNldEl0ZW1CdWZmZXJD
bGllbnQoJndyaXRlcik7CiAKICAgICBhdXRvIHBhdGggPSBjcmVhdGVDb21wbGV4UGF0aCgpOwot
ICAgIGxpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6Ymx1ZSk7CisgICAg
bGlzdC5hcHBlbmQ8U2V0U3Ryb2tlQ29sb3I+KENvbG9yOjpibHVlKTsKICAgICBsaXN0LmFwcGVu
ZDxTdHJva2VQYXRoPihwYXRoKTsKLSAgICBsaXN0LmFwcGVuZDxTZXRJbmxpbmVTdHJva2VDb2xv
cj4oQ29sb3I6OnJlZCk7CisgICAgbGlzdC5hcHBlbmQ8U2V0U3Ryb2tlQ29sb3I+KENvbG9yOjpy
ZWQpOwogICAgIGxpc3QuYXBwZW5kPFN0cm9rZVBhdGg+KHBhdGgpOwogCiAgICAgRGlzcGxheUxp
c3Qgc2hhbGxvd0NvcHkge3sgSXRlbUJ1ZmZlckhhbmRsZSB7IGdsb2JhbEJ1ZmZlcklkZW50aWZp
ZXIsIGdsb2JhbEl0ZW1CdWZmZXIsIGxpc3Quc2l6ZUluQnl0ZXMoKSB9IH19OwpAQCAtMjMwLDkg
KzIzMCw5IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgSXRlbUJ1ZmZlckNsaWVudCkKIAogICAg
IEVYUEVDVF9GQUxTRShzaGFsbG93Q29weS5pc0VtcHR5KCkpOwogICAgIEVYUEVDVF9FUShpdGVt
VHlwZXMuc2l6ZSgpLCA0VSk7Ci0gICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1swXSwgSXRlbVR5cGU6
OlNldElubGluZVN0cm9rZUNvbG9yKTsKKyAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzBdLCBJdGVt
VHlwZTo6U2V0U3Ryb2tlQ29sb3IpOwogICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMV0sIEl0ZW1U
eXBlOjpTdHJva2VQYXRoKTsKLSAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzJdLCBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3IpOworICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMl0sIEl0ZW1U
eXBlOjpTZXRTdHJva2VDb2xvcik7CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1szXSwgSXRlbVR5
cGU6OlN0cm9rZVBhdGgpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCmluZGV4IDBmZWM1Zjc2
NWE0MmM5MjQ3YTQyYTc2OTAxZjA1NjE3MzJjZGI5YjguLmU2OGUxNGRkMDUwZDk2OTU3NDczYjIx
ZTA2NWFiYjQ5MWVkNTI4MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCkBAIC01NCwxMCArNTQs
MTAgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBSZXBsYXlXaXRoTWlzc2luZ1Jlc291cmNlKQog
CiAgICAgRGlzcGxheUxpc3QgbGlzdDsKIAotICAgIGxpc3QuYXBwZW5kPFNldElubGluZUZpbGxD
b2xvcj4oQ29sb3I6OmdyZWVuKTsKKyAgICBsaXN0LmFwcGVuZDxTZXRGaWxsQ29sb3I+KENvbG9y
OjpncmVlbik7CiAgICAgbGlzdC5hcHBlbmQ8RmlsbFJlY3Q+KGNvbnRleHRCb3VuZHMpOwogICAg
IGxpc3QuYXBwZW5kPERyYXdJbWFnZUJ1ZmZlcj4oaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb250
ZXh0Qm91bmRzLCBjb250ZXh0Qm91bmRzLCBJbWFnZVBhaW50aW5nT3B0aW9ucyB7IH0pOwotICAg
IGxpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6cmVkKTsKKyAgICBsaXN0
LmFwcGVuZDxTZXRTdHJva2VDb2xvcj4oQ29sb3I6OnJlZCk7CiAgICAgbGlzdC5hcHBlbmQ8U3Ry
b2tlTGluZT4oRmxvYXRQb2ludCB7IDAsIGNvbnRleHRIZWlnaHQgfSwgRmxvYXRQb2ludCB7IGNv
bnRleHRXaWR0aCwgMCB9KTsKIAogICAgIHsKQEAgLTEyMCw3ICsxMjAsNyBAQCBURVNUKERpc3Bs
YXlMaXN0VGVzdHMsIE91dE9mTGluZUl0ZW1EZWNvZGluZ0ZhaWx1cmUpCiAgICAgcGF0aC5tb3Zl
VG8oeyAxMC4sIDEwLiB9KTsKICAgICBwYXRoLmFkZExpbmVUbyh7IDUwLiwgNTAuIH0pOwogICAg
IHBhdGguYWRkTGluZVRvKHsgMTAuLCAxMC4gfSk7Ci0gICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxT
ZXRJbmxpbmVTdHJva2VDb2xvcj4oQ29sb3I6OmJsdWUpOworICAgIG9yaWdpbmFsTGlzdC5hcHBl
bmQ8U2V0U3Ryb2tlQ29sb3I+KENvbG9yOjpibHVlKTsKICAgICBvcmlnaW5hbExpc3QuYXBwZW5k
PEZpbGxQYXRoPihXVEZNb3ZlKHBhdGgpKTsKIAogICAgIERpc3BsYXlMaXN0IHNoYWxsb3dDb3B5
IHt7IEl0ZW1CdWZmZXJIYW5kbGUgeyBnbG9iYWxCdWZmZXJJZGVudGlmaWVyLCBnbG9iYWxJdGVt
QnVmZmVyLCBvcmlnaW5hbExpc3Quc2l6ZUluQnl0ZXMoKSB9IH19OwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIzYjI5ODY1
MDllZThhOGNhYTBjNzM1Mzc0Zjc3NmQ2MjNjYTk0OGQuLmVlZWU1MmM5MGU5NjU0MjM2MTRkZWI1
NWYwMGVmN2Q4ZDIyM2YxODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xNiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IFJlY29yZCBjaGFuZ2VzIGluIEdyYXBoaWNzQ29udGV4dFN0YXRlIGFzIGluZGl2aWR1YWwgRGlz
cGxheUxpc3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGRpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtc2hhZG93LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBkaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1leHBl
Y3RlZC50eHQ6CisKIDIwMjEtMDItMTUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21h
aWwuY29tPgogCiAgICAgICAgIFtKU0NdIFByb3BlcnR5U2xvdCBzaG91bGQgYWxsb3cgcGFzc2lu
ZyBjdXN0b20gc2V0dGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2Nh
bnZhcy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3Rz
L2NhbnZhcy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0CmluZGV4IDE0NTFiMTkyNTNjMzIzODky
OGJiZDlmNWU1ZGViYjkyNzRjNTBkNTcuLjQ1N2VkMjg5NzRkZjY3NzkyM2RkMGYzOTU4OTJiN2Y0
M2I0YjI2OWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlz
cGxheS1saXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2Fu
dmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMTYgQEAKIAogKHNhdmUp
Ci0oc2V0LXN0YXRlCi0gIChjaGFuZ2UtZmxhZ3MgNTI1NDU2KQotICAoc3Ryb2tlLXRoaWNrbmVz
cyAxLjAwKQotICAoZmlsbC1jb2xvciAjQzgwMDAwKQorKHNldC1zaGFkb3dzLWlnbm9yZS10cmFu
c2Zvcm1zCiAgIChzaGFkb3dzLWlnbm9yZS10cmFuc2Zvcm1zIDEpKQorKHNldC1zdHJva2UtdGhp
Y2tuZXNzCisgIChzdHJva2UtdGhpY2tuZXNzIDEuMDApKQorKHNldC1maWxsLWNvbG9yCisgIChm
aWxsLWNvbG9yICNDODAwMDApKQorKHNldC1pbWFnZS1pbnRlcnBvbGF0aW9uLXF1YWxpdHkKKyAg
KGltYWdlLWludGVycG9sYXRpb24tcXVhbGl0eSBMb3cpKQogKGZpbGwtcmVjdAogICAocmVjdCBh
dCAoMTAsMTApIHNpemUgNTV4NTApIGV4dGVudCBhdCAoMTAsMTQwKSBzaXplIDU1eDUwKQotKHNl
dC1pbmxpbmUtZmlsbC1jb2xvcgotICAoY29sb3IgIzAwMDBDODgwKSkKKyhzZXQtZmlsbC1jb2xv
cgorICAoZmlsbC1jb2xvciAjMDAwMEM4ODApKQogKGZpbGwtcmVjdAogICAocmVjdCBhdCAoMzAs
MzApIHNpemUgNTV4NTApIGV4dGVudCBhdCAoMzAsMTIwKSBzaXplIDU1eDUwKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy1zaGFkb3ctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy1zaGFkb3ct
ZXhwZWN0ZWQudHh0CmluZGV4IDU5MGI5M2Y1Yzg5MmNhZTM3ZjQyNDYwOWE4ZmU0ODAzM2U2Njgz
NjguLjE0NmUzMGUyNTYzOTIwN2VjYWQ2YjVkNWJiZTRiODE4ZDdkYTkzZmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtc2hhZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXNoYWRv
dy1leHBlY3RlZC50eHQKQEAgLTMsMTEgKzMsMTAgQEAKICAgKHggMC4wMCkKICAgKHkgMC4wMCkp
CiAoc2F2ZSkKLShzZXQtc3RhdGUKLSAgKGNoYW5nZS1mbGFncyA1MTIpCi0gIChzaGFkb3ctYmx1
ciAxMi4wMCkKKyhzZXQtc2hhZG93CiAgIChzaGFkb3ctb2Zmc2V0IHdpZHRoPTEwIGhlaWdodD0y
MCkKLSAgKHNoYWRvd3MtdXNlLWxlZ2FjeS1yYWRpdXMgMCkpCisgIChzaGFkb3ctYmx1ciAxMi4w
MCkKKyAgKHNoYWRvdy1jb2xvciAjMDAwMDAwKSkKIChmaWxsLWNvbXBvc2l0ZWQtcmVjdAogICAo
cmVjdCBhdCAoNTAsNTApIHNpemUgMTAweDEwMCkKICAgKGNvbG9yICMwMDAwRkYpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10
cmFuc2Zvcm1zLWV4cGVjdGVkLnR4dAppbmRleCAyOGNjZjRjMDE4NTlkZTE5MGIwYTlhMjdmYTJm
ZWMwMDYzZWQ4ZTFjLi40MTU2ZjEwNWZmNThhYWE0YzNmOTZlZTk4Yjg0YzkxYjZhNGEwZDhjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5z
Zm9ybXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9leHRlbnQt
aW5jbHVkZXMtdHJhbnNmb3Jtcy1leHBlY3RlZC50eHQKQEAgLTUsMTEgKzUsMTAgQEAKIChjb25j
YXRlbnRhdGUtY3RtCiAgIChjdG0ge209KCgwLjg3LDAuNTApKC0wLjUwLDAuODcpKSB0PSg4MS43
MCwtMTguMzApfSkpCiAoc2F2ZSkKLShzZXQtc3RhdGUKLSAgKGNoYW5nZS1mbGFncyA1MTIpCi0g
IChzaGFkb3ctYmx1ciAxMi4wMCkKKyhzZXQtc2hhZG93CiAgIChzaGFkb3ctb2Zmc2V0IHdpZHRo
PTEwIGhlaWdodD0yMCkKLSAgKHNoYWRvd3MtdXNlLWxlZ2FjeS1yYWRpdXMgMCkpCisgIChzaGFk
b3ctYmx1ciAxMi4wMCkKKyAgKHNoYWRvdy1jb2xvciAjMDAwMDAwKSkKIChmaWxsLWNvbXBvc2l0
ZWQtcmVjdAogICAocmVjdCBhdCAoMCwwKSBzaXplIDEwMHgxMDApCiAgIChjb2xvciAjMDAwMEZG
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlz
dC1leHBlY3RlZC50eHQKaW5kZXggYmMxN2I1MTE0OTlmODI1NmM5OTI5MGRhZTg2MTRkNDg5NGNh
ZjljYy4uMjg1MGNiNjQwODI0MzFkZThmMTIyOTk1ZjIyOWUyMzY4NzUzYTBlNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3QtZXhwZWN0
ZWQudHh0CkBAIC03LDEwICs3LDExIEBACiAgIChjb2xvciAjMDA4MDAwKQogICAoY29tcG9zaXRl
LW9wZXJhdGlvbiBzb3VyY2Utb3ZlcikKICAgKGJsZW5kLW1vZGUgbm9ybWFsKSBleHRlbnQgYXQg
KDAsMCkgc2l6ZSAxMDR4MTA0KQotKHNldC1zdGF0ZQotICAoY2hhbmdlLWZsYWdzIDMyOTYwKQot
ICAoZmlsbC1jb2xvciAjMDAwMEZGKQotICAoc3Ryb2tlLXN0eWxlIDApCisoc2V0LWZpbGwtY29s
b3IKKyAgKGZpbGwtY29sb3IgIzAwMDBGRikpCisoc2V0LXN0cm9rZS1zdHlsZQorICAoc3Ryb2tl
LXN0eWxlIDApKQorKHNldC1zaG91bGQtYW50aWFsaWFzCiAgIChzaG91bGQtYW50aWFsaWFzIDAp
KQogKGRyYXctcmVjdAogICAocmVjdCBhdCAoMCwwKSBzaXplIDEwNHgyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420617</attachid>
            <date>2021-02-17 01:45:58 -0800</date>
            <delta_ts>2022-02-10 16:16:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219468-20210217014557.patch</filename>
            <type>text/plain</type>
            <size>99858</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwNWExMGQ5N2Q5MTVk
YmM4ODkwZDdhNjE0YTNkMWUwMjE4NzYwOS4uOGI2ZjNjZjU2MmI3MDEwYTM1YTI5YmM4YmNkZmUz
NGNjYjQ4ZDI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNCBAQAorMjAyMS0wMi0xNiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IFJlY29yZCBjaGFuZ2VzIGluIEdyYXBoaWNzQ29udGV4dFN0YXRlIGFzIGluZGl2aWR1YWwgRGlz
cGxheUxpc3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHVzdWFsbHkgaGFzIGNoYW5nZXMgZm9yIGlubGlu
ZSBkYXRhIG9ubHkgd2hpY2ggZG9lcworICAgICAgICBub3QgbmVlZCBzcGVjaWFsIGVuY29kaW5n
IGFuZCBkZWNvZGluZy4gQWxzbyBvbmx5IGZldyBjaGFuZ2VzIGFyZSBzZXQgYXQKKyAgICAgICAg
dGhlIHNhbWUgdGltZS4gU28gcmVjb3JkaW5nIHRoZSBjaGFuZ2VzIGluIEdyYXBoaWNzQ29udGV4
dFN0YXRlIGFzIGluZGl2aWR1YWwKKyAgICAgICAgaXRlbXMgYW5kIG1ha2luZyBtb3N0IG9mIHRo
ZXNlIGl0ZW1zIGlubGluZSBzaG91bGQgc2F2ZSB0aW1lIGFuZCBtZW1vcnkuCisKKyAgICAgICAg
RGVsZXRlIFNldFN0YXRlIGFuZCBtYWtlIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBwZW5kU3Rh
dGVDaGFuZ2VJdGVtKCkKKyAgICAgICAgZXhwYW5kIHRoZSBjaGFuZ2VzIGluIEdyYXBoaWNzQ29u
dGV4dFN0YXRlIHRvIGluZGl2aWR1YWwgaXRlbXMuCisKKyAgICAgICAgTW9zdCBvZiB0aGUgY2hh
bmdlcyBpbiBHcmFwaGljc0NvbnRleHRTdGF0ZSB3aWxsIGJlIHJlcHJlc2VudGVkIGJ5IHRoZQor
ICAgICAgICB0ZW1wbGF0ZSBjbGFzcyBTZXRJbmxpbmVTdGF0ZS4gVGhlIG1lbWJlcnMgb2YgdGhl
IGNoYW5nZSBhbG9uZyB3aXRoIHRoZQorICAgICAgICBHcmFwaGljc0NvbnRleHQgYXBwbGllciBt
ZXRob2Qgd2lsbCBiZSBwYXNzZWQgYXMgYXJndW1lbnRzIHRvIHRoaXMgdGVtcGxhdGUKKyAgICAg
ICAgY2xhc3MuIFRoZSBtZW1iZXJzIG9mIHRoZSBjaGFuZ2Ugd2lsbCBiZSBzdG9yZWQgaW4gc3Rk
Ojp0dXBsZS4KKworICAgICAgICBUaGUgdGVtcGxhdGUgY2xhc3MgU2V0UGF0dGVybiBpcyB1c2Vk
IHRvIHJlY29yZCB0aGUgcGF0dGVybiBjaGFuZ2VzLiBJdCAKKyAgICAgICAgaXMgYW4gaW5saW5l
IGl0ZW0uIFRoZSB0aWxlSW1hZ2Ugb2YgdGhlIFBhdHRlcm4gaGFzIHRvIGJlIGNhY2hlZCBiZWZv
cmUKKyAgICAgICAgcmVjb3JkaW5nIHRoZSBpdGVtLiBUaGUgYXBwbHkoKSBtZXRob2Qgd2lsbCBi
ZSBwYXNzZWQgYSBOYXRpdmVJbWFnZSB3aGljaAorICAgICAgICB3aWxsIGJlIHVzZWQgdG8gY29u
c3RydWN0IHRoZSBQYXR0ZXJuIGJlZm9yZSBzZXR0aW5nIGl0IHRvIEdyYXBoaWNzQ29udGV4dC4K
KworICAgICAgICBUaGUgdGVtcGxhdGUgY2xhc3MgU2V0R3JhZGllbnQgaXMgdXNlZCB0byByZWNv
cmQgdGhlIGdyYWRpZW50IGNoYW5nZXMuCisgICAgICAgIFRoZSBncmFkaWVudCBpcyBzdG9yZWQg
YXMgYSBwb2ludGVyIHNvIGl0IGlzIG5vdCBpbmxpbmUgaXRlbS4gU2V0R3JhZGllbnQKKyAgICAg
ICAgaGFzIHRvIGhhdmUgaXRzIG93biBlbmNvZGUoKSBhbmQgZGVjb2RlKCkgbWV0aG9kcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6
OnNob3VsZER1bXBGb3JGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1IYW5kbGU6OnNhZmVDb3B5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6c2l6ZU9mSXRlbUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OmlzRHJhd2luZ0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Omlz
SW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbVR5cGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5l
RmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZp
bGxHcmFkaWVudDo6YXBwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcjo6YXBwbHkgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0
cm9rZUNvbG9yOjphcHBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0U3Ryb2tlVGhpY2tuZXNzOjphcHBseSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OlNldFN0YXRlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6YXBwbHkpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YXBwbGllcik6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3RhdGU6OlNldElubGluZVN0YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdGF0ZTo6YXBwbHkgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0YXRlOjphcmd1
bWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U2hhZG93c0ln
bm9yZVRyYW5zZm9ybXM6OnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRMZWdhY3lTaGFkb3c6Om9mZnNldCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0TGVnYWN5U2hhZG93OjpibHVyIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRMZWdhY3lTaGFkb3c6OmNvbG9y
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTaGFkb3c6Om9mZnNl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U2hhZG93OjpibHVy
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTaGFkb3c6OmNvbG9y
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdHJva2VUaGlja25l
c3M6OnRoaWNrbmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0
VGV4dERyYXdpbmdNb2RlOjp0ZXh0RHJhd2luZ01vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldFN0cm9rZUNvbG9yOjpjb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0RmlsbENvbG9yOjpjb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3Ryb2tlU3R5bGU6OnN0eWxlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRGaWxsUnVsZTo6ZmlsbFJ1bGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldEFscGhhOjphbHBoYSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0Q29tcG9zaXRlT3BlcmF0aW9uOjpj
b21wb3NpdGVPcGVyYXRvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
U2V0Q29tcG9zaXRlT3BlcmF0aW9uOjpibGVuZE1vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldFNob3VsZEFudGlhbGlhczo6c2hvdWxkQW50aWFsaWFzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTaG91bGRTbW9vdGhGb250czo6
c2hvdWxkU21vb3RoRm9udHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czo6c2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZv
bnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXREcmF3THVtaW5h
bmNlTWFzazo6ZHJhd0x1bWluYW5jZU1hc2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk6OmltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFVzZURh
cmtBcHBlYXJhbmNlOjp1c2VEYXJrQXBwZWFyYW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yOjpTZXRJbmxpbmVGaWxsQ29sb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xv
cjo6Y29sb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldElubGluZVN0cm9rZUNvbG9yOjpTZXRJbmxpbmVTdHJva2VDb2xvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6OmNvbG9y
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdHJv
a2VUaGlja25lc3M6OlNldFN0cm9rZVRoaWNrbmVzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU6OnN0YXRlQ2hhbmdlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZTo6c3Ryb2tlUGF0dGVyblBh
cmFtZXRlcnMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlNldFN0YXRlOjpmaWxsUGF0dGVyblBhcmFtZXRlcnMgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpzdHJva2VQYXR0ZXJuSW1hZ2VJZGVu
dGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpT
ZXRTdGF0ZTo6ZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjplbmNvZGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlOjpkZWNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRl
cjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojpjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjphcHBseVNldFN0YXRlSXRlbSk6IERlbGV0ZWQuCisK
IDIwMjEtMDItMTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW21hY09TXSBDb25uZWN0IFRvdWNoIEJhciB0byBNZWRpYVNlc3Npb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggOGYzNWQxNzJmMjZlOWRlZDFlNjBiMzVmZGFjYWJmNDNmNmU5ZTNiMS4uMDljMDk5OWQ0NTFj
ZmI3MzViZWQzMGY2MGMwMzVkYmU2YjAyOGIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMS0wMi0xNiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbR1BVIFByb2Nlc3NdIFJlY29yZCBjaGFuZ2VzIGluIEdyYXBoaWNzQ29udGV4dFN0YXRlIGFz
IGluZGl2aWR1YWwgRGlzcGxheUxpc3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
ZGVjb2RlSXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oOgorICAgICAgICBEZWxldGUgU2V0U3RhdGUgZWxlbWVudCBhbmQgaGFu
ZGxlIHRoZSBuZXcgRGlzcGxheUxpc3QgaXRlbXMuCisKIDIwMjEtMDItMTUgIFRydWl0dCBTYXZl
bGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcg
cjI3Mjg2Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzVHlwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlcy5jcHAKaW5kZXggZGM1NGE5OTg1ZTRkNDIwNjdkYTZjMjM4MTgzNWZiZDM3MzY4NzYx
Yi4uYmE1ZDhkNDkxODgwMjlhZGMwMDBkZTI0YTE5YTk1MDcyZjA0M2E1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5jcHAKQEAgLTE5
NSw0ICsxOTUsMjYgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBwcmVtdWx0aXBsaWNhdGlvbikKICAgICByZXR1cm4gdHM7CiB9
CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEludGVycG9sYXRpb25R
dWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5KQoreworICAgIHN3aXRjaCAoaW50ZXJwb2xhdGlv
blF1YWxpdHkpIHsKKyAgICBjYXNlIEludGVycG9sYXRpb25RdWFsaXR5OjpEZWZhdWx0OgorICAg
ICAgICB0cyA8PCAiRGVmYXVsdCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW50ZXJwb2xh
dGlvblF1YWxpdHk6OkRvTm90SW50ZXJwb2xhdGU6CisgICAgICAgIHRzIDw8ICJEb05vdEludGVy
cG9sYXRlIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6
TG93OgorICAgICAgICB0cyA8PCAiTG93IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnRl
cnBvbGF0aW9uUXVhbGl0eTo6TWVkaXVtOgorICAgICAgICB0cyA8PCAiTWVkaXVtIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbnRlcnBvbGF0aW9uUXVhbGl0eTo6SGlnaDoKKyAgICAgICAg
dHMgPDwgIkhpZ2giOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc1R5cGVzLmgKaW5kZXggNDZlZjA0NmRlZWIwMmJhMTBkMzc2NWNkZDBm
NWM2ZWI3OGVmNWVhMS4uYzA2NjAwYjliMjI0MDEwMDkzYmVkY2RjNzZiMGFjMmIxZWZkODY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMu
aApAQCAtMTMyLDYgKzEzMiw3IEBAIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXZWJDb3JlOjpDb21wb3NpdGVPCiBXRUJDT1JFX0VY
UE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2luZFJ1
bGUpOwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIExpbmVDYXApOwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVKb2luKTsKK1dFQkNPUkVfRVhQT1JUIFdURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBJbnRlcnBvbGF0aW9uUXVh
bGl0eSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5j
cHAKaW5kZXggZTA3OWY3MzBiZTg1OWFjM2IwNWI5NDI5YzMwZTgzNjFkMTQzYWViNC4uM2Y4NjAy
OTM5NzkwYmZmNzExNTdhN2Q3ZTEwYTgyNjRjOGJhNDM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3QuY3BwCkBAIC04NywyOCArODcsMTUgQEAgdm9pZCBEaXNwbGF5TGlzdDo6Y2xlYXIoKQogYm9v
bCBEaXNwbGF5TGlzdDo6c2hvdWxkRHVtcEZvckZsYWdzKEFzVGV4dEZsYWdzIGZsYWdzLCBJdGVt
SGFuZGxlIGl0ZW0pCiB7CiAgICAgc3dpdGNoIChpdGVtLnR5cGUoKSkgewotICAgIGNhc2UgSXRl
bVR5cGU6OlNldFN0YXRlOgotICAgICAgICBpZiAoIShmbGFncyAmIEFzVGV4dEZsYWc6OkluY2x1
ZGVzUGxhdGZvcm1PcGVyYXRpb25zKSkgewotICAgICAgICAgICAgY29uc3QgYXV0byYgc3RhdGVJ
dGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+KCk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogZm9yIG5v
dywgb25seSBkcm9wIHRoZSBpdGVtIGlmIHRoZSBvbmx5IHN0YXRlLWNoYW5nZSBmbGFncyBhcmUg
cGxhdGZvcm0tc3BlY2lmaWMuCi0gICAgICAgICAgICBpZiAoc3RhdGVJdGVtLnN0YXRlQ2hhbmdl
KCkubV9jaGFuZ2VGbGFncyA9PSBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU3VicGl4ZWxR
dWFudGl6ZUZvbnRzQ2hhbmdlKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICAgICAgaWYgKHN0YXRlSXRlbS5zdGF0ZUNoYW5nZSgpLm1fY2hhbmdlRmxhZ3MgPT0gR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOgogI2lmIFVT
RShDRykKICAgICBjYXNlIEl0ZW1UeXBlOjpBcHBseUZpbGxQYXR0ZXJuOgogICAgIGNhc2UgSXRl
bVR5cGU6OkFwcGx5U3Ryb2tlUGF0dGVybjoKLSAgICAgICAgaWYgKCEoZmxhZ3MgJiBBc1RleHRG
bGFnOjpJbmNsdWRlc1BsYXRmb3JtT3BlcmF0aW9ucykpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGJyZWFrOwogI2VuZGlmCisgICAgICAgIHJldHVybiBmbGFncyAmIEFzVGV4
dEZsYWc6OkluY2x1ZGVzUGxhdGZvcm1PcGVyYXRpb25zOwogICAgIGRlZmF1bHQ6Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CiB9
CiAKIFN0cmluZyBEaXNwbGF5TGlzdDo6YXNUZXh0KEFzVGV4dEZsYWdzIGZsYWdzKSBjb25zdApA
QCAtMjAzLDE2ICsxOTAsNTIgQEAgdm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUg
aXRlbSkKICAgICAgICAgcmV0dXJuIGFwcGVuZDxDb25jYXRlbmF0ZUNUTT4oaXRlbS5nZXQ8Q29u
Y2F0ZW5hdGVDVE0+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0
dXJuIGFwcGVuZDxTZXRDVE0+KGl0ZW0uZ2V0PFNldENUTT4oKSk7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1cm4gYXBwZW5kPFNldElubGlu
ZUZpbGxHcmFkaWVudD4oaXRlbS5nZXQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigpKTsKLSAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8
U2V0SW5saW5lRmlsbENvbG9yPihpdGVtLmdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCkpOwotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAgICAgICByZXR1cm4gYXBw
ZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihpdGVtLmdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4o
KSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlR3JhZGllbnQ6CisgICAgICAgIHJldHVy
biBhcHBlbmQ8U2V0U3Ryb2tlR3JhZGllbnQ+KGl0ZW0uZ2V0PFNldFN0cm9rZUdyYWRpZW50Pigp
KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VQYXR0ZXJuOgorICAgICAgICByZXR1cm4g
YXBwZW5kPFNldFN0cm9rZVBhdHRlcm4+KGl0ZW0uZ2V0PFNldFN0cm9rZVBhdHRlcm4+KCkpOwor
ICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxHcmFkaWVudDoKKyAgICAgICAgcmV0dXJuIGFwcGVu
ZDxTZXRGaWxsR3JhZGllbnQ+KGl0ZW0uZ2V0PFNldEZpbGxHcmFkaWVudD4oKSk7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0RmlsbFBhdHRlcm46CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0Rmls
bFBhdHRlcm4+KGl0ZW0uZ2V0PFNldEZpbGxQYXR0ZXJuPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtczoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRT
aGFkb3dzSWdub3JlVHJhbnNmb3Jtcz4oaXRlbS5nZXQ8U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9y
bXM+KCkpOworI2lmIFVTRShDRykKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMZWdhY3lTaGFkb3c6
CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0TGVnYWN5U2hhZG93PihpdGVtLmdldDxTZXRMZWdh
Y3lTaGFkb3c+KCkpOworI2VuZGlmCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93OgorICAg
ICAgICByZXR1cm4gYXBwZW5kPFNldFNoYWRvdz4oaXRlbS5nZXQ8U2V0U2hhZG93PigpKTsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIHJldHVybiBhcHBl
bmQ8U2V0U3Ryb2tlVGhpY2tuZXNzPihpdGVtLmdldDxTZXRTdHJva2VUaGlja25lc3M+KCkpOwot
ICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgotICAgICAgICByZXR1cm4gYXBwZW5kPFNldFN0
YXRlPihpdGVtLmdldDxTZXRTdGF0ZT4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0VGV4dERy
YXdpbmdNb2RlOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldFRleHREcmF3aW5nTW9kZT4oaXRl
bS5nZXQ8U2V0VGV4dERyYXdpbmdNb2RlPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJv
a2VDb2xvcjoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRTdHJva2VDb2xvcj4oaXRlbS5nZXQ8
U2V0U3Ryb2tlQ29sb3I+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxDb2xvcjoKKyAg
ICAgICAgcmV0dXJuIGFwcGVuZDxTZXRGaWxsQ29sb3I+KGl0ZW0uZ2V0PFNldEZpbGxDb2xvcj4o
KSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlU3R5bGU6CisgICAgICAgIHJldHVybiBh
cHBlbmQ8U2V0U3Ryb2tlU3R5bGU+KGl0ZW0uZ2V0PFNldFN0cm9rZVN0eWxlPigpKTsKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRGaWxsUnVsZToKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRGaWxs
UnVsZT4oaXRlbS5nZXQ8U2V0RmlsbFJ1bGU+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEFs
cGhhOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldEFscGhhPihpdGVtLmdldDxTZXRBbHBoYT4o
KSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q29tcG9zaXRlT3BlcmF0aW9uOgorICAgICAgICBy
ZXR1cm4gYXBwZW5kPFNldENvbXBvc2l0ZU9wZXJhdGlvbj4oaXRlbS5nZXQ8U2V0Q29tcG9zaXRl
T3BlcmF0aW9uPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRBbnRpYWxpYXM6Cisg
ICAgICAgIHJldHVybiBhcHBlbmQ8U2V0U2hvdWxkQW50aWFsaWFzPihpdGVtLmdldDxTZXRTaG91
bGRBbnRpYWxpYXM+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZFNtb290aEZvbnRz
OgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldFNob3VsZFNtb290aEZvbnRzPihpdGVtLmdldDxT
ZXRTaG91bGRTbW9vdGhGb250cz4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU3Vi
cGl4ZWxRdWFudGl6ZUZvbnRzOgorICAgICAgICByZXR1cm4gYXBwZW5kPFNldFNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250cz4oaXRlbS5nZXQ8U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRz
PigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXREcmF3THVtaW5hbmNlTWFzazoKKyAgICAgICAg
cmV0dXJuIGFwcGVuZDxTZXREcmF3THVtaW5hbmNlTWFzaz4oaXRlbS5nZXQ8U2V0RHJhd0x1bWlu
YW5jZU1hc2s+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHk6CisgICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0
eT4oaXRlbS5nZXQ8U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eT4oKSk7CisjaWYgSEFWRShP
U19EQVJLX01PREVfU1VQUE9SVCkKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRVc2VEYXJrQXBwZWFy
YW5jZToKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRVc2VEYXJrQXBwZWFyYW5jZT4oaXRlbS5n
ZXQ8U2V0VXNlRGFya0FwcGVhcmFuY2U+KCkpOworI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0TGluZUNhcDoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRMaW5lQ2FwPihpdGVtLmdldDxT
ZXRMaW5lQ2FwPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggMzk1ZmU2NzFjY2Y3NDIy
YTE2NTY3NmM3OWNkMWUwOWVmNTU5YTk0ZC4uMTFhODYxMjkyYzUzMTM3ZmUyNmJiY2VhMGIyOTkz
MmFiNjExZTZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5j
cHAKQEAgLTcyLDI2ICs3Miw5NCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkKICAgICAgICAgZ2V0PFNldENUTT4oKS5hcHBseShjb250ZXh0KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQ6IHsKLSAgICAgICAgZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKS5hcHBseShjb250
ZXh0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VHcmFkaWVudDogeworICAgICAgICBn
ZXQ8U2V0U3Ryb2tlR3JhZGllbnQ+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7Ci0gICAgICAg
IGdldDxTZXRJbmxpbmVGaWxsQ29sb3I+KCkuYXBwbHkoY29udGV4dCk7CisgICAgY2FzZSBJdGVt
VHlwZTo6U2V0U3Ryb2tlUGF0dGVybjogeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsR3JhZGll
bnQ6IHsKKyAgICAgICAgZ2V0PFNldEZpbGxHcmFkaWVudD4oKS5hcHBseShjb250ZXh0KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsUGF0dGVybjog
eworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtczogeworICAgICAg
ICBnZXQ8U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM+KCkuYXBwbHkoY29udGV4dCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisjaWYgVVNFKENHKQorICAgIGNhc2UgSXRlbVR5cGU6OlNldExl
Z2FjeVNoYWRvdzogeworICAgICAgICBnZXQ8U2V0TGVnYWN5U2hhZG93PigpLmFwcGx5KGNvbnRl
eHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZVN0cm9rZUNvbG9yOiB7Ci0gICAgICAgIGdldDxTZXRJbmxpbmVTdHJva2VDb2xvcj4oKS5hcHBs
eShjb250ZXh0KTsKKyNlbmRpZgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvdzogeworICAg
ICAgICBnZXQ8U2V0U2hhZG93PigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczogewogICAgICAgICBn
ZXQ8U2V0U3Ryb2tlVGhpY2tuZXNzPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOiB7Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFRleHREcmF3aW5nTW9kZTogewor
ICAgICAgICBnZXQ8U2V0VGV4dERyYXdpbmdNb2RlPigpLmFwcGx5KGNvbnRleHQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUNvbG9yOiB7Cisg
ICAgICAgIGdldDxTZXRTdHJva2VDb2xvcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsQ29sb3I6IHsKKyAgICAgICAg
Z2V0PFNldEZpbGxDb2xvcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VTdHlsZTogeworICAgICAgICBnZXQ8U2V0
U3Ryb2tlU3R5bGU+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbFJ1bGU6IHsKKyAgICAgICAgZ2V0PFNldEZpbGxSdWxl
PigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRl
bVR5cGU6OlNldEFscGhhOiB7CisgICAgICAgIGdldDxTZXRBbHBoYT4oKS5hcHBseShjb250ZXh0
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDb21wb3Np
dGVPcGVyYXRpb246IHsKKyAgICAgICAgZ2V0PFNldENvbXBvc2l0ZU9wZXJhdGlvbj4oKS5hcHBs
eShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRTaG91bGRBbnRpYWxpYXM6IHsKKyAgICAgICAgZ2V0PFNldFNob3VsZEFudGlhbGlhcz4oKS5h
cHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRTaG91bGRTbW9vdGhGb250czogeworICAgICAgICBnZXQ8U2V0U2hvdWxkU21vb3RoRm9u
dHM+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOiB7CisgICAgICAgIGdldDxT
ZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RHJhd0x1bWluYW5jZU1hc2s6
IHsKKyAgICAgICAgZ2V0PFNldERyYXdMdW1pbmFuY2VNYXNrPigpLmFwcGx5KGNvbnRleHQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldEltYWdlSW50ZXJw
b2xhdGlvblF1YWxpdHk6IHsKKyAgICAgICAgZ2V0PFNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHk+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjaWYgSEFWRShP
U19EQVJLX01PREVfU1VQUE9SVCkKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRVc2VEYXJrQXBwZWFy
YW5jZTogeworICAgICAgICBnZXQ8U2V0VXNlRGFya0FwcGVhcmFuY2U+KCkuYXBwbHkoY29udGV4
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRMaW5lQ2FwOiB7CiAgICAgICAgIGdldDxTZXRMaW5lQ2FwPigpLmFwcGx5KGNvbnRleHQpOwog
ICAgICAgICByZXR1cm47CkBAIC0zNTQsOCArNDIyLDEyIEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVz
dHJveSgpCiAgICAgICAgIGdldDxTZXRMaW5lRGFzaD4oKS5+U2V0TGluZURhc2goKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZTogewotICAgICAg
ICBnZXQ8U2V0U3RhdGU+KCkuflNldFN0YXRlKCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ry
b2tlR3JhZGllbnQ6IHsKKyAgICAgICAgZ2V0PFNldFN0cm9rZUdyYWRpZW50PigpLn5TZXRTdHJv
a2VHcmFkaWVudCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6
OlNldEZpbGxHcmFkaWVudDogeworICAgICAgICBnZXQ8U2V0RmlsbEdyYWRpZW50PigpLn5TZXRG
aWxsR3JhZGllbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEl0ZW1UeXBl
OjpTdHJva2VQYXRoOiB7CkBAIC00ODYsMTggKzU1OCw4NiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRl
c3Ryb3koKQogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0
aWJsZTxTZXRDVE0+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOiB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxDb2xvcj46OnZhbHVlKTsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VQYXR0ZXJuOiB7CisgICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldFN0cm9rZVBhdHRlcm4+Ojp2
YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0Rmls
bFBhdHRlcm46IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0
cnVjdGlibGU8U2V0RmlsbFBhdHRlcm4+Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6IHsKKyAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0U2hhZG93
c0lnbm9yZVRyYW5zZm9ybXM+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
Y2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB7Ci0gICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxHcmFkaWVu
dD46OnZhbHVlKTsKKyNpZiBVU0UoQ0cpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGVnYWN5U2hh
ZG93OiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3Rp
YmxlPFNldExlZ2FjeVNoYWRvdz46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNl
bmRpZgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvdzogeworICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRTaGFkb3c+Ojp2YWx1ZSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tu
ZXNzOiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3Rp
YmxlPFNldFN0cm9rZVRoaWNrbmVzcz46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRUZXh0RHJhd2luZ01vZGU6IHsKKyAgICAgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0VGV4dERyYXdpbmdNb2Rl
Pjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNl
dFN0cm9rZUNvbG9yOiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlf
ZGVzdHJ1Y3RpYmxlPFNldFN0cm9rZUNvbG9yPjo6dmFsdWUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxDb2xvcjogeworICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRGaWxsQ29sb3I+Ojp2YWx1
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tl
U3R5bGU6IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8U2V0U3Ryb2tlU3R5bGU+Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbFJ1bGU6IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0RmlsbFJ1bGU+Ojp2YWx1ZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0QWxwaGE6IHsKKyAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0QWxwaGE+
Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0
Q29tcG9zaXRlT3BlcmF0aW9uOiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2
aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldENvbXBvc2l0ZU9wZXJhdGlvbj46OnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xv
cjogewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJs
ZTxTZXRJbmxpbmVTdHJva2VDb2xvcj46OnZhbHVlKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRT
aG91bGRBbnRpYWxpYXM6IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxs
eV9kZXN0cnVjdGlibGU8U2V0U2hvdWxkQW50aWFsaWFzPjo6dmFsdWUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZFNtb290aEZvbnRzOiB7Cisg
ICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldFNo
b3VsZFNtb290aEZvbnRzPjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNh
c2UgSXRlbVR5cGU6OlNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czogeworICAgICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRTaG91bGRTdWJw
aXhlbFF1YW50aXplRm9udHM+Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0RHJhd0x1bWluYW5jZU1hc2s6IHsKKyAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0RHJhd0x1bWluYW5jZU1hc2s+
Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6
aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5Pjo6
dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2lmIEhBVkUoT1NfREFSS19NT0RFX1NV
UFBPUlQpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0VXNlRGFya0FwcGVhcmFuY2U6IHsKKyAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0VXNlRGFy
a0FwcGVhcmFuY2U+Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldExpbmVDYXA+Ojp2YWx1ZSk7CiAgICAgICAg
IHJldHVybjsKQEAgLTUxMCwxMCArNjUwLDYgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkK
ICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0
TWl0ZXJMaW1pdD46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0U3Ryb2tlVGhpY2tuZXNzPjo6dmFsdWUpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6
IHsKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8
U3Ryb2tlRWxsaXBzZT46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjAwLDggKzczNiw2
IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNvcHkoSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29u
c3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFB1dEltYWdlRGF0YT4oKnRoaXMsIGl0ZW1PZmZz
ZXQpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgogICAgICAgICByZXR1cm4gY29w
eUludG88U2V0TGluZURhc2g+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKLSAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRTdGF0ZToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFN0YXRlPigqdGhpcywgaXRl
bU9mZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlUGF0aDoKICAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPFN0cm9rZVBhdGg+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpBcHBseURldmljZVNjYWxlRmFjdG9yOgpAQCAtNjYyLDIwICs3OTYsNTggQEAgYm9vbCBJ
dGVtSGFuZGxlOjpzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAogICAgICAg
ICByZXR1cm4gY29weUludG88U2NhbGU+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRDVE06CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRDVE0+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAg
ICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVGaWxsQ29sb3I+KCp0aGlzLCBpdGVtT2Zmc2V0
KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHJl
dHVybiBjb3B5SW50bzxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCp0aGlzLCBpdGVtT2Zmc2V0KTsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKLSAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPFNldElubGluZVN0cm9rZUNvbG9yPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlR3JhZGllbnQ6CisgICAgICAgIHJldHVybiBjb3B5SW50
bzxTZXRTdHJva2VHcmFkaWVudD4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5
cGU6OlNldFN0cm9rZVBhdHRlcm46CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRTdHJva2VQ
YXR0ZXJuPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbEdy
YWRpZW50OgorICAgICAgICByZXR1cm4gY29weUludG88U2V0RmlsbEdyYWRpZW50PigqdGhpcywg
aXRlbU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbFBhdHRlcm46CisgICAgICAg
IHJldHVybiBjb3B5SW50bzxTZXRGaWxsUGF0dGVybj4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAg
IGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOgorICAgICAgICByZXR1
cm4gY29weUludG88U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM+KCp0aGlzLCBpdGVtT2Zmc2V0
KTsKKyNpZiBVU0UoQ0cpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGVnYWN5U2hhZG93OgorICAg
ICAgICByZXR1cm4gY29weUludG88U2V0TGVnYWN5U2hhZG93PigqdGhpcywgaXRlbU9mZnNldCk7
CisjZW5kaWYKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaGFkb3c6CisgICAgICAgIHJldHVybiBj
b3B5SW50bzxTZXRTaGFkb3c+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRTdHJva2VUaGlja25lc3M6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRTdHJva2VU
aGlja25lc3M+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRUZXh0
RHJhd2luZ01vZGU6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRUZXh0RHJhd2luZ01vZGU+
KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VDb2xvcjoK
KyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFN0cm9rZUNvbG9yPigqdGhpcywgaXRlbU9mZnNl
dCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbENvbG9yOgorICAgICAgICByZXR1cm4gY29w
eUludG88U2V0RmlsbENvbG9yPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlw
ZTo6U2V0U3Ryb2tlU3R5bGU6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRTdHJva2VTdHls
ZT4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxSdWxlOgor
ICAgICAgICByZXR1cm4gY29weUludG88U2V0RmlsbFJ1bGU+KCp0aGlzLCBpdGVtT2Zmc2V0KTsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRBbHBoYToKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNl
dEFscGhhPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q29tcG9z
aXRlT3BlcmF0aW9uOgorICAgICAgICByZXR1cm4gY29weUludG88U2V0Q29tcG9zaXRlT3BlcmF0
aW9uPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkQW50
aWFsaWFzOgorICAgICAgICByZXR1cm4gY29weUludG88U2V0U2hvdWxkQW50aWFsaWFzPigqdGhp
cywgaXRlbU9mZnNldCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU21vb3RoRm9udHM6
CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRTaG91bGRTbW9vdGhGb250cz4oKnRoaXMsIGl0
ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVG
b250czoKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVG
b250cz4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldERyYXdMdW1p
bmFuY2VNYXNrOgorICAgICAgICByZXR1cm4gY29weUludG88U2V0RHJhd0x1bWluYW5jZU1hc2s+
KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbWFnZUludGVycG9s
YXRpb25RdWFsaXR5OgorICAgICAgICByZXR1cm4gY29weUludG88U2V0SW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eT4oKnRoaXMsIGl0ZW1PZmZzZXQpOworI2lmIEhBVkUoT1NfREFSS19NT0RFX1NV
UFBPUlQpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0VXNlRGFya0FwcGVhcmFuY2U6CisgICAgICAg
IHJldHVybiBjb3B5SW50bzxTZXRVc2VEYXJrQXBwZWFyYW5jZT4oKnRoaXMsIGl0ZW1PZmZzZXQp
OworI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPFNldExpbmVDYXA+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRMaW5lSm9pbjoKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldExpbmVKb2luPigq
dGhpcywgaXRlbU9mZnNldCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TWl0ZXJMaW1pdDoKICAg
ICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldE1pdGVyTGltaXQ+KCp0aGlzLCBpdGVtT2Zmc2V0KTsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6Ci0gICAgICAgIHJldHVybiBj
b3B5SW50bzxTZXRTdHJva2VUaGlja25lc3M+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpTdHJva2VFbGxpcHNlOgogICAgICAgICByZXR1cm4gY29weUludG88U3Ryb2tl
RWxsaXBzZT4oKnRoaXMsIGl0ZW1PZmZzZXQpOwogI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRB
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCmluZGV4IGMwYzczYjgz
YmQ1MmVhYTA0YTk1MTc4MTgwNDQ1Mzk0N2JiYzk1ZTkuLjZjZWZhNzJmYjMxYmEzMjA0OWU0ODFj
Nzc0NjE3ZGJmYzViNzc5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlw
ZS5jcHAKQEAgLTQ4LDE2ICs0OCw1MiBAQCBzdGF0aWMgc2l6ZV90IHNpemVPZkl0ZW1JbkJ5dGVz
KEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2YoQ29uY2F0ZW5hdGVDVE0pOwog
ICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgcmV0dXJuIHNpemVvZihTZXRDVE0p
OwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgcmV0
dXJuIHNpemVvZihTZXRJbmxpbmVGaWxsR3JhZGllbnQpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNl
dElubGluZUZpbGxDb2xvcjoKLSAgICAgICAgcmV0dXJuIHNpemVvZihTZXRJbmxpbmVGaWxsQ29s
b3IpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAgICAgICBy
ZXR1cm4gc2l6ZW9mKFNldElubGluZVN0cm9rZUNvbG9yKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRTdHJva2VHcmFkaWVudDoKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRTdHJva2VHcmFkaWVu
dCk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlUGF0dGVybjoKKyAgICAgICAgcmV0dXJu
IHNpemVvZihTZXRTdHJva2VQYXR0ZXJuKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsR3Jh
ZGllbnQ6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0RmlsbEdyYWRpZW50KTsKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRGaWxsUGF0dGVybjoKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRGaWxs
UGF0dGVybik7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXM6
CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpOworI2lm
IFVTRShDRykKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMZWdhY3lTaGFkb3c6CisgICAgICAgIHJl
dHVybiBzaXplb2YoU2V0TGVnYWN5U2hhZG93KTsKKyNlbmRpZgorICAgIGNhc2UgSXRlbVR5cGU6
OlNldFNoYWRvdzoKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRTaGFkb3cpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKICAgICAgICAgcmV0dXJuIHNpemVvZihTZXRT
dHJva2VUaGlja25lc3MpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgotICAgICAgICBy
ZXR1cm4gc2l6ZW9mKFNldFN0YXRlKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRUZXh0RHJhd2lu
Z01vZGU6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0VGV4dERyYXdpbmdNb2RlKTsKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VDb2xvcjoKKyAgICAgICAgcmV0dXJuIHNpemVvZihTZXRT
dHJva2VDb2xvcik7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbENvbG9yOgorICAgICAgICBy
ZXR1cm4gc2l6ZW9mKFNldEZpbGxDb2xvcik7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tl
U3R5bGU6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0U3Ryb2tlU3R5bGUpOworICAgIGNhc2Ug
SXRlbVR5cGU6OlNldEZpbGxSdWxlOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldEZpbGxSdWxl
KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRBbHBoYToKKyAgICAgICAgcmV0dXJuIHNpemVvZihT
ZXRBbHBoYSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q29tcG9zaXRlT3BlcmF0aW9uOgorICAg
ICAgICByZXR1cm4gc2l6ZW9mKFNldENvbXBvc2l0ZU9wZXJhdGlvbik7CisgICAgY2FzZSBJdGVt
VHlwZTo6U2V0U2hvdWxkQW50aWFsaWFzOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldFNob3Vs
ZEFudGlhbGlhcyk7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU21vb3RoRm9udHM6Cisg
ICAgICAgIHJldHVybiBzaXplb2YoU2V0U2hvdWxkU21vb3RoRm9udHMpOworICAgIGNhc2UgSXRl
bVR5cGU6OlNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czoKKyAgICAgICAgcmV0dXJuIHNp
emVvZihTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHMpOworICAgIGNhc2UgSXRlbVR5cGU6
OlNldERyYXdMdW1pbmFuY2VNYXNrOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldERyYXdMdW1p
bmFuY2VNYXNrKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbWFnZUludGVycG9sYXRpb25RdWFs
aXR5OgorICAgICAgICByZXR1cm4gc2l6ZW9mKFNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkp
OworI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0
VXNlRGFya0FwcGVhcmFuY2U6CisgICAgICAgIHJldHVybiBzaXplb2YoU2V0VXNlRGFya0FwcGVh
cmFuY2UpOworI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAg
cmV0dXJuIHNpemVvZihTZXRMaW5lQ2FwKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFz
aDoKQEAgLTE4OSwxNSArMjI1LDM1IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBl
KQogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZp
bGxDb2xvcjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAg
Y2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CisgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3Ryb2tlR3JhZGllbnQ6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlUGF0dGVybjoK
KyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsR3JhZGllbnQ6CisgICAgY2FzZSBJdGVtVHlwZTo6
U2V0RmlsbFBhdHRlcm46CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXM6CisjaWYgVVNFKENHKQorICAgIGNhc2UgSXRlbVR5cGU6OlNldExlZ2FjeVNoYWRvdzoK
KyNlbmRpZgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvdzoKKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRTdHJva2VUaGlja25lc3M6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0VGV4dERyYXdpbmdN
b2RlOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUNvbG9yOgorICAgIGNhc2UgSXRlbVR5
cGU6OlNldEZpbGxDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VTdHlsZToKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsUnVsZToKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRBbHBo
YToKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDb21wb3NpdGVPcGVyYXRpb246CisgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U2hvdWxkQW50aWFsaWFzOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3Vs
ZFNtb290aEZvbnRzOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZFN1YnBpeGVsUXVhbnRp
emVGb250czoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXREcmF3THVtaW5hbmNlTWFzazoKKyAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5OgorI2lmIEhBVkUoT1Nf
REFSS19NT0RFX1NVUFBPUlQpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0VXNlRGFya0FwcGVhcmFu
Y2U6CisjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgIGNhc2UgSXRl
bVR5cGU6OlNldExpbmVEYXNoOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVKb2luOgogICAg
IGNhc2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Rh
dGU6Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgIGNhc2UgSXRl
bVR5cGU6OlRyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgSXRlbVR5
cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6CkBAIC0yNjUsNyArMzIxLDggQEAgYm9vbCBpc0lu
bGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUm91bmRlZFJl
Y3Q6CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgogICAgIGNhc2UgSXRlbVR5cGU6
OlNldExpbmVEYXNoOgotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0YXRlOgorICAgIGNhc2UgSXRl
bVR5cGU6OlNldFN0cm9rZUdyYWRpZW50OgorICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxHcmFk
aWVudDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VQYXRoOgogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgY2FzZSBJdGVtVHlwZTo6QXBwbHlEZXZpY2VTY2FsZUZhY3RvcjoKQEAgLTMwMiwx
MyArMzU5LDMyIEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2F2ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRDVE06Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VQYXR0
ZXJuOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxQYXR0ZXJuOgorICAgIGNhc2UgSXRlbVR5
cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOgorI2lmIFVTRShDRykKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRMZWdhY3lTaGFkb3c6CisjZW5kaWYKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRT
aGFkb3c6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgorICAgIGNhc2Ug
SXRlbVR5cGU6OlNldFRleHREcmF3aW5nTW9kZToKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJv
a2VDb2xvcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRGaWxsQ29sb3I6CisgICAgY2FzZSBJdGVt
VHlwZTo6U2V0U3Ryb2tlU3R5bGU6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbFJ1bGU6Cisg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0QWxwaGE6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q29tcG9z
aXRlT3BlcmF0aW9uOgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZEFudGlhbGlhczoKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRTbW9vdGhGb250czoKKyAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0
RHJhd0x1bWluYW5jZU1hc2s6CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eToKKyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQorICAgIGNhc2UgSXRl
bVR5cGU6OlNldFVzZURhcmtBcHBlYXJhbmNlOgorI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgotICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVRoaWNr
bmVzczoKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VFbGxpcHNlOgogI2lmIEVOQUJMRShJTkxJ
TkVfUEFUSF9EQVRBKQogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUlubGluZVBhdGg6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCAwZTk0N2EwNmRhYjVhMmRmYjQ3
NjkwODJmOGNhYzU0OGFmODkzNDNiLi5kZjZlMzc3ZjYwNDhhZjg2Y2NkNzc0ODBmYzA5MGJjODY3
NmJmZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTM2LDEx
ICszNiwzMSBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgU2NhbGUsCiAg
ICAgQ29uY2F0ZW5hdGVDVE0sCiAgICAgU2V0Q1RNLAotICAgIFNldElubGluZUZpbGxHcmFkaWVu
dCwKLSAgICBTZXRJbmxpbmVGaWxsQ29sb3IsCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IsCisg
ICAgU2V0U3Ryb2tlR3JhZGllbnQsCisgICAgU2V0U3Ryb2tlUGF0dGVybiwKKyAgICBTZXRGaWxs
R3JhZGllbnQsCisgICAgU2V0RmlsbFBhdHRlcm4sCisgICAgU2V0U2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXMsCisjaWYgVVNFKENHKQorICAgIFNldExlZ2FjeVNoYWRvdywKKyNlbmRpZgorICAgIFNl
dFNoYWRvdywKICAgICBTZXRTdHJva2VUaGlja25lc3MsCi0gICAgU2V0U3RhdGUsCisgICAgU2V0
VGV4dERyYXdpbmdNb2RlLAorICAgIFNldFN0cm9rZUNvbG9yLAorICAgIFNldEZpbGxDb2xvciwK
KyAgICBTZXRTdHJva2VTdHlsZSwKKyAgICBTZXRGaWxsUnVsZSwKKyAgICBTZXRBbHBoYSwKKyAg
ICBTZXRDb21wb3NpdGVPcGVyYXRpb24sCisgICAgU2V0U2hvdWxkQW50aWFsaWFzLAorICAgIFNl
dFNob3VsZFNtb290aEZvbnRzLAorICAgIFNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cywK
KyAgICBTZXREcmF3THVtaW5hbmNlTWFzaywKKyAgICBTZXRJbWFnZUludGVycG9sYXRpb25RdWFs
aXR5LAorI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCisgICAgU2V0VXNlRGFya0FwcGVh
cmFuY2UsCisjZW5kaWYKICAgICBTZXRMaW5lQ2FwLAogICAgIFNldExpbmVEYXNoLAogICAgIFNl
dExpbmVKb2luLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IGU1MWFj
MTM5ZDJhZjQwMTQ5NmNlZDIwOTUzZmVmYmUzNThlZTU3NGEuLmYwMmVmYjU4MGNjODgxNDEzZTk0
MGVjMWEwNzM5N2ZlZmUwYjczYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5j
cHAKQEAgLTExNSwxMjYgKzExNSwxNDMgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IENvbmNhdGVuYXRlQ1RNJiBpdGVtKQogICAgIHJldHVybiB0
czsKIH0KIAotU2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoY29u
c3QgR3JhZGllbnQmIGdyYWRpZW50LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50U3Bh
Y2VUcmFuc2Zvcm0pCi0gICAgOiBtX2RhdGEoZ3JhZGllbnQuZGF0YSgpKQotICAgICwgbV9ncmFk
aWVudFNwYWNlVHJhbnNmb3JtKGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCi0gICAgLCBtX3NwcmVh
ZE1ldGhvZChncmFkaWVudC5zcHJlYWRNZXRob2QoKSkKLSAgICAsIG1fY29sb3JTdG9wQ291bnQo
c3RhdGljX2Nhc3Q8dWludDhfdD4oZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkpKQotewotICAgIFJF
TEVBU0VfQVNTRVJUKG1fY29sb3JTdG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAg
IGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkgewotICAgICAg
ICBtX29mZnNldHNbaV0gPSBncmFkaWVudC5zdG9wcygpW2ldLm9mZnNldDsKLSAgICAgICAgbV9j
b2xvcnNbaV0gPSBncmFkaWVudC5zdG9wcygpW2ldLmNvbG9yLmFzSW5saW5lKCk7Ci0gICAgfQor
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0
cm9rZUdyYWRpZW50JiBpdGVtKQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgiZ3JhZGllbnQiLCAm
aXRlbS5ncmFkaWVudCgpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImdyYWRpZW50LXNwYWNlLXRy
YW5zZm9ybSIsIGl0ZW0uZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSgpKTsKKyAgICByZXR1cm4gdHM7
CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50KGZsb2F0
IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xvcnNbbWF4Q29s
b3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYgZGF0YSwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtLCBHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJl
YWRNZXRob2QsIHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpCi0gICAgOiBtX2RhdGEoZGF0YSkKLSAg
ICAsIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAg
ICwgbV9zcHJlYWRNZXRob2Qoc3ByZWFkTWV0aG9kKQotICAgICwgbV9jb2xvclN0b3BDb3VudChj
b2xvclN0b3BDb3VudCkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBTZXRTdHJva2VQYXR0ZXJuJikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2Nv
bG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9
IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAgICAgICAgbV9vZmZzZXRzW2ldID0g
b2Zmc2V0c1tpXTsKLSAgICAgICAgbV9jb2xvcnNbaV0gPSBjb2xvcnNbaV07Ci0gICAgfQorICAg
IC8vIEZJWE1FOiBEdW1wIHBhdHRlcm4gcGFyYW1ldGVycy4KKyAgICByZXR1cm4gdHM7CiB9CiAK
LVJlZjxHcmFkaWVudD4gU2V0SW5saW5lRmlsbEdyYWRpZW50OjpncmFkaWVudCgpIGNvbnN0Citz
dGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0Rmls
bEdyYWRpZW50JiBpdGVtKQogewotICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRl
KEdyYWRpZW50OjpEYXRhKG1fZGF0YSkpOwotICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IG1f
Y29sb3JTdG9wQ291bnQ7ICsraSkKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCh7IG1f
b2Zmc2V0c1tpXSwgQ29sb3IobV9jb2xvcnNbaV0pIH0pOwotICAgIGdyYWRpZW50LT5zZXRTcHJl
YWRNZXRob2QobV9zcHJlYWRNZXRob2QpOwotICAgIHJldHVybiBncmFkaWVudDsKKyAgICB0cy5k
dW1wUHJvcGVydHkoImdyYWRpZW50IiwgJml0ZW0uZ3JhZGllbnQoKSk7CisgICAgdHMuZHVtcFBy
b3BlcnR5KCJncmFkaWVudC1zcGFjZS10cmFuc2Zvcm0iLCBpdGVtLmdyYWRpZW50U3BhY2VUcmFu
c2Zvcm0oKSk7CisgICAgcmV0dXJuIHRzOwogfQogCi12b2lkIFNldElubGluZUZpbGxHcmFkaWVu
dDo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAorc3RhdGljIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldEZpbGxQYXR0ZXJuJikKIHsK
LSAgICBpZiAobV9jb2xvclN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCkKLSAgICAgICAg
Y29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQoKSwgbV9ncmFkaWVudFNwYWNlVHJhbnNm
b3JtKTsKKyAgICAvLyBGSVhNRTogRHVtcCBwYXR0ZXJuIHBhcmFtZXRlcnMuCisgICAgcmV0dXJu
IHRzOwogfQogCi1ib29sIFNldElubGluZUZpbGxHcmFkaWVudDo6aXNJbmxpbmUoY29uc3QgR3Jh
ZGllbnQmIGdyYWRpZW50KQorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zJiBpdGVtKQogewotICAgIGlm
IChncmFkaWVudC5zdG9wcygpLnNpemUoKSA+IFNldElubGluZUZpbGxHcmFkaWVudDo6bWF4Q29s
b3JTdG9wQ291bnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB0cy5kdW1wUHJvcGVydHko
InNoYWRvd3MtaWdub3JlLXRyYW5zZm9ybXMiLCBpdGVtLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
KCkpOworICAgIHJldHVybiB0czsKK30KIAotICAgIGZvciAoYXV0byYgY29sb3JTdG9wIDogZ3Jh
ZGllbnQuc3RvcHMoKSkgewotICAgICAgICBpZiAoIWNvbG9yU3RvcC5jb2xvci5pc0lubGluZSgp
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyNpZiBVU0UoQ0cpCitzdGF0aWMg
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0TGVnYWN5U2hh
ZG93JiBpdGVtKQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hhZG93LW9mZnNldCIsIGl0ZW0u
b2Zmc2V0KCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hhZG93LWJsdXIiLCBpdGVtLmJsdXIo
KSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJzaGFkb3ctY29sb3IiLCBpdGVtLmNvbG9yKCkpOwor
ICAgIHJldHVybiB0czsKK30KKyNlbmRpZgogCi0gICAgcmV0dXJuIHRydWU7CitzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U2hhZG93JiBpdGVt
KQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hhZG93LW9mZnNldCIsIGl0ZW0ub2Zmc2V0KCkp
OworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hhZG93LWJsdXIiLCBpdGVtLmJsdXIoKSk7CisgICAg
dHMuZHVtcFByb3BlcnR5KCJzaGFkb3ctY29sb3IiLCBpdGVtLmNvbG9yKCkpOworICAgIHJldHVy
biB0czsKIH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IFNldElubGluZUZpbGxHcmFkaWVudCYpCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3Ryb2tlVGhpY2tuZXNzJiBpdGVtKQogewot
ICAgIC8vIEZJWE1FOiBEdW1wIGdyYWRpZW50IGRhdGEuCisgICAgdHMuZHVtcFByb3BlcnR5KCJz
dHJva2UtdGhpY2tuZXNzIiwgaXRlbS50aGlja25lc3MoKSk7CiAgICAgcmV0dXJuIHRzOwogfQog
Ci12b2lkIFNldElubGluZUZpbGxDb2xvcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KSBjb25zdAorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IFNldFRleHREcmF3aW5nTW9kZSYpCiB7Ci0gICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29s
b3IoKSk7CisgICAgLy8gRklYTUU6IER1bXAgdGV4dERyYXdpbmdNb2RlKCkuCisgICAgcmV0dXJu
IHRzOwogfQogCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgU2V0SW5saW5lRmlsbENvbG9yJiBzdGF0ZSkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTZXRTdHJva2VDb2xvciYgaXRlbSkKIHsKLSAg
ICB0cy5kdW1wUHJvcGVydHkoImNvbG9yIiwgc3RhdGUuY29sb3IoKSk7CisgICAgdHMuZHVtcFBy
b3BlcnR5KCJzdHJva2UtY29sb3IiLCBpdGVtLmNvbG9yKCkpOwogICAgIHJldHVybiB0czsKIH0K
IAotdm9pZCBTZXRJbmxpbmVTdHJva2VDb2xvcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KSBjb25zdAorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IFNldEZpbGxDb2xvciYgaXRlbSkKIHsKLSAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9y
KGNvbG9yKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiZmlsbC1jb2xvciIsIGl0ZW0uY29sb3Io
KSk7CisgICAgcmV0dXJuIHRzOwogfQogCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0SW5saW5lU3Ryb2tlQ29sb3ImIHN0YXRlKQorc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldFN0cm9rZVN0
eWxlJiBpdGVtKQogewotICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBzdGF0ZS5jb2xvcigp
KTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInN0cm9rZS1zdHlsZSIsIGl0ZW0uc3R5bGUoKSk7CiAg
ICAgcmV0dXJuIHRzOwogfQogCi12b2lkIFNldFN0cm9rZVRoaWNrbmVzczo6YXBwbHkoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNldEZpbGxSdWxlJiBpdGVtKQogewotICAgIGNvbnRleHQu
c2V0U3Ryb2tlVGhpY2tuZXNzKG1fdGhpY2tuZXNzKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImZp
bGwtcnVsZSIsIGl0ZW0uZmlsbFJ1bGUoKSk7CisgICAgcmV0dXJuIHRzOwogfQogCi1zdGF0aWMg
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3Ryb2tlVGhp
Y2tuZXNzJiBzdGF0ZSkKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBTZXRBbHBoYSYgaXRlbSkKIHsKLSAgICB0cy5kdW1wUHJvcGVydHkoInRoaWNr
bmVzcyIsIHN0YXRlLnRoaWNrbmVzcygpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImFscGhhIiwg
aXRlbS5hbHBoYSgpKTsKICAgICByZXR1cm4gdHM7CiB9CiAKLVNldFN0YXRlOjpTZXRTdGF0ZShj
b25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQotICAgIDogbV9zdGF0ZUNoYW5nZShzdGF0ZSwgZmxhZ3Mp
CitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0
Q29tcG9zaXRlT3BlcmF0aW9uJiBpdGVtKQogeworICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29tcG9z
aXRlLW9wZXJhdG9yIiwgaXRlbS5jb21wb3NpdGVPcGVyYXRvcigpKTsKKyAgICB0cy5kdW1wUHJv
cGVydHkoImJsZW5kLW1vZGUiLCBpdGVtLmJsZW5kTW9kZSgpKTsKKyAgICByZXR1cm4gdHM7CiB9
CiAKLVNldFN0YXRlOjpTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYg
c3RhdGVDaGFuZ2UsIGNvbnN0IFBhdHRlcm5EYXRhJiBzdHJva2VQYXR0ZXJuLCBjb25zdCBQYXR0
ZXJuRGF0YSYgZmlsbFBhdHRlcm4pCi0gICAgOiBtX3N0YXRlQ2hhbmdlKHN0YXRlQ2hhbmdlKQot
ICAgICwgbV9zdHJva2VQYXR0ZXJuKHN0cm9rZVBhdHRlcm4pCi0gICAgLCBtX2ZpbGxQYXR0ZXJu
KGZpbGxQYXR0ZXJuKQorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IFNldFNob3VsZEFudGlhbGlhcyYgaXRlbSkKIHsKKyAgICB0cy5kdW1wUHJvcGVy
dHkoInNob3VsZC1hbnRpYWxpYXMiLCBpdGVtLnNob3VsZEFudGlhbGlhcygpKTsKKyAgICByZXR1
cm4gdHM7CiB9CiAKLXZvaWQgU2V0U3RhdGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgTmF0aXZlSW1hZ2UqIHN0cm9rZVBhdHRlcm5JbWFnZSwgTmF0aXZlSW1hZ2UqIGZpbGxQYXR0
ZXJuSW1hZ2UpCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgU2V0U2hvdWxkU21vb3RoRm9udHMmIGl0ZW0pCiB7Ci0gICAgaWYgKG1fc3RhdGVDaGFu
Z2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlUGF0
dGVybkNoYW5nZSkgJiYgc3Ryb2tlUGF0dGVybkltYWdlKQotICAgICAgICBtX3N0YXRlQ2hhbmdl
Lm1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IFBhdHRlcm46OmNyZWF0ZShtYWtlUmVmKCpzdHJva2VQ
YXR0ZXJuSW1hZ2UpLCBtX3N0cm9rZVBhdHRlcm4ucGFyYW1ldGVycyk7Ci0gICAgaWYgKG1fc3Rh
dGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6Rmls
bFBhdHRlcm5DaGFuZ2UpICYmIGZpbGxQYXR0ZXJuSW1hZ2UpCi0gICAgICAgIG1fc3RhdGVDaGFu
Z2UubV9zdGF0ZS5maWxsUGF0dGVybiA9IFBhdHRlcm46OmNyZWF0ZShtYWtlUmVmKCpmaWxsUGF0
dGVybkltYWdlKSwgbV9maWxsUGF0dGVybi5wYXJhbWV0ZXJzKTsKLSAgICBtX3N0YXRlQ2hhbmdl
LmFwcGx5KGNvbnRleHQpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hvdWxkLXNtb290aC1mb250
cyIsIGl0ZW0uc2hvdWxkU21vb3RoRm9udHMoKSk7CisgICAgcmV0dXJuIHRzOwogfQogCi1zdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0U3RhdGUm
IHN0YXRlKQorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IFNldFNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyYgaXRlbSkKIHsKLSAgICB0cyA8PCBz
dGF0ZS5zdGF0ZUNoYW5nZSgpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hvdWxkLXN1YnBpeGVs
LXF1YW50aXplLWZvbnRzIiwgaXRlbS5zaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHMoKSk7CiAg
ICAgcmV0dXJuIHRzOwogfQogCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgU2V0RHJhd0x1bWluYW5jZU1hc2smIGl0ZW0pCit7CisgICAgdHMuZHVt
cFByb3BlcnR5KCJkcmF3LWx1bWluYW5jZS1tYXNrIiwgaXRlbS5kcmF3THVtaW5hbmNlTWFzaygp
KTsKKyAgICByZXR1cm4gdHM7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5JiBpdGVtKQor
eworICAgIHRzLmR1bXBQcm9wZXJ0eSgiaW1hZ2UtaW50ZXJwb2xhdGlvbi1xdWFsaXR5IiwgaXRl
bS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkpOworICAgIHJldHVybiB0czsKK30KKworI2lm
IEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2V0VXNlRGFya0FwcGVhcmFuY2UmIGl0ZW0pCit7Cisg
ICAgdHMuZHVtcFByb3BlcnR5KCJ1c2UtZGFyay1hcHBlYXJhbmNlIiwgaXRlbS51c2VEYXJrQXBw
ZWFyYW5jZSgpKTsKKyAgICByZXR1cm4gdHM7Cit9CisjZW5kaWYKKwogdm9pZCBTZXRMaW5lQ2Fw
OjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29udGV4dC5z
ZXRMaW5lQ2FwKG1fbGluZUNhcCk7CkBAIC0xMDIxLDExICsxMDM4LDMxIEBAIHN0YXRpYyBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogICAgIGNh
c2UgSXRlbVR5cGU6OlNjYWxlOiB0cyA8PCAic2NhbGUiOyBicmVhazsKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRDVE06IHRzIDw8ICJzZXQtY3RtIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6
Q29uY2F0ZW5hdGVDVE06IHRzIDw8ICJjb25jYXRlbnRhdGUtY3RtIjsgYnJlYWs7Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OiB0cyA8PCAic2V0LWlubGluZS1maWxs
LWdyYWRpZW50IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9y
OiB0cyA8PCAic2V0LWlubGluZS1maWxsLWNvbG9yIjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLXN0cm9rZS1jb2xvciI7
IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUdyYWRpZW50OiB0cyA8PCAic2V0
LXN0cm9rZS1ncmFkaWVudCI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZVBh
dHRlcm46IHRzIDw8ICJzZXQtc3Ryb2tlLXBhdHRlcm4iOyBicmVhazsKKyAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRGaWxsR3JhZGllbnQ6IHRzIDw8ICJzZXQtZmlsbC1ncmFkaWVudCI7IGJyZWFrOwor
ICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxQYXR0ZXJuOiB0cyA8PCAic2V0LWZpbGwtcGF0dGVy
biI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
OiB0cyA8PCAic2V0LXNoYWRvd3MtaWdub3JlLXRyYW5zZm9ybXMiOyBicmVhazsKKyNpZiBVU0Uo
Q0cpCisgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGVnYWN5U2hhZG93OiB0cyA8PCAic2V0LWxlZ2Fj
eS1zaGFkb3ciOyBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvdzog
dHMgPDwgInNldC1zaGFkb3ciOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VU
aGlja25lc3M6IHRzIDw8ICJzZXQtc3Ryb2tlLXRoaWNrbmVzcyI7IGJyZWFrOwotICAgIGNhc2Ug
SXRlbVR5cGU6OlNldFN0YXRlOiB0cyA8PCAic2V0LXN0YXRlIjsgYnJlYWs7CisgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0VGV4dERyYXdpbmdNb2RlOiB0cyA8PCAic2V0LXRleHQtZHJhd2luZy1tb2Rl
IjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlQ29sb3I6IHRzIDw8ICJzZXQt
c3Ryb2tlLWNvbG9yIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbENvbG9yOiB0
cyA8PCAic2V0LWZpbGwtY29sb3IiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJv
a2VTdHlsZTogdHMgPDwgInNldC1zdHJva2Utc3R5bGUiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRGaWxsUnVsZTogdHMgPDwgInNldC1maWxsLXJ1bGUiOyBicmVhazsKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRBbHBoYTogdHMgPDwgInNldC1hbHBoYSI7IGJyZWFrOworICAgIGNhc2Ug
SXRlbVR5cGU6OlNldENvbXBvc2l0ZU9wZXJhdGlvbjogdHMgPDwgInNldC1jb21wb3NpdGUtb3Bl
cmF0aW9uIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkQW50aWFsaWFzOiB0
cyA8PCAic2V0LXNob3VsZC1hbnRpYWxpYXMiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRTaG91bGRTbW9vdGhGb250czogdHMgPDwgInNldC1zaG91bGQtc21vb3RoRm9udHMiOyBicmVh
azsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM6IHRz
IDw8ICJzZXQtc2hvdWxkLXN1YnBpeGVsLXF1YW50aXplLWZvbnRzIjsgYnJlYWs7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0RHJhd0x1bWluYW5jZU1hc2s6IHRzIDw8ICJzZXQtZHJhdy1sdW1pbmFu
Y2UtbWFzayI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHk6IHRzIDw8ICJzZXQtaW1hZ2UtaW50ZXJwb2xhdGlvbi1xdWFsaXR5IjsgYnJlYWs7
CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRV
c2VEYXJrQXBwZWFyYW5jZTogdHMgPDwgInNldC11c2UtZGFyay1hcHBlYXJhbmNlIjsgYnJlYWs7
CisjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOiB0cyA8PCAic2V0LWxpbmUt
Y2FwIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZURhc2g6IHRzIDw8ICJzZXQt
bGluZS1kYXNoIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46IHRzIDw8
ICJzZXQtbGluZS1qb2luIjsgYnJlYWs7CkBAIC0xMTA0LDIxICsxMTQxLDczIEBAIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAgICBjYXNl
IEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8Q29uY2F0
ZW5hdGVDVE0+KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxHcmFkaWVudDoKLSAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lRmlsbEdyYWRp
ZW50PigpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFN0cm9rZUdyYWRpZW50OgorICAgICAgICB0
cyA8PCBpdGVtLmdldDxTZXRTdHJva2VHcmFkaWVudD4oKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlUGF0dGVybjoKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8
U2V0U3Ryb2tlUGF0dGVybj4oKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6
U2V0RmlsbEdyYWRpZW50OgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRGaWxsR3JhZGllbnQ+
KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjoKLSAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpOworICAgIGNh
c2UgSXRlbVR5cGU6OlNldEZpbGxQYXR0ZXJuOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRG
aWxsUGF0dGVybj4oKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZVN0cm9rZUNv
bG9yPigpOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOgor
ICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3Jtcz4oKTsKKyAg
ICAgICAgYnJlYWs7CisjaWYgVVNFKENHKQorICAgIGNhc2UgSXRlbVR5cGU6OlNldExlZ2FjeVNo
YWRvdzoKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0TGVnYWN5U2hhZG93PigpOworICAgICAg
ICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgSXRlbVR5cGU6OlNldFNoYWRvdzoKKyAgICAgICAg
dHMgPDwgaXRlbS5nZXQ8U2V0U2hhZG93PigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldFN0
cm9rZVRoaWNrbmVzcz4oKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
U3RhdGU6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldFN0YXRlPigpOworICAgIGNhc2UgSXRl
bVR5cGU6OlNldFRleHREcmF3aW5nTW9kZToKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0VGV4
dERyYXdpbmdNb2RlPigpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRT
dHJva2VDb2xvcjoKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0U3Ryb2tlQ29sb3I+KCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxDb2xvcjoKKyAgICAgICAg
dHMgPDwgaXRlbS5nZXQ8U2V0RmlsbENvbG9yPigpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRTdHJva2VTdHlsZToKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0U3Ry
b2tlU3R5bGU+KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldEZpbGxS
dWxlOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRGaWxsUnVsZT4oKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0QWxwaGE6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0
PFNldEFscGhhPigpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDb21w
b3NpdGVPcGVyYXRpb246CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldENvbXBvc2l0ZU9wZXJh
dGlvbj4oKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkQW50
aWFsaWFzOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTaG91bGRBbnRpYWxpYXM+KCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldFNob3VsZFNtb290aEZvbnRzOgor
ICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTaG91bGRTbW9vdGhGb250cz4oKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRz
OgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM+
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlNldERyYXdMdW1pbmFuY2VN
YXNrOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXREcmF3THVtaW5hbmNlTWFzaz4oKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eToKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0
eT4oKTsKKyAgICAgICAgYnJlYWs7CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRVc2VEYXJrQXBwZWFyYW5jZToKKyAgICAgICAgdHMgPDwgaXRl
bS5nZXQ8U2V0VXNlRGFya0FwcGVhcmFuY2U+KCk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0
TGluZUNhcD4oKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
aAppbmRleCA0NjI4NjU0MmEzOWQ5OGJlYWEwN2E4MjBmMTYwNzQ3NDdkMDBjNjNhLi5mZjlmN2Nl
ODZmMjAzZDQwNDRhMTgxMmVhMTM3YWRmMGMzMmQ1YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKQEAgLTE2Nyw0NTUgKzE2NywzNTQgQEAgcHJpdmF0ZToKICAgICBBZmZpbmVU
cmFuc2Zvcm0gbV90cmFuc2Zvcm07CiB9OwogCi1jbGFzcyBTZXRJbmxpbmVGaWxsR3JhZGllbnQg
ewordGVtcGxhdGUgPEl0ZW1UeXBlIHR5cGUsIHZvaWQgKEdyYXBoaWNzQ29udGV4dDo6KmFwcGxp
ZXIpKFJlZjxHcmFkaWVudD4mJiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJik+CitjbGFzcyBTZXRH
cmFkaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlw
ZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlw
ZSBpdGVtVHlwZSA9IHR5cGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRl
bSA9IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFs
c2U7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IG1heENvbG9yU3RvcENvdW50ID0gNDsK
IAotICAgIFNldElubGluZUZpbGxHcmFkaWVudChjb25zdCBHcmFkaWVudCYsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
U2V0SW5saW5lRmlsbEdyYWRpZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBT
UkdCQTx1aW50OF90PiBjb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6
RGF0YSYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3Jh
ZGllbnRTcHJlYWRNZXRob2QsIHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpOworICAgIFNldEdyYWRp
ZW50KFJlZjxHcmFkaWVudD4mJiBncmFkaWVudCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFk
aWVudFNwYWNlVHJhbnNmb3JtKQorICAgICAgICA6IG1fZ3JhZGllbnQoV1RGTW92ZShncmFkaWVu
dCkpCisgICAgICAgICwgbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtKGdyYWRpZW50U3BhY2VUcmFu
c2Zvcm0pCisgICAgeworICAgIH0KIAotICAgIHN0YXRpYyBib29sIGlzSW5saW5lKGNvbnN0IEdy
YWRpZW50Jik7Ci0gICAgUmVmPEdyYWRpZW50PiBncmFkaWVudCgpIGNvbnN0OworICAgIGNvbnN0
IEdyYWRpZW50JiBncmFkaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhZGllbnQ7IH0KKyAgICBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0oKSBjb25zdCB7IHJl
dHVybiBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm07IH0KIAotICAgIHZvaWQgYXBwbHkoR3JhcGhp
Y3NDb250ZXh0JikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbV9n
cmFkaWVudC5nZXQoKTsKKyAgICAgICAgZW5jb2RlciA8PCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zv
cm07CisgICAgfQogCi1wcml2YXRlOgotICAgIGZsb2F0IG1fb2Zmc2V0c1ttYXhDb2xvclN0b3BD
b3VudF07Ci0gICAgU1JHQkE8dWludDhfdD4gbV9jb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdOwot
ICAgIEdyYWRpZW50OjpEYXRhIG1fZGF0YTsKLSAgICBBZmZpbmVUcmFuc2Zvcm0gbV9ncmFkaWVu
dFNwYWNlVHJhbnNmb3JtOwotICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIG1fc3ByZWFkTWV0aG9k
IHsgR3JhZGllbnRTcHJlYWRNZXRob2Q6OlBhZCB9OwotICAgIHVpbnQ4X3QgbV9jb2xvclN0b3BD
b3VudCB7IDAgfTsKLX07CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFNldEdyYWRpZW50PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAg
IGF1dG8gZ3JhZGllbnQgPSBHcmFkaWVudDo6ZGVjb2RlKGRlY29kZXIpOworICAgICAgICBpZiAo
IWdyYWRpZW50KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotY2xhc3MgU2V0
SW5saW5lRmlsbENvbG9yIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBl
IGl0ZW1UeXBlID0gSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjsKLSAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOworICAgICAgICBPcHRpb25hbDxBZmZpbmVUcmFuc2Zv
cm0+IGdyYWRpZW50U3BhY2VUcmFuc2Zvcm07CisgICAgICAgIGRlY29kZXIgPj4gZ3JhZGllbnRT
cGFjZVRyYW5zZm9ybTsKKyAgICAgICAgaWYgKCFncmFkaWVudFNwYWNlVHJhbnNmb3JtKQorICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqZ3JhZGllbnQpLCAqZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSB9IH07CisgICAg
fQogCi0gICAgU2V0SW5saW5lRmlsbENvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yRGF0YSkKLSAg
ICAgICAgOiBtX2NvbG9yRGF0YShjb2xvckRhdGEpCisgICAgdm9pZCBhcHBseShHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQpCiAgICAgeworICAgICAgICAoY29udGV4dC4qYXBwbGllcikobV9ncmFk
aWVudC5nZXQoKSwgbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKICAgICB9CiAKLSAgICBDb2xv
ciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xvckRhdGEgfTsgfQotICAgIHZvaWQgYXBw
bHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU1JHQkE8dWludDhf
dD4gbV9jb2xvckRhdGE7Citwcm90ZWN0ZWQ6CisgICAgUmVmPEdyYWRpZW50PiBtX2dyYWRpZW50
OworICAgIEFmZmluZVRyYW5zZm9ybSBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm07CiB9OwogCi1j
bGFzcyBTZXRJbmxpbmVTdHJva2VDb2xvciB7Cit0ZW1wbGF0ZSA8SXRlbVR5cGUgdHlwZSwgdm9p
ZCAoR3JhcGhpY3NDb250ZXh0OjoqYXBwbGllcikoUmVmPFBhdHRlcm4+JiYpPgorY2xhc3MgU2V0
UGF0dGVybiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlw
ZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEl0ZW1UeXBlIGl0ZW1UeXBlID0gdHlwZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJ
bmxpbmVJdGVtID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRl
bSA9IGZhbHNlOwogCi0gICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWludDhfdD4gY29s
b3JEYXRhKQotICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKKyAgICBTZXRQYXR0ZXJu
KFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFBhdHRl
cm46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgICAgIDogbV9pbWFnZUlkZW50aWZpZXIo
aW1hZ2VJZGVudGlmaWVyKQorICAgICAgICAsIG1fcGFyYW1ldGVycyhwYXJhbWV0ZXJzKQogICAg
IHsKICAgICB9CiAKLSAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIHsgbV9jb2xvckRh
dGEgfTsgfQorICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2ltYWdlSWRlbnRpZmllcjsgfQorICAgIGNvbnN0IFBhdHRlcm46
OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnM7IH0K
IAotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5hdGl2ZUltYWdlJiBpbWFnZSkgY29uc3QKKyAg
ICB7CisgICAgICAgIGF1dG8gcGF0dGVybiA9IFBhdHRlcm46OmNyZWF0ZShtYWtlUmVmKGltYWdl
KSwgbV9wYXJhbWV0ZXJzKTsKKyAgICAgICAgKGNvbnRleHQuKmFwcGxpZXIpKFdURk1vdmUocGF0
dGVybikpOworICAgIH0KIAotcHJpdmF0ZToKLSAgICBTUkdCQTx1aW50OF90PiBtX2NvbG9yRGF0
YTsKK3Byb3RlY3RlZDoKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUlk
ZW50aWZpZXI7CisgICAgUGF0dGVybjo6UGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CiB9OwogCi1j
bGFzcyBTZXRTdHJva2VUaGlja25lc3MgewordGVtcGxhdGUgPEl0ZW1UeXBlIHR5cGUsIHR5cGVu
YW1lIEFwcGxpZXIsIEFwcGxpZXIgYXBwbGllciwgY2xhc3MuLi4gQXJndW1lbnRzPgorY2xhc3Mg
U2V0SW5saW5lU3RhdGUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUg
aXRlbVR5cGUgPSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSB0eXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBpc0lubGluZUl0ZW0gPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdp
bmdJdGVtID0gZmFsc2U7CiAKLSAgICBTZXRTdHJva2VUaGlja25lc3MoZmxvYXQgdGhpY2tuZXNz
KQotICAgICAgICA6IG1fdGhpY2tuZXNzKHRoaWNrbmVzcykKKyAgICBTZXRJbmxpbmVTdGF0ZShB
cmd1bWVudHMuLi4gYXJndW1lbnRzKQorICAgICAgICA6IG1fYXJndW1lbnRzKHN0ZDo6Zm9yd2Fy
ZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pCiAgICAgewogICAgIH0KIAotICAgIGZsb2F0IHRo
aWNrbmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fdGhpY2tuZXNzOyB9CisgICAgdm9pZCBhcHBseShH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CisgICAgeworICAgICAgICBzdGQ6OmFwcGx5
KFsmXShBcmd1bWVudHMuLi4gYXJndW1lbnRzKSB7CisgICAgICAgICAgICAoY29udGV4dC4qYXBw
bGllcikoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLik7CisgICAgICAgIH0s
IG1fYXJndW1lbnRzKTsKKyAgICB9CiAKLSAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYp
IGNvbnN0OworICAgIHRlbXBsYXRlPCBzdGQ6OnNpemVfdCBJPgorICAgIGNvbnN0IGF1dG8mIGFy
Z3VtZW50KCkgY29uc3QgeyByZXR1cm4gc3RkOjpnZXQ8ST4obV9hcmd1bWVudHMpOyB9CiAKLXBy
aXZhdGU6Ci0gICAgZmxvYXQgbV90aGlja25lc3MgeyAwIH07Citwcm90ZWN0ZWQ6CisgICAgc3Rk
Ojp0dXBsZTxBcmd1bWVudHMuLi4+IG1fYXJndW1lbnRzOwogfTsKIAotY2xhc3MgU2V0U3RhdGUg
ewordXNpbmcgU2V0U3Ryb2tlR3JhZGllbnQgPSBTZXRHcmFkaWVudDwKKyAgICBJdGVtVHlwZTo6
U2V0U3Ryb2tlR3JhZGllbnQsCisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlR3JhZGll
bnQKKz47CisKK3VzaW5nIFNldFN0cm9rZVBhdHRlcm4gPSBTZXRQYXR0ZXJuPAorICAgIEl0ZW1U
eXBlOjpTZXRTdHJva2VQYXR0ZXJuLAorICAgICZHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBh
dHRlcm4KKz47CisKK3VzaW5nIFNldEZpbGxHcmFkaWVudCA9IFNldEdyYWRpZW50PAorICAgIEl0
ZW1UeXBlOjpTZXRGaWxsR3JhZGllbnQsCisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbEdy
YWRpZW50Cis+OworCit1c2luZyBTZXRGaWxsUGF0dGVybiA9IFNldFBhdHRlcm48CisgICAgSXRl
bVR5cGU6OlNldEZpbGxQYXR0ZXJuLAorICAgICZHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxQYXR0
ZXJuCis+OworCit1c2luZyBTZXRJbmxpbmVTaGFkb3dzSWdub3JlVHJhbnNmb3JtcyA9IFNldElu
bGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtcywKKyAg
ICB2b2lkIChHcmFwaGljc0NvbnRleHQ6OiopKGJvb2wpLAorICAgICZHcmFwaGljc0NvbnRleHQ6
OnNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zLAorICAgIGJvb2wKKz47CisKK2NsYXNzIFNldFNo
YWRvd3NJZ25vcmVUcmFuc2Zvcm1zIDogcHVibGljIFNldElubGluZVNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBl
ID0gSXRlbVR5cGU6OlNldFN0YXRlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGlu
ZUl0ZW0gPSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9
IGZhbHNlOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyk7Ci0KLSAg
ICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgc3RhdGVDaGFuZ2UoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlQ2hhbmdlOyB9Ci0gICAgY29uc3QgUGF0dGVybjo6UGFyYW1ldGVycyYg
c3Ryb2tlUGF0dGVyblBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBtX3N0cm9rZVBhdHRlcm4u
cGFyYW1ldGVyczsgfQotICAgIGNvbnN0IFBhdHRlcm46OlBhcmFtZXRlcnMmIGZpbGxQYXR0ZXJu
UGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbFBhdHRlcm4ucGFyYW1ldGVyczsgfQot
ICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9zdHJva2VQYXR0ZXJuLnRpbGVJbWFnZUlkZW50aWZpZXI7
IH0KLSAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZmlsbFBhdHRlcm5JbWFnZUlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxQYXR0ZXJuLnRpbGVJbWFnZUlkZW50aWZpZXI7
IH0KLQotICAgIHN0YXRpYyB2b2lkIGJ1aWxkZXJTdGF0ZShHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5n
ZUZsYWdzKTsKLQotICAgIHN0YXRpYyB2b2lkIGR1bXBTdGF0ZUNoYW5nZXMoV1RGOjpUZXh0U3Ry
ZWFtJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3RhdGVDaGFuZ2VGbGFncyk7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFNldFN0YXRlPiBkZWNvZGUoRGVjb2RlciYpOwotCi0gICAgdm9pZCBhcHBseShH
cmFwaGljc0NvbnRleHQmLCBOYXRpdmVJbWFnZSogc3Ryb2tlUGF0dGVybkltYWdlLCBOYXRpdmVJ
bWFnZSogZmlsbFBhdHRlcm5JbWFnZSk7Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IFBhdHRlcm5E
YXRhIHsKLSAgICAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHRpbGVJbWFnZUlkZW50
aWZpZXI7Ci0gICAgICAgIFBhdHRlcm46OlBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSAgICB9Owot
Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVD
aGFuZ2UmLCBjb25zdCBQYXR0ZXJuRGF0YSYgc3Ryb2tlUGF0dGVybiwgY29uc3QgUGF0dGVybkRh
dGEmIGZpbGxQYXR0ZXJuKTsKLQotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIG1fc3Rh
dGVDaGFuZ2U7Ci0gICAgUGF0dGVybkRhdGEgbV9zdHJva2VQYXR0ZXJuOwotICAgIFBhdHRlcm5E
YXRhIG1fZmlsbFBhdHRlcm47CisgICAgdXNpbmcgU2V0SW5saW5lU2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXM6OlNldElubGluZVNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOworICAgIGJvb2wgc2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9CiB9Owog
Ci10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBTZXRTdGF0ZTo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgYXV0byBjaGFuZ2VGbGFncyA9IG1fc3RhdGVDaGFuZ2Uu
bV9jaGFuZ2VGbGFnczsKLSAgICBlbmNvZGVyIDw8IGNoYW5nZUZsYWdzOwotCi0gICAgYXV0byYg
c3RhdGUgPSBtX3N0YXRlQ2hhbmdlLm1fc3RhdGU7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUdyYWRpZW50Q2hhbmdlKSkgewotICAg
ICAgICBlbmNvZGVyIDw8ICEhc3RhdGUuc3Ryb2tlR3JhZGllbnQ7Ci0gICAgICAgIGlmIChzdGF0
ZS5zdHJva2VHcmFkaWVudCkKLSAgICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRlLnN0cm9rZUdy
YWRpZW50OwotICAgIH0KLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6U3Ryb2tlUGF0dGVybkNoYW5nZSkpIHsKLSAgICAgICAgZW5jb2RlciA8PCAh
IXN0YXRlLnN0cm9rZVBhdHRlcm47Ci0gICAgICAgIGlmIChhdXRvJiBwYXR0ZXJuID0gc3RhdGUu
c3Ryb2tlUGF0dGVybikgewotICAgICAgICAgICAgZW5jb2RlciA8PCBwYXR0ZXJuLT50aWxlSW1h
Z2UoKS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKTsKLSAgICAgICAgICAgIGVuY29kZXIg
PDwgcGF0dGVybi0+cGFyYW1ldGVycygpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGNo
YW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFu
Z2UpKSB7Ci0gICAgICAgIGVuY29kZXIgPDwgISFzdGF0ZS5maWxsR3JhZGllbnQ7Ci0gICAgICAg
IGlmIChzdGF0ZS5maWxsR3JhZGllbnQpCi0gICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0ZS5m
aWxsR3JhZGllbnQ7Ci0gICAgfQotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBo
aWNzQ29udGV4dFN0YXRlOjpGaWxsUGF0dGVybkNoYW5nZSkpIHsKLSAgICAgICAgZW5jb2RlciA8
PCAhIXN0YXRlLmZpbGxQYXR0ZXJuOwotICAgICAgICBpZiAoYXV0byYgcGF0dGVybiA9IHN0YXRl
LmZpbGxQYXR0ZXJuKSB7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHBhdHRlcm4tPnRpbGVJbWFn
ZSgpLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOwotICAgICAgICAgICAgZW5jb2RlciA8
PCBwYXR0ZXJuLT5wYXJhbWV0ZXJzKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoY2hh
bmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd0NoYW5nZSkpIHsK
LSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dPZmZzZXQ7Ci0gICAgICAgIGVuY29kZXIg
PDwgc3RhdGUuc2hhZG93Qmx1cjsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zaGFkb3dDb2xv
cjsKICNpZiBVU0UoQ0cpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuc2hhZG93c1VzZUxlZ2Fj
eVJhZGl1czsKLSNlbmRpZiAvLyBVU0UoQ0cpCi0gICAgfQotCi0gICAgaWYgKGNoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UpKQot
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnN0cm9rZVRoaWNrbmVzczsKLQotICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6VGV4dERyYXdpbmdNb2RlQ2hh
bmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS50ZXh0RHJhd2luZ01vZGU7Ci0KLSAgICBp
ZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9y
Q2hhbmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zdHJva2VDb2xvcjsKLQotICAgIGlm
IChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hh
bmdlKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5maWxsQ29sb3I7Ci0KLSAgICBpZiAoY2hh
bmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVN0eWxlQ2hhbmdl
KSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5zdHJva2VTdHlsZTsKLQotICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFJ1bGVDaGFuZ2UpKQot
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmZpbGxSdWxlOwotCi0gICAgaWYgKGNoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpDb21wb3NpdGVPcGVyYXRpb25DaGFuZ2Up
KQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmNvbXBvc2l0ZU9wZXJhdG9yOwotCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFu
Z2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmJsZW5kTW9kZTsKLQotICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eUNoYW5nZSkpCi0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRl
eHRTdGF0ZTo6QWxwaGFDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmFscGhhOwot
Ci0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91
bGRBbnRpYWxpYXNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZEFudGlh
bGlhczsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U2hvdWxkU21vb3RoRm9udHNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNo
b3VsZFNtb290aEZvbnRzOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHNDaGFuZ2UpKQotICAgICAg
ICBlbmNvZGVyIDw8IHN0YXRlLnNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250czsKLQotICAgIGlm
IChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9y
ZVRyYW5zZm9ybXNDaGFuZ2UpKQotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNoYWRvd3NJZ25v
cmVUcmFuc2Zvcm1zOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgotT3B0aW9uYWw8U2V0
U3RhdGU+IFNldFN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25h
bDxHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncz4gY2hhbmdlRmxhZ3M7Ci0g
ICAgZGVjb2RlciA+PiBjaGFuZ2VGbGFnczsKLSAgICBpZiAoIWNoYW5nZUZsYWdzKQotICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2Ug
c3RhdGVDaGFuZ2U7Ci0gICAgc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncyA9ICpjaGFuZ2VGbGFn
czsKLQotICAgIFBhdHRlcm5EYXRhIHN0cm9rZVBhdHRlcm47Ci0gICAgUGF0dGVybkRhdGEgZmls
bFBhdHRlcm47Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhH
cmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFuZ2UpKSB7Ci0gICAgICAgIE9w
dGlvbmFsPGJvb2w+IGhhc1N0cm9rZUdyYWRpZW50OwotICAgICAgICBkZWNvZGVyID4+IGhhc1N0
cm9rZUdyYWRpZW50OwotICAgICAgICBpZiAoIWhhc1N0cm9rZUdyYWRpZW50Lmhhc1ZhbHVlKCkp
Ci0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmIChoYXNTdHJv
a2VHcmFkaWVudC52YWx1ZSgpKSB7Ci0gICAgICAgICAgICBhdXRvIHN0cm9rZUdyYWRpZW50ID0g
R3JhZGllbnQ6OmRlY29kZShkZWNvZGVyKTsKLSAgICAgICAgICAgIGlmICghc3Ryb2tlR3JhZGll
bnQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICAgICAg
c3RhdGVDaGFuZ2UubV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURk1vdmUoKnN0cm9rZUdyYWRp
ZW50KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VQYXR0ZXJuQ2hhbmdlKSkg
ewotICAgICAgICBPcHRpb25hbDxib29sPiBoYXNTdHJva2VQYXR0ZXJuOwotICAgICAgICBkZWNv
ZGVyID4+IGhhc1N0cm9rZVBhdHRlcm47Ci0gICAgICAgIGlmICghaGFzU3Ryb2tlUGF0dGVybi5o
YXNWYWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBp
ZiAoaGFzU3Ryb2tlUGF0dGVybi52YWx1ZSgpKSB7Ci0gICAgICAgICAgICBPcHRpb25hbDxSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKLSAg
ICAgICAgICAgIGRlY29kZXIgPj4gcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOwotICAgICAg
ICAgICAgaWYgKCFyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgT3B0aW9uYWw8
UGF0dGVybjo6UGFyYW1ldGVycz4gcGFyYW1ldGVyczsKLSAgICAgICAgICAgIGRlY29kZXIgPj4g
cGFyYW1ldGVyczsKLSAgICAgICAgICAgIGlmICghcGFyYW1ldGVycykKLSAgICAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdHJva2VQYXR0ZXJuID0geyAq
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCAqcGFyYW1ldGVycyB9OwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8
Ym9vbD4gaGFzRmlsbEdyYWRpZW50OwotICAgICAgICBkZWNvZGVyID4+IGhhc0ZpbGxHcmFkaWVu
dDsKLSAgICAgICAgaWYgKCFoYXNGaWxsR3JhZGllbnQuaGFzVmFsdWUoKSkKLSAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgaWYgKGhhc0ZpbGxHcmFkaWVudC52YWx1
ZSgpKSB7Ci0gICAgICAgICAgICBhdXRvIGZpbGxHcmFkaWVudCA9IEdyYWRpZW50OjpkZWNvZGUo
ZGVjb2Rlcik7Ci0gICAgICAgICAgICBpZiAoIWZpbGxHcmFkaWVudCkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRl
LmZpbGxHcmFkaWVudCA9IFdURk1vdmUoKmZpbGxHcmFkaWVudCk7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6RmlsbFBhdHRlcm5DaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+
IGhhc0ZpbGxQYXR0ZXJuOwotICAgICAgICBkZWNvZGVyID4+IGhhc0ZpbGxQYXR0ZXJuOwotICAg
ICAgICBpZiAoIWhhc0ZpbGxQYXR0ZXJuLmhhc1ZhbHVlKCkpCi0gICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmIChoYXNGaWxsUGF0dGVybi52YWx1ZSgpKSB7Ci0g
ICAgICAgICAgICBPcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcjsKLSAgICAgICAgICAgIGRlY29kZXIgPj4gcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyOwotICAgICAgICAgICAgaWYgKCFyZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICAg
ICAgT3B0aW9uYWw8UGF0dGVybjo6UGFyYW1ldGVycz4gcGFyYW1ldGVyczsKLSAgICAgICAgICAg
IGRlY29kZXIgPj4gcGFyYW1ldGVyczsKLSAgICAgICAgICAgIGlmICghcGFyYW1ldGVycykKLSAg
ICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgICAgICBmaWxsUGF0
dGVybiA9IHsgKnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgKnBhcmFtZXRlcnMgfTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlv
bmFsPEZsb2F0U2l6ZT4gc2hhZG93T2Zmc2V0OwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd09m
ZnNldDsKLSAgICAgICAgaWYgKCFzaGFkb3dPZmZzZXQpCi0gICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93T2Zmc2V0ID0g
KnNoYWRvd09mZnNldDsKLQotICAgICAgICBPcHRpb25hbDxmbG9hdD4gc2hhZG93Qmx1cjsKLSAg
ICAgICAgZGVjb2RlciA+PiBzaGFkb3dCbHVyOwotICAgICAgICBpZiAoIXNoYWRvd0JsdXIpCi0g
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1f
c3RhdGUuc2hhZG93Qmx1ciA9ICpzaGFkb3dCbHVyOwotCi0gICAgICAgIE9wdGlvbmFsPENvbG9y
PiBzaGFkb3dDb2xvcjsKLSAgICAgICAgZGVjb2RlciA+PiBzaGFkb3dDb2xvcjsKLSAgICAgICAg
aWYgKCFzaGFkb3dDb2xvcikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit1c2lu
ZyBTZXRJbmxpbmVMZWdhY3lTaGFkb3cgPSBTZXRJbmxpbmVTdGF0ZTwKKyAgICBJdGVtVHlwZTo6
U2V0TGVnYWN5U2hhZG93LAorICAgIHZvaWQgKEdyYXBoaWNzQ29udGV4dDo6KikoY29uc3QgRmxv
YXRTaXplJiwgZmxvYXQsIGNvbnN0IENvbG9yJiksCisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0
TGVnYWN5U2hhZG93LAorICAgIEZsb2F0U2l6ZSwgZmxvYXQsIFNSR0JBPHVpbnQ4X3Q+Cis+Owor
CitjbGFzcyBTZXRMZWdhY3lTaGFkb3cgOiBwdWJsaWMgU2V0SW5saW5lTGVnYWN5U2hhZG93IHsK
K3B1YmxpYzoKKyAgICB1c2luZyBTZXRJbmxpbmVMZWdhY3lTaGFkb3c6OlNldElubGluZUxlZ2Fj
eVNoYWRvdzsKKyAgICBGbG9hdFNpemUgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gYXJndW1lbnQ8
MD4oKTsgfQorICAgIGZsb2F0IGJsdXIoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwxPigpOyB9
CisgICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiB7IGFyZ3VtZW50PDI+KCkgfTsgfQor
fTsKKyNlbmRpZgogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hhZG93Q29sb3IgPSAq
c2hhZG93Q29sb3I7Cit1c2luZyBTZXRJbmxpbmVTaGFkb3cgPSBTZXRJbmxpbmVTdGF0ZTwKKyAg
ICBJdGVtVHlwZTo6U2V0U2hhZG93LAorICAgIHZvaWQgKEdyYXBoaWNzQ29udGV4dDo6KikoY29u
c3QgRmxvYXRTaXplJiwgZmxvYXQsIGNvbnN0IENvbG9yJiksCisgICAgJkdyYXBoaWNzQ29udGV4
dDo6c2V0U2hhZG93LAorICAgIEZsb2F0U2l6ZSwgZmxvYXQsIFNSR0JBPHVpbnQ4X3Q+Cis+Owog
Ci0jaWYgVVNFKENHKQotICAgICAgICBPcHRpb25hbDxib29sPiBzaGFkb3dzVXNlTGVnYWN5UmFk
aXVzOwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7Ci0gICAgICAg
IGlmICghc2hhZG93c1VzZUxlZ2FjeVJhZGl1cykKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaGFkb3dzVXNlTGVnYWN5UmFk
aXVzID0gKnNoYWRvd3NVc2VMZWdhY3lSYWRpdXM7Ci0jZW5kaWYgLy8gVVNFKENHKQotICAgIH0K
K2NsYXNzIFNldFNoYWRvdyA6IHB1YmxpYyBTZXRJbmxpbmVTaGFkb3cgeworcHVibGljOgorICAg
IHVzaW5nIFNldElubGluZVNoYWRvdzo6U2V0SW5saW5lU2hhZG93OworICAgIEZsb2F0U2l6ZSBv
ZmZzZXQoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9CisgICAgZmxvYXQgYmx1cigp
IGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50PDE+KCk7IH0KKyAgICBDb2xvciBjb2xvcigpIGNvbnN0
IHsgcmV0dXJuIHsgYXJndW1lbnQ8Mj4oKSB9OyB9Cit9OwogCi0gICAgaWYgKHN0YXRlQ2hhbmdl
Lm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZVRoaWNr
bmVzc0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IHN0cm9rZVRoaWNrbmVzczsK
LSAgICAgICAgZGVjb2RlciA+PiBzdHJva2VUaGlja25lc3M7Ci0gICAgICAgIGlmICghc3Ryb2tl
VGhpY2tuZXNzKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK3VzaW5nIFNldElu
bGluZVN0cm9rZVRoaWNrbmVzcyA9IFNldElubGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRT
dHJva2VUaGlja25lc3MsCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShmbG9hdCksCisg
ICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlVGhpY2tuZXNzLAorICAgIGZsb2F0Cis+Owog
Ci0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzID0gKnN0cm9rZVRo
aWNrbmVzczsKLSAgICB9CitjbGFzcyBTZXRTdHJva2VUaGlja25lc3MgOiBwdWJsaWMgU2V0SW5s
aW5lU3Ryb2tlVGhpY2tuZXNzIHsKK3B1YmxpYzoKKyAgICB1c2luZyBTZXRJbmxpbmVTdHJva2VU
aGlja25lc3M6OlNldElubGluZVN0cm9rZVRoaWNrbmVzczsKKyAgICBmbG9hdCB0aGlja25lc3Mo
KSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9Cit9OwogCi0gICAgaWYgKHN0YXRlQ2hh
bmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlRleHREcmF3
aW5nTW9kZUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8VGV4dERyYXdpbmdNb2RlRmxhZ3M+
IHRleHREcmF3aW5nTW9kZTsKLSAgICAgICAgZGVjb2RlciA+PiB0ZXh0RHJhd2luZ01vZGU7Ci0g
ICAgICAgIGlmICghdGV4dERyYXdpbmdNb2RlKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKK3VzaW5nIFNldElubGluZVRleHREcmF3aW5nTW9kZSA9IFNldElubGluZVN0YXRlPAor
ICAgIEl0ZW1UeXBlOjpTZXRUZXh0RHJhd2luZ01vZGUsCisgICAgdm9pZCAoR3JhcGhpY3NDb250
ZXh0OjoqKShUZXh0RHJhd2luZ01vZGVGbGFncyksCisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0
VGV4dERyYXdpbmdNb2RlLAorICAgIFRleHREcmF3aW5nTW9kZUZsYWdzCis+OwogCi0gICAgICAg
IHN0YXRlQ2hhbmdlLm1fc3RhdGUudGV4dERyYXdpbmdNb2RlID0gV1RGTW92ZSgqdGV4dERyYXdp
bmdNb2RlKTsKLSAgICB9CitjbGFzcyBTZXRUZXh0RHJhd2luZ01vZGUgOiBwdWJsaWMgU2V0SW5s
aW5lVGV4dERyYXdpbmdNb2RlIHsKK3B1YmxpYzoKKyAgICB1c2luZyBTZXRJbmxpbmVUZXh0RHJh
d2luZ01vZGU6OlNldElubGluZVRleHREcmF3aW5nTW9kZTsKKyAgICBUZXh0RHJhd2luZ01vZGVG
bGFncyB0ZXh0RHJhd2luZ01vZGUoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9Cit9
OwogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxDb2xv
cj4gc3Ryb2tlQ29sb3I7Ci0gICAgICAgIGRlY29kZXIgPj4gc3Ryb2tlQ29sb3I7Ci0gICAgICAg
IGlmICghc3Ryb2tlQ29sb3IpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwordXNp
bmcgU2V0SW5saW5lU3Ryb2tlQ29sb3IgPSBTZXRJbmxpbmVTdGF0ZTwKKyAgICBJdGVtVHlwZTo6
U2V0U3Ryb2tlQ29sb3IsCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShjb25zdCBDb2xv
ciYpLAorICAgICZHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZUNvbG9yLAorICAgIFNSR0JBPHVp
bnQ4X3Q+Cis+OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlQ29sb3IgPSAq
c3Ryb2tlQ29sb3I7Ci0gICAgfQorY2xhc3MgU2V0U3Ryb2tlQ29sb3IgOiBwdWJsaWMgU2V0SW5s
aW5lU3Ryb2tlQ29sb3IgeworcHVibGljOgorICAgIHVzaW5nIFNldElubGluZVN0cm9rZUNvbG9y
OjpTZXRJbmxpbmVTdHJva2VDb2xvcjsKKyAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJu
IHsgYXJndW1lbnQ8MD4oKSB9OyB9Cit9OwogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSkpIHsK
LSAgICAgICAgT3B0aW9uYWw8Q29sb3I+IGZpbGxDb2xvcjsKLSAgICAgICAgZGVjb2RlciA+PiBm
aWxsQ29sb3I7Ci0gICAgICAgIGlmICghZmlsbENvbG9yKQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKK3VzaW5nIFNldElubGluZUZpbGxDb2xvciA9IFNldElubGluZVN0YXRlPAor
ICAgIEl0ZW1UeXBlOjpTZXRGaWxsQ29sb3IsCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0Ojoq
KShjb25zdCBDb2xvciYpLAorICAgICZHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvciwKKyAg
ICBTUkdCQTx1aW50OF90PgorPjsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxD
b2xvciA9ICpmaWxsQ29sb3I7Ci0gICAgfQorY2xhc3MgU2V0RmlsbENvbG9yIDogcHVibGljIFNl
dElubGluZUZpbGxDb2xvciB7CitwdWJsaWM6CisgICAgdXNpbmcgU2V0SW5saW5lRmlsbENvbG9y
OjpTZXRJbmxpbmVGaWxsQ29sb3I7CisgICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiB7
IGFyZ3VtZW50PDA+KCkgfTsgfQorfTsKIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VTdHlsZUNoYW5nZSkpIHsK
LSAgICAgICAgU3Ryb2tlU3R5bGUgc3Ryb2tlU3R5bGU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc3Ryb2tlU3R5bGUpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK3Vz
aW5nIFNldElubGluZVN0cm9rZVN0eWxlID0gU2V0SW5saW5lU3RhdGU8CisgICAgSXRlbVR5cGU6
OlNldFN0cm9rZVN0eWxlLAorICAgIHZvaWQgKEdyYXBoaWNzQ29udGV4dDo6KikoU3Ryb2tlU3R5
bGUpLAorICAgICZHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVN0eWxlLAorICAgIFN0cm9rZVN0
eWxlCis+OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc3Ryb2tlU3R5bGUgPSBzdHJv
a2VTdHlsZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5jb250
YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbFJ1bGVDaGFuZ2UpKSB7Ci0gICAgICAgIE9w
dGlvbmFsPFdpbmRSdWxlPiBmaWxsUnVsZTsKLSAgICAgICAgZGVjb2RlciA+PiBmaWxsUnVsZTsK
LSAgICAgICAgaWYgKCFmaWxsUnVsZSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CitjbGFzcyBTZXRTdHJva2VTdHlsZSA6IHB1YmxpYyBTZXRJbmxpbmVTdHJva2VTdHlsZSB7Citw
dWJsaWM6CisgICAgdXNpbmcgU2V0SW5saW5lU3Ryb2tlU3R5bGU6OlNldElubGluZVN0cm9rZVN0
eWxlOworICAgIFN0cm9rZVN0eWxlIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gYXJndW1lbnQ8MD4o
KTsgfQorfTsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmZpbGxSdWxlID0gKmZpbGxS
dWxlOwotICAgIH0KK3VzaW5nIFNldElubGluZUZpbGxSdWxlID0gU2V0SW5saW5lU3RhdGU8Cisg
ICAgSXRlbVR5cGU6OlNldEZpbGxSdWxlLAorICAgIHZvaWQgKEdyYXBoaWNzQ29udGV4dDo6Kiko
V2luZFJ1bGUpLAorICAgICZHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxSdWxlLAorICAgIFdpbmRS
dWxlCis+OwogCi0gICAgaWYgKHN0YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OkNvbXBvc2l0ZU9wZXJhdGlvbkNoYW5nZSkpIHsKLSAgICAgICAg
T3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0b3I+IGNvbXBvc2l0ZU9wZXJhdG9yOwotICAgICAgICBk
ZWNvZGVyID4+IGNvbXBvc2l0ZU9wZXJhdG9yOwotICAgICAgICBpZiAoIWNvbXBvc2l0ZU9wZXJh
dG9yKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK2NsYXNzIFNldEZpbGxSdWxl
IDogcHVibGljIFNldElubGluZUZpbGxSdWxlIHsKK3B1YmxpYzoKKyAgICB1c2luZyBTZXRJbmxp
bmVGaWxsUnVsZTo6U2V0SW5saW5lRmlsbFJ1bGU7CisgICAgV2luZFJ1bGUgZmlsbFJ1bGUoKSBj
b25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9Cit9OwogCi0gICAgICAgIHN0YXRlQ2hhbmdl
Lm1fc3RhdGUuY29tcG9zaXRlT3BlcmF0b3IgPSAqY29tcG9zaXRlT3BlcmF0b3I7Ci0gICAgfQor
dXNpbmcgU2V0SW5saW5lQWxwaGEgPSBTZXRJbmxpbmVTdGF0ZTwKKyAgICBJdGVtVHlwZTo6U2V0
QWxwaGEsCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShmbG9hdCksCisgICAgJkdyYXBo
aWNzQ29udGV4dDo6c2V0QWxwaGEsCisgICAgZmxvYXQKKz47CiAKLSAgICBpZiAoc3RhdGVDaGFu
Z2UubV9jaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6QmxlbmRNb2Rl
Q2hhbmdlKSkgewotICAgICAgICBPcHRpb25hbDxCbGVuZE1vZGU+IGJsZW5kTW9kZTsKLSAgICAg
ICAgZGVjb2RlciA+PiBibGVuZE1vZGU7Ci0gICAgICAgIGlmICghYmxlbmRNb2RlKQotICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK2NsYXNzIFNldEFscGhhIDogcHVibGljIFNldElu
bGluZUFscGhhIHsKK3B1YmxpYzoKKyAgICB1c2luZyBTZXRJbmxpbmVBbHBoYTo6U2V0SW5saW5l
QWxwaGE7CisgICAgZmxvYXQgYWxwaGEoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigpOyB9
Cit9OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuYmxlbmRNb2RlID0gKmJsZW5kTW9k
ZTsKLSAgICB9Cit1c2luZyBTZXRJbmxpbmVDb21wb3NpdGVPcGVyYXRpb24gPSBTZXRJbmxpbmVT
dGF0ZTwKKyAgICBJdGVtVHlwZTo6U2V0Q29tcG9zaXRlT3BlcmF0aW9uLAorICAgIHZvaWQgKEdy
YXBoaWNzQ29udGV4dDo6KikoQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSksCisgICAgJkdy
YXBoaWNzQ29udGV4dDo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uLAorICAgIENvbXBvc2l0ZU9wZXJh
dG9yLCBCbGVuZE1vZGUKKz47CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFncy5j
b250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNo
YW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8SW50ZXJwb2xhdGlvblF1YWxpdHk+IGltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHk7Ci0gICAgICAgIGRlY29kZXIgPj4gaW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eTsKLSAgICAgICAgaWYgKCFpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KQotICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK2NsYXNzIFNldENvbXBvc2l0ZU9wZXJhdGlvbiA6
IHB1YmxpYyBTZXRJbmxpbmVDb21wb3NpdGVPcGVyYXRpb24geworcHVibGljOgorICAgIHVzaW5n
IFNldElubGluZUNvbXBvc2l0ZU9wZXJhdGlvbjo6U2V0SW5saW5lQ29tcG9zaXRlT3BlcmF0aW9u
OworICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yKCkgY29uc3QgeyByZXR1
cm4gYXJndW1lbnQ8MD4oKTsgfQorICAgIEJsZW5kTW9kZSBibGVuZE1vZGUoKSBjb25zdCB7IHJl
dHVybiBhcmd1bWVudDwxPigpOyB9Cit9OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUu
aW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSA9ICppbWFnZUludGVycG9sYXRpb25RdWFsaXR5Owot
ICAgIH0KK3VzaW5nIFNldElubGluZVNob3VsZEFudGlhbGlhcyA9IFNldElubGluZVN0YXRlPAor
ICAgIEl0ZW1UeXBlOjpTZXRTaG91bGRBbnRpYWxpYXMsCisgICAgdm9pZCAoR3JhcGhpY3NDb250
ZXh0OjoqKShib29sKSwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRTaG91bGRBbnRpYWxpYXMs
CisgICAgYm9vbAorPjsKIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNvbnRh
aW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpBbHBoYUNoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9u
YWw8ZmxvYXQ+IGFscGhhOwotICAgICAgICBkZWNvZGVyID4+IGFscGhhOwotICAgICAgICBpZiAo
IWFscGhhKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK2NsYXNzIFNldFNob3Vs
ZEFudGlhbGlhcyA6IHB1YmxpYyBTZXRJbmxpbmVTaG91bGRBbnRpYWxpYXMgeworcHVibGljOgor
ICAgIHVzaW5nIFNldElubGluZVNob3VsZEFudGlhbGlhczo6U2V0SW5saW5lU2hvdWxkQW50aWFs
aWFzOworICAgIGJvb2wgc2hvdWxkQW50aWFsaWFzKCkgY29uc3QgeyByZXR1cm4gYXJndW1lbnQ8
MD4oKTsgfQorfTsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLmFscGhhID0gKmFscGhh
OwotICAgIH0KK3VzaW5nIFNldElubGluZVNob3VsZFNtb290aEZvbnRzID0gU2V0SW5saW5lU3Rh
dGU8CisgICAgSXRlbVR5cGU6OlNldFNob3VsZFNtb290aEZvbnRzLAorICAgIHZvaWQgKEdyYXBo
aWNzQ29udGV4dDo6KikoYm9vbCksCisgICAgJkdyYXBoaWNzQ29udGV4dDo6c2V0U2hvdWxkU21v
b3RoRm9udHMsCisgICAgYm9vbAorPjsKIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZs
YWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXNDaGFuZ2Up
KSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNob3VsZEFudGlhbGlhczsKLSAgICAgICAgZGVj
b2RlciA+PiBzaG91bGRBbnRpYWxpYXM7Ci0gICAgICAgIGlmICghc2hvdWxkQW50aWFsaWFzKQot
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK2NsYXNzIFNldFNob3VsZFNtb290aEZv
bnRzIDogcHVibGljIFNldElubGluZVNob3VsZFNtb290aEZvbnRzIHsKK3B1YmxpYzoKKyAgICB1
c2luZyBTZXRJbmxpbmVTaG91bGRTbW9vdGhGb250czo6U2V0SW5saW5lU2hvdWxkU21vb3RoRm9u
dHM7CisgICAgYm9vbCBzaG91bGRTbW9vdGhGb250cygpIGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50
PDA+KCk7IH0KK307CiAKLSAgICAgICAgc3RhdGVDaGFuZ2UubV9zdGF0ZS5zaG91bGRBbnRpYWxp
YXMgPSAqc2hvdWxkQW50aWFsaWFzOwotICAgIH0KK3VzaW5nIFNldElubGluZVNob3VsZFN1YnBp
eGVsUXVhbnRpemVGb250cyA9IFNldElubGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRTaG91
bGRTdWJwaXhlbFF1YW50aXplRm9udHMsCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShi
b29sKSwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9u
dHMsCisgICAgYm9vbAorPjsKIAotICAgIGlmIChzdGF0ZUNoYW5nZS5tX2NoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRTbW9vdGhGb250c0NoYW5nZSkpIHsK
LSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgICAgIGRlY29k
ZXIgPj4gc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgICAgIGlmICghc2hvdWxkU21vb3RoRm9udHMp
Ci0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworY2xhc3MgU2V0U2hvdWxkU3VicGl4
ZWxRdWFudGl6ZUZvbnRzIDogcHVibGljIFNldElubGluZVNob3VsZFN1YnBpeGVsUXVhbnRpemVG
b250cyB7CitwdWJsaWM6CisgICAgdXNpbmcgU2V0SW5saW5lU2hvdWxkU3VicGl4ZWxRdWFudGl6
ZUZvbnRzOjpTZXRJbmxpbmVTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM7CisgICAgYm9vbCBz
aG91bGRTdWJwaXhlbFF1YW50aXplRm9udHMoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudDwwPigp
OyB9Cit9OwogCi0gICAgICAgIHN0YXRlQ2hhbmdlLm1fc3RhdGUuc2hvdWxkU21vb3RoRm9udHMg
PSAqc2hvdWxkU21vb3RoRm9udHM7Ci0gICAgfQordXNpbmcgU2V0SW5saW5lRHJhd0x1bWluYW5j
ZU1hc2sgPSBTZXRJbmxpbmVTdGF0ZTwKKyAgICBJdGVtVHlwZTo6U2V0RHJhd0x1bWluYW5jZU1h
c2ssCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShib29sKSwKKyAgICAmR3JhcGhpY3ND
b250ZXh0OjpzZXREcmF3THVtaW5hbmNlTWFzaywKKyAgICBib29sCis+OwogCi0gICAgaWYgKHN0
YXRlQ2hhbmdlLm1fY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNo
b3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkpIHsKLSAgICAgICAgT3B0aW9uYWw8Ym9v
bD4gc2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOwotICAgICAgICBkZWNvZGVyID4+IHNob3Vs
ZFN1YnBpeGVsUXVhbnRpemVGb250czsKLSAgICAgICAgaWYgKCFzaG91bGRTdWJwaXhlbFF1YW50
aXplRm9udHMpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworY2xhc3MgU2V0RHJh
d0x1bWluYW5jZU1hc2sgOiBwdWJsaWMgU2V0SW5saW5lRHJhd0x1bWluYW5jZU1hc2sgeworcHVi
bGljOgorICAgIHVzaW5nIFNldElubGluZURyYXdMdW1pbmFuY2VNYXNrOjpTZXRJbmxpbmVEcmF3
THVtaW5hbmNlTWFzazsKKyAgICBib29sIGRyYXdMdW1pbmFuY2VNYXNrKCkgY29uc3QgeyByZXR1
cm4gYXJndW1lbnQ8MD4oKTsgfQorfTsKIAotICAgICAgICBzdGF0ZUNoYW5nZS5tX3N0YXRlLnNo
b3VsZFN1YnBpeGVsUXVhbnRpemVGb250cyA9ICpzaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM7
Ci0gICAgfQordXNpbmcgU2V0SW5saW5lSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSA9IFNldElu
bGluZVN0YXRlPAorICAgIEl0ZW1UeXBlOjpTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5LAor
ICAgIHZvaWQgKEdyYXBoaWNzQ29udGV4dDo6KikoSW50ZXJwb2xhdGlvblF1YWxpdHkpLAorICAg
ICZHcmFwaGljc0NvbnRleHQ6OnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksCisgICAgSW50
ZXJwb2xhdGlvblF1YWxpdHkKKz47CiAKLSAgICBpZiAoc3RhdGVDaGFuZ2UubV9jaGFuZ2VGbGFn
cy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U2hhZG93c0lnbm9yZVRyYW5zZm9ybXND
aGFuZ2UpKSB7Ci0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1z
OwotICAgICAgICBkZWNvZGVyID4+IHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwotICAgICAgICBp
ZiAoIXNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKK2NsYXNzIFNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgOiBwdWJsaWMgU2V0SW5s
aW5lSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB7CitwdWJsaWM6CisgICAgdXNpbmcgU2V0SW5s
aW5lSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTo6U2V0SW5saW5lSW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KCkgY29uc3QgeyByZXR1cm4gYXJndW1lbnQ8MD4oKTsgfQorfTsKIAotICAgICAgICBzdGF0
ZUNoYW5nZS5tX3N0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zID0gKnNoYWRvd3NJZ25vcmVU
cmFuc2Zvcm1zOwotICAgIH0KKyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQordXNpbmcg
U2V0SW5saW5lVXNlRGFya0FwcGVhcmFuY2UgPSBTZXRJbmxpbmVTdGF0ZTwKKyAgICBJdGVtVHlw
ZTo6U2V0VXNlRGFya0FwcGVhcmFuY2UsCisgICAgdm9pZCAoR3JhcGhpY3NDb250ZXh0OjoqKShi
b29sKSwKKyAgICAmR3JhcGhpY3NDb250ZXh0OjpzZXRVc2VEYXJrQXBwZWFyYW5jZSwKKyAgICBi
b29sCis+OwogCi0gICAgcmV0dXJuIHt7IHN0YXRlQ2hhbmdlLCBzdHJva2VQYXR0ZXJuLCBmaWxs
UGF0dGVybiB9fTsKLX0KK2NsYXNzIFNldFVzZURhcmtBcHBlYXJhbmNlIDogcHVibGljIFNldElu
bGluZVVzZURhcmtBcHBlYXJhbmNlIHsKK3B1YmxpYzoKKyAgICB1c2luZyBTZXRJbmxpbmVVc2VE
YXJrQXBwZWFyYW5jZTo6U2V0SW5saW5lVXNlRGFya0FwcGVhcmFuY2U7CisgICAgYm9vbCB1c2VE
YXJrQXBwZWFyYW5jZSgpIGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50PDA+KCk7IH0KK307CisjZW5k
aWYKIAogY2xhc3MgU2V0TGluZUNhcCB7CiBwdWJsaWM6CkBAIC0yMzMwLDExICsyMjI5LDMxIEBA
IHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlPiB7CiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZSwKICAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTSwKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNLAotICAgIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50LAotICAgIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yLAotICAgIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3IsCisgICAgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VHcmFkaWVudCwKKyAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0cm9rZVBhdHRlcm4sCisgICAgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRGaWxsR3JhZGllbnQsCisgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRGaWxsUGF0dGVybiwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zLAorI2lmIFVTRShDRykKKyAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExlZ2FjeVNoYWRvdywKKyNlbmRpZgor
ICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U2hhZG93LAogICAgIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzLAotICAgIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3RhdGUsCisgICAgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRUZXh0RHJhd2luZ01vZGUsCisgICAgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VDb2xvciwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldEZpbGxDb2xvciwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlNldFN0cm9rZVN0eWxlLAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U2V0RmlsbFJ1bGUsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRB
bHBoYSwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENvbXBvc2l0ZU9w
ZXJhdGlvbiwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFNob3VsZEFu
dGlhbGlhcywKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFNob3VsZFNt
b290aEZvbnRzLAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U2hvdWxk
U3VicGl4ZWxRdWFudGl6ZUZvbnRzLAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U2V0RHJhd0x1bWluYW5jZU1hc2ssCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5LAorI2lmIEhBVkUoT1NfREFSS19NT0RF
X1NVUFBPUlQpCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRVc2VEYXJr
QXBwZWFyYW5jZSwKKyNlbmRpZgogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U2V0TGluZUNhcCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVE
YXNoLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpvaW4sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggZTdmOWUyOGMzNTAy
MTllODEzZDg4MzQwZmY0ZjU0ZGUyMmZjMTBjMy4uOWQ0OTUyYTQ5YmYwNzc2YmRlODdmZjBkMjU2
YzVkOTEzOTM5NDQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cApAQCAtNjAsMzEgKzYwLDYgQEAgdm9pZCBSZWNvcmRlcjo6cHV0SW1hZ2VEYXRhKFdlYkNvcmU6
OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IFcKICAgICBhcHBlbmQ8
UHV0SW1hZ2VEYXRhPihpbnB1dEZvcm1hdCwgaW1hZ2VEYXRhLCBzcmNSZWN0LCBkZXN0UG9pbnQs
IGRlc3RGb3JtYXQpOwogfQogCi1zdGF0aWMgYm9vbCBjb250YWluc09ubHlJbmxpbmVTdGF0ZUNo
YW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNoYW5nZXMsIEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5nZUZsYWdzKQotewotICAgIHN0YXRp
YyBjb25zdGV4cHIgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgaW5saW5l
U3RhdGVDaGFuZ2VGbGFncyB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VU
aGlja25lc3NDaGFuZ2UsCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdHJva2VDb2xv
ckNoYW5nZSwKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xvckNoYW5nZSwK
LSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSwKLSAgICB9
OwotCi0gICAgaWYgKGNoYW5nZUZsYWdzICE9IChjaGFuZ2VGbGFncyAmIGlubGluZVN0YXRlQ2hh
bmdlRmxhZ3MpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3Mu
Y29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSAmJiAhY2hh
bmdlcy5tX3N0YXRlLnN0cm9rZUNvbG9yLmlzSW5saW5lKCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6
RmlsbENvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci5pc0lubGluZSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMo
R3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkKLSAgICAgICAgJiYgKCFj
aGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50IHx8ICFTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Omlz
SW5saW5lKCpjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50KSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIFJlY29yZGVyOjpjYWNoZU5hdGl2
ZUltYWdlKE5hdGl2ZUltYWdlJiBpbWFnZSkKIHsKICAgICBpZiAobV9kZWxlZ2F0ZSkKQEAgLTk0
LDI2ICs2OSw4MSBAQCB2b2lkIFJlY29yZGVyOjpjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUltYWdl
JiBpbWFnZSkKIAogdm9pZCBSZWNvcmRlcjo6YXBwZW5kU3RhdGVDaGFuZ2VJdGVtKGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBjaGFuZ2VzLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6
U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VGbGFncykKIHsKLSAgICBpZiAoIWNvbnRhaW5zT25seUlu
bGluZVN0YXRlQ2hhbmdlcyhjaGFuZ2VzLCBjaGFuZ2VGbGFncykpIHsKLSAgICAgICAgaWYgKGF1
dG8gcGF0dGVybiA9IGNoYW5nZXMubV9zdGF0ZS5zdHJva2VQYXR0ZXJuKQorICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlR3JhZGllbnRDaGFu
Z2UpKQorICAgICAgICBhcHBlbmQ8U2V0U3Ryb2tlR3JhZGllbnQ+KCpjaGFuZ2VzLm1fc3RhdGUu
c3Ryb2tlR3JhZGllbnQsIGNoYW5nZXMubV9zdGF0ZS5zdHJva2VHcmFkaWVudFNwYWNlVHJhbnNm
b3JtKTsKKworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0
ZTo6U3Ryb2tlUGF0dGVybkNoYW5nZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gcGF0dGVybiA9IGNo
YW5nZXMubV9zdGF0ZS5zdHJva2VQYXR0ZXJuKSB7CiAgICAgICAgICAgICBjYWNoZU5hdGl2ZUlt
YWdlKHBhdHRlcm4tPnRpbGVJbWFnZSgpKTsKLSAgICAgICAgaWYgKGF1dG8gcGF0dGVybiA9IGNo
YW5nZXMubV9zdGF0ZS5maWxsUGF0dGVybikKKyAgICAgICAgICAgIGFwcGVuZDxTZXRTdHJva2VQ
YXR0ZXJuPihwYXR0ZXJuLT50aWxlSW1hZ2UoKS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIo
KSwgcGF0dGVybi0+cGFyYW1ldGVycygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChj
aGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdyYWRpZW50Q2hh
bmdlKSkKKyAgICAgICAgYXBwZW5kPFNldEZpbGxHcmFkaWVudD4oKmNoYW5nZXMubV9zdGF0ZS5m
aWxsR3JhZGllbnQsIGNoYW5nZXMubV9zdGF0ZS5maWxsR3JhZGllbnRTcGFjZVRyYW5zZm9ybSk7
CisKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZp
bGxQYXR0ZXJuQ2hhbmdlKSkgeworICAgICAgICBpZiAoYXV0byBwYXR0ZXJuID0gY2hhbmdlcy5t
X3N0YXRlLmZpbGxQYXR0ZXJuKSB7CiAgICAgICAgICAgICBjYWNoZU5hdGl2ZUltYWdlKHBhdHRl
cm4tPnRpbGVJbWFnZSgpKTsKLSAgICAgICAgYXBwZW5kPFNldFN0YXRlPihjaGFuZ2VzLm1fc3Rh
dGUsIGNoYW5nZUZsYWdzKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYXBwZW5kPFNl
dEZpbGxQYXR0ZXJuPihwYXR0ZXJuLT50aWxlSW1hZ2UoKS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIoKSwgcGF0dGVybi0+cGFyYW1ldGVycygpKTsKKyAgICAgICAgfQogICAgIH0KIAotICAg
IGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ryb2tlQ29s
b3JDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0SW5saW5lU3Ryb2tlQ29sb3I+KGNoYW5nZXMu
bV9zdGF0ZS5zdHJva2VDb2xvci5hc0lubGluZSgpKTsKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29u
dGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OlNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zQ2hhbmdl
KSkKKyAgICAgICAgYXBwZW5kPFNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zPihjaGFuZ2VzLm1f
c3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpOworCisgICAgaWYgKGNoYW5nZUZsYWdzLmNv
bnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaGFkb3dDaGFuZ2UpKSB7CisjaWYgVVNFKENH
KQorICAgICAgICBpZiAoY2hhbmdlcy5tX3N0YXRlLnNoYWRvd3NVc2VMZWdhY3lSYWRpdXMpCisg
ICAgICAgICAgICBhcHBlbmQ8U2V0TGVnYWN5U2hhZG93PihjaGFuZ2VzLm1fc3RhdGUuc2hhZG93
T2Zmc2V0LCBjaGFuZ2VzLm1fc3RhdGUuc2hhZG93Qmx1ciwgY2hhbmdlcy5tX3N0YXRlLnNoYWRv
d0NvbG9yLmFzSW5saW5lKCkpOworICAgICAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgICAgIGFw
cGVuZDxTZXRTaGFkb3c+KGNoYW5nZXMubV9zdGF0ZS5zaGFkb3dPZmZzZXQsIGNoYW5nZXMubV9z
dGF0ZS5zaGFkb3dCbHVyLCBjaGFuZ2VzLm1fc3RhdGUuc2hhZG93Q29sb3IuYXNJbmxpbmUoKSk7
CisgICAgfQogCiAgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdHJva2VUaGlja25lc3NDaGFuZ2UpKQogICAgICAgICBhcHBlbmQ8U2V0U3Ryb2tlVGhp
Y2tuZXNzPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzKTsKIAorICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6VGV4dERyYXdpbmdNb2RlQ2hh
bmdlKSkKKyAgICAgICAgYXBwZW5kPFNldFRleHREcmF3aW5nTW9kZT4oY2hhbmdlcy5tX3N0YXRl
LnRleHREcmF3aW5nTW9kZSk7CisKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhp
Y3NDb250ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlKSkKKyAgICAgICAgYXBwZW5kPFNldFN0
cm9rZUNvbG9yPihjaGFuZ2VzLm1fc3RhdGUuc3Ryb2tlQ29sb3IuYXNJbmxpbmUoKSk7CisKICAg
ICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxDb2xv
ckNoYW5nZSkpCi0gICAgICAgIGFwcGVuZDxTZXRJbmxpbmVGaWxsQ29sb3I+KGNoYW5nZXMubV9z
dGF0ZS5maWxsQ29sb3IuYXNJbmxpbmUoKSk7CisgICAgICAgIGFwcGVuZDxTZXRGaWxsQ29sb3I+
KGNoYW5nZXMubV9zdGF0ZS5maWxsQ29sb3IuYXNJbmxpbmUoKSk7CiAKLSAgICBpZiAoY2hhbmdl
RmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6OkZpbGxHcmFkaWVudENoYW5nZSkp
Ci0gICAgICAgIGFwcGVuZDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCpjaGFuZ2VzLm1fc3RhdGUu
ZmlsbEdyYWRpZW50LCBjaGFuZ2VzLm1fc3RhdGUuZmlsbEdyYWRpZW50U3BhY2VUcmFuc2Zvcm0p
OworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3Ry
b2tlU3R5bGVDaGFuZ2UpKQorICAgICAgICBhcHBlbmQ8U2V0U3Ryb2tlU3R5bGU+KGNoYW5nZXMu
bV9zdGF0ZS5zdHJva2VTdHlsZSk7CisKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3Jh
cGhpY3NDb250ZXh0U3RhdGU6OkZpbGxSdWxlQ2hhbmdlKSkKKyAgICAgICAgYXBwZW5kPFNldEZp
bGxSdWxlPihjaGFuZ2VzLm1fc3RhdGUuZmlsbFJ1bGUpOworCisgICAgaWYgKGNoYW5nZUZsYWdz
LmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpBbHBoYUNoYW5nZSkpCisgICAgICAgIGFw
cGVuZDxTZXRBbHBoYT4oY2hhbmdlcy5tX3N0YXRlLmFscGhhKTsKKworICAgIGlmIChjaGFuZ2VG
bGFncy5jb250YWluc0FueSh7IEdyYXBoaWNzQ29udGV4dFN0YXRlOjpDb21wb3NpdGVPcGVyYXRp
b25DaGFuZ2UsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpCbGVuZE1vZGVDaGFuZ2UgfSkpCisgICAg
ICAgIGFwcGVuZDxTZXRDb21wb3NpdGVPcGVyYXRpb24+KGNoYW5nZXMubV9zdGF0ZS5jb21wb3Np
dGVPcGVyYXRvciwgY2hhbmdlcy5tX3N0YXRlLmJsZW5kTW9kZSk7CisgICAgCisgICAgaWYgKGNo
YW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTaG91bGRBbnRpYWxpYXND
aGFuZ2UpKQorICAgICAgICBhcHBlbmQ8U2V0U2hvdWxkQW50aWFsaWFzPihjaGFuZ2VzLm1fc3Rh
dGUuc2hvdWxkQW50aWFsaWFzKTsKKworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U2hvdWxkU21vb3RoRm9udHNDaGFuZ2UpKQorICAgICAgICBhcHBl
bmQ8U2V0U2hvdWxkU21vb3RoRm9udHM+KGNoYW5nZXMubV9zdGF0ZS5zaG91bGRTbW9vdGhGb250
cyk7CisKKyAgICBpZiAoY2hhbmdlRmxhZ3MuY29udGFpbnMoR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlNob3VsZFN1YnBpeGVsUXVhbnRpemVGb250c0NoYW5nZSkpCisgICAgICAgIGFwcGVuZDxTZXRT
aG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM+KGNoYW5nZXMubV9zdGF0ZS5zaG91bGRTdWJwaXhl
bFF1YW50aXplRm9udHMpOworCisgICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpEcmF3THVtaW5hbmNlTWFza0NoYW5nZSkpCisgICAgICAgIGFwcGVuZDxT
ZXREcmF3THVtaW5hbmNlTWFzaz4oY2hhbmdlcy5tX3N0YXRlLmRyYXdMdW1pbmFuY2VNYXNrKTsK
KworICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6SW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eUNoYW5nZSkpCisgICAgICAgIGFwcGVuZDxTZXRJbWFnZUlu
dGVycG9sYXRpb25RdWFsaXR5PihjaGFuZ2VzLm1fc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eSk7CisKKyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQorICAgIGlmIChjaGFuZ2VG
bGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6VXNlRGFya0FwcGVhcmFuY2VDaGFu
Z2UpKQorICAgICAgICBhcHBlbmQ8U2V0VXNlRGFya0FwcGVhcmFuY2U+KGNoYW5nZXMubV9zdGF0
ZS51c2VEYXJrQXBwZWFyYW5jZSk7CisjZW5kaWYKIH0KIAogdm9pZCBSZWNvcmRlcjo6d2lsbEFw
cGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlcGxheWVyLmNwcAppbmRleCA0ZDkwNmEyNDU2NDQ2MmY2ZTAxODE2OWQxYjE2ODk5MmQ4ZGYy
Y2NhLi4wYWZhZGNkMGY2ODBhNWZiMGE3MTEyNjE0ODY0NzU3ODlhNDViZWU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCkBAIC03MCwyOSArNzAsNiBAQCBpbmxp
bmUgc3RhdGljIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlOYXRp
dmVJbWFnZUl0ZW0oR3JhcGhpYwogICAgIHJldHVybiByZXNvdXJjZUlkZW50aWZpZXI7CiB9CiAK
LWlubGluZSBzdGF0aWMgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBs
eVNldFN0YXRlSXRlbShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IE5hdGl2ZUltYWdl
SGFzaE1hcCYgbmF0aXZlSW1hZ2VzLCBJdGVtSGFuZGxlIGl0ZW0pCi17Ci0gICAgYXV0byYgc2V0
U3RhdGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+KCk7Ci0KLSAgICBOYXRpdmVJbWFnZSogc3Ry
b2tlUGF0dGVybkltYWdlID0gbnVsbHB0cjsKLSAgICBOYXRpdmVJbWFnZSogZmlsbFBhdHRlcm5J
bWFnZSA9IG51bGxwdHI7Ci0KLSAgICBpZiAoYXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBzZXRT
dGF0ZUl0ZW0uc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcigpKSB7Ci0gICAgICAgIHN0cm9r
ZVBhdHRlcm5JbWFnZSA9IG5hdGl2ZUltYWdlcy5nZXQocmVzb3VyY2VJZGVudGlmaWVyKTsKLSAg
ICAgICAgaWYgKCFzdHJva2VQYXR0ZXJuSW1hZ2UpCi0gICAgICAgICAgICByZXR1cm4gcmVzb3Vy
Y2VJZGVudGlmaWVyOwotICAgIH0KLQotICAgIGlmIChhdXRvIHJlc291cmNlSWRlbnRpZmllciA9
IHNldFN0YXRlSXRlbS5maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcigpKSB7Ci0gICAgICAgIGZp
bGxQYXR0ZXJuSW1hZ2UgPSBuYXRpdmVJbWFnZXMuZ2V0KHJlc291cmNlSWRlbnRpZmllcik7Ci0g
ICAgICAgIGlmICghZmlsbFBhdHRlcm5JbWFnZSkKLSAgICAgICAgICAgIHJldHVybiByZXNvdXJj
ZUlkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgc2V0U3RhdGVJdGVtLmFwcGx5KGNvbnRleHQsIHN0
cm9rZVBhdHRlcm5JbWFnZSwgZmlsbFBhdHRlcm5JbWFnZSk7Ci0gICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLX0KLQogdGVtcGxhdGU8Y2xhc3MgVD4KIGlubGluZSBzdGF0aWMgT3B0aW9uYWw8UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseUZvbnRJdGVtKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRm9udFJlbmRlcmluZ1Jlc291cmNlTWFwJiBmb250cywgSXRlbUhhbmRs
ZSBpdGVtKQogewpAQCAtMTEwLDYgKzg3LDE4IEBAIHN0ZDo6cGFpcjxPcHRpb25hbDxTdG9wUmVw
bGF5UmVhc29uPiwgT3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPj4gUmVwCiAg
ICAgaWYgKG1fZGVsZWdhdGUgJiYgbV9kZWxlZ2F0ZS0+YXBwbHkoaXRlbSwgbV9jb250ZXh0KSkK
ICAgICAgICAgcmV0dXJuIHsgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQgfTsKIAorICAgIGlm
IChpdGVtLmlzPFNldFN0cm9rZVBhdHRlcm4+KCkpIHsKKyAgICAgICAgaWYgKGF1dG8gbWlzc2lu
Z0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZlSW1hZ2VJdGVtPFNldFN0cm9r
ZVBhdHRlcm4+KG1fY29udGV4dCwgbV9uYXRpdmVJbWFnZXMsIGl0ZW0pKQorICAgICAgICAgICAg
cmV0dXJuIHsgU3RvcFJlcGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3Zl
KG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIpIH07CisgICAgICAgIHJldHVybiB7IFdU
Rjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0IH07CisgICAgfQorCisgICAgaWYgKGl0ZW0uaXM8U2V0
RmlsbFBhdHRlcm4+KCkpIHsKKyAgICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNl
SWRlbnRpZmllciA9IGFwcGx5TmF0aXZlSW1hZ2VJdGVtPFNldEZpbGxQYXR0ZXJuPihtX2NvbnRl
eHQsIG1fbmF0aXZlSW1hZ2VzLCBpdGVtKSkKKyAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBs
YXlSZWFzb246Ok1pc3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVz
b3VyY2VJZGVudGlmaWVyKSB9OworICAgICAgICByZXR1cm4geyBXVEY6Om51bGxvcHQsIFdURjo6
bnVsbG9wdCB9OworICAgIH0KKwogICAgIGlmIChpdGVtLmlzPERyYXdJbWFnZUJ1ZmZlcj4oKSkg
ewogICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gYXBw
bHlJbWFnZUJ1ZmZlckl0ZW08RHJhd0ltYWdlQnVmZmVyPihtX2NvbnRleHQsIG1faW1hZ2VCdWZm
ZXJzLCBpdGVtKSkKICAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1pc3Np
bmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVy
KSB9OwpAQCAtMTQwLDEyICsxMjksNiBAQCBzdGQ6OnBhaXI8T3B0aW9uYWw8U3RvcFJlcGxheVJl
YXNvbj4sIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4+IFJlcAogICAgICAg
ICByZXR1cm4geyBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCB9OwogICAgIH0KIAotICAgIGlm
IChpdGVtLmlzPFNldFN0YXRlPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdDYWNoZWRS
ZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseVNldFN0YXRlSXRlbShtX2NvbnRleHQsIG1fbmF0aXZl
SW1hZ2VzLCBpdGVtKSkKLSAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1p
c3NpbmdDYWNoZWRSZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlm
aWVyKSB9OwotICAgICAgICByZXR1cm4geyBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCB9Owot
ICAgIH0KLQogICAgIGl0ZW0uYXBwbHkobV9jb250ZXh0KTsKICAgICByZXR1cm4geyBXVEY6Om51
bGxvcHQsIFdURjo6bnVsbG9wdCB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDJj
NzYyNTE4NmFlZTE1ZDc3MmI3NjRiZGQ1NTlmMGExYzI3MGJkNDEuLmNjYjRmYTU5NjE1YjVjZGFl
MDE4Y2E5MTczMjJmOTkxMzM2MDMyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTQy
Myw4ICs0MjMsMTAgQEAgT3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU+IFdBUk5fVU5V
U0VEX1JFVFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWMKICAgICAgICAgcmV0dXJuIGRl
Y29kZUFuZENyZWF0ZTxEaXNwbGF5TGlzdDo6UHV0SW1hZ2VEYXRhPihkYXRhLCBsZW5ndGgsIGhh
bmRsZUxvY2F0aW9uKTsKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZURh
c2g6CiAgICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OlNldExpbmVE
YXNoPihkYXRhLCBsZW5ndGgsIGhhbmRsZUxvY2F0aW9uKTsKLSAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0U3RhdGU6Ci0gICAgICAgIHJldHVybiBkZWNvZGVBbmRDcmVhdGU8RGlz
cGxheUxpc3Q6OlNldFN0YXRlPihkYXRhLCBsZW5ndGgsIGhhbmRsZUxvY2F0aW9uKTsKKyAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlR3JhZGllbnQ6CisgICAgICAgIHJl
dHVybiBkZWNvZGVBbmRDcmVhdGU8RGlzcGxheUxpc3Q6OlNldFN0cm9rZUdyYWRpZW50PihkYXRh
LCBsZW5ndGgsIGhhbmRsZUxvY2F0aW9uKTsKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U2V0RmlsbEdyYWRpZW50OgorICAgICAgICByZXR1cm4gZGVjb2RlQW5kQ3JlYXRlPERpc3Bs
YXlMaXN0OjpTZXRGaWxsR3JhZGllbnQ+KGRhdGEsIGxlbmd0aCwgaGFuZGxlTG9jYXRpb24pOwog
ICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VQYXRoOgogICAgICAgICByZXR1
cm4gZGVjb2RlQW5kQ3JlYXRlPERpc3BsYXlMaXN0OjpTdHJva2VQYXRoPihkYXRhLCBsZW5ndGgs
IGhhbmRsZUxvY2F0aW9uKTsKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QXBwbHlE
ZXZpY2VTY2FsZUZhY3RvcjoKQEAgLTQ2MSwxMyArNDYzLDMyIEBAIE9wdGlvbmFsPERpc3BsYXlM
aXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6ZGVjCiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6CiAgICAgY2FzZSBE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRDVE06Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZp
bGxDb2xvcjoKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdy
YWRpZW50OgotICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VD
b2xvcjoKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlUGF0dGVybjoK
KyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0RmlsbFBhdHRlcm46CisgICAgY2Fz
ZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOgorI2lm
IFVTRShDRykKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGVnYWN5U2hhZG93
OgorI2VuZGlmCisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFNoYWRvdzoKKyAg
ICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgorICAgIGNh
c2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRUZXh0RHJhd2luZ01vZGU6CisgICAgY2FzZSBE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0cm9rZUNvbG9yOgorICAgIGNhc2UgRGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRGaWxsQ29sb3I6CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldFN0cm9rZVN0eWxlOgorICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRG
aWxsUnVsZToKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0QWxwaGE6CisgICAg
Y2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENvbXBvc2l0ZU9wZXJhdGlvbjoKKyAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U2hvdWxkQW50aWFsaWFzOgorICAgIGNhc2Ug
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTaG91bGRTbW9vdGhGb250czoKKyAgICBjYXNlIERp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U2hvdWxkU3VicGl4ZWxRdWFudGl6ZUZvbnRzOgorICAg
IGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXREcmF3THVtaW5hbmNlTWFzazoKKyAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eToK
KyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQorICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRVc2VEYXJrQXBwZWFyYW5jZToKKyNlbmRpZgogICAgIGNhc2UgRGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRMaW5lSm9pbjoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TWl0ZXJM
aW1pdDoKLSAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNz
OgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VFbGxpcHNlOgogI2lmIEVO
QUJMRShJTkxJTkVfUEFUSF9EQVRBKQogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
dHJva2VJbmxpbmVQYXRoOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCAwY2EyYmIy
MDNlNGM3NDI3YjU0NGU2ZTNhNzQzZDZjMTgwNTM5MmIwLi45YzE1ZmRiMDRkOThkOTliNDdhZWJi
YzFjZDc3NTlkNmQ4MzNkODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMzA4
LDggKzMwOCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVy
OjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlRGF0YT4o
aXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlRGF0YT4oKSk7CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKICAgICAg
ICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6U2V0TGluZURhc2g+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpT
ZXRMaW5lRGFzaD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRTdGF0ZToKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNp
bmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU+KGl0ZW0uZ2V0PFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZT4oKSk7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VHcmFkaWVudDoKKyAgICAgICAgICAgIHJldHVy
biBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
U2V0U3Ryb2tlR3JhZGllbnQ+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdHJv
a2VHcmFkaWVudD4oKSk7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRGaWxsR3JhZGllbnQ6CisgICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjpl
bmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldEZpbGxHcmFkaWVudD4o
aXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldEZpbGxHcmFkaWVudD4oKSk7CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VQYXRoOgogICAg
ICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTdHJva2VQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
U3Ryb2tlUGF0aD4oKSk7CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpBcHBseURldmljZVNjYWxlRmFjdG9yOgpAQCAtMzQ2LDEzICszNDgsMzIgQEAgcHJvdGVj
dGVkOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToK
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgotICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9y
OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5l
RmlsbEdyYWRpZW50OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTZXRTdHJva2VQYXR0ZXJuOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0RmlsbFBhdHRlcm46CisgICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTaGFkb3dzSWdub3JlVHJhbnNmb3JtczoKKyNp
ZiBVU0UoQ0cpCisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
ZXRMZWdhY3lTaGFkb3c6CisjZW5kaWYKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldFNoYWRvdzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFRleHREcmF3aW5nTW9kZToKKyAgICAgICAgY2FzZSBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0cm9rZUNvbG9yOgorICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0RmlsbENvbG9yOgorICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlU3R5bGU6Cisg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRGaWxsUnVsZToK
KyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldEFscGhhOgor
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q29tcG9zaXRl
T3BlcmF0aW9uOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U2V0U2hvdWxkQW50aWFsaWFzOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2V0U2hvdWxkU21vb3RoRm9udHM6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRTaG91bGRTdWJwaXhlbFF1YW50aXplRm9udHM6CisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXREcmF3THVtaW5hbmNl
TWFzazoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHk6CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkK
KyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFVzZURhcmtB
cHBlYXJhbmNlOgorI2VuZGlmCiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRMaW5lQ2FwOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2V0TGluZUpvaW46CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgogICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlRWxsaXBzZToKICNpZiBFTkFCTEUoSU5MSU5F
X1BBVEhfREFUQSkKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlN0cm9rZUlubGluZVBhdGg6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNGY2MWEwMzY5ODYzMDFmYzQ4MDdjMmIwODhlZTU2ZTY4YzZlNjZlMy4u
ZjQzY2ZjMzYwYjYwOWVmOTYwMzdmZWZlYjNlNTZmOTNjZjJkYmQwMyAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIx
LTAyLTE2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtH
UFUgUHJvY2Vzc10gUmVjb3JkIGNoYW5nZXMgaW4gR3JhcGhpY3NDb250ZXh0U3RhdGUgYXMgaW5k
aXZpZHVhbCBEaXNwbGF5TGlzdCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxp
c3RUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBVc2UgbmV3IG5hbWVzIGZvciBp
dGVtcyB3aGljaCByZWNvcmQgY2hhbmdlcyBpbiBHcmFwaGljc0NvbnRleHRTdGF0ZS4KKwogMjAy
MS0wMi0xNSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W2V3c10gQWRkIHB5dGhvbiAzIHN1cHBvcnQgLSBwYXJ0IDIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAppbmRleCBlODcx
N2M3OTE0MGJkZWE0YjVmNTM1NWYwMTY5MDg5ZTYwMDg2NzMzLi5hNjVlY2QwYTFhNTI0MGE1MGQ1
N2U1OTU1Mzk1MDI4OTYzMTY0NDgyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFRF
U1QoRGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAgICAgICAgIGxpc3QuYXBwZW5kPFNl
dFN0cm9rZVRoaWNrbmVzcz4oMS41KTsKICAgICAgICAgbGlzdC5hcHBlbmQ8RmlsbFBhdGg+KHBh
dGgpOwogICAgICAgICBsaXN0LmFwcGVuZDxGaWxsUmVjdFdpdGhHcmFkaWVudD4oRmxvYXRSZWN0
IHsgMS4sIDEuLCAxMC4sIDEwLiB9LCBncmFkaWVudCk7Ci0gICAgICAgIGxpc3QuYXBwZW5kPFNl
dElubGluZUZpbGxDb2xvcj4oQ29sb3I6OnJlZCk7CisgICAgICAgIGxpc3QuYXBwZW5kPFNldEZp
bGxDb2xvcj4oQ29sb3I6OnJlZCk7CiAjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCiAgICAg
ICAgIGxpc3QuYXBwZW5kPFN0cm9rZUlubGluZVBhdGg+KElubGluZVBhdGhEYXRhIHsgTGluZURh
dGEge3sgMC4sIDAuIH0sIHsgMTAuLCAxNS4gfX19KTsKICNlbmRpZgpAQCAtMTAyLDEwICsxMDIs
MTAgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKICAgICAgICAgICAgIEVY
UEVDVF9FUSgmaXRlbS5ncmFkaWVudCgpLCBncmFkaWVudC5wdHIoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29s
b3I6IHsKKyAgICAgICAgY2FzZSBJdGVtVHlwZTo6U2V0RmlsbENvbG9yOiB7CiAgICAgICAgICAg
ICBFWFBFQ1RfRkFMU0UoaGFuZGxlLT5pc0RyYXdpbmdJdGVtKCkpOwotICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoaGFuZGxlLT5pczxTZXRJbmxpbmVGaWxsQ29sb3I+KCkpOwotICAgICAgICAgICAg
YXV0byYgaXRlbSA9IGhhbmRsZS0+Z2V0PFNldElubGluZUZpbGxDb2xvcj4oKTsKKyAgICAgICAg
ICAgIEVYUEVDVF9UUlVFKGhhbmRsZS0+aXM8U2V0RmlsbENvbG9yPigpKTsKKyAgICAgICAgICAg
IGF1dG8mIGl0ZW0gPSBoYW5kbGUtPmdldDxTZXRGaWxsQ29sb3I+KCk7CiAgICAgICAgICAgICBF
WFBFQ1RfRVEoaXRlbS5jb2xvcigpLCBDb2xvcjo6cmVkKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CkBAIC0yMTUsOSArMjE1LDkgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVt
QnVmZmVyQ2xpZW50KQogICAgIGxpc3Quc2V0SXRlbUJ1ZmZlckNsaWVudCgmd3JpdGVyKTsKIAog
ICAgIGF1dG8gcGF0aCA9IGNyZWF0ZUNvbXBsZXhQYXRoKCk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0
SW5saW5lU3Ryb2tlQ29sb3I+KENvbG9yOjpibHVlKTsKKyAgICBsaXN0LmFwcGVuZDxTZXRTdHJv
a2VDb2xvcj4oQ29sb3I6OmJsdWUpOwogICAgIGxpc3QuYXBwZW5kPFN0cm9rZVBhdGg+KHBhdGgp
OwotICAgIGxpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9yPihDb2xvcjo6cmVkKTsKKyAg
ICBsaXN0LmFwcGVuZDxTZXRTdHJva2VDb2xvcj4oQ29sb3I6OnJlZCk7CiAgICAgbGlzdC5hcHBl
bmQ8U3Ryb2tlUGF0aD4ocGF0aCk7CiAKICAgICBEaXNwbGF5TGlzdCBzaGFsbG93Q29weSB7eyBJ
dGVtQnVmZmVySGFuZGxlIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZl
ciwgbGlzdC5zaXplSW5CeXRlcygpIH0gfX07CkBAIC0yMzAsOSArMjMwLDkgQEAgVEVTVChEaXNw
bGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogCiAgICAgRVhQRUNUX0ZBTFNFKHNoYWxs
b3dDb3B5LmlzRW1wdHkoKSk7CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlcy5zaXplKCksIDRVKTsK
LSAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzBdLCBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29s
b3IpOworICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMF0sIEl0ZW1UeXBlOjpTZXRTdHJva2VDb2xv
cik7CiAgICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1sxXSwgSXRlbVR5cGU6OlN0cm9rZVBhdGgpOwot
ICAgIEVYUEVDVF9FUShpdGVtVHlwZXNbMl0sIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xv
cik7CisgICAgRVhQRUNUX0VRKGl0ZW1UeXBlc1syXSwgSXRlbVR5cGU6OlNldFN0cm9rZUNvbG9y
KTsKICAgICBFWFBFQ1RfRVEoaXRlbVR5cGVzWzNdLCBJdGVtVHlwZTo6U3Ryb2tlUGF0aCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNw
bGF5TGlzdFRlc3RzQ0cuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nn
L0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKaW5kZXggMGZlYzVmNzY1YTQyYzkyNDdhNDJhNzY5MDFm
MDU2MTczMmNkYjliOC4uZTY4ZTE0ZGQwNTBkOTY5NTc0NzNiMjFlMDY1YWJiNDkxZWQ1MjgwNyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlM
aXN0VGVzdHNDRy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nn
L0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKQEAgLTU0LDEwICs1NCwxMCBAQCBURVNUKERpc3BsYXlM
aXN0VGVzdHMsIFJlcGxheVdpdGhNaXNzaW5nUmVzb3VyY2UpCiAKICAgICBEaXNwbGF5TGlzdCBs
aXN0OwogCi0gICAgbGlzdC5hcHBlbmQ8U2V0SW5saW5lRmlsbENvbG9yPihDb2xvcjo6Z3JlZW4p
OworICAgIGxpc3QuYXBwZW5kPFNldEZpbGxDb2xvcj4oQ29sb3I6OmdyZWVuKTsKICAgICBsaXN0
LmFwcGVuZDxGaWxsUmVjdD4oY29udGV4dEJvdW5kcyk7CiAgICAgbGlzdC5hcHBlbmQ8RHJhd0lt
YWdlQnVmZmVyPihpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnRleHRCb3VuZHMsIGNvbnRleHRC
b3VuZHMsIEltYWdlUGFpbnRpbmdPcHRpb25zIHsgfSk7Ci0gICAgbGlzdC5hcHBlbmQ8U2V0SW5s
aW5lU3Ryb2tlQ29sb3I+KENvbG9yOjpyZWQpOworICAgIGxpc3QuYXBwZW5kPFNldFN0cm9rZUNv
bG9yPihDb2xvcjo6cmVkKTsKICAgICBsaXN0LmFwcGVuZDxTdHJva2VMaW5lPihGbG9hdFBvaW50
IHsgMCwgY29udGV4dEhlaWdodCB9LCBGbG9hdFBvaW50IHsgY29udGV4dFdpZHRoLCAwIH0pOwog
CiAgICAgewpAQCAtMTIwLDcgKzEyMCw3IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgT3V0T2ZM
aW5lSXRlbURlY29kaW5nRmFpbHVyZSkKICAgICBwYXRoLm1vdmVUbyh7IDEwLiwgMTAuIH0pOwog
ICAgIHBhdGguYWRkTGluZVRvKHsgNTAuLCA1MC4gfSk7CiAgICAgcGF0aC5hZGRMaW5lVG8oeyAx
MC4sIDEwLiB9KTsKLSAgICBvcmlnaW5hbExpc3QuYXBwZW5kPFNldElubGluZVN0cm9rZUNvbG9y
PihDb2xvcjo6Ymx1ZSk7CisgICAgb3JpZ2luYWxMaXN0LmFwcGVuZDxTZXRTdHJva2VDb2xvcj4o
Q29sb3I6OmJsdWUpOwogICAgIG9yaWdpbmFsTGlzdC5hcHBlbmQ8RmlsbFBhdGg+KFdURk1vdmUo
cGF0aCkpOwogCiAgICAgRGlzcGxheUxpc3Qgc2hhbGxvd0NvcHkge3sgSXRlbUJ1ZmZlckhhbmRs
ZSB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZmZXIsIG9yaWdpbmFsTGlz
dC5zaXplSW5CeXRlcygpIH0gfX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjNiMjk4NjUwOWVlOGE4Y2FhMGM3MzUzNzRm
Nzc2ZDYyM2NhOTQ4ZC4uMTE4YmU1ODI4YWUwY2FjYTYxYWY5NDU4NzFiNDY3NDQxYWM5MzEyNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTE2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gUmVjb3JkIGNoYW5nZXMgaW4g
R3JhcGhpY3NDb250ZXh0U3RhdGUgYXMgaW5kaXZpZHVhbCBEaXNwbGF5TGlzdCBpdGVtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NDY4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkaXNwbGF5bGlz
dHMvY2FudmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZGlzcGxheWxp
c3RzL2V4dGVudC1pbmNsdWRlcy1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRpc3Bs
YXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJhbnNmb3Jtcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
R2VuZXJhdGUgbmV3IHRlc3QgZXhwZWN0YXRpb25zIHdoaWNoIGV4cGFuZCBTZXRTdGF0ZSB0byBp
bmRpdmlkdWFsIGl0ZW1zLgorCiAyMDIxLTAyLTE1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2Fs
ZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBQcm9wZXJ0eVNsb3Qgc2hvdWxkIGFsbG93
IHBhc3NpbmcgY3VzdG9tIHNldHRlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rpc3BsYXls
aXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3Bs
YXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0LWV4cGVjdGVkLnR4dAppbmRleCAxNDUxYjE5MjUz
YzMyMzg5MjhiYmQ5ZjVlNWRlYmI5Mjc0YzUwZDU3Li40NTdlZDI4OTc0ZGY2Nzc5MjNkZDBmMzk1
ODkyYjdmNDNiNGIyNjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2Fu
dmFzLWRpc3BsYXktbGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZGlzcGxheWxp
c3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QtZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDE2IEBACiAK
IChzYXZlKQotKHNldC1zdGF0ZQotICAoY2hhbmdlLWZsYWdzIDUyNTQ1NikKLSAgKHN0cm9rZS10
aGlja25lc3MgMS4wMCkKLSAgKGZpbGwtY29sb3IgI0M4MDAwMCkKKyhzZXQtc2hhZG93cy1pZ25v
cmUtdHJhbnNmb3JtcwogICAoc2hhZG93cy1pZ25vcmUtdHJhbnNmb3JtcyAxKSkKKyhzZXQtc3Ry
b2tlLXRoaWNrbmVzcworICAoc3Ryb2tlLXRoaWNrbmVzcyAxLjAwKSkKKyhzZXQtZmlsbC1jb2xv
cgorICAoZmlsbC1jb2xvciAjQzgwMDAwKSkKKyhzZXQtaW1hZ2UtaW50ZXJwb2xhdGlvbi1xdWFs
aXR5CisgIChpbWFnZS1pbnRlcnBvbGF0aW9uLXF1YWxpdHkgTG93KSkKIChmaWxsLXJlY3QKICAg
KHJlY3QgYXQgKDEwLDEwKSBzaXplIDU1eDUwKSBleHRlbnQgYXQgKDEwLDE0MCkgc2l6ZSA1NXg1
MCkKLShzZXQtaW5saW5lLWZpbGwtY29sb3IKLSAgKGNvbG9yICMwMDAwQzg4MCkpCisoc2V0LWZp
bGwtY29sb3IKKyAgKGZpbGwtY29sb3IgIzAwMDBDODgwKSkKIChmaWxsLXJlY3QKICAgKHJlY3Qg
YXQgKDMwLDMwKSBzaXplIDU1eDUwKSBleHRlbnQgYXQgKDMwLDEyMCkgc2l6ZSA1NXg1MCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtc2hhZG93
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMt
c2hhZG93LWV4cGVjdGVkLnR4dAppbmRleCA1OTBiOTNmNWM4OTJjYWUzN2Y0MjQ2MDlhOGZlNDgw
MzNlNjY4MzY4Li4xNDZlMzBlMjU2MzkyMDdlY2FkNmI1ZDViYmU0YjgxOGQ3ZGE5M2ZiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXNoYWRvdy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRl
cy1zaGFkb3ctZXhwZWN0ZWQudHh0CkBAIC0zLDExICszLDEwIEBACiAgICh4IDAuMDApCiAgICh5
IDAuMDApKQogKHNhdmUpCi0oc2V0LXN0YXRlCi0gIChjaGFuZ2UtZmxhZ3MgNTEyKQotICAoc2hh
ZG93LWJsdXIgMTIuMDApCisoc2V0LXNoYWRvdwogICAoc2hhZG93LW9mZnNldCB3aWR0aD0xMCBo
ZWlnaHQ9MjApCi0gIChzaGFkb3dzLXVzZS1sZWdhY3ktcmFkaXVzIDApKQorICAoc2hhZG93LWJs
dXIgMTIuMDApCisgIChzaGFkb3ctY29sb3IgIzAwMDAwMCkpCiAoZmlsbC1jb21wb3NpdGVkLXJl
Y3QKICAgKHJlY3QgYXQgKDUwLDUwKSBzaXplIDEwMHgxMDApCiAgIChjb2xvciAjMDAwMEZGKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFu
c2Zvcm1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9leHRlbnQtaW5j
bHVkZXMtdHJhbnNmb3Jtcy1leHBlY3RlZC50eHQKaW5kZXggMjhjY2Y0YzAxODU5ZGUxOTBiMGE5
YTI3ZmEyZmVjMDA2M2VkOGUxYy4uNDE1NmYxMDVmZjU4YWFhNGMzZjk2ZWU5OGI4NGM5MWI2YTRh
MGQ4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRl
cy10cmFuc2Zvcm1zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMv
ZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtZXhwZWN0ZWQudHh0CkBAIC01LDExICs1LDEwIEBA
CiAoY29uY2F0ZW50YXRlLWN0bQogICAoY3RtIHttPSgoMC44NywwLjUwKSgtMC41MCwwLjg3KSkg
dD0oODEuNzAsLTE4LjMwKX0pKQogKHNhdmUpCi0oc2V0LXN0YXRlCi0gIChjaGFuZ2UtZmxhZ3Mg
NTEyKQotICAoc2hhZG93LWJsdXIgMTIuMDApCisoc2V0LXNoYWRvdwogICAoc2hhZG93LW9mZnNl
dCB3aWR0aD0xMCBoZWlnaHQ9MjApCi0gIChzaGFkb3dzLXVzZS1sZWdhY3ktcmFkaXVzIDApKQor
ICAoc2hhZG93LWJsdXIgMTIuMDApCisgIChzaGFkb3ctY29sb3IgIzAwMDAwMCkpCiAoZmlsbC1j
b21wb3NpdGVkLXJlY3QKICAgKHJlY3QgYXQgKDAsMCkgc2l6ZSAxMDB4MTAwKQogICAoY29sb3Ig
IzAwMDBGRikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9sYXllci1kaXNw
YXktbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvbGF5ZXItZGlz
cGF5LWxpc3QtZXhwZWN0ZWQudHh0CmluZGV4IGJjMTdiNTExNDk5ZjgyNTZjOTkyOTBkYWU4NjE0
ZDQ4OTRjYWY5Y2MuLjI4NTBjYjY0MDgyNDMxZGU4ZjEyMjk5NWYyMjllMjM2ODc1M2EwZTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0
LWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMSBAQAogICAoY29sb3IgIzAwODAwMCkKICAgKGNv
bXBvc2l0ZS1vcGVyYXRpb24gc291cmNlLW92ZXIpCiAgIChibGVuZC1tb2RlIG5vcm1hbCkgZXh0
ZW50IGF0ICgwLDApIHNpemUgMTA0eDEwNCkKLShzZXQtc3RhdGUKLSAgKGNoYW5nZS1mbGFncyAz
Mjk2MCkKLSAgKGZpbGwtY29sb3IgIzAwMDBGRikKLSAgKHN0cm9rZS1zdHlsZSAwKQorKHNldC1m
aWxsLWNvbG9yCisgIChmaWxsLWNvbG9yICMwMDAwRkYpKQorKHNldC1zdHJva2Utc3R5bGUKKyAg
KHN0cm9rZS1zdHlsZSAwKSkKKyhzZXQtc2hvdWxkLWFudGlhbGlhcwogICAoc2hvdWxkLWFudGlh
bGlhcyAwKSkKIChkcmF3LXJlY3QKICAgKHJlY3QgYXQgKDAsMCkgc2l6ZSAxMDR4MikK
</data>

          </attachment>
      

    </bug>

</bugzilla>