<?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>202190</bug_id>
          
          <creation_ts>2019-09-25 02:53:27 -0700</creation_ts>
          <short_desc>[Web Animations] Implement replaced animations</short_desc>
          <delta_ts>2019-10-04 06:42:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=202583</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573998</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-09-25 02:53:27 -0700</bug_when>
    <thetext>Before we can ship Web Animations, we need to implement https://drafts.csswg.org/web-animations/#replacing-animations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573999</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-25 02:53:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/55697719&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575906</commentid>
    <comment_count>2</comment_count>
      <attachid>380002</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-10-02 01:36:42 -0700</bug_when>
    <thetext>Created attachment 380002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575938</commentid>
    <comment_count>3</comment_count>
      <attachid>380002</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-10-02 04:30:27 -0700</bug_when>
    <thetext>Comment on attachment 380002
Patch

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

&gt; Source/WebCore/animation/AnimationTimeline.cpp:195
&gt; +            Vector&lt;RefPtr&lt;WebAnimation&gt;&gt; sortedWebAnimations;

Initialize the vector with the size of webAnimations.size()

&gt; Source/WebCore/animation/DocumentTimeline.cpp:450
&gt; +    auto animations = animationsForElement(*target, AnimationTimeline::Ordering::Sorted);
&gt; +    for (auto&amp; animationWithHigherCompositeOrder : WTF::makeReversedRange(animations)) {

If you always access them in this reversed manner, why not have Ordering::SortedDescending or something like that, to avoid sorting then reversing?

&gt; Source/WebCore/animation/DocumentTimeline.cpp:476
&gt; +    for (const auto&amp; animation : m_allAnimations) {

Do you need the const here?

&gt; Source/WebCore/animation/DocumentTimeline.cpp:480
&gt; +            animation-&gt;setReplaceState(WebAnimation::ReplaceState::Removed);

Also, this looks like a non-const method?

&gt; Source/WebCore/animation/DocumentTimeline.cpp:488
&gt; +            // 6. If animation has a document for timing, then append removeEvent to its document for timing&apos;s pending animation
&gt; +            //    event queue along with its target, animation. For the scheduled event time, use the result of applying the procedure
&gt; +            //    to convert timeline time to origin-relative time to the current time of the timeline with which animation is associated.
&gt; +            //    Otherwise, queue a task to dispatch removeEvent at animation. The task source for this task is the DOM manipulation task source.

It&apos;s not clear you&apos;re doing this. What does queue a task to dispatch removeEvent at animation mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575939</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-10-02 04:38:37 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #3)
&gt; Comment on attachment 380002 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380002&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/AnimationTimeline.cpp:195
&gt; &gt; +            Vector&lt;RefPtr&lt;WebAnimation&gt;&gt; sortedWebAnimations;
&gt; 
&gt; Initialize the vector with the size of webAnimations.size()

Will do.

&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:450
&gt; &gt; +    auto animations = animationsForElement(*target, AnimationTimeline::Ordering::Sorted);
&gt; &gt; +    for (auto&amp; animationWithHigherCompositeOrder : WTF::makeReversedRange(animations)) {
&gt; 
&gt; If you always access them in this reversed manner, why not have
&gt; Ordering::SortedDescending or something like that, to avoid sorting then
&gt; reversing?

It would make animationsForElement() more complex while I don&apos;t believe there&apos;s any cost in using this reversed iterator. But I could be mistaken!

&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:476
&gt; &gt; +    for (const auto&amp; animation : m_allAnimations) {
&gt; 
&gt; Do you need the const here?
&gt; 
&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:480
&gt; &gt; +            animation-&gt;setReplaceState(WebAnimation::ReplaceState::Removed);
&gt; 
&gt; Also, this looks like a non-const method?

Correct, I&apos;ll remove the const here.

&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:488
&gt; &gt; +            // 6. If animation has a document for timing, then append removeEvent to its document for timing&apos;s pending animation
&gt; &gt; +            //    event queue along with its target, animation. For the scheduled event time, use the result of applying the procedure
&gt; &gt; +            //    to convert timeline time to origin-relative time to the current time of the timeline with which animation is associated.
&gt; &gt; +            //    Otherwise, queue a task to dispatch removeEvent at animation. The task source for this task is the DOM manipulation task source.
&gt; 
&gt; It&apos;s not clear you&apos;re doing this. What does queue a task to dispatch
&gt; removeEvent at animation mean?

It&apos;s done by WebAnimation::enqueueAnimationPlaybackEvent().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575940</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-10-02 04:47:19 -0700</bug_when>
    <thetext>Committed r250603: &lt;https://trac.webkit.org/changeset/250603&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575983</commentid>
    <comment_count>6</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-10-02 08:08:22 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/250603/webkit

is causing testing to exit early with 50 crashes.

Build:
https://build.webkit.org/builders/Apple%20Mojave%20Release%20WK2%20%28Tests%29/builds/7061

results:
https://build.webkit.org/results/Apple%20Mojave%20Release%20WK2%20(Tests)/r250603%20(7061)/results.html

I was able to reproduce this locally by running the effected tests on 250603 which failed, and 250602 which passed. Can this be addressed quickly? Otherwise we will need to roll this back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576012</commentid>
    <comment_count>7</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-10-02 08:58:17 -0700</bug_when>
    <thetext>Reverted r250603 for reason:

Caused testing to exit early with crashes on Mac

Committed r250607: &lt;https://trac.webkit.org/changeset/250607&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576081</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-10-02 11:30:17 -0700</bug_when>
    <thetext>Committed r250617: &lt;https://trac.webkit.org/changeset/250617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576621</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-10-03 15:17:10 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/250617/webkit

caused this test for crash on debug: imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=imported%2Fw3c%2Fweb-platform-tests%2Fweb-animations%2Ftiming-model%2Ftimelines%2Fupdate-and-send-events-replacement.html

Crash Log:
No crash log found for DumpRenderTree:41843.

stdout:

stderr:
ASSERTION FAILED: !animation.timeline() || animation.timeline() == this
./animation/AnimationTimeline.cpp(75) : virtual void WebCore::AnimationTimeline::removeAnimation(WebCore::WebAnimation &amp;)
1   0x10ce41cb9 WTFCrash
2   0x121eb0a0b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x1240b53d7 WebCore::AnimationTimeline::removeAnimation(WebCore::WebAnimation&amp;)
4   0x1240be557 WebCore::DocumentTimeline::removeAnimation(WebCore::WebAnimation&amp;)
5   0x1240bf088 WebCore::DocumentTimeline::removeReplacedAnimations()
6   0x1240be89a WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents()
7   0x1240be60c WebCore::DocumentTimeline::updateAnimationsAndSendEvents(double)
8   0x1247214c6 WebCore::Document::updateAnimationsAndSendEvents(double)
9   0x12545f8d1 WebCore::Page::updateRendering()
10  0x1163b6966 -[WebView(WebPrivate) _viewWillDrawInternal]
11  0x1163de04c LayerFlushController::flushLayers()
12  0x1164d0d39 WebViewLayerFlushScheduler::layerFlushCallback()
13  0x1164d22c8 WebViewLayerFlushScheduler::WebViewLayerFlushScheduler(LayerFlushController*)::$_0::operator()() const
14  0x1164d2289 WTF::Detail::CallableWrapper&lt;WebViewLayerFlushScheduler::WebViewLayerFlushScheduler(LayerFlushController*)::$_0, void&gt;::call()
15  0x121ebe15a WTF::Function&lt;void ()&gt;::operator()() const
16  0x1256bbffc WebCore::RunLoopObserver::runLoopObserverFired()
17  0x1256bbf60 WebCore::RunLoopObserver::runLoopObserverFired(__CFRunLoopObserver*, unsigned long, void*)
18  0x7fff34ed2f28 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
19  0x7fff34ed2e5d __CFRunLoopDoObservers
20  0x7fff34e756a7 __CFRunLoopRun
21  0x7fff34e74ebe CFRunLoopRunSpecific
22  0x10c18036b runTest(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;)
23  0x10c17f56a runTestingServerLoop()
24  0x10c17ec93 dumpRenderTree(int, char const**)
25  0x10c180d7d DumpRenderTreeMain(int, char const**)
26  0x10c209202 main
27  0x7fff60dcb3d5 start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576827</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-10-04 05:39:18 -0700</bug_when>
    <thetext>The crash is specific to Debug builds and affects both WK1 and WK2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576829</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-10-04 05:48:13 -0700</bug_when>
    <thetext>Two of the subtests cause this crash: &quot;Removes an animation after updating another animation&apos;s timeline&quot; and &quot;Removes an animation after updating its timeline&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576831</commentid>
    <comment_count>12</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-10-04 06:16:35 -0700</bug_when>
    <thetext>This (In reply to Truitt Savell from comment #9)
&gt; It looks like the changes in https://trac.webkit.org/changeset/250617/webkit caused this test for crash on debug:
&gt; imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html
This is slowing down macOS Debug WK1 EWS, can we either fix this soon, revert the commit or mark the test as failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576840</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-10-04 06:41:35 -0700</bug_when>
    <thetext>The crash fix is covered by bug 202583 which has a patch up for review.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380002</attachid>
            <date>2019-10-02 01:36:42 -0700</date>
            <delta_ts>2019-10-02 04:30:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202190-20191002103640.patch</filename>
            <type>text/plain</type>
            <size>44152</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIyNzY0NDU0ODE4NDA2
MTg2YzcxYmEwZTI4YWU2NTYyYWI1Y2QyNy4uNzA5NGRjN2NlNWJlNGVhMGZkNWIyOWQwOWE2ODQw
MzZjZDAzZDNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE5LTEwLTAyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBJbXBsZW1lbnQgcmVwbGFjZWQgYW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTkwCisgICAgICAgIDxyZGFyOi8vNTU2OTc3MTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVt
ZW50aW5nIHNlY3Rpb24gIjUuNSBSZXBsYWNpbmcgQW5pbWF0aW9ucyIgKGh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy93ZWItYW5pbWF0aW9ucy8jcmVwbGFjaW5nLWFuaW1hdGlvbnMpIG9mIHRoZSBX
ZWIgQW5pbWF0aW9ucworICAgICAgICBzcGVjaWZpY2F0aW9uIHdoaWNoIGFsbG93cyBmb3IgV2Vi
IEFuaW1hdGlvbnMgdG8gYmUgZGVzdHJveWVkIHdoZW4gdGhleSBhcmUgc3VwZXJzZWRlZCBieSBh
bm90aGVyIGFuaW1hdGlvbiBhbmQgdGhlIGRldmVsb3BlciBkb2Vzbid0CisgICAgICAgIGV4cGxp
Y2l0bHkgb3B0IGludG8gcGVyc2lzdGluZyB0aGVtIHVzaW5nIHRoZSBwZXJzaXN0KCkgbWV0aG9k
LgorCisgICAgICAgIEFuIGFuaW1hdGlvbiBpcyBtYXJrZWQgYXMgcmVwbGFjZWFibGUgKHRvIHN1
bSB1cCkgd2hlbiBpdCdzIGZpbmlzaGVkIGFuZCBhbm90aGVyIGFuaW1hdGlvbiBmb3IgdGhlIHNh
bWUgcHJvcGVydHkgdGFrZXMgcHJlY2VkZW5jZS4KKyAgICAgICAgQXMgcGFydCBvZiBEb2N1bWVu
dFRpbWVsaW5lOjppbnRlcm5hbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCksIHdlJ2xs
IGdvIHRocm91Z2ggYWxsIHJlcGxhY2VhYmxlIGFuaW1hdGlvbnMsIGRpc3BhdGNoIGEgInJlbW92
ZSIKKyAgICAgICAgRE9NIGV2ZW50LCBhbmQgcmVtb3ZlIHRoZW0gZnJvbSBvdXIgbGlzdCBvZiBh
bmltYXRpb25zLgorCisgICAgICAgIFdlIGFsc28gbWFrZSBhIGNvdXBsZSBvZiBmaXhlcyBpbiB0
aGlzIHBhdGNoIHRoYXQgd2VyZSB1bmNvdmVyZWQgd2hpbGUgd29ya2luZyBvbiB0aGUgV1BUIHRl
c3RzIGZvciByZXBsYWNlZCBhbmltYXRpb25zOgorICAgICAgICAKKyAgICAgICAgLSB3ZSB3b3Vs
ZCBpbmNvcnJlY3RseSBwYXJzZSBzaW5nbGUgdmFsdWVzIGZvciBhIHByb3BlcnR5IHRoYXQgYWxs
b3dzIGxpc3RzIChjaGFuZ2UgaW4gS2V5ZnJhbWVFZmZlY3QncyBwcm9jZXNzS2V5ZnJhbWVMaWtl
T2JqZWN0KCkpCisgICAgICAgIC0gd2UgZGlkbid0IGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBp
biB0aGUgZ2xvYmFsIGFuaW1hdGlvbiBsaXN0IHdoZW4gc29ydGVkIGFuaW1hdGlvbnMgYnkgY29t
cG9zaXRlIG9yZGVyIChBbmltYXRpb25UaW1lbGluZTo6YW5pbWF0aW9uc0ZvckVsZW1lbnQoKSkK
KworICAgICAgICBGaW5hbGx5LCB0byBnZXQgbW9yZSByZWFkYWJsZSByZXN1bHRzLCB3ZSBpbXBs
ZW1lbnQgYSBzdHViIG9mIGNvbW1pdFN0eWxlcygpLiBJdHMgZnVsbCBpbXBsZW1lbnRhdGlvbiBp
cyB0cmFja2VkIGJ5IGh0dHA6Ly93a2IudWcvMjAyMTkzLgorCisgICAgICAgICogYW5pbWF0aW9u
L0FuaW1hdGlvblRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblRpbWVs
aW5lOjphbmltYXRpb25UaW1pbmdEaWRDaGFuZ2UpOiBNYXJrIHRoZSBwb3NpdGlvbiBvZiB0aGUg
YW5pbWF0aW9uIGluIHRoZSBnbG9iYWwgYW5pbWF0aW9uIGxpc3QsIHRvIHdoaWNoIGl0IG1heSBv
bmx5IGJlIGFkZGVkIG9uY2UuCisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6
YW5pbWF0aW9uc0ZvckVsZW1lbnQgY29uc3QpOiBBY2NvdW50IGZvciB0aGUgYW5pbWF0aW9uJ3Mg
cG9zaXRpb24gaW4gdGhlIGdsb2JhbCBhbmltYXRpb24gd2hlbiBzb3J0aW5nLgorICAgICAgICAq
IGFuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZWNsYXJhdGl2ZUFuaW1hdGlvbjo6YmluZGluZ3NSZXBsYWNlU3RhdGUgY29uc3QpOiBGbHVzaCBw
ZW5kaW5nIHN0eWxlcyB3aGVuIHF1ZXJ5aW5nIHRoZSByZWFkeSBzdGF0ZSBmb3IgYSBkZWNsYXJh
dGl2ZSBhbmltYXRpb24uCisgICAgICAgICogYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9u
Lmg6CisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6aW50ZXJuYWxVcGRhdGVBbmltYXRpb25zQW5kU2Vu
ZEV2ZW50cyk6IFJ1biB0aGUgInJlbW92ZSByZXBsYWNlZCBhbmltYXRpb25zIiBwcm9jZWR1cmUg
YXMgdGhlIHNlY29uZCBzdGVwIGluIHRoZSAidXBkYXRlIGFuaW1hdGlvbnMKKyAgICAgICAgYW5k
IHNlbmQgZXZlbnRzIiBwcm9jZWR1cmUuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVs
aW5lOjphbmltYXRpb25DYW5CZVJlbW92ZWQpOiBEZXRlcm1pbmUgd2hldGhlciBhIGdpdmVuIGFu
aW1hdGlvbiBtYXkgYmUgcmVtb3ZlZCBiYXNlZCBvbiBpdHMgZmluaXNoZWQgc3RhdGUsIHJlcGxh
Y2Ugc3RhdGUgYW5kIHdoZXRoZXIKKyAgICAgICAgaXQgaXMgZnVsbHkgc3VwZXJzZWRlZCBieSBh
bm90aGVyIGFuaW1hdGlvbiB0YXJnZXRpbmcgdGhlIHNhbWUgcHJvcGVydHkgb24gdGhlIHNhbWUg
dGFyZ2V0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjpyZW1v
dmVSZXBsYWNlZEFuaW1hdGlvbnMpOiBSZW1vdmUgYW55IHJlbW92YWJsZSBhbmltYXRpb24gYW5k
IGRpc3BhdGNoIGEgInJlbW92ZSIgRE9NIGV2ZW50IGZvciBlYWNoIHJlbW92ZWQgYW5pbWF0aW9u
LiAKKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oOgorICAgICAgICAqIGFu
aW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm9jZXNzS2V5
ZnJhbWVMaWtlT2JqZWN0KTogRml4IGFuIGlzc3VlIGZvdW5kIGluIGEgcmVwbGFjZWQgYW5pbWF0
aW9ucyBXUFQgdGVzdCB0aGF0IHNob3dlZCB0aGF0IHdlIGRpZG4ndCByZWNvcmQgdGhlIHZhbHVl
IG9mIGFuIGFuaW1hdGlvbiB0aGF0IGFsbG93cyBsaXN0cy4KKyAgICAgICAgKiBhbmltYXRpb24v
V2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aXNSZXBs
YWNlYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnBlcnNpc3Qp
OiBNYXJrIHRoZSByZXBsYWNlIHN0YXRlIGFzICJwZXJzaXN0ZWQiIGFuZCBlbnN1cmUgdGhlIGFu
aW1hdGlvbiBpcyBzZXQgb24gdGhlIGFuaW1hdGlvbiBsaXN0IGZvciBpdHMgdGFyZ2V0IGVsZW1l
bnQgaW4gY2FzZSBpdCBoYWQgYWxyZWFkeQorICAgICAgICBiZWVuIHJlbW92ZWQgYmFzZWQgb24g
aXRzIHBlcnNpc3RlZCBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y29t
bWl0U3R5bGVzKTogU3R1YiBmb3IgYSBuZXcgZnVuY3Rpb24uCisgICAgICAgICogYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpyZXBsYWNl
U3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpzZXRSZXBsYWNl
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpiaW5kaW5nc1JlcGxhY2VT
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246Omdsb2JhbFBvc2l0
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6c2V0R2xvYmFsUG9z
aXRpb24pOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsOgorICAgICAgICAq
IGRvbS9FdmVudE5hbWVzLmg6IEFkZCB0aGUgbmV3ICJyZW1vdmUiIGV2ZW50IHNvIHRoYXQgdGhl
ICJvbnJlbW92ZSIgRE9NIHByb3BlcnR5IGlzIGF2YWlsYWJsZSBvbiBBbmltYXRpb24gb2JqZWN0
cy4gCisKIDIwMTktMDktMjkgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOiB1c2UgTGF5ZXJSZXByZXNlbnRh
dGlvbiBmb3Igc2Nyb2xsIGNvbnRhaW5lciwgc2Nyb2xsZWQgY29udGVudHMgbGF5ZXJzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcAppbmRleCAxMTAw
MTAyN2EwNjc2OTgxYjkxYWU1YTIzNmI4MGM1YTVjZTcxMmI1Li5iNDU5N2RmZGEyMjgxODI5ZGEy
ZTExMjRiMjA1OGE2N2YyN2M2NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9B
bmltYXRpb25UaW1lbGluZS5jcHAKQEAgLTYyLDYgKzYyLDcgQEAgdm9pZCBBbmltYXRpb25UaW1l
bGluZTo6Zm9yZ2V0QW5pbWF0aW9uKFdlYkFuaW1hdGlvbiogYW5pbWF0aW9uKQogdm9pZCBBbmlt
YXRpb25UaW1lbGluZTo6YW5pbWF0aW9uVGltaW5nRGlkQ2hhbmdlKFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQogewogICAgIGlmIChtX2FuaW1hdGlvbnMuYWRkKCZhbmltYXRpb24pKSB7CisgICAg
ICAgIGFuaW1hdGlvbi5zZXRHbG9iYWxQb3NpdGlvbihtX2FsbEFuaW1hdGlvbnMuc2l6ZSgpKTsK
ICAgICAgICAgbV9hbGxBbmltYXRpb25zLmFwcGVuZChtYWtlV2Vha1B0cigmYW5pbWF0aW9uKSk7
CiAgICAgICAgIGF1dG8qIHRpbWVsaW5lID0gYW5pbWF0aW9uLnRpbWVsaW5lKCk7CiAgICAgICAg
IGlmICh0aW1lbGluZSAmJiB0aW1lbGluZSAhPSB0aGlzKQpAQCAtMTkwLDcgKzE5MSwxNSBAQCBW
ZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IEFuaW1hdGlvblRpbWVsaW5lOjphbmltYXRpb25z
Rm9yRWxlbWVudChFbGVtZW50JiBlbAogICAgIH0KICAgICBpZiAobV9lbGVtZW50VG9BbmltYXRp
b25zTWFwLmNvbnRhaW5zKCZlbGVtZW50KSkgewogICAgICAgICBjb25zdCBhdXRvJiB3ZWJBbmlt
YXRpb25zID0gbV9lbGVtZW50VG9BbmltYXRpb25zTWFwLmdldCgmZWxlbWVudCk7Ci0gICAgICAg
IGFuaW1hdGlvbnMuYXBwZW5kUmFuZ2Uod2ViQW5pbWF0aW9ucy5iZWdpbigpLCB3ZWJBbmltYXRp
b25zLmVuZCgpKTsKKyAgICAgICAgaWYgKG9yZGVyaW5nID09IE9yZGVyaW5nOjpTb3J0ZWQpIHsK
KyAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gc29ydGVkV2ViQW5pbWF0
aW9uczsKKyAgICAgICAgICAgIHNvcnRlZFdlYkFuaW1hdGlvbnMuYXBwZW5kUmFuZ2Uod2ViQW5p
bWF0aW9ucy5iZWdpbigpLCB3ZWJBbmltYXRpb25zLmVuZCgpKTsKKyAgICAgICAgICAgIHN0ZDo6
c29ydChzb3J0ZWRXZWJBbmltYXRpb25zLmJlZ2luKCksIHNvcnRlZFdlYkFuaW1hdGlvbnMuZW5k
KCksIFtdKGF1dG8mIGxoYSwgYXV0byYgcmhhKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxo
YS0+Z2xvYmFsUG9zaXRpb24oKSA8IHJoYS0+Z2xvYmFsUG9zaXRpb24oKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgYW5pbWF0aW9ucy5hcHBlbmRWZWN0b3Ioc29ydGVkV2ViQW5pbWF0
aW9ucyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYW5pbWF0aW9ucy5hcHBlbmRSYW5n
ZSh3ZWJBbmltYXRpb25zLmJlZ2luKCksIHdlYkFuaW1hdGlvbnMuZW5kKCkpOwogICAgIH0KICAg
ICByZXR1cm4gYW5pbWF0aW9uczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCmluZGV4IDJhNjAzZGFhYTYwMTBkNjQ2NDU3OTAxNzg2
ZjY3MDU1MGM1NGQ2MTMuLjEzOTU5ZTAzYzIyNWQ3MTY0NTg2ZWMwMDM4N2E5YTI1MGRhZDlhNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9u
LmNwcApAQCAtMTUzLDYgKzE1MywxMiBAQCBXZWJBbmltYXRpb246OlBsYXlTdGF0ZSBEZWNsYXJh
dGl2ZUFuaW1hdGlvbjo6YmluZGluZ3NQbGF5U3RhdGUoKSBjb25zdAogICAgIHJldHVybiBXZWJB
bmltYXRpb246OmJpbmRpbmdzUGxheVN0YXRlKCk7CiB9CiAKK1dlYkFuaW1hdGlvbjo6UmVwbGFj
ZVN0YXRlIERlY2xhcmF0aXZlQW5pbWF0aW9uOjpiaW5kaW5nc1JlcGxhY2VTdGF0ZSgpIGNvbnN0
Cit7CisgICAgZmx1c2hQZW5kaW5nU3R5bGVDaGFuZ2VzKCk7CisgICAgcmV0dXJuIFdlYkFuaW1h
dGlvbjo6YmluZGluZ3NSZXBsYWNlU3RhdGUoKTsKK30KKwogYm9vbCBEZWNsYXJhdGl2ZUFuaW1h
dGlvbjo6YmluZGluZ3NQZW5kaW5nKCkgY29uc3QKIHsKICAgICBmbHVzaFBlbmRpbmdTdHlsZUNo
YW5nZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2
ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0
aW9uLmgKaW5kZXggYzZhNzQwYTY1ODJlNDU2YmRiYWQ4YjNhNTJjOTdjZDU3NjAxNDE3MC4uMTRk
MmQ2Yjc3MDRiNGI5ZDMyZTFiNTdkN2Y1MTdiNmMzYTE1ODk5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKQEAgLTU0LDYgKzU0LDcgQEAg
cHVibGljOgogICAgIE9wdGlvbmFsPGRvdWJsZT4gYmluZGluZ3NDdXJyZW50VGltZSgpIGNvbnN0
IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEJpbmRpbmdzQ3VycmVudFRpbWUoT3B0
aW9uYWw8ZG91YmxlPikgZmluYWw7CiAgICAgV2ViQW5pbWF0aW9uOjpQbGF5U3RhdGUgYmluZGlu
Z3NQbGF5U3RhdGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJBbmltYXRpb246OlJlcGxhY2VTdGF0
ZSBiaW5kaW5nc1JlcGxhY2VTdGF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgYmluZGluZ3NQ
ZW5kaW5nKCkgY29uc3QgZmluYWw7CiAgICAgV2ViQW5pbWF0aW9uOjpSZWFkeVByb21pc2UmIGJp
bmRpbmdzUmVhZHkoKSBmaW5hbDsKICAgICBXZWJBbmltYXRpb246OkZpbmlzaGVkUHJvbWlzZSYg
YmluZGluZ3NGaW5pc2hlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Rv
Y3VtZW50VGltZWxpbmUuY3BwCmluZGV4IGNhZjBhMjE3NDNiNzZjN2RiNWNlODEyMGRlOTViYzhi
NDczMzg4MmUuLmZmOGFiZjBhOGFlOGRiMTNkM2Y4NDJlMDcwNmVkODJkMjZiMzA1NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKQEAgLTM3OCwx
NCArMzc4LDE3IEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6aW50ZXJuYWxVcGRhdGVBbmltYXRp
b25zQW5kU2VuZEV2ZW50cygpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyAyLiBQZXJmb3Jt
IGEgbWljcm90YXNrIGNoZWNrcG9pbnQuCisgICAgLy8gMi4gUmVtb3ZlIHJlcGxhY2VkIGFuaW1h
dGlvbnMgZm9yIGRvYy4KKyAgICByZW1vdmVSZXBsYWNlZEFuaW1hdGlvbnMoKTsKKworICAgIC8v
IDMuIFBlcmZvcm0gYSBtaWNyb3Rhc2sgY2hlY2twb2ludC4KICAgICBNaWNyb3Rhc2tRdWV1ZTo6
bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKIAotICAgIC8v
IDMuIExldCBldmVudHMgdG8gZGlzcGF0Y2ggYmUgYSBjb3B5IG9mIGRvYydzIHBlbmRpbmcgYW5p
bWF0aW9uIGV2ZW50IHF1ZXVlLgotICAgIC8vIDQuIENsZWFyIGRvYydzIHBlbmRpbmcgYW5pbWF0
aW9uIGV2ZW50IHF1ZXVlLgorICAgIC8vIDQuIExldCBldmVudHMgdG8gZGlzcGF0Y2ggYmUgYSBj
b3B5IG9mIGRvYydzIHBlbmRpbmcgYW5pbWF0aW9uIGV2ZW50IHF1ZXVlLgorICAgIC8vIDUuIENs
ZWFyIGRvYydzIHBlbmRpbmcgYW5pbWF0aW9uIGV2ZW50IHF1ZXVlLgogICAgIGF1dG8gcGVuZGlu
Z0FuaW1hdGlvbkV2ZW50cyA9IFdURk1vdmUobV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzKTsKIAot
ICAgIC8vIDUuIFBlcmZvcm0gYSBzdGFibGUgc29ydCBvZiB0aGUgYW5pbWF0aW9uIGV2ZW50cyBp
biBldmVudHMgdG8gZGlzcGF0Y2ggYXMgZm9sbG93cy4KKyAgICAvLyA2LiBQZXJmb3JtIGEgc3Rh
YmxlIHNvcnQgb2YgdGhlIGFuaW1hdGlvbiBldmVudHMgaW4gZXZlbnRzIHRvIGRpc3BhdGNoIGFz
IGZvbGxvd3MuCiAgICAgc3RkOjpzdGFibGVfc29ydChwZW5kaW5nQW5pbWF0aW9uRXZlbnRzLmJl
Z2luKCksIHBlbmRpbmdBbmltYXRpb25FdmVudHMuZW5kKCksIFtdIChjb25zdCBSZWY8QW5pbWF0
aW9uUGxheWJhY2tFdmVudD4mIGxocywgY29uc3QgUmVmPEFuaW1hdGlvblBsYXliYWNrRXZlbnQ+
JiByaHMpIHsKICAgICAgICAgLy8gMS4gU29ydCB0aGUgZXZlbnRzIGJ5IHRoZWlyIHNjaGVkdWxl
ZCBldmVudCB0aW1lIHN1Y2ggdGhhdCBldmVudHMgdGhhdCB3ZXJlIHNjaGVkdWxlZCB0byBvY2N1
ciBlYXJsaWVyLCBzb3J0IGJlZm9yZSBldmVudHMgc2NoZWR1bGVkIHRvIG9jY3VyIGxhdGVyCiAg
ICAgICAgIC8vIGFuZCBldmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgdW5yZXNv
bHZlZCBzb3J0IGJlZm9yZSBldmVudHMgd2l0aCBhIHJlc29sdmVkIHNjaGVkdWxlZCBldmVudCB0
aW1lLgpAQCAtMzk5LDcgKzQwMiw3IEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6aW50ZXJuYWxV
cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpCiAgICAgICAgIHJldHVybiBsaHMtPnRpbWVs
aW5lVGltZSgpLnZhbHVlKCkgPCByaHMtPnRpbWVsaW5lVGltZSgpLnZhbHVlKCk7CiAgICAgfSk7
CiAKLSAgICAvLyA2LiBEaXNwYXRjaCBlYWNoIG9mIHRoZSBldmVudHMgaW4gZXZlbnRzIHRvIGRp
c3BhdGNoIGF0IHRoZWlyIGNvcnJlc3BvbmRpbmcgdGFyZ2V0IHVzaW5nIHRoZSBvcmRlciBlc3Rh
Ymxpc2hlZCBpbiB0aGUgcHJldmlvdXMgc3RlcC4KKyAgICAvLyA3LiBEaXNwYXRjaCBlYWNoIG9m
IHRoZSBldmVudHMgaW4gZXZlbnRzIHRvIGRpc3BhdGNoIGF0IHRoZWlyIGNvcnJlc3BvbmRpbmcg
dGFyZ2V0IHVzaW5nIHRoZSBvcmRlciBlc3RhYmxpc2hlZCBpbiB0aGUgcHJldmlvdXMgc3RlcC4K
ICAgICBmb3IgKGF1dG8mIHBlbmRpbmdFdmVudCA6IHBlbmRpbmdBbmltYXRpb25FdmVudHMpCiAg
ICAgICAgIHBlbmRpbmdFdmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50
KTsKIApAQCAtNDE4LDYgKzQyMSw4MSBAQCB2b2lkIERvY3VtZW50VGltZWxpbmU6OmludGVybmFs
VXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoKQogICAgICAgICB0cmFuc2l0aW9uRGlkQ29t
cGxldGUoY29tcGxldGVkVHJhbnNpdGlvbik7CiB9CiAKK2Jvb2wgRG9jdW1lbnRUaW1lbGluZTo6
YW5pbWF0aW9uQ2FuQmVSZW1vdmVkKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIC8v
IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy93ZWItYW5pbWF0aW9ucy8jcmVtb3ZpbmctcmVwbGFj
ZWQtYW5pbWF0aW9ucworCisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworCisgICAgLy8gLSBpcyBy
ZXBsYWNlYWJsZSwgYW5kCisgICAgaWYgKCFhbmltYXRpb24uaXNSZXBsYWNlYWJsZSgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAtIGhhcyBhIHJlcGxhY2Ugc3RhdGUgb2YgYWN0
aXZlLCBhbmQKKyAgICBpZiAoYW5pbWF0aW9uLnJlcGxhY2VTdGF0ZSgpICE9IFdlYkFuaW1hdGlv
bjo6UmVwbGFjZVN0YXRlOjpBY3RpdmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8v
IC0gaGFzIGFuIGFzc29jaWF0ZWQgYW5pbWF0aW9uIGVmZmVjdCB3aG9zZSB0YXJnZXQgZWxlbWVu
dCBpcyBhIGRlc2NlbmRhbnQgb2YgZG9jLCBhbmQKKyAgICBhdXRvKiBlZmZlY3QgPSBhbmltYXRp
b24uZWZmZWN0KCk7CisgICAgaWYgKCFpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byoga2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxL
ZXlmcmFtZUVmZmVjdD4oZWZmZWN0KTsKKyAgICBhdXRvKiB0YXJnZXQgPSBrZXlmcmFtZUVmZmVj
dC0+dGFyZ2V0KCk7CisgICAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC0+aXNEZXNjZW5kYW50T2Yo
Km1fZG9jdW1lbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBIYXNoU2V0PENTU1By
b3BlcnR5SUQ+IHByb3BlcnRpZXNUb01hdGNoID0ga2V5ZnJhbWVFZmZlY3QtPmFuaW1hdGVkUHJv
cGVydGllcygpOworICAgIGF1dG8gYW5pbWF0aW9ucyA9IGFuaW1hdGlvbnNGb3JFbGVtZW50KCp0
YXJnZXQsIEFuaW1hdGlvblRpbWVsaW5lOjpPcmRlcmluZzo6U29ydGVkKTsKKyAgICBmb3IgKGF1
dG8mIGFuaW1hdGlvbldpdGhIaWdoZXJDb21wb3NpdGVPcmRlciA6IFdURjo6bWFrZVJldmVyc2Vk
UmFuZ2UoYW5pbWF0aW9ucykpIHsKKyAgICAgICAgaWYgKCZhbmltYXRpb24gPT0gYW5pbWF0aW9u
V2l0aEhpZ2hlckNvbXBvc2l0ZU9yZGVyKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
aWYgKGFuaW1hdGlvbldpdGhIaWdoZXJDb21wb3NpdGVPcmRlciAmJiBhbmltYXRpb25XaXRoSGln
aGVyQ29tcG9zaXRlT3JkZXItPmlzUmVwbGFjZWFibGUoKSkgeworICAgICAgICAgICAgYXV0byog
ZWZmZWN0V2l0aEhpZ2hlckNvbXBvc2l0ZU9yZGVyID0gYW5pbWF0aW9uV2l0aEhpZ2hlckNvbXBv
c2l0ZU9yZGVyLT5lZmZlY3QoKTsKKyAgICAgICAgICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4o
ZWZmZWN0V2l0aEhpZ2hlckNvbXBvc2l0ZU9yZGVyKSkgeworICAgICAgICAgICAgICAgIGF1dG8q
IGtleWZyYW1lRWZmZWN0V2l0aEhpZ2hlckNvbXBvc2l0ZU9yZGVyID0gZG93bmNhc3Q8S2V5ZnJh
bWVFZmZlY3Q+KGVmZmVjdFdpdGhIaWdoZXJDb21wb3NpdGVPcmRlcik7CisgICAgICAgICAgICAg
ICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBrZXlmcmFtZUVmZmVjdFdpdGhIaWdoZXJDb21w
b3NpdGVPcmRlci0+YW5pbWF0ZWRQcm9wZXJ0aWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHByb3BlcnRpZXNUb01hdGNoLnJlbW92ZShjc3NQcm9wZXJ0eUlkKSAmJiBwcm9wZXJ0aWVz
VG9NYXRjaC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1
cm4gcHJvcGVydGllc1RvTWF0Y2guaXNFbXB0eSgpOworfQorCit2b2lkIERvY3VtZW50VGltZWxp
bmU6OnJlbW92ZVJlcGxhY2VkQW5pbWF0aW9ucygpCit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL3dlYi1hbmltYXRpb25zLyNyZW1vdmluZy1yZXBsYWNlZC1hbmltYXRpb25zCisK
KyAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGlvbnNUb1JlbW92ZTsKKwor
ICAgIC8vIFdoZW4gYXNrZWQgdG8gcmVtb3ZlIHJlcGxhY2VkIGFuaW1hdGlvbnMgZm9yIGEgRG9j
dW1lbnQsIGRvYywgdGhlbiBmb3IgZXZlcnkgYW5pbWF0aW9uLCBhbmltYXRpb24KKyAgICBmb3Ig
KGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6IG1fYWxsQW5pbWF0aW9ucykgeworICAgICAgICBpZiAo
YW5pbWF0aW9uICYmIGFuaW1hdGlvbkNhbkJlUmVtb3ZlZCgqYW5pbWF0aW9uKSkgeworICAgICAg
ICAgICAgLy8gcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgICAgICAgICAgLy8gMS4g
U2V0IGFuaW1hdGlvbidzIHJlcGxhY2Ugc3RhdGUgdG8gcmVtb3ZlZC4KKyAgICAgICAgICAgIGFu
aW1hdGlvbi0+c2V0UmVwbGFjZVN0YXRlKFdlYkFuaW1hdGlvbjo6UmVwbGFjZVN0YXRlOjpSZW1v
dmVkKTsKKyAgICAgICAgICAgIC8vIDIuIENyZWF0ZSBhbiBBbmltYXRpb25QbGF5YmFja0V2ZW50
LCByZW1vdmVFdmVudC4KKyAgICAgICAgICAgIC8vIDMuIFNldCByZW1vdmVFdmVudCdzIHR5cGUg
YXR0cmlidXRlIHRvIHJlbW92ZS4KKyAgICAgICAgICAgIC8vIDQuIFNldCByZW1vdmVFdmVudCdz
IGN1cnJlbnRUaW1lIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCB0aW1lIG9mIGFuaW1hdGlvbi4K
KyAgICAgICAgICAgIC8vIDUuIFNldCByZW1vdmVFdmVudCdzIHRpbWVsaW5lVGltZSBhdHRyaWJ1
dGUgdG8gdGhlIGN1cnJlbnQgdGltZSBvZiB0aGUgdGltZWxpbmUgd2l0aCB3aGljaCBhbmltYXRp
b24gaXMgYXNzb2NpYXRlZC4KKyAgICAgICAgICAgIC8vIDYuIElmIGFuaW1hdGlvbiBoYXMgYSBk
b2N1bWVudCBmb3IgdGltaW5nLCB0aGVuIGFwcGVuZCByZW1vdmVFdmVudCB0byBpdHMgZG9jdW1l
bnQgZm9yIHRpbWluZydzIHBlbmRpbmcgYW5pbWF0aW9uCisgICAgICAgICAgICAvLyAgICBldmVu
dCBxdWV1ZSBhbG9uZyB3aXRoIGl0cyB0YXJnZXQsIGFuaW1hdGlvbi4gRm9yIHRoZSBzY2hlZHVs
ZWQgZXZlbnQgdGltZSwgdXNlIHRoZSByZXN1bHQgb2YgYXBwbHlpbmcgdGhlIHByb2NlZHVyZQor
ICAgICAgICAgICAgLy8gICAgdG8gY29udmVydCB0aW1lbGluZSB0aW1lIHRvIG9yaWdpbi1yZWxh
dGl2ZSB0aW1lIHRvIHRoZSBjdXJyZW50IHRpbWUgb2YgdGhlIHRpbWVsaW5lIHdpdGggd2hpY2gg
YW5pbWF0aW9uIGlzIGFzc29jaWF0ZWQuCisgICAgICAgICAgICAvLyAgICBPdGhlcndpc2UsIHF1
ZXVlIGEgdGFzayB0byBkaXNwYXRjaCByZW1vdmVFdmVudCBhdCBhbmltYXRpb24uIFRoZSB0YXNr
IHNvdXJjZSBmb3IgdGhpcyB0YXNrIGlzIHRoZSBET00gbWFuaXB1bGF0aW9uIHRhc2sgc291cmNl
LgorICAgICAgICAgICAgYW5pbWF0aW9uLT5lbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudChl
dmVudE5hbWVzKCkucmVtb3ZlRXZlbnQsIGFuaW1hdGlvbi0+Y3VycmVudFRpbWUoKSwgY3VycmVu
dFRpbWUoKSk7CisKKyAgICAgICAgICAgIGFuaW1hdGlvbnNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0
aW9uLmdldCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZvciAoYXV0byYgYW5pbWF0aW9u
IDogYW5pbWF0aW9uc1RvUmVtb3ZlKQorICAgICAgICByZW1vdmVBbmltYXRpb24oKmFuaW1hdGlv
bik7Cit9CisKIHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6dHJhbnNpdGlvbkRpZENvbXBsZXRlKFJl
ZlB0cjxDU1NUcmFuc2l0aW9uPiB0cmFuc2l0aW9uKQogewogICAgIEFTU0VSVCh0cmFuc2l0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5l
LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oCmluZGV4IDQ5
YTExMTAwYjgzYzU1NjRiMDZiZTUxODRjODU1NDVlM2I3N2JkODcuLjQzMDA3Y2M4MWUwN2NiYjU5
MjEzMjIyNWI1MDFlOTFhMDI4YTU2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9Eb2N1bWVudFRpbWVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Rv
Y3VtZW50VGltZWxpbmUuaApAQCAtOTgsNiArOTgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlTGlzdE9mRWxlbWVudHNXaXRoUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1l
bnQoRWxlbWVudCYpOwogICAgIHZvaWQgdHJhbnNpdGlvbkRpZENvbXBsZXRlKFJlZlB0cjxDU1NU
cmFuc2l0aW9uPik7CiAgICAgdm9pZCBzY2hlZHVsZU5leHRUaWNrKCk7CisgICAgdm9pZCByZW1v
dmVSZXBsYWNlZEFuaW1hdGlvbnMoKTsKKyAgICBib29sIGFuaW1hdGlvbkNhbkJlUmVtb3ZlZChX
ZWJBbmltYXRpb24mKTsKIAogICAgIFRpbWVyIG1fdGlja1NjaGVkdWxlVGltZXI7CiAgICAgR2Vu
ZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9jdXJyZW50VGltZUNsZWFyaW5nVGFza1F1ZXVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggYTkzYTRlMmZm
ODE4Y2FhZGNmNTZiNDRmN2Q1MjhiNzFlMGQwZWZkMi4uYzA3YTAyZjU2OTRiMWEwMWM2ZmUzMDU2
ZDc2NzhkOGE0YjMxYWFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuY3BwCkBAIC0yNDMsMTAgKzI0MywxMCBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9y
PEtleWZyYW1lRWZmZWN0OjpLZXlmcmFtZUxpa2VPYmplY3Q+IHByb2Nlc3NLZXlmcmFtZUxpawog
ICAgICAgICAgICAgLy8gdXNpbmcgdGhlIHByb2NlZHVyZXMgZGVmaW5lZCBmb3IgY29udmVydGlu
ZyBhbiBFQ01BU2NyaXB0IHZhbHVlIHRvIGFuIElETCB2YWx1ZSBbV0VCSURMXS4KICAgICAgICAg
ICAgIC8vIElmIHByb3BlcnR5IHZhbHVlcyBpcyBhIHNpbmdsZSBET01TdHJpbmcsIHJlcGxhY2Ug
cHJvcGVydHkgdmFsdWVzIHdpdGggYSBzZXF1ZW5jZSBvZiBET01TdHJpbmdzIHdpdGggdGhlIG9y
aWdpbmFsIHZhbHVlIG9mIHByb3BlcnR5CiAgICAgICAgICAgICAvLyBWYWx1ZXMgYXMgdGhlIG9u
bHkgZWxlbWVudC4KLSAgICAgICAgICAgIGlmIChyYXdWYWx1ZS5pc1N0cmluZygpKQotICAgICAg
ICAgICAgICAgIHByb3BlcnR5VmFsdWVzID0geyByYXdWYWx1ZS50b1dURlN0cmluZygmc3RhdGUp
IH07Ci0gICAgICAgICAgICBlbHNlIGlmIChyYXdWYWx1ZS5pc09iamVjdCgpKQorICAgICAgICAg
ICAgaWYgKHJhd1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlWYWx1
ZXMgPSBjb252ZXJ0PElETFNlcXVlbmNlPElETERPTVN0cmluZz4+KHN0YXRlLCByYXdWYWx1ZSk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcHJvcGVydHlWYWx1ZXMgPSB7IHJh
d1ZhbHVlLnRvV1RGU3RyaW5nKCZzdGF0ZSkgfTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIC8vIE90aGVyd2lzZSwKICAgICAgICAgICAgIC8vIExldCBwcm9wZXJ0eSB2YWx1ZXMgYmUg
dGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIHJhdyB2YWx1ZSB0byBhIERPTVN0cmluZyB1c2luZyB0
aGUgcHJvY2VkdXJlIGZvciBjb252ZXJ0aW5nIGFuIEVDTUFTY3JpcHQgdmFsdWUgdG8gYSBET01T
dHJpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IGU2
ZGVhOTYxMWY5YjQ4ODBhNWExOWI5YWQxZTFiZGU3MWMxODQ3ODQuLjUwNGEyZjNlZWZmN2FmY2E4
ZGU3ZDVmYzQ4ZjA5Zjk1MTRlMzEyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJB
bmltYXRpb24uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZmZWN0
LmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIgogI2luY2x1ZGUgIkFuaW1h
dGlvblRpbWVsaW5lLmgiCisjaW5jbHVkZSAiRGVjbGFyYXRpdmVBbmltYXRpb24uaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCkBAIC0xMjAzLDYgKzEyMDQsNTggQEAgYm9vbCBXZWJBbmltYXRpb246
OmNvbXB1dGVSZWxldmFuY2UoKQogICAgIHJldHVybiB0aW1pbmcucGhhc2UgPT0gQW5pbWF0aW9u
RWZmZWN0UGhhc2U6OkJlZm9yZSB8fCAodGltaW5nLnBoYXNlID09IEFuaW1hdGlvbkVmZmVjdFBo
YXNlOjpBY3RpdmUgJiYgcGxheVN0YXRlKCkgIT0gUGxheVN0YXRlOjpGaW5pc2hlZCk7CiB9CiAK
K2Jvb2wgV2ViQW5pbWF0aW9uOjppc1JlcGxhY2VhYmxlKCkgY29uc3QKK3sKKyAgICAvLyBBbiBh
bmltYXRpb24gaXMgcmVwbGFjZWFibGUgaWYgYWxsIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgdHJ1ZToKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvd2ViLWFuaW1hdGlv
bnMvI3JlbW92aW5nLXJlcGxhY2VkLWFuaW1hdGlvbnMKKworICAgIC8vIFRoZSBleGlzdGVuY2Ug
b2YgdGhlIGFuaW1hdGlvbiBpcyBub3QgcHJlc2NyaWJlZCBieSBtYXJrdXAuIFRoYXQgaXMsIGl0
IGlzIG5vdCBhIENTUyBhbmltYXRpb24gd2l0aCBhbiBvd25pbmcgZWxlbWVudCwKKyAgICAvLyBu
b3IgYSBDU1MgdHJhbnNpdGlvbiB3aXRoIGFuIG93bmluZyBlbGVtZW50LgorICAgIGlmIChpc0Rl
Y2xhcmF0aXZlQW5pbWF0aW9uKCkgJiYgZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KHRo
aXMpLT5vd25pbmdFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFRo
ZSBhbmltYXRpb24ncyBwbGF5IHN0YXRlIGlzIGZpbmlzaGVkLgorICAgIGlmIChwbGF5U3RhdGUo
KSAhPSBQbGF5U3RhdGU6OkZpbmlzaGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAv
LyBUaGUgYW5pbWF0aW9uJ3MgcmVwbGFjZSBzdGF0ZSBpcyBub3QgcmVtb3ZlZC4KKyAgICBpZiAo
bV9yZXBsYWNlU3RhdGUgPT0gUmVwbGFjZVN0YXRlOjpSZW1vdmVkKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBUaGUgYW5pbWF0aW9uIGlzIGFzc29jaWF0ZWQgd2l0aCBhIG1vbm90
b25pY2FsbHkgaW5jcmVhc2luZyB0aW1lbGluZS4KKyAgICBpZiAoIW1fdGltZWxpbmUpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFRoZSBhbmltYXRpb24gaGFzIGFuIGFzc29jaWF0
ZWQgdGFyZ2V0IGVmZmVjdC4KKyAgICBpZiAoIW1fZWZmZWN0KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAvLyBUaGUgdGFyZ2V0IGVmZmVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGFuaW1h
dGlvbiBpcyBpbiBlZmZlY3QuCisgICAgaWYgKCFtX2VmZmVjdC0+Z2V0QmFzaWNUaW1pbmcoKS5h
Y3RpdmVUaW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBUaGUgdGFyZ2V0IGVm
ZmVjdCBoYXMgYW4gYXNzb2NpYXRlZCB0YXJnZXQgZWxlbWVudC4KKyAgICBpZiAoIWlzPEtleWZy
YW1lRWZmZWN0PihtX2VmZmVjdCkgfHwgIWRvd25jYXN0PEtleWZyYW1lRWZmZWN0PihtX2VmZmVj
dC5nZXQoKSktPnRhcmdldCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwordm9pZCBXZWJBbmltYXRpb246OnBlcnNpc3QoKQoreworICAgIGF1dG8gcHJl
dmlvdXNSZXBsYWNlU3RhdGUgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVwbGFjZVN0YXRlLCBSZXBsYWNl
U3RhdGU6OlBlcnNpc3RlZCk7CisKKyAgICBpZiAocHJldmlvdXNSZXBsYWNlU3RhdGUgPT0gUmVw
bGFjZVN0YXRlOjpSZW1vdmVkICYmIG1fdGltZWxpbmUpIHsKKyAgICAgICAgaWYgKGlzPEtleWZy
YW1lRWZmZWN0PihtX2VmZmVjdCkpCisgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25X
YXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKmRvd25jYXN0PEtleWZyYW1lRWZmZWN0PihtX2VmZmVj
dC5nZXQoKSktPnRhcmdldCgpKTsKKyAgICB9Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFdlYkFu
aW1hdGlvbjo6Y29tbWl0U3R5bGVzKCkKK3sKKyAgICByZXR1cm4geyB9OworfQorCiBTZWNvbmRz
IFdlYkFuaW1hdGlvbjo6dGltZVRvTmV4dFRpY2soKSBjb25zdAogewogICAgIEFTU0VSVChpc1J1
bm5pbmdBY2NlbGVyYXRlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24u
aAppbmRleCBhNGZhOWQxZjllYzhhODY3NDFjOGVjNjkzNTk2NDQxZTljNWMwODJlLi4zNTkyZDYy
NjJjZTg2YjIwOTEyYWM1ZjRkNTZjM2NkMzQ3MWVmMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC03NCw2ICs3NCwxMCBAQCBwdWJsaWM6CiAgICAgZW51bSBj
bGFzcyBQbGF5U3RhdGUgOiB1aW50OF90IHsgSWRsZSwgUnVubmluZywgUGF1c2VkLCBGaW5pc2hl
ZCB9OwogICAgIFBsYXlTdGF0ZSBwbGF5U3RhdGUoKSBjb25zdDsKIAorICAgIGVudW0gY2xhc3Mg
UmVwbGFjZVN0YXRlIDogdWludDhfdCB7IEFjdGl2ZSwgUmVtb3ZlZCwgUGVyc2lzdGVkIH07Cisg
ICAgUmVwbGFjZVN0YXRlIHJlcGxhY2VTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGFjZVN0
YXRlOyB9CisgICAgdm9pZCBzZXRSZXBsYWNlU3RhdGUoUmVwbGFjZVN0YXRlIHJlcGxhY2VTdGF0
ZSkgeyBtX3JlcGxhY2VTdGF0ZSA9IHJlcGxhY2VTdGF0ZTsgfQorCiAgICAgYm9vbCBwZW5kaW5n
KCkgY29uc3QgeyByZXR1cm4gaGFzUGVuZGluZ1BhdXNlVGFzaygpIHx8IGhhc1BlbmRpbmdQbGF5
VGFzaygpOyB9CiAKICAgICB1c2luZyBSZWFkeVByb21pc2UgPSBET01Qcm9taXNlUHJveHlXaXRo
UmVzb2x2ZUNhbGxiYWNrPElETEludGVyZmFjZTxXZWJBbmltYXRpb24+PjsKQEAgLTg5LDEyICs5
MywxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQbGF5YmFja1JhdGUoZG91YmxlKTsKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBwYXVzZSgpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldmVy
c2UoKTsKKyAgICB2b2lkIHBlcnNpc3QoKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21taXRT
dHlsZXMoKTsKIAogICAgIHZpcnR1YWwgT3B0aW9uYWw8ZG91YmxlPiBzdGFydFRpbWUoKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhcnRUaW1lKE9wdGlvbmFsPGRvdWJsZT4pOwogICAg
IHZpcnR1YWwgT3B0aW9uYWw8ZG91YmxlPiBiaW5kaW5nc0N1cnJlbnRUaW1lKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCaW5kaW5nc0N1cnJlbnRUaW1lKE9wdGlv
bmFsPGRvdWJsZT4pOwogICAgIHZpcnR1YWwgUGxheVN0YXRlIGJpbmRpbmdzUGxheVN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gcGxheVN0YXRlKCk7IH0KKyAgICB2aXJ0dWFsIFJlcGxhY2VTdGF0ZSBi
aW5kaW5nc1JlcGxhY2VTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIHJlcGxhY2VTdGF0ZSgpOyB9CiAg
ICAgdmlydHVhbCBib29sIGJpbmRpbmdzUGVuZGluZygpIGNvbnN0IHsgcmV0dXJuIHBlbmRpbmco
KTsgfQogICAgIHZpcnR1YWwgUmVhZHlQcm9taXNlJiBiaW5kaW5nc1JlYWR5KCkgeyByZXR1cm4g
cmVhZHkoKTsgfQogICAgIHZpcnR1YWwgRmluaXNoZWRQcm9taXNlJiBiaW5kaW5nc0ZpbmlzaGVk
KCkgeyByZXR1cm4gZmluaXNoZWQoKTsgfQpAQCAtMTE2LDcgKzEyMywxMiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB1bnN1c3BlbmRFZmZlY3RJbnZhbGlkYXRpb24oKTsKICAgICB2b2lkIHNldFN1c3Bl
bmRlZChib29sKTsKICAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1N1
c3BlbmRlZDsgfQorICAgIGJvb2wgaXNSZXBsYWNlYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmUoKTsKKyAgICB2b2lkIGVucXVldWVBbmltYXRpb25QbGF5YmFja0V2ZW50KGNv
bnN0IEF0b21TdHJpbmcmLCBPcHRpb25hbDxTZWNvbmRzPiwgT3B0aW9uYWw8U2Vjb25kcz4pOwor
CisgICAgdW5zaWduZWQgZ2xvYmFsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbFBv
c2l0aW9uOyB9CisgICAgdm9pZCBzZXRHbG9iYWxQb3NpdGlvbih1bnNpZ25lZCBnbG9iYWxQb3Np
dGlvbikgeyBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9zaXRpb247IH0KIAogICAgIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAKQEAgLTEzNyw3ICsxNDksNiBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCB0aW1pbmdEaWRDaGFuZ2UoRGlkU2VlaywgU3luY2hyb25vdXNs
eU5vdGlmeSk7CiAgICAgdm9pZCB1cGRhdGVGaW5pc2hlZFN0YXRlKERpZFNlZWssIFN5bmNocm9u
b3VzbHlOb3RpZnkpOwotICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29u
c3QgQXRvbVN0cmluZyYsIE9wdGlvbmFsPFNlY29uZHM+LCBPcHRpb25hbDxTZWNvbmRzPik7CiAg
ICAgU2Vjb25kcyBlZmZlY3RFbmRUaW1lKCkgY29uc3Q7CiAgICAgV2ViQW5pbWF0aW9uJiByZWFk
eVByb21pc2VSZXNvbHZlKCk7CiAgICAgV2ViQW5pbWF0aW9uJiBmaW5pc2hlZFByb21pc2VSZXNv
bHZlKCk7CkBAIC0xNzksNiArMTkwLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU2tp
cFVwZGF0aW5nRmluaXNoZWRTdGF0ZVdoZW5SZXNvbHZpbmc7CiAgICAgVGltZVRvUnVuUGVuZGlu
Z1Rhc2sgbV90aW1lVG9SdW5QZW5kaW5nUGxheVRhc2sgeyBUaW1lVG9SdW5QZW5kaW5nVGFzazo6
Tm90U2NoZWR1bGVkIH07CiAgICAgVGltZVRvUnVuUGVuZGluZ1Rhc2sgbV90aW1lVG9SdW5QZW5k
aW5nUGF1c2VUYXNrIHsgVGltZVRvUnVuUGVuZGluZ1Rhc2s6Ok5vdFNjaGVkdWxlZCB9OworICAg
IFJlcGxhY2VTdGF0ZSBtX3JlcGxhY2VTdGF0ZSB7IFJlcGxhY2VTdGF0ZTo6QWN0aXZlIH07Cisg
ICAgdW5zaWduZWQgbV9nbG9iYWxQb3NpdGlvbjsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdC4K
ICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsCmluZGV4IDg4MTNmYjU0Njc0MjY0
MDI5YTdiMGFkZGNhMDE0YjNiYWU3MjcxN2YuLjI5NDllMDc4ZGNhMDA4NjYwMTI4NTgyM2RmZDQ0
ZDI5ZDMyNjU1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmlt
YXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRs
CkBAIC0zMCw2ICszMCwxMiBAQCBlbnVtIEFuaW1hdGlvblBsYXlTdGF0ZSB7CiAgICAgImZpbmlz
aGVkIgogfTsKIAorZW51bSBBbmltYXRpb25SZXBsYWNlU3RhdGUgeworICAgICJhY3RpdmUiLAor
ICAgICJyZW1vdmVkIiwKKyAgICAicGVyc2lzdGVkIgorfTsKKwogWwogICAgIEFjdGl2ZURPTU9i
amVjdCwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkFuaW1hdGlvbnMsCkBAIC00NCw5ICs1MCwx
MSBAQCBlbnVtIEFuaW1hdGlvblBsYXlTdGF0ZSB7CiAgICAgW01heVRocm93RXhjZXB0aW9uLCBJ
bXBsZW1lbnRlZEFzPWJpbmRpbmdzQ3VycmVudFRpbWVdIGF0dHJpYnV0ZSBkb3VibGU/IGN1cnJl
bnRUaW1lOwogICAgIGF0dHJpYnV0ZSBkb3VibGUgcGxheWJhY2tSYXRlOwogICAgIFtJbXBsZW1l
bnRlZEFzPWJpbmRpbmdzUGxheVN0YXRlXSByZWFkb25seSBhdHRyaWJ1dGUgQW5pbWF0aW9uUGxh
eVN0YXRlIHBsYXlTdGF0ZTsKKyAgICBbSW1wbGVtZW50ZWRBcz1iaW5kaW5nc1JlcGxhY2VTdGF0
ZV0gcmVhZG9ubHkgYXR0cmlidXRlIEFuaW1hdGlvblJlcGxhY2VTdGF0ZSByZXBsYWNlU3RhdGU7
CiAgICAgW0ltcGxlbWVudGVkQXM9YmluZGluZ3NQZW5kaW5nXSByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBwZW5kaW5nOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25maW5pc2g7CiAg
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNhbmNlbDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9ucmVtb3ZlOwogICAgIFtJbXBsZW1lbnRlZEFzPWJpbmRpbmdzUmVhZHldIHJlYWRv
bmx5IGF0dHJpYnV0ZSBQcm9taXNlPFdlYkFuaW1hdGlvbj4gcmVhZHk7CiAgICAgW0ltcGxlbWVu
dGVkQXM9YmluZGluZ3NGaW5pc2hlZF0gcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8V2ViQW5p
bWF0aW9uPiBmaW5pc2hlZDsKICAgICB2b2lkIGNhbmNlbCgpOwpAQCAtNTUsNCArNjMsNiBAQCBl
bnVtIEFuaW1hdGlvblBsYXlTdGF0ZSB7CiAgICAgW01heVRocm93RXhjZXB0aW9uLCBJbXBsZW1l
bnRlZEFzPWJpbmRpbmdzUGF1c2VdIHZvaWQgcGF1c2UoKTsKICAgICB2b2lkIHVwZGF0ZVBsYXli
YWNrUmF0ZShkb3VibGUgcGxheWJhY2tSYXRlKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZv
aWQgcmV2ZXJzZSgpOworICAgIHZvaWQgcGVyc2lzdCgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gdm9pZCBjb21taXRTdHlsZXMoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBm
YzRmZDVjZTNmOGRjZTU2Nzg5ODhkOTQ1MzJlMTNlOGI4ZTc5OWUxLi43MTg4YWUzM2JlYWZjNjAz
OGFhNTQ3YTg0YWJhMTM1ZTVkNTc1OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTIx
Myw2ICsyMTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocmF0ZWNoYW5nZSkg
XAogICAgIG1hY3JvKHJlYWR5c3RhdGVjaGFuZ2UpIFwKICAgICBtYWNybyhyZWplY3Rpb25oYW5k
bGVkKSBcCisgICAgbWFjcm8ocmVtb3ZlKSBcCiAgICAgbWFjcm8ocmVtb3Zlc291cmNlYnVmZmVy
KSBcCiAgICAgbWFjcm8ocmVtb3Zlc3RyZWFtKSBcCiAgICAgbWFjcm8ocmVtb3ZldHJhY2spIFwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDczYzFhYzU2NGZhZWFjYzdiYTY2Njc4
ZmMwYTg1MDlmYTE0MTk0NTQuLjRlODI5ZmVlZGM0ZjE5NmEwYjc1NTlhOTRiODVhZGZjZGVhNWMx
YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5
LTEwLTAyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YiBBbmltYXRpb25zXSBJbXBsZW1lbnQgcmVwbGFjZWQgYW5pbWF0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTkwCisgICAgICAgIDxyZGFy
Oi8vNTU2OTc3MTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFyayBXUFQgcHJvZ3Jlc3Npb25zLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYi1hbmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9rZXlmcmFtZS1lZmZlY3RzL2VmZmVj
dC12YWx1ZS1yZXBsYWNlZC1hbmltYXRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRhYmxlL2dldEFu
aW1hdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWIt
YW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9jb21taXRTdHlsZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2Vz
L0FuaW1hdGlvbi9wZXJzaXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91cGRhdGUtYW5kLXNl
bmQtZXZlbnRzLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dDoKKwogMjAxOS0wOS0yNiAgVHJ1aXR0
IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyNTAzODUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9rZXlmcmFtZS1l
ZmZlY3RzL2VmZmVjdC12YWx1ZS1yZXBsYWNlZC1hbmltYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMv
YW5pbWF0aW9uLW1vZGVsL2tleWZyYW1lLWVmZmVjdHMvZWZmZWN0LXZhbHVlLXJlcGxhY2VkLWFu
aW1hdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDlkZDZiODk1MzU1OTMxNmRlZTcyZjkzMWM5ZTRk
NDIwODQ4NDRkOTYuLmUwYTc1NjljZjEzNjEyYzA0ZTlmODUwNjA5MmVjNDNkZGJkY2M5YjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LWFuaW1hdGlvbnMvYW5pbWF0aW9uLW1vZGVsL2tleWZyYW1lLWVmZmVjdHMvZWZmZWN0LXZhbHVl
LXJlcGxhY2VkLWFuaW1hdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvYW5pbWF0aW9uLW1vZGVs
L2tleWZyYW1lLWVmZmVjdHMvZWZmZWN0LXZhbHVlLXJlcGxhY2VkLWFuaW1hdGlvbnMtZXhwZWN0
ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIFJlbW92ZWQgYW5pbWF0aW9ucyBkbyBub3Qg
Y29udHJpYnV0ZSB0byBhbmltYXRlZCBzdHlsZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3Ry
aW5nKSAicmVtb3ZlZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgUmVtb3Zl
ZCBhbmltYXRpb25zIGRvIG5vdCBjb250cmlidXRlIHRvIHRoZSBlZmZlY3Qgc3RhY2sgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgInJlbW92ZWQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkCi1GQUlMIFBlcnNpc3RlZCBhbmltYXRpb25zIGNvbnRyaWJ1dGUgdG8gYW5pbWF0
ZWQgc3R5bGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBhbmltQS5wZXJzaXN0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Fu
aW1BLnBlcnNpc3QoKScsICdhbmltQS5wZXJzaXN0JyBpcyB1bmRlZmluZWQpIgotRkFJTCBQZXJz
aXN0ZWQgYW5pbWF0aW9ucyBjb250cmlidXRlIHRvIHRoZSBlZmZlY3Qgc3RhY2sgYXNzZXJ0X2Fw
cHJveF9lcXVhbHM6IE9wYWNpdHkgdmFsdWUgc2hvdWxkIE5PVCBpbmNsdWRlIHRoZSBjb250cmli
dXRpb24gb2YgdGhlIHJlbW92ZWQgYW5pbWF0aW9uIGV4cGVjdGVkIDAuNCArLy0gMC4wMDAxIGJ1
dCBnb3QgMC4xMDAwMDAwMDE0OTAxMTYxMgotRkFJTCBBbmltYXRpb25zIHBlcnNpc3RlZCBiZWZv
cmUgdGhleSB3b3VsZCBiZSByZW1vdmVkIGNvbnRyaWJ1dGUgdG8gdGhlIGVmZmVjdCBzdGFjayBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IGFuaW1BLnBlcnNpc3QgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYW5pbUEucGVyc2lz
dCgpJywgJ2FuaW1BLnBlcnNpc3QnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFJlbW92ZWQgYW5pbWF0
aW9ucyBkbyBub3QgY29udHJpYnV0ZSB0byBhbmltYXRlZCBzdHlsZSAKK0ZBSUwgUmVtb3ZlZCBh
bmltYXRpb25zIGRvIG5vdCBjb250cmlidXRlIHRvIHRoZSBlZmZlY3Qgc3RhY2sgYXNzZXJ0X2Fw
cHJveF9lcXVhbHM6IE9wYWNpdHkgdmFsdWUgc2hvdWxkIG5vdCBpbmNsdWRlIHRoZSByZW1vdmVk
IGFuaW1hdGlvbiBleHBlY3RlZCAwLjQgKy8tIDAuMDAwMSBidXQgZ290IDAuMzAwMDAwMDExOTIw
OTI4OTYKK1BBU1MgUGVyc2lzdGVkIGFuaW1hdGlvbnMgY29udHJpYnV0ZSB0byBhbmltYXRlZCBz
dHlsZSAKK0ZBSUwgUGVyc2lzdGVkIGFuaW1hdGlvbnMgY29udHJpYnV0ZSB0byB0aGUgZWZmZWN0
IHN0YWNrIGFzc2VydF9hcHByb3hfZXF1YWxzOiBPcGFjaXR5IHZhbHVlIHNob3VsZCBOT1QgaW5j
bHVkZSB0aGUgY29udHJpYnV0aW9uIG9mIHRoZSByZW1vdmVkIGFuaW1hdGlvbiBleHBlY3RlZCAw
LjQgKy8tIDAuMDAwMSBidXQgZ290IDAuMzAwMDAwMDExOTIwOTI4OTYKK0ZBSUwgQW5pbWF0aW9u
cyBwZXJzaXN0ZWQgYmVmb3JlIHRoZXkgd291bGQgYmUgcmVtb3ZlZCBjb250cmlidXRlIHRvIHRo
ZSBlZmZlY3Qgc3RhY2sgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IE9wYWNpdHkgdmFsdWUgc2hvdWxk
IGluY2x1ZGUgdGhlIGNvbnRyaWJ1dGlvbiBvZiB0aGUgcGVyc2lzdGVkIGFuaW1hdGlvbiBleHBl
Y3RlZCAwLjUgKy8tIDAuMDAwMSBidXQgZ290IDAuMzAwMDAwMDExOTIwOTI4OTYKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5p
bWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGFibGUvZ2V0QW5pbWF0aW9ucy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRp
b25zL2ludGVyZmFjZXMvQW5pbWF0YWJsZS9nZXRBbmltYXRpb25zLWV4cGVjdGVkLnR4dAppbmRl
eCBmMzRlM2JmNjIxMGVhYjdiOTEyZjk2YTJhMmYxZWFlZDI4MGIyMWMwLi5jZjZhZTZjYmFmMmZl
NDQzN2Q1ZGM4NDAwNmQ0N2RhODA4ZGRlNjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5p
bWF0YWJsZS9nZXRBbmltYXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5p
bWF0YWJsZS9nZXRBbmltYXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMTksNyArMTksNyBAQCBQQVNT
IFJldHVybnMgYW5pbWF0aW9ucyBiYXNlZCBvbiBkeW5hbWljIGNoYW5nZXMgdG8gaW5kaXZpZHVh
bCBhbmltYXRpb25zJyBkdXJhdAogUEFTUyBSZXR1cm5zIGFuaW1hdGlvbnMgYmFzZWQgb24gZHlu
YW1pYyBjaGFuZ2VzIHRvIGluZGl2aWR1YWwgYW5pbWF0aW9ucycgZW5kIGRlbGF5IAogUEFTUyBS
ZXR1cm5zIGFuaW1hdGlvbnMgYmFzZWQgb24gZHluYW1pYyBjaGFuZ2VzIHRvIGluZGl2aWR1YWwg
YW5pbWF0aW9ucycgaXRlcmF0aW9uIGNvdW50IAogUEFTUyBSZXR1cm5zIGFuaW1hdGlvbnMgYmFz
ZWQgb24gZHluYW1pYyBjaGFuZ2VzIHRvIGluZGl2aWR1YWwgYW5pbWF0aW9ucycgY3VycmVudCB0
aW1lIAotRkFJTCBEb2VzIG5vdCByZXR1cm4gYW4gYW5pbWF0aW9uIHRoYXQgaGFzIGJlZW4gcmVt
b3ZlZCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3Qg
MgotRkFJTCBSZXR1cm5zIGFuIGFuaW1hdGlvbiB0aGF0IGhhcyBiZWVuIHBlcnNpc3RlZCBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IGFuaW1BLnBlcnNpc3QgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYW5pbUEucGVyc2lzdCgp
JywgJ2FuaW1BLnBlcnNpc3QnIGlzIHVuZGVmaW5lZCkiCitQQVNTIERvZXMgbm90IHJldHVybiBh
biBhbmltYXRpb24gdGhhdCBoYXMgYmVlbiByZW1vdmVkIAorUEFTUyBSZXR1cm5zIGFuIGFuaW1h
dGlvbiB0aGF0IGhhcyBiZWVuIHBlcnNpc3RlZCAKIFBBU1MgVHJpZ2dlcnMgYSBzdHlsZSBjaGFu
Z2UgZXZlbnQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vY29tbWl0U3R5
bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vY29tbWl0U3R5bGVzLWV4
cGVjdGVkLnR4dAppbmRleCA5MGFkZWNlYjZlZDAzZGJlNjU1ZTliMjlhOTY1OTBjM2FjZmRmN2Ey
Li42NjNmZTMzZmRkMTY0ZGQxZjgyZGZjZDVhN2MxY2NmMTIyMTVhZjE1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25z
L2ludGVyZmFjZXMvQW5pbWF0aW9uL2NvbW1pdFN0eWxlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9p
bnRlcmZhY2VzL0FuaW1hdGlvbi9jb21taXRTdHlsZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDMyICsx
LDMyIEBACiAKLUZBSUwgQ29tbWl0cyBzdHlsZXMgYW5pbWF0aW9uLmNvbW1pdFN0eWxlcyBpcyBu
b3QgYSBmdW5jdGlvbi4gKEluICdhbmltYXRpb24uY29tbWl0U3R5bGVzKCknLCAnYW5pbWF0aW9u
LmNvbW1pdFN0eWxlcycgaXMgdW5kZWZpbmVkKQotRkFJTCBDb21taXRzIHN0eWxlcyBmb3IgYW4g
YW5pbWF0aW9uIHRoYXQgaGFzIGJlZW4gcmVtb3ZlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGFuaW1BLmNvbW1pdFN0eWxl
cyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdhbmltQS5jb21taXRTdHlsZXMoKScsICdhbmltQS5j
b21taXRTdHlsZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIENvbW1pdHMgc2hvcnRoYW5kIHN0eWxl
cyBhbmltYXRpb24uY29tbWl0U3R5bGVzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2FuaW1hdGlv
bi5jb21taXRTdHlsZXMoKScsICdhbmltYXRpb24uY29tbWl0U3R5bGVzJyBpcyB1bmRlZmluZWQp
Ci1GQUlMIENvbW1pdHMgbG9naWNhbCBwcm9wZXJ0aWVzIGFuaW1hdGlvbi5jb21taXRTdHlsZXMg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYW5pbWF0aW9uLmNvbW1pdFN0eWxlcygpJywgJ2FuaW1h
dGlvbi5jb21taXRTdHlsZXMnIGlzIHVuZGVmaW5lZCkKLUZBSUwgQ29tbWl0cyB2YWx1ZXMgY2Fs
Y3VsYXRlZCBtaWQtaW50ZXJ2YWwgYW5pbWF0aW9uLmNvbW1pdFN0eWxlcyBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdhbmltYXRpb24uY29tbWl0U3R5bGVzKCknLCAnYW5pbWF0aW9uLmNvbW1pdFN0
eWxlcycgaXMgdW5kZWZpbmVkKQotRkFJTCBDb21taXRzIHZhcmlhYmxlcyBhcyB0aGVpciBjb21w
dXRlZCB2YWx1ZXMgYW5pbWF0aW9uLmNvbW1pdFN0eWxlcyBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdhbmltYXRpb24uY29tbWl0U3R5bGVzKCknLCAnYW5pbWF0aW9uLmNvbW1pdFN0eWxlcycgaXMg
dW5kZWZpbmVkKQotRkFJTCBDb21taXRzIGVtIHVuaXRzIGFzIHBpeGVsIHZhbHVlcyBhbmltYXRp
b24uY29tbWl0U3R5bGVzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2FuaW1hdGlvbi5jb21taXRT
dHlsZXMoKScsICdhbmltYXRpb24uY29tbWl0U3R5bGVzJyBpcyB1bmRlZmluZWQpCi1GQUlMIENv
bW1pdHMgdGhlIGludGVybWVkaWF0ZSB2YWx1ZSBvZiBhbiBhbmltYXRpb24gaW4gdGhlIG1pZGRs
ZSBvZiBzdGFjayBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IGFuaW1BLnBlcnNpc3QgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
YW5pbUEucGVyc2lzdCgpJywgJ2FuaW1BLnBlcnNpc3QnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIFRy
aWdnZXJzIG11dGF0aW9uIG9ic2VydmVycyB3aGVuIHVwZGF0aW5nIHN0eWxlIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYW5p
bWF0aW9uLmNvbW1pdFN0eWxlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdhbmltYXRpb24uY29t
bWl0U3R5bGVzKCknLCAnYW5pbWF0aW9uLmNvbW1pdFN0eWxlcycgaXMgdW5kZWZpbmVkKSIKLUZB
SUwgRG9lcyBOT1QgdHJpZ2dlciBtdXRhdGlvbiBvYnNlcnZlcnMgd2hlbiB0aGUgY2hhbmdlIHRv
IHN0eWxlIGlzIHJlZHVuZGFudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGFuaW1hdGlvbi5jb21taXRTdHlsZXMgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAnYW5pbWF0aW9uLmNvbW1pdFN0eWxlcygpJywgJ2FuaW1hdGlvbi5j
b21taXRTdHlsZXMnIGlzIHVuZGVmaW5lZCkiCitGQUlMIENvbW1pdHMgc3R5bGVzIGFzc2VydF9h
cHByb3hfZXF1YWxzOiBleHBlY3RlZCAwLjIgKy8tIDAuMDAwMSBidXQgZ290IDAuMTAwMDAwMDAx
NDkwMTE2MTIKK0ZBSUwgQ29tbWl0cyBzdHlsZXMgZm9yIGFuIGFuaW1hdGlvbiB0aGF0IGhhcyBi
ZWVuIHJlbW92ZWQgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIDAuMiArLy0gMC4wMDAx
IGJ1dCBnb3QgMC4xMDAwMDAwMDE0OTAxMTYxMgorRkFJTCBDb21taXRzIHNob3J0aGFuZCBzdHls
ZXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjIwcHgiIGJ1dCBnb3QgIjEwcHgiCitGQUlMIENv
bW1pdHMgbG9naWNhbCBwcm9wZXJ0aWVzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIyMHB4IiBi
dXQgZ290ICIxMHB4IgorRkFJTCBDb21taXRzIHZhbHVlcyBjYWxjdWxhdGVkIG1pZC1pbnRlcnZh
bCBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgMC40NSArLy0gMC4wMDAxIGJ1dCBnb3Qg
MQorRkFJTCBDb21taXRzIHZhcmlhYmxlcyBhcyB0aGVpciBjb21wdXRlZCB2YWx1ZXMgYXNzZXJ0
X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIDAuNSArLy0gMC4wMDAxIGJ1dCBnb3QgMQorRkFJTCBD
b21taXRzIGVtIHVuaXRzIGFzIHBpeGVsIHZhbHVlcyBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhw
ZWN0ZWQgMTAwICsvLSAwLjAwMDEgYnV0IGdvdCA3ODQKK0ZBSUwgQ29tbWl0cyB0aGUgaW50ZXJt
ZWRpYXRlIHZhbHVlIG9mIGFuIGFuaW1hdGlvbiBpbiB0aGUgbWlkZGxlIG9mIHN0YWNrIGFzc2Vy
dF9hcHByb3hfZXF1YWxzOiBleHBlY3RlZCAwLjQgKy8tIDAuMDAwMSBidXQgZ290IDAuMTAwMDAw
MDAxNDkwMTE2MTIKK0ZBSUwgVHJpZ2dlcnMgbXV0YXRpb24gb2JzZXJ2ZXJzIHdoZW4gdXBkYXRp
bmcgc3R5bGUgYXNzZXJ0X2VxdWFsczogU2hvdWxkIGhhdmUgb25lIG11dGF0aW9uIHJlY29yZCBl
eHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBEb2VzIE5PVCB0cmlnZ2VyIG11dGF0aW9uIG9ic2Vy
dmVycyB3aGVuIHRoZSBjaGFuZ2UgdG8gc3R5bGUgaXMgcmVkdW5kYW50IAogRkFJTCBUaHJvd3Mg
aWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIGEgcHNldWRvIGVsZW1lbnQgYXNzZXJ0X3Rocm93czog
ZnVuY3Rpb24gIigpID0+IHsKICAgICBhbmltYXRpb24uY29tbWl0U3R5bGVzKCk7Ci0gIH0iIHRo
cmV3IG9iamVjdCAiVHlwZUVycm9yOiBhbmltYXRpb24uY29tbWl0U3R5bGVzIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ2FuaW1hdGlvbi5jb21taXRTdHlsZXMoKScsICdhbmltYXRpb24uY29tbWl0
U3R5bGVzJyBpcyB1bmRlZmluZWQpIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5l
ZCwgZXhwZWN0ZWQgNworICB9IiBkaWQgbm90IHRocm93CiBGQUlMIFRocm93cyBpZiB0aGUgdGFy
Z2V0IGVsZW1lbnQgaXMgbm90IHNvbWV0aGluZyB3aXRoIGEgc3R5bGUgYXR0cmlidXRlIGFzc2Vy
dF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiB7CiAgICAgYW5pbWF0aW9uLmNvbW1pdFN0eWxlcygp
OwotICB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogYW5pbWF0aW9uLmNvbW1pdFN0eWxlcyBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICdhbmltYXRpb24uY29tbWl0U3R5bGVzKCknLCAnYW5pbWF0
aW9uLmNvbW1pdFN0eWxlcycgaXMgdW5kZWZpbmVkKSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRp
b24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0
byB1bmRlZmluZWQsIGV4cGVjdGVkIDcKKyAgfSIgZGlkIG5vdCB0aHJvdwogRkFJTCBUaHJvd3Mg
aWYgdGhlIHRhcmdldCBlZmZlY3QgaXMgZGlzcGxheTpub25lIGFzc2VydF90aHJvd3M6IGZ1bmN0
aW9uICIoKSA9PiB7CiAgICAgYW5pbWF0aW9uLmNvbW1pdFN0eWxlcygpOwotICB9IiB0aHJldyBv
YmplY3QgIlR5cGVFcnJvcjogYW5pbWF0aW9uLmNvbW1pdFN0eWxlcyBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdhbmltYXRpb24uY29tbWl0U3R5bGVzKCknLCAnYW5pbWF0aW9uLmNvbW1pdFN0eWxl
cycgaXMgdW5kZWZpbmVkKSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRl
RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDEx
CisgIH0iIGRpZCBub3QgdGhyb3cKIEZBSUwgVGhyb3dzIGlmIHRoZSB0YXJnZXQgZWZmZWN0J3Mg
YW5jZXN0b3IgaXMgZGlzcGxheTpub25lIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiB7
CiAgICAgYW5pbWF0aW9uLmNvbW1pdFN0eWxlcygpOwotICB9IiB0aHJldyBvYmplY3QgIlR5cGVF
cnJvcjogYW5pbWF0aW9uLmNvbW1pdFN0eWxlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdhbmlt
YXRpb24uY29tbWl0U3R5bGVzKCknLCAnYW5pbWF0aW9uLmNvbW1pdFN0eWxlcycgaXMgdW5kZWZp
bmVkKSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IHByb3Bl
cnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDExCi1GQUlMIFRyZWF0
cyBkaXNwbGF5OmNvbnRlbnRzIGFzIHJlbmRlcmVkIGFuaW1hdGlvbi5jb21taXRTdHlsZXMgaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAnYW5pbWF0aW9uLmNvbW1pdFN0eWxlcygpJywgJ2FuaW1hdGlv
bi5jb21taXRTdHlsZXMnIGlzIHVuZGVmaW5lZCkKKyAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBU
cmVhdHMgZGlzcGxheTpjb250ZW50cyBhcyByZW5kZXJlZCAKIEZBSUwgVHJlYXRzIGRpc3BsYXk6
Y29udGVudHMgaW4gYSBkaXNwbGF5Om5vbmUgc3VidHJlZSBhcyBub3QgcmVuZGVyZWQgYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gIigpID0+IHsKICAgICBhbmltYXRpb24uY29tbWl0U3R5bGVzKCk7
Ci0gIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBhbmltYXRpb24uY29tbWl0U3R5bGVzIGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2FuaW1hdGlvbi5jb21taXRTdHlsZXMoKScsICdhbmltYXRp
b24uY29tbWl0U3R5bGVzJyBpcyB1bmRlZmluZWQpIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlv
biBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5l
ZCwgZXhwZWN0ZWQgMTEKKyAgfSIgZGlkIG5vdCB0aHJvdwogRkFJTCBUaHJvd3MgaWYgdGhlIHRh
cmdldCBlZmZlY3QgaXMgZGlzY29ubmVjdGVkIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9
PiB7CiAgICAgYW5pbWF0aW9uLmNvbW1pdFN0eWxlcygpOwotICB9IiB0aHJldyBvYmplY3QgIlR5
cGVFcnJvcjogYW5pbWF0aW9uLmNvbW1pdFN0eWxlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdh
bmltYXRpb24uY29tbWl0U3R5bGVzKCknLCAnYW5pbWF0aW9uLmNvbW1pdFN0eWxlcycgaXMgdW5k
ZWZpbmVkKSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IHBy
b3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDExCisgIH0iIGRp
ZCBub3QgdGhyb3cKIEZBSUwgQ2hlY2tzIHRoZSBwc2V1ZG8gZWxlbWVudCBjb25kaXRpb24gYmVm
b3JlIHRoZSBub3QgcmVuZGVyZWQgY29uZGl0aW9uIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdwc2V1ZG8uZWxlbWVudC5yZW1vdmUnKQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2lu
dGVyZmFjZXMvQW5pbWF0aW9uL3BlcnNpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0Fu
aW1hdGlvbi9wZXJzaXN0LWV4cGVjdGVkLnR4dAppbmRleCAwMWUxODkxY2UzM2QzNzk2N2ExM2Vk
OGUwYTI4MDQ4NmEyNzg0ZDI0Li5jMzMzYzU5YzY1ZDYyMjRhZmI2NmM4ZmZhM2ZkNTc4ODRlMThl
N2I2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL3BlcnNpc3QtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vcGVyc2lzdC1leHBlY3RlZC50eHQKQEAg
LTEsNiArMSw0IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
Ci1USU1FT1VUIEFsbG93cyBhbiBhbmltYXRpb24gdG8gYmUgcGVyc2lzdGVkIGFmdGVyIGJlaW5n
IHJlbW92ZWQgVGVzdCB0aW1lZCBvdXQKLUZBSUwgQWxsb3dzIGFuIGFuaW1hdGlvbiB0byBiZSBw
ZXJzaXN0ZWQgYmVmb3JlIGJlaW5nIHJlbW92ZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBhbmltQS5wZXJzaXN0IGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ2FuaW1BLnBlcnNpc3QoKScsICdhbmltQS5wZXJzaXN0JyBpcyB1
bmRlZmluZWQpIgorUEFTUyBBbGxvd3MgYW4gYW5pbWF0aW9uIHRvIGJlIHBlcnNpc3RlZCBhZnRl
ciBiZWluZyByZW1vdmVkIAorUEFTUyBBbGxvd3MgYW4gYW5pbWF0aW9uIHRvIGJlIHBlcnNpc3Rl
ZCBiZWZvcmUgYmVpbmcgcmVtb3ZlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwvdGlt
ZWxpbmVzL3VwZGF0ZS1hbmQtc2VuZC1ldmVudHMtcmVwbGFjZW1lbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9u
cy90aW1pbmctbW9kZWwvdGltZWxpbmVzL3VwZGF0ZS1hbmQtc2VuZC1ldmVudHMtcmVwbGFjZW1l
bnQtZXhwZWN0ZWQudHh0CmluZGV4IDA3N2YyNzkwMzk1N2VhMWUyMWI1MWYwZWM4MzE2MGM1ZDQ5
NjViNzYuLmYxYjQ4NmQxZDdiY2MwMDFiMWYzNWJhNDE4MzhiYWQwZWIyMWQ3NzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1h
dGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91cGRhdGUtYW5kLXNlbmQtZXZlbnRzLXJlcGxh
Y2VtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC90aW1lbGluZXMvdXBkYXRl
LWFuZC1zZW5kLWV2ZW50cy1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQKQEAgLTEsNDYgKzEsNDYg
QEAKIAogSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCiAKLUZBSUwgUmVt
b3ZlcyBhbiBhbmltYXRpb24gd2hlbiBhbm90aGVyIGNvdmVycyB0aGUgc2FtZSBwcm9wZXJ0aWVz
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJyZW1vdmVkIiBidXQgZ290ICh1bmRl
ZmluZWQpIHVuZGVmaW5lZAotRkFJTCBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciBhbm90aGVy
IGFuaW1hdGlvbiBmaW5pc2hlcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiYWN0
aXZlIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBSZW1vdmVzIGFuIGFuaW1h
dGlvbiBhZnRlciBtdWx0aXBsZSBvdGhlciBhbmltYXRpb25zIGZpbmlzaCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAoc3RyaW5nKSAiYWN0aXZlIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5l
ZAotRkFJTCBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciBpdCBmaW5pc2hlcyBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiYWN0aXZlIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVm
aW5lZAotRkFJTCBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciBzZWVraW5nIGFub3RoZXIgYW5p
bWF0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJhY3RpdmUiIGJ1dCBnb3Qg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIFJlbW92ZXMgYW4gYW5pbWF0aW9uIGFmdGVyIHNl
ZWtpbmcgaXQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImFjdGl2ZSIgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgUmVtb3ZlcyBhbiBhbmltYXRpb24gYWZ0ZXIg
dXBkYXRpbmcgdGhlIGZpbGwgbW9kZSBvZiBhbm90aGVyIGFuaW1hdGlvbiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAoc3RyaW5nKSAiYWN0aXZlIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5l
ZAotRkFJTCBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1cGRhdGluZyBpdHMgZmlsbCBtb2Rl
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJhY3RpdmUiIGJ1dCBnb3QgKHVuZGVm
aW5lZCkgdW5kZWZpbmVkCi1GQUlMIFJlbW92ZXMgYW4gYW5pbWF0aW9uIGFmdGVyIHVwZGF0aW5n
IGFub3RoZXIgYW5pbWF0aW9uJ3MgZWZmZWN0IHRvIG9uZSB3aXRoIGRpZmZlcmVudCB0aW1pbmcg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImFjdGl2ZSIgYnV0IGdvdCAodW5kZWZp
bmVkKSB1bmRlZmluZWQKLUZBSUwgUmVtb3ZlcyBhbiBhbmltYXRpb24gYWZ0ZXIgdXBkYXRpbmcg
aXRzIGVmZmVjdCB0byBvbmUgd2l0aCBkaWZmZXJlbnQgdGltaW5nIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIChzdHJpbmcpICJhY3RpdmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1G
QUlMIFJlbW92ZXMgYW4gYW5pbWF0aW9uIGFmdGVyIHVwZGF0aW5nIGFub3RoZXIgYW5pbWF0aW9u
J3MgdGltZWxpbmUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImFjdGl2ZSIgYnV0
IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgUmVtb3ZlcyBhbiBhbmltYXRpb24gYWZ0
ZXIgdXBkYXRpbmcgaXRzIHRpbWVsaW5lIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcp
ICJhY3RpdmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIFJlbW92ZXMgYW4g
YW5pbWF0aW9uIGFmdGVyIHVwZGF0aW5nIGFub3RoZXIgYW5pbWF0aW9uJ3MgZWZmZWN0J3MgcHJv
cGVydGllcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiYWN0aXZlIiBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1
cGRhdGluZyBpdHMgZWZmZWN0J3MgcHJvcGVydGllcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
c3RyaW5nKSAiYWN0aXZlIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBSZW1v
dmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1cGRhdGluZyBhbm90aGVyIGFuaW1hdGlvbidzIGVmZmVj
dCB0byBvbmUgd2l0aCBkaWZmZXJlbnQgcHJvcGVydGllcyBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAoc3RyaW5nKSAiYWN0aXZlIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBS
ZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1cGRhdGluZyBpdHMgZWZmZWN0IHRvIG9uZSB3aXRo
IGRpZmZlcmVudCBwcm9wZXJ0aWVzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJh
Y3RpdmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIFJlbW92ZXMgYW4gYW5p
bWF0aW9uIHdoZW4gYW5vdGhlciBhbmltYXRpb24gdXNlcyBhIHNob3J0aGFuZCBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAicmVtb3ZlZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRl
ZmluZWQKLUZBSUwgUmVtb3ZlcyBhbiBhbmltYXRpb24gdGhhdCB1c2VzIGEgc2hvcnRoYW5kIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJyZW1vdmVkIiBidXQgZ290ICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZAotRkFJTCBSZW1vdmVzIGFuIGFuaW1hdGlvbiBieSBhbm90aGVyIGFuaW1h
dGlvbiB1c2luZyBsb2dpY2FsIHByb3BlcnRpZXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0
cmluZykgInJlbW92ZWQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIFJlbW92
ZXMgYW4gYW5pbWF0aW9uIHVzaW5nIGxvZ2ljYWwgcHJvcGVydGllcyBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAoc3RyaW5nKSAicmVtb3ZlZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQK
LUZBSUwgUmVtb3ZlcyBhbiBhbmltYXRpb24gYnkgYW5vdGhlciBhbmltYXRpb24gdXNpbmcgbG9n
aWNhbCBwcm9wZXJ0aWVzIGFmdGVyIHVwZGF0aW5nIHRoZSBjb250ZXh0IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIChzdHJpbmcpICJhY3RpdmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVk
Ci1GQUlMIFJlbW92ZXMgYW4gYW5pbWF0aW9uIGFmdGVyIHVwZGF0aW5nIGFub3RoZXIgYW5pbWF0
aW9uJ3MgZWZmZWN0J3MgdGFyZ2V0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJh
Y3RpdmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIFJlbW92ZXMgYW4gYW5p
bWF0aW9uIGFmdGVyIHVwZGF0aW5nIGl0cyBlZmZlY3QncyB0YXJnZXQgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgKHN0cmluZykgImFjdGl2ZSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQK
LUZBSUwgUmVtb3ZlcyBhbiBhbmltYXRpb24gYWZ0ZXIgdXBkYXRpbmcgYW5vdGhlciBhbmltYXRp
b24ncyBlZmZlY3QgdG8gb25lIHdpdGggYSBkaWZmZXJlbnQgdGFyZ2V0IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIChzdHJpbmcpICJhY3RpdmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVk
Ci1GQUlMIFJlbW92ZXMgYW4gYW5pbWF0aW9uIGFmdGVyIHVwZGF0aW5nIGl0cyBlZmZlY3QgdG8g
b25lIHdpdGggYSBkaWZmZXJlbnQgdGFyZ2V0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJp
bmcpICJhY3RpdmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIERvZXMgTk9U
IHJlbW92ZSBhIENTUyBhbmltYXRpb24gdGllZCB0byBtYXJrdXAgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKHN0cmluZykgImFjdGl2ZSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZB
SUwgUmVtb3ZlcyBhIENTUyBhbmltYXRpb24gbm8gbG9uZ2VyIHRpZWQgdG8gbWFya3VwIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJyZW1vdmVkIiBidXQgZ290ICh1bmRlZmluZWQp
IHVuZGVmaW5lZAotRkFJTCBEb2VzIE5PVCByZW1vdmUgYSBDU1MgdHJhbnNpdGlvbiB0aWVkIHRv
IG1hcmt1cCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiYWN0aXZlIiBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBSZW1vdmVzIGEgQ1NTIHRyYW5zaXRpb24gbm8g
bG9uZ2VyIHRpZWQgdG8gbWFya3VwIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJy
ZW1vdmVkIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotVElNRU9VVCBEaXNwYXRjaGVz
IGFuIGV2ZW50IHdoZW4gcmVtb3ZpbmcgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBEb2VzIE5PVCBk
aXNwYXRjaCBhIHJlbW92ZSBldmVudCB0d2ljZSAKLU5PVFJVTiBEb2VzIE5PVCByZW1vdmUgYW4g
YW5pbWF0aW9uIGFmdGVyIG1ha2luZyBhIHJlZHVuZGFudCBjaGFuZ2UgdG8gYW5vdGhlciBhbmlt
YXRpb24ncyBjdXJyZW50IHRpbWUgCi1OT1RSVU4gRG9lcyBOT1QgcmVtb3ZlIGFuIGFuaW1hdGlv
biBhZnRlciBtYWtpbmcgYSByZWR1bmRhbnQgY2hhbmdlIHRvIGl0cyBjdXJyZW50IHRpbWUgCi1O
T1RSVU4gRG9lcyBOT1QgcmVtb3ZlIGFuIGFuaW1hdGlvbiBhZnRlciBtYWtpbmcgYSByZWR1bmRh
bnQgY2hhbmdlIHRvIGFub3RoZXIgYW5pbWF0aW9uJ3MgdGltZWxpbmUgCi1OT1RSVU4gRG9lcyBO
T1QgcmVtb3ZlIGFuIGFuaW1hdGlvbiBhZnRlciBtYWtpbmcgYSByZWR1bmRhbnQgY2hhbmdlIHRv
IGl0cyB0aW1lbGluZSAKLU5PVFJVTiBEb2VzIE5PVCByZW1vdmUgYW4gYW5pbWF0aW9uIGFmdGVy
IG1ha2luZyBhIHJlZHVuZGFudCBjaGFuZ2UgdG8gYW5vdGhlciBhbmltYXRpb24ncyBlZmZlY3Qn
cyBwcm9wZXJ0aWVzIAotTk9UUlVOIERvZXMgTk9UIHJlbW92ZSBhbiBhbmltYXRpb24gYWZ0ZXIg
bWFraW5nIGEgcmVkdW5kYW50IGNoYW5nZSB0byBpdHMgZWZmZWN0J3MgcHJvcGVydGllcyAKLU5P
VFJVTiBVcGRhdGVzIEFMTCB0aW1lbGluZXMgYmVmb3JlIGNoZWNraW5nIGZvciByZXBsYWNlbWVu
dCAKLU5PVFJVTiBEaXNwYXRjaGVzIHJlbW92ZSBldmVudHMgYWZ0ZXIgZmluaXNoIGV2ZW50cyAK
LU5PVFJVTiBGaXJlcyByZW1vdmUgZXZlbnQgYmVmb3JlIHJlcXVlc3RBbmltYXRpb25GcmFtZSAK
LU5PVFJVTiBRdWV1ZXMgYWxsIHJlbW92ZSBldmVudHMgYmVmb3JlIHJ1bm5pbmcgdGhlbSAKLU5P
VFJVTiBQZXJmb3JtcyByZW1vdmFsIGluIGRlZXBseSBuZXN0ZWQgaWZyYW1lcyAKK1BBU1MgUmVt
b3ZlcyBhbiBhbmltYXRpb24gd2hlbiBhbm90aGVyIGNvdmVycyB0aGUgc2FtZSBwcm9wZXJ0aWVz
IAorUEFTUyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciBhbm90aGVyIGFuaW1hdGlvbiBmaW5p
c2hlcyAKK1BBU1MgUmVtb3ZlcyBhbiBhbmltYXRpb24gYWZ0ZXIgbXVsdGlwbGUgb3RoZXIgYW5p
bWF0aW9ucyBmaW5pc2ggCitQQVNTIFJlbW92ZXMgYW4gYW5pbWF0aW9uIGFmdGVyIGl0IGZpbmlz
aGVzIAorUEFTUyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciBzZWVraW5nIGFub3RoZXIgYW5p
bWF0aW9uIAorUEFTUyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciBzZWVraW5nIGl0IAorUEFT
UyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1cGRhdGluZyB0aGUgZmlsbCBtb2RlIG9mIGFu
b3RoZXIgYW5pbWF0aW9uIAorUEFTUyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1cGRhdGlu
ZyBpdHMgZmlsbCBtb2RlIAorUEFTUyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1cGRhdGlu
ZyBhbm90aGVyIGFuaW1hdGlvbidzIGVmZmVjdCB0byBvbmUgd2l0aCBkaWZmZXJlbnQgdGltaW5n
IAorUEFTUyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1cGRhdGluZyBpdHMgZWZmZWN0IHRv
IG9uZSB3aXRoIGRpZmZlcmVudCB0aW1pbmcgCitGQUlMIFJlbW92ZXMgYW4gYW5pbWF0aW9uIGFm
dGVyIHVwZGF0aW5nIGFub3RoZXIgYW5pbWF0aW9uJ3MgdGltZWxpbmUgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInJlbW92ZWQiIGJ1dCBnb3QgImFjdGl2ZSIKK1BBU1MgUmVtb3ZlcyBhbiBhbmlt
YXRpb24gYWZ0ZXIgdXBkYXRpbmcgaXRzIHRpbWVsaW5lIAorUEFTUyBSZW1vdmVzIGFuIGFuaW1h
dGlvbiBhZnRlciB1cGRhdGluZyBhbm90aGVyIGFuaW1hdGlvbidzIGVmZmVjdCdzIHByb3BlcnRp
ZXMgCitQQVNTIFJlbW92ZXMgYW4gYW5pbWF0aW9uIGFmdGVyIHVwZGF0aW5nIGl0cyBlZmZlY3Qn
cyBwcm9wZXJ0aWVzIAorUEFTUyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1cGRhdGluZyBh
bm90aGVyIGFuaW1hdGlvbidzIGVmZmVjdCB0byBvbmUgd2l0aCBkaWZmZXJlbnQgcHJvcGVydGll
cyAKK1BBU1MgUmVtb3ZlcyBhbiBhbmltYXRpb24gYWZ0ZXIgdXBkYXRpbmcgaXRzIGVmZmVjdCB0
byBvbmUgd2l0aCBkaWZmZXJlbnQgcHJvcGVydGllcyAKK1BBU1MgUmVtb3ZlcyBhbiBhbmltYXRp
b24gd2hlbiBhbm90aGVyIGFuaW1hdGlvbiB1c2VzIGEgc2hvcnRoYW5kIAorUEFTUyBSZW1vdmVz
IGFuIGFuaW1hdGlvbiB0aGF0IHVzZXMgYSBzaG9ydGhhbmQgCitGQUlMIFJlbW92ZXMgYW4gYW5p
bWF0aW9uIGJ5IGFub3RoZXIgYW5pbWF0aW9uIHVzaW5nIGxvZ2ljYWwgcHJvcGVydGllcyBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAicmVtb3ZlZCIgYnV0IGdvdCAiYWN0aXZlIgorUEFTUyBSZW1v
dmVzIGFuIGFuaW1hdGlvbiB1c2luZyBsb2dpY2FsIHByb3BlcnRpZXMgCitGQUlMIFJlbW92ZXMg
YW4gYW5pbWF0aW9uIGJ5IGFub3RoZXIgYW5pbWF0aW9uIHVzaW5nIGxvZ2ljYWwgcHJvcGVydGll
cyBhZnRlciB1cGRhdGluZyB0aGUgY29udGV4dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYWN0
aXZlIiBidXQgZ290ICJyZW1vdmVkIgorUEFTUyBSZW1vdmVzIGFuIGFuaW1hdGlvbiBhZnRlciB1
cGRhdGluZyBhbm90aGVyIGFuaW1hdGlvbidzIGVmZmVjdCdzIHRhcmdldCAKK1BBU1MgUmVtb3Zl
cyBhbiBhbmltYXRpb24gYWZ0ZXIgdXBkYXRpbmcgaXRzIGVmZmVjdCdzIHRhcmdldCAKK1BBU1Mg
UmVtb3ZlcyBhbiBhbmltYXRpb24gYWZ0ZXIgdXBkYXRpbmcgYW5vdGhlciBhbmltYXRpb24ncyBl
ZmZlY3QgdG8gb25lIHdpdGggYSBkaWZmZXJlbnQgdGFyZ2V0IAorUEFTUyBSZW1vdmVzIGFuIGFu
aW1hdGlvbiBhZnRlciB1cGRhdGluZyBpdHMgZWZmZWN0IHRvIG9uZSB3aXRoIGEgZGlmZmVyZW50
IHRhcmdldCAKK1BBU1MgRG9lcyBOT1QgcmVtb3ZlIGEgQ1NTIGFuaW1hdGlvbiB0aWVkIHRvIG1h
cmt1cCAKK1BBU1MgUmVtb3ZlcyBhIENTUyBhbmltYXRpb24gbm8gbG9uZ2VyIHRpZWQgdG8gbWFy
a3VwIAorUEFTUyBEb2VzIE5PVCByZW1vdmUgYSBDU1MgdHJhbnNpdGlvbiB0aWVkIHRvIG1hcmt1
cCAKK0ZBSUwgUmVtb3ZlcyBhIENTUyB0cmFuc2l0aW9uIG5vIGxvbmdlciB0aWVkIHRvIG1hcmt1
cCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicmVtb3ZlZCIgYnV0IGdvdCAiYWN0aXZlIgorUEFT
UyBEaXNwYXRjaGVzIGFuIGV2ZW50IHdoZW4gcmVtb3ZpbmcgCitQQVNTIERvZXMgTk9UIGRpc3Bh
dGNoIGEgcmVtb3ZlIGV2ZW50IHR3aWNlIAorUEFTUyBEb2VzIE5PVCByZW1vdmUgYW4gYW5pbWF0
aW9uIGFmdGVyIG1ha2luZyBhIHJlZHVuZGFudCBjaGFuZ2UgdG8gYW5vdGhlciBhbmltYXRpb24n
cyBjdXJyZW50IHRpbWUgCitQQVNTIERvZXMgTk9UIHJlbW92ZSBhbiBhbmltYXRpb24gYWZ0ZXIg
bWFraW5nIGEgcmVkdW5kYW50IGNoYW5nZSB0byBpdHMgY3VycmVudCB0aW1lIAorUEFTUyBEb2Vz
IE5PVCByZW1vdmUgYW4gYW5pbWF0aW9uIGFmdGVyIG1ha2luZyBhIHJlZHVuZGFudCBjaGFuZ2Ug
dG8gYW5vdGhlciBhbmltYXRpb24ncyB0aW1lbGluZSAKK1BBU1MgRG9lcyBOT1QgcmVtb3ZlIGFu
IGFuaW1hdGlvbiBhZnRlciBtYWtpbmcgYSByZWR1bmRhbnQgY2hhbmdlIHRvIGl0cyB0aW1lbGlu
ZSAKK1BBU1MgRG9lcyBOT1QgcmVtb3ZlIGFuIGFuaW1hdGlvbiBhZnRlciBtYWtpbmcgYSByZWR1
bmRhbnQgY2hhbmdlIHRvIGFub3RoZXIgYW5pbWF0aW9uJ3MgZWZmZWN0J3MgcHJvcGVydGllcyAK
K1BBU1MgRG9lcyBOT1QgcmVtb3ZlIGFuIGFuaW1hdGlvbiBhZnRlciBtYWtpbmcgYSByZWR1bmRh
bnQgY2hhbmdlIHRvIGl0cyBlZmZlY3QncyBwcm9wZXJ0aWVzIAorRkFJTCBVcGRhdGVzIEFMTCB0
aW1lbGluZXMgYmVmb3JlIGNoZWNraW5nIGZvciByZXBsYWNlbWVudCBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAicmVtb3ZlZCIgYnV0IGdvdCAiYWN0aXZlIgorUEFTUyBEaXNwYXRjaGVzIHJlbW92
ZSBldmVudHMgYWZ0ZXIgZmluaXNoIGV2ZW50cyAKK1BBU1MgRmlyZXMgcmVtb3ZlIGV2ZW50IGJl
Zm9yZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgCitQQVNTIFF1ZXVlcyBhbGwgcmVtb3ZlIGV2ZW50
cyBiZWZvcmUgcnVubmluZyB0aGVtIAorVElNRU9VVCBQZXJmb3JtcyByZW1vdmFsIGluIGRlZXBs
eSBuZXN0ZWQgaWZyYW1lcyBUZXN0IHRpbWVkIG91dAogCg==
</data>
<flag name="review"
          id="395717"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>