<?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>94125</bug_id>
          
          <creation_ts>2012-08-15 10:54:35 -0700</creation_ts>
          <short_desc>Web Inspector: enable instrumentation of platform code</short_desc>
          <delta_ts>2012-08-16 05:07:00 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>90277</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rik</cc>
    
    <cc>senorblanco</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>696135</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-15 10:54:35 -0700</bug_when>
    <thetext>Currently, we use InspectorInstrumentation as the interface that is used by inspector to instrument. This can&apos;t be used to instrument code under WebCore/platform, though, as this is deemed to be a layering violation. So let&apos;s add a lower-level instrumentation interface and implement its client within the inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696151</commentid>
    <comment_count>1</comment_count>
      <attachid>158595</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-15 11:03:48 -0700</bug_when>
    <thetext>Created attachment 158595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696194</commentid>
    <comment_count>2</comment_count>
      <attachid>158595</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-08-15 11:30:07 -0700</bug_when>
    <thetext>Comment on attachment 158595
Patch

This looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696251</commentid>
    <comment_count>3</comment_count>
      <attachid>158595</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-15 12:15:13 -0700</bug_when>
    <thetext>Comment on attachment 158595
Patch

Attachment 158595 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13509282</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696937</commentid>
    <comment_count>4</comment_count>
      <attachid>158756</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-16 02:24:55 -0700</bug_when>
    <thetext>Created attachment 158756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696980</commentid>
    <comment_count>5</comment_count>
      <attachid>158756</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-16 03:34:21 -0700</bug_when>
    <thetext>Comment on attachment 158756
Patch

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

Minor nits, otherwise looks good.

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:-491
&gt; -            InspectorInstrumentation::setTimelineAgentForOrphanEvents(0);

You should remove
InspectorInstrumentation::setTimelineAgentForOrphanEvents, InspectorInstrumentation::threadSpecificTimelineAgentForOrphanEvents, etc. as well

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:556
&gt; +        m_platformInstrumentationClientSet = m_recordStack.size();

m_platformInstrumentationClientInstalledAtStackDepth

&gt; Source/WebCore/platform/PlatformInstrumentation.h:46
&gt; +    virtual void willDecodeImage(const WTF::String&amp; imageType) = 0;

Here and below drop WTF::

&gt; Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp:265
&gt; +    if (frame.status() != ImageFrame::FrameComplete) {

You did not remove TRACE_EVENT macro / include.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697001</commentid>
    <comment_count>6</comment_count>
      <attachid>158775</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-16 04:50:32 -0700</bug_when>
    <thetext>Created attachment 158775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697013</commentid>
    <comment_count>7</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-16 05:07:00 -0700</bug_when>
    <thetext>Committed r125769: &lt;http://trac.webkit.org/changeset/125769&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158595</attachid>
            <date>2012-08-15 11:03:48 -0700</date>
            <delta_ts>2012-08-16 02:24:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94125-20120815220313.patch</filename>
            <type>text/plain</type>
            <size>28514</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE0OWI5M2ZjNjQ4ZWY3
NjYyZGU2M2NmMmUxZGUyNmU3NWM0NzhhZi4uOGU5MDg0ZGI4NWJiOGZkNDA1MjQzZTczNDk2M2Q0
OWM3NzQ1NGQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA4LTE1ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZW5hYmxlIGluc3RydW1lbnRhdGlvbiBvZiBwbGF0Zm9ybSBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDEyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgLSBhZGQgUGxhdGZvcm1J
bnN0cnVtZW50YXRpb24gY2xhc3MgdGhhdCBleHBvc2VzIGluc3RydW1lbnRhdGlvbiBtZXRob2Rz
IHRoYXQgbWF5IGJlIHVzZWQgYnkgY29kZSB1bmRlciBXZWJDb3JlL3BsYXRmb3JtOworICAgICAg
ICAtIG1vdmUgVFJBQ0VfRVZFTlRfWFhYKCkgbWFjcm9zIGludG8gUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24uaCB0byBtaW5pbWl6ZSBpbnN0cnVtZW50YXRpb24gaGFzc2xlIGluIHRoZSBjbGllbnQg
Y29kZTsKKyAgICAgICAgLSBpbXBsZW1lbnQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQg
YnkgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKKyAgICAgICAgLSBvbmx5IGluc3RhbGwgUGxhdGZv
cm1JbnN0cnVtZW50YXRpb25DbGllbnQgd2hlbiB3ZSBoYXZlIG91dGVyIGV2ZW50cyBmb3Igd2hp
Y2ggd2UgZXhwZWN0IGxvdy1sZXZlbCBkZXRhaWxzCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxEZWNvZGVJ
bWFnZSk6IHRvIGJlIGltcGxlbWVudGVkIGJ5IHN1YnNlcXVlbnQgY2hhbmdlOworICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRGVjb2RlSW1hZ2UpOiB0byBiZSBp
bXBsZW1lbnRlZCBieSBzdWJzZXF1ZW50IGNoYW5nZTsKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZXNpemVJbWFnZSk6IHRvIGJlIGltcGxlbWVudGVkIGJ5
IHN1YnNlcXVlbnQgY2hhbmdlOworICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUmVzaXplSW1hZ2UpOiB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJzZXF1ZW50IGNo
YW5nZTsKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNsZWFyUmVjb3JkU3RhY2spOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbjo6c2V0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUGxh
dGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQpOgorICAgICAgICAoUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbnN0cnVtZW50YXRpb246Omhhc0Ns
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbERl
Y29kZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpk
aWREZWNvZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bjo6d2lsbFJlc2l6ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZXNpemVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9OYXRpdmVJbWFnZVNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2VTa2lh
OjpyZXNpemVkQml0bWFwKTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb24s
IHJlbW92ZWQgVFJBQ0VfRVZFTlQoKTsKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJNUEltYWdlRGVj
b2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb247CisgICAgICAgIChXZWJDb3JlOjpCTVBJbWFnZURlY29kZXI6OmRlY29kZSk6IHJl
bW92ZWQgVFJBQ0VfRVZFTlQoKQorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dp
Zi9HSUZJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0lGSW1hZ2VEZWNvZGVy
OjpmcmFtZUJ1ZmZlckF0SW5kZXgpOiBhZGRlZCBjYWxscyB0byBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjsKKyAgICAgICAgKFdlYkNvcmU6OkdJRkltYWdlRGVjb2Rlcjo6ZGVjb2RlKTogcmVtb3Zl
ZCBUUkFDRV9FVkVOVCgpCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lD
T0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJQ09JbWFnZURlY29kZXI6OmZy
YW1lQnVmZmVyQXRJbmRleCk6IGFkZGVkIGNhbGxzIHRvIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
OworICAgICAgICAoV2ViQ29yZTo6SUNPSW1hZ2VEZWNvZGVyOjpkZWNvZGUpOiByZW1vdmVkIFRS
QUNFX0VWRU5UKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlRGVjb2Rlcjo6ZnJh
bWVCdWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb247
CisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1hZ2VEZWNvZGVyOjpkZWNvZGUpOiByZW1vdmVkIFRS
QUNFX0VWRU5UKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6ZnJhbWVC
dWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb247Cisg
ICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldFQlBJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRl
eCk6IGFkZGVkIGNhbGxzIHRvIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOworICAgICAgICAoV2Vi
Q29yZTo6V0VCUEltYWdlRGVjb2Rlcjo6ZGVjb2RlKTogcmVtb3ZlZCBUUkFDRV9FVkVOVCgpOwor
CiAyMDEyLTA4LTE0ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogQ2FsbGluZyBnZXRFdmVudExpc3RlbmVycygpIG9uIGVsZW1l
bnQgd2l0aCBtYWxmb3JtZWQgamF2YXNjcmlwdCBldmVudCBsaXN0ZW5lcnMgY3Jhc2hlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCAxMTE1NGU5NGE3MzFkMjNmZjE2Yzk1ZDA3MGVjMjU2NTE5MmVm
YzNmLi4xZThkYjE2NGRhMDliMzFjNzY2NGIwMDZhZWU2OTNkMWY1YTFmMWFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMTc1MCw2ICsxNzUwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAg
IHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCiAgICAgcGxhdGZvcm0vTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtRXZlbnQuY3BwCisgICAgcGxhdGZv
cm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwCiAgICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAK
ICAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiYTg0
NjhhZmJjZWE2YzFjMjRjZTZhZDhhYjQ5ZjU3OWZhZmZlNzFmLi5mYWZmMGQ1ZmY5M2Q0NzdkNWMw
ZjRmZGFlMjE5N2M5NGVlNGIzN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTQxNDEsNiArNDE0MSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRXZlbnRMb29wLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJh
Y2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFjZXIuaCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVDaG9vc2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVJY29uTG9h
ZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBiMzllODk3YzJiNjA2MGQ3YWQ5NDY0MjM2NDdhMDY1
ZDI4Mzc0YTA5Li40MjY1NmJmOGM3N2NkNWVhZTk1YjViZTk1Mzc5NTljNDU0ZDk4YzQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTEwMzIsNiArMTAzMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1Jl
Z3VsYXJFeHByZXNzaW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAgXAor
ICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAgICAgcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCiAgICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAg
XAogICAgIHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
MTE4ODc3M2U5OTMzYzQ1ZmI3ZDI3ZTk0Y2M3YTVkYjIwNjljZGM5Ni4uMDJhN2QzNGY1YTRhNGM4
MjU3MTU2MDlkOWU5ODlhMTE0MDMzODQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzA0LDYgKzMw
NCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
UGxhdGZvcm1HZXN0dXJlRXZlbnQuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1J
bnN0cnVtZW50YXRpb24uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybUluc3Ry
dW1lbnRhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlN2FjYjFhYzA1YTQ2
YjE4N2EwNDFlNzYwOTEyMjNjZDk0ODQ5YTVlLi5iZmQzMDViZWZjNmE4NzEzODQ1ZGFkNWNjMjg2
ZWFjNTA5MDRhZWFlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjg0MTksNiArMjg0MTksMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUGxhdGZvcm1JbnN0cnVtZW50YXRp
b24uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggOGNjMzQzOTEyMGE0OWIzNDll
YmRhZDAzNDBmZDc0N2VhMWU5NjM4Ni4uNjA2ZjYwMzlkM2IxMDQxMzU3Mzc2MmNkOTQ5ZjEyYmE4
ZDY4ZDhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcApAQCAtMjU1LDYgKzI1NSwyMiBAQCB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZFBhaW50KCkKICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRUeXBlOjpQYWludCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbERlY29kZUltYWdlKGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkRGVjb2RlSW1hZ2UoKQoreworfQorCit2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxSZXNpemVJbWFnZShib29sKQoreworfQorCit2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZFJlc2l6ZUltYWdlKCkKK3sKK30KKwogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsQ29tcG9zaXRlKCkKIHsKICAgICBwdXNoQ3VycmVudFJlY29yZChJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkNvbXBvc2l0ZUxheWVy
cywgZmFsc2UsIDApOwpAQCAtNDg2LDkgKzUwMiw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAv
LyBBbiBlbXB0eSBzdGFjayBjb3VsZCBtZXJlbHkgbWVhbiB0aGF0IHRoZSB0aW1lbGluZSBhZ2Vu
dCB3YXMgdHVybmVkIG9uIGluIHRoZSBtaWRkbGUgb2YKICAgICAvLyBhbiBldmVudC4gIERvbid0
IHRyZWF0IGFzIGFuIGVycm9yLgogICAgIGlmICghbV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpIHsK
LSAgICAgICAgaWYgKG1fb3JwaGFuRXZlbnRzRW5hYmxlZFN0YWNrTWFyayA9PSBtX3JlY29yZFN0
YWNrLnNpemUoKSkgewotICAgICAgICAgICAgbV9vcnBoYW5FdmVudHNFbmFibGVkU3RhY2tNYXJr
ID0gMDsKLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2V0VGltZWxpbmVB
Z2VudEZvck9ycGhhbkV2ZW50cygwKTsKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1JbnN0cnVtZW50
YXRpb25DbGllbnRTZXQgPT0gbV9yZWNvcmRTdGFjay5zaXplKCkpIHsKKyAgICAgICAgICAgIG1f
cGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRTZXQgPSAwOworICAgICAgICAgICAgUGxhdGZv
cm1JbnN0cnVtZW50YXRpb246OnNldENsaWVudCgwKTsKICAgICAgICAgfQogCiAgICAgICAgIHB1
c2hHQ0V2ZW50UmVjb3JkcygpOwpAQCAtNTA5LDcgKzUyNSw3IEBAIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluCiAgICAgLCBtX3RpbWVzdGFtcE9mZnNldCgwKQogICAgICwgbV9pZCgxKQogICAgICwg
bV9tYXhDYWxsU3RhY2tEZXB0aCg1KQotICAgICwgbV9vcnBoYW5FdmVudHNFbmFibGVkU3RhY2tN
YXJrKDApCisgICAgLCBtX3BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50U2V0KDApCiAgICAg
LCBtX2luc3BlY3RvclR5cGUodHlwZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKIHsKQEAgLTUz
Niw5ICs1NTIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVj
b3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLAogICAgIGlmIChmcmFtZSAmJiBt
X3BhZ2VBZ2VudCkKICAgICAgICAgZnJhbWVJZCA9IG1fcGFnZUFnZW50LT5mcmFtZUlkKGZyYW1l
KTsKICAgICBtX3JlY29yZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZC5y
ZWxlYXNlKCksIGRhdGEsIEluc3BlY3RvckFycmF5OjpjcmVhdGUoKSwgdHlwZSwgZnJhbWVJZCkp
OwotICAgIGlmIChoYXNPcnBoYW5EZXRhaWxzICYmICFtX29ycGhhbkV2ZW50c0VuYWJsZWRTdGFj
a01hcmsgJiYgIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGltZWxpbmVBZ2VudEZvck9ycGhh
bkV2ZW50cygpKSB7Ci0gICAgICAgIG1fb3JwaGFuRXZlbnRzRW5hYmxlZFN0YWNrTWFyayA9IG1f
cmVjb3JkU3RhY2suc2l6ZSgpOwotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNl
dFRpbWVsaW5lQWdlbnRGb3JPcnBoYW5FdmVudHModGhpcyk7CisgICAgaWYgKGhhc09ycGhhbkRl
dGFpbHMgJiYgIW1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRTZXQgJiYgIVBsYXRmb3Jt
SW5zdHJ1bWVudGF0aW9uOjpoYXNDbGllbnQoKSkgeworICAgICAgICBtX3BsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uQ2xpZW50U2V0ID0gbV9yZWNvcmRTdGFjay5zaXplKCk7CisgICAgICAgIFBsYXRm
b3JtSW5zdHJ1bWVudGF0aW9uOjpzZXRDbGllbnQodGhpcyk7CiAgICAgfQogfQogCkBAIC01NTMs
NiArNTY5LDEwIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6Y29tbWl0RnJhbWVSZWNv
cmQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNsZWFyUmVjb3JkU3RhY2soKQog
eworICAgIGlmIChtX3BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50U2V0KSB7CisgICAgICAg
IG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRTZXQgPSAwOworICAgICAgICBQbGF0Zm9y
bUluc3RydW1lbnRhdGlvbjo6c2V0Q2xpZW50KDApOworICAgIH0KICAgICBtX3BlbmRpbmdGcmFt
ZVJlY29yZC5jbGVhcigpOwogICAgIG1fcmVjb3JkU3RhY2suY2xlYXIoKTsKICAgICBtX2lkKys7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aAppbmRleCAwYjRiOTBlODQyYWQ3Yzg2MGIzZDM4NDA1Yjk5NmVhZWVjMDY0OTdjLi5lY2JjYzJm
MzRkMjJhOTU2ZDNjNTFlODljMTA5MzZhYWIwN2I5NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTEsNSArMSw1IEBACiAv
KgotKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAq
CiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNp
bmNsdWRlICJMYXlvdXRUeXBlcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRM
aXN0ZW5lci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC01Niw3ICs1NywxMSBA
QCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsK
IAotY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdl
bnQ8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4sIFNjcmlwdEdDRXZlbnRMaXN0ZW5lciwgcHVibGlj
IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpUaW1lbGluZUNvbW1hbmRIYW5kbGVyIHsKK2Ns
YXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQKKyAgICA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdl
bnQ8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4sCisgICAgICBwdWJsaWMgU2NyaXB0R0NFdmVudExp
c3RlbmVyLAorICAgICAgcHVibGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpUaW1lbGlu
ZUNvbW1hbmRIYW5kbGVyLAorICAgICAgcHVibGljIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xp
ZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JUaW1lbGluZUFnZW50KTsK
IHB1YmxpYzoKICAgICBlbnVtIEluc3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9yLCBXb3JrZXJJ
bnNwZWN0b3IgfTsKQEAgLTE0Niw2ICsxNTEsMTIgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFBy
b2Nlc3NUYXNrKCk7CiAgICAgdm9pZCBkaWRQcm9jZXNzVGFzaygpOwogCisgICAgLy8gUGxhdGZv
cm1JbnN0cnVtZW50YXRpb25DbGllbnQgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
Y29kZUltYWdlKGNvbnN0IFN0cmluZyYgaW1hZ2VUeXBlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRGVjb2RlSW1hZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJl
c2l6ZUltYWdlKGJvb2wgc2hvdWxkQ2FjaGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZXNpemVJbWFnZSgpIE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIHN0cnVjdCBUaW1lbGlu
ZVJlY29yZEVudHJ5IHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwg
UGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZUlkKQpAQCAtMTk2LDcgKzIwNyw3IEBAIHByaXZhdGU6CiAgICAg
dHlwZWRlZiBWZWN0b3I8R0NFdmVudD4gR0NFdmVudHM7CiAgICAgR0NFdmVudHMgbV9nY0V2ZW50
czsKICAgICBpbnQgbV9tYXhDYWxsU3RhY2tEZXB0aDsKLSAgICB1bnNpZ25lZCBtX29ycGhhbkV2
ZW50c0VuYWJsZWRTdGFja01hcms7CisgICAgdW5zaWduZWQgbV9wbGF0Zm9ybUluc3RydW1lbnRh
dGlvbkNsaWVudFNldDsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBtX3BlbmRpbmdGcmFt
ZVJlY29yZDsKICAgICBJbnNwZWN0b3JUeXBlIG1faW5zcGVjdG9yVHlwZTsKICAgICBJbnNwZWN0
b3JDbGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1JbnN0cnVtZW50YXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNjMzOWI1ZjQxYjFjN2NmOGMw
Mjg0NWFjNGY2ODYxMTNiNTliZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQqIFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uOjptX2NsaWVudDsKKwordm9pZCBQbGF0Zm9ybUluc3RydW1l
bnRhdGlvbjo6c2V0Q2xpZW50KFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50KiBjbGllbnQp
Cit7CisgICAgbV9jbGllbnQgPSBjbGllbnQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0Y2UxNzc4
ZmRmZGIwYTUyYzg1NTVmOTliMjNhZTFkYzI1MTk0YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oCkBAIC0wLDAgKzEs
MTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbl9oCisjZGVmaW5lIFBsYXRmb3Jt
SW5zdHJ1bWVudGF0aW9uX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisj
aWYgUExBVEZPUk0oQ0hST01JVU0pCisjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVjb2RlSW1hZ2UoY29uc3QgV1RG
OjpTdHJpbmcmIGltYWdlVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZWNvZGVJbWFn
ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlc2l6ZUltYWdlKGJvb2wgc2hvdWxkQ2Fj
aGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaXplSW1hZ2UoKSA9IDA7Cit9OworCitj
bGFzcyBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQg
c2V0Q2xpZW50KFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50Kik7CisgICAgc3RhdGljIGJv
b2wgaGFzQ2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHN0YXRpYyB2b2lkIHdp
bGxEZWNvZGVJbWFnZShjb25zdCBXVEY6OlN0cmluZyYgaW1hZ2VUeXBlKTsKKyAgICBzdGF0aWMg
dm9pZCBkaWREZWNvZGVJbWFnZSgpOworICAgIHN0YXRpYyB2b2lkIHdpbGxSZXNpemVJbWFnZShi
b29sIHNob3VsZENhY2hlKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZXNpemVJbWFnZSgpOworCitw
cml2YXRlOgorICAgIHN0YXRpYyBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudCogbV9jbGll
bnQ7Cit9OworCisjZGVmaW5lIEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVCgpIGlmICghbV9jbGll
bnQpIHJldHVybjsKKworaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OndpbGxE
ZWNvZGVJbWFnZShjb25zdCBXVEY6OlN0cmluZyYgaW1hZ2VUeXBlKQoreworI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQorICAgIFRSQUNFX0VWRU5UX0JFR0lOMSgid2Via2l0IiwgIkltYWdlIERlY29k
ZSIsICJpbWFnZVR5cGUiLCBUUkFDRV9TVFJfQ09QWShpbWFnZVR5cGUuYXNjaWkoKS5kYXRhKCkp
KTsKKyNlbmRpZiAgICAKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19DTElFTlQoKTsKKyAgICBtX2Ns
aWVudC0+d2lsbERlY29kZUltYWdlKGltYWdlVHlwZSk7Cit9CisKK2lubGluZSB2b2lkIFBsYXRm
b3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNvZGVJbWFnZSgpCit7CisjaWYgUExBVEZPUk0oQ0hS
T01JVU0pCisgICAgVFJBQ0VfRVZFTlRfRU5EMCgid2Via2l0IiwgIkltYWdlIERlY29kZSIpOwor
I2VuZGlmICAgIAorICAgIEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVCgpOworICAgIG1fY2xpZW50
LT5kaWREZWNvZGVJbWFnZSgpOworfQorCitpbmxpbmUgdm9pZCBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjo6d2lsbFJlc2l6ZUltYWdlKGJvb2wgc2hvdWxkQ2FjaGUpCit7CisjaWYgUExBVEZPUk0o
Q0hST01JVU0pCisgICAgVFJBQ0VfRVZFTlRfQkVHSU4xKCJ3ZWJraXQiLCAiSW1hZ2UgUmVzaXpl
IiwgImNhY2hlZCIsIHNob3VsZENhY2hlKTsKKyNlbmRpZiAgICAKKyAgICBGQVNUX1JFVFVSTl9J
Rl9OT19DTElFTlQoKTsKKyAgICBtX2NsaWVudC0+d2lsbFJlc2l6ZUltYWdlKHNob3VsZENhY2hl
KTsKK30KKworaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OmRpZFJlc2l6ZUlt
YWdlKCkKK3sKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICBUUkFDRV9FVkVOVF9FTkQwKCJ3
ZWJraXQiLCAiSW1hZ2UgUmVzaXplIik7CisjZW5kaWYgICAgCisgICAgRkFTVF9SRVRVUk5fSUZf
Tk9fQ0xJRU5UKCk7CisgICAgbV9jbGllbnQtPmRpZFJlc2l6ZUltYWdlKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZl
SW1hZ2VTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0
aXZlSW1hZ2VTa2lhLmNwcAppbmRleCA3ZTM0YzA3OWQ4NTY2NzM1N2I1YWFkODk2MGM1NGNhNmU1
NmUyZDljLi4yYzRiYWVkNzU0ZDM3ZGYwODI4MWZjMjJhNmIzZGIzNDhmNTA1NGQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdlU2tp
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJ
bWFnZVNraWEuY3BwCkBAIC0zNCwxMiArMzQsOSBAQAogCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VT
a2lhLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNraWFVdGlscy5oIgogCi0jaWYgUExBVEZP
Uk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogTmF0aXZlSW1hZ2VTa2lhOjpOYXRpdmVJbWFnZVNraWEoKQpAQCAtNzQs
OSArNzEsNiBAQCBTa0JpdG1hcCBOYXRpdmVJbWFnZVNraWE6OnJlc2l6ZWRCaXRtYXAoY29uc3Qg
U2tJUmVjdCYgc3JjU3Vic2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBkZXN0SGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFNrSVJlY3QmIGRlc3RWaXNpYmxlU3Vic2V0KSBjb25zdAogewotI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgic2tpYSIsICJOYXRpdmVJbWFnZVNraWE6
OnJlc2l6ZWRCaXRtYXAiKTsKLSNlbmRpZgogICAgIGlmICghaGFzUmVzaXplZEJpdG1hcChzcmNT
dWJzZXQsIGRlc3RXaWR0aCwgZGVzdEhlaWdodCkpIHsKICAgICAgICAgYm9vbCBzaG91bGRDYWNo
ZSA9IGlzRGF0YUNvbXBsZXRlKCkKICAgICAgICAgICAgICYmIHNob3VsZENhY2hlUmVzYW1wbGlu
ZyhzcmNTdWJzZXQsIGRlc3RXaWR0aCwgZGVzdEhlaWdodCwgZGVzdFZpc2libGVTdWJzZXQpOwpA
QCAtODQsMTggKzc4LDE2IEBAIFNrQml0bWFwIE5hdGl2ZUltYWdlU2tpYTo6cmVzaXplZEJpdG1h
cChjb25zdCBTa0lSZWN0JiBzcmNTdWJzZXQsCiAgICAgICAgIFNrQml0bWFwIHN1YnNldDsKICAg
ICAgICAgbV9pbWFnZS5leHRyYWN0U3Vic2V0KCZzdWJzZXQsIHNyY1N1YnNldCk7CiAgICAgICAg
IGlmICghc2hvdWxkQ2FjaGUpIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgICAg
IFRSQUNFX0VWRU5UMCgic2tpYSIsICJub25DYWNoZWRSZXNpemUiKTsKLSNlbmRpZgogICAgICAg
ICAgICAgLy8gSnVzdCByZXNpemUgdGhlIHZpc2libGUgc3Vic2V0IGFuZCByZXR1cm4gaXQuCisg
ICAgICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbFJlc2l6ZUltYWdlKHNob3Vs
ZENhY2hlKTsKICAgICAgICAgICAgIFNrQml0bWFwIHJlc2l6ZWRJbWFnZSA9IHNraWE6OkltYWdl
T3BlcmF0aW9uczo6UmVzaXplKHN1YnNldCwgc2tpYTo6SW1hZ2VPcGVyYXRpb25zOjpSRVNJWkVf
TEFOQ1pPUzMsIGRlc3RXaWR0aCwgZGVzdEhlaWdodCwgZGVzdFZpc2libGVTdWJzZXQpOworICAg
ICAgICAgICAgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OmRpZFJlc2l6ZUltYWdlKCk7CiAgICAg
ICAgICAgICByZXNpemVkSW1hZ2Uuc2V0SW1tdXRhYmxlKCk7CiAgICAgICAgICAgICByZXR1cm4g
cmVzaXplZEltYWdlOwogICAgICAgICB9IGVsc2UgewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQot
ICAgICAgICAgICAgVFJBQ0VfRVZFTlQwKCJza2lhIiwgImNhY2hlZFJlc2l6ZSIpOwotI2VuZGlm
CisgICAgICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbFJlc2l6ZUltYWdlKHNo
b3VsZENhY2hlKTsKICAgICAgICAgICAgIG1fcmVzaXplZEltYWdlID0gc2tpYTo6SW1hZ2VPcGVy
YXRpb25zOjpSZXNpemUoc3Vic2V0LCBza2lhOjpJbWFnZU9wZXJhdGlvbnM6OlJFU0laRV9MQU5D
Wk9TMywgZGVzdFdpZHRoLCBkZXN0SGVpZ2h0KTsKKyAgICAgICAgICAgIFBsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uOjpkaWRSZXNpemVJbWFnZSgpOwogICAgICAgICB9CiAgICAgICAgIG1fcmVzaXpl
ZEltYWdlLnNldEltbXV0YWJsZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcC9CTVBJbWFnZURlY29kZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAK
aW5kZXggNDNlZjUxOGRlODc4OTZlNDM3OGEwYjc0OTVkZjI2OTlhYTdiYjQ4OC4uNzJiYzdkMGMx
MDgzMzIxNzNkZTVlM2MyY2VjNThjYWM2MzNkMjVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rl
ci5jcHAKQEAgLTMyLDEyICszMiw5IEBACiAjaW5jbHVkZSAiQk1QSW1hZ2VEZWNvZGVyLmgiCiAK
ICNpbmNsdWRlICJCTVBJbWFnZVJlYWRlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQotI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIE51bWJlciBvZiBiaXRzIGluIC5CTVAgdXNlZCB0byBzdG9yZSB0aGUgZmls
ZSBoZWFkZXIgKGRvZXNuJ3QgbWF0Y2gKQEAgLTgxLDggKzc4LDExIEBAIEltYWdlRnJhbWUqIEJN
UEltYWdlRGVjb2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICB9CiAK
ICAgICBJbWFnZUZyYW1lKiBidWZmZXIgPSAmbV9mcmFtZUJ1ZmZlckNhY2hlLmZpcnN0KCk7Ci0g
ICAgaWYgKGJ1ZmZlci0+c3RhdHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkKKyAg
ICBpZiAoYnVmZmVyLT5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKSB7Cisg
ICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVjb2RlSW1hZ2UoIkJNUCIpOwog
ICAgICAgICBkZWNvZGUoZmFsc2UpOworICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6
ZGlkRGVjb2RlSW1hZ2UoKTsKKyAgICB9CiAgICAgcmV0dXJuIGJ1ZmZlcjsKIH0KIApAQCAtOTQs
OSArOTQsNiBAQCBib29sIEJNUEltYWdlRGVjb2Rlcjo6c2V0RmFpbGVkKCkKIAogdm9pZCBCTVBJ
bWFnZURlY29kZXI6OmRlY29kZShib29sIG9ubHlTaXplKQogewotI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIkJNUEltYWdlRGVjb2Rlcjo6ZGVjb2Rl
Iik7Ci0jZW5kaWYKICAgICBpZiAoZmFpbGVkKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdl
RGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYv
R0lGSW1hZ2VEZWNvZGVyLmNwcAppbmRleCA3MjRlYTBkMTNiNmVkYjUyNWZlYmE1YmVhNWZlMGQ4
MzFhZDEwMGJmLi40MGUxMzFlN2NhOTQ4NGY1Mjc4OGU3NTEwM2E1YjAxYmI5YzU2NzRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1h
Z2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9naWYvR0lGSW1hZ2VEZWNvZGVyLmNwcApAQCAtMjcsMTIgKzI3LDkgQEAKICNpbmNsdWRlICJH
SUZJbWFnZURlY29kZXIuaCIKIAogI2luY2x1ZGUgIkdJRkltYWdlUmVhZGVyLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogR0lGSW1hZ2VEZWNvZGVyOjpHSUZJbWFnZURl
Y29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLApAQCAtMTMwLDggKzEy
NywxMSBAQCBJbWFnZUZyYW1lKiBHSUZJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChz
aXplX3QgaW5kZXgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgSW1hZ2VGcmFtZSYgZnJhbWUg
PSBtX2ZyYW1lQnVmZmVyQ2FjaGVbaW5kZXhdOwotICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJ
bWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQorICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFn
ZUZyYW1lOjpGcmFtZUNvbXBsZXRlKSB7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
Ojp3aWxsRGVjb2RlSW1hZ2UoIkdJRiIpOwogICAgICAgICBkZWNvZGUoaW5kZXggKyAxLCBHSUZG
dWxsUXVlcnkpOworICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6ZGlkRGVjb2RlSW1h
Z2UoKTsKKyAgICB9CiAgICAgcmV0dXJuICZmcmFtZTsKIH0KIApAQCAtMzE0LDkgKzMxNCw2IEBA
IHZvaWQgR0lGSW1hZ2VEZWNvZGVyOjpnaWZDb21wbGV0ZSgpCiAKIHZvaWQgR0lGSW1hZ2VEZWNv
ZGVyOjpkZWNvZGUodW5zaWduZWQgaGFsdEF0RnJhbWUsIEdJRlF1ZXJ5IHF1ZXJ5KQogewotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIkdJRkltYWdl
RGVjb2Rlcjo6ZGVjb2RlIik7Ci0jZW5kaWYKICAgICBpZiAoZmFpbGVkKCkpCiAgICAgICAgIHJl
dHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcAppbmRleCAzNmRkZTFjZGQ1NmQwMDg0
ZTRmNmRlNTJiM2Y3NDU1ZDZhMDY5OWEwLi4yZGIzZWNmNmNlN2ZjYzczMmNlMjQzNWRkZTRkYzk3
OThjNjg2MzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcApAQCAtMzUsMTIgKzM1LDkg
QEAKIAogI2luY2x1ZGUgIkJNUEltYWdlUmVhZGVyLmgiCiAjaW5jbHVkZSAiUE5HSW1hZ2VEZWNv
ZGVyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiVHJh
Y2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gTnVtYmVyIG9m
IGJpdHMgaW4gLklDTy8uQ1VSIHVzZWQgdG8gc3RvcmUgdGhlIGRpcmVjdG9yeSBhbmQgaXRzIGVu
dHJpZXMsCkBAIC0xMjEsOCArMTE4LDExIEBAIEltYWdlRnJhbWUqIElDT0ltYWdlRGVjb2Rlcjo6
ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICBJbWFnZUZyYW1lKiBidWZmZXIgPSAmbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XTsKLSAgICBp
ZiAoYnVmZmVyLT5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQorICAgIGlm
IChidWZmZXItPnN0YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpIHsKKyAgICAg
ICAgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OndpbGxEZWNvZGVJbWFnZSgiSUNPIik7CiAgICAg
ICAgIGRlY29kZShpbmRleCwgZmFsc2UpOworICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bjo6ZGlkRGVjb2RlSW1hZ2UoKTsKKyAgICB9CiAgICAgcmV0dXJuIGJ1ZmZlcjsKIH0KIApAQCAt
MTU3LDkgKzE1Nyw2IEBAIHZvaWQgSUNPSW1hZ2VEZWNvZGVyOjpzZXREYXRhRm9yUE5HRGVjb2Rl
ckF0SW5kZXgoc2l6ZV90IGluZGV4KQogCiB2b2lkIElDT0ltYWdlRGVjb2Rlcjo6ZGVjb2RlKHNp
emVfdCBpbmRleCwgYm9vbCBvbmx5U2l6ZSkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAg
ICBUUkFDRV9FVkVOVDAoIndlYmtpdCIsICJJQ09JbWFnZURlY29kZXI6OmRlY29kZSIpOwotI2Vu
ZGlmCiAgICAgaWYgKGZhaWxlZCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwCmluZGV4IGJlZjQyMDNhNTc3MDM0Njg5MTFmY2I3ZDc2ZTQ5MWZhOTAy
MGVhOTEuLjI3NWZmYzA1OTllOWMzZDE1NDQzYTYzYjYyMjYxMzIxOWFhZGI2ZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdl
RGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcApAQCAtMzksMTMgKzM5LDEwIEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJKUEVHSW1hZ2VEZWNvZGVyLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1JbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxzdGRpby5oPiAgLy8gTmVlZGVkIGJ5
IGpwZWdsaWIuaCBmb3IgRklMRS4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYg
UExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KICNp
ZiBPUyhXSU5DRSkKIC8vIFJlbW92ZSB3YXJuaW5nOiAnRkFSJyBtYWNybyByZWRlZmluaXRpb24K
ICN1bmRlZiBGQVIKQEAgLTU0MCw4ICs1MzcsMTEgQEAgSW1hZ2VGcmFtZSogSlBFR0ltYWdlRGVj
b2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICB9CiAKICAgICBJbWFn
ZUZyYW1lJiBmcmFtZSA9IG1fZnJhbWVCdWZmZXJDYWNoZVswXTsKLSAgICBpZiAoZnJhbWUuc3Rh
dHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkKKyAgICBpZiAoZnJhbWUuc3RhdHVz
KCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkgeworICAgICAgICBQbGF0Zm9ybUluc3Ry
dW1lbnRhdGlvbjo6d2lsbERlY29kZUltYWdlKCJKUEVHIik7CiAgICAgICAgIGRlY29kZShmYWxz
ZSk7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNvZGVJbWFnZSgpOwor
ICAgIH0KICAgICByZXR1cm4gJmZyYW1lOwogfQogCkBAIC02NDcsOSArNjQ3LDYgQEAgdm9pZCBK
UEVHSW1hZ2VEZWNvZGVyOjpqcGVnQ29tcGxldGUoKQogCiB2b2lkIEpQRUdJbWFnZURlY29kZXI6
OmRlY29kZShib29sIG9ubHlTaXplKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRS
QUNFX0VWRU5UMCgid2Via2l0IiwgIkpQRUdJbWFnZURlY29kZXI6OmRlY29kZSIpOwotI2VuZGlm
CiAgICAgaWYgKGZhaWxlZCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVj
b2Rlci5jcHAKaW5kZXggMTU4ZGViYjVhYjFjMzhjMWUxYTdiYWEzYWQwZDNhZjRkNzM2NDlhOC4u
ZmI5NGI4MTc1ZjQxYmM3OGQxZTYyODQxN2YxZTVmMzAzZjY4Mjc4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0lt
YWdlRGVjb2Rlci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJQTkdJbWFnZURlY29kZXIuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAicG5nLmgiCiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTI2MSw4ICsyNjIsMTEgQEAgSW1hZ2VG
cmFtZSogUE5HSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQog
ICAgIH0KIAogICAgIEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZUJ1ZmZlckNhY2hlWzBdOwot
ICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQorICAg
IGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKSB7CisgICAg
ICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVjb2RlSW1hZ2UoIlBORyIpOwogICAg
ICAgICBkZWNvZGUoZmFsc2UpOworICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6ZGlk
RGVjb2RlSW1hZ2UoKTsKKyAgICB9CiAgICAgcmV0dXJuICZmcmFtZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VE
ZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAv
V0VCUEltYWdlRGVjb2Rlci5jcHAKaW5kZXggNjEyODkwZjMxMjUyYmUxNzBiZjc5ZjNjMWYwNWU1
Mjc1MDM1ODI5YS4uYWY0MDEwNmFiZTliM2Y4OTg0NDY0MDg3N2NlY2JiZjY5N2EzYWQ0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQ
SW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwCkBAIC0zMSwxMiArMzEsOSBAQAogCiAjaWYg
VVNFKFdFQlApCiAKKyNpbmNsdWRlICJQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIndlYnAvZGVjb2RlLmgiCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJU
cmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogI2lmIENQVShCSUdfRU5ESUFOKSB8fCBDUFUoTUlERExF
X0VORElBTikKIGlubGluZSBXRUJQX0NTUF9NT0RFIG91dHB1dE1vZGUoKSB7IHJldHVybiBNT0RF
X1JHQkE7IH0KICNlbGlmIFVTRShTS0lBKSAmJiBTS19CMzJfU0hJRlQKQEAgLTgwLDE2ICs3Nywx
NiBAQCBJbWFnZUZyYW1lKiBXRUJQSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6
ZV90IGluZGV4KQogICAgIH0KIAogICAgIEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZUJ1ZmZl
ckNhY2hlWzBdOwotICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNv
bXBsZXRlKQorICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBs
ZXRlKSB7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVjb2RlSW1hZ2Uo
IldFQlAiKTsKICAgICAgICAgZGVjb2RlKGZhbHNlKTsKKyAgICAgICAgUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb246OmRpZERlY29kZUltYWdlKCk7CisgICAgfQogICAgIHJldHVybiAmZnJhbWU7CiB9
CiAKIGJvb2wgV0VCUEltYWdlRGVjb2Rlcjo6ZGVjb2RlKGJvb2wgb25seVNpemUpCiB7Ci0jaWYg
UExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiV0VCUEltYWdl
RGVjb2Rlcjo6ZGVjb2RlIik7Ci0jZW5kaWYKICAgICBpZiAoZmFpbGVkKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158756</attachid>
            <date>2012-08-16 02:24:55 -0700</date>
            <delta_ts>2012-08-16 04:50:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94125-20120816132419.patch</filename>
            <type>text/plain</type>
            <size>33077</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI4NmFhNTIxN2E4MTBk
Mzg1Mzc5YjQ4YmE5M2RjOGQyMmIwMTlmOC4uNzI3NGU4YWE0Zjg2YTE1MTFlYzZiZDU0ZDcwOWUw
ZTU5Y2M5Mjg4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA4LTE2ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZW5hYmxlIGluc3RydW1lbnRhdGlvbiBvZiBwbGF0Zm9ybSBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDEyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgLSBhZGQgUGxhdGZvcm1J
bnN0cnVtZW50YXRpb24gY2xhc3MgdGhhdCBleHBvc2VzIGluc3RydW1lbnRhdGlvbiBtZXRob2Rz
IHRoYXQgbWF5IGJlIHVzZWQgYnkgY29kZSB1bmRlciBXZWJDb3JlL3BsYXRmb3JtOworICAgICAg
ICAtIG1vdmUgVFJBQ0VfRVZFTlRfWFhYKCkgbWFjcm9zIGludG8gUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24uaCB0byBtaW5pbWl6ZSBpbnN0cnVtZW50YXRpb24gaGFzc2xlIGluIHRoZSBjbGllbnQg
Y29kZTsKKyAgICAgICAgLSBpbXBsZW1lbnQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQg
YnkgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKKyAgICAgICAgLSBvbmx5IGluc3RhbGwgUGxhdGZv
cm1JbnN0cnVtZW50YXRpb25DbGllbnQgd2hlbiB3ZSBoYXZlIG91dGVyIGV2ZW50cyBmb3Igd2hp
Y2ggd2UgZXhwZWN0IGxvdy1sZXZlbCBkZXRhaWxzCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxEZWNvZGVJ
bWFnZSk6IHRvIGJlIGltcGxlbWVudGVkIGJ5IHN1YnNlcXVlbnQgY2hhbmdlOworICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRGVjb2RlSW1hZ2UpOiB0byBiZSBp
bXBsZW1lbnRlZCBieSBzdWJzZXF1ZW50IGNoYW5nZTsKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZXNpemVJbWFnZSk6IHRvIGJlIGltcGxlbWVudGVkIGJ5
IHN1YnNlcXVlbnQgY2hhbmdlOworICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUmVzaXplSW1hZ2UpOiB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJzZXF1ZW50IGNo
YW5nZTsKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNsZWFyUmVjb3JkU3RhY2spOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbjo6c2V0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUGxh
dGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQpOgorICAgICAgICAoUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbnN0cnVtZW50YXRpb246Omhhc0Ns
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbERl
Y29kZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpk
aWREZWNvZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bjo6d2lsbFJlc2l6ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZXNpemVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9OYXRpdmVJbWFnZVNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2VTa2lh
OjpyZXNpemVkQml0bWFwKTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb24s
IHJlbW92ZWQgVFJBQ0VfRVZFTlQoKTsKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJNUEltYWdlRGVj
b2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb247CisgICAgICAgIChXZWJDb3JlOjpCTVBJbWFnZURlY29kZXI6OmRlY29kZSk6IHJl
bW92ZWQgVFJBQ0VfRVZFTlQoKQorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dp
Zi9HSUZJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0lGSW1hZ2VEZWNvZGVy
OjpmcmFtZUJ1ZmZlckF0SW5kZXgpOiBhZGRlZCBjYWxscyB0byBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjsKKyAgICAgICAgKFdlYkNvcmU6OkdJRkltYWdlRGVjb2Rlcjo6ZGVjb2RlKTogcmVtb3Zl
ZCBUUkFDRV9FVkVOVCgpCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lD
T0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJQ09JbWFnZURlY29kZXI6OmZy
YW1lQnVmZmVyQXRJbmRleCk6IGFkZGVkIGNhbGxzIHRvIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
OworICAgICAgICAoV2ViQ29yZTo6SUNPSW1hZ2VEZWNvZGVyOjpkZWNvZGUpOiByZW1vdmVkIFRS
QUNFX0VWRU5UKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlRGVjb2Rlcjo6ZnJh
bWVCdWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb247
CisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1hZ2VEZWNvZGVyOjpkZWNvZGUpOiByZW1vdmVkIFRS
QUNFX0VWRU5UKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6ZnJhbWVC
dWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb247Cisg
ICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldFQlBJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRl
eCk6IGFkZGVkIGNhbGxzIHRvIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOworICAgICAgICAoV2Vi
Q29yZTo6V0VCUEltYWdlRGVjb2Rlcjo6ZGVjb2RlKTogcmVtb3ZlZCBUUkFDRV9FVkVOVCgpOwor
CiAyMDEyLTA4LTE2ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Zvcm1zXSBXaGVlbCBldmVudCBzdXBwb3J0IGluIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDkzMGE5MWEyYjYxYzJkZDY4NWZlMTMx
NzUxOGM3ZWM1YjgyOWNhZDMuLjBhZWQzOTJjYjgwYThiMjdhYjZiMWI2NTkwOTA3ZjU4NzE4MzFm
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzUwLDYgKzE3NTAsNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKICAgICBwbGF0Zm9y
bS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5j
cHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAKICAgICBwbGF0Zm9y
bS9SdW5Mb29wLmNwcAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAK
ICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IGU2NzZlNzcyOTgyZjEzNmZmZDlhODYzZTNmMzQyZDYzYTI4NWU0YmEuLjJmNWE4
YzdiZGY2ZTc2Mzg2ODc1ZDhiNjk1ODFmMTRhNWRmODkwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDEzOSw2ICs0MTM5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudExvb3AuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRXZlbnRUcmFjZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRy
YWNlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlv
bi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZUljb25Mb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGI4YzM1ZDA0MThlMzJjNWU5
MDFlNWYxNDBlM2MzYmE1MTY1NTYwOGYuLmIzOThhZTVlNGFlMzQwYTlmMTA4ZTI0ZTkzZTFmZTU0
MTMwZmE3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTAzMSw2ICsxMDMxLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgXAogICAgIHBs
YXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9y
bUV2ZW50LmNwcCBcCisgICAgcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIFwK
ICAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIFwKICAgICBwbGF0Zm9y
bS9SdW5Mb29wLmNwcCBcCiAgICAgcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCA5YTVjNjMwNzI2NzU5YjNhNTA0ZTBlOTU1ZTk4OGQzMzcxNTA1MDY0Li40
ZWYyOWM1ZDllZjUxYTczNzZkMDk3OTRmYmY1YWUzOGU2YzFhMjZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0zMDQsNiArMzA0LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1cmVFdmVudC5oJywKKyAgICAgICAgICAgICdwbGF0
Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybU1lbnVE
ZXNjcmlwdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQu
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDg4ZTc3NmI1MzdhNjA3MGQ0M2QwYTY5YjQxZWRlODQ5ZTcxNWJjNjIuLmYwN2EyOWU0Zjg5MGY0
ODQ3Mjg0NWNmYTI2ZTNkNTM0MTg2N2QwNTkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yODQxOSw2ICsyODQxOSwxNCBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxQbGF0Zm9y
bUluc3RydW1lbnRhdGlvbi5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFBs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NjE2ZjdlNjEw
YTlmZjIzMDY1NDQxNWNlOTAyNzBiMDhmNDJlYmUzLi40NDFhNDA0YmQ3ODA0NmIyMWZhYmRjNzU0
NDkwYzQ5NTg1ZjI1YmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjM1LDYgKzEyMzUsOCBAQAogCQk0NkY5RDVERjBCMEQ2
MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkY5RDVEQzBCMEQ2MDE3MDAyOEVFMzYgLyogcHJv
Z3Jlc3NDdXJzb3IucG5nICovOyB9OwogCQk0OTA3MDdFNjEyMTlDMDQzMDBEOTBFNTEgLyogQU5H
TEVXZWJLaXRCcmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNw
cCAqLzsgfTsKIAkJNDkwNzA3RTcxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdF
NTEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAqLzsgfTsKKwkJNDkxODJC
NTIxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MTgyQjUwMTVEQ0U2RjAw
MDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAgKi87IH07CisJCTQ5MTgyQjUz
MTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkxODJCNTExNURDRTZGMDAwNTQ4
NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTQ5Mjg2Mzk5MTI1M0I4
RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3Vy
Y2VMb2FkSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MjkxRTRBMTM0
MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCAqLzsgfTsKIAkJNDkzRTVFMDkx
MkQ2NDIwNTAwMDIwMDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkzRTVFMDgxMkQ2NDIwNTAwMDIwMDgx
IC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC04MzM4LDYgKzgzNDAsOCBAQAogCQk0NkY5RDVEQzBCMEQ2
MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gcHJvZ3Jlc3NDdXJz
b3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTA3MDdFNDEyMTlDMDQzMDBE
OTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQU5HTEVXZWJLaXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVXZWJLaXRCcmlkZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDkxODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDkxODJCNTExNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2Mzk4MTI1M0I4RkMw
MEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlc291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkzRTVFMDgxMkQ2NDIwNTAwMDIwMDgxIC8qIFBsYXRmb3Jt
Q0FMYXllckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQbGF0Zm9y
bUNBTGF5ZXJDbGllbnQuaDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3MTksNiArMjA3MjMsOCBAQAogCQkJCUJDNUM3
NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi8sCiAJCQkJQTcyM0Y3N0Ex
NDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8sCiAJCQkJQkM5NTg1
REYxMkYwOTg5NTAwNzU1ODIxIC8qIFBsYXRmb3JtR2VzdHVyZUV2ZW50LmggKi8sCisJCQkJNDkx
ODJCNTAxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcCAqLywK
KwkJCQk0OTE4MkI1MTE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24u
aCAqLywKIAkJCQk5MzVDNDc2NjA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmggKi8sCiAJCQkJOTMyODcxQkYwQjIwREVCNzAwNDkwMzVBIC8qIFBsYXRmb3JtTWVudURl
c2NyaXB0aW9uLmggKi8sCiAJCQkJOTM1QzQ3NjcwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3Jt
TW91c2VFdmVudC5oICovLApAQCAtMjUzOTUsNiArMjU0MDEsNyBAQAogCQkJCUUxQkU1MTJFMENG
NkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ5MTgyQjUzMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yODQ2NSw2ICsyODQ3Miw3IEBACiAJCQkJRTFCRTUxMkQwQ0Y2
QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDkxODJCNTIxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDhjYzM0MzkxMjBhNDliMzQ5ZWJkYWQw
MzQwZmQ3NDdlYTFlOTYzODYuLjYwNmY2MDM5ZDNiMTA0MTM1NzM3NjJjZDk0OWYxMmJhOGQ2OGQ4
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHAKQEAgLTI1NSw2ICsyNTUsMjIgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRQYWludCgpCiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVj
b3JkVHlwZTo6UGFpbnQpOwogfQogCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxE
ZWNvZGVJbWFnZShjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZERlY29kZUltYWdlKCkKK3sKK30KKwordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50Ojp3aWxsUmVzaXplSW1hZ2UoYm9vbCkKK3sKK30KKwordm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRSZXNpemVJbWFnZSgpCit7Cit9CisKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbENvbXBvc2l0ZSgpCiB7CiAgICAgcHVzaEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpDb21wb3NpdGVMYXllcnMsIGZh
bHNlLCAwKTsKQEAgLTQ4Niw5ICs1MDIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZChjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgLy8gQW4g
ZW1wdHkgc3RhY2sgY291bGQgbWVyZWx5IG1lYW4gdGhhdCB0aGUgdGltZWxpbmUgYWdlbnQgd2Fz
IHR1cm5lZCBvbiBpbiB0aGUgbWlkZGxlIG9mCiAgICAgLy8gYW4gZXZlbnQuICBEb24ndCB0cmVh
dCBhcyBhbiBlcnJvci4KICAgICBpZiAoIW1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGlmIChtX29ycGhhbkV2ZW50c0VuYWJsZWRTdGFja01hcmsgPT0gbV9yZWNvcmRTdGFjay5z
aXplKCkpIHsKLSAgICAgICAgICAgIG1fb3JwaGFuRXZlbnRzRW5hYmxlZFN0YWNrTWFyayA9IDA7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNldFRpbWVsaW5lQWdlbnRG
b3JPcnBoYW5FdmVudHMoMCk7CisgICAgICAgIGlmIChtX3BsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
Q2xpZW50U2V0ID09IG1fcmVjb3JkU3RhY2suc2l6ZSgpKSB7CisgICAgICAgICAgICBtX3BsYXRm
b3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50U2V0ID0gMDsKKyAgICAgICAgICAgIFBsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uOjpzZXRDbGllbnQoMCk7CiAgICAgICAgIH0KIAogICAgICAgICBwdXNoR0NF
dmVudFJlY29yZHMoKTsKQEAgLTUwOSw3ICs1MjUsNyBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bgogICAgICwgbV90aW1lc3RhbXBPZmZzZXQoMCkKICAgICAsIG1faWQoMSkKICAgICAsIG1fbWF4
Q2FsbFN0YWNrRGVwdGgoNSkKLSAgICAsIG1fb3JwaGFuRXZlbnRzRW5hYmxlZFN0YWNrTWFyaygw
KQorICAgICwgbV9wbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudFNldCgwKQogICAgICwgbV9p
bnNwZWN0b3JUeXBlKHR5cGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiB7CkBAIC01MzYsOSAr
NTUyLDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZChQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwKICAgICBpZiAoZnJhbWUgJiYgbV9wYWdl
QWdlbnQpCiAgICAgICAgIGZyYW1lSWQgPSBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSk7CiAg
ICAgbV9yZWNvcmRTdGFjay5hcHBlbmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQucmVsZWFz
ZSgpLCBkYXRhLCBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCksIHR5cGUsIGZyYW1lSWQpKTsKLSAg
ICBpZiAoaGFzT3JwaGFuRGV0YWlscyAmJiAhbV9vcnBoYW5FdmVudHNFbmFibGVkU3RhY2tNYXJr
ICYmICFJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnRpbWVsaW5lQWdlbnRGb3JPcnBoYW5FdmVu
dHMoKSkgewotICAgICAgICBtX29ycGhhbkV2ZW50c0VuYWJsZWRTdGFja01hcmsgPSBtX3JlY29y
ZFN0YWNrLnNpemUoKTsKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzZXRUaW1l
bGluZUFnZW50Rm9yT3JwaGFuRXZlbnRzKHRoaXMpOworICAgIGlmIChoYXNPcnBoYW5EZXRhaWxz
ICYmICFtX3BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50U2V0ICYmICFQbGF0Zm9ybUluc3Ry
dW1lbnRhdGlvbjo6aGFzQ2xpZW50KCkpIHsKKyAgICAgICAgbV9wbGF0Zm9ybUluc3RydW1lbnRh
dGlvbkNsaWVudFNldCA9IG1fcmVjb3JkU3RhY2suc2l6ZSgpOworICAgICAgICBQbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbjo6c2V0Q2xpZW50KHRoaXMpOwogICAgIH0KIH0KIApAQCAtNTUzLDYgKzU2
OSwxMCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNvbW1pdEZyYW1lUmVjb3JkKCkK
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjbGVhclJlY29yZFN0YWNrKCkKIHsKKyAg
ICBpZiAobV9wbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudFNldCkgeworICAgICAgICBtX3Bs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50U2V0ID0gMDsKKyAgICAgICAgUGxhdGZvcm1JbnN0
cnVtZW50YXRpb246OnNldENsaWVudCgwKTsKKyAgICB9CiAgICAgbV9wZW5kaW5nRnJhbWVSZWNv
cmQuY2xlYXIoKTsKICAgICBtX3JlY29yZFN0YWNrLmNsZWFyKCk7CiAgICAgbV9pZCsrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5k
ZXggMGI0YjkwZTg0MmFkN2M4NjBiM2QzODQwNWI5OTZlYWVlYzA2NDk3Yy4uZWNiY2MyZjM0ZDIy
YTk1NmQzYzUxZTg5YzEwOTM2YWFiMDdiOTcyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIklu
c3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0VHlwZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIlNjcmlwdEdDRXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50TGlzdGVu
ZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtNTYsNyArNTcsMTEgQEAgY2xh
c3MgUmVzb3VyY2VSZXNwb25zZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNs
YXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ+LCBTY3JpcHRHQ0V2ZW50TGlzdGVuZXIsIHB1YmxpYyBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6VGltZWxpbmVDb21tYW5kSGFuZGxlciB7CitjbGFzcyBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50CisgICAgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ+LAorICAgICAgcHVibGljIFNjcmlwdEdDRXZlbnRMaXN0ZW5l
ciwKKyAgICAgIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6VGltZWxpbmVDb21t
YW5kSGFuZGxlciwKKyAgICAgIHB1YmxpYyBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudCB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk7CiBwdWJs
aWM6CiAgICAgZW51bSBJbnNwZWN0b3JUeXBlIHsgUGFnZUluc3BlY3RvciwgV29ya2VySW5zcGVj
dG9yIH07CkBAIC0xNDYsNiArMTUxLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxQcm9jZXNz
VGFzaygpOwogICAgIHZvaWQgZGlkUHJvY2Vzc1Rhc2soKTsKIAorICAgIC8vIFBsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uQ2xpZW50IG1ldGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHdpbGxEZWNvZGVJ
bWFnZShjb25zdCBTdHJpbmcmIGltYWdlVHlwZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRpZERlY29kZUltYWdlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZXNpemVJ
bWFnZShib29sIHNob3VsZENhY2hlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVz
aXplSW1hZ2UoKSBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgVGltZWxpbmVSZWNv
cmRFbnRyeSB7CiAgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHJlY29yZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNoaWxkcmVuLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgZnJhbWVJZCkKQEAgLTE5Niw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIHR5cGVk
ZWYgVmVjdG9yPEdDRXZlbnQ+IEdDRXZlbnRzOwogICAgIEdDRXZlbnRzIG1fZ2NFdmVudHM7CiAg
ICAgaW50IG1fbWF4Q2FsbFN0YWNrRGVwdGg7Ci0gICAgdW5zaWduZWQgbV9vcnBoYW5FdmVudHNF
bmFibGVkU3RhY2tNYXJrOworICAgIHVuc2lnbmVkIG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25D
bGllbnRTZXQ7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbV9wZW5kaW5nRnJhbWVSZWNv
cmQ7CiAgICAgSW5zcGVjdG9yVHlwZSBtX2luc3BlY3RvclR5cGU7CiAgICAgSW5zcGVjdG9yQ2xp
ZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtSW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
SW5zdHJ1bWVudGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzA0ZWRhM2Q0OTEzNjQ5NzcxN2JjNGNh
NDg4NGQ1MzA4NTFkMzViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50KiBQbGF0Zm9y
bUluc3RydW1lbnRhdGlvbjo6bV9jbGllbnQ7CisKK1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xp
ZW50Ojp+UGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQoKQoreworfQorCit2b2lkIFBsYXRm
b3JtSW5zdHJ1bWVudGF0aW9uOjpzZXRDbGllbnQoUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGll
bnQqIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudCA9IGNsaWVudDsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzBkMDM3OTc0YTE5YTExZTAxMWQxMjUyYmZjNjdmN2VhY2Y2Nzc2OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgK
QEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uX2gKKyNkZWZp
bmUgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25faAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50Lmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybUluc3RydW1l
bnRhdGlvbkNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UGxhdGZvcm1JbnN0cnVtZW50
YXRpb25DbGllbnQoKTsKKworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVjb2RlSW1hZ2UoY29uc3Qg
V1RGOjpTdHJpbmcmIGltYWdlVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZWNvZGVJ
bWFnZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlc2l6ZUltYWdlKGJvb2wgc2hvdWxk
Q2FjaGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaXplSW1hZ2UoKSA9IDA7Cit9Owor
CitjbGFzcyBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIHZv
aWQgc2V0Q2xpZW50KFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50Kik7CisgICAgc3RhdGlj
IGJvb2wgaGFzQ2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHN0YXRpYyB2b2lk
IHdpbGxEZWNvZGVJbWFnZShjb25zdCBXVEY6OlN0cmluZyYgaW1hZ2VUeXBlKTsKKyAgICBzdGF0
aWMgdm9pZCBkaWREZWNvZGVJbWFnZSgpOworICAgIHN0YXRpYyB2b2lkIHdpbGxSZXNpemVJbWFn
ZShib29sIHNob3VsZENhY2hlKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZXNpemVJbWFnZSgpOwor
Citwcml2YXRlOgorICAgIHN0YXRpYyBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudCogbV9j
bGllbnQ7Cit9OworCisjZGVmaW5lIEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVCgpIGlmICghbV9j
bGllbnQpIHJldHVybjsKKworaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246Ondp
bGxEZWNvZGVJbWFnZShjb25zdCBXVEY6OlN0cmluZyYgaW1hZ2VUeXBlKQoreworI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQorICAgIFRSQUNFX0VWRU5UX0JFR0lOMSgid2Via2l0IiwgIkltYWdlIERl
Y29kZSIsICJpbWFnZVR5cGUiLCBUUkFDRV9TVFJfQ09QWShpbWFnZVR5cGUuYXNjaWkoKS5kYXRh
KCkpKTsKKyNlbmRpZiAgICAKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19DTElFTlQoKTsKKyAgICBt
X2NsaWVudC0+d2lsbERlY29kZUltYWdlKGltYWdlVHlwZSk7Cit9CisKK2lubGluZSB2b2lkIFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNvZGVJbWFnZSgpCit7CisjaWYgUExBVEZPUk0o
Q0hST01JVU0pCisgICAgVFJBQ0VfRVZFTlRfRU5EMCgid2Via2l0IiwgIkltYWdlIERlY29kZSIp
OworI2VuZGlmICAgIAorICAgIEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVCgpOworICAgIG1fY2xp
ZW50LT5kaWREZWNvZGVJbWFnZSgpOworfQorCitpbmxpbmUgdm9pZCBQbGF0Zm9ybUluc3RydW1l
bnRhdGlvbjo6d2lsbFJlc2l6ZUltYWdlKGJvb2wgc2hvdWxkQ2FjaGUpCit7CisjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCisgICAgVFJBQ0VfRVZFTlRfQkVHSU4xKCJ3ZWJraXQiLCAiSW1hZ2UgUmVz
aXplIiwgImNhY2hlZCIsIHNob3VsZENhY2hlKTsKKyNlbmRpZiAgICAKKyAgICBGQVNUX1JFVFVS
Tl9JRl9OT19DTElFTlQoKTsKKyAgICBtX2NsaWVudC0+d2lsbFJlc2l6ZUltYWdlKHNob3VsZENh
Y2hlKTsKK30KKworaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OmRpZFJlc2l6
ZUltYWdlKCkKK3sKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICBUUkFDRV9FVkVOVF9FTkQw
KCJ3ZWJraXQiLCAiSW1hZ2UgUmVzaXplIik7CisjZW5kaWYgICAgCisgICAgRkFTVF9SRVRVUk5f
SUZfTk9fQ0xJRU5UKCk7CisgICAgbV9jbGllbnQtPmRpZFJlc2l6ZUltYWdlKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0
aXZlSW1hZ2VTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
TmF0aXZlSW1hZ2VTa2lhLmNwcAppbmRleCA3ZTM0YzA3OWQ4NTY2NzM1N2I1YWFkODk2MGM1NGNh
NmU1NmUyZDljLi4yYzRiYWVkNzU0ZDM3ZGYwODI4MWZjMjJhNmIzZGIzNDhmNTA1NGQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdl
U2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRp
dmVJbWFnZVNraWEuY3BwCkBAIC0zNCwxMiArMzQsOSBAQAogCiAjaW5jbHVkZSAiTmF0aXZlSW1h
Z2VTa2lhLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNraWFVdGlscy5oIgogCi0jaWYgUExB
VEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTmF0aXZlSW1hZ2VTa2lhOjpOYXRpdmVJbWFnZVNraWEoKQpAQCAt
NzQsOSArNzEsNiBAQCBTa0JpdG1hcCBOYXRpdmVJbWFnZVNraWE6OnJlc2l6ZWRCaXRtYXAoY29u
c3QgU2tJUmVjdCYgc3JjU3Vic2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBkZXN0SGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFNrSVJlY3QmIGRlc3RWaXNpYmxlU3Vic2V0KSBjb25zdAogewotI2lmIFBM
QVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgic2tpYSIsICJOYXRpdmVJbWFnZVNr
aWE6OnJlc2l6ZWRCaXRtYXAiKTsKLSNlbmRpZgogICAgIGlmICghaGFzUmVzaXplZEJpdG1hcChz
cmNTdWJzZXQsIGRlc3RXaWR0aCwgZGVzdEhlaWdodCkpIHsKICAgICAgICAgYm9vbCBzaG91bGRD
YWNoZSA9IGlzRGF0YUNvbXBsZXRlKCkKICAgICAgICAgICAgICYmIHNob3VsZENhY2hlUmVzYW1w
bGluZyhzcmNTdWJzZXQsIGRlc3RXaWR0aCwgZGVzdEhlaWdodCwgZGVzdFZpc2libGVTdWJzZXQp
OwpAQCAtODQsMTggKzc4LDE2IEBAIFNrQml0bWFwIE5hdGl2ZUltYWdlU2tpYTo6cmVzaXplZEJp
dG1hcChjb25zdCBTa0lSZWN0JiBzcmNTdWJzZXQsCiAgICAgICAgIFNrQml0bWFwIHN1YnNldDsK
ICAgICAgICAgbV9pbWFnZS5leHRyYWN0U3Vic2V0KCZzdWJzZXQsIHNyY1N1YnNldCk7CiAgICAg
ICAgIGlmICghc2hvdWxkQ2FjaGUpIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAg
ICAgIFRSQUNFX0VWRU5UMCgic2tpYSIsICJub25DYWNoZWRSZXNpemUiKTsKLSNlbmRpZgogICAg
ICAgICAgICAgLy8gSnVzdCByZXNpemUgdGhlIHZpc2libGUgc3Vic2V0IGFuZCByZXR1cm4gaXQu
CisgICAgICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbFJlc2l6ZUltYWdlKHNo
b3VsZENhY2hlKTsKICAgICAgICAgICAgIFNrQml0bWFwIHJlc2l6ZWRJbWFnZSA9IHNraWE6Oklt
YWdlT3BlcmF0aW9uczo6UmVzaXplKHN1YnNldCwgc2tpYTo6SW1hZ2VPcGVyYXRpb25zOjpSRVNJ
WkVfTEFOQ1pPUzMsIGRlc3RXaWR0aCwgZGVzdEhlaWdodCwgZGVzdFZpc2libGVTdWJzZXQpOwor
ICAgICAgICAgICAgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OmRpZFJlc2l6ZUltYWdlKCk7CiAg
ICAgICAgICAgICByZXNpemVkSW1hZ2Uuc2V0SW1tdXRhYmxlKCk7CiAgICAgICAgICAgICByZXR1
cm4gcmVzaXplZEltYWdlOwogICAgICAgICB9IGVsc2UgewotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQotICAgICAgICAgICAgVFJBQ0VfRVZFTlQwKCJza2lhIiwgImNhY2hlZFJlc2l6ZSIpOwotI2Vu
ZGlmCisgICAgICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbFJlc2l6ZUltYWdl
KHNob3VsZENhY2hlKTsKICAgICAgICAgICAgIG1fcmVzaXplZEltYWdlID0gc2tpYTo6SW1hZ2VP
cGVyYXRpb25zOjpSZXNpemUoc3Vic2V0LCBza2lhOjpJbWFnZU9wZXJhdGlvbnM6OlJFU0laRV9M
QU5DWk9TMywgZGVzdFdpZHRoLCBkZXN0SGVpZ2h0KTsKKyAgICAgICAgICAgIFBsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uOjpkaWRSZXNpemVJbWFnZSgpOwogICAgICAgICB9CiAgICAgICAgIG1fcmVz
aXplZEltYWdlLnNldEltbXV0YWJsZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcC9CTVBJbWFnZURlY29kZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5j
cHAKaW5kZXggNDNlZjUxOGRlODc4OTZlNDM3OGEwYjc0OTVkZjI2OTlhYTdiYjQ4OC4uNzJiYzdk
MGMxMDgzMzIxNzNkZTVlM2MyY2VjNThjYWM2MzNkMjVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVj
b2Rlci5jcHAKQEAgLTMyLDEyICszMiw5IEBACiAjaW5jbHVkZSAiQk1QSW1hZ2VEZWNvZGVyLmgi
CiAKICNpbmNsdWRlICJCTVBJbWFnZVJlYWRlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQotI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIC8vIE51bWJlciBvZiBiaXRzIGluIC5CTVAgdXNlZCB0byBzdG9yZSB0aGUg
ZmlsZSBoZWFkZXIgKGRvZXNuJ3QgbWF0Y2gKQEAgLTgxLDggKzc4LDExIEBAIEltYWdlRnJhbWUq
IEJNUEltYWdlRGVjb2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICB9
CiAKICAgICBJbWFnZUZyYW1lKiBidWZmZXIgPSAmbV9mcmFtZUJ1ZmZlckNhY2hlLmZpcnN0KCk7
Ci0gICAgaWYgKGJ1ZmZlci0+c3RhdHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkK
KyAgICBpZiAoYnVmZmVyLT5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKSB7
CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVjb2RlSW1hZ2UoIkJNUCIp
OwogICAgICAgICBkZWNvZGUoZmFsc2UpOworICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bjo6ZGlkRGVjb2RlSW1hZ2UoKTsKKyAgICB9CiAgICAgcmV0dXJuIGJ1ZmZlcjsKIH0KIApAQCAt
OTQsOSArOTQsNiBAQCBib29sIEJNUEltYWdlRGVjb2Rlcjo6c2V0RmFpbGVkKCkKIAogdm9pZCBC
TVBJbWFnZURlY29kZXI6OmRlY29kZShib29sIG9ubHlTaXplKQogewotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIkJNUEltYWdlRGVjb2Rlcjo6ZGVj
b2RlIik7Ci0jZW5kaWYKICAgICBpZiAoZmFpbGVkKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRklt
YWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9n
aWYvR0lGSW1hZ2VEZWNvZGVyLmNwcAppbmRleCA3MjRlYTBkMTNiNmVkYjUyNWZlYmE1YmVhNWZl
MGQ4MzFhZDEwMGJmLi40MGUxMzFlN2NhOTQ4NGY1Mjc4OGU3NTEwM2E1YjAxYmI5YzU2NzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lG
SW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVyLmNwcApAQCAtMjcsMTIgKzI3LDkgQEAKICNpbmNsdWRl
ICJHSUZJbWFnZURlY29kZXIuaCIKIAogI2luY2x1ZGUgIkdJRkltYWdlUmVhZGVyLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgot
I2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogR0lGSW1hZ2VEZWNvZGVyOjpHSUZJbWFn
ZURlY29kZXIoSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLApAQCAtMTMwLDgg
KzEyNywxMSBAQCBJbWFnZUZyYW1lKiBHSUZJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRl
eChzaXplX3QgaW5kZXgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgSW1hZ2VGcmFtZSYgZnJh
bWUgPSBtX2ZyYW1lQnVmZmVyQ2FjaGVbaW5kZXhdOwotICAgIGlmIChmcmFtZS5zdGF0dXMoKSAh
PSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQorICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJ
bWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKSB7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGVjb2RlSW1hZ2UoIkdJRiIpOwogICAgICAgICBkZWNvZGUoaW5kZXggKyAxLCBH
SUZGdWxsUXVlcnkpOworICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6ZGlkRGVjb2Rl
SW1hZ2UoKTsKKyAgICB9CiAgICAgcmV0dXJuICZmcmFtZTsKIH0KIApAQCAtMzE0LDkgKzMxNCw2
IEBAIHZvaWQgR0lGSW1hZ2VEZWNvZGVyOjpnaWZDb21wbGV0ZSgpCiAKIHZvaWQgR0lGSW1hZ2VE
ZWNvZGVyOjpkZWNvZGUodW5zaWduZWQgaGFsdEF0RnJhbWUsIEdJRlF1ZXJ5IHF1ZXJ5KQogewot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIkdJRklt
YWdlRGVjb2Rlcjo6ZGVjb2RlIik7Ci0jZW5kaWYKICAgICBpZiAoZmFpbGVkKCkpCiAgICAgICAg
IHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcAppbmRleCAzNmRkZTFjZGQ1NmQw
MDg0ZTRmNmRlNTJiM2Y3NDU1ZDZhMDY5OWEwLi4yZGIzZWNmNmNlN2ZjYzczMmNlMjQzNWRkZTRk
Yzk3OThjNjg2MzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcApAQCAtMzUsMTIgKzM1
LDkgQEAKIAogI2luY2x1ZGUgIkJNUEltYWdlUmVhZGVyLmgiCiAjaW5jbHVkZSAiUE5HSW1hZ2VE
ZWNvZGVyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAi
VHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gTnVtYmVy
IG9mIGJpdHMgaW4gLklDTy8uQ1VSIHVzZWQgdG8gc3RvcmUgdGhlIGRpcmVjdG9yeSBhbmQgaXRz
IGVudHJpZXMsCkBAIC0xMjEsOCArMTE4LDExIEBAIEltYWdlRnJhbWUqIElDT0ltYWdlRGVjb2Rl
cjo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBJbWFnZUZyYW1lKiBidWZmZXIgPSAmbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XTsKLSAg
ICBpZiAoYnVmZmVyLT5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQorICAg
IGlmIChidWZmZXItPnN0YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpIHsKKyAg
ICAgICAgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OndpbGxEZWNvZGVJbWFnZSgiSUNPIik7CiAg
ICAgICAgIGRlY29kZShpbmRleCwgZmFsc2UpOworICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjo6ZGlkRGVjb2RlSW1hZ2UoKTsKKyAgICB9CiAgICAgcmV0dXJuIGJ1ZmZlcjsKIH0KIApA
QCAtMTU3LDkgKzE1Nyw2IEBAIHZvaWQgSUNPSW1hZ2VEZWNvZGVyOjpzZXREYXRhRm9yUE5HRGVj
b2RlckF0SW5kZXgoc2l6ZV90IGluZGV4KQogCiB2b2lkIElDT0ltYWdlRGVjb2Rlcjo6ZGVjb2Rl
KHNpemVfdCBpbmRleCwgYm9vbCBvbmx5U2l6ZSkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkK
LSAgICBUUkFDRV9FVkVOVDAoIndlYmtpdCIsICJJQ09JbWFnZURlY29kZXI6OmRlY29kZSIpOwot
I2VuZGlmCiAgICAgaWYgKGZhaWxlZCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVj
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQ
RUdJbWFnZURlY29kZXIuY3BwCmluZGV4IGJlZjQyMDNhNTc3MDM0Njg5MTFmY2I3ZDc2ZTQ5MWZh
OTAyMGVhOTEuLjI3NWZmYzA1OTllOWMzZDE1NDQzYTYzYjYyMjYxMzIxOWFhZGI2ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0lt
YWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcApAQCAtMzksMTMgKzM5LDEwIEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKUEVHSW1hZ2VEZWNvZGVyLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxzdGRpby5oPiAgLy8gTmVlZGVk
IGJ5IGpwZWdsaWIuaCBmb3IgRklMRS4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0j
aWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0K
ICNpZiBPUyhXSU5DRSkKIC8vIFJlbW92ZSB3YXJuaW5nOiAnRkFSJyBtYWNybyByZWRlZmluaXRp
b24KICN1bmRlZiBGQVIKQEAgLTU0MCw4ICs1MzcsMTEgQEAgSW1hZ2VGcmFtZSogSlBFR0ltYWdl
RGVjb2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICB9CiAKICAgICBJ
bWFnZUZyYW1lJiBmcmFtZSA9IG1fZnJhbWVCdWZmZXJDYWNoZVswXTsKLSAgICBpZiAoZnJhbWUu
c3RhdHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkKKyAgICBpZiAoZnJhbWUuc3Rh
dHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkgeworICAgICAgICBQbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbjo6d2lsbERlY29kZUltYWdlKCJKUEVHIik7CiAgICAgICAgIGRlY29kZShm
YWxzZSk7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNvZGVJbWFnZSgp
OworICAgIH0KICAgICByZXR1cm4gJmZyYW1lOwogfQogCkBAIC02NDcsOSArNjQ3LDYgQEAgdm9p
ZCBKUEVHSW1hZ2VEZWNvZGVyOjpqcGVnQ29tcGxldGUoKQogCiB2b2lkIEpQRUdJbWFnZURlY29k
ZXI6OmRlY29kZShib29sIG9ubHlTaXplKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAg
IFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIkpQRUdJbWFnZURlY29kZXI6OmRlY29kZSIpOwotI2Vu
ZGlmCiAgICAgaWYgKGZhaWxlZCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdl
RGVjb2Rlci5jcHAKaW5kZXggMTU4ZGViYjVhYjFjMzhjMWUxYTdiYWEzYWQwZDNhZjRkNzM2NDlh
OC4uZmI5NGI4MTc1ZjQxYmM3OGQxZTYyODQxN2YxZTVmMzAzZjY4Mjc4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BO
R0ltYWdlRGVjb2Rlci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJQTkdJbWFnZURlY29kZXIuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAicG5nLmgiCiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTI2MSw4ICsyNjIsMTEgQEAgSW1h
Z2VGcmFtZSogUE5HSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4
KQogICAgIH0KIAogICAgIEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZUJ1ZmZlckNhY2hlWzBd
OwotICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQor
ICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKSB7Cisg
ICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVjb2RlSW1hZ2UoIlBORyIpOwog
ICAgICAgICBkZWNvZGUoZmFsc2UpOworICAgICAgICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6
ZGlkRGVjb2RlSW1hZ2UoKTsKKyAgICB9CiAgICAgcmV0dXJuICZmcmFtZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1h
Z2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dl
YnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKaW5kZXggNjEyODkwZjMxMjUyYmUxNzBiZjc5ZjNjMWYw
NWU1Mjc1MDM1ODI5YS4uYWY0MDEwNmFiZTliM2Y4OTg0NDY0MDg3N2NlY2JiZjY5N2EzYWQ0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9X
RUJQSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwCkBAIC0zMSwxMiArMzEsOSBAQAogCiAj
aWYgVVNFKFdFQlApCiAKKyNpbmNsdWRlICJQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIndlYnAvZGVjb2RlLmgiCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRl
ICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogI2lmIENQVShCSUdfRU5ESUFOKSB8fCBDUFUoTUlE
RExFX0VORElBTikKIGlubGluZSBXRUJQX0NTUF9NT0RFIG91dHB1dE1vZGUoKSB7IHJldHVybiBN
T0RFX1JHQkE7IH0KICNlbGlmIFVTRShTS0lBKSAmJiBTS19CMzJfU0hJRlQKQEAgLTgwLDE2ICs3
NywxNiBAQCBJbWFnZUZyYW1lKiBXRUJQSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgo
c2l6ZV90IGluZGV4KQogICAgIH0KIAogICAgIEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZUJ1
ZmZlckNhY2hlWzBdOwotICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFt
ZUNvbXBsZXRlKQorICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNv
bXBsZXRlKSB7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVjb2RlSW1h
Z2UoIldFQlAiKTsKICAgICAgICAgZGVjb2RlKGZhbHNlKTsKKyAgICAgICAgUGxhdGZvcm1JbnN0
cnVtZW50YXRpb246OmRpZERlY29kZUltYWdlKCk7CisgICAgfQogICAgIHJldHVybiAmZnJhbWU7
CiB9CiAKIGJvb2wgV0VCUEltYWdlRGVjb2Rlcjo6ZGVjb2RlKGJvb2wgb25seVNpemUpCiB7Ci0j
aWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiV0VCUElt
YWdlRGVjb2Rlcjo6ZGVjb2RlIik7Ci0jZW5kaWYKICAgICBpZiAoZmFpbGVkKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158775</attachid>
            <date>2012-08-16 04:50:32 -0700</date>
            <delta_ts>2012-08-16 04:52:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94125-20120816154956.patch</filename>
            <type>text/plain</type>
            <size>37454</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5NjRkMTQ2YzI5YTQz
ZWQwZGVhZjU3MmQyZWUyNmYzMzgxMDhjNy4uMjBmNDgyMTdmYmMwZjBiNDA0ZTg3NjIxNjNiNGI1
OWFmMTc3OTcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTA4LTE2ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZW5hYmxlIGluc3RydW1lbnRhdGlvbiBvZiBwbGF0Zm9ybSBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDEyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgLSBhZGQgUGxhdGZvcm1J
bnN0cnVtZW50YXRpb24gY2xhc3MgdGhhdCBleHBvc2VzIGluc3RydW1lbnRhdGlvbiBtZXRob2Rz
IHRoYXQgbWF5IGJlIHVzZWQgYnkgY29kZSB1bmRlciBXZWJDb3JlL3BsYXRmb3JtOworICAgICAg
ICAtIG1vdmUgVFJBQ0VfRVZFTlRfWFhYKCkgbWFjcm9zIGludG8gUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24uaCB0byBtaW5pbWl6ZSBpbnN0cnVtZW50YXRpb24gaGFzc2xlIGluIHRoZSBjbGllbnQg
Y29kZTsKKyAgICAgICAgLSBpbXBsZW1lbnQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQg
YnkgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKKyAgICAgICAgLSBvbmx5IGluc3RhbGwgUGxhdGZv
cm1JbnN0cnVtZW50YXRpb25DbGllbnQgd2hlbiB3ZSBoYXZlIG91dGVyIGV2ZW50cyBmb3Igd2hp
Y2ggd2UgZXhwZWN0IGxvdy1sZXZlbCBkZXRhaWxzCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxEZWNvZGVJ
bWFnZSk6IHRvIGJlIGltcGxlbWVudGVkIGJ5IHN1YnNlcXVlbnQgY2hhbmdlOworICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRGVjb2RlSW1hZ2UpOiB0byBiZSBp
bXBsZW1lbnRlZCBieSBzdWJzZXF1ZW50IGNoYW5nZTsKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZXNpemVJbWFnZSk6IHRvIGJlIGltcGxlbWVudGVkIGJ5
IHN1YnNlcXVlbnQgY2hhbmdlOworICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUmVzaXplSW1hZ2UpOiB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJzZXF1ZW50IGNo
YW5nZTsKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNsZWFyUmVjb3JkU3RhY2spOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbjo6c2V0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUGxh
dGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQpOgorICAgICAgICAoUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbnN0cnVtZW50YXRpb246Omhhc0Ns
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbERl
Y29kZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpk
aWREZWNvZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bjo6d2lsbFJlc2l6ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZXNpemVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9OYXRpdmVJbWFnZVNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2VTa2lh
OjpyZXNpemVkQml0bWFwKTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb24s
IHJlbW92ZWQgVFJBQ0VfRVZFTlQoKTsKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJNUEltYWdlRGVj
b2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb247CisgICAgICAgIChXZWJDb3JlOjpCTVBJbWFnZURlY29kZXI6OmRlY29kZSk6IHJl
bW92ZWQgVFJBQ0VfRVZFTlQoKQorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dp
Zi9HSUZJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0lGSW1hZ2VEZWNvZGVy
OjpmcmFtZUJ1ZmZlckF0SW5kZXgpOiBhZGRlZCBjYWxscyB0byBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjsKKyAgICAgICAgKFdlYkNvcmU6OkdJRkltYWdlRGVjb2Rlcjo6ZGVjb2RlKTogcmVtb3Zl
ZCBUUkFDRV9FVkVOVCgpCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lD
T0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJQ09JbWFnZURlY29kZXI6OmZy
YW1lQnVmZmVyQXRJbmRleCk6IGFkZGVkIGNhbGxzIHRvIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
OworICAgICAgICAoV2ViQ29yZTo6SUNPSW1hZ2VEZWNvZGVyOjpkZWNvZGUpOiByZW1vdmVkIFRS
QUNFX0VWRU5UKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlRGVjb2Rlcjo6ZnJh
bWVCdWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb247
CisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1hZ2VEZWNvZGVyOjpkZWNvZGUpOiByZW1vdmVkIFRS
QUNFX0VWRU5UKCkKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6ZnJhbWVC
dWZmZXJBdEluZGV4KTogYWRkZWQgY2FsbHMgdG8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb247Cisg
ICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldFQlBJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRl
eCk6IGFkZGVkIGNhbGxzIHRvIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOworICAgICAgICAoV2Vi
Q29yZTo6V0VCUEltYWdlRGVjb2Rlcjo6ZGVjb2RlKTogcmVtb3ZlZCBUUkFDRV9FVkVOVCgpOwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOiByZW1vdmVk
IG9ycGhhbiBldmVudCBzdXBwb3J0OworICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOiBkaXR0by4KKwogMjAxMi0wOC0xNiAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBSZXNvdXJjZXtSZXF1ZXN0L1Jlc3Bv
bnNlfUJhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTMwYTkxYTJiNjFjMmRkNjg1ZmUxMzE3
NTE4YzdlYzViODI5Y2FkMy4uMGFlZDM5MmNiODBhOGIyN2FiNmIxYjY1OTA5MDdmNTg3MTgzMWZh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3NTAsNiArMTc1MCw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAogICAgIHBsYXRmb3Jt
L01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNw
cAorICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIHBsYXRmb3Jt
L1J1bkxvb3AuY3BwCiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAog
ICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggZTY3NmU3NzI5ODJmMTM2ZmZkOWE4NjNlM2YzNDJkNjNhMjg1ZTRiYS4uMmY1YThj
N2JkZjZlNzYzODY4NzVkOGI2OTU4MWYxNGE1ZGY4OTAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC00MTM5LDYgKzQxMzksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50TG9vcC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9FdmVudFRyYWNlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJh
Y2VyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24u
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GaWxlSWNvbkxvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYjhjMzVkMDQxOGUzMmM1ZTkw
MWU1ZjE0MGUzYzNiYTUxNjU1NjA4Zi4uYjM5OGFlNWU0YWUzNDBhOWYxMDhlMjRlOTNlMWZlNTQx
MzBmYTcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMDMxLDYgKzEwMzEsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5jcHAgXAogICAgIHBsYXRmb3JtL1BsYXRmb3Jt
RXZlbnQuY3BwIFwKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAgXAog
ICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgXAogICAgIHBsYXRmb3Jt
L1J1bkxvb3AuY3BwIFwKICAgICBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDlhNWM2MzA3MjY3NTliM2E1MDRlMGU5NTVlOTg4ZDMzNzE1MDUwNjQuLjRl
ZjI5YzVkOWVmNTFhNzM3NmQwOTc5NGZiZjVhZTM4ZTZjMWEyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTMwNCw2ICszMDQsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZUV2ZW50LmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0v
UGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtTWVudURl
c2NyaXB0aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
ODhlNzc2YjUzN2E2MDcwZDQzZDBhNjliNDFlZGU4NDllNzE1YmM2Mi4uZjA3YTI5ZTRmODkwZjQ4
NDcyODQ1Y2ZhMjZlM2Q1MzQxODY3ZDA1OSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4NDE5LDYgKzI4NDE5LDE0IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFBsYXRmb3Jt
SW5zdHJ1bWVudGF0aW9uLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUGxh
dGZvcm1LZXlib2FyZEV2ZW50LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU2MTZmN2U2MTBh
OWZmMjMwNjU0NDE1Y2U5MDI3MGIwOGY0MmViZTMuLjQ0MWE0MDRiZDc4MDQ2YjIxZmFiZGM3NTQ0
OTBjNDk1ODVmMjViY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMzUsNiArMTIzNSw4IEBACiAJCTQ2RjlENURGMEIwRDYw
MTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RjlENURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9n
cmVzc0N1cnNvci5wbmcgKi87IH07CiAJCTQ5MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdM
RVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3Bw
ICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1
MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovOyB9OworCQk0OTE4MkI1
MjE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkxODJCNTAxNURDRTZGMDAw
NTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcCAqLzsgfTsKKwkJNDkxODJCNTMx
NURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTE4MkI1MTE1RENFNkYwMDA1NDg0
MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCAqLzsgfTsKIAkJNDkyODYzOTkxMjUzQjhG
QzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJj
ZUxvYWRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDkyOTFFNEIxMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkyOTFFNEExMzQx
NzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oICovOyB9OwogCQk0OTNFNUUwOTEy
RDY0MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTNFNUUwODEyRDY0MjA1MDAwMjAwODEg
LyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgzMzgsNiArODM0MCw4IEBACiAJCTQ2RjlENURDMEIwRDYw
MTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBwcm9ncmVzc0N1cnNv
ci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U0MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTE4MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxh
dGZvcm1JbnN0cnVtZW50YXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0OTE4MkI1MTE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkyODYzOTgxMjUzQjhGQzAw
Rjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVzb3VyY2VMb2FkSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OTNFNUUwODEyRDY0MjA1MDAwMjAwODEgLyogUGxhdGZvcm1D
QUxheWVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBsYXRmb3Jt
Q0FMYXllckNsaWVudC5oOyBwYXRoID0gY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDcxOSw2ICsyMDcyMyw4IEBACiAJCQkJQkM1Qzc2
MjkxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCAqLywKIAkJCQlBNzIzRjc3QTE0
ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLywKIAkJCQlCQzk1ODVE
RjEyRjA5ODk1MDA3NTU4MjEgLyogUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCAqLywKKwkJCQk0OTE4
MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwICovLAor
CQkJCTQ5MTgyQjUxMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5o
ICovLAogCQkJCTkzNUM0NzY2MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCAqLywKIAkJCQk5MzI4NzFCRjBCMjBERUI3MDA0OTAzNUEgLyogUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24uaCAqLywKIAkJCQk5MzVDNDc2NzA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1N
b3VzZUV2ZW50LmggKi8sCkBAIC0yNTM5NSw2ICsyNTQwMSw3IEBACiAJCQkJRTFCRTUxMkUwQ0Y2
QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3
RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDkxODJCNTMxNURDRTZGMDAwNTQ4NDE4IC8qIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTI4NDY1LDYgKzI4NDcyLDcgQEAKIAkJCQlFMUJFNTEyRDBDRjZD
NTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3
N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk0OTE4MkI1MjE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDI0YmE3NDI0MzM5NTNiZjJkOWEy
MWJhMTgxMDQ1Mzg5MGRiMjcyZGMuLjdlYTMxNGM1NjQzNjYzMmExMzgyYTliYzg3OThjMDJkODYy
YmRkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwCkBAIC02OSw3ICs2OSw2IEBACiAjaW5jbHVkZSAiV29ya2VyVGhy
ZWFkLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTU0LDIyICsxMTUz
LDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpcmVBbmltYXRpb25GcmFt
ZUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWUKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlk
RmlyZUFuaW1hdGlvbkZyYW1lKCk7CiB9CiAKLUluc3BlY3RvclRpbWVsaW5lQWdlbnQqIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6dGltZWxpbmVBZ2VudEZvck9ycGhhbkV2ZW50cygpCi17Ci0g
ICAgcmV0dXJuICp0aHJlYWRTcGVjaWZpY1RpbWVsaW5lQWdlbnRGb3JPcnBoYW5FdmVudHMoKTsK
LX0KLQotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNldFRpbWVsaW5lQWdlbnRGb3JP
cnBoYW5FdmVudHMoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogaW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCkKLXsKLSAgICAqdGhyZWFkU3BlY2lmaWNUaW1lbGluZUFnZW50Rm9yT3JwaGFuRXZlbnRzKCkg
PSBpbnNwZWN0b3JUaW1lbGluZUFnZW50OwotfQotCi1XVEY6OlRocmVhZFNwZWNpZmljPEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqPiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp0aHJlYWRTcGVj
aWZpY1RpbWVsaW5lQWdlbnRGb3JPcnBoYW5FdmVudHMoKQotewotICAgIEF0b21pY2FsbHlJbml0
aWFsaXplZFN0YXRpYyhXVEY6OlRocmVhZFNwZWNpZmljPEluc3BlY3RvclRpbWVsaW5lQWdlbnQq
PiosIGluc3RhbmNlID0gbmV3IFdURjo6VGhyZWFkU3BlY2lmaWM8SW5zcGVjdG9yVGltZWxpbmVB
Z2VudCo+KCkpOwotICAgIHJldHVybiAqaW5zdGFuY2U7Ci19Ci0KIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpyZWdpc3Rlckluc3RydW1lbnRpbmdBZ2VudHMoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKIHsKICAgICBpZiAoIWluc3RydW1lbnRpbmdBZ2Vu
dHNTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgKaW5kZXggMWRjMmRmYTZjZjM3ZGE2ZTRlMGIzODFiOWFkYmI1OTY5YjNmMzJm
Yi4uZTRhNzllZDM4Y2FhM2Y3M2FiZDdhNDQxZGMzMzYyNjcyOWYzZGI2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAt
MjU1LDggKzI1NSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBoYXNGcm9udGVuZHMoKSB7
IHJldHVybiBzX2Zyb250ZW5kQ291bnRlcjsgfQogICAgIHN0YXRpYyBib29sIGhhc0Zyb250ZW5k
Rm9yU2NyaXB0Q29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgc3RhdGljIGJv
b2wgY29sbGVjdGluZ0hUTUxQYXJzZUVycm9ycyhQYWdlKik7Ci0gICAgc3RhdGljIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnRGb3JPcnBoYW5FdmVudHMoKTsKLSAgICBzdGF0
aWMgdm9pZCBzZXRUaW1lbGluZUFnZW50Rm9yT3JwaGFuRXZlbnRzKEluc3BlY3RvclRpbWVsaW5l
QWdlbnQqKTsKICNlbHNlCiAgICAgc3RhdGljIGJvb2wgaGFzRnJvbnRlbmRzKCkgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBzdGF0aWMgYm9vbCBoYXNGcm9udGVuZEZvclNjcmlwdENvbnRleHQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0yNzQsOCArMjcyLDYg
QEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgc3RhdGlj
IFdURjo6VGhyZWFkU3BlY2lmaWM8SW5zcGVjdG9yVGltZWxpbmVBZ2VudCo+JiB0aHJlYWRTcGVj
aWZpY1RpbWVsaW5lQWdlbnRGb3JPcnBoYW5FdmVudHMoKTsKLQogICAgIHN0YXRpYyB2b2lkIGRp
ZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1l
KiwgRE9NV3JhcHBlcldvcmxkKik7CiAgICAgc3RhdGljIGJvb2wgaXNEZWJ1Z2dlclBhdXNlZElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggOGNjMzQzOTEyMGE0OWIzNDll
YmRhZDAzNDBmZDc0N2VhMWU5NjM4Ni4uODg3Y2RlMjUxNGQ1ZGQ2ODdhMmQ1M2M1OTlhNzQ3OTlh
NjFiN2IzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcApAQCAtMjU1LDYgKzI1NSwyMiBAQCB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZFBhaW50KCkKICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRUeXBlOjpQYWludCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbERlY29kZUltYWdlKGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkRGVjb2RlSW1hZ2UoKQoreworfQorCit2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxSZXNpemVJbWFnZShib29sKQoreworfQorCit2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZFJlc2l6ZUltYWdlKCkKK3sKK30KKwogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsQ29tcG9zaXRlKCkKIHsKICAgICBwdXNoQ3VycmVudFJlY29yZChJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkNvbXBvc2l0ZUxheWVy
cywgZmFsc2UsIDApOwpAQCAtNDg2LDkgKzUwMiw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAv
LyBBbiBlbXB0eSBzdGFjayBjb3VsZCBtZXJlbHkgbWVhbiB0aGF0IHRoZSB0aW1lbGluZSBhZ2Vu
dCB3YXMgdHVybmVkIG9uIGluIHRoZSBtaWRkbGUgb2YKICAgICAvLyBhbiBldmVudC4gIERvbid0
IHRyZWF0IGFzIGFuIGVycm9yLgogICAgIGlmICghbV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpIHsK
LSAgICAgICAgaWYgKG1fb3JwaGFuRXZlbnRzRW5hYmxlZFN0YWNrTWFyayA9PSBtX3JlY29yZFN0
YWNrLnNpemUoKSkgewotICAgICAgICAgICAgbV9vcnBoYW5FdmVudHNFbmFibGVkU3RhY2tNYXJr
ID0gMDsKLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2V0VGltZWxpbmVB
Z2VudEZvck9ycGhhbkV2ZW50cygwKTsKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1JbnN0cnVtZW50
YXRpb25DbGllbnRJbnN0YWxsZWRBdFN0YWNrRGVwdGggPT0gbV9yZWNvcmRTdGFjay5zaXplKCkp
IHsKKyAgICAgICAgICAgIG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRJbnN0YWxsZWRB
dFN0YWNrRGVwdGggPSAwOworICAgICAgICAgICAgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OnNl
dENsaWVudCgwKTsKICAgICAgICAgfQogCiAgICAgICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwpA
QCAtNTA5LDcgKzUyNSw3IEBAIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluCiAgICAgLCBtX3RpbWVz
dGFtcE9mZnNldCgwKQogICAgICwgbV9pZCgxKQogICAgICwgbV9tYXhDYWxsU3RhY2tEZXB0aCg1
KQotICAgICwgbV9vcnBoYW5FdmVudHNFbmFibGVkU3RhY2tNYXJrKDApCisgICAgLCBtX3BsYXRm
b3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50SW5zdGFsbGVkQXRTdGFja0RlcHRoKDApCiAgICAgLCBt
X2luc3BlY3RvclR5cGUodHlwZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKIHsKQEAgLTUyNyw3
ICs1NDMsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZFJlY29yZChQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29ucwogICAgIGFkZFJlY29yZFRvVGltZWxp
bmUocmVjb3JkLnJlbGVhc2UoKSwgdHlwZSwgZnJhbWVJZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFt
ZSogZnJhbWUsIGJvb2wgaGFzT3JwaGFuRGV0YWlscykKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEs
IGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSogZnJhbWUs
IGJvb2wgaGFzTG93TGV2ZWxEZXRhaWxzKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwog
ICAgIGNvbW1pdEZyYW1lUmVjb3JkKCk7CkBAIC01MzYsOSArNTUyLDkgQEAgdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZGF0YSwKICAgICBpZiAoZnJhbWUgJiYgbV9wYWdlQWdlbnQpCiAgICAgICAgIGZyYW1l
SWQgPSBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSk7CiAgICAgbV9yZWNvcmRTdGFjay5hcHBl
bmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQucmVsZWFzZSgpLCBkYXRhLCBJbnNwZWN0b3JB
cnJheTo6Y3JlYXRlKCksIHR5cGUsIGZyYW1lSWQpKTsKLSAgICBpZiAoaGFzT3JwaGFuRGV0YWls
cyAmJiAhbV9vcnBoYW5FdmVudHNFbmFibGVkU3RhY2tNYXJrICYmICFJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnRpbWVsaW5lQWdlbnRGb3JPcnBoYW5FdmVudHMoKSkgewotICAgICAgICBtX29y
cGhhbkV2ZW50c0VuYWJsZWRTdGFja01hcmsgPSBtX3JlY29yZFN0YWNrLnNpemUoKTsKLSAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzZXRUaW1lbGluZUFnZW50Rm9yT3JwaGFuRXZl
bnRzKHRoaXMpOworICAgIGlmIChoYXNMb3dMZXZlbERldGFpbHMgJiYgIW1fcGxhdGZvcm1JbnN0
cnVtZW50YXRpb25DbGllbnRJbnN0YWxsZWRBdFN0YWNrRGVwdGggJiYgIVBsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uOjpoYXNDbGllbnQoKSkgeworICAgICAgICBtX3BsYXRmb3JtSW5zdHJ1bWVudGF0
aW9uQ2xpZW50SW5zdGFsbGVkQXRTdGFja0RlcHRoID0gbV9yZWNvcmRTdGFjay5zaXplKCk7Cisg
ICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpzZXRDbGllbnQodGhpcyk7CiAgICAgfQog
fQogCkBAIC01NTMsNiArNTY5LDEwIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6Y29t
bWl0RnJhbWVSZWNvcmQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNsZWFyUmVj
b3JkU3RhY2soKQogeworICAgIGlmIChtX3BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50SW5z
dGFsbGVkQXRTdGFja0RlcHRoKSB7CisgICAgICAgIG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25D
bGllbnRJbnN0YWxsZWRBdFN0YWNrRGVwdGggPSAwOworICAgICAgICBQbGF0Zm9ybUluc3RydW1l
bnRhdGlvbjo6c2V0Q2xpZW50KDApOworICAgIH0KICAgICBtX3BlbmRpbmdGcmFtZVJlY29yZC5j
bGVhcigpOwogICAgIG1fcmVjb3JkU3RhY2suY2xlYXIoKTsKICAgICBtX2lkKys7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCAw
YjRiOTBlODQyYWQ3Yzg2MGIzZDM4NDA1Yjk5NmVhZWVjMDY0OTdjLi42MWU4ZGRjMDBlMDQ4NDU0
YzJjM2MyZTcyMmRhNThmNzQ5YWNjY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotKiBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJM
YXlvdXRUeXBlcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiU2NyaXB0R0NFdmVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC01Niw3ICs1NywxMSBAQCBjbGFzcyBS
ZXNvdXJjZVJlc3BvbnNlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3Mg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9yVGltZWxpbmVBZ2VudD4sIFNjcmlwdEdDRXZlbnRMaXN0ZW5lciwgcHVibGljIEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyOjpUaW1lbGluZUNvbW1hbmRIYW5kbGVyIHsKK2NsYXNzIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQKKyAgICA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9yVGltZWxpbmVBZ2VudD4sCisgICAgICBwdWJsaWMgU2NyaXB0R0NFdmVudExpc3RlbmVyLAor
ICAgICAgcHVibGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpUaW1lbGluZUNvbW1hbmRI
YW5kbGVyLAorICAgICAgcHVibGljIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JUaW1lbGluZUFnZW50KTsKIHB1YmxpYzoK
ICAgICBlbnVtIEluc3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9yLCBXb3JrZXJJbnNwZWN0b3Ig
fTsKQEAgLTE0Niw2ICsxNTEsMTIgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFByb2Nlc3NUYXNr
KCk7CiAgICAgdm9pZCBkaWRQcm9jZXNzVGFzaygpOwogCisgICAgLy8gUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb25DbGllbnQgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlY29kZUltYWdl
KGNvbnN0IFN0cmluZyYgaW1hZ2VUeXBlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RGVjb2RlSW1hZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlc2l6ZUltYWdl
KGJvb2wgc2hvdWxkQ2FjaGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNpemVJ
bWFnZSgpIE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVu
dHJ5IHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgUGFzc1JlZlB0
cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBmcmFtZUlkKQpAQCAtMTYxLDcgKzE3Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAg
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBh
Z2VBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yVHlwZSwgSW5zcGVjdG9yQ2xpZW50
Kik7CiAKLSAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKiwg
Ym9vbCBoYXNPcnBoYW5EZXRhaWxzID0gZmFsc2UpOworICAgIHZvaWQgcHVzaEN1cnJlbnRSZWNv
cmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FwdHVyZUNhbGxTdGFjaywgRnJhbWUqLCBib29sIGhhc0xvd0xldmVsRGV0YWlscyA9IGZhbHNl
KTsKICAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGljcyhJbnNwZWN0b3JPYmplY3QqIHJlY29y
ZCk7CiAKICAgICB2b2lkIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChjb25zdCBTdHJpbmcmIHR5
cGUpOwpAQCAtMTk2LDcgKzIwNyw3IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBWZWN0b3I8R0NF
dmVudD4gR0NFdmVudHM7CiAgICAgR0NFdmVudHMgbV9nY0V2ZW50czsKICAgICBpbnQgbV9tYXhD
YWxsU3RhY2tEZXB0aDsKLSAgICB1bnNpZ25lZCBtX29ycGhhbkV2ZW50c0VuYWJsZWRTdGFja01h
cms7CisgICAgdW5zaWduZWQgbV9wbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudEluc3RhbGxl
ZEF0U3RhY2tEZXB0aDsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBtX3BlbmRpbmdGcmFt
ZVJlY29yZDsKICAgICBJbnNwZWN0b3JUeXBlIG1faW5zcGVjdG9yVHlwZTsKICAgICBJbnNwZWN0
b3JDbGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1JbnN0cnVtZW50YXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MDRlZGEzZDQ5MTM2NDk3NzE3
YmM0Y2E0ODg0ZDUzMDg1MWQzNWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQqIFBs
YXRmb3JtSW5zdHJ1bWVudGF0aW9uOjptX2NsaWVudDsKKworUGxhdGZvcm1JbnN0cnVtZW50YXRp
b25DbGllbnQ6On5QbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudCgpCit7Cit9CisKK3ZvaWQg
UGxhdGZvcm1JbnN0cnVtZW50YXRpb246OnNldENsaWVudChQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bkNsaWVudCogY2xpZW50KQoreworICAgIG1fY2xpZW50ID0gY2xpZW50OworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZDAyZDkzMWM3YTk0YTJiNjFjNDk0YzI1MDQwNjk4ZTJiYTkyNjlkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRp
b24uaApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25faAor
I2RlZmluZSBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbl9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorI2luY2x1ZGUgIlRyYWNlRXZl
bnQuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUluc3Ry
dW1lbnRhdGlvbkNsaWVudCgpOworCisgICAgdmlydHVhbCB2b2lkIHdpbGxEZWNvZGVJbWFnZShj
b25zdCBTdHJpbmcmIGltYWdlVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZWNvZGVJ
bWFnZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlc2l6ZUltYWdlKGJvb2wgc2hvdWxk
Q2FjaGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaXplSW1hZ2UoKSA9IDA7Cit9Owor
CitjbGFzcyBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIHZv
aWQgc2V0Q2xpZW50KFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50Kik7CisgICAgc3RhdGlj
IGJvb2wgaGFzQ2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHN0YXRpYyB2b2lk
IHdpbGxEZWNvZGVJbWFnZShjb25zdCBTdHJpbmcmIGltYWdlVHlwZSk7CisgICAgc3RhdGljIHZv
aWQgZGlkRGVjb2RlSW1hZ2UoKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsUmVzaXplSW1hZ2UoYm9v
bCBzaG91bGRDYWNoZSk7CisgICAgc3RhdGljIHZvaWQgZGlkUmVzaXplSW1hZ2UoKTsKKworcHJp
dmF0ZToKKyAgICBzdGF0aWMgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQqIG1fY2xpZW50
OworfTsKKworI2RlZmluZSBGQVNUX1JFVFVSTl9JRl9OT19DTElFTlQoKSBpZiAoIW1fY2xpZW50
KSByZXR1cm47CisKK2lubGluZSB2b2lkIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVj
b2RlSW1hZ2UoY29uc3QgU3RyaW5nJiBpbWFnZVR5cGUpCit7CisjaWYgUExBVEZPUk0oQ0hST01J
VU0pCisgICAgVFJBQ0VfRVZFTlRfQkVHSU4xKCJ3ZWJraXQiLCAiSW1hZ2UgRGVjb2RlIiwgImlt
YWdlVHlwZSIsIFRSQUNFX1NUUl9DT1BZKGltYWdlVHlwZS5hc2NpaSgpLmRhdGEoKSkpOworI2Vu
ZGlmICAgIAorICAgIEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVCgpOworICAgIG1fY2xpZW50LT53
aWxsRGVjb2RlSW1hZ2UoaW1hZ2VUeXBlKTsKK30KKworaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0
cnVtZW50YXRpb246OmRpZERlY29kZUltYWdlKCkKK3sKKyNpZiBQTEFURk9STShDSFJPTUlVTSkK
KyAgICBUUkFDRV9FVkVOVF9FTkQwKCJ3ZWJraXQiLCAiSW1hZ2UgRGVjb2RlIik7CisjZW5kaWYg
ICAgCisgICAgRkFTVF9SRVRVUk5fSUZfTk9fQ0xJRU5UKCk7CisgICAgbV9jbGllbnQtPmRpZERl
Y29kZUltYWdlKCk7Cit9CisKK2lubGluZSB2b2lkIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3
aWxsUmVzaXplSW1hZ2UoYm9vbCBzaG91bGRDYWNoZSkKK3sKKyNpZiBQTEFURk9STShDSFJPTUlV
TSkKKyAgICBUUkFDRV9FVkVOVF9CRUdJTjEoIndlYmtpdCIsICJJbWFnZSBSZXNpemUiLCAiY2Fj
aGVkIiwgc2hvdWxkQ2FjaGUpOworI2VuZGlmICAgIAorICAgIEZBU1RfUkVUVVJOX0lGX05PX0NM
SUVOVCgpOworICAgIG1fY2xpZW50LT53aWxsUmVzaXplSW1hZ2Uoc2hvdWxkQ2FjaGUpOworfQor
CitpbmxpbmUgdm9pZCBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6ZGlkUmVzaXplSW1hZ2UoKQor
eworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIFRSQUNFX0VWRU5UX0VORDAoIndlYmtpdCIs
ICJJbWFnZSBSZXNpemUiKTsKKyNlbmRpZiAgICAKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19DTElF
TlQoKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVzaXplSW1hZ2UoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGxhdGZvcm1JbnN0cnVtZW50YXRpb25faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNr
aWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFn
ZVNraWEuY3BwCmluZGV4IDdlMzRjMDc5ZDg1NjY3MzU3YjVhYWQ4OTYwYzU0Y2E2ZTU2ZTJkOWMu
LjJjNGJhZWQ3NTRkMzdkZjA4MjgxZmMyMmE2YjNkYjM0OGY1MDU0ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdlU2tp
YS5jcHAKQEAgLTM0LDEyICszNCw5IEBACiAKICNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2tpYVV0aWxzLmgiCiAKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBOYXRpdmVJbWFnZVNraWE6Ok5hdGl2ZUltYWdlU2tpYSgpCkBAIC03NCw5ICs3MSw2
IEBAIFNrQml0bWFwIE5hdGl2ZUltYWdlU2tpYTo6cmVzaXplZEJpdG1hcChjb25zdCBTa0lSZWN0
JiBzcmNTdWJzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IGRlc3RIZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgU2tJUmVjdCYgZGVzdFZpc2libGVTdWJzZXQpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJza2lhIiwgIk5hdGl2ZUltYWdlU2tpYTo6cmVzaXpl
ZEJpdG1hcCIpOwotI2VuZGlmCiAgICAgaWYgKCFoYXNSZXNpemVkQml0bWFwKHNyY1N1YnNldCwg
ZGVzdFdpZHRoLCBkZXN0SGVpZ2h0KSkgewogICAgICAgICBib29sIHNob3VsZENhY2hlID0gaXNE
YXRhQ29tcGxldGUoKQogICAgICAgICAgICAgJiYgc2hvdWxkQ2FjaGVSZXNhbXBsaW5nKHNyY1N1
YnNldCwgZGVzdFdpZHRoLCBkZXN0SGVpZ2h0LCBkZXN0VmlzaWJsZVN1YnNldCk7CkBAIC04NCwx
OCArNzgsMTYgQEAgU2tCaXRtYXAgTmF0aXZlSW1hZ2VTa2lhOjpyZXNpemVkQml0bWFwKGNvbnN0
IFNrSVJlY3QmIHNyY1N1YnNldCwKICAgICAgICAgU2tCaXRtYXAgc3Vic2V0OwogICAgICAgICBt
X2ltYWdlLmV4dHJhY3RTdWJzZXQoJnN1YnNldCwgc3JjU3Vic2V0KTsKICAgICAgICAgaWYgKCFz
aG91bGRDYWNoZSkgewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICAgICAgVFJBQ0Vf
RVZFTlQwKCJza2lhIiwgIm5vbkNhY2hlZFJlc2l6ZSIpOwotI2VuZGlmCiAgICAgICAgICAgICAv
LyBKdXN0IHJlc2l6ZSB0aGUgdmlzaWJsZSBzdWJzZXQgYW5kIHJldHVybiBpdC4KKyAgICAgICAg
ICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVzaXplSW1hZ2Uoc2hvdWxkQ2FjaGUp
OwogICAgICAgICAgICAgU2tCaXRtYXAgcmVzaXplZEltYWdlID0gc2tpYTo6SW1hZ2VPcGVyYXRp
b25zOjpSZXNpemUoc3Vic2V0LCBza2lhOjpJbWFnZU9wZXJhdGlvbnM6OlJFU0laRV9MQU5DWk9T
MywgZGVzdFdpZHRoLCBkZXN0SGVpZ2h0LCBkZXN0VmlzaWJsZVN1YnNldCk7CisgICAgICAgICAg
ICBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6ZGlkUmVzaXplSW1hZ2UoKTsKICAgICAgICAgICAg
IHJlc2l6ZWRJbWFnZS5zZXRJbW11dGFibGUoKTsKICAgICAgICAgICAgIHJldHVybiByZXNpemVk
SW1hZ2U7CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAg
ICAgICBUUkFDRV9FVkVOVDAoInNraWEiLCAiY2FjaGVkUmVzaXplIik7Ci0jZW5kaWYKKyAgICAg
ICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVzaXplSW1hZ2Uoc2hvdWxkQ2Fj
aGUpOwogICAgICAgICAgICAgbV9yZXNpemVkSW1hZ2UgPSBza2lhOjpJbWFnZU9wZXJhdGlvbnM6
OlJlc2l6ZShzdWJzZXQsIHNraWE6OkltYWdlT3BlcmF0aW9uczo6UkVTSVpFX0xBTkNaT1MzLCBk
ZXN0V2lkdGgsIGRlc3RIZWlnaHQpOworICAgICAgICAgICAgUGxhdGZvcm1JbnN0cnVtZW50YXRp
b246OmRpZFJlc2l6ZUltYWdlKCk7CiAgICAgICAgIH0KICAgICAgICAgbV9yZXNpemVkSW1hZ2Uu
c2V0SW1tdXRhYmxlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcAppbmRleCA0
M2VmNTE4ZGU4Nzg5NmU0Mzc4YTBiNzQ5NWRmMjY5OWFhN2JiNDg4Li43MmJjN2QwYzEwODMzMjE3
M2RlNWUzYzJjZWM1OGNhYzYzM2QyNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcApA
QCAtMzIsMTIgKzMyLDkgQEAKICNpbmNsdWRlICJCTVBJbWFnZURlY29kZXIuaCIKIAogI2luY2x1
ZGUgIkJNUEltYWdlUmVhZGVyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogLy8gTnVtYmVyIG9mIGJpdHMgaW4gLkJNUCB1c2VkIHRvIHN0b3JlIHRoZSBmaWxlIGhlYWRl
ciAoZG9lc24ndCBtYXRjaApAQCAtODEsOCArNzgsMTEgQEAgSW1hZ2VGcmFtZSogQk1QSW1hZ2VE
ZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIH0KIAogICAgIElt
YWdlRnJhbWUqIGJ1ZmZlciA9ICZtX2ZyYW1lQnVmZmVyQ2FjaGUuZmlyc3QoKTsKLSAgICBpZiAo
YnVmZmVyLT5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQorICAgIGlmIChi
dWZmZXItPnN0YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpIHsKKyAgICAgICAg
UGxhdGZvcm1JbnN0cnVtZW50YXRpb246OndpbGxEZWNvZGVJbWFnZSgiQk1QIik7CiAgICAgICAg
IGRlY29kZShmYWxzZSk7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNv
ZGVJbWFnZSgpOworICAgIH0KICAgICByZXR1cm4gYnVmZmVyOwogfQogCkBAIC05NCw5ICs5NCw2
IEBAIGJvb2wgQk1QSW1hZ2VEZWNvZGVyOjpzZXRGYWlsZWQoKQogCiB2b2lkIEJNUEltYWdlRGVj
b2Rlcjo6ZGVjb2RlKGJvb2wgb25seVNpemUpCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0g
ICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiQk1QSW1hZ2VEZWNvZGVyOjpkZWNvZGUiKTsKLSNl
bmRpZgogICAgIGlmIChmYWlsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFn
ZURlY29kZXIuY3BwCmluZGV4IDcyNGVhMGQxM2I2ZWRiNTI1ZmViYTViZWE1ZmUwZDgzMWFkMTAw
YmYuLjQwZTEzMWU3Y2E5NDg0ZjUyNzg4ZTc1MTAzYTViMDFiYjljNTY3NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29k
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9H
SUZJbWFnZURlY29kZXIuY3BwCkBAIC0yNywxMiArMjcsOSBAQAogI2luY2x1ZGUgIkdJRkltYWdl
RGVjb2Rlci5oIgogCiAjaW5jbHVkZSAiR0lGSW1hZ2VSZWFkZXIuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKLSNp
ZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBHSUZJbWFnZURlY29kZXI6OkdJRkltYWdlRGVjb2RlcihJ
bWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sCkBAIC0xMzAsOCArMTI3LDExIEBA
IEltYWdlRnJhbWUqIEdJRkltYWdlRGVjb2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBp
bmRleCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBJbWFnZUZyYW1lJiBmcmFtZSA9IG1fZnJh
bWVCdWZmZXJDYWNoZVtpbmRleF07Ci0gICAgaWYgKGZyYW1lLnN0YXR1cygpICE9IEltYWdlRnJh
bWU6OkZyYW1lQ29tcGxldGUpCisgICAgaWYgKGZyYW1lLnN0YXR1cygpICE9IEltYWdlRnJhbWU6
OkZyYW1lQ29tcGxldGUpIHsKKyAgICAgICAgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OndpbGxE
ZWNvZGVJbWFnZSgiR0lGIik7CiAgICAgICAgIGRlY29kZShpbmRleCArIDEsIEdJRkZ1bGxRdWVy
eSk7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNvZGVJbWFnZSgpOwor
ICAgIH0KICAgICByZXR1cm4gJmZyYW1lOwogfQogCkBAIC0zMTQsOSArMzE0LDYgQEAgdm9pZCBH
SUZJbWFnZURlY29kZXI6OmdpZkNvbXBsZXRlKCkKIAogdm9pZCBHSUZJbWFnZURlY29kZXI6OmRl
Y29kZSh1bnNpZ25lZCBoYWx0QXRGcmFtZSwgR0lGUXVlcnkgcXVlcnkpCiB7Ci0jaWYgUExBVEZP
Uk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiR0lGSW1hZ2VEZWNvZGVy
OjpkZWNvZGUiKTsKLSNlbmRpZgogICAgIGlmIChmYWlsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28v
SUNPSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL2ljby9JQ09JbWFnZURlY29kZXIuY3BwCmluZGV4IDM2ZGRlMWNkZDU2ZDAwODRlNGY2ZGU1
MmIzZjc0NTVkNmEwNjk5YTAuLjJkYjNlY2Y2Y2U3ZmNjNzMyY2UyNDM1ZGRlNGRjOTc5OGM2ODYz
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2lj
by9JQ09JbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuY3BwCkBAIC0zNSwxMiArMzUsOSBAQAogCiAj
aW5jbHVkZSAiQk1QSW1hZ2VSZWFkZXIuaCIKICNpbmNsdWRlICJQTkdJbWFnZURlY29kZXIuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50
LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBOdW1iZXIgb2YgYml0cyBp
biAuSUNPLy5DVVIgdXNlZCB0byBzdG9yZSB0aGUgZGlyZWN0b3J5IGFuZCBpdHMgZW50cmllcywK
QEAgLTEyMSw4ICsxMTgsMTEgQEAgSW1hZ2VGcmFtZSogSUNPSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1
ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEltYWdl
RnJhbWUqIGJ1ZmZlciA9ICZtX2ZyYW1lQnVmZmVyQ2FjaGVbaW5kZXhdOwotICAgIGlmIChidWZm
ZXItPnN0YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpCisgICAgaWYgKGJ1ZmZl
ci0+c3RhdHVzKCkgIT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkgeworICAgICAgICBQbGF0
Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbERlY29kZUltYWdlKCJJQ08iKTsKICAgICAgICAgZGVj
b2RlKGluZGV4LCBmYWxzZSk7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWRE
ZWNvZGVJbWFnZSgpOworICAgIH0KICAgICByZXR1cm4gYnVmZmVyOwogfQogCkBAIC0xNTcsOSAr
MTU3LDYgQEAgdm9pZCBJQ09JbWFnZURlY29kZXI6OnNldERhdGFGb3JQTkdEZWNvZGVyQXRJbmRl
eChzaXplX3QgaW5kZXgpCiAKIHZvaWQgSUNPSW1hZ2VEZWNvZGVyOjpkZWNvZGUoc2l6ZV90IGlu
ZGV4LCBib29sIG9ubHlTaXplKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNF
X0VWRU5UMCgid2Via2l0IiwgIklDT0ltYWdlRGVjb2Rlcjo6ZGVjb2RlIik7Ci0jZW5kaWYKICAg
ICBpZiAoZmFpbGVkKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVj
b2Rlci5jcHAKaW5kZXggYmVmNDIwM2E1NzcwMzQ2ODkxMWZjYjdkNzZlNDkxZmE5MDIwZWE5MS4u
Mjc1ZmZjMDU5OWU5YzNkMTU0NDNhNjNiNjIyNjEzMjE5YWFkYjZkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQ
RUdJbWFnZURlY29kZXIuY3BwCkBAIC0zOSwxMyArMzksMTAgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkpQRUdJbWFnZURlY29kZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+ICAvLyBOZWVkZWQgYnkganBlZ2xp
Yi5oIGZvciBGSUxFLgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKLSNpZiBQTEFURk9S
TShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogI2lmIE9TKFdJ
TkNFKQogLy8gUmVtb3ZlIHdhcm5pbmc6ICdGQVInIG1hY3JvIHJlZGVmaW5pdGlvbgogI3VuZGVm
IEZBUgpAQCAtNTQwLDggKzUzNywxMSBAQCBJbWFnZUZyYW1lKiBKUEVHSW1hZ2VEZWNvZGVyOjpm
cmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIH0KIAogICAgIEltYWdlRnJhbWUm
IGZyYW1lID0gbV9mcmFtZUJ1ZmZlckNhY2hlWzBdOwotICAgIGlmIChmcmFtZS5zdGF0dXMoKSAh
PSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQorICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJ
bWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKSB7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGVjb2RlSW1hZ2UoIkpQRUciKTsKICAgICAgICAgZGVjb2RlKGZhbHNlKTsKKyAg
ICAgICAgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OmRpZERlY29kZUltYWdlKCk7CisgICAgfQog
ICAgIHJldHVybiAmZnJhbWU7CiB9CiAKQEAgLTY0Nyw5ICs2NDcsNiBAQCB2b2lkIEpQRUdJbWFn
ZURlY29kZXI6OmpwZWdDb21wbGV0ZSgpCiAKIHZvaWQgSlBFR0ltYWdlRGVjb2Rlcjo6ZGVjb2Rl
KGJvb2wgb25seVNpemUpCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZF
TlQwKCJ3ZWJraXQiLCAiSlBFR0ltYWdlRGVjb2Rlcjo6ZGVjb2RlIik7Ci0jZW5kaWYKICAgICBp
ZiAoZmFpbGVkKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNw
cAppbmRleCAxNThkZWJiNWFiMWMzOGMxZTFhN2JhYTNhZDBkM2FmNGQ3MzY0OWE4Li44NTFiNmY5
MTQxZGJjYWJjOTBhODFmOTQzNzQ1NzljYzZjOGRiNTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNv
ZGVyLmNwcApAQCAtNDAsMTQgKzQwLDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUE5HSW1hZ2VEZWNvZGVyLmgiCiAKKyNpbmNsdWRlICJQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgInBuZy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNs
dWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogI2lmIFVTRShRQ01TTElCKQogI2luY2x1ZGUg
InFjbXMuaCIKICNlbmRpZgpAQCAtMjYxLDggKzI1OCwxMSBAQCBJbWFnZUZyYW1lKiBQTkdJbWFn
ZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAgfQogCiAgICAg
SW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1lQnVmZmVyQ2FjaGVbMF07Ci0gICAgaWYgKGZyYW1l
LnN0YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpCisgICAgaWYgKGZyYW1lLnN0
YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpIHsKKyAgICAgICAgUGxhdGZvcm1J
bnN0cnVtZW50YXRpb246OndpbGxEZWNvZGVJbWFnZSgiUE5HIik7CiAgICAgICAgIGRlY29kZShm
YWxzZSk7CisgICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNvZGVJbWFnZSgp
OworICAgIH0KICAgICByZXR1cm4gJmZyYW1lOwogfQogCkBAIC01MzAsOSArNTMwLDYgQEAgdm9p
ZCBQTkdJbWFnZURlY29kZXI6OnBuZ0NvbXBsZXRlKCkKIAogdm9pZCBQTkdJbWFnZURlY29kZXI6
OmRlY29kZShib29sIG9ubHlTaXplKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRS
QUNFX0VWRU5UMCgid2Via2l0IiwgIlBOR0ltYWdlRGVjb2Rlcjo6ZGVjb2RlIik7Ci0jZW5kaWYK
ICAgICBpZiAoZmFpbGVkKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdl
RGVjb2Rlci5jcHAKaW5kZXggNjEyODkwZjMxMjUyYmUxNzBiZjc5ZjNjMWYwNWU1Mjc1MDM1ODI5
YS4uYWY0MDEwNmFiZTliM2Y4OTg0NDY0MDg3N2NlY2JiZjY5N2EzYWQ0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNv
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJw
L1dFQlBJbWFnZURlY29kZXIuY3BwCkBAIC0zMSwxMiArMzEsOSBAQAogCiAjaWYgVVNFKFdFQlAp
CiAKKyNpbmNsdWRlICJQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIndlYnAv
ZGVjb2RlLmgiCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50
LmgiCi0jZW5kaWYKLQogI2lmIENQVShCSUdfRU5ESUFOKSB8fCBDUFUoTUlERExFX0VORElBTikK
IGlubGluZSBXRUJQX0NTUF9NT0RFIG91dHB1dE1vZGUoKSB7IHJldHVybiBNT0RFX1JHQkE7IH0K
ICNlbGlmIFVTRShTS0lBKSAmJiBTS19CMzJfU0hJRlQKQEAgLTgwLDE2ICs3NywxNiBAQCBJbWFn
ZUZyYW1lKiBXRUJQSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4
KQogICAgIH0KIAogICAgIEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZUJ1ZmZlckNhY2hlWzBd
OwotICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKQor
ICAgIGlmIChmcmFtZS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlKSB7Cisg
ICAgICAgIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVjb2RlSW1hZ2UoIldFQlAiKTsK
ICAgICAgICAgZGVjb2RlKGZhbHNlKTsKKyAgICAgICAgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246
OmRpZERlY29kZUltYWdlKCk7CisgICAgfQogICAgIHJldHVybiAmZnJhbWU7CiB9CiAKIGJvb2wg
V0VCUEltYWdlRGVjb2Rlcjo6ZGVjb2RlKGJvb2wgb25seVNpemUpCiB7Ci0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiV0VCUEltYWdlRGVjb2Rlcjo6
ZGVjb2RlIik7Ci0jZW5kaWYKICAgICBpZiAoZmFpbGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAo=
</data>
<flag name="review"
          id="168957"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>