<?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>144981</bug_id>
          
          <creation_ts>2015-05-13 18:36:37 -0700</creation_ts>
          <short_desc>Use Ref instead of PassRefPtr in WebCore/bindings</short_desc>
          <delta_ts>2015-05-18 22:55:34 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094683</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-13 18:36:37 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094685</commentid>
    <comment_count>1</comment_count>
      <attachid>253080</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-13 18:47:26 -0700</bug_when>
    <thetext>Created attachment 253080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095495</commentid>
    <comment_count>2</comment_count>
      <attachid>253080</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-17 10:53:29 -0700</bug_when>
    <thetext>Comment on attachment 253080
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2655
&gt;                                                                  MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers,
&gt;                                                                  SerializationErrorMode throwExceptions)

Not lined up any more. Better to put it all on one line,

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2670
&gt;          return 0;

nullptr?

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2679
&gt;          return 0;

nullptr?

&gt; Source/WebCore/bindings/objc/ObjCEventListener.h:41
&gt; +        static RefPtr&lt;ObjCEventListener&gt; wrap(ObjCListener);

Should return Ref, not RefPtr. If you look at the implementation you’ll see it never returns null.

&gt; Source/WebCore/bindings/objc/ObjCEventListener.mm:55
&gt;          return wrapper;

Need to use releaseNonNull here to convert the RefPtr into a Ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095790</commentid>
    <comment_count>3</comment_count>
      <attachid>253359</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-18 19:29:15 -0700</bug_when>
    <thetext>Created attachment 253359
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095791</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-18 19:29:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 253080 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=253080&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2655
&gt; &gt;                                                                  MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers,
&gt; &gt;                                                                  SerializationErrorMode throwExceptions)
&gt; 
&gt; Not lined up any more. Better to put it all on one line,
&gt; 
&gt; &gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2670
&gt; &gt;          return 0;
&gt; 
&gt; nullptr?
&gt; 
&gt; &gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2679
&gt; &gt;          return 0;
&gt; 
&gt; nullptr?
&gt; 
&gt; &gt; Source/WebCore/bindings/objc/ObjCEventListener.h:41
&gt; &gt; +        static RefPtr&lt;ObjCEventListener&gt; wrap(ObjCListener);
&gt; 
&gt; Should return Ref, not RefPtr. If you look at the implementation you’ll see
&gt; it never returns null.
&gt; 
&gt; &gt; Source/WebCore/bindings/objc/ObjCEventListener.mm:55
&gt; &gt;          return wrapper;
&gt; 
&gt; Need to use releaseNonNull here to convert the RefPtr into a Ref.

All done ! Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095797</commentid>
    <comment_count>5</comment_count>
      <attachid>253359</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-18 20:20:53 -0700</bug_when>
    <thetext>Comment on attachment 253359
Patch for landing

Rejecting attachment 253359 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 253359, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

/Volumes/Data/EWS/WebKit/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-queues.appspot.com/results/6377800806170624</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095820</commentid>
    <comment_count>6</comment_count>
      <attachid>253364</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-05-18 21:40:41 -0700</bug_when>
    <thetext>Created attachment 253364
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095831</commentid>
    <comment_count>7</comment_count>
      <attachid>253364</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-18 22:55:30 -0700</bug_when>
    <thetext>Comment on attachment 253364
Patch for landing

Clearing flags on attachment: 253364

Committed r184543: &lt;http://trac.webkit.org/changeset/184543&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095832</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-18 22:55:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253080</attachid>
            <date>2015-05-13 18:47:26 -0700</date>
            <delta_ts>2015-05-18 19:29:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144981-20150514104604.patch</filename>
            <type>text/plain</type>
            <size>20434</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiODlhNGNmZTZkODJi
NmUxM2ZlZTE4MmQ1NDBkODNlYWFiMjAwYS4uMTljOGExMzBlZmY0MTViMTc0YTBjOWI2OTkzNTdh
MGE5OGRlYWUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTA1LTEzICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgUmVmIGlu
c3RlYWQgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlL2JpbmRpbmdzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ5ODEKKworICAgICAgICBBcyBhIHN0
ZXAgdG8gcHVyZ2UgUGFzc1JlZlB0ciwgcmVtb3ZlIFBhc3NSZWZQdHIgaW4gV2ViQ29yZS9iaW5k
aW5ncy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdPYmplY3RYUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdFRhc2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5k
bGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZUZvck5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRm9yRE9NV2luZG93KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJh
Y2s6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVyVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1ZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9P
YmpDRXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlz
dGVuZXIubW06CisgICAgICAgIChXZWJDb3JlOjpPYmpDRXZlbnRMaXN0ZW5lcjo6d3JhcCk6Cisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSk6CisKIDIwMTUtMDUt
MTIgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlv
dWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFtTdHJl
YW1zIEFQSV0gUmVhZGFibGVTdHJlYW0gcmVhZGVyIHNob3VsZCBub3QgYmUgZGlzcG9zYWJsZSB3
aGVuIGhhdmluZyBwZW5kaW5nIHByb21pc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXgg
MWQyMWJmN2IwYjMzN2ZmNTcxOTY0ZmVlYjBlZDlmNzM3YzJmMmNlZC4uOTExZWQ3M2UzYmY2M2Vk
YTMzMmU0OTNhMjhhMzQ4YjE3YWNiMTU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAt
MzIsOSArMzIsOSBAQCBjbGFzcyBOb2RlOwogY2xhc3MgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRp
b24gOiBwdWJsaWMgTm9kZUZpbHRlckNvbmRpdGlvbiB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbj4gY3JlYXRlKFdlYktpdERPTU5v
ZGVGaWx0ZXIqIGZpbHRlcikKKyAgICBzdGF0aWMgUmVmPEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0
aW9uPiBjcmVhdGUoV2ViS2l0RE9NTm9kZUZpbHRlciogZmlsdGVyKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbihmaWx0ZXIpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24o
ZmlsdGVyKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpTQzo6RXhl
Y1N0YXRlKiwgTm9kZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaAppbmRleCA2NmMxMWFlY2U5NWUz
NWI3ODE3MmZjM2FkOTI1NTcyNGU3YWM4MDFiLi5lYWEzNWY5ZGUzNzkzMzllMmNmMDFmYjZiZTgx
MDUwMDEzYjc2MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
b2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaApAQCAtMjksOSArMjksOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBHT2JqZWN0WFBhdGhOU1Jlc29sdmVyIDogcHVibGljIFhQYXRo
TlNSZXNvbHZlciB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHT2JqZWN0WFBh
dGhOU1Jlc29sdmVyPiBjcmVhdGUoV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlcikK
KyAgICBzdGF0aWMgUmVmPEdPYmplY3RYUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZShXZWJLaXRET01Y
UGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBHT2JqZWN0WFBhdGhOU1Jlc29sdmVyKHJlc29sdmVyKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdPYmplY3RYUGF0aE5TUmVzb2x2ZXIocmVzb2x2ZXIpKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIH5HT2JqZWN0WFBhdGhOU1Jlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXgg
NTRlYjMzMTE2M2RlNjhjOTY3YTFiNGMzYzE5ZTY1YmY1ZDRjNDljZi4uMDdkMjJkZjZmNmJhZDUz
NGEzZGYwOWJiZTE0ZjRmZDIyMTIwODQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtNDIsMTggKzQyLDE4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotUGFzc1Jl
ZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitSZWZQdHI8SlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgp
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBKU09i
amVjdCogcmVzb2x2ZXJPYmplY3QgPSB2YWx1ZS5nZXRPYmplY3QoKTsKICAgICBpZiAoIXJlc29s
dmVyT2JqZWN0KSB7CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENI
X0VSUik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKGV4ZWMs
IHJlc29sdmVyT2JqZWN0LCBhc0pTRE9NV2luZG93KGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3Qo
KSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihl
eGVjLCByZXNvbHZlck9iamVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52bUVudHJ5R2xvYmFsT2Jq
ZWN0KCkpKSk7CiB9CiAKIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBjdXN0b21SZXNvbHZlciwgSlNET01X
aW5kb3cqIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCmluZGV4IDdhNDAyYTA0NGUzZTBhOWI4ODgwMDU3
NzI1NzVkZmMyMDU5N2M0NTIuLmFkYmM2Nzc2MTljYTM1NTVjNzI0YjM4OTk5MTE2NGFiYTU3YjIy
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuaApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlciA6IHB1YmxpYyBYUGF0aE5TUmVzb2x2ZXIg
ewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXI+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7CisgICAgICAg
IHN0YXRpYyBSZWZQdHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIH5KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdFRhc2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3RUYXNrLmNwcAppbmRleCAyNDIwNTBiYzUzYWM5ZDgyNzY1Yzdm
MzllZjM4YWRjNTQwYTMwZmU0Li4xZjIxZmM2NmY1MDFlMDBhNDA3MDIwZmMzNTI0NmI1NDQ1ZWFl
NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0VGFzay5jcHAKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBKU0dsb2JhbE9iamVjdENhbGxiYWNrIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8SlNH
bG9iYWxPYmplY3RDYWxsYmFjaz4sIHByaXZhdGUgQWN0aXZlRE9NQ2FsbGJhY2sgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2s+IGNyZWF0ZShK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPE1pY3JvdGFzaz4gdGFz
aykKKyAgICBzdGF0aWMgUmVmPEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2s+IGNyZWF0ZShKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPE1pY3JvdGFzaz4gdGFzaykKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNHbG9iYWxPYmplY3RDYWxsYmFjayhn
bG9iYWxPYmplY3QsIHRhc2spKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNHbG9i
YWxPYmplY3RDYWxsYmFjayhnbG9iYWxPYmplY3QsIHRhc2spKTsKICAgICB9CiAKICAgICB2b2lk
IGNhbGwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKaW5k
ZXggNTVkMmQ1M2UwYjkxM2E5NzY0NTQ5ZjI4Y2FmMmNjMzg4YWYzMDU2YS4uZGZlMTNjMmZhYjU1
MDYzMjI0YjQ1ZmVkZTYxMmYwYTlhYWU2ODVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0Vycm9ySGFuZGxlci5oCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSlNFcnJvckhhbmRsZXIgOiBwdWJsaWMgSlNFdmVudExpc3RlbmVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0Vycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6
SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQorICAgIHN0YXRpYyBSZWY8SlNFcnJvckhhbmRs
ZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBl
ciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIs
IGlzQXR0cmlidXRlLCB3b3JsZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0Vy
cm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIHdvcmxkKSk7CiAgICAg
fQogCiAgICAgdmlydHVhbCB+SlNFcnJvckhhbmRsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggY2YxMzM3ZjAxMzhi
YjBkNjdiNmFmNzZiNjk4MTQxODkyNDJhYTRmMy4uNjY2MWE2MDQ3Y2IxODEzZGUzNmFmOTUwOWZl
NTQ3Y2NkYmQ0MDJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBzdGF0aWMgY29uc3QgU3Ry
aW5nJiBldmVudFBhcmFtZXRlck5hbWUoYm9vbCBpc1NWR0V2ZW50KQogICAgIHJldHVybiBpc1NW
R0V2ZW50ID8gZXZ0U3RyaW5nIDogZXZlbnRTdHJpbmc7CiB9CiAKLVBhc3NSZWZQdHI8SlNMYXp5
RXZlbnRMaXN0ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRm9yTm9kZShDb250YWlu
ZXJOb2RlJiBub2RlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIGF0dHJpYnV0ZVZhbHVlKQorUmVmUHRyPEpTTGF6eUV2ZW50TGlzdGVuZXI+
IEpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZUZvck5vZGUoQ29udGFpbmVyTm9kZSYgbm9kZSwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBh
dHRyaWJ1dGVWYWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlVmFsdWUuaXNOdWxsKCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwpAQCAtMTU5LDEyICsxNTksMTIgQEAgUGFzc1JlZlB0cjxKU0xh
enlFdmVudExpc3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGVGb3JOb2RlKENvbnRh
aW5lck5vZGUKICAgICAgICAgc291cmNlVVJMID0gbm9kZS5kb2N1bWVudCgpLnVybCgpLnN0cmlu
ZygpOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNMYXp5RXZlbnRMaXN0ZW5l
cihhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpLnN0cmluZygpLAorICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEpTTGF6eUV2ZW50TGlzdGVuZXIoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKS5zdHJp
bmcoKSwKICAgICAgICAgZXZlbnRQYXJhbWV0ZXJOYW1lKG5vZGUuaXNTVkdFbGVtZW50KCkpLCBh
dHRyaWJ1dGVWYWx1ZSwKICAgICAgICAgJm5vZGUsIHNvdXJjZVVSTCwgcG9zaXRpb24sIG51bGxw
dHIsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKSk7CiB9CiAKLVBhc3NSZWZQdHI8SlNMYXp5RXZl
bnRMaXN0ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRm9yRE9NV2luZG93KEZyYW1l
JiBmcmFtZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkKK1JlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBKU0xh
enlFdmVudExpc3RlbmVyOjpjcmVhdGVGb3JET01XaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0
ZVZhbHVlKQogewogICAgIGlmIChhdHRyaWJ1dGVWYWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC0xNzIsNyArMTcyLDcgQEAgUGFzc1JlZlB0cjxKU0xhenlFdmVudExp
c3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGVGb3JET01XaW5kb3coRnJhbWUmIGYK
ICAgICBpZiAoIWZyYW1lLnNjcmlwdCgpLmNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRl
U2NyaXB0KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEpTTGF6eUV2ZW50TGlzdGVuZXIoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKS5zdHJpbmco
KSwKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0xhenlFdmVudExpc3RlbmVyKGF0dHJpYnV0
ZU5hbWUubG9jYWxOYW1lKCkuc3RyaW5nKCksCiAgICAgICAgIGV2ZW50UGFyYW1ldGVyTmFtZShm
cmFtZS5kb2N1bWVudCgpLT5pc1NWR0RvY3VtZW50KCkpLCBhdHRyaWJ1dGVWYWx1ZSwKICAgICAg
ICAgbnVsbHB0ciwgZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCksIGZyYW1lLnNjcmlw
dCgpLmV2ZW50SGFuZGxlclBvc2l0aW9uKCksCiAgICAgICAgIHRvSlNET01XaW5kb3coJmZyYW1l
LCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSksIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmgKaW5k
ZXggMzE5MDAxNzhjMjA2OGRlYmNlMjM2OGMxNTlhMTgzYzhiODIxYmIzYi4uZDkxOGQ3NmU4MjUz
ZWViNTgzZmJiY2FiNzg4OTQ4NDkxM2UyMTQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuaApAQCAtMzIsOCArMzIsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU0xhenlFdmVudExpc3RlbmVyIGZpbmFsIDogcHVi
bGljIEpTRXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBjcmVhdGVGb3JOb2RlKENvbnRhaW5lck5vZGUmLCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIGF0
dHJpYnV0ZVZhbHVlKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNMYXp5RXZlbnRMaXN0
ZW5lcj4gY3JlYXRlRm9yRE9NV2luZG93KEZyYW1lJiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAg
IHN0YXRpYyBSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlRm9yTm9kZShDb250YWlu
ZXJOb2RlJiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SlNMYXp5RXZl
bnRMaXN0ZW5lcj4gY3JlYXRlRm9yRE9NV2luZG93KEZyYW1lJiwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSk7CiAK
ICAgICAgICAgdmlydHVhbCB+SlNMYXp5RXZlbnRMaXN0ZW5lcigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oCmluZGV4IGQ3YmQ4NDgzYjZh
ZGI0MmUwZWQxN2VjOWZlOWZhM2U5NGNmZTJhYTcuLmNiNzEzZjc5ODA0YWQyODBiZGE5ZWQ4ZDQw
YThjNTQ4YWVkNDE0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TXV0YXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0
YXRpb25DYWxsYmFjay5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0
OwogCiBjbGFzcyBKU011dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgTXV0YXRpb25DYWxsYmFjaywg
cHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxKU011dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICBzdGF0aWMgUmVmPEpTTXV0YXRpb25D
YWxsYmFjaz4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU011
dGF0aW9uQ2FsbGJhY2soY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBKU011dGF0aW9uQ2FsbGJhY2soY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkp
OwogICAgIH0KIAogICAgIHZpcnR1YWwgfkpTTXV0YXRpb25DYWxsYmFjaygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaAppbmRleCBh
ZTgyMTkxMzZiYzM0NmM4ZGUwMDA3MWQyZjBjNGYzOWU2MDE2ZmZlLi5hNmExYmUzMTc4OTlhNWQx
MWFmNzMyMmUwOTI2ZjY0MjExNjgwM2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtMzQsOSArMzQsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU05vZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJsaWMg
Tm9kZUZpbHRlckNvbmRpdGlvbiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU05vZGVGaWx0ZXJDb25kaXRpb24+IGNyZWF0ZShKU0M6OlZNJiB2bSwgTm9kZUZpbHRl
ciogb3duZXIsIEpTQzo6SlNWYWx1ZSBmaWx0ZXIpCisgICAgICAgIHN0YXRpYyBSZWY8SlNOb2Rl
RmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoSlNDOjpWTSYgdm0sIE5vZGVGaWx0ZXIqIG93bmVyLCBK
U0M6OkpTVmFsdWUgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEpTTm9kZUZpbHRlckNvbmRpdGlvbih2bSwgb3duZXIsIGZpbHRlcikpOworICAgICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNOb2RlRmlsdGVyQ29uZGl0aW9uKHZtLCBvd25l
ciwgZmlsdGVyKSk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCBlZTE1
YmQ1MGM1MjNmNjExMjU4NTQ2MmYzNjc5NTFkYTAzZjc3ZGNkLi5mNGRiMDM1NTVkZjZhNjk2MTkz
YTc2NDQ5NWE0ZGU2YzUzMmFkMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTI2NTAsNyArMjY1MCw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU6OkFycmF5QnVmZmVyQ29udGVudHNB
cnJheT4gU2VyaWFsaXplZFNjcmlwCiAgICAgcmV0dXJuIGNvbnRlbnRzOwogfQogCi1QYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLAorUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VQb3J0QXJyYXkqIG1lc3NhZ2VQb3J0cywgQXJyYXlC
dWZmZXJBcnJheSogYXJyYXlCdWZmZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6YXRpb25FcnJvck1vZGUg
dGhyb3dFeGNlcHRpb25zKQogewpAQCAtMjY2OSwzMCArMjY2OSwzMCBAQCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLAogICAgIGlmICghc2VyaWFsaXphdGlvbkRpZENvbXBsZXRlU3VjY2Vzc2Z1bGx5
KGNvZGUpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZlciwgYmxvYlVSTHMsIFdURjo6bW92ZShhcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXkpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNj
cmlwdFZhbHVlKGJ1ZmZlciwgYmxvYlVSTHMsIFdURjo6bW92ZShhcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXkpKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0cmluZykKK1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CiAgICAgaWYgKCFD
bG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShzdHJpbmcsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZl
cikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZm
ZXIpKTsKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVyVmFsdWUoZG91
YmxlIHZhbHVlKQorUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpudW1iZXJWYWx1ZShkb3VibGUgdmFsdWUpCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1
ZmZlcjsKICAgICBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZU51bWJlcih2YWx1ZSwgYnVmZmVy
KTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVy
KSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKCkKK1JlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKQogewogICAgIFZlY3Rvcjx1aW50
OF90PiBidWZmZXI7CiAgICAgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemVVbmRlZmluZWQoYnVm
ZmVyKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZm
ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVm
ZmVyKSk7CiB9CiAjZW5kaWYKIApAQCAtMjc0MiwxMCArMjc0MiwxMCBAQCBKU1ZhbHVlUmVmIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmIGRlc3RpbmF0aW9u
Q29udGV4dCwgSgogICAgIHJldHVybiB0b1JlZihleGVjLCB2YWx1ZSk7CiB9CiAKLVBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1
ZSgpCitSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51
bGxWYWx1ZSgpCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CiB9CiAKIHZvaWQgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjptYXliZVRocm93RXhjZXB0aW9uSWZTZXJpYWxpemF0aW9uRmFp
bGVkKEV4ZWNTdGF0ZSogZXhlYywgU2VyaWFsaXphdGlvblJldHVybkNvZGUgY29kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5k
ZXggZDM2NmIzMDY3YzEyNmJlZDQwZTM5ZDdlYmI2ZDgyNjRkNTg5MDhiYS4uMjE2MTVhMTJjZWMy
YTdkN2RhNTUzZGU5NDA5NTAwNTM4OTBmNzc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTY3LDE1ICs2NywxNSBAQCBj
bGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgOgogICAgIHB1YmxpYyBSZWZDb3VudGVkPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gewogI2VuZGlmCiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkqLCBBcnJheUJ1ZmZlckFycmF5
KiwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSA9IFRocm93aW5nKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBNZXNzYWdlUG9ydEFycmF5KiwgQXJyYXlCdWZmZXJBcnJheSos
IFNlcmlhbGl6YXRpb25FcnJvck1vZGUgPSBUaHJvd2luZyk7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShjb25zdCBT
dHJpbmcmKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFk
b3B0KFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJik7CisgICAg
c3RhdGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90PiYg
YnVmZmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoYnVmZmVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bGxWYWx1ZSgpOworICAgIHN0YXRpYyBSZWY8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBudWxsVmFsdWUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEpTQzo6
SlNWYWx1ZSBkZXNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBNZXNzYWdlUG9ydEFycmF5KiwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSA9IFRocm93aW5nKTsK
IApAQCAtOTMsMTMgKzkzLDEzIEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQogICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoZXNlLiBUaGUgb25seSBjYWxsZXIgaW1t
ZWRpYXRlbHkgZGVzZXJpYWxpemVzIHRoZSByZXN1bHQsIHNvIGl0J3MgYSB2ZXJ5IHJvdW5kYWJv
dXQgd2F5IHRvIGNyZWF0ZSBhIEpTVmFsdWUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBudW1iZXJWYWx1ZShkb3VibGUgdmFsdWUpOwotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdW5kZWZpbmVkVmFsdWUoKTsKKyAgICBz
dGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbnVtYmVyVmFsdWUoZG91YmxlIHZhbHVl
KTsKKyAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdW5kZWZpbmVkVmFsdWUo
KTsKICNlbmRpZgogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBjcmVhdGVGcm9tV2lyZUJ5dGVzKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKKyAgICBz
dGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlRnJvbVdpcmVCeXRlcyhjb25z
dCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShkYXRhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShkYXRhKSk7CiAgICAgfQogICAgIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgdG9XaXJlQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5l
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5oCmlu
ZGV4IDIwY2I5NjllMDQyMjNmNjg3MTc4Y2NkZjUyZWM1M2FmYzYyZjFjYmEuLjUxYzM2ZmE2Yjkw
NzJhZDgzZmEwNmM0NWU4MWQyY2VhYTBlNmU3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL09iakNFdmVudExpc3RlbmVyLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE9iakNFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50
TGlzdGVuZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBpZDxET01FdmVudExpc3Rl
bmVyPiBPYmpDTGlzdGVuZXI7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iakNFdmVudExp
c3RlbmVyPiB3cmFwKE9iakNMaXN0ZW5lcik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8T2JqQ0V2
ZW50TGlzdGVuZXI+IHdyYXAoT2JqQ0xpc3RlbmVyKTsKIAogICAgICAgICBzdGF0aWMgY29uc3Qg
T2JqQ0V2ZW50TGlzdGVuZXIqIGNhc3QoY29uc3QgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCiAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ0V2
ZW50TGlzdGVuZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNFdmVudExp
c3RlbmVyLm1tCmluZGV4IGM4ZGIyNTQ5MmQwZTY0NTEwYmIwOTkxZmQ3MDk2M2MyZGY5YThiNjgu
LjJkYjYxOWU0Y2Q2ZmYxOWZjN2VhNjAzY2NlZDYyMTQ2ZGJhZTE2YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVuZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5tbQpAQCAtNDgsMTIg
KzQ4LDEyIEBAIE9iakNFdmVudExpc3RlbmVyKiBPYmpDRXZlbnRMaXN0ZW5lcjo6ZmluZChPYmpD
TGlzdGVuZXIgbGlzdGVuZXIpCiAgICAgcmV0dXJuIG1hcC0+Z2V0KGxpc3RlbmVyKTsKIH0KIAot
UGFzc1JlZlB0cjxPYmpDRXZlbnRMaXN0ZW5lcj4gT2JqQ0V2ZW50TGlzdGVuZXI6OndyYXAoT2Jq
Q0xpc3RlbmVyIGxpc3RlbmVyKQorUmVmUHRyPE9iakNFdmVudExpc3RlbmVyPiBPYmpDRXZlbnRM
aXN0ZW5lcjo6d3JhcChPYmpDTGlzdGVuZXIgbGlzdGVuZXIpCiB7CiAgICAgUmVmUHRyPE9iakNF
dmVudExpc3RlbmVyPiB3cmFwcGVyID0gZmluZChsaXN0ZW5lcik7CiAgICAgaWYgKHdyYXBwZXIp
CiAgICAgICAgIHJldHVybiB3cmFwcGVyOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgT2JqQ0V2
ZW50TGlzdGVuZXIobGlzdGVuZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmpDRXZl
bnRMaXN0ZW5lcihsaXN0ZW5lcikpOwogfQogCiBPYmpDRXZlbnRMaXN0ZW5lcjo6T2JqQ0V2ZW50
TGlzdGVuZXIoT2JqQ0xpc3RlbmVyIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDgxYTM3MjBm
ODE3OTZkZDNkZjc5ODc3ZDdjNjBmYmI5OTZmMzk2YzEuLmNjMDc3YjMxMDI0M2U4YzA0YTY4NDdm
NzEzMTgwYTBkNWIwZWU0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJs
aWMgTm9kZUZpbHRlckNvbmRpdGlvbiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxPYmpDTm9kZUZpbHRlckNvbmRpdGlvbj4gY3JlYXRlKGlkIDxET01Ob2RlRmlsdGVy
PiBmaWx0ZXIpCisgICAgICAgIHN0YXRpYyBSZWY8T2JqQ05vZGVGaWx0ZXJDb25kaXRpb24+IGNy
ZWF0ZShpZCA8RE9NTm9kZUZpbHRlcj4gZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGZpbHRlcikpOworICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24oZmls
dGVyKSk7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlND
OjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253359</attachid>
            <date>2015-05-18 19:29:15 -0700</date>
            <delta_ts>2015-05-18 21:40:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-144981-20150519112924.patch</filename>
            <type>text/plain</type>
            <size>20649</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY0MjM0ZjIwZTYwMGM1
YTc2MmI4NjBjMGIzZjFhMzY2ZWZjZWVjOC4uMWEyOTJjZDY3Yjg4ZDNmY2FlMTMyYWY3MzAyM2Rm
NjM2YWRiNDE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTA1LTE4ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgUmVmIGlu
c3RlYWQgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlL2JpbmRpbmdzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ5ODEKKworICAgICAgICBBcyBhIHN0
ZXAgdG8gcHVyZ2UgUGFzc1JlZlB0ciwgcmVtb3ZlIFBhc3NSZWZQdHIgaW4gV2ViQ29yZS9iaW5k
aW5ncy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdPYmplY3RYUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdFRhc2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5k
bGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZUZvck5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRm9yRE9NV2luZG93KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJh
Y2s6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVyVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1ZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9P
YmpDRXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlz
dGVuZXIubW06CisgICAgICAgIChXZWJDb3JlOjpPYmpDRXZlbnRMaXN0ZW5lcjo6d3JhcCk6Cisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSk6CisKIDIwMTUtMDUt
MTggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtDTWFrZV0gSWdub3JlIHdhcm5pbmdzIGluIHN5c3RlbSBoZWFkZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29u
ZGl0aW9uLmgKaW5kZXggMWQyMWJmN2IwYjMzN2ZmNTcxOTY0ZmVlYjBlZDlmNzM3YzJmMmNlZC4u
OTExZWQ3M2UzYmY2M2VkYTMzMmU0OTNhMjhhMzQ4YjE3YWNiMTU1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJD
b25kaXRpb24uaApAQCAtMzIsOSArMzIsOSBAQCBjbGFzcyBOb2RlOwogY2xhc3MgR09iamVjdE5v
ZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJsaWMgTm9kZUZpbHRlckNvbmRpdGlvbiB7CiBwdWJsaWM6
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbj4gY3Jl
YXRlKFdlYktpdERPTU5vZGVGaWx0ZXIqIGZpbHRlcikKKyAgICBzdGF0aWMgUmVmPEdPYmplY3RO
b2RlRmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoV2ViS2l0RE9NTm9kZUZpbHRlciogZmlsdGVyKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHT2JqZWN0Tm9kZUZpbHRlckNvbmRp
dGlvbihmaWx0ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR09iamVjdE5vZGVG
aWx0ZXJDb25kaXRpb24oZmlsdGVyKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBzaG9ydCBhY2Nl
cHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaAppbmRl
eCA2NmMxMWFlY2U5NWUzNWI3ODE3MmZjM2FkOTI1NTcyNGU3YWM4MDFiLi5lYWEzNWY5ZGUzNzkz
MzllMmNmMDFmYjZiZTgxMDUwMDEzYjc2MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaApAQCAtMjksOSAr
MjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHT2JqZWN0WFBhdGhOU1Jlc29sdmVy
IDogcHVibGljIFhQYXRoTlNSZXNvbHZlciB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxHT2JqZWN0WFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUoV2ViS2l0RE9NWFBhdGhOU1Jlc29s
dmVyKiByZXNvbHZlcikKKyAgICBzdGF0aWMgUmVmPEdPYmplY3RYUGF0aE5TUmVzb2x2ZXI+IGNy
ZWF0ZShXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBHT2JqZWN0WFBhdGhOU1Jlc29sdmVyKHJlc29sdmVyKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdPYmplY3RYUGF0aE5TUmVzb2x2ZXIocmVzb2x2
ZXIpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5HT2JqZWN0WFBhdGhOU1Jlc29sdmVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAKaW5kZXggNTRlYjMzMTE2M2RlNjhjOTY3YTFiNGMzYzE5ZTY1YmY1ZDRjNDljZi4u
MDdkMjJkZjZmNmJhZDUzNGEzZGYwOWJiZTE0ZjRmZDIyMTIwODQyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApA
QCAtNDIsMTggKzQyLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAotUGFzc1JlZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXI6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitSZWZQ
dHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVh
dGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBKU09iamVjdCogcmVzb2x2ZXJPYmplY3QgPSB2YWx1ZS5nZXRPYmplY3QoKTsK
ICAgICBpZiAoIXJlc29sdmVyT2JqZWN0KSB7CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBUWVBFX01JU01BVENIX0VSUik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyKGV4ZWMsIHJlc29sdmVyT2JqZWN0LCBhc0pTRE9NV2luZG93KGV4ZWMtPnZtRW50
cnlHbG9iYWxPYmplY3QoKSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlcihleGVjLCByZXNvbHZlck9iamVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52
bUVudHJ5R2xvYmFsT2JqZWN0KCkpKSk7CiB9CiAKIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBjdXN0b21S
ZXNvbHZlciwgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCmluZGV4IDdhNDAyYTA0
NGUzZTBhOWI4ODgwMDU3NzI1NzVkZmMyMDU5N2M0NTIuLmFkYmM2Nzc2MTljYTM1NTVjNzI0YjM4
OTk5MTE2NGFiYTU3YjIyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlciA6IHB1YmxpYyBY
UGF0aE5TUmVzb2x2ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IGNy
ZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7CiAgICAgICAgIAogICAgICAgICB2
aXJ0dWFsIH5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdFRhc2suY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3RUYXNrLmNwcAppbmRleCAyNDIwNTBi
YzUzYWM5ZDgyNzY1YzdmMzllZjM4YWRjNTQwYTMwZmU0Li4xZjIxZmM2NmY1MDFlMDBhNDA3MDIw
ZmMzNTI0NmI1NDQ1ZWFlNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHAKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBKU0dsb2JhbE9iamVjdENhbGxiYWNrIGZpbmFsIDogcHVibGlj
IFJlZkNvdW50ZWQ8SlNHbG9iYWxPYmplY3RDYWxsYmFjaz4sIHByaXZhdGUgQWN0aXZlRE9NQ2Fs
bGJhY2sgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xvYmFsT2JqZWN0Q2Fs
bGJhY2s+IGNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PE1pY3JvdGFzaz4gdGFzaykKKyAgICBzdGF0aWMgUmVmPEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2s+
IGNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPE1pY3Jv
dGFzaz4gdGFzaykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNHbG9iYWxP
YmplY3RDYWxsYmFjayhnbG9iYWxPYmplY3QsIHRhc2spKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSlNHbG9iYWxPYmplY3RDYWxsYmFjayhnbG9iYWxPYmplY3QsIHRhc2spKTsKICAg
ICB9CiAKICAgICB2b2lkIGNhbGwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJy
b3JIYW5kbGVyLmgKaW5kZXggNTVkMmQ1M2UwYjkxM2E5NzY0NTQ5ZjI4Y2FmMmNjMzg4YWYzMDU2
YS4uZGZlMTNjMmZhYjU1MDYzMjI0YjQ1ZmVkZTYxMmYwYTlhYWU2ODVlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCkBAIC0zNyw5ICszNyw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNFcnJvckhhbmRsZXIgOiBwdWJsaWMgSlNFdmVu
dExpc3RlbmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0Vycm9ySGFuZGxl
cj4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVy
LCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQorICAgIHN0YXRpYyBS
ZWY8SlNFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpK
U09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNFcnJvckhhbmRsZXIobGlz
dGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCB3b3JsZCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBKU0Vycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNBdHRyaWJ1dGUs
IHdvcmxkKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+SlNFcnJvckhhbmRsZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5k
ZXggY2YxMzM3ZjAxMzhiYjBkNjdiNmFmNzZiNjk4MTQxODkyNDJhYTRmMy4uNjY2MWE2MDQ3Y2Ix
ODEzZGUzNmFmOTUwOWZlNTQ3Y2NkYmQ0MDJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBz
dGF0aWMgY29uc3QgU3RyaW5nJiBldmVudFBhcmFtZXRlck5hbWUoYm9vbCBpc1NWR0V2ZW50KQog
ICAgIHJldHVybiBpc1NWR0V2ZW50ID8gZXZ0U3RyaW5nIDogZXZlbnRTdHJpbmc7CiB9CiAKLVBh
c3NSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRl
Rm9yTm9kZShDb250YWluZXJOb2RlJiBub2RlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZVZhbHVlKQorUmVmUHRyPEpTTGF6
eUV2ZW50TGlzdGVuZXI+IEpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZUZvck5vZGUoQ29udGFp
bmVyTm9kZSYgbm9kZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlVmFsdWUu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTU5LDEyICsxNTksMTIgQEAg
UGFzc1JlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVh
dGVGb3JOb2RlKENvbnRhaW5lck5vZGUKICAgICAgICAgc291cmNlVVJMID0gbm9kZS5kb2N1bWVu
dCgpLnVybCgpLnN0cmluZygpOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNM
YXp5RXZlbnRMaXN0ZW5lcihhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpLnN0cmluZygpLAorICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEpTTGF6eUV2ZW50TGlzdGVuZXIoYXR0cmlidXRlTmFtZS5s
b2NhbE5hbWUoKS5zdHJpbmcoKSwKICAgICAgICAgZXZlbnRQYXJhbWV0ZXJOYW1lKG5vZGUuaXNT
VkdFbGVtZW50KCkpLCBhdHRyaWJ1dGVWYWx1ZSwKICAgICAgICAgJm5vZGUsIHNvdXJjZVVSTCwg
cG9zaXRpb24sIG51bGxwdHIsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRm9y
RE9NV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkKK1JlZlB0cjxKU0xhenlFdmVu
dExpc3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGVGb3JET01XaW5kb3coRnJhbWUm
IGZyYW1lLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIGF0dHJpYnV0ZVZhbHVlKQogewogICAgIGlmIChhdHRyaWJ1dGVWYWx1ZS5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNzIsNyArMTcyLDcgQEAgUGFzc1JlZlB0
cjxKU0xhenlFdmVudExpc3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGVGb3JET01X
aW5kb3coRnJhbWUmIGYKICAgICBpZiAoIWZyYW1lLnNjcmlwdCgpLmNhbkV4ZWN1dGVTY3JpcHRz
KEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEpTTGF6eUV2ZW50TGlzdGVuZXIoYXR0cmlidXRlTmFtZS5sb2Nh
bE5hbWUoKS5zdHJpbmcoKSwKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0xhenlFdmVudExp
c3RlbmVyKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkuc3RyaW5nKCksCiAgICAgICAgIGV2ZW50
UGFyYW1ldGVyTmFtZShmcmFtZS5kb2N1bWVudCgpLT5pc1NWR0RvY3VtZW50KCkpLCBhdHRyaWJ1
dGVWYWx1ZSwKICAgICAgICAgbnVsbHB0ciwgZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5n
KCksIGZyYW1lLnNjcmlwdCgpLmV2ZW50SGFuZGxlclBvc2l0aW9uKCksCiAgICAgICAgIHRvSlNE
T01XaW5kb3coJmZyYW1lLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSksIG1haW5UaHJlYWROb3Jt
YWxXb3JsZCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xh
enlFdmVudExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVu
dExpc3RlbmVyLmgKaW5kZXggMzE5MDAxNzhjMjA2OGRlYmNlMjM2OGMxNTlhMTgzYzhiODIxYmIz
Yi4uZDkxOGQ3NmU4MjUzZWViNTgzZmJiY2FiNzg4OTQ4NDkxM2UyMTQ5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuaApAQCAtMzIsOCAr
MzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU0xhenlFdmVudExpc3Rl
bmVyIGZpbmFsIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBjcmVhdGVGb3JOb2RlKENv
bnRhaW5lck5vZGUmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIGF0dHJpYnV0ZVZhbHVlKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlRm9yRE9NV2luZG93KEZyYW1lJiwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVW
YWx1ZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRl
Rm9yTm9kZShDb250YWluZXJOb2RlJiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBS
ZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlRm9yRE9NV2luZG93KEZyYW1lJiwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRy
aWJ1dGVWYWx1ZSk7CiAKICAgICAgICAgdmlydHVhbCB+SlNMYXp5RXZlbnRMaXN0ZW5lcigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oCmlu
ZGV4IGQ3YmQ4NDgzYjZhZGI0MmUwZWQxN2VjOWZlOWZhM2U5NGNmZTJhYTcuLmNiNzEzZjc5ODA0
YWQyODBiZGE5ZWQ4ZDQwYThjNTQ4YWVkNDE0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIEpT
RE9NR2xvYmFsT2JqZWN0OwogCiBjbGFzcyBKU011dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgTXV0
YXRpb25DYWxsYmFjaywgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKU011dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZShKU0M6OkpTT2JqZWN0
KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICBzdGF0aWMg
UmVmPEpTTXV0YXRpb25DYWxsYmFjaz4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBKU011dGF0aW9uQ2FsbGJhY2soY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU011dGF0aW9uQ2FsbGJhY2soY2FsbGJhY2ss
IGdsb2JhbE9iamVjdCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkpTTXV0YXRpb25DYWxsYmFj
aygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVy
Q29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25k
aXRpb24uaAppbmRleCBhZTgyMTkxMzZiYzM0NmM4ZGUwMDA3MWQyZjBjNGYzOWU2MDE2ZmZlLi5h
NmExYmUzMTc4OTlhNWQxMWFmNzMyMmUwOTI2ZjY0MjExNjgwM2MxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtMzQsOSAr
MzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU05vZGVGaWx0ZXJDb25k
aXRpb24gOiBwdWJsaWMgTm9kZUZpbHRlckNvbmRpdGlvbiB7CiAgICAgcHVibGljOgotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKU05vZGVGaWx0ZXJDb25kaXRpb24+IGNyZWF0ZShKU0M6OlZN
JiB2bSwgTm9kZUZpbHRlciogb3duZXIsIEpTQzo6SlNWYWx1ZSBmaWx0ZXIpCisgICAgICAgIHN0
YXRpYyBSZWY8SlNOb2RlRmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoSlNDOjpWTSYgdm0sIE5vZGVG
aWx0ZXIqIG93bmVyLCBKU0M6OkpTVmFsdWUgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEpTTm9kZUZpbHRlckNvbmRpdGlvbih2bSwgb3duZXIsIGZp
bHRlcikpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uKHZtLCBvd25lciwgZmlsdGVyKSk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAppbmRleCBkOTZlZDc3ZDBhNTk0MDQzZGRmOTM2Y2I5MmI5ODAwNGRiNWM3NmQ3Li42OTk0
ODgwNjQzNDk1ZGE1NGM5MjhmZTMwZjg3MTViYWE5MjM2NWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTI2NTAs
OSArMjY1MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU6OkFycmF5
QnVmZmVyQ29udGVudHNBcnJheT4gU2VyaWFsaXplZFNjcmlwCiAgICAgcmV0dXJuIGNvbnRlbnRz
OwogfQogCi1QYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1l
c3NhZ2VQb3J0QXJyYXkqIG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZmZXJBcnJheSogYXJyYXlCdWZm
ZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgdGhyb3dFeGNlcHRpb25zKQorUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEFycmF5KiBtZXNzYWdl
UG9ydHMsIEFycmF5QnVmZmVyQXJyYXkqIGFycmF5QnVmZmVycywgU2VyaWFsaXphdGlvbkVycm9y
TW9kZSB0aHJvd0V4Y2VwdGlvbnMpCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAg
ICBWZWN0b3I8U3RyaW5nPiBibG9iVVJMczsKQEAgLTI2NjcsMzIgKzI2NjUsMzIgQEAgUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgbWF5YmVUaHJvd0V4Y2VwdGlvbklmU2VyaWFsaXph
dGlvbkZhaWxlZChleGVjLCBjb2RlKTsKIAogICAgIGlmICghc2VyaWFsaXphdGlvbkRpZENvbXBs
ZXRlU3VjY2Vzc2Z1bGx5KGNvZGUpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZShidWZmZXIsIGJsb2JVUkxzLCBXVEY6Om1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIs
IGJsb2JVUkxzLCBXVEY6Om1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkpOwogfQogCi1Q
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
ICAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwogICAgIGlmICghQ2xvbmVTZXJpYWxpemVyOjpz
ZXJpYWxpemUoc3RyaW5nLCBidWZmZXIpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKGJ1ZmZlcikpOwogfQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1QYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudW1iZXJW
YWx1ZShkb3VibGUgdmFsdWUpCitSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVk
U2NyaXB0VmFsdWU6Om51bWJlclZhbHVlKGRvdWJsZSB2YWx1ZSkKIHsKICAgICBWZWN0b3I8dWlu
dDhfdD4gYnVmZmVyOwogICAgIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplTnVtYmVyKHZhbHVl
LCBidWZmZXIpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZShidWZmZXIpKTsKIH0KIAotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKQorUmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRWYWx1ZSgpCiB7CiAgICAgVmVj
dG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZVVuZGVm
aW5lZChidWZmZXIpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShidWZmZXIpKTsKIH0KICNlbmRpZgogCkBAIC0yNzQyLDEwICsyNzQwLDEwIEBAIEpTVmFs
dWVSZWYgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYgZGVz
dGluYXRpb25Db250ZXh0LCBKCiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHZhbHVlKTsKIH0KIAot
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
bnVsbFZhbHVlKCkKK1JlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6bnVsbFZhbHVlKCkKIHsKICAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZlcikpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKIH0KIAog
dm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om1heWJlVGhyb3dFeGNlcHRpb25JZlNlcmlhbGl6
YXRpb25GYWlsZWQoRXhlY1N0YXRlKiBleGVjLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBjb2Rl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuaAppbmRleCBkMzY2YjMwNjdjMTI2YmVkNDBlMzlkN2ViYjZkODI2NGQ1ODkwOGJhLi4yMTYx
NWExMmNlYzJhN2Q3ZGE1NTNkZTk0MDk1MDA1Mzg5MGY3NzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNjcsMTUgKzY3
LDE1IEBAIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6CiAgICAgcHVibGljIFJlZkNvdW50
ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7CiAjZW5kaWYKIHB1YmxpYzoKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgTWVzc2FnZVBvcnRBcnJheSosIEFycmF5QnVm
ZmVyQXJyYXkqLCBTZXJpYWxpemF0aW9uRXJyb3JNb2RlID0gVGhyb3dpbmcpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkqLCBBcnJheUJ1ZmZl
ckFycmF5KiwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSA9IFRocm93aW5nKTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcm
KTsKKyAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVp
bnQ4X3Q+JiBidWZmZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZlcikpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbnVsbFZhbHVlKCk7CisgICAgc3RhdGljIFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bGxWYWx1ZSgpOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCosIE1lc3NhZ2VQb3J0QXJyYXkqLCBTZXJpYWxpemF0aW9uRXJyb3JNb2RlID0gVGhy
b3dpbmcpOwogCkBAIC05MywxMyArOTMsMTMgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAgICAgLy8gRklYTUU6IEdldCByaWQgb2YgdGhlc2UuIFRoZSBvbmx5IGNh
bGxlciBpbW1lZGlhdGVseSBkZXNlcmlhbGl6ZXMgdGhlIHJlc3VsdCwgc28gaXQncyBhIHZlcnkg
cm91bmRhYm91dCB3YXkgdG8gY3JlYXRlIGEgSlNWYWx1ZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bWJlclZhbHVlKGRvdWJsZSB2YWx1ZSk7Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB1bmRlZmluZWRWYWx1ZSgp
OworICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBudW1iZXJWYWx1ZShkb3Vi
bGUgdmFsdWUpOworICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB1bmRlZmlu
ZWRWYWx1ZSgpOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IGNyZWF0ZUZyb21XaXJlQnl0ZXMoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRh
KQorICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGVGcm9tV2lyZUJ5
dGVzKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGRhdGEpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGRhdGEpKTsKICAgICB9CiAgICAg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB0b1dpcmVCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNFdmVu
dExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNFdmVudExpc3Rl
bmVyLmgKaW5kZXggMjBjYjk2OWUwNDIyM2Y2ODcxNzhjY2RmNTJlYzUzYWZjNjJmMWNiYS4uZjNl
OTg0MzdmYmFhZDc5YTJjYjUzM2RiYjgzODE0MzM2MWYzYTUzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVuZXIuaApAQCAtMzgsNyArMzgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgT2JqQ0V2ZW50TGlzdGVuZXIgOiBwdWJs
aWMgRXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIGlkPERPTUV2
ZW50TGlzdGVuZXI+IE9iakNMaXN0ZW5lcjsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8T2Jq
Q0V2ZW50TGlzdGVuZXI+IHdyYXAoT2JqQ0xpc3RlbmVyKTsKKyAgICAgICAgc3RhdGljIFJlZjxP
YmpDRXZlbnRMaXN0ZW5lcj4gd3JhcChPYmpDTGlzdGVuZXIpOwogCiAgICAgICAgIHN0YXRpYyBj
b25zdCBPYmpDRXZlbnRMaXN0ZW5lciogY2FzdChjb25zdCBFdmVudExpc3RlbmVyKiBsaXN0ZW5l
cikKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9P
YmpDRXZlbnRMaXN0ZW5lci5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ0V2
ZW50TGlzdGVuZXIubW0KaW5kZXggYzhkYjI1NDkyZDBlNjQ1MTBiYjA5OTFmZDcwOTYzYzJkZjlh
OGI2OC4uMDk5ZDQ1NWMwY2E1YjQ3NTg3NDQ5N2VkZjI5ZTI3MTZiMWY0MDZjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNFdmVudExpc3RlbmVyLm1tCkBAIC00
OCwxMiArNDgsMTIgQEAgT2JqQ0V2ZW50TGlzdGVuZXIqIE9iakNFdmVudExpc3RlbmVyOjpmaW5k
KE9iakNMaXN0ZW5lciBsaXN0ZW5lcikKICAgICByZXR1cm4gbWFwLT5nZXQobGlzdGVuZXIpOwog
fQogCi1QYXNzUmVmUHRyPE9iakNFdmVudExpc3RlbmVyPiBPYmpDRXZlbnRMaXN0ZW5lcjo6d3Jh
cChPYmpDTGlzdGVuZXIgbGlzdGVuZXIpCitSZWY8T2JqQ0V2ZW50TGlzdGVuZXI+IE9iakNFdmVu
dExpc3RlbmVyOjp3cmFwKE9iakNMaXN0ZW5lciBsaXN0ZW5lcikKIHsKICAgICBSZWZQdHI8T2Jq
Q0V2ZW50TGlzdGVuZXI+IHdyYXBwZXIgPSBmaW5kKGxpc3RlbmVyKTsKICAgICBpZiAod3JhcHBl
cikKLSAgICAgICAgcmV0dXJuIHdyYXBwZXI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmpD
RXZlbnRMaXN0ZW5lcihsaXN0ZW5lcikpOworICAgICAgICByZXR1cm4gd3JhcHBlci5yZWxlYXNl
Tm9uTnVsbCgpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9iakNFdmVudExpc3RlbmVyKGxp
c3RlbmVyKSk7CiB9CiAKIE9iakNFdmVudExpc3RlbmVyOjpPYmpDRXZlbnRMaXN0ZW5lcihPYmpD
TGlzdGVuZXIgbGlzdGVuZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggODFhMzcyMGY4MTc5NmRkM2RmNzk4
NzdkN2M2MGZiYjk5NmYzOTZjMS4uY2MwNzdiMzEwMjQzZThjMDRhNjg0N2Y3MTMxODBhMGQ1YjBl
ZTQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZp
bHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05v
ZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtMzksOSArMzksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBjbGFzcyBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBOb2RlRmlsdGVy
Q29uZGl0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iakNO
b2RlRmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoaWQgPERPTU5vZGVGaWx0ZXI+IGZpbHRlcikKKyAg
ICAgICAgc3RhdGljIFJlZjxPYmpDTm9kZUZpbHRlckNvbmRpdGlvbj4gY3JlYXRlKGlkIDxET01O
b2RlRmlsdGVyPiBmaWx0ZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24oZmlsdGVyKSk7CisgICAgICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbihmaWx0ZXIpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSos
IE5vZGUqKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253364</attachid>
            <date>2015-05-18 21:40:41 -0700</date>
            <delta_ts>2015-05-18 22:55:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-144981-20150519134037.patch</filename>
            <type>text/plain</type>
            <size>20701</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMxNjEwZmFmOTA4ZTM0
OWQwNTVmNzI2ZTgxMDAzNThlMDA5MTY5ZC4uZGU0NmZjZjJkZjY2MmY4MWMyYTA5NTNhYzcwOGI1
MDU4NDY0NjdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTA1LTE4ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgUmVmIGlu
c3RlYWQgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlL2JpbmRpbmdzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ5ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBcyBhIHN0ZXAgdG8gcHVyZ2UgUGFzc1JlZlB0
ciwgcmVtb3ZlIFBhc3NSZWZQdHIgaW4gV2ViQ29yZS9iaW5kaW5ncy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nb2Jq
ZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpHT2Jq
ZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9nb2Jq
ZWN0L0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdPYmplY3RY
UGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdFRhc2suY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpKU0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xh
enlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTGF6eUV2ZW50TGlzdGVu
ZXI6OmNyZWF0ZUZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNMYXp5RXZlbnRMaXN0ZW5l
cjo6Y3JlYXRlRm9yRE9NV2luZG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xhenlFdmVu
dExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmg6
CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpKU05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6bnVtYmVyVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlOjp1bmRlZmluZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU6Om51bGxWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5oOgor
ICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVuZXIubW06CisgICAgICAgIChX
ZWJDb3JlOjpPYmpDRXZlbnRMaXN0ZW5lcjo6d3JhcCk6CisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6T2JqQ05vZGVG
aWx0ZXJDb25kaXRpb246OmNyZWF0ZSk6CisKIDIwMTUtMDUtMTggIENzYWJhIE9zenRyb2dvbsOh
YyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdW5pbml0aWFsaXplZCB3YXJuaW5n
cyBpbiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlv
bi5oCmluZGV4IDFkMjFiZjdiMGIzMzdmZjU3MTk2NGZlZWIwZWQ5ZjczN2MyZjJjZWQuLjkxMWVk
NzNlM2JmNjNlZGEzMzJlNDkzYTI4YTM0OGIxN2FjYjE1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0
aW9uLmgKQEAgLTMyLDkgKzMyLDkgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIEdPYmplY3ROb2RlRmls
dGVyQ29uZGl0aW9uIDogcHVibGljIE5vZGVGaWx0ZXJDb25kaXRpb24gewogcHVibGljOgogCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24+IGNyZWF0ZShX
ZWJLaXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIpCisgICAgc3RhdGljIFJlZjxHT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbj4gY3JlYXRlKFdlYktpdERPTU5vZGVGaWx0ZXIqIGZpbHRlcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24o
ZmlsdGVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdPYmplY3ROb2RlRmlsdGVy
Q29uZGl0aW9uKGZpbHRlcikpOwogICAgIH0KIAogICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9k
ZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdFhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmgKaW5kZXggNjZj
MTFhZWNlOTVlMzViNzgxNzJmYzNhZDkyNTU3MjRlN2FjODAxYi4uZWFhMzVmOWRlMzc5MzM5ZTJj
ZjAxZmI2YmU4MTA1MDAxM2I3NjAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmgKQEAgLTI5LDkgKzI5LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR09iamVjdFhQYXRoTlNSZXNvbHZlciA6IHB1
YmxpYyBYUGF0aE5TUmVzb2x2ZXIgewogcHVibGljOgogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
R09iamVjdFhQYXRoTlNSZXNvbHZlcj4gY3JlYXRlKFdlYktpdERPTVhQYXRoTlNSZXNvbHZlciog
cmVzb2x2ZXIpCisgICAgc3RhdGljIFJlZjxHT2JqZWN0WFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUo
V2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlcikKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgR09iamVjdFhQYXRoTlNSZXNvbHZlcihyZXNvbHZlcikpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHT2JqZWN0WFBhdGhOU1Jlc29sdmVyKHJlc29sdmVyKSk7
CiAgICAgfQogCiAgICAgdmlydHVhbCB+R09iamVjdFhQYXRoTlNSZXNvbHZlcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwCmluZGV4IDU0ZWIzMzExNjNkZTY4Yzk2N2ExYjRjM2MxOWU2NWJmNWQ0YzQ5Y2YuLjA3ZDIy
ZGY2ZjZiYWQ1MzRhM2RmMDliYmUxNGY0ZmQyMjEyMDg0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTQy
LDE4ICs0MiwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKLVBhc3NSZWZQdHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorUmVmUHRyPEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaXNVbmRlZmlu
ZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgSlNPYmplY3QqIHJlc29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7CiAgICAg
aWYgKCFyZXNvbHZlck9iamVjdCkgewogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQ
RV9NSVNNQVRDSF9FUlIpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlcihleGVjLCByZXNvbHZlck9iamVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52bUVudHJ5R2xv
YmFsT2JqZWN0KCkpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIoZXhlYywgcmVzb2x2ZXJPYmplY3QsIGFzSlNET01XaW5kb3coZXhlYy0+dm1FbnRy
eUdsb2JhbE9iamVjdCgpKSkpOwogfQogCiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY3VzdG9tUmVzb2x2
ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAppbmRleCA3YTQwMmEwNDRlM2Uw
YTliODg4MDA1NzcyNTc1ZGZjMjA1OTdjNDUyLi5hZGJjNjc3NjE5Y2EzNTU1YzcyNGIzODk5OTEx
NjRhYmE1N2IyMmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIgOiBwdWJsaWMgWFBhdGhO
U1Jlc29sdmVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUp
OworICAgICAgICBzdGF0aWMgUmVmUHRyPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOwogICAgICAgICAKICAgICAgICAgdmlydHVh
bCB+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3RUYXNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHAKaW5kZXggMjQyMDUwYmM1M2Fj
OWQ4Mjc2NWM3ZjM5ZWYzOGFkYzU0MGEzMGZlNC4uMWYyMWZjNjZmNTAxZTAwYTQwNzAyMGZjMzUy
NDZiNTQ0NWVhZTc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3RUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdFRhc2suY3BwCkBAIC0zOCw5ICszOCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSlNHbG9iYWxPYmplY3RDYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBSZWZD
b3VudGVkPEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2s+LCBwcml2YXRlIEFjdGl2ZURPTUNhbGxiYWNr
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0dsb2JhbE9iamVjdENhbGxiYWNr
PiBjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxNaWNy
b3Rhc2s+IHRhc2spCisgICAgc3RhdGljIFJlZjxKU0dsb2JhbE9iamVjdENhbGxiYWNrPiBjcmVh
dGUoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxNaWNyb3Rhc2s+
IHRhc2spCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTR2xvYmFsT2JqZWN0
Q2FsbGJhY2soZ2xvYmFsT2JqZWN0LCB0YXNrKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2soZ2xvYmFsT2JqZWN0LCB0YXNrKSk7CiAgICAgfQog
CiAgICAgdm9pZCBjYWxsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFu
ZGxlci5oCmluZGV4IDU1ZDJkNTNlMGI5MTNhOTc2NDU0OWYyOGNhZjJjYzM4OGFmMzA1NmEuLmRm
ZTEzYzJmYWI1NTA2MzIyNGI0NWZlZGU2MTJmMGE5YWFlNjg1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEpTRXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0
ZW5lciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNFcnJvckhhbmRsZXI+IGNy
ZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9v
bCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKKyAgICBzdGF0aWMgUmVmPEpT
RXJyb3JIYW5kbGVyPiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmpl
Y3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTRXJyb3JIYW5kbGVyKGxpc3RlbmVy
LCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgd29ybGQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSlNFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCB3b3Js
ZCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkpTRXJyb3JIYW5kbGVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGNm
MTMzN2YwMTM4YmIwZDY3YjZhZjc2YjY5ODE0MTg5MjQyYWE0ZjMuLjY2NjFhNjA0N2NiMTgxM2Rl
MzZhZjk1MDlmZTU0N2NjZGJkNDAyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RhdGlj
IGNvbnN0IFN0cmluZyYgZXZlbnRQYXJhbWV0ZXJOYW1lKGJvb2wgaXNTVkdFdmVudCkKICAgICBy
ZXR1cm4gaXNTVkdFdmVudCA/IGV2dFN0cmluZyA6IGV2ZW50U3RyaW5nOwogfQogCi1QYXNzUmVm
UHRyPEpTTGF6eUV2ZW50TGlzdGVuZXI+IEpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZUZvck5v
ZGUoQ29udGFpbmVyTm9kZSYgbm9kZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkKK1JlZlB0cjxKU0xhenlFdmVu
dExpc3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGVGb3JOb2RlKENvbnRhaW5lck5v
ZGUmIG5vZGUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgYXR0cmlidXRlVmFsdWUpCiB7CiAgICAgaWYgKGF0dHJpYnV0ZVZhbHVlLmlzTnVs
bCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE1OSwxMiArMTU5LDEyIEBAIFBhc3NS
ZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRm9y
Tm9kZShDb250YWluZXJOb2RlCiAgICAgICAgIHNvdXJjZVVSTCA9IG5vZGUuZG9jdW1lbnQoKS51
cmwoKS5zdHJpbmcoKTsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTTGF6eUV2
ZW50TGlzdGVuZXIoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKS5zdHJpbmcoKSwKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBKU0xhenlFdmVudExpc3RlbmVyKGF0dHJpYnV0ZU5hbWUubG9jYWxO
YW1lKCkuc3RyaW5nKCksCiAgICAgICAgIGV2ZW50UGFyYW1ldGVyTmFtZShub2RlLmlzU1ZHRWxl
bWVudCgpKSwgYXR0cmlidXRlVmFsdWUsCiAgICAgICAgICZub2RlLCBzb3VyY2VVUkwsIHBvc2l0
aW9uLCBudWxscHRyLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkpOwogfQogCi1QYXNzUmVmUHRy
PEpTTGF6eUV2ZW50TGlzdGVuZXI+IEpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZUZvckRPTVdp
bmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlVmFsdWUpCitSZWZQdHI8SlNMYXp5RXZlbnRMaXN0
ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRm9yRE9NV2luZG93KEZyYW1lJiBmcmFt
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBhdHRyaWJ1dGVWYWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlVmFsdWUuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTcyLDcgKzE3Miw3IEBAIFBhc3NSZWZQdHI8SlNM
YXp5RXZlbnRMaXN0ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRm9yRE9NV2luZG93
KEZyYW1lJiBmCiAgICAgaWYgKCFmcmFtZS5zY3JpcHQoKS5jYW5FeGVjdXRlU2NyaXB0cyhBYm91
dFRvRXhlY3V0ZVNjcmlwdCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBKU0xhenlFdmVudExpc3RlbmVyKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1l
KCkuc3RyaW5nKCksCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNMYXp5RXZlbnRMaXN0ZW5l
cihhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpLnN0cmluZygpLAogICAgICAgICBldmVudFBhcmFt
ZXRlck5hbWUoZnJhbWUuZG9jdW1lbnQoKS0+aXNTVkdEb2N1bWVudCgpKSwgYXR0cmlidXRlVmFs
dWUsCiAgICAgICAgIG51bGxwdHIsIGZyYW1lLmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpLCBm
cmFtZS5zY3JpcHQoKS5ldmVudEhhbmRsZXJQb3NpdGlvbigpLAogICAgICAgICB0b0pTRE9NV2lu
ZG93KCZmcmFtZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpLCBtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZl
bnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0
ZW5lci5oCmluZGV4IDMxOTAwMTc4YzIwNjhkZWJjZTIzNjhjMTU5YTE4M2M4YjgyMWJiM2IuLmQ5
MThkNzZlODI1M2VlYjU4M2ZiYmNhYjc4ODk0ODQ5MTNlMjE0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmgKQEAgLTMyLDggKzMyLDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSlNMYXp5RXZlbnRMaXN0ZW5lciBm
aW5hbCA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlRm9yTm9kZShDb250YWlu
ZXJOb2RlJiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSk7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTTGF6
eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUZvckRPTVdpbmRvdyhGcmFtZSYsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlVmFsdWUp
OworICAgICAgICBzdGF0aWMgUmVmUHRyPEpTTGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUZvck5v
ZGUoQ29udGFpbmVyTm9kZSYsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlVmFsdWUpOworICAgICAgICBzdGF0aWMgUmVmUHRy
PEpTTGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUZvckRPTVdpbmRvdyhGcmFtZSYsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRl
VmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgfkpTTGF6eUV2ZW50TGlzdGVuZXIoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaAppbmRleCBk
N2JkODQ4M2I2YWRiNDJlMGVkMTdlYzlmZTlmYTNlOTRjZmUyYWE3Li5jYjcxM2Y3OTgwNGFkMjgw
YmRhOWVkOGQ0MGE4YzU0OGFlZDQxNGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaApAQCAtMzksOSArMzksOSBAQCBjbGFzcyBKU0RPTUds
b2JhbE9iamVjdDsKIAogY2xhc3MgSlNNdXRhdGlvbkNhbGxiYWNrIDogcHVibGljIE11dGF0aW9u
Q2FsbGJhY2ssIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNNdXRhdGlvbkNhbGxiYWNrPiBjcmVhdGUoSlNDOjpKU09iamVjdCogY2Fs
bGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgc3RhdGljIFJlZjxK
U011dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSlNNdXRhdGlvbkNhbGxiYWNrKGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNNdXRhdGlvbkNhbGxiYWNrKGNhbGxiYWNrLCBnbG9i
YWxPYmplY3QpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5KU011dGF0aW9uQ2FsbGJhY2soKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRp
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmgKaW5kZXggYWU4MjE5MTM2YmMzNDZjOGRlMDAwNzFkMmYwYzRmMzllNjAxNmZmZS4uYTZhMWJl
MzE3ODk5YTVkMTFhZjczMjJlMDkyNmY2NDIxMTY4MDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTM0LDkgKzM0LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSlNOb2RlRmlsdGVyQ29uZGl0aW9u
IDogcHVibGljIE5vZGVGaWx0ZXJDb25kaXRpb24gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNOb2RlRmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoSlNDOjpWTSYgdm0s
IE5vZGVGaWx0ZXIqIG93bmVyLCBKU0M6OkpTVmFsdWUgZmlsdGVyKQorICAgICAgICBzdGF0aWMg
UmVmPEpTTm9kZUZpbHRlckNvbmRpdGlvbj4gY3JlYXRlKEpTQzo6Vk0mIHZtLCBOb2RlRmlsdGVy
KiBvd25lciwgSlNDOjpKU1ZhbHVlIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBKU05vZGVGaWx0ZXJDb25kaXRpb24odm0sIG93bmVyLCBmaWx0ZXIp
KTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTTm9kZUZpbHRlckNvbmRpdGlv
bih2bSwgb3duZXIsIGZpbHRlcikpOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAK
aW5kZXggZDk2ZWQ3N2QwYTU5NDA0M2RkZjkzNmNiOTJiOTgwMDRkYjVjNzZkNy4uNjk5NDg4MDY0
MzQ5NWRhNTRjOTI4ZmUzMGY4NzE1YmFhOTIzNjVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0yNjUwLDkgKzI2
NTAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpBcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXk+IFNlcmlhbGl6ZWRTY3JpcAogICAgIHJldHVybiBjb250ZW50czsKIH0K
IAotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdl
UG9ydEFycmF5KiBtZXNzYWdlUG9ydHMsIEFycmF5QnVmZmVyQXJyYXkqIGFycmF5QnVmZmVycywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTZXJpYWxpemF0aW9uRXJyb3JNb2RlIHRocm93RXhjZXB0aW9ucykKK1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgTWVzc2FnZVBvcnRBcnJheSogbWVzc2FnZVBvcnRz
LCBBcnJheUJ1ZmZlckFycmF5KiBhcnJheUJ1ZmZlcnMsIFNlcmlhbGl6YXRpb25FcnJvck1vZGUg
dGhyb3dFeGNlcHRpb25zKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CiAgICAgVmVj
dG9yPFN0cmluZz4gYmxvYlVSTHM7CkBAIC0yNjY3LDMyICsyNjY1LDMyIEBAIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsCiAgICAgICAgIG1heWJlVGhyb3dFeGNlcHRpb25JZlNlcmlhbGl6YXRpb25G
YWlsZWQoZXhlYywgY29kZSk7CiAKICAgICBpZiAoIXNlcmlhbGl6YXRpb25EaWRDb21wbGV0ZVN1
Y2Nlc3NmdWxseShjb2RlKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVm
ZmVyLCBibG9iVVJMcywgV1RGOjptb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyLCBibG9i
VVJMcywgV1RGOjptb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkpKTsKIH0KIAotUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQorUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAg
VmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBpZiAoIUNsb25lU2VyaWFsaXplcjo6c2VyaWFs
aXplKHN0cmluZywgYnVmZmVyKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShi
dWZmZXIpKTsKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVyVmFsdWUo
ZG91YmxlIHZhbHVlKQorUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpudW1iZXJWYWx1ZShkb3VibGUgdmFsdWUpCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGJ1ZmZlcjsKICAgICBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZU51bWJlcih2YWx1ZSwgYnVm
ZmVyKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZm
ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVm
ZmVyKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKCkKK1JlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKQogewogICAgIFZlY3Rvcjx1
aW50OF90PiBidWZmZXI7CiAgICAgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemVVbmRlZmluZWQo
YnVmZmVyKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShi
dWZmZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUo
YnVmZmVyKSk7CiB9CiAjZW5kaWYKIApAQCAtMjc0MiwxMCArMjc0MCwxMCBAQCBKU1ZhbHVlUmVm
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmIGRlc3RpbmF0
aW9uQ29udGV4dCwgSgogICAgIHJldHVybiB0b1JlZihleGVjLCB2YWx1ZSk7CiB9CiAKLVBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxW
YWx1ZSgpCitSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6
Om51bGxWYWx1ZSgpCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CiB9CiAKIHZvaWQg
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjptYXliZVRocm93RXhjZXB0aW9uSWZTZXJpYWxpemF0aW9u
RmFpbGVkKEV4ZWNTdGF0ZSogZXhlYywgU2VyaWFsaXphdGlvblJldHVybkNvZGUgY29kZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgK
aW5kZXggZDM2NmIzMDY3YzEyNmJlZDQwZTM5ZDdlYmI2ZDgyNjRkNTg5MDhiYS4uMjE2MTVhMTJj
ZWMyYTdkN2RhNTUzZGU5NDA5NTAwNTM4OTBmNzc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTY3LDE1ICs2NywxNSBA
QCBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgOgogICAgIHB1YmxpYyBSZWZDb3VudGVkPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gewogI2VuZGlmCiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkqLCBBcnJheUJ1ZmZlckFy
cmF5KiwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSA9IFRocm93aW5nKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBNZXNzYWdlUG9ydEFycmF5KiwgQXJyYXlCdWZmZXJBcnJh
eSosIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgPSBUaHJvd2luZyk7CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShjb25z
dCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGFkb3B0KFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJik7Cisg
ICAgc3RhdGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90
PiYgYnVmZmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoYnVmZmVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bGxWYWx1ZSgpOworICAgIHN0YXRpYyBSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBudWxsVmFsdWUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEpT
Qzo6SlNWYWx1ZSBkZXNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBNZXNzYWdlUG9ydEFycmF5KiwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSA9IFRocm93aW5n
KTsKIApAQCAtOTMsMTMgKzkzLDEzIEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoZXNlLiBUaGUgb25seSBjYWxsZXIg
aW1tZWRpYXRlbHkgZGVzZXJpYWxpemVzIHRoZSByZXN1bHQsIHNvIGl0J3MgYSB2ZXJ5IHJvdW5k
YWJvdXQgd2F5IHRvIGNyZWF0ZSBhIEpTVmFsdWUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBudW1iZXJWYWx1ZShkb3VibGUgdmFsdWUpOwotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdW5kZWZpbmVkVmFsdWUoKTsKKyAg
ICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbnVtYmVyVmFsdWUoZG91YmxlIHZh
bHVlKTsKKyAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdW5kZWZpbmVkVmFs
dWUoKTsKICNlbmRpZgogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBjcmVhdGVGcm9tV2lyZUJ5dGVzKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKKyAg
ICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlRnJvbVdpcmVCeXRlcyhj
b25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShkYXRhKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShkYXRhKSk7CiAgICAgfQogICAgIGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgdG9XaXJlQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0
ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5o
CmluZGV4IDIwY2I5NjllMDQyMjNmNjg3MTc4Y2NkZjUyZWM1M2FmYzYyZjFjYmEuLmYzZTk4NDM3
ZmJhYWQ3OWEyY2I1MzNkYmI4MzgxNDMzNjFmM2E1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL09iakNFdmVudExpc3RlbmVyLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE9iakNFdmVudExpc3RlbmVyIDogcHVibGljIEV2
ZW50TGlzdGVuZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBpZDxET01FdmVudExp
c3RlbmVyPiBPYmpDTGlzdGVuZXI7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iakNFdmVu
dExpc3RlbmVyPiB3cmFwKE9iakNMaXN0ZW5lcik7CisgICAgICAgIHN0YXRpYyBSZWY8T2JqQ0V2
ZW50TGlzdGVuZXI+IHdyYXAoT2JqQ0xpc3RlbmVyKTsKIAogICAgICAgICBzdGF0aWMgY29uc3Qg
T2JqQ0V2ZW50TGlzdGVuZXIqIGNhc3QoY29uc3QgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCiAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ0V2
ZW50TGlzdGVuZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNFdmVudExp
c3RlbmVyLm1tCmluZGV4IGM4ZGIyNTQ5MmQwZTY0NTEwYmIwOTkxZmQ3MDk2M2MyZGY5YThiNjgu
LjA5OWQ0NTVjMGNhNWI0NzU4NzQ0OTdlZGYyOWUyNzE2YjFmNDA2YzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVuZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5tbQpAQCAtNDgsMTIg
KzQ4LDEyIEBAIE9iakNFdmVudExpc3RlbmVyKiBPYmpDRXZlbnRMaXN0ZW5lcjo6ZmluZChPYmpD
TGlzdGVuZXIgbGlzdGVuZXIpCiAgICAgcmV0dXJuIG1hcC0+Z2V0KGxpc3RlbmVyKTsKIH0KIAot
UGFzc1JlZlB0cjxPYmpDRXZlbnRMaXN0ZW5lcj4gT2JqQ0V2ZW50TGlzdGVuZXI6OndyYXAoT2Jq
Q0xpc3RlbmVyIGxpc3RlbmVyKQorUmVmPE9iakNFdmVudExpc3RlbmVyPiBPYmpDRXZlbnRMaXN0
ZW5lcjo6d3JhcChPYmpDTGlzdGVuZXIgbGlzdGVuZXIpCiB7CiAgICAgUmVmUHRyPE9iakNFdmVu
dExpc3RlbmVyPiB3cmFwcGVyID0gZmluZChsaXN0ZW5lcik7CiAgICAgaWYgKHdyYXBwZXIpCi0g
ICAgICAgIHJldHVybiB3cmFwcGVyOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgT2JqQ0V2ZW50
TGlzdGVuZXIobGlzdGVuZXIpKTsKKyAgICAgICAgcmV0dXJuIHdyYXBwZXIucmVsZWFzZU5vbk51
bGwoKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmpDRXZlbnRMaXN0ZW5lcihsaXN0ZW5l
cikpOwogfQogCiBPYmpDRXZlbnRMaXN0ZW5lcjo6T2JqQ0V2ZW50TGlzdGVuZXIoT2JqQ0xpc3Rl
bmVyIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9P
YmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9P
YmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDgxYTM3MjBmODE3OTZkZDNkZjc5ODc3ZDdj
NjBmYmI5OTZmMzk2YzEuLmNjMDc3YjMxMDI0M2U4YzA0YTY4NDdmNzEzMTgwYTBkNWIwZWU0OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJD
b25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmls
dGVyQ29uZGl0aW9uLmgKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgY2xhc3MgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJsaWMgTm9kZUZpbHRlckNvbmRp
dGlvbiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxPYmpDTm9kZUZp
bHRlckNvbmRpdGlvbj4gY3JlYXRlKGlkIDxET01Ob2RlRmlsdGVyPiBmaWx0ZXIpCisgICAgICAg
IHN0YXRpYyBSZWY8T2JqQ05vZGVGaWx0ZXJDb25kaXRpb24+IGNyZWF0ZShpZCA8RE9NTm9kZUZp
bHRlcj4gZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGZpbHRlcikpOworICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24oZmlsdGVyKSk7CiAgICAgICAgIH0K
IAogICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2Rl
KikgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>