<?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>236638</bug_id>
          
          <creation_ts>2022-02-15 01:28:14 -0800</creation_ts>
          <short_desc>[GPU Process] Route the call to ImageBuffer::drawPattern() through GraphicsContext</short_desc>
          <delta_ts>2022-02-16 15:46:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1841628</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-15 01:28:14 -0800</bug_when>
    <thetext>Currently we call ImageBuffer::drawPattern() directly. This does not record the drawing when GPU Process rendering is enabled. We need to route this call through GraphicsContext so it can be record via the superclasses DisplayList::RecorderImpl and RemoteDisplayListRecorderProxy. We currently hit the following assertion when enabling the GPU Process rendering for DOM:

SHOULD NEVER BE REACHED
/Volumes/Data/WebKit/OpenSource/Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp(108) : virtual void WebKit::ImageBufferRemoteIOSurfaceBackend::drawPattern(WebCore::GraphicsContext &amp;, const WebCore::FloatRect &amp;, const WebCore::FloatRect &amp;, const WebCore::AffineTransform &amp;, const WebCore::FloatPoint &amp;, const WebCore::FloatSize &amp;, const WebCore::ImagePaintingOptions &amp;)
1   0x1813caad9 WTFCrash
2   0x165134bab WTFCrashWithInfo(int, char const*, char const*, int)
3   0x1671b2ecb WebKit::ImageBufferRemoteIOSurfaceBackend::drawPattern(WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, WebCore::FloatRect const&amp;, WebCore::AffineTransform const&amp;, WebCore::FloatPoint const&amp;, WebCore::FloatSize const&amp;, WebCore::ImagePaintingOptions const&amp;)
4   0x1671a0329 WebCore::ConcreteImageBuffer&lt;WebKit::ImageBufferRemoteIOSurfaceBackend&gt;::drawPattern(WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, WebCore::FloatRect const&amp;, WebCore::AffineTransform const&amp;, WebCore::FloatPoint const&amp;, WebCore::FloatSize const&amp;, WebCore::ImagePaintingOptions const&amp;)
5   0x1a965cdf3 WebCore::CrossfadeGeneratedImage::drawPattern(WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, WebCore::FloatRect const&amp;, WebCore::AffineTransform const&amp;, WebCore::FloatPoint const&amp;, WebCore::FloatSize const&amp;, WebCore::ImagePaintingOptions const&amp;)
6   0x1a973593d WebCore::Image::drawTiled(WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, WebCore::FloatPoint const&amp;, WebCore::FloatSize const&amp;, WebCore::FloatSize const&amp;, WebCore::ImagePaintingOptions const&amp;)
7   0x1a971997a WebCore::GraphicsContext::drawTiledImage(WebCore::Image&amp;, WebCore::FloatRect const&amp;, WebCore::FloatPoint const&amp;, WebCore::FloatSize const&amp;, WebCore::FloatSize const&amp;, WebCore::ImagePaintingOptions const&amp;)
8   0x1a9c7a9f2 WebCore::RenderBoxModelObject::paintFillLayerExtended(WebCore::PaintInfo const&amp;, WebCore::Color const&amp;, WebCore::FillLayer const&amp;, WebCore::LayoutRect const&amp;, WebCore::BackgroundBleedAvoidance, WebCore::InlineIterator::InlineBoxIterator const&amp;, WebCore::LayoutRect const&amp;, WebCore::CompositeOperator, WebCore::RenderElement*, WebCore::BaseBackgroundColorUsage)
9   0x1a9c78c2d WebCore::RenderBox::paintFillLayer(WebCore::PaintInfo const&amp;, WebCore::Color const&amp;, WebCore::FillLayer const&amp;, WebCore::LayoutRect const&amp;, WebCore::BackgroundBleedAvoidance, WebCore::CompositeOperator, WebCore::RenderElement*, WebCore::BaseBackgroundColorUsage)
10  0x1a9c72221 WebCore::RenderBox::paintFillLayers(WebCore::PaintInfo const&amp;, WebCore::Color const&amp;, WebCore::FillLayer const&amp;, WebCore::LayoutRect const&amp;, WebCore::BackgroundBleedAvoidance, WebCore::CompositeOperator, WebCore::RenderElement*)
11  0x1a9c75505 WebCore::RenderBox::paintBackground(WebCore::PaintInfo const&amp;, WebCore::LayoutRect const&amp;, WebCore::BackgroundBleedAvoidance)
12  0x1a9c72c5f WebCore::RenderBox::paintBoxDecorations(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;)
13  0x1a9c40aa4 WebCore::RenderBlock::paintObject(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;)
14  0x1a9c3f7b3 WebCore::RenderBlock::paint(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;)
15  0x1a9c62110 WebCore::RenderBlockFlow::paintFloats(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;, bool)
16  0x1a9c4168a WebCore::RenderBlock::paintObject(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;)
17  0x1a9c3f7b3 WebCore::RenderBlock::paint(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;)
18  0x1a9d701fa WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase, WTF::Vector&lt;WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::PaintBehavior&gt;, WebCore::RenderObject*)
19  0x1a9d6df9d WebCore::RenderLayer::paintForegroundForFragments(WTF::Vector&lt;WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WebCore::GraphicsContext&amp;, WebCore::GraphicsContext&amp;, WebCore::LayoutRect const&amp;, bool, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::PaintBehavior&gt;, WebCore::RenderObject*)
20  0x1a9d698b3 WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;)
21  0x1a9d68d51 WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;)
22  0x1a9d67c7f WebCore::RenderLayer::paintLayerWithEffects(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;)
23  0x1a9d66fd7 WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;)
24  0x1a9d6d986 WebCore::RenderLayer::paintList(WebCore::RenderLayer::LayerList, WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;)
25  0x1a9d699d9 WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&amp;, WebCore::RenderLayer::LayerPaintingInfo const&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;)
26  0x1a9d8d942 WebCore::RenderLayerBacking::paintIntoLayer(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&amp;, WebCore::IntRect const&amp;, WTF::OptionSet&lt;WebCore::PaintBehavior&gt;, WebCore::EventRegionContext*)::$_25::operator()(WebCore::RenderLayer&amp;, WTF::OptionSet&lt;WebCore::RenderLayer::PaintLayerFlag&gt;) const
27  0x1a9d8d263 WebCore::RenderLayerBacking::paintIntoLayer(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&amp;, WebCore::IntRect const&amp;, WTF::OptionSet&lt;WebCore::PaintBehavior&gt;, WebCore::EventRegionContext*)
28  0x1a9d8eed6 WebCore::RenderLayerBacking::paintContents(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, unsigned int)
29  0x1a972c6ff WebCore::GraphicsLayer::paintGraphicsLayerContents(WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, unsigned int)
30  0x1a97e6c8f WebCore::GraphicsLayerCA::platformCALayerPaintContents(WebCore::PlatformCALayer*, WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, unsigned int)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841634</commentid>
    <comment_count>1</comment_count>
      <attachid>452006</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-15 02:13:17 -0800</bug_when>
    <thetext>Created attachment 452006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841690</commentid>
    <comment_count>2</comment_count>
      <attachid>452018</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-15 07:09:12 -0800</bug_when>
    <thetext>Created attachment 452018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841698</commentid>
    <comment_count>3</comment_count>
      <attachid>452019</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-15 07:18:29 -0800</bug_when>
    <thetext>Created attachment 452019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842132</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-15 22:10:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/89007452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842575</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-16 15:46:27 -0800</bug_when>
    <thetext>Committed r289976 (247362@main): &lt;https://commits.webkit.org/247362@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452019.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452006</attachid>
            <date>2022-02-15 02:13:17 -0800</date>
            <delta_ts>2022-02-15 07:09:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236638-20220215021316.patch</filename>
            <type>text/plain</type>
            <size>42274</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwN2Q3YTU4NDYyYmFi
ZGRhZDlmNjE0MzBmMTIxMWJkZTU3YzlkNy4uYTIzMDY3YTM2MTlmMTFhYWM1OTEyZWFmOTBjNzAx
YTNlZDA0YWI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIyLTAyLTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
Um91dGUgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKCkgdGhyb3VnaCBHcmFwaGljc0NvbnRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgd2ls
bCBhbGxvdyByZWNvcmRpbmcgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKCkgdmlhIHRoZSBzdXBl
ciBjbGFzc2VzCisgICAgICAgIERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGwgYW5kIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eS4gU28gYW5vdGhlcgorICAgICAgICB2ZXJzaW9uIG9mIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oKSB3aWxsIGJlIGFkZGVkIHdoaWNoIHRha2VzCisg
ICAgICAgIEltYWdlQnVmZmVyIGFzIGFuIGFyZ3VtZW50LgorCisgICAgICAgIFRvIG1ha2UgdGhl
IGRpc3BsYXkgbGlzdCBpdGVtIERyYXdQYXR0ZXJuIGJlIHN1aXRhYmxlIGZvciByZWNvcmRpbmcg
Ym90aAorICAgICAgICB2ZXJzaW9ucyBvZiBkcmF3UGF0dGVybigpLCB3ZSBuZWVkIHRvIHJlbW92
ZSB0aGUgYXJndW1lbnQgJ2ltYWdlU2l6ZScKKyAgICAgICAgZnJvbSBHcmFwaGljc0NvbnRleHQ6
OmRyYXdQYXR0ZXJuKCkgc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBmcm9tCisg
ICAgICAgIEltYWdlOjpkcmF3UGF0dGVybigpIGFuZCBpdCBwYXNzZXMgaW1hZ2VTaXplID0gSW1h
Z2U6OnNpemUoKS4gU28gaW1hZ2VTaXplCisgICAgICAgIGNhbiBiZSBjYWxjdWxhdGVkIGZyb20g
dGhlIE5hdGl2ZUltYWdlOjpzaXplKCkuCisKKyAgICAgICAgVGhlIERpc3BsYXlMaXN0OjpSZXBs
YXllciBhbmQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBoYXZlIHRvIGNvbnNpZGVyIAorICAg
ICAgICB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mIHRoZSBEcmF3UGF0dGVybiBj
YW4gYmUgdGhlIGlkZW50aWZpZXIKKyAgICAgICAgb2YgYSBOYXRpdmVJbWFnZSBvciBhbiBJbWFn
ZUJ1ZmZlci4gRHJhd1BhdHRlcm46OmFwcGx5KCkgbmVlZHMgdG8gdGFrZSBhCisgICAgICAgIFNv
dXJjZUltYWdlIGFuZCBpdCBjYW4gbWFrZSB0aGUgZGVjaXNpb24gd2hldGhlciB0byBjYWxsIHRo
ZSBOYXRpdmVJbWFnZQorICAgICAgICB2ZXJzaW9uIG9yIHRoZSBJbWFnZUJ1ZmZlciB2ZXJzaW9u
IG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oKS4KKworICAgICAgICAqIGh0bWwvQ3Vz
dG9tUGFpbnRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21QYWludEltYWdlOjpk
cmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBo
aWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1Bh
dHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6
OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2Vu
ZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWRJbWFnZUdlbmVyYXRlZElt
YWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTnVsbEdyYXBo
aWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dENHOjpkcmF3UGF0
dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm46OkRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3UGF0dGVybjo6
YXBwbHkgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1Bh
dHRlcm46OkRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
UGF0dGVybjo6aW1hZ2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3UGF0dGVybjo6aW1hZ2VTaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdQYXR0ZXJuKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpyZWNvcmRE
cmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZWNvcmRlckltcGw6OnJlY29yZERyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlckltcGw6OnJlY29yZERyYXdQYXR0ZXJuKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBs
YXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6YXBwbHlTb3VyY2VJbWFn
ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjphcHBseUl0
ZW0pOgorCiAyMDIyLTAyLTE0ICBEYW4gR2xhc3RvbmJ1cnkgIDxkamdAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1vdmUgUERGRG9jdW1lbnQuY3BwL2ggaW4gY29ycmVjdCBwb3NpdGlvbiBpbiBXZWJD
b3JlLnhjb2RlcHJvagpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNjlmZWVlNmVlYjk0OWM5YTU0Y2YxNTFkZDVhM2Zi
ZDFlZTk2NTIwLi4xN2Y5ODFiYmJjYjBjNDdiNjcyMmZjYjBjMjRiNWEyNTRkNWQxM2FlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAyLTE1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gUm91dGUgSW1hZ2VCdWZmZXI6
OmRyYXdQYXR0ZXJuKCkgdGhyb3VnaCBHcmFwaGljc0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpkcmF3UGF0dGVybldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaDoK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3UGF0dGVybik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd1Bh
dHRlcm4pOgorCiAyMDIyLTAyLTE0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSBzaG91bGQg
bm90IHNpbmsgaXRzZWxmIHRvIGFuIEltYWdlIG9yIGEgTmF0aXZlSW1hZ2UgdGhvdWdoIGl0cyBi
YWNrZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50SW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludEltYWdlLmNwcAppbmRleCBmYjhh
ZTZiZmQ3MWYzZWY2MWEzNDBlMjcwMDE0MDM4ZTI3NjY5NzBmLi5iNWMxYmYzZGM2ZDRjZTZjYTJj
YzM4ZmY4ZDhkNmFmNTc4OGRjMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1
c3RvbVBhaW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRJ
bWFnZS5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIEN1c3RvbVBhaW50SW1hZ2U6OmRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdAogICAg
IGlmIChkZXN0Q29udGV4dC5kcmF3THVtaW5hbmNlTWFzaygpKQogICAgICAgICBidWZmZXItPmNv
bnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIAotICAgIGJ1ZmZlci0+ZHJhd1BhdHRlcm4oZGVzdENv
bnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhh
c2UsIHNwYWNpbmcsIG9wdGlvbnMpOworICAgIGRlc3RDb250ZXh0LmRyYXdQYXR0ZXJuKCpidWZm
ZXIsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2Us
IHNwYWNpbmcsIG9wdGlvbnMpOwogICAgIGRlc3RDb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNr
KGZhbHNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBiZTZjZWM3ODI3
Nzc5NGRmNTdkNGY1ZmNmN2Y0ZjdkMmE2ZTAzYWMzLi45ZjA2YmQwZGNiNTRhMjhlMzUwNGRmYmE1
MjhiNTY3ZWJiODg5MDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMjYzLDEw
ICsyNjMsMTAgQEAgdm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1h
Z2UoTmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdlLCBjb25zdAogICAgIG1fc2Vjb25kYXJ5Q29udGV4
dC5kcmF3TmF0aXZlSW1hZ2UobmF0aXZlSW1hZ2UsIHNlbGZTaXplLCBkZXN0UmVjdCwgc3JjUmVj
dCwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd1Bh
dHRlcm4oTmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKK3ZvaWQgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRl
cm4oTmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5U
cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIG1fcHJpbWFy
eUNvbnRleHQuZHJhd1BhdHRlcm4obmF0aXZlSW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHRp
bGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7Ci0gICAg
bV9zZWNvbmRhcnlDb250ZXh0LmRyYXdQYXR0ZXJuKG5hdGl2ZUltYWdlLCBpbWFnZVNpemUsIGRl
c3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlv
bnMpOworICAgIG1fcHJpbWFyeUNvbnRleHQuZHJhd1BhdHRlcm4obmF0aXZlSW1hZ2UsIGRlc3RS
ZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMp
OworICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UGF0dGVybihuYXRpdmVJbWFnZSwgZGVzdFJl
Y3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7
CiB9CiAKIEltYWdlRHJhd1Jlc3VsdCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1h
Z2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9h
dFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0LmgKaW5kZXggMmRiODUwMTk0Y2Q4MWNjOTQ3MDQ3MzFmYTJkNjUxMjA0
Njk5NjE4ZC4uNzdiNzJhZDM2MzgzY2E3MGRjOWM2Yjg0MjhkZTgzYmM5Y2Y3MTdkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRNaXRlckxpbWl0KGZsb2F0KSBmaW5hbDsKIAogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKE5h
dGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IH0pIGZpbmFsOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBj
b25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5n
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgZHJh
d1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zv
cm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAgICAgSW1hZ2VEcmF3UmVz
dWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZSB9KSBmaW5hbDsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJh
d0ltYWdlRm9yQ2FudmFzKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgRGVzdGlu
YXRpb25Db2xvclNwYWNlIGNhbnZhc0NvbG9yU3BhY2UpIGZpbmFsOwogICAgIEltYWdlRHJhd1Jl
c3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0p
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4IDYxYTM4MzIzM2NiNmViMWE5NGU5
MWYxZmZlNDc3ZjJjY2RmMTUxMTcuLmJiNGRhYzAxOWM1YjllMTNiMTM3YWU2OTRlNGJmNmIyNzZi
ZmNjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lk
IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UgogICAgIGRyYXdDcm9zc2ZhZGUoZ3JhcGhpY3NDb250ZXh0KTsK
IAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgotICAgIGlt
YWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJu
VHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CisgICAgY29udGV4dC5kcmF3UGF0
dGVybigqaW1hZ2VCdWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBo
YXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0KIAogdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZTo6ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDUxOTNhNjZhZTk4YmIz
MTRmZGIzZGFiNzIwZjI1YjViNzljNTViNjAuLjNjNmMxMDAxYWQ4ZDIwZmYwYTNiMTJhZmM0YWNm
ZDY5ZGVkNDFjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzM0LDYgKzczNCwxMSBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdl
LCBjb25zdCBGbAogICAgIHNjYWxlKGZpbHRlci5maWx0ZXJTY2FsZSgpKTsKIH0KIAordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKK3sKKyAgICBpbWFnZS5kcmF3UGF0dGVybigqdGhpcywgZGVzdFJlY3QsIHRpbGVSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7Cit9CisKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpjbGlwUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVj
dCkKIHsKICAgICBQYXRoIHBhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDgzY2U0ZDJkZmVjMWRkNGEyMTZkYmYwOWQw
NDE1OTI0Y2Q1MzYzM2IuLmVlYjFkODRiZjRlN2JiZGVjZTI0NDkxMmUwZWQ2NDYwMTI1ZTE4NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oCkBAIC00NDUsNyArNDQ1LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIGRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJ
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIEZpbHRlciYsIEZpbHRlclJl
c3VsdHMmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNv
bnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRy
YW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSA9IDA7CisgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwog
CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBwYWlu
dEZyYW1lRm9yTWVkaWEoTWVkaWFQbGF5ZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAppbmRleCBlMzJh
MzZjNjA3NjE5MjE2OGM2YTM3OTMxOGY3OGFlMTc4OWM0ODJlLi5kMmE5NzZmYzY2ZTE3NmEzZTVk
MGU5YTA5YTFiYzJjODJjZDFjNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBJbWFnZTo6ZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdAog
ICAgIGlmICghdGlsZUltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBjdHh0LmRyYXdQYXR0
ZXJuKCp0aWxlSW1hZ2UsIHNpemUoKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNm
b3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CisgICAgY3R4dC5kcmF3UGF0dGVybigqdGls
ZUltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFj
aW5nLCBvcHRpb25zKTsKIAogICAgIGlmIChpbWFnZU9ic2VydmVyKCkpCiAgICAgICAgIGltYWdl
T2JzZXJ2ZXIoKS0+ZGlkRHJhdygqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcAppbmRl
eCAzNzBjN2RjMjg5NmYzOTYyY2IzZWQ1MDk4MmRhYjY5OTc0ZjYzMmM0Li5jYTczNTkxZDgzN2U2
YmUxNGM1ZGEyNTdlMzcxZjVmMjI1OGNmMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAK
QEAgLTczLDcgKzczLDcgQEAgdm9pZCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0
ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXQKICAgICBUaGVtZTo6c2lu
Z2xldG9uKCkuZHJhd05hbWVkSW1hZ2UobV9uYW1lLCBncmFwaGljc0NvbnRleHQsIHNpemUoKSk7
CiAKICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBp
bWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOworICAgIGNvbnRleHQuZHJhd1Bh
dHRlcm4oKmltYWdlQnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBw
aGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0
KTsKICAgICBVTlVTRURfUEFSQU0oZHN0UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9OdWxsR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9OdWxsR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggZmFmN2VlOTU3
MTk5M2Y0ZGEwM2Y4MTY2YTVlMGY0ZWMwYzBjNjMzZC4uZDE4MGU1MTkwMmUyZTI3ODlkMDQ1NjVk
MDdhZGY5NmRmZjVmMmRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTnVsbEdyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL051bGxHcmFwaGljc0NvbnRleHQuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNp
emUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFn
ZSYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNp
emUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsIHsgfQorICAgIHZvaWQgZHJh
d1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRT
aXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbCB7IH0KIAogICAgIEludFJl
Y3QgY2xpcEJvdW5kcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgfTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRD
Ry5jcHAKaW5kZXggZGZhMTc0YTUzYzJlNzYwMzU3NjJiNDM0ZjBmMTlkYjE1NjYxODQxMy4uZDEx
NzhmOGFkZDgxNWFiOTgzMDc2ZmU4Nzc3MjNmYjFjOTQ1ZGU5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNw
cApAQCAtMzg0LDEyICszODQsMTMgQEAgc3RhdGljIHZvaWQgcGF0dGVyblJlbGVhc2VDYWxsYmFj
ayh2b2lkKiBpbmZvKQogICAgIGNhbGxPbk1haW5UaHJlYWQoW2ltYWdlID0gYWRvcHRDRihzdGF0
aWNfY2FzdDxDR0ltYWdlUmVmPihpbmZvKSldIHsgfSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0Q0c6OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEdyYXBoaWNzQ29udGV4dENHOjpkcmF3
UGF0dGVybihOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYg
KCFwYXR0ZXJuVHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBhdXRvIGltYWdlID0gbmF0aXZlSW1hZ2UucGxhdGZvcm1JbWFnZSgpOworICAgIGF1dG8gaW1h
Z2VTaXplID0gbmF0aXZlSW1hZ2Uuc2l6ZSgpOwogCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQg
PSBwbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
Y29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0Q0cuaAppbmRleCA1ZjFhYTI0YzY2NWU2MmM1YWJlODlhNGQ5YWU5
MTU3MDNmZmQ3MGI5Li40NjhhNDRiYWE4NmVlNTI2MTlkMjU1ZjkzOTQzYTk3NTViYWM5ZmFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRN
aXRlckxpbWl0KGZsb2F0KSBmaW5hbDsKIAogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKE5hdGl2
ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgPSB7IH0pIGZpbmFsOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25z
dCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgZHJhd1Bh
dHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAKICAgICB1c2luZyBHcmFwaGlj
c0NvbnRleHQ6OnNjYWxlOwogICAgIHZvaWQgc2NhbGUoY29uc3QgRmxvYXRTaXplJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggYjkzOGJmZDI2ODE0ZDBj
MWNiYzY0MTQ5ZjE0Yzk5NGQzYzRhMzdjMS4uM2YzNzgzNWRlNjkyNDIwMTRjZTljYjA2ZWY4N2E5
ZDEwZWRiNTM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMzk4
LDkgKzM5OCw4IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBEcmF3TmF0aXZlSW1hZ2UmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi1EcmF3
UGF0dGVybjo6RHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRl
bnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCitEcmF3UGF0
dGVybjo6RHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRp
ZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKICAgICA6IG1faW1hZ2VJZGVudGlmaWVyKGltYWdlSWRlbnRpZmll
cikKLSAgICAsIG1faW1hZ2VTaXplKGltYWdlU2l6ZSkKICAgICAsIG1fZGVzdGluYXRpb24oZGVz
dFJlY3QpCiAgICAgLCBtX3RpbGVSZWN0KHRpbGVSZWN0KQogICAgICwgbV9wYXR0ZXJuVHJhbnNm
b3JtKHBhdHRlcm5UcmFuc2Zvcm0pCkBAIC00MTUsOSArNDE0LDE5IEBAIE5PX1JFVFVSTl9EVUVf
VE9fQVNTRVJUIHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRHJhd1BhdHRlcm46OmFwcGx5
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTmF0aXZlSW1hZ2UmIGltYWdlKSBjb25zdAordm9p
ZCBEcmF3UGF0dGVybjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBTb3VyY2VJbWFn
ZSYgc291cmNlSW1hZ2UpIGNvbnN0CiB7Ci0gICAgY29udGV4dC5kcmF3UGF0dGVybihpbWFnZSwg
bV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb24sIG1fdGlsZVJlY3QsIG1fcGF0dGVyblRyYW5zZm9y
bSwgbV9waGFzZSwgbV9zcGFjaW5nLCBtX29wdGlvbnMpOworICAgIGlmIChhdXRvIGltYWdlID0g
c291cmNlSW1hZ2UubmF0aXZlSW1hZ2VJZkV4aXN0cygpKSB7CisgICAgICAgIGNvbnRleHQuZHJh
d1BhdHRlcm4oKmltYWdlLCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3BhdHRlcm5UcmFu
c2Zvcm0sIG1fcGhhc2UsIG1fc3BhY2luZywgbV9vcHRpb25zKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gc291cmNlSW1hZ2UuaW1hZ2VCdWZm
ZXJJZkV4aXN0cygpKSB7CisgICAgICAgIGNvbnRleHQuZHJhd1BhdHRlcm4oKmltYWdlQnVmZmVy
LCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3BhdHRlcm5UcmFuc2Zvcm0sIG1fcGhhc2Us
IG1fc3BhY2luZywgbV9vcHRpb25zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd1BhdHRlcm4mIGl0ZW0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaAppbmRleCAwNmIxYWU2NDkzNjZmODI0N2UxNjAxMDliZDBkZDY0OTQxZDI3
MjA4Li5mNTFkMWY4Zjk0MWFhZjM0YTRlODlmNThkNWQ1MTk0Y2E5NjYzMzhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTk5OSwxMCArOTk5LDkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gdHJ1ZTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
dGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9
IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgRHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IH0pOwogCiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VJZGVudGlmaWVyOyB9Ci0gICAgRmxvYXRTaXplIGltYWdl
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VTaXplOyB9CiAgICAgRmxvYXRSZWN0IGRlc3RS
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbjsgfQogICAgIEZsb2F0UmVjdCB0aWxl
UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZVJlY3Q7IH0KICAgICBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3BhdHRlcm5UcmFuc2Zv
cm07IH0KQEAgLTEwMTIsMTQgKzEwMTEsMTMgQEAgcHVibGljOgogICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VJZGVudGlmaWVyLmlzVmFsaWQoKTsgfQogCiAgICAgTk9f
UkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIE5hdGl2ZUlt
YWdlJikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseShHcmFwaGljc0NvbnRl
eHQmLCBTb3VyY2VJbWFnZSYpIGNvbnN0OwogCiAgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+
IGdsb2JhbEJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogICAgIHN0ZDo6
b3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBj
b25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VJZGVudGlmaWVyOwotICAgIEZsb2F0U2l6ZSBtX2lt
YWdlU2l6ZTsKICAgICBGbG9hdFJlY3QgbV9kZXN0aW5hdGlvbjsKICAgICBGbG9hdFJlY3QgbV90
aWxlUmVjdDsKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9wYXR0ZXJuVHJhbnNmb3JtOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGNlOTJjZTU1ODc3YjRiZmQ3
ODI0NGQwYTQ0Y2M1NGViYTVjODYwNjAuLjRjN2RkOGE2MzBmODk0MDhiZWMxMDFlMmViZGM0ZWNj
OTBjZjg0YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAg
LTIwMiwxMSArMjAyLDIzIEBAIHZvaWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShOYXRpdmVJ
bWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjCiAgICAgcmVjb3JkRHJh
d05hdGl2ZUltYWdlKGltYWdlLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBpbWFnZVNp
emUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKIH0KIAotdm9pZCBSZWNvcmRlcjo6ZHJh
d1BhdHRlcm4oTmF0aXZlSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKK3ZvaWQgUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBpbWFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKIHsKICAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW1JZk5lY2Vzc2FyeSgp
OwogICAgIHJlY29yZFJlc291cmNlVXNlKGltYWdlKTsKLSAgICByZWNvcmREcmF3UGF0dGVybihp
bWFnZS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKKyAg
ICByZWNvcmREcmF3UGF0dGVybihpbWFnZS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwg
ZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0
aW9ucyk7Cit9CisKK3ZvaWQgUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlQnVmZmVyJiBpbWFn
ZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxl
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW1JZk5lY2Vz
c2FyeSgpOworCisgICAgaWYgKCFyZWNvcmRSZXNvdXJjZVVzZShpbWFnZUJ1ZmZlcikpIHsKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybihpbWFnZUJ1ZmZlciwgZGVzdFJlY3Qs
IHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZWNvcmREcmF3UGF0dGVybihpbWFnZUJ1ZmZl
ci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiB9CiAKIHZvaWQgUmVjb3Jk
ZXI6OnNhdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNmFh
MTNkOGQwMDZjZGYyNjdmYThlZDQyMzc4MmQ4NzI5OTdlMjVhMy4uM2QzODM2ZmYzZDVmN2JkNmM4
NmRiOGQ3MjkwYmVkOTU5MDcyZmQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5oCkBAIC04Niw3ICs4Niw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcmVj
b3JkRHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0
IEdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBs
b2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVj
b3JkRHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd05hdGl2ZUltYWdlKFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZWNv
cmREcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
PSB7IH0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd1BhdHRlcm4oUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IH0pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkQmVnaW5UcmFuc3BhcmVu
Y3lMYXllcihmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmRFbmRUcmFuc3BhcmVu
Y3lMYXllcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd1JlY3QoY29uc3QgRmxv
YXRSZWN0JiwgZmxvYXQpID0gMDsKQEAgLTIyMiw3ICsyMjIsOCBAQCBwcml2YXRlOgogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdO
YXRpdmVJbWFnZShOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3
UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNw
YWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYs
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
cmF3UGF0dGVybihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJikgZmluYWw7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdSZWN0KGNv
bnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykgZmluYWw7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkcmF3TGluZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2lu
dCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5j
cHAKaW5kZXggYzI5MTQ4ZTA0MzgxMWM1ZWUwNGJlNjEzYTdmMWM3NWE0OTQ5MDBkNi4uMjdkMzQw
MjU1ODU2NDQwZjJhMTgxOGQzMmY3ZmEyMmYyOTljNzk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCkBAIC0xODIsOSArMTgyLDkgQEAgdm9pZCBS
ZWNvcmRlckltcGw6OnJlY29yZERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VJZGVudGkKICAgICBhcHBlbmQ8RHJhd05hdGl2ZUltYWdlPihpbWFnZUlkZW50
aWZpZXIsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogfQogCi12b2lk
IFJlY29yZGVySW1wbDo6cmVjb3JkRHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxv
YXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3Zv
aWQgUmVjb3JkZXJJbXBsOjpyZWNvcmREcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgYXBwZW5kPERyYXdQYXR0ZXJuPihp
bWFnZUlkZW50aWZpZXIsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0s
IHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKKyAgICBhcHBlbmQ8RHJhd1BhdHRlcm4+KGltYWdl
SWRlbnRpZmllciwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5n
LCBvcHRpb25zKTsKIH0KIAogdm9pZCBSZWNvcmRlckltcGw6OnJlY29yZEJlZ2luVHJhbnNwYXJl
bmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXJJbXBsLmgKaW5kZXggMGY5ZGZhOGE0NGMyODQ5MWFjODBlNDk1YTI2ZjVhZWQwY2FhYThl
Yi4uZjc2NDNkNjZjODZjMzFmZGFiNDIzZWVhZDMyYzk0ODkxMzU3MjYwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBo
QnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwg
Y29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlKSBmaW5hbDsK
ICAgICB2b2lkIHJlY29yZERyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSBmaW5hbDsKICAgICB2b2lkIHJlY29yZERyYXdOYXRpdmVJbWFnZShSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwotICAgIHZvaWQgcmVj
b3JkRHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0geyB9KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0geyB9KSBmaW5hbDsKICAgICB2b2lkIHJlY29yZEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxv
YXQpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSBmaW5hbDsK
ICAgICB2b2lkIHJlY29yZERyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAppbmRleCA2MmVlM2JiYjRh
Y2Q1OTUzNDA0MTJlNTYxNTU0MzY3ZjJkNmZkN2ExLi44ZmYxOWQwMDM1NGNkYmVkZTNhNWJhMWFm
NzU4Y2ZmMDIzYTI1YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIu
Y3BwCkBAIC02OCw2ICs2OCwxOCBAQCBpbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseU5hdGl2ZUltYWdlSXRlbShHcgogICAgIHJldHVy
biByZXNvdXJjZUlkZW50aWZpZXI7CiB9CiAKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBhcHBseVNvdXJj
ZUltYWdlSXRlbShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlc291cmNlSGVhcCYg
cmVzb3VyY2VIZWFwLCBJdGVtSGFuZGxlIGl0ZW0pCit7CisgICAgYXV0byYgc291cmNlSW1hZ2VJ
dGVtID0gaXRlbS5nZXQ8VD4oKTsKKyAgICBhdXRvIHJlc291cmNlSWRlbnRpZmllciA9IHNvdXJj
ZUltYWdlSXRlbS5pbWFnZUlkZW50aWZpZXIoKTsKKyAgICBpZiAoYXV0byBzb3VyY2VJbWFnZSA9
IHJlc291cmNlSGVhcC5nZXRTb3VyY2VJbWFnZShyZXNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAg
ICAgIHNvdXJjZUltYWdlSXRlbS5hcHBseShjb250ZXh0LCAqc291cmNlSW1hZ2UpOworICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKyAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlm
aWVyOworfQorCiBpbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyPiBhcHBseVNldFN0YXRlSXRlbShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFJlc291cmNlSGVhcCYgcmVzb3VyY2VIZWFwLCBJdGVtSGFuZGxlIGl0ZW0pCiB7CiAgICAg
YXV0byYgc2V0U3RhdGVJdGVtID0gaXRlbS5nZXQ8U2V0U3RhdGU+KCk7CkBAIC0xMzQsNyArMTQ2
LDcgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8U3RvcFJlcGxheVJlYXNvbj4sIHN0ZDo6b3B0
aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGkKICAgICB9CiAKICAgICBpZiAoaXRlbS5pczxE
cmF3UGF0dGVybj4oKSkgewotICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJ
ZGVudGlmaWVyID0gYXBwbHlOYXRpdmVJbWFnZUl0ZW08RHJhd1BhdHRlcm4+KG1fY29udGV4dCwg
bV9yZXNvdXJjZUhlYXAsIGl0ZW0pKQorICAgICAgICBpZiAoYXV0byBtaXNzaW5nQ2FjaGVkUmVz
b3VyY2VJZGVudGlmaWVyID0gYXBwbHlTb3VyY2VJbWFnZUl0ZW08RHJhd1BhdHRlcm4+KG1fY29u
dGV4dCwgbV9yZXNvdXJjZUhlYXAsIGl0ZW0pKQogICAgICAgICAgICAgcmV0dXJuIHsgU3RvcFJl
cGxheVJlYXNvbjo6TWlzc2luZ0NhY2hlZFJlc291cmNlLCBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRS
ZXNvdXJjZUlkZW50aWZpZXIpIH07CiAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgc3Rk
OjpudWxsb3B0IH07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDNm
MTMzZjNlMDg3ZTI5NzIzMjY0Mzc2NmEyY2FkMzFiMTdkZmZiZWEuLjc4NDY0NjNkOTkwYmFkYzMw
YWY5ODViZTA1N2VmMDYyYjBjMGY4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAK
QEAgLTI4MywyMiArMjgzLDIyIEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJh
d05hdGl2ZUltYWdlV2l0aFF1YWxpZmllZElkZW50aWZpZXIoUXVhbGlmaWVkCiAgICAgaGFuZGxl
SXRlbShEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlKGltYWdlSWRlbnRpZmllci5vYmplY3Qo
KSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyksICppbWFnZSk7CiB9CiAK
LXZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUm
IHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIC8v
IEltbWVkaWF0ZWx5IHR1cm4gdGhlIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciAod2hpY2gg
aXMgZXJyb3ItcHJvbmUpIHRvIGEgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LAogICAgIC8vIGFuZCB1c2UgYSBoZWxwZXIgZnVuY3Rpb24gdG8gbWFrZSBzdXJlIHRoYXQgZG9u
J3QgYWNjaWRlbnRhbGx5IHVzZSB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIChiZWNh
dXNlIHRoZSBoZWxwZXIgZnVuY3Rpb24gY2FuJ3Qgc2VlIGl0KS4KLSAgICBkcmF3UGF0dGVybldp
dGhRdWFsaWZpZWRJZGVudGlmaWVyKHsgaW1hZ2VJZGVudGlmaWVyLCBtX3dlYlByb2Nlc3NJZGVu
dGlmaWVyIH0sIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNl
LCBzcGFjaW5nLCBvcHRpb25zKTsKKyAgICBkcmF3UGF0dGVybldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKHsgaW1hZ2VJZGVudGlmaWVyLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyIH0sIGRlc3RSZWN0
LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiB9CiAKLXZv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm5XaXRoUXVhbGlmaWVkSWRl
bnRpZmllcihRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlm
aWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpkcmF3UGF0dGVybldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFF1YWxpZmll
ZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRT
aXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAg
ICBSZWZQdHIgaW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkTmF0aXZlSW1hZ2UoaW1hZ2VJ
ZGVudGlmaWVyKTsKLSAgICBpZiAoIWltYWdlKSB7CisgICAgYXV0byBzb3VyY2VJbWFnZSA9IHJl
c291cmNlQ2FjaGUoKS5jYWNoZWRTb3VyY2VJbWFnZShpbWFnZUlkZW50aWZpZXIpOworICAgIGlm
ICghc291cmNlSW1hZ2UpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3UGF0dGVy
bihpbWFnZUlkZW50aWZpZXIub2JqZWN0KCksIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHRpbGVSZWN0
LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKSwgKmltYWdlKTsKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3UGF0dGVybihpbWFnZUlkZW50aWZpZXIub2JqZWN0KCks
IGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyks
ICpzb3VyY2VJbWFnZSk7CiB9CiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
LmgKaW5kZXggMGNmZWJjODZmNTE0ZWZlN2VmYzRhMzc0YTYzODdmNjkyZDJhMDJkNS4uMjlhMjIw
YmJhMWQ3YWMxOThhNjgyM2ZlYmRmZDVlMjdjN2M4NjRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdGaWx0ZXJlZElt
YWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyPiBzb3VyY2VJbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc291
cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVyZW5jZSk7CiAgICAgdm9pZCBkcmF3SW1hZ2VC
dWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGlu
Z09wdGlvbnMmKTsKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9ucyYpOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNw
YWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CisgICAgdm9pZCBk
cmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogICAgIHZvaWQgYmVn
aW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsKICAgICB2b2lkIGVuZFRyYW5zcGFy
ZW5jeUxheWVyKCk7CiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBmbG9hdCBib3JkZXJUaGlja25lc3MpOwpAQCAtMTM1LDcgKzEzNSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkcmF3R2x5cGhzV2l0aFF1YWxpZmllZElkZW50aWZpZXIoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRyYXdHbHlwaHMmJiwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IGZvbnRJZGVudGlmaWVyKTsKICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJ
ZGVudGlmaWVyKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZl
cklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zJik7CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2VXaXRoUXVhbGlmaWVkSWRl
bnRpZmllcihRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwotICAgIHZvaWQgZHJhd1BhdHRl
cm5XaXRoUXVhbGlmaWVkSWRlbnRpZmllcihRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKyAgICB2b2lkIGRyYXdQYXR0
ZXJuV2l0aFF1YWxpZmllZElkZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZm
aW5lVHJhbnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMm
KTsKIAogICAgIFJlbW90ZVJlc291cmNlQ2FjaGUmIHJlc291cmNlQ2FjaGUoKTsKICAgICBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmIGRyYXdpbmdDb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCmluZGV4IDZjZGM4MjdkYWMxMmE3NWRlNTM1MTMw
MmQzOGMwMjM4ZGIwNjkwOGQuLjk1ZGJlOGRkNTVjMmFmZjJkZjAwNTgwMzg2M2IwNzhlOWI1OWQ1
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCkBAIC00
OCw3ICs0OCw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgTm90UmVm
Q291bnRlZCBTdHJlYW0gewogICAgIERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBzb3VyY2VJbWFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QsIElQQzo6RmlsdGVyUmVm
ZXJlbmNlIGZpbHRlcikKICAgICBEcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0
IGRlc3RpbmF0aW9uUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHNyY1JlY3QsIHN0cnVjdCBXZWJD
b3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQogICAgIERyYXdOYXRpdmVJbWFnZShX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpGbG9hdFNpemUgaW1hZ2VTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdFJlY3QsIFdl
YkNvcmU6OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnMgb3B0aW9ucykKLSAgICBEcmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFNpemUgaW1hZ2VTaXpl
LCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0aWxlUmVj
dCwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSwgV2ViQ29yZTo6RmxvYXRQb2lu
dCBwaGFzZSwgV2ViQ29yZTo6RmxvYXRTaXplIHNwYWNpbmcsIHN0cnVjdCBXZWJDb3JlOjpJbWFn
ZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQorICAgIERyYXdQYXR0ZXJuKFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVj
dCBkZXN0UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRpbGVSZWN0LCBXZWJDb3JlOjpBZmZpbmVU
cmFuc2Zvcm0gdHJhbnNmb3JtLCBXZWJDb3JlOjpGbG9hdFBvaW50IHBoYXNlLCBXZWJDb3JlOjpG
bG9hdFNpemUgc3BhY2luZywgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9w
dGlvbnMpCiAgICAgQmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogICAgIEVu
ZFRyYW5zcGFyZW5jeUxheWVyKCkKICAgICBEcmF3UmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVj
dCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuY3BwCmluZGV4IDk4NjU3MTllYTc3MTVlYWZhZWM0NzdiYmNhMTVjMTE4NTVh
ZTY4NzMuLjg3YWFhMGFlMjE5MGU5MjU1YTUzNGRjYmE1MWExMDc2ZTgwYjY0OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKQEAgLTIwMyw5ICsyMDMs
OSBAQCB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd05hdGl2
ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbgogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdOYXRpdmVJbWFnZShpbWFnZUlkZW50aWZpZXIsIGltYWdl
U2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpKTsKIH0KIAotdm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd1BhdHRl
cm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9h
dFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewot
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdQYXR0ZXJu
KGltYWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9y
bSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3UGF0dGVybihpbWFnZUlkZW50aWZpZXIsIGRlc3RSZWN0
LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucykpOwogfQogCiB2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQmVnaW5UcmFuc3BhcmVu
Y3lMYXllcihmbG9hdCBvcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5LmgKaW5kZXggN2JlNzQ0YjM0MmE2NTQ2NTkyZTczNDEyZGExMGQxYjQzZWQ2OThlNi4u
YzY3OGY4ODMyYmVmNWMyY2E3MjA0ZjQ2OGNiNzFhMmU0YTk2YmY5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCkBAIC05MSw3ICs5MSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNvbnN0IFdlYkNvcmU6OkZvbnQmLCBjb25zdCBX
ZWJDb3JlOjpHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgV2ViQ29yZTo6R2x5cGhCdWZmZXJBZHZh
bmNlKiwgdW5zaWduZWQgY291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2FsQW5j
aG9yLCBXZWJDb3JlOjpGb250U21vb3RoaW5nTW9kZSkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRE
cmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CiAgICAgdm9pZCByZWNvcmRE
cmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdl
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKLSAgICB2
b2lkIHJlY29yZERyYXdQYXR0ZXJuKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJlY3QsIGNv
bnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6
OkltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3
UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdl
YkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAgICAgdm9pZCByZWNv
cmRCZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0KSBmaW5hbDsKICAgICB2b2lkIHJlY29yZEVu
ZFRyYW5zcGFyZW5jeUxheWVyKCkgZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3UmVjdChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452018</attachid>
            <date>2022-02-15 07:09:12 -0800</date>
            <delta_ts>2022-02-15 07:18:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236638-20220215070911.patch</filename>
            <type>text/plain</type>
            <size>45269</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwN2Q3YTU4NDYyYmFi
ZGRhZDlmNjE0MzBmMTIxMWJkZTU3YzlkNy4uMjNkMjY3NGVhYTE4NDE5MWE4ODlmZmQwZWYwMDg2
OWQzNThhMDQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIyLTAyLTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
Um91dGUgdGhlIGNhbGwgdG8gSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKCkgdGhyb3VnaCBHcmFw
aGljc0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjYzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgd2lsbCBhbGxvdyByZWNvcmRpbmcgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKCkg
dmlhIHRoZSBzdXBlciBjbGFzc2VzCisgICAgICAgIERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGwg
YW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS4gU28gYW5vdGhlcgorICAgICAgICB2
ZXJzaW9uIG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oKSB3aWxsIGJlIGFkZGVkIHdo
aWNoIHRha2VzCisgICAgICAgIEltYWdlQnVmZmVyIGFzIGFuIGFyZ3VtZW50LgorCisgICAgICAg
IFRvIG1ha2UgdGhlIGRpc3BsYXkgbGlzdCBpdGVtIERyYXdQYXR0ZXJuIGJlIHN1aXRhYmxlIGZv
ciByZWNvcmRpbmcgYm90aAorICAgICAgICB2ZXJzaW9ucyBvZiBkcmF3UGF0dGVybigpLCB3ZSBu
ZWVkIHRvIHJlbW92ZSB0aGUgYXJndW1lbnQgJ2ltYWdlU2l6ZScKKyAgICAgICAgZnJvbSBHcmFw
aGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKCkgc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNh
bGxlZCBmcm9tCisgICAgICAgIEltYWdlOjpkcmF3UGF0dGVybigpIGFuZCBpdCBwYXNzZXMgaW1h
Z2VTaXplID0gSW1hZ2U6OnNpemUoKS4gU28gaW1hZ2VTaXplCisgICAgICAgIGNhbiBiZSBjYWxj
dWxhdGVkIGZyb20gdGhlIE5hdGl2ZUltYWdlOjpzaXplKCkuCisKKyAgICAgICAgVGhlIERpc3Bs
YXlMaXN0OjpSZXBsYXllciBhbmQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBoYXZlIHRvIGNv
bnNpZGVyIAorICAgICAgICB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mIHRoZSBE
cmF3UGF0dGVybiBjYW4gYmUgdGhlIGlkZW50aWZpZXIKKyAgICAgICAgb2YgYSBOYXRpdmVJbWFn
ZSBvciBhbiBJbWFnZUJ1ZmZlci4gRHJhd1BhdHRlcm46OmFwcGx5KCkgbmVlZHMgdG8gdGFrZSBh
CisgICAgICAgIFNvdXJjZUltYWdlIGFuZCBpdCBjYW4gbWFrZSB0aGUgZGVjaXNpb24gd2hldGhl
ciB0byBjYWxsIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICB2ZXJzaW9uIG9yIHRoZSBJbWFnZUJ1
ZmZlciB2ZXJzaW9uIG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oKS4KKworICAgICAg
ICAqIGh0bWwvQ3VzdG9tUGFpbnRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21Q
YWludEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVy
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9O
YW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWRJbWFn
ZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTnVsbEdyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dENhaXJvOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRDRzo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd1BhdHRlcm46OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd1BhdHRlcm46OmltYWdlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm46OmltYWdlU2l6ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6cmVjb3JkRHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpyZWNvcmREcmF3UGF0dGVybik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJ
bXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpyZWNv
cmREcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OmFwcGx5U291cmNlSW1hZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZXBsYXllcjo6YXBwbHlJdGVtKToKKwogMjAyMi0wMi0xNCAgRGFuIEdsYXN0b25idXJ5ICA8ZGpn
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFBERkRvY3VtZW50LmNwcC9oIGluIGNvcnJlY3Qg
cG9zaXRpb24gaW4gV2ViQ29yZS54Y29kZXByb2oKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTY5ZmVlZTZlZWI5NDlj
OWE1NGNmMTUxZGQ1YTNmYmQxZWU5NjUyMC4uZjA3ZWZkNjJmYTEzYzg4NGJiYzM2OTMwNjliYjhm
NTA5OTUyNTZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMi0wMi0xNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIFJv
dXRlIHRoZSBjYWxsIHRvIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybigpIHRocm91Z2ggR3JhcGhp
Y3NDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzY2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdQYXR0ZXJuKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm5X
aXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJh
d1BhdHRlcm4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0ZXJuKToKKwogMjAyMi0wMi0xNCAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIFJl
bW90ZUltYWdlQnVmZmVyUHJveHkgc2hvdWxkIG5vdCBzaW5rIGl0c2VsZiB0byBhbiBJbWFnZSBv
ciBhIE5hdGl2ZUltYWdlIHRob3VnaCBpdHMgYmFja2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9DdXN0b21QYWludEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3Vz
dG9tUGFpbnRJbWFnZS5jcHAKaW5kZXggZmI4YWU2YmZkNzFmM2VmNjFhMzQwZTI3MDAxNDAzOGUy
NzY2OTcwZi4uYjVjMWJmM2RjNmQ0Y2U2Y2EyY2MzOGZmOGQ4ZDZhZjU3ODhkYzE5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludEltYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50SW1hZ2UuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAg
dm9pZCBDdXN0b21QYWludEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RD
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QKICAgICBpZiAoZGVzdENvbnRleHQuZHJhd0x1bWluYW5j
ZU1hc2soKSkKICAgICAgICAgYnVmZmVyLT5jb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiAKLSAg
ICBidWZmZXItPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNS
ZWN0LCBhZGp1c3RlZFBhdHRlcm5DVE0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKKyAgICBk
ZXN0Q29udGV4dC5kcmF3UGF0dGVybigqYnVmZmVyLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0
LCBhZGp1c3RlZFBhdHRlcm5DVE0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICBkZXN0
Q29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxzZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dC5jcHAKaW5kZXggYmU2Y2VjNzgyNzc3OTRkZjU3ZDRmNWZjZjdmNGY3ZDJhNmUwM2Fj
My4uOWYwNmJkMGRjYjU0YTI4ZTM1MDRkZmJhNTI4YjU2N2ViYjg4OTA4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dC5jcHAKQEAgLTI2MywxMCArMjYzLDEwIEBAIHZvaWQgQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFnZSwg
Y29uc3QKICAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG5hdGl2ZUltYWdl
LCBzZWxmU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogfQogCi12b2lkIEJpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFn
ZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEJpZnVyY2F0
ZWRHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKIHsKLSAgICBtX3ByaW1hcnlDb250ZXh0LmRyYXdQYXR0ZXJuKG5hdGl2ZUlt
YWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHNwYWNpbmcsIG9wdGlvbnMpOwotICAgIG1fc2Vjb25kYXJ5Q29udGV4dC5kcmF3UGF0dGVy
bihuYXRpdmVJbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFu
c2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKKyAgICBtX3ByaW1hcnlDb250ZXh0LmRy
YXdQYXR0ZXJuKG5hdGl2ZUltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zv
cm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKKyAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJh
d1BhdHRlcm4obmF0aXZlSW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9y
bSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogfQogCiBJbWFnZURyYXdSZXN1bHQgQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oCmluZGV4IDJkYjg1
MDE5NGNkODFjYzk0NzA0NzMxZmEyZDY1MTIwNDY5OTYxOGQuLjc3YjcyYWQzNjM4M2NhNzBkYzlj
NmI4NDI4ZGU4M2JjOWNmNzE3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgKQEAgLTk4LDcg
Kzk4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWl0ZXJMaW1pdChmbG9hdCkgZmluYWw7CiAK
ICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYg
c2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKLSAgICB2b2lk
IGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0geyB9KSBmaW5hbDsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IH0pIGZpbmFsOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSkgZmlu
YWw7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZUZvckNhbnZhcyhJbWFnZSYsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjYW52YXNDb2xvclNw
YWNlKSBmaW5hbDsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNv
bnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNw
cAppbmRleCA2MWEzODMyMzNjYjZlYjFhOTRlOTFmMWZmZTQ3N2YyY2NkZjE1MTE3Li5iYjRkYWMw
MTljNWI5ZTEzYjEzN2FlNjk0ZTRiZjZiMjc2YmZjYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
Y3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJh
d1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFIKICAgICBkcmF3
Q3Jvc3NmYWRlKGdyYXBoaWNzQ29udGV4dCk7CiAKICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZm
ZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4
dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9w
dGlvbnMpOworICAgIGNvbnRleHQuZHJhd1BhdHRlcm4oKmltYWdlQnVmZmVyLCBkc3RSZWN0LCBz
cmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiB9CiAK
IHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAppbmRleCA1MTkzYTY2YWU5OGJiMzE0ZmRiM2RhYjcyMGYyNWI1Yjc5YzU1YjYwLi4z
YzZjMTAwMWFkOGQyMGZmMGEzYjEyYWZjNGFjZmQ2OWRlZDQxYzExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTcz
NCw2ICs3MzQsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSwgY29uc3QgRmwKICAgICBzY2FsZShmaWx0ZXIu
ZmlsdGVyU2NhbGUoKSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybihJ
bWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgaW1hZ2UuZHJhd1BhdHRlcm4o
KnRoaXMsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNp
bmcsIG9wdGlvbnMpOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcFJvdW5kZWRSZWN0
KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QpCiB7CiAgICAgUGF0aCBwYXRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRl
eCA4M2NlNGQyZGZlYzFkZDRhMjE2ZGJmMDlkMDQxNTkyNGNkNTM2MzNiLi5lZWIxZDg0YmY0ZTdi
YmRlY2UyNDQ5MTJlMGVkNjQ2MDEyNWUxODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtNDQ1LDcgKzQ0NSw4IEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
SW1hZ2VSZWN0LCBGaWx0ZXImLCBGaWx0ZXJSZXN1bHRzJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
PSB7IH0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiA9IHsgfSkgPSAwOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVy
bihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxheWVyJiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZS5jcHAKaW5kZXggZTMyYTM2YzYwNzYxOTIxNjhjNmEzNzkzMThmNzhhZTE3
ODljNDgyZS4uZDJhOTc2ZmM2NmUxNzZhM2U1ZDBlOWEwOWExYmMyYzgyY2QxYzQ3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtMTQ3LDcgKzE0Nyw3
IEBAIHZvaWQgSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QKICAgICBpZiAoIXRpbGVJbWFnZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgY3R4dC5kcmF3UGF0dGVybigqdGlsZUltYWdlLCBzaXplKCksIGRlc3RS
ZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMp
OworICAgIGN0eHQuZHJhd1BhdHRlcm4oKnRpbGVJbWFnZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAKICAgICBpZiAoaW1h
Z2VPYnNlcnZlcigpKQogICAgICAgICBpbWFnZU9ic2VydmVyKCktPmRpZERyYXcoKnRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFtZWRJbWFnZUdl
bmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hbWVk
SW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAKaW5kZXggMzcwYzdkYzI4OTZmMzk2MmNiM2VkNTA5ODJk
YWI2OTk3NGY2MzJjNC4uY2E3MzU5MWQ4MzdlNmJlMTRjNWRhMjU3ZTM3MWY1ZjIyNThjZjE4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFtZWRJbWFnZUdl
bmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9O
YW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgTmFtZWRJ
bWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0CiAgICAgVGhlbWU6OnNpbmdsZXRvbigpLmRyYXdOYW1lZEltYWdlKG1fbmFt
ZSwgZ3JhcGhpY3NDb250ZXh0LCBzaXplKCkpOwogCiAgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVm
ZmVyIGludG8gdGhlIGNvbnRleHQuCi0gICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRl
eHQsIGRzdFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKKyAgICBjb250ZXh0LmRyYXdQYXR0ZXJuKCppbWFnZUJ1ZmZlciwgZHN0UmVjdCwg
c3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgVU5VU0VEX1BBUkFNKGRzdFJlY3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTnVsbEdyYXBo
aWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTnVsbEdyYXBo
aWNzQ29udGV4dC5oCmluZGV4IGZhZjdlZTk1NzE5OTNmNGRhMDNmODE2NmE1ZTBmNGVjMGMwYzYz
M2QuLmQxODBlNTE5MDJlMmUyNzg5ZDA0NTY1ZDA3YWRmOTZkZmY1ZjJkYjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL051bGxHcmFwaGljc0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OdWxsR3JhcGhpY3NDb250ZXh0
LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdl
KE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbCB7IH0KIAotICAg
IHZvaWQgZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25z
dCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikgZmluYWwgeyB9CiAKICAgICBJbnRSZWN0IGNsaXBCb3VuZHMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB7IH07IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDE2NWM2
ZGJmZTIwMjIzMTczOTNmZTU0NjdiOTIyMDI2YjUyYWE4OWIuLmMzMjMwNDQ1MzUxYjAzZjJhYTg3
MzZhZWUyYmNlNzhiYzQzNjFmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAg
LTM5NSwxMyArMzk1LDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Q2Fpcm86OmZpbGxSZWN0V2l0
aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QKICAgICBDYWlybzo6Zmls
bFJlY3RXaXRoUm91bmRlZEhvbGUoKnRoaXMsIHJlY3QsIHJvdW5kZWRIb2xlUmVjdCwgQ2Fpcm86
OkZpbGxTb3VyY2Uoc3RhdGUpLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHRDYWlybzo6ZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmIG5hdGl2ZUlt
YWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgR3JhcGhp
Y3NDb250ZXh0Q2Fpcm86OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKIHsKICAgICBpZiAoIXBhdHRlcm5UcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFVOVVNFRF9QQVJBTShzcGFjaW5nKTsKLSAgICBDYWlybzo6
ZHJhd1BhdHRlcm4oKnRoaXMsIG5hdGl2ZUltYWdlLnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwgSW50
U2l6ZShpbWFnZVNpemUpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBo
YXNlLCBvcHRpb25zKTsKKyAgICBDYWlybzo6ZHJhd1BhdHRlcm4oKnRoaXMsIG5hdGl2ZUltYWdl
LnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwgbmF0aXZlSW1hZ2Uuc2l6ZSgpLCBkZXN0UmVjdCwgdGls
ZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBvcHRpb25zKTsKIH0KIAogUmVuZGVyaW5n
TW9kZSBHcmFwaGljc0NvbnRleHRDYWlybzo6cmVuZGVyaW5nTW9kZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8uaAppbmRleCA0YjMzNTZjMzU1ZTQ4MGM4MDAyOTQ2N2UxMWQ3ZDAzODhj
ZTVlZWMxLi41NjQ2MWMxNTlhNTgzYzg5YzYxZThmMDJlNGUwYmVlN2IwNTkzMmVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZHJhd0dseXBocyhjb25zdCBGb250JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IEds
eXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYs
IEZvbnRTbW9vdGhpbmdNb2RlKSBmaW5hbDsKIAogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKE5h
dGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKLSAgICB2b2lkIGRy
YXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKKyAgICB2b2lkIGRy
YXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIGZpbmFsOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBm
bG9hdCkgZmluYWw7CiAgICAgdm9pZCBkcmF3TGluZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3Qg
RmxvYXRQb2ludCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGRmYTE3NGE1M2MyZTc2
MDM1NzYyYjQzNGYwZjE5ZGIxNTY2MTg0MTMuLmQxMTc4ZjhhZGQ4MTVhYjk4MzA3NmZlODc3NzIz
ZmIxYzk0NWRlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTM4NCwxMiArMzg0LDEzIEBAIHN0
YXRpYyB2b2lkIHBhdHRlcm5SZWxlYXNlQ2FsbGJhY2sodm9pZCogaW5mbykKICAgICBjYWxsT25N
YWluVGhyZWFkKFtpbWFnZSA9IGFkb3B0Q0Yoc3RhdGljX2Nhc3Q8Q0dJbWFnZVJlZj4oaW5mbykp
XSB7IH0pOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dENHOjpkcmF3UGF0dGVybihOYXRpdmVJ
bWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQordm9pZCBHcmFwaGljc0NvbnRleHRDRzo6ZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmIG5hdGl2
ZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmICghcGF0dGVyblRyYW5zZm9ybS5pc0ludmVy
dGlibGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBpbWFnZSA9IG5hdGl2ZUltYWdl
LnBsYXRmb3JtSW1hZ2UoKTsKKyAgICBhdXRvIGltYWdlU2l6ZSA9IG5hdGl2ZUltYWdlLnNpemUo
KTsKIAogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCk7CiAgICAg
Q0dDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmgKaW5k
ZXggNWYxYWEyNGM2NjVlNjJjNWFiZTg5YTRkOWFlOTE1NzAzZmZkNzBiOS4uNDY4YTQ0YmFhODZl
ZTUyNjE5ZDI1NWY5Mzk0M2E5NzU1YmFjOWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oCkBAIC0xMzUsNyAr
MTM1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWl0ZXJMaW1pdChmbG9hdCkgZmluYWw7CiAK
ICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYg
c2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKLSAgICB2b2lk
IGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0geyB9KSBmaW5hbDsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IH0pIGZpbmFsOwogCiAgICAgdXNpbmcgR3JhcGhpY3NDb250ZXh0OjpzY2FsZTsKICAgICB2b2lk
IHNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuY3BwCmluZGV4IGI5MzhiZmQyNjgxNGQwYzFjYmM2NDE0OWYxNGM5OTRkM2M0YTM3YzEu
LjNmMzc4MzVkZTY5MjQyMDE0Y2U5Y2IwNmVmODdhOWQxMGVkYjUzOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTM5OCw5ICszOTgsOCBAQCBzdGF0aWMgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd05hdGl2ZUltYWdlJiBp
dGVtKQogICAgIHJldHVybiB0czsKIH0KIAotRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYg
aW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKQorRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBt
X2ltYWdlSWRlbnRpZmllcihpbWFnZUlkZW50aWZpZXIpCi0gICAgLCBtX2ltYWdlU2l6ZShpbWFn
ZVNpemUpCiAgICAgLCBtX2Rlc3RpbmF0aW9uKGRlc3RSZWN0KQogICAgICwgbV90aWxlUmVjdCh0
aWxlUmVjdCkKICAgICAsIG1fcGF0dGVyblRyYW5zZm9ybShwYXR0ZXJuVHJhbnNmb3JtKQpAQCAt
NDE1LDkgKzQxNCwxOSBAQCBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIERyYXdQYXR0ZXJu
OjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIERyYXdQYXR0ZXJuOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IE5hdGl2ZUltYWdlJiBpbWFnZSkgY29uc3QKK3ZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgU291cmNlSW1hZ2UmIHNvdXJjZUltYWdlKSBjb25zdAogewot
ICAgIGNvbnRleHQuZHJhd1BhdHRlcm4oaW1hZ2UsIG1faW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9u
LCBtX3RpbGVSZWN0LCBtX3BhdHRlcm5UcmFuc2Zvcm0sIG1fcGhhc2UsIG1fc3BhY2luZywgbV9v
cHRpb25zKTsKKyAgICBpZiAoYXV0byBpbWFnZSA9IHNvdXJjZUltYWdlLm5hdGl2ZUltYWdlSWZF
eGlzdHMoKSkgeworICAgICAgICBjb250ZXh0LmRyYXdQYXR0ZXJuKCppbWFnZSwgbV9kZXN0aW5h
dGlvbiwgbV90aWxlUmVjdCwgbV9wYXR0ZXJuVHJhbnNmb3JtLCBtX3BoYXNlLCBtX3NwYWNpbmcs
IG1fb3B0aW9ucyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoYXV0byBpbWFn
ZUJ1ZmZlciA9IHNvdXJjZUltYWdlLmltYWdlQnVmZmVySWZFeGlzdHMoKSkgeworICAgICAgICBj
b250ZXh0LmRyYXdQYXR0ZXJuKCppbWFnZUJ1ZmZlciwgbV9kZXN0aW5hdGlvbiwgbV90aWxlUmVj
dCwgbV9wYXR0ZXJuVHJhbnNmb3JtLCBtX3BoYXNlLCBtX3NwYWNpbmcsIG1fb3B0aW9ucyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAog
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdQ
YXR0ZXJuJiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggMDZiMWFl
NjQ5MzY2ZjgyNDdlMTYwMTA5YmQwZGQ2NDk0MWQyNzIwOC4uZjUxZDFmOGY5NDFhYWYzNGE0ZTg5
ZjU4ZDVkNTE5NGNhOTY2MzM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBA
IC05OTksMTAgKzk5OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJ
bmxpbmVJdGVtID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRl
bSA9IHRydWU7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3UGF0dGVybihSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5n
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIFdFQkNPUkVfRVhQT1JU
IERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAogICAgIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlSWRl
bnRpZmllcjsgfQotICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX2lt
YWdlU2l6ZTsgfQogICAgIEZsb2F0UmVjdCBkZXN0UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVz
dGluYXRpb247IH0KICAgICBGbG9hdFJlY3QgdGlsZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Rp
bGVSZWN0OyB9CiAgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtKCkg
Y29uc3QgeyByZXR1cm4gbV9wYXR0ZXJuVHJhbnNmb3JtOyB9CkBAIC0xMDEyLDE0ICsxMDExLDEz
IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlSWRl
bnRpZmllci5pc1ZhbGlkKCk7IH0KIAogICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQg
YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBh
cHBseShHcmFwaGljc0NvbnRleHQmLCBOYXRpdmVJbWFnZSYpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JiwgU291cmNlSW1hZ2UmKSBjb25zdDsK
IAogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJl
dHVybiBzdGQ6Om51bGxvcHQ7IH0KICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxC
b3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlv
bjsgfQogCiBwcml2YXRlOgogICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdl
SWRlbnRpZmllcjsKLSAgICBGbG9hdFNpemUgbV9pbWFnZVNpemU7CiAgICAgRmxvYXRSZWN0IG1f
ZGVzdGluYXRpb247CiAgICAgRmxvYXRSZWN0IG1fdGlsZVJlY3Q7CiAgICAgQWZmaW5lVHJhbnNm
b3JtIG1fcGF0dGVyblRyYW5zZm9ybTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmNwcAppbmRleCBjZTkyY2U1NTg3N2I0YmZkNzgyNDRkMGE0NGNjNTRlYmE1Yzg2MDYwLi40
YzdkZDhhNjMwZjg5NDA4YmVjMTAxZTJlYmRjNGVjYzkwY2Y4NGJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0yMDIsMTEgKzIwMiwyMyBAQCB2b2lkIFJl
Y29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgYwogICAgIHJlY29yZERyYXdOYXRpdmVJbWFnZShpbWFnZS5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0
aW9ucyk7CiB9CiAKLXZvaWQgUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBpbWFn
ZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFJlY29yZGVy
OjpkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXBw
ZW5kU3RhdGVDaGFuZ2VJdGVtSWZOZWNlc3NhcnkoKTsKICAgICByZWNvcmRSZXNvdXJjZVVzZShp
bWFnZSk7Ci0gICAgcmVjb3JkRHJhd1BhdHRlcm4oaW1hZ2UucmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKCksIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3Jt
LCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CisgICAgcmVjb3JkRHJhd1BhdHRlcm4oaW1hZ2Uu
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOworfQorCit2b2lkIFJlY29yZGVy
OjpkcmF3UGF0dGVybihJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7Cisg
ICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtSWZOZWNlc3NhcnkoKTsKKworICAgIGlmICghcmVjb3Jk
UmVzb3VyY2VVc2UoaW1hZ2VCdWZmZXIpKSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d1BhdHRlcm4oaW1hZ2VCdWZmZXIsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9y
bSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgcmVjb3JkRHJhd1BhdHRlcm4oaW1hZ2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKCksIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNp
bmcsIG9wdGlvbnMpOwogfQogCiB2b2lkIFJlY29yZGVyOjpzYXZlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDZhYTEzZDhkMDA2Y2RmMjY3ZmE4ZWQ0MjM3ODJk
ODcyOTk3ZTI1YTMuLjNkMzgzNmZmM2Q1ZjdiZDZjODZkYjhkNzI5MGJlZDk1OTA3MmZkMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtODYsNyArODYsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29uc3QgRm9udCYs
IGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNp
Z25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdN
b2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZERyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJl
Y29yZERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVu
dGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkRHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHJlY29yZERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHJlY29yZEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcmVjb3JkRW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHJlY29yZERyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KSA9IDA7CkBAIC0y
MjIsNyArMjIyLDggQEAgcHJpdmF0ZToKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0lt
YWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmLCBj
b25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFs
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmLCBjb25z
dCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd1BhdHRlcm4oTmF0
aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZp
bmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2VCdWZmZXImLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRT
aXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBib3Jk
ZXJUaGlja25lc3MpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0xpbmUoY29u
c3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCmluZGV4IGMyOTE0OGUwNDM4MTFjNWVl
MDRiZTYxM2E3ZjFjNzVhNDk0OTAwZDYuLjI3ZDM0MDI1NTg1NjQ0MGYyYTE4MThkMzJmN2ZhMjJm
Mjk5Yzc5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBs
LmNwcApAQCAtMTgyLDkgKzE4Miw5IEBAIHZvaWQgUmVjb3JkZXJJbXBsOjpyZWNvcmREcmF3TmF0
aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpCiAgICAgYXBw
ZW5kPERyYXdOYXRpdmVJbWFnZT4oaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0
LCBzcmNSZWN0LCBvcHRpb25zKTsKIH0KIAotdm9pZCBSZWNvcmRlckltcGw6OnJlY29yZERyYXdQ
YXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFJlY29yZGVySW1wbDo6cmVjb3JkRHJh
d1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQogewotICAgIGFwcGVuZDxEcmF3UGF0dGVybj4oaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUs
IGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7
CisgICAgYXBwZW5kPERyYXdQYXR0ZXJuPihpbWFnZUlkZW50aWZpZXIsIGRlc3RSZWN0LCB0aWxl
UmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiB9CiAKIHZvaWQgUmVj
b3JkZXJJbXBsOjpyZWNvcmRCZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oCmluZGV4IDBmOWRmYThh
NDRjMjg0OTFhYzgwZTQ5NWEyNmY1YWVkMGNhYWE4ZWIuLmY3NjQzZDY2Yzg2YzMxZmRhYjQyM2Vl
YWQzMmM5NDg5MTM1NzI2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVySW1wbC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNvcmREcmF3
R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhC
dWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5j
aG9yLCBGb250U21vb3RoaW5nTW9kZSkgZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3SW1hZ2VC
dWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CiAgICAg
dm9pZCByZWNvcmREcmF3TmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlt
YWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBmaW5hbDsKLSAgICB2b2lkIHJlY29yZERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCBy
ZWNvcmREcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAgICAgdm9pZCBy
ZWNvcmRCZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0KSBmaW5hbDsKICAgICB2b2lkIHJlY29y
ZEVuZFRyYW5zcGFyZW5jeUxheWVyKCkgZmluYWw7CiAgICAgdm9pZCByZWNvcmREcmF3UmVjdChj
b25zdCBGbG9hdFJlY3QmLCBmbG9hdCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZXBsYXllci5jcHAKaW5kZXggNjJlZTNiYmI0YWNkNTk1MzQwNDEyZTU2MTU1NDM2N2YyZDZm
ZDdhMS4uOGZmMTlkMDAzNTRjZGJlZGUzYTViYTFhZjc1OGNmZjAyM2EyNWEyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApAQCAtNjgsNiArNjgsMTggQEAgaW5s
aW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBw
bHlOYXRpdmVJbWFnZUl0ZW0oR3IKICAgICByZXR1cm4gcmVzb3VyY2VJZGVudGlmaWVyOwogfQog
Cit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlTb3VyY2VJbWFnZUl0ZW0oR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNlSGVhcCwgSXRlbUhhbmRsZSBp
dGVtKQoreworICAgIGF1dG8mIHNvdXJjZUltYWdlSXRlbSA9IGl0ZW0uZ2V0PFQ+KCk7CisgICAg
YXV0byByZXNvdXJjZUlkZW50aWZpZXIgPSBzb3VyY2VJbWFnZUl0ZW0uaW1hZ2VJZGVudGlmaWVy
KCk7CisgICAgaWYgKGF1dG8gc291cmNlSW1hZ2UgPSByZXNvdXJjZUhlYXAuZ2V0U291cmNlSW1h
Z2UocmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAgICBzb3VyY2VJbWFnZUl0ZW0uYXBwbHko
Y29udGV4dCwgKnNvdXJjZUltYWdlKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9CisgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKK30KKwogaW5saW5lIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gYXBwbHlTZXRTdGF0ZUl0
ZW0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZUhlYXAmIHJlc291cmNl
SGVhcCwgSXRlbUhhbmRsZSBpdGVtKQogewogICAgIGF1dG8mIHNldFN0YXRlSXRlbSA9IGl0ZW0u
Z2V0PFNldFN0YXRlPigpOwpAQCAtMTM0LDcgKzE0Niw3IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlv
bmFsPFN0b3BSZXBsYXlSZWFzb24+LCBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpCiAgICAgfQogCiAgICAgaWYgKGl0ZW0uaXM8RHJhd1BhdHRlcm4+KCkpIHsKLSAgICAgICAg
aWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5TmF0aXZlSW1h
Z2VJdGVtPERyYXdQYXR0ZXJuPihtX2NvbnRleHQsIG1fcmVzb3VyY2VIZWFwLCBpdGVtKSkKKyAg
ICAgICAgaWYgKGF1dG8gbWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllciA9IGFwcGx5U291
cmNlSW1hZ2VJdGVtPERyYXdQYXR0ZXJuPihtX2NvbnRleHQsIG1fcmVzb3VyY2VIZWFwLCBpdGVt
KSkKICAgICAgICAgICAgIHJldHVybiB7IFN0b3BSZXBsYXlSZWFzb246Ok1pc3NpbmdDYWNoZWRS
ZXNvdXJjZSwgV1RGTW92ZShtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyKSB9OwogICAg
ICAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCAzZjEzM2YzZTA4N2UyOTcyMzI2NDM3NjZhMmNh
ZDMxYjE3ZGZmYmVhLi43ODQ2NDYzZDk5MGJhZGMzMGFmOTg1YmUwNTdlZjA2MmIwYzBmOGZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0yODMsMjIgKzI4MywyMiBAQCB2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZVdpdGhRdWFsaWZpZWRJ
ZGVudGlmaWVyKFF1YWxpZmllZAogICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdOYXRp
dmVJbWFnZShpbWFnZUlkZW50aWZpZXIub2JqZWN0KCksIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNy
Y1JlY3QsIG9wdGlvbnMpLCAqaW1hZ2UpOwogfQogCi12b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OmRyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50
aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRy
YW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OmRyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
bWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICAvLyBJbW1lZGlhdGVseSB0dXJuIHRoZSBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgKHdoaWNoIGlzIGVycm9yLXByb25lKSB0byBhIFF1YWxp
ZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwKICAgICAvLyBhbmQgdXNlIGEgaGVscGVy
IGZ1bmN0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IGRvbid0IGFjY2lkZW50YWxseSB1c2UgdGhlIFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciAoYmVjYXVzZSB0aGUgaGVscGVyIGZ1bmN0aW9uIGNh
bid0IHNlZSBpdCkuCi0gICAgZHJhd1BhdHRlcm5XaXRoUXVhbGlmaWVkSWRlbnRpZmllcih7IGlt
YWdlSWRlbnRpZmllciwgbV93ZWJQcm9jZXNzSWRlbnRpZmllciB9LCBpbWFnZVNpemUsIGRlc3RS
ZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CisgICAg
ZHJhd1BhdHRlcm5XaXRoUXVhbGlmaWVkSWRlbnRpZmllcih7IGltYWdlSWRlbnRpZmllciwgbV93
ZWJQcm9jZXNzSWRlbnRpZmllciB9LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhh
c2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogfQogCi12b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmRyYXdQYXR0ZXJuV2l0aFF1YWxpZmllZElkZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm5X
aXRoUXVhbGlmaWVkSWRlbnRpZmllcihRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgUmVmUHRyIGltYWdlID0gcmVzb3VyY2VD
YWNoZSgpLmNhY2hlZE5hdGl2ZUltYWdlKGltYWdlSWRlbnRpZmllcik7Ci0gICAgaWYgKCFpbWFn
ZSkgeworICAgIGF1dG8gc291cmNlSW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkU291cmNl
SW1hZ2UoaW1hZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZUltYWdlKSB7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaGFu
ZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm4oaW1hZ2VJZGVudGlmaWVyLm9iamVjdCgp
LCBpbWFnZVNpemUsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2lu
Zywgb3B0aW9ucyksICppbWFnZSk7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd1Bh
dHRlcm4oaW1hZ2VJZGVudGlmaWVyLm9iamVjdCgpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5z
Zm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpLCAqc291cmNlSW1hZ2UpOwogfQogCiB2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQg
b3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDBjZmViYzg2ZjUxNGVmZTdl
ZmM0YTM3NGE2Mzg3ZjY5MmQyYTAyZDUuLjI5YTIyMGJiYTFkN2FjMTk4YTY4MjNmZWJkZmQ1ZTI3
YzdjODY0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtODIsNyArODIsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgSVBDOjpGaWx0ZXJS
ZWZlcmVuY2UpOwogICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgZGVzdGluYXRpb25SZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CiAgICAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKLSAgICB2b2lkIGRyYXdQ
YXR0ZXJuKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpOworICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMmKTsKICAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQg
b3BhY2l0eSk7CiAgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpOwogICAgIHZvaWQgZHJh
d1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKTsK
QEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhd0dseXBoc1dpdGhRdWFs
aWZpZWRJZGVudGlmaWVyKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzJiYsIFF1YWxp
ZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBmb250SWRlbnRpZmllcik7CiAgICAgdm9p
ZCBkcmF3SW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihRdWFsaWZpZWRSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogICAgIHZvaWQg
ZHJhd05hdGl2ZUltYWdlV2l0aFF1YWxpZmllZElkZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGlu
Z09wdGlvbnMmKTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuV2l0aFF1YWxpZmllZElkZW50aWZpZXIo
UXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdl
YkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zJik7CisgICAgdm9pZCBkcmF3UGF0dGVybldpdGhRdWFsaWZpZWRJZGVudGlmaWVy
KFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CiAKICAgICBSZW1vdGVSZXNvdXJjZUNh
Y2hlJiByZXNvdXJjZUNhY2hlKCk7CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBkcmF3
aW5nQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5p
bgppbmRleCA2Y2RjODI3ZGFjMTJhNzVkZTUzNTEzMDJkMzhjMDIzOGRiMDY5MDhkLi45NWRiZThk
ZDU1YzJhZmYyZGYwMDU4MDM4NjNiMDc4ZTliNTlkNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAtNDgsNyArNDgsNyBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcj4gc291cmNlSW1hZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3Qg
c291cmNlSW1hZ2VSZWN0LCBJUEM6OkZpbHRlclJlZmVyZW5jZSBmaWx0ZXIpCiAgICAgRHJhd0lt
YWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZl
cklkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvblJlY3QsIFdlYkNvcmU6
OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMg
b3B0aW9ucykKICAgICBEcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwg
V2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3JjUmVjdCwg
c3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCi0gICAgRHJhd1Bh
dHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RS
ZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGlsZVJlY3QsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm0sIFdlYkNvcmU6OkZsb2F0UG9pbnQgcGhhc2UsIFdlYkNvcmU6OkZsb2F0U2l6
ZSBzcGFjaW5nLCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucykK
KyAgICBEcmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1h
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdFJlY3QsIFdlYkNvcmU6OkZsb2F0
UmVjdCB0aWxlUmVjdCwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSwgV2ViQ29y
ZTo6RmxvYXRQb2ludCBwaGFzZSwgV2ViQ29yZTo6RmxvYXRTaXplIHNwYWNpbmcsIHN0cnVjdCBX
ZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQogICAgIEJlZ2luVHJhbnNwYXJl
bmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKICAgICBFbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAg
RHJhd1JlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAppbmRleCA5ODY1
NzE5ZWE3NzE1ZWFmYWVjNDc3YmJjYTE1YzExODU1YWU2ODczLi44N2FhYTBhZTIxOTBlOTI1NWE1
MzRkY2JhNTFhMTA3NmU4MGI2NDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuY3BwCkBAIC0yMDMsOSArMjAzLDkgQEAgdm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlk
ZW4KICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3TmF0
aXZlSW1hZ2UoaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBv
cHRpb25zKSk7CiB9CiAKLXZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmREcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVy
LCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zv
cm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25z
dCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3UGF0dGVybihpbWFnZUlkZW50aWZpZXIsIGltYWdlU2l6
ZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25z
KSk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd1Bh
dHRlcm4oaW1hZ2VJZGVudGlmaWVyLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhh
c2UsIHNwYWNpbmcsIG9wdGlvbnMpKTsKIH0KIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCmluZGV4IDdiZTc0NGIzNDJh
NjU0NjU5MmU3MzQxMmRhMTBkMWI0M2VkNjk4ZTYuLmM2NzhmODgzMmJlZjVjMmNhNzIwNGY0Njhj
YjcxYTJlNGE5NmJmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuaApAQCAtOTEsNyArOTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjb3JkRHJhd0dseXBo
cyhjb25zdCBXZWJDb3JlOjpGb250JiwgY29uc3QgV2ViQ29yZTo6R2x5cGhCdWZmZXJHbHlwaCos
IGNvbnN0IFdlYkNvcmU6OkdseXBoQnVmZmVyQWR2YW5jZSosIHVuc2lnbmVkIGNvdW50LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgV2ViQ29yZTo6Rm9udFNtb290aGlu
Z01vZGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6Oklt
YWdlQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd05hdGl2ZUltYWdlKFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdl
UGFpbnRpbmdPcHRpb25zJikgZmluYWw7Ci0gICAgdm9pZCByZWNvcmREcmF3UGF0dGVybihXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zv
cm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IH0pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVU
cmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9u
cyYgPSB7IH0pIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkQmVnaW5UcmFuc3BhcmVuY3lMYXllcihm
bG9hdCkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRFbmRUcmFuc3BhcmVuY3lMYXllcigpIGZpbmFs
OwogICAgIHZvaWQgcmVjb3JkRHJhd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxv
YXQpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452019</attachid>
            <date>2022-02-15 07:18:29 -0800</date>
            <delta_ts>2022-02-16 15:46:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236638-20220215071828.patch</filename>
            <type>text/plain</type>
            <size>48960</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwN2Q3YTU4NDYyYmFi
ZGRhZDlmNjE0MzBmMTIxMWJkZTU3YzlkNy4uZmZlZTc3MzUyN2VhNmZhZjQ5YjExMmYzMDNiNjhk
YTkzNWY5YTcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAyLTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
Um91dGUgdGhlIGNhbGwgdG8gSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKCkgdGhyb3VnaCBHcmFw
aGljc0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjYzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgd2lsbCBhbGxvdyByZWNvcmRpbmcgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKCkg
dmlhIHRoZSBzdXBlciBjbGFzc2VzCisgICAgICAgIERpc3BsYXlMaXN0OjpSZWNvcmRlckltcGwg
YW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS4gU28gYW5vdGhlcgorICAgICAgICB2
ZXJzaW9uIG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oKSB3aWxsIGJlIGFkZGVkIHdo
aWNoIHRha2VzCisgICAgICAgIEltYWdlQnVmZmVyIGFzIGFuIGFyZ3VtZW50LgorCisgICAgICAg
IFRvIG1ha2UgdGhlIGRpc3BsYXkgbGlzdCBpdGVtIERyYXdQYXR0ZXJuIGJlIHN1aXRhYmxlIGZv
ciByZWNvcmRpbmcgYm90aAorICAgICAgICB2ZXJzaW9ucyBvZiBkcmF3UGF0dGVybigpLCB3ZSBu
ZWVkIHRvIHJlbW92ZSB0aGUgYXJndW1lbnQgJ2ltYWdlU2l6ZScKKyAgICAgICAgZnJvbSBHcmFw
aGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKCkgc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNh
bGxlZCBmcm9tCisgICAgICAgIEltYWdlOjpkcmF3UGF0dGVybigpIGFuZCBpdCBwYXNzZXMgaW1h
Z2VTaXplID0gSW1hZ2U6OnNpemUoKS4gU28gaW1hZ2VTaXplCisgICAgICAgIGNhbiBiZSBjYWxj
dWxhdGVkIGZyb20gdGhlIE5hdGl2ZUltYWdlOjpzaXplKCkuCisKKyAgICAgICAgVGhlIERpc3Bs
YXlMaXN0OjpSZXBsYXllciBhbmQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBoYXZlIHRvIGNv
bnNpZGVyIAorICAgICAgICB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mIHRoZSBE
cmF3UGF0dGVybiBjYW4gYmUgdGhlIGlkZW50aWZpZXIKKyAgICAgICAgb2YgYSBOYXRpdmVJbWFn
ZSBvciBhbiBJbWFnZUJ1ZmZlci4gRHJhd1BhdHRlcm46OmFwcGx5KCkgbmVlZHMgdG8gdGFrZSBh
CisgICAgICAgIFNvdXJjZUltYWdlIGFuZCBpdCBjYW4gbWFrZSB0aGUgZGVjaXNpb24gd2hldGhl
ciB0byBjYWxsIHRoZSBOYXRpdmVJbWFnZQorICAgICAgICB2ZXJzaW9uIG9yIHRoZSBJbWFnZUJ1
ZmZlciB2ZXJzaW9uIG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oKS4KKworICAgICAg
ICAqIGh0bWwvQ3VzdG9tUGFpbnRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21Q
YWludEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQmlm
dXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaWZ1cmNhdGVk
R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVy
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9O
YW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWRJbWFn
ZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTnVsbEdyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dENhaXJvOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRDRzo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd1BhdHRlcm46OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd1BhdHRlcm46OmltYWdlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm46OmltYWdlU2l6ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZWNvcmRlcjo6cmVjb3JkRHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpyZWNvcmREcmF3UGF0dGVybik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJ
bXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsOjpyZWNv
cmREcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OmFwcGx5U291cmNlSW1hZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpS
ZXBsYXllcjo6YXBwbHlJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcDoKKyAgICAgICAgKE5pY29z
aWE6OkNhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVy
Lmg6CisKIDIwMjItMDItMTQgIERhbiBHbGFzdG9uYnVyeSAgPGRqZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgTW92ZSBQREZEb2N1bWVudC5jcHAvaCBpbiBjb3JyZWN0IHBvc2l0aW9uIGluIFdlYkNv
cmUueGNvZGVwcm9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2OWZlZWU2ZWViOTQ5YzlhNTRjZjE1MWRkNWEzZmJk
MWVlOTY1MjAuLmYwN2VmZDYyZmExM2M4ODRiYmMzNjkzMDY5YmI4ZjUwOTk1MjU2YWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDItMTUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSb3V0ZSB0aGUgY2FsbCB0byBJ
bWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oKSB0aHJvdWdoIEdyYXBoaWNzQ29udGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdQYXR0ZXJuV2l0aFF1YWxpZmllZElkZW50
aWZpZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0ZXJuKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojpy
ZWNvcmREcmF3UGF0dGVybik6CisKIDIwMjItMDItMTQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBSZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5IHNob3VsZCBub3Qgc2luayBpdHNlbGYgdG8gYW4gSW1hZ2Ugb3IgYSBOYXRpdmVJbWFnZSB0
aG91Z2ggaXRzIGJhY2tlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9t
UGFpbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50SW1hZ2UuY3Bw
CmluZGV4IGZiOGFlNmJmZDcxZjNlZjYxYTM0MGUyNzAwMTQwMzhlMjc2Njk3MGYuLmI1YzFiZjNk
YzZkNGNlNmNhMmNjMzhmZjhkOGQ2YWY1Nzg4ZGMxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
dXN0b21QYWludEltYWdlLmNwcApAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgQ3VzdG9tUGFpbnRJ
bWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxv
YXRSZWN0CiAgICAgaWYgKGRlc3RDb250ZXh0LmRyYXdMdW1pbmFuY2VNYXNrKCkpCiAgICAgICAg
IGJ1ZmZlci0+Y29udmVydFRvTHVtaW5hbmNlTWFzaygpOwogCi0gICAgYnVmZmVyLT5kcmF3UGF0
dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgYWRqdXN0ZWRQYXR0
ZXJuQ1RNLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CisgICAgZGVzdENvbnRleHQuZHJhd1Bh
dHRlcm4oKmJ1ZmZlciwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgYWRqdXN0ZWRQYXR0ZXJu
Q1RNLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgZGVzdENvbnRleHQuc2V0RHJhd0x1
bWluYW5jZU1hc2soZmFsc2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwCmluZGV4
IGJlNmNlYzc4Mjc3Nzk0ZGY1N2Q0ZjVmY2Y3ZjRmN2QyYTZlMDNhYzMuLjlmMDZiZDBkY2I1NGEy
OGUzNTA0ZGZiYTUyOGI1NjdlYmI4ODkwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuY3Bw
CkBAIC0yNjMsMTAgKzI2MywxMCBAQCB2b2lkIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQ6OmRy
YXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0CiAgICAgbV9zZWNv
bmRhcnlDb250ZXh0LmRyYXdOYXRpdmVJbWFnZShuYXRpdmVJbWFnZSwgc2VsZlNpemUsIGRlc3RS
ZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKIH0KIAotdm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250
ZXh0OjpkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
OjpkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0g
ICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3UGF0dGVybihuYXRpdmVJbWFnZSwgaW1hZ2VTaXplLCBk
ZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRp
b25zKTsKLSAgICBtX3NlY29uZGFyeUNvbnRleHQuZHJhd1BhdHRlcm4obmF0aXZlSW1hZ2UsIGlt
YWdlU2l6ZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3Bh
Y2luZywgb3B0aW9ucyk7CisgICAgbV9wcmltYXJ5Q29udGV4dC5kcmF3UGF0dGVybihuYXRpdmVJ
bWFnZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2lu
Zywgb3B0aW9ucyk7CisgICAgbV9zZWNvbmRhcnlDb250ZXh0LmRyYXdQYXR0ZXJuKG5hdGl2ZUlt
YWdlLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5n
LCBvcHRpb25zKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0
aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpZnVy
Y2F0ZWRHcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaAppbmRleCAyZGI4NTAxOTRjZDgxY2M5NDcwNDcz
MWZhMmQ2NTEyMDQ2OTk2MThkLi43N2I3MmFkMzYzODNjYTcwZGM5YzZiODQyOGRlODNiYzljZjcx
N2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE1pdGVyTGltaXQoZmxvYXQpIGZpbmFsOwogCiAgICAgdm9pZCBkcmF3TmF0
aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihOYXRp
dmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7Cisg
ICAgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKICAgICBJ
bWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiA9IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0pIGZpbmFsOwogICAgIEltYWdlRHJh
d1Jlc3VsdCBkcmF3SW1hZ2VGb3JDYW52YXMoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY2FudmFzQ29sb3JTcGFjZSkgZmluYWw7CiAgICAg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRp
bGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IHsgfSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKaW5kZXggNjFhMzgzMjMz
Y2I2ZWIxYTk0ZTkxZjFmZmU0NzdmMmNjZGYxNTExNy4uYmI0ZGFjMDE5YzViOWUxM2IxMzdhZTY5
NGU0YmY2YjI3NmJmY2MwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcApAQCAtMTEyLDcgKzEx
Miw3IEBAIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSCiAgICAgZHJhd0Nyb3NzZmFkZShncmFwaGlj
c0NvbnRleHQpOwogCiAgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVyIGludG8gdGhlIGNvbnRl
eHQuCi0gICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNyY1Jl
Y3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKKyAgICBjb250
ZXh0LmRyYXdQYXR0ZXJuKCppbWFnZUJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRy
YW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogfQogCiB2b2lkIENyb3NzZmFkZUdl
bmVyYXRlZEltYWdlOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggNTE5
M2E2NmFlOThiYjMxNGZkYjNkYWI3MjBmMjViNWI3OWM1NWI2MC4uM2M2YzEwMDFhZDhkMjBmZjBh
M2IxMmFmYzRhY2ZkNjlkZWQ0MWMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03MzQsNiArNzM0LDExIEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciog
c291cmNlSW1hZ2UsIGNvbnN0IEZsCiAgICAgc2NhbGUoZmlsdGVyLmZpbHRlclNjYWxlKCkpOwog
fQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2VCdWZmZXImIGltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQoreworICAgIGltYWdlLmRyYXdQYXR0ZXJuKCp0aGlzLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKK30K
Kwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5k
ZWRSZWN0JiByZWN0KQogewogICAgIFBhdGggcGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggODNjZTRkMmRmZWMxZGQ0
YTIxNmRiZjA5ZDA0MTU5MjRjZDUzNjMzYi4uZWViMWQ4NGJmNGU3YmJkZWNlMjQ0OTEyZTBlZDY0
NjAxMjVlMTg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmgKQEAgLTQ0NSw3ICs0NDUsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgRmlsdGVy
JiwgRmlsdGVyUmVzdWx0cyYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2
ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRT
aXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pID0gMDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2VCdWZmZXImLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiA9IHsgfSk7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIHBhaW50RnJhbWVGb3JNZWRpYShNZWRpYVBsYXllciYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3Bw
CmluZGV4IGUzMmEzNmM2MDc2MTkyMTY4YzZhMzc5MzE4Zjc4YWUxNzg5YzQ4MmUuLmQyYTk3NmZj
NjZlMTc2YTNlNWQwZTlhMDlhMWJjMmM4MmNkMWM0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIEltYWdlOjpk
cmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0CiAgICAgaWYgKCF0aWxlSW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGN0
eHQuZHJhd1BhdHRlcm4oKnRpbGVJbWFnZSwgc2l6ZSgpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKKyAgICBjdHh0LmRyYXdQ
YXR0ZXJuKCp0aWxlSW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwg
cGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAg
ICAgICAgaW1hZ2VPYnNlcnZlcigpLT5kaWREcmF3KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1h
Z2UuY3BwCmluZGV4IDM3MGM3ZGMyODk2ZjM5NjJjYjNlZDUwOTgyZGFiNjk5NzRmNjMyYzQuLmNh
NzM1OTFkODM3ZTZiZTE0YzVkYTI1N2UzNzFmNWYyMjU4Y2YxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRl
ZEltYWdlLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFn
ZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdAogICAg
IFRoZW1lOjpzaW5nbGV0b24oKS5kcmF3TmFtZWRJbWFnZShtX25hbWUsIGdyYXBoaWNzQ29udGV4
dCwgc2l6ZSgpKTsKIAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250
ZXh0LgotICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzcmNS
ZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CisgICAgY29u
dGV4dC5kcmF3UGF0dGVybigqaW1hZ2VCdWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5U
cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKGNvbnRleHQpOwogICAgIFVOVVNFRF9QQVJBTShkc3RSZWN0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL051bGxHcmFwaGljc0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL051bGxHcmFwaGljc0NvbnRleHQuaAppbmRl
eCBmYWY3ZWU5NTcxOTkzZjRkYTAzZjgxNjZhNWUwZjRlYzBjMGM2MzNkLi5kMTgwZTUxOTAyZTJl
Mjc4OWQwNDU2NWQwN2FkZjk2ZGZmNWYyZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9OdWxsR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTnVsbEdyYXBoaWNzQ29udGV4dC5oCkBAIC02Myw3ICs2Myw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYsIGNv
bnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWwgeyB9CiAKLSAgICB2b2lkIGRyYXdQYXR0ZXJu
KE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNv
bnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWwgeyB9Cisg
ICAgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBj
b25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsIHsgfQog
CiAgICAgSW50UmVjdCBjbGlwQm91bmRzKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyB9OyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCAxNjVjNmRiZmUyMDIyMzE3MzkzZmU1
NDY3YjkyMjAyNmI1MmFhODliLi5jMzIzMDQ0NTM1MWIwM2YyYWE4NzM2YWVlMmJjZTc4YmM0MzYx
ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0zOTUsMTMgKzM5NSwxMyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dENhaXJvOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0CiAgICAgQ2Fpcm86OmZpbGxSZWN0V2l0aFJvdW5kZWRI
b2xlKCp0aGlzLCByZWN0LCByb3VuZGVkSG9sZVJlY3QsIENhaXJvOjpGaWxsU291cmNlKHN0YXRl
KSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0
Q2Fpcm86OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEdyYXBoaWNzQ29udGV4dENhaXJvOjpk
cmF3UGF0dGVybihOYXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAg
aWYgKCFwYXR0ZXJuVHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBVTlVTRURfUEFSQU0oc3BhY2luZyk7Ci0gICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKCp0aGlz
LCBuYXRpdmVJbWFnZS5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIEludFNpemUoaW1hZ2VTaXplKSwg
ZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucyk7Cisg
ICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKCp0aGlzLCBuYXRpdmVJbWFnZS5wbGF0Zm9ybUltYWdlKCku
Z2V0KCksIG5hdGl2ZUltYWdlLnNpemUoKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJh
bnNmb3JtLCBwaGFzZSwgb3B0aW9ucyk7CiB9CiAKIFJlbmRlcmluZ01vZGUgR3JhcGhpY3NDb250
ZXh0Q2Fpcm86OnJlbmRlcmluZ01vZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmgK
aW5kZXggNGIzMzU2YzM1NWU0ODBjODAwMjk0NjdlMTFkN2QwMzg4Y2U1ZWVjMS4uNTY0NjFjMTU5
YTU4M2M4OWM2MWU4ZjAyZTRlMGJlZTdiMDU5MzJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdHbHlwaHMoY29uc3Qg
Rm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2Uq
LCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmLCBGb250U21vb3RoaW5nTW9k
ZSkgZmluYWw7CiAKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYsIGNvbnN0
IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJ
bWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJ
bWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0
IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsK
IAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpIGZpbmFsOwogICAg
IHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBkZmExNzRhNTNjMmU3NjAzNTc2MmI0MzRmMGYxOWRi
MTU2NjE4NDEzLi5kMTE3OGY4YWRkODE1YWI5ODMwNzZmZTg3NzcyM2ZiMWM5NDVkZTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwCkBAIC0zODQsMTIgKzM4NCwxMyBAQCBzdGF0aWMgdm9pZCBwYXR0ZXJu
UmVsZWFzZUNhbGxiYWNrKHZvaWQqIGluZm8pCiAgICAgY2FsbE9uTWFpblRocmVhZChbaW1hZ2Ug
PSBhZG9wdENGKHN0YXRpY19jYXN0PENHSW1hZ2VSZWY+KGluZm8pKV0geyB9KTsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHRDRzo6ZHJhd1BhdHRlcm4oTmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdl
LCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0Q0c6OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKICAgICBpZiAoIXBhdHRlcm5UcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGF1dG8gaW1hZ2UgPSBuYXRpdmVJbWFnZS5wbGF0Zm9ybUltYWdlKCk7
CisgICAgYXV0byBpbWFnZVNpemUgPSBuYXRpdmVJbWFnZS5zaXplKCk7CiAKICAgICBDR0NvbnRl
eHRSZWYgY29udGV4dCA9IHBsYXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oCmluZGV4IDVmMWFhMjRjNjY1ZTYy
YzVhYmU4OWE0ZDlhZTkxNTcwM2ZmZDcwYjkuLjQ2OGE0NGJhYTg2ZWU1MjYxOWQyNTVmOTM5NDNh
OTc1NWJhYzlmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaApAQCAtMTM1LDcgKzEzNSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE1pdGVyTGltaXQoZmxvYXQpIGZpbmFsOwogCiAgICAgdm9pZCBkcmF3TmF0
aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihOYXRp
dmVJbWFnZSYsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7Cisg
ICAgdm9pZCBkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKIAogICAg
IHVzaW5nIEdyYXBoaWNzQ29udGV4dDo6c2NhbGU7CiAgICAgdm9pZCBzY2FsZShjb25zdCBGbG9h
dFNpemUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCBi
OTM4YmZkMjY4MTRkMGMxY2JjNjQxNDlmMTRjOTk0ZDNjNGEzN2MxLi4zZjM3ODM1ZGU2OTI0MjAx
NGNlOWNiMDZlZjg3YTlkMTBlZGI1Mzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuY3BwCkBAIC0zOTgsOSArMzk4LDggQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdOYXRpdmVJbWFnZSYgaXRlbSkKICAgICByZXR1cm4g
dHM7CiB9CiAKLURyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0
aW9ucykKK0RyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogICAgIDogbV9pbWFnZUlkZW50aWZpZXIo
aW1hZ2VJZGVudGlmaWVyKQotICAgICwgbV9pbWFnZVNpemUoaW1hZ2VTaXplKQogICAgICwgbV9k
ZXN0aW5hdGlvbihkZXN0UmVjdCkKICAgICAsIG1fdGlsZVJlY3QodGlsZVJlY3QpCiAgICAgLCBt
X3BhdHRlcm5UcmFuc2Zvcm0ocGF0dGVyblRyYW5zZm9ybSkKQEAgLTQxNSw5ICs0MTQsMTkgQEAg
Tk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBEcmF3UGF0dGVybjo6YXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3QKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBEcmF3
UGF0dGVybjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOYXRpdmVJbWFnZSYgaW1h
Z2UpIGNvbnN0Cit2b2lkIERyYXdQYXR0ZXJuOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIFNvdXJjZUltYWdlJiBzb3VyY2VJbWFnZSkgY29uc3QKIHsKLSAgICBjb250ZXh0LmRyYXdQ
YXR0ZXJuKGltYWdlLCBtX2ltYWdlU2l6ZSwgbV9kZXN0aW5hdGlvbiwgbV90aWxlUmVjdCwgbV9w
YXR0ZXJuVHJhbnNmb3JtLCBtX3BoYXNlLCBtX3NwYWNpbmcsIG1fb3B0aW9ucyk7CisgICAgaWYg
KGF1dG8gaW1hZ2UgPSBzb3VyY2VJbWFnZS5uYXRpdmVJbWFnZUlmRXhpc3RzKCkpIHsKKyAgICAg
ICAgY29udGV4dC5kcmF3UGF0dGVybigqaW1hZ2UsIG1fZGVzdGluYXRpb24sIG1fdGlsZVJlY3Qs
IG1fcGF0dGVyblRyYW5zZm9ybSwgbV9waGFzZSwgbV9zcGFjaW5nLCBtX29wdGlvbnMpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBzb3VyY2VJ
bWFnZS5pbWFnZUJ1ZmZlcklmRXhpc3RzKCkpIHsKKyAgICAgICAgY29udGV4dC5kcmF3UGF0dGVy
bigqaW1hZ2VCdWZmZXIsIG1fZGVzdGluYXRpb24sIG1fdGlsZVJlY3QsIG1fcGF0dGVyblRyYW5z
Zm9ybSwgbV9waGFzZSwgbV9zcGFjaW5nLCBtX29wdGlvbnMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3UGF0dGVybiYgaXRlbSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDA2YjFhZTY0OTM2NmY4MjQ3ZTE2MDEw
OWJkMGRkNjQ5NDFkMjcyMDguLmY1MWQxZjhmOTQxYWFmMzRhNGU4OWY1OGQ1ZDUxOTRjYTk2NjMz
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtOTk5LDEwICs5OTksOSBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSB0cnVlOwogCi0gICAg
V0VCQ09SRV9FWFBPUlQgRHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmID0geyB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBEcmF3UGF0dGVybihSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSk7CiAKICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1h
Z2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUlkZW50aWZpZXI7IH0KLSAgICBG
bG9hdFNpemUgaW1hZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZVNpemU7IH0KICAgICBG
bG9hdFJlY3QgZGVzdFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CiAgICAg
RmxvYXRSZWN0IHRpbGVSZWN0KCkgY29uc3QgeyByZXR1cm4gbV90aWxlUmVjdDsgfQogICAgIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGF0dGVyblRyYW5zZm9ybTsgfQpAQCAtMTAxMiwxNCArMTAxMSwxMyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUlkZW50aWZpZXIuaXNWYWxpZCgp
OyB9CiAKICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250
ZXh0JiwgTmF0aXZlSW1hZ2UmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5
KEdyYXBoaWNzQ29udGV4dCYsIFNvdXJjZUltYWdlJikgY29uc3Q7CiAKICAgICBzdGQ6Om9wdGlv
bmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0
OyB9CiAgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBo
aWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KIAogcHJpdmF0ZToK
ICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUlkZW50aWZpZXI7Ci0gICAg
RmxvYXRTaXplIG1faW1hZ2VTaXplOwogICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uOwogICAg
IEZsb2F0UmVjdCBtX3RpbGVSZWN0OwogICAgIEFmZmluZVRyYW5zZm9ybSBtX3BhdHRlcm5UcmFu
c2Zvcm07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggY2U5
MmNlNTU4NzdiNGJmZDc4MjQ0ZDBhNDRjYzU0ZWJhNWM4NjA2MC4uNGM3ZGQ4YTYzMGY4OTQwOGJl
YzEwMWUyZWJkYzRlY2M5MGNmODRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcApAQCAtMjAyLDExICsyMDIsMjMgQEAgdm9pZCBSZWNvcmRlcjo6ZHJhd05hdGl2
ZUltYWdlKE5hdGl2ZUltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGMK
ICAgICByZWNvcmREcmF3TmF0aXZlSW1hZ2UoaW1hZ2UucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKCksIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogfQogCi12b2lk
IFJlY29yZGVyOjpkcmF3UGF0dGVybihOYXRpdmVJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oTmF0
aXZlSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGFwcGVuZFN0YXRlQ2hhbmdlSXRl
bUlmTmVjZXNzYXJ5KCk7CiAgICAgcmVjb3JkUmVzb3VyY2VVc2UoaW1hZ2UpOwotICAgIHJlY29y
ZERyYXdQYXR0ZXJuKGltYWdlLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBpbWFnZVNp
emUsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcs
IG9wdGlvbnMpOworICAgIHJlY29yZERyYXdQYXR0ZXJuKGltYWdlLnJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcigpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNl
LCBzcGFjaW5nLCBvcHRpb25zKTsKK30KKwordm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1h
Z2VCdWZmZXImIGltYWdlQnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zv
cm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIGFwcGVuZFN0YXRlQ2hh
bmdlSXRlbUlmTmVjZXNzYXJ5KCk7CisKKyAgICBpZiAoIXJlY29yZFJlc291cmNlVXNlKGltYWdl
QnVmZmVyKSkgeworICAgICAgICBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKGltYWdlQnVm
ZmVyLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5n
LCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlY29yZERyYXdQYXR0
ZXJuKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0K
IAogdm9pZCBSZWNvcmRlcjo6c2F2ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaAppbmRleCA2YWExM2Q4ZDAwNmNkZjI2N2ZhOGVkNDIzNzgyZDg3Mjk5N2UyNWEzLi4zZDM4
MzZmZjNkNWY3YmQ2Yzg2ZGI4ZDcyOTBiZWQ5NTkwNzJmZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZl
ckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgY291bnQsIGNvbnN0
IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCByZWNvcmREcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3TmF0aXZlSW1h
Z2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxv
YXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHJlY29yZERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiA9IHsgfSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3UGF0
dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmRC
ZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29y
ZEVuZFRyYW5zcGFyZW5jeUxheWVyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmREcmF3
UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCkgPSAwOwpAQCAtMjIyLDcgKzIyMiw4IEBAIHBy
aXZhdGU6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291
cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZHJhd05hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0
IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKSBmaW5h
bDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdMaW5lKGNvbnN0IEZsb2F0UG9pbnQmLCBj
b25zdCBGbG9hdFBvaW50JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXJJbXBsLmNwcAppbmRleCBjMjkxNDhlMDQzODExYzVlZTA0YmU2MTNhN2YxYzc1YTQ5
NDkwMGQ2Li4yN2QzNDAyNTU4NTY0NDBmMmExODE4ZDMyZjdmYTIyZjI5OWM3OTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKQEAgLTE4Miw5ICsx
ODIsOSBAQCB2b2lkIFJlY29yZGVySW1wbDo6cmVjb3JkRHJhd05hdGl2ZUltYWdlKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aQogICAgIGFwcGVuZDxEcmF3TmF0aXZlSW1h
Z2U+KGltYWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9u
cyk7CiB9CiAKLXZvaWQgUmVjb3JkZXJJbXBsOjpyZWNvcmREcmF3UGF0dGVybihSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdl
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQordm9pZCBSZWNvcmRlckltcGw6OnJlY29yZERyYXdQYXR0ZXJuKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
dHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBhcHBlbmQ8
RHJhd1BhdHRlcm4+KGltYWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgdGlsZVJl
Y3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOworICAgIGFwcGVuZDxEcmF3
UGF0dGVybj4oaW1hZ2VJZGVudGlmaWVyLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwg
cGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogfQogCiB2b2lkIFJlY29yZGVySW1wbDo6cmVjb3Jk
QmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlckltcGwuaAppbmRleCAwZjlkZmE4YTQ0YzI4NDkxYWM4MGU0OTVh
MjZmNWFlZDBjYWFhOGViLi5mNzY0M2Q2NmM4NmMzMWZkYWI0MjNlZWFkMzJjOTQ4OTEzNTcyNjBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaApAQCAtNzAs
NyArNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjb3JkRHJhd0dseXBocyhjb25zdCBGb250
JiwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCosIGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSosIHVu
c2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhbEFuY2hvciwgRm9udFNtb290aGlu
Z01vZGUpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVy
JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd05h
dGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNv
bnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7
Ci0gICAgdm9pZCByZWNvcmREcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd1BhdHRlcm4o
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkQmVnaW5UcmFuc3Bh
cmVuY3lMYXllcihmbG9hdCkgZmluYWw7CiAgICAgdm9pZCByZWNvcmRFbmRUcmFuc3BhcmVuY3lM
YXllcigpIGZpbmFsOwogICAgIHZvaWQgcmVjb3JkRHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0Jiwg
ZmxvYXQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCmlu
ZGV4IDYyZWUzYmJiNGFjZDU5NTM0MDQxMmU1NjE1NTQzNjdmMmQ2ZmQ3YTEuLjhmZjE5ZDAwMzU0
Y2RiZWRlM2E1YmExYWY3NThjZmYwMjNhMjVhMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZXBsYXllci5jcHAKQEAgLTY4LDYgKzY4LDE4IEBAIGlubGluZSBzdGF0aWMgc3RkOjpv
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5TmF0aXZlSW1hZ2VJdGVt
KEdyCiAgICAgcmV0dXJuIHJlc291cmNlSWRlbnRpZmllcjsKIH0KIAordGVtcGxhdGU8Y2xhc3Mg
VD4KK2lubGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI+IGFwcGx5U291cmNlSW1hZ2VJdGVtKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
UmVzb3VyY2VIZWFwJiByZXNvdXJjZUhlYXAsIEl0ZW1IYW5kbGUgaXRlbSkKK3sKKyAgICBhdXRv
JiBzb3VyY2VJbWFnZUl0ZW0gPSBpdGVtLmdldDxUPigpOworICAgIGF1dG8gcmVzb3VyY2VJZGVu
dGlmaWVyID0gc291cmNlSW1hZ2VJdGVtLmltYWdlSWRlbnRpZmllcigpOworICAgIGlmIChhdXRv
IHNvdXJjZUltYWdlID0gcmVzb3VyY2VIZWFwLmdldFNvdXJjZUltYWdlKHJlc291cmNlSWRlbnRp
ZmllcikpIHsKKyAgICAgICAgc291cmNlSW1hZ2VJdGVtLmFwcGx5KGNvbnRleHQsICpzb3VyY2VJ
bWFnZSk7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorICAgIHJldHVybiBy
ZXNvdXJjZUlkZW50aWZpZXI7Cit9CisKIGlubGluZSBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGFwcGx5U2V0U3RhdGVJdGVtKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgUmVzb3VyY2VIZWFwJiByZXNvdXJjZUhlYXAsIEl0ZW1IYW5kbGUg
aXRlbSkKIHsKICAgICBhdXRvJiBzZXRTdGF0ZUl0ZW0gPSBpdGVtLmdldDxTZXRTdGF0ZT4oKTsK
QEAgLTEzNCw3ICsxNDYsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxTdG9wUmVwbGF5UmVh
c29uPiwgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aQogICAgIH0KIAogICAg
IGlmIChpdGVtLmlzPERyYXdQYXR0ZXJuPigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG1pc3NpbmdD
YWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseU5hdGl2ZUltYWdlSXRlbTxEcmF3UGF0dGVy
bj4obV9jb250ZXh0LCBtX3Jlc291cmNlSGVhcCwgaXRlbSkpCisgICAgICAgIGlmIChhdXRvIG1p
c3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBhcHBseVNvdXJjZUltYWdlSXRlbTxEcmF3
UGF0dGVybj4obV9jb250ZXh0LCBtX3Jlc291cmNlSGVhcCwgaXRlbSkpCiAgICAgICAgICAgICBy
ZXR1cm4geyBTdG9wUmVwbGF5UmVhc29uOjpNaXNzaW5nQ2FjaGVkUmVzb3VyY2UsIFdURk1vdmUo
bWlzc2luZ0NhY2hlZFJlc291cmNlSWRlbnRpZmllcikgfTsKICAgICAgICAgcmV0dXJuIHsgc3Rk
OjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlv
blJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
Y2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCmluZGV4IDkyNDdmMzBlNzIy
NDczNjAxMGU5MWZiNzI2MjA4Yjc0YThlOWFmMTIuLjkxMTQ2ZGZjNmZkODRkZjhlMjk1NGYwMzc3
ZDAwNjZhNzcyMzNjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNh
aXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCkBAIC01NjIsNyArNTYyLDcgQEAgdm9pZCBDYWlyb09w
ZXJhdGlvblJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdl
LCBjb25zdCBGbG8KICAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3TmF0aXZlSW1hZ2U+KG5h
dGl2ZUltYWdlLnBsYXRmb3JtSW1hZ2UoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRp
bmdPcHRpb25zKG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpLCBzdGF0
ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSkpOwogfQogCi12b2lkIENhaXJvT3Bl
cmF0aW9uUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFnZSwgY29u
c3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIENhaXJvT3BlcmF0aW9u
UmVjb3JkZXI6OmRyYXdQYXR0ZXJuKE5hdGl2ZUltYWdlJiBuYXRpdmVJbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKICAgICBzdHJ1Y3QgRHJhd1BhdHRlcm4gZmluYWwgOiBQYWludGluZ09wZXJhdGlvbiwg
T3BlcmF0aW9uRGF0YTxSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiwgSW50U2l6ZSwgRmxvYXRSZWN0
LCBGbG9hdFJlY3QsIEFmZmluZVRyYW5zZm9ybSwgRmxvYXRQb2ludCwgSW1hZ2VQYWludGluZ09w
dGlvbnM+IHsKICAgICAgICAgdmlydHVhbCB+RHJhd1BhdHRlcm4oKSA9IGRlZmF1bHQ7CkBAIC01
NzksNyArNTc5LDcgQEAgdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0dGVybihO
YXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0U2kKICAgICB9OwogCiAgICAgVU5V
U0VEX1BBUkFNKHNwYWNpbmcpOwotICAgIGFwcGVuZChjcmVhdGVDb21tYW5kPERyYXdQYXR0ZXJu
PihuYXRpdmVJbWFnZS5wbGF0Zm9ybUltYWdlKCksIEludFNpemUoaW1hZ2VTaXplKSwgZGVzdFJl
Y3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucykpOworICAgIGFw
cGVuZChjcmVhdGVDb21tYW5kPERyYXdQYXR0ZXJuPihuYXRpdmVJbWFnZS5wbGF0Zm9ybUltYWdl
KCksIG5hdGl2ZUltYWdlLnNpemUoKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNm
b3JtLCBwaGFzZSwgb3B0aW9ucykpOwogfQogCiB2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6
OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWly
by9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5o
CmluZGV4IDczOTc3ODg2Y2U3M2E3ZmE2N2VmMDlhMTNhOGIwMjNjN2M4MzFmOTQuLjgzYzZkMjdk
NmVhMzZjNzliZWJkNzgyNWY5OWI3YzQzOTA4ZWU1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9u
UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKQEAgLTY2LDcgKzY2LDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVy
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2Um
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6TmF0aXZlSW1h
Z2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zv
cm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6QWZmaW5l
VHJhbnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0KSBv
dmVycmlkZTsKICAgICB2b2lkIGRyYXdMaW5lKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAKaW5kZXggM2YxMzNmM2UwODdlMjk3MjMyNjQzNzY2YTJjYWQzMWIxN2RmZmJlYS4u
Nzg0NjQ2M2Q5OTBiYWRjMzBhZjk4NWJlMDU3ZWYwNjJiMGMwZjhmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyLmNwcApAQCAtMjgzLDIyICsyODMsMjIgQEAgdm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2VXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihRdWFs
aWZpZWQKICAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UoaW1hZ2VJ
ZGVudGlmaWVyLm9iamVjdCgpLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25z
KSwgKmltYWdlKTsKIH0KIAotdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3UGF0
dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBG
bG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpkcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVy
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2Us
IGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMpCiB7CiAgICAgLy8gSW1tZWRpYXRlbHkgdHVybiB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyICh3aGljaCBpcyBlcnJvci1wcm9uZSkgdG8gYSBRdWFsaWZpZWRSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIsCiAgICAgLy8gYW5kIHVzZSBhIGhlbHBlciBmdW5jdGlvbiB0byBt
YWtlIHN1cmUgdGhhdCBkb24ndCBhY2NpZGVudGFsbHkgdXNlIHRoZSBSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgKGJlY2F1c2UgdGhlIGhlbHBlciBmdW5jdGlvbiBjYW4ndCBzZWUgaXQpLgot
ICAgIGRyYXdQYXR0ZXJuV2l0aFF1YWxpZmllZElkZW50aWZpZXIoeyBpbWFnZUlkZW50aWZpZXIs
IG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIgfSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgdGlsZVJlY3Qs
IHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOworICAgIGRyYXdQYXR0ZXJuV2l0
aFF1YWxpZmllZElkZW50aWZpZXIoeyBpbWFnZUlkZW50aWZpZXIsIG1fd2ViUHJvY2Vzc0lkZW50
aWZpZXIgfSwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKIH0KIAotdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3UGF0dGVy
bldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdQYXR0ZXJuV2l0aFF1YWxpZmllZElk
ZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRp
ZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewotICAgIFJlZlB0ciBpbWFnZSA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWRO
YXRpdmVJbWFnZShpbWFnZUlkZW50aWZpZXIpOwotICAgIGlmICghaW1hZ2UpIHsKKyAgICBhdXRv
IHNvdXJjZUltYWdlID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZFNvdXJjZUltYWdlKGltYWdlSWRl
bnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VJbWFnZSkgewogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGhhbmRsZUl0ZW0oRGlzcGxh
eUxpc3Q6OkRyYXdQYXR0ZXJuKGltYWdlSWRlbnRpZmllci5vYmplY3QoKSwgaW1hZ2VTaXplLCBk
ZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpLCAq
aW1hZ2UpOworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdQYXR0ZXJuKGltYWdlSWRl
bnRpZmllci5vYmplY3QoKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBz
cGFjaW5nLCBvcHRpb25zKSwgKnNvdXJjZUltYWdlKTsKIH0KIAogdm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCAwY2ZlYmM4NmY1MTRlZmU3ZWZjNGEzNzRhNjM4N2Y2
OTJkMmEwMmQ1Li4yOWEyMjBiYmExZDdhYzE5OGE2ODIzZmViZGZkNWUyN2M3Yzg2NGU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IHNvdXJjZUltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIElQQzo6RmlsdGVyUmVmZXJlbmNlKTsKICAg
ICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJD
b3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNv
cmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6
QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlv
bnMmKTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkFm
ZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25z
Jik7CiAgICAgdm9pZCBiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpOwogICAg
IHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcyk7CkBAIC0xMzUsNyArMTM1
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRyYXdHbHlwaHNXaXRoUXVhbGlmaWVkSWRlbnRpZmll
cihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBocyYmLCBRdWFsaWZpZWRSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgZm9udElkZW50aWZpZXIpOwogICAgIHZvaWQgZHJhd0ltYWdlQnVm
ZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBk
ZXN0aW5hdGlvblJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
V2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFn
ZVdpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7Ci0g
ICAgdm9pZCBkcmF3UGF0dGVybldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKFF1YWxpZmllZFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVU
cmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwor
ICAgIHZvaWQgZHJhd1BhdHRlcm5XaXRoUXVhbGlmaWVkSWRlbnRpZmllcihRdWFsaWZpZWRSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpOwogCiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSYgcmVzb3VyY2VD
YWNoZSgpOwogICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgZHJhd2luZ0NvbnRleHQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KaW5kZXggNmNkYzgy
N2RhYzEyYTc1ZGU1MzUxMzAyZDM4YzAyMzhkYjA2OTA4ZC4uOTVkYmU4ZGQ1NWMyYWZmMmRmMDA1
ODAzODYzYjA3OGU5YjU5ZDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
bWVzc2FnZXMuaW4KQEAgLTQ4LDcgKzQ4LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgRHJhd0ZpbHRlcmVkSW1hZ2VC
dWZmZXIoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+
IHNvdXJjZUltYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IHNvdXJjZUltYWdlUmVj
dCwgSVBDOjpGaWx0ZXJSZWZlcmVuY2UgZmlsdGVyKQogICAgIERyYXdJbWFnZUJ1ZmZlcihXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3Jj
UmVjdCwgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCiAgICAg
RHJhd05hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0U2l6ZSBpbWFnZVNpemUsIFdlYkNvcmU6OkZsb2F0
UmVjdCBkZXN0UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHNyY1JlY3QsIHN0cnVjdCBXZWJDb3Jl
OjpJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQotICAgIERyYXdQYXR0ZXJuKFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZs
b2F0U2l6ZSBpbWFnZVNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0UmVjdCwgV2ViQ29yZTo6
RmxvYXRSZWN0IHRpbGVSZWN0LCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtLCBX
ZWJDb3JlOjpGbG9hdFBvaW50IHBoYXNlLCBXZWJDb3JlOjpGbG9hdFNpemUgc3BhY2luZywgc3Ry
dWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCisgICAgRHJhd1BhdHRl
cm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGlsZVJlY3Qs
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0sIFdlYkNvcmU6OkZsb2F0UG9pbnQg
cGhhc2UsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzcGFjaW5nLCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnMgb3B0aW9ucykKICAgICBCZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0
IG9wYWNpdHkpCiAgICAgRW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQogICAgIERyYXdSZWN0KFdlYkNv
cmU6OkZsb2F0UmVjdCByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKaW5kZXggOTg2NTcxOWVhNzcxNWVhZmFl
YzQ3N2JiY2ExNWMxMTg1NWFlNjg3My4uODdhYWEwYWUyMTkwZTkyNTVhNTM0ZGNiYTUxYTEwNzZl
ODBiNjQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNw
cApAQCAtMjAzLDkgKzIwMyw5IEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmREcmF3TmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVuCiAgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd05hdGl2ZUltYWdlKGltYWdl
SWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucykpOwogfQog
Ci12b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd1BhdHRlcm4o
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmREcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVu
dGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6RHJhd1BhdHRlcm4oaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0LCB0
aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucykpOworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdQYXR0ZXJuKGltYWdlSWRl
bnRpZmllciwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKSk7CiB9CiAKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmRCZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaAppbmRleCA3YmU3NDRiMzQyYTY1NDY1OTJlNzM0MTJk
YTEwZDFiNDNlZDY5OGU2Li5jNjc4Zjg4MzJiZWY1YzJjYTcyMDRmNDY4Y2I3MWEyZTRhOTZiZjk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKQEAgLTkxLDcg
KzkxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29uc3QgV2ViQ29y
ZTo6Rm9udCYsIGNvbnN0IFdlYkNvcmU6OkdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBXZWJDb3Jl
OjpHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgbG9jYWxBbmNob3IsIFdlYkNvcmU6OkZvbnRTbW9vdGhpbmdNb2RlKSBmaW5hbDsK
ICAgICB2b2lkIHJlY29yZERyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsK
ICAgICB2b2lkIHJlY29yZERyYXdOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGlt
YWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9u
cyYpIGZpbmFsOwotICAgIHZvaWQgcmVjb3JkRHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc3BhY2lu
ZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKKyAg
ICB2b2lkIHJlY29yZERyYXdQYXR0ZXJuKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5h
bDsKICAgICB2b2lkIHJlY29yZEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQpIGZpbmFsOwog
ICAgIHZvaWQgcmVjb3JkRW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSBmaW5hbDsKICAgICB2b2lkIHJl
Y29yZERyYXdSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0KSBmaW5hbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>