<?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>60267</bug_id>
          
          <creation_ts>2011-05-05 08:19:26 -0700</creation_ts>
          <short_desc>[Chromium] Web Inspector: provide initial implementation of worker inspector transport</short_desc>
          <delta_ts>2011-05-23 08:08:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>58541</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dimich</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>levin</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>398720</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-05 08:19:26 -0700</bug_when>
    <thetext>[Chromium] Web Inspector: provide initial implementation of worker inspector transport</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398727</commentid>
    <comment_count>1</comment_count>
      <attachid>92418</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-05 08:29:13 -0700</bug_when>
    <thetext>Created attachment 92418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398730</commentid>
    <comment_count>2</comment_count>
      <attachid>92419</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-05 08:32:31 -0700</bug_when>
    <thetext>Created attachment 92419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405061</commentid>
    <comment_count>3</comment_count>
      <attachid>92419</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-05-17 08:15:30 -0700</bug_when>
    <thetext>Comment on attachment 92419
Patch

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

&gt; Source/WebKit/chromium/public/WebWorkerDevToolsAgent.h:42
&gt; +    virtual void connect(WebDevToolsFrontend*) = 0;

I&apos;d suggest that you inline these methods into WebWorker + inline corresponding client methods into WebWorkerClient. I understand that WebWorkerImpl.cpp will get all the code from the WebWorkerDevToolsAgentImpl below, but I think both worker and worker debugger interfaces are thin enough to be combined in a single class. Adding David (+Dimich) to get the Worker&apos;s perspective.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405186</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-05-17 11:13:37 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;d suggest that you inline these methods into WebWorker + inline corresponding client methods into WebWorkerClient. I understand that WebWorkerImpl.cpp will get all the code from the WebWorkerDevToolsAgentImpl below, but I think both worker and worker debugger interfaces are thin enough to be combined in a single class.

I agree these interfaces, as in this patch, look thin enough to just add them into WebWorker/WebWorkerClient (or, actually, WebCommonWorkerClient),  with some method renaming. (WebWorker::connect() would be too ambiguous)

We already have methods like WebCommonWorkerClient::postConsoleMessageToWorkerObject() - I think these would be consumed by these new interfaces as well, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405192</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-17 11:32:02 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I&apos;d suggest that you inline these methods into WebWorker + inline corresponding client methods into WebWorkerClient. I understand that WebWorkerImpl.cpp will get all the code from the WebWorkerDevToolsAgentImpl below, but I think both worker and worker debugger interfaces are thin enough to be combined in a single class.
&gt; 
&gt; I agree these interfaces, as in this patch, look thin enough to just add them into WebWorker/WebWorkerClient (or, actually, WebCommonWorkerClient),  with some method renaming. (WebWorker::connect() would be too ambiguous)
&gt; 
&gt; We already have methods like WebCommonWorkerClient::postConsoleMessageToWorkerObject() - I think these would be consumed by these new interfaces as well, right?
It depends on how we proceed with console implementation in worker context. Once we have inspector agents in WorkerContext it may make sense to collect the messages in the worker process and send them to the page inspector only when inspector window is opened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405207</commentid>
    <comment_count>6</comment_count>
      <attachid>92419</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-05-17 11:56:56 -0700</bug_when>
    <thetext>Comment on attachment 92419
Patch

Per discussion here, the patch could use some re-factoring. r- for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407133</commentid>
    <comment_count>7</comment_count>
      <attachid>94228</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-20 08:57:54 -0700</bug_when>
    <thetext>Created attachment 94228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407174</commentid>
    <comment_count>8</comment_count>
      <attachid>94228</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-20 10:22:01 -0700</bug_when>
    <thetext>Comment on attachment 94228
Patch

Attachment 94228 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/8719421</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407949</commentid>
    <comment_count>9</comment_count>
      <attachid>94422</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-23 07:18:56 -0700</bug_when>
    <thetext>Created attachment 94422
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407978</commentid>
    <comment_count>10</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-23 08:08:20 -0700</bug_when>
    <thetext>Committed r87074: &lt;http://trac.webkit.org/changeset/87074&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92418</attachid>
            <date>2011-05-05 08:29:13 -0700</date>
            <delta_ts>2011-05-05 08:32:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60267-20110505192910.patch</filename>
            <type>text/plain</type>
            <size>28962</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU4NTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
M2MxY2M1MjM4MTEwOTU1ZGQ5ODg1NTNkYmMzYTRhZGQzNTFlN2I3YS4uMDFmMjY3N2QzYTQ1YjIy
NWQxNTNlMjI2ZjA3OGMzNjYwZWExMjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1NyBAQAorMjAxMS0wNS0wNSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQ2hyb21pdW1dIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlv
biBvZiB3b3JrZXIgaW5zcGVjdG9yIHRyYW5zcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAyNjcKKworICAgICAgICBBZGRlZCBXZWJXb3JrZXJE
ZXZUb29sc0FnZW50IHRoYXQgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSB3b3JrZXIgaW5zcGVjdG9y
IG9uCisgICAgICAgIHRoZSBXb3JrZXJDb250ZXh0IHNpZGUuIEl0IHNob3VsZCBiZSBpbWVwbGVt
ZW50ZWQgYnkgdGhlIGVtYmVkZGVyIGFuZCBzaG91bGQKKyAgICAgICAgZm9yd2FyZCBjYWxscyB0
byB0aGUgY29ycmVzcG9uZGluZyBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgd29ya2VyIHByb2Nlc3Mg
d2hlcmUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gaXMgcHJvdmlkZWQgYnkgV2ViV29ya2VySW1w
bC4gVGhlIHdvcmtlciBkZXZ0b29scyBhZ2VudCBtYXkKKyAgICAgICAgY29tbXVuaWNhdGUgd2l0
aCBjb3JyZXNwb25kaW5nIGluc3BlY3RvciBmcm9udC1lbmQgYnkgbWVhbnMgb2YgV2ViRGV2VG9v
bHNGcm9udGVuZAorICAgICAgICBwYXNzZWQgdG8gY29ubmVjdCBtZXRob2QuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJXb3JrZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViV29ya2VyOjpkZXZ0b29sc0FnZW50KToKKyAgICAgICAgKiBwdWJsaWMvV2ViV29y
a2VyRGV2VG9vbHNBZ2VudC5oOiBBZGRlZC4gSW50ZXJmYWNlIHRvIHRoZSBXb3JrZXJDb250ZXh0
IGluc3BlY3Rvci4KKyAgICAgICAgUHJvdmlkZXMgc3RhcnQvc3RvcCBpbnNwZWN0aW9uIGZ1bmN0
aW9uYWxpdHkgYW5kIHRyYW5zcG9ydCBmb3IgbWVzc2FnZXMgc2VudCBmcm9tCisgICAgICAgIGlu
c3BlY3RvciBmcm9udC1lbmQgdGhyb3VnaCBJbnNwZWN0b3JXb3JrZXJBZ2VudCB0byB0aGUgaW5z
cGVjdG9yIGFnZW50cyBvbiB0aGUgV29ya2VyQ29udGV4dAorICAgICAgICBzaWRlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJXb3JrZXJEZXZUb29sc0FnZW50Ojp+V2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dCk6CisgICAgICAgICogc3JjL1dlYldvcmtlckJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
V29ya2VyQmFzZTo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6Omluc3BlY3Rv
clByb3h5KTogUmV0dXJuIFdlYkRldlRvb2xzQWdlbnRJbXBsIGluc3RhbmNlCisgICAgICAgIHRo
YXQgZ2l2ZXMgYWNjZXNzIHRvIHRoZSBjb3JyZXNwb25kaW5nIHdvcmtlciBpbnNwZWN0b3IgYWdl
bnRzLgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmg6CisgICAgICAgICogc3Jj
L1dlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsOjpXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsOjp+V2ViV29ya2Vy
RGV2VG9vbHNBZ2VudEltcGwpOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0VG9Xb3JrZXJDb250
ZXh0SW5zcGVjdG9yVGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckRldlRvb2xzQWdl
bnRJbXBsOjpjb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dEltcGw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpkaXNwYXRjaE9uSW5zcGVjdG9y
QmFja2VuZFRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1w
bDo6ZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3Jr
ZXJEZXZUb29sc0FnZW50SW1wbDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kVGFzayk6CisgICAgICAg
IChXZWJLaXQ6OldlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsOjpzZW5kTWVzc2FnZVRvRnJvbnRl
bmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbDo6d29ya2Vy
VGhyZWFkKToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGwuaDogQWRk
ZWQuCisgICAgICAgICogc3JjL1dlYldvcmtlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJXb3JrZXJJbXBsOjpzdGFydFdvcmtlckNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJX
b3JrZXJJbXBsOjpkZXZ0b29sc0FnZW50KToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VySW1wbC5o
OgorICAgICAgICAqIHNyYy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsLmNwcDogQWRk
ZWQuIFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eSBpbXBsZW1lbnRhdGlvbgorICAgICAgICB0
aGF0IHBhc3NlcyBhbGwgY2FsbHMgdG8gV2ViV29ya2VyRGV2VG9vbHNBZ2VudCBwcm92aWRlZCBi
eSB0aGUgZW1iZWRkZXIuCisgICAgICAgIChXZWJLaXQ6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQ
cm94eUltcGw6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsOjp+V29ya2VyQ29udGV4dEluc3Bl
Y3RvclByb3h5SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQ
cm94eUltcGw6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldvcmtlckNvbnRl
eHRJbnNwZWN0b3JQcm94eUltcGw6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJL
aXQ6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGw6OnNlbmRNZXNzYWdlVG9Xb3JrZXJD
b250ZXh0SW5zcGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V29ya2VyQ29udGV4dEluc3BlY3Rv
clByb3h5SW1wbDo6ZGlzcGF0Y2hPbkluc3BlY3RvckZyb250ZW5kKToKKyAgICAgICAgKiBzcmMv
V29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5SW1wbC5oOiBBZGRlZC4KKwogMjAxMS0wNS0wMyAg
SGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDNlMGIwZDkxMjNl
NDAyNjZjYzMxMWM3ZTgxZjI2ZmQ1MGZjM2VlNjkuLmNkZTY0YjA3MzBhZjhmODFlMzAzNGI2YmRi
NDU2MmQzNWU2NzA4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI5NCw2ICsy
OTQsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViV29ya2VyLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViV29ya2VyQ2xpZW50LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViV29ya2Vy
RGV2VG9vbHNBZ2VudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL3dpbi9XZWJJbnB1dEV2
ZW50RmFjdG9yeS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL3dpbi9XZWJTYW5kYm94U3Vw
cG9ydC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9y
eS5oJywKQEAgLTU3NiwxMiArNTc3LDE2IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJXb3Jr
ZXJCYXNlLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oJywKKyAgICAgICAg
ICAgICAgICAnc3JjL1dlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsLmNwcCcsCisgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbC5oJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYldvcmtlckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYldvcmtl
ckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hy
b21pdW0uaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Xb3JrZXJBc3luY0ZpbGVXcml0ZXJDaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV29ya2VyQXN5bmNGaWxlV3JpdGVyQ2hy
b21pdW0uaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJv
eHlJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9y
UHJveHlJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxi
YWNrc0JyaWRnZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV29ya2VyRmlsZVN5c3RlbUNh
bGxiYWNrc0JyaWRnZS5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dvcmtlckZpbGVXcml0ZXJD
YWxsYmFja3NCcmlkZ2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYldvcmtlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29y
a2VyLmgKaW5kZXggOTM5N2JjZGVmNTVhODZhZWZjOWFjOWIxZWIxMjdiMWI1NTQ4YzlhZC4uMDk5
Nzk2NzIwNjBmZGRiOTEzM2YyZTQ4ZTM2ODhiZWJhMjM3ZWRhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyLmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBjbGFzcyBXZWJXb3JrZXJD
bGllbnQ7CitjbGFzcyBXZWJXb3JrZXJEZXZUb29sc0FnZW50OwogCiAvLyBQcm92aWRlcyBhbiBp
bnRlcmZhY2UgdG8gdGhlIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCBmb3IgYSB3b3JrZXIuCiBj
bGFzcyBXZWJXb3JrZXIgewpAQCAtNTUsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0
IFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3b3Jr
ZXJPYmplY3REZXN0cm95ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsaWVudERlc3Ryb3ll
ZCgpID0gMDsKKworICAgIHZpcnR1YWwgV2ViV29ya2VyRGV2VG9vbHNBZ2VudCogZGV2dG9vbHNB
Z2VudCgpIHsgcmV0dXJuIDA7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZlYzhmOTkwZGI0ZmUwYWEwMmUxYjZjNTdiMTgxOGRkZDA5MzZlYjIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXb3Jr
ZXJEZXZUb29sc0FnZW50LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViV29ya2VyRGV2VG9v
bHNBZ2VudF9oCisjZGVmaW5lIFdlYldvcmtlckRldlRvb2xzQWdlbnRfaAorCituYW1lc3BhY2Ug
V2ViS2l0IHsKK2NsYXNzIFdlYkRldlRvb2xzRnJvbnRlbmQ7CitjbGFzcyBXZWJTdHJpbmc7CisK
K2NsYXNzIFdlYldvcmtlckRldlRvb2xzQWdlbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfldl
YldvcmtlckRldlRvb2xzQWdlbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KFdl
YkRldlRvb2xzRnJvbnRlbmQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdl
YlN0cmluZyYgbWVzc2FnZSkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFz
ZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5oCmluZGV4IDhm
YjAzMmU2MTdlZmRiMmYzN2JhNWE5OTExYTUyYzI1YjNiZTM5ZGEuLjJkNzUwYjcwNzY4NGZlMjg3
ZWYzOTc5ZDM4NTg2ODkxNjYyMGE0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJXb3JrZXJCYXNlLmgKQEAgLTk4LDEyICs5OCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gRXhlY3V0
ZXMgdGhlIGdpdmVuIHRhc2sgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0YXRpYyB2b2lkIGRp
c3BhdGNoVGFza1RvTWFpblRocmVhZChQYXNzT3duUHRyPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OlRhc2s+KTsKIAorICAgIFdlYkNvcmU6OldvcmtlclRocmVhZCogd29ya2VyVGhy
ZWFkKCkgeyByZXR1cm4gbV93b3JrZXJUaHJlYWQuZ2V0KCk7IH0KKwogcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgV2ViV29ya2VyQ2xpZW50KiBjbGllbnQoKSA9IDA7CiAgICAgdmlydHVhbCBXZWJD
b21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNsaWVudCgpID0gMDsKIAogICAgIHZvaWQgc2V0V29y
a2VyVGhyZWFkKFBhc3NSZWZQdHI8V2ViQ29yZTo6V29ya2VyVGhyZWFkPiB0aHJlYWQpIHsgbV93
b3JrZXJUaHJlYWQgPSB0aHJlYWQ7IH0KLSAgICBXZWJDb3JlOjpXb3JrZXJUaHJlYWQqIHdvcmtl
clRocmVhZCgpIHsgcmV0dXJuIG1fd29ya2VyVGhyZWFkLmdldCgpOyB9CiAKICAgICAvLyBTaHV0
cyBkb3duIHRoZSB3b3JrZXIgdGhyZWFkLgogICAgIHZvaWQgc3RvcFdvcmtlclRocmVhZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNw
cAppbmRleCAxMDEwYjFjYjE4NmQyMTIwMzc5MWMzNGY5Y2MwZWVlYmM0MzZlMzMwLi42NGJiNDFk
N2ZlMWU0ZTI2Mzk3YzE2MDIzYTlhYWZlZTJmNTgwOWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcApAQCAtNjEsNyArNjEsOSBA
QAogI2luY2x1ZGUgIldlYlVSTC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5jbHVk
ZSAiV2ViV29ya2VyLmgiCisjaW5jbHVkZSAiV2ViV29ya2VyRGV2VG9vbHNBZ2VudC5oIgogI2lu
Y2x1ZGUgIldlYldvcmtlckltcGwuaCIKKyNpbmNsdWRlICJXb3JrZXJDb250ZXh0SW5zcGVjdG9y
UHJveHlJbXBsLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yMDYsNiArMjA4
LDE1IEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6d29ya2VyT2JqZWN0RGVzdHJveWVkKCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcykpKTsKIH0KIAorV29ya2VyQ29udGV4
dEluc3BlY3RvclByb3h5KiBXZWJXb3JrZXJDbGllbnRJbXBsOjppbnNwZWN0b3JQcm94eSgpCit7
CisgICAgaWYgKCFtX2luc3BlY3RvclByb3h5KSB7CisgICAgICAgIGlmIChXZWJXb3JrZXJEZXZU
b29sc0FnZW50KiBkZXZ0b29sc0FnZW50ID0gbV93ZWJXb3JrZXItPmRldnRvb2xzQWdlbnQoKSkK
KyAgICAgICAgICAgIG1faW5zcGVjdG9yUHJveHkgPSBuZXcgV29ya2VyQ29udGV4dEluc3BlY3Rv
clByb3h5SW1wbChkZXZ0b29sc0FnZW50KTsKKyAgICB9CisgICAgcmV0dXJuIG1faW5zcGVjdG9y
UHJveHkuZ2V0KCk7Cit9CisKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdE1lc3NhZ2VU
b1dvcmtlck9iamVjdChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTWVzc2FnZVBvcnRD
aGFubmVsQXJyYXkmIGNoYW5uZWxzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oCmluZGV4IGE3ZGNkM2MwODY1MmIzNzE1MGEzZDkyOTE1
ZmYwY2E0NDJiM2Y3NjcuLmFiYWU0MTQzZTNlZjU4NGMyNGVmNTc1ZTk1N2Q4MWQ1OTJlNWY1OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBs
LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJGaWxlU3lzdGVtLmgiCiAjaW5jbHVk
ZSAiV2ViV29ya2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dFByb3h5LmgiCisj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC00NSw2ICs0Niw3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViV29ya2VyOworY2xh
c3MgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5SW1wbDsKIAogLy8gVGhlIHB1cnBvc2Ugb2Yg
dGhpcyBjbGFzcyBpcyB0byBwcm92aWRlIGEgV29ya2VyQ29udGV4dFByb3h5CiAvLyBpbXBsZW1l
bnRhdGlvbiB0aGF0IHdlIGNhbiBnaXZlIHRvIFdlYktpdC4gIEludGVybmFsbHksIGl0IGNvbnZl
cnRzIHRoZQpAQCAtNzMsMTMgKzc1LDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHdvcmtlck9iamVjdERl
c3Ryb3llZCgpOwogCisgICAgdmlydHVhbCBXZWJDb3JlOjpXb3JrZXJDb250ZXh0SW5zcGVjdG9y
UHJveHkqIGluc3BlY3RvclByb3h5KCk7CisKICAgICAvLyBXZWJXb3JrZXJDbGllbnQgbWV0aG9k
czoKICAgICAvLyBUaGVzZSBhcmUgY2FsbGVkIG9uIHRoZSBtYWluIFdlYktpdCB0aHJlYWQuCiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViU3RyaW5n
JiwgY29uc3QgV2ViTWVzc2FnZVBvcnRDaGFubmVsQXJyYXkmKTsKICAgICB2aXJ0dWFsIHZvaWQg
cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFdlYlN0cmluZyYsIGludCwgY29uc3Qg
V2ViU3RyaW5nJik7CiAKLSAgICAvLyBGSVhNRTogdGhlIGJlbG93IGlzIGZvciBjb21wYXRpYmls
aXR5IG9ubHkgYW5kIHNob3VsZCBiZSAgICAgCi0gICAgLy8gcmVtb3ZlZCBvbmNlIENocm9taXVt
IGlzIHVwZGF0ZWQgdG8gcmVtb3ZlIG1lc3NhZ2UgCisgICAgLy8gRklYTUU6IHRoZSBiZWxvdyBp
cyBmb3IgY29tcGF0aWJpbGl0eSBvbmx5IGFuZCBzaG91bGQgYmUKKyAgICAvLyByZW1vdmVkIG9u
Y2UgQ2hyb21pdW0gaXMgdXBkYXRlZCB0byByZW1vdmUgbWVzc2FnZQogICAgIC8vIGRlc3RpbmF0
aW9uIHBhcmFtZXRlciA8aHR0cDovL3dlYmtpdC5vcmcvYi8zNzE1NT4uCiAgICAgdmlydHVhbCB2
b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCwgaW50LCBpbnQsIGludCwg
Y29uc3QgV2ViU3RyaW5nJiwgaW50LCBjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZv
aWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoaW50LCBpbnQsIGludCwgY29uc3Qg
V2ViU3RyaW5nJiwgaW50LCBjb25zdCBXZWJTdHJpbmcmKTsKQEAgLTE1NSw2ICsxNTksNyBAQCBw
cml2YXRlOgogICAgIHVuc2lnbmVkIG1fdW5jb25maXJtZWRNZXNzYWdlQ291bnQ7CiAgICAgYm9v
bCBtX3dvcmtlckNvbnRleHRIYWRQZW5kaW5nQWN0aXZpdHk7CiAgICAgVGhyZWFkSWRlbnRpZmll
ciBtX3dvcmtlclRocmVhZElkOworICAgIE93blB0cjxXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJv
eHlJbXBsPiBtX2luc3BlY3RvclByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyRGV2VG9vbHNB
Z2VudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyRGV2VG9v
bHNBZ2VudEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwOWUzMWRiODVjOGI4ZTRkOGEyYjI4ZGRhMjdj
M2Q1MTFjMDY1ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbC5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGwuaCIKKwor
I2lmIEVOQUJMRShXT1JLRVJTKQorCisjaW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCisjaW5j
bHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSAiV2ViRGV2VG9vbHNG
cm9udGVuZC5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUgIldlYldvcmtlckJh
c2UuaCIKKyNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYldvcmtlckRldlRvb2xz
QWdlbnRJbXBsOjpXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbChXZWJXb3JrZXJCYXNlKiB3b3Jr
ZXIpCisgICAgOiBtX3dvcmtlcih3b3JrZXIpCisgICAgLCBtX2Zyb250ZW5kKDApCit7Cit9CisK
K1dlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsOjp+V2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGwo
KQoreworfQorCitzdGF0aWMgdm9pZCBjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFz
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwqIGNoYW5uZWwpCit7CisgICAgQVNTRVJUKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsK
KyAgICBzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCktPndvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIoKS0+Y29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOworfQorCit2b2lkIFdlYldv
cmtlckRldlRvb2xzQWdlbnRJbXBsOjpjb25uZWN0KFdlYkRldlRvb2xzRnJvbnRlbmQqIGZyb250
ZW5kKQoreworICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZDsKKyAgICBpZiAod29ya2VyVGhyZWFk
KCkpCisgICAgICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2soY3JlYXRlQ2Fs
bGJhY2tUYXNrKGNvbm5lY3RUb1dvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrLCBBbGxvd0Nyb3Nz
VGhyZWFkQWNjZXNzKHRoaXMpKSk7CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgLy8gRklYTUU6IGltcGxlbWV0IGVhcmx5IGF0dGFjaAorfQorCit2b2lkIFdlYldvcmtl
ckRldlRvb2xzQWdlbnRJbXBsOjpkaXNjb25uZWN0KCkKK3sKKyAgICBtX2Zyb250ZW5kID0gMDsg
Ly8gRklYTUU6IGRpc2Nvbm5lY3QgZnJvbSBpbnNwZWN0b3IKK30KKworc3RhdGljIHZvaWQgZGlz
cGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBBU1NFUlQoY29udGV4dC0+aXNXb3Jr
ZXJDb250ZXh0KCkpOworICAgIHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KS0+
d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQo
bWVzc2FnZSk7Cit9CisKK3ZvaWQgV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGw6OmRpc3BhdGNo
T25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAo
d29ya2VyVGhyZWFkKCkpCisgICAgICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRh
c2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZFRh
c2ssIFN0cmluZyhtZXNzYWdlKSksICJkZWJ1Z2dlciIpOworfQorCit2b2lkIFdlYldvcmtlckRl
dlRvb2xzQWdlbnRJbXBsOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmRUYXNrKAorICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLAorICAgIFdlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsKiB0aGlzUHRy
LAorICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICB0aGlzUHRyLT5tX2Zyb250ZW5k
LT5kaXNwYXRjaE9uSW5zcGVjdG9yRnJvbnRlbmQobWVzc2FnZSk7Cit9CisKK2Jvb2wgV2ViV29y
a2VyRGV2VG9vbHNBZ2VudEltcGw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCit7CisgICAgV2ViV29ya2VyQmFzZTo6ZGlzcGF0Y2hUYXNrVG9NYWluVGhyZWFk
KGNyZWF0ZUNhbGxiYWNrVGFzaygmc2VuZE1lc3NhZ2VUb0Zyb250ZW5kVGFzaywgQWxsb3dDcm9z
c1RocmVhZEFjY2Vzcyh0aGlzKSwgbWVzc2FnZSkpOworICAgIHJldHVybiB0cnVlOworfQorCitX
ZWJDb3JlOjpXb3JrZXJUaHJlYWQqIFdlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsOjp3b3JrZXJU
aHJlYWQoKQoreworICAgIGlmICghbV93b3JrZXIpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiBtX3dvcmtlci0+d29ya2VyVGhyZWFkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGwuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
N2Q5NzZkYTA5YzVmYjgwODQ5MzYzYTFkMGNlYjJlMTAwNzk0NjFhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGwu
aApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbF9oCisj
ZGVmaW5lIFdlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsX2gKKworI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgIldlYldvcmtlckRldlRvb2xzQWdlbnQuaCIK
KworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBXb3JrZXJUaHJlYWQ7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJEZXZUb29sc0Zyb250ZW5kOworY2xhc3MgV2ViU3Ry
aW5nOworY2xhc3MgV2ViV29ya2VyQmFzZTsKKworY2xhc3MgV2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dEltcGwgOiBwdWJsaWMgV2ViV29ya2VyRGV2VG9vbHNBZ2VudAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbChXZWJX
b3JrZXJCYXNlKik7CisgICAgdmlydHVhbCB+V2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGwoKTsK
KworICAgIC8vIFdlYkRldlRvb2xzQWdlbnQgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2
b2lkIGNvbm5lY3QoV2ViRGV2VG9vbHNGcm9udGVuZCopOworICAgIHZpcnR1YWwgdm9pZCBkaXNj
b25uZWN0KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNv
bnN0IFdlYlN0cmluZyYgbWVzc2FnZSk7CisKK3ByaXZhdGU6CisgICAgLy8gSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsIGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICBzdGF0aWMgdm9pZCBzZW5k
TWVzc2FnZVRvRnJvbnRlbmRUYXNrKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBX
ZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbCosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKKyAg
ICBXZWJDb3JlOjpXb3JrZXJUaHJlYWQqIHdvcmtlclRocmVhZCgpOworCisgICAgV2ViV29ya2Vy
QmFzZSogbV93b3JrZXI7CisgICAgV2ViRGV2VG9vbHNGcm9udGVuZCogbV9mcm9udGVuZDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViV29ya2VySW1wbC5jcHAKaW5kZXggYjJkNDkxNWUyMzE4NjE0ODcxYjIxZWUw
NDhhMGY5ZDIxNDEzNTU5YS4uZTFiNTYzNGRjNmIzYjVkNDU1MjgwN2FjMzQ0MmQxZmM2OGE3NWM3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5jcHAKQEAg
LTQyLDkgKzQyLDEyIEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0YS5oIgorI2lu
Y2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaW5jbHVkZSAiUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWwuaCIKKyNpbmNsdWRlICJXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbC5o
IgogI2luY2x1ZGUgIldlYk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIldlYlN0cmlu
Zy5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgpAQCAtMTAxLDggKzEwNCw3IEBAIHZvaWQgV2ViV29y
a2VySW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0KGNvbnN0IFdlYlVSTCYgc2NyaXB0VXJsLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBzb3Vy
Y2VDb2RlKQogewogICAgIGluaXRpYWxpemVMb2FkZXIoc2NyaXB0VXJsKTsKLSAgICBzZXRXb3Jr
ZXJUaHJlYWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VXJsLCB1c2VyQWdl
bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv
dXJjZUNvZGUsICp0aGlzLCAqdGhpcykpOworICAgIHNldFdvcmtlclRocmVhZChEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVcmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRo
aXMsICp0aGlzKSk7CiAgICAgLy8gV29ya2VyIGluaXRpYWxpemF0aW9uIG1lYW5zIGEgcGVuZGlu
ZyBhY3Rpdml0eS4KICAgICByZXBvcnRQZW5kaW5nQWN0aXZpdHkodHJ1ZSk7CiAgICAgd29ya2Vy
VGhyZWFkKCktPnN0YXJ0KCk7CkBAIC0xNDYsNiArMTQ4LDEzIEBAIHZvaWQgV2ViV29ya2VySW1w
bDo6Y2xpZW50RGVzdHJveWVkKCkKICAgICBtX2NsaWVudCA9IDA7CiB9CiAKK1dlYldvcmtlckRl
dlRvb2xzQWdlbnQqIFdlYldvcmtlckltcGw6OmRldnRvb2xzQWdlbnQoKQoreworICAgIGlmICgh
bV9kZXZ0b29sc0FnZW50KQorICAgICAgICBtX2RldnRvb2xzQWdlbnQgPSBuZXcgV2ViV29ya2Vy
RGV2VG9vbHNBZ2VudEltcGwodGhpcyk7CisgICAgcmV0dXJuIG1fZGV2dG9vbHNBZ2VudC5nZXQo
KTsKK30KKwogI2Vsc2UKIAogV2ViV29ya2VyKiBXZWJXb3JrZXI6OmNyZWF0ZShXZWJXb3JrZXJD
bGllbnQqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YldvcmtlckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckltcGwu
aAppbmRleCBkMmZkMDE2OTVhZWQxNDc5OWEwOTQ5OTlmMzE5ZGFmMDIwYzRhMjIwLi4yNjRjZGEz
ZjM5NjY4ZjFmYzg1M2E0OWM5YzMwNmE1ODdkYmQ2OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViV29ya2VySW1wbC5oCkBAIC0zOCw5ICszOCw5IEBACiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2ViV29ya2VyQmFzZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJWaWV3
OwogCiAvLyBUaGlzIGNsYXNzIGlzIHVzZWQgYnkgdGhlIHdvcmtlciBwcm9jZXNzIGNvZGUgdG8g
dGFsayB0byB0aGUgV2ViQ29yZTo6V29ya2VyCiAvLyBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbid0
IHVzZSBpdCBkaXJlY3RseSBzaW5jZSBpdCB1c2VzIFdlYktpdCB0eXBlcywgc28gdGhpcwpAQCAt
NTgsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdvcmtlck9iamVjdERlc3Ry
b3llZCgpOwogICAgIHZpcnR1YWwgdm9pZCBjbGllbnREZXN0cm95ZWQoKTsKIAorICAgIHZpcnR1
YWwgV2ViV29ya2VyRGV2VG9vbHNBZ2VudCogZGV2dG9vbHNBZ2VudCgpOworCiAgICAgLy8gV2Vi
V29ya2VyQmFzZSBtZXRob2RzOgogICAgIHZpcnR1YWwgV2ViV29ya2VyQ2xpZW50KiBjbGllbnQo
KSB7IHJldHVybiBtX2NsaWVudDsgfQogICAgIHZpcnR1YWwgV2ViQ29tbW9uV29ya2VyQ2xpZW50
KiBjb21tb25DbGllbnQoKTsKQEAgLTczLDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgUGFz
c093blB0cjxXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMpOwogCiAg
ICAgV2ViV29ya2VyQ2xpZW50KiBtX2NsaWVudDsKLQorICAgIE93blB0cjxXZWJXb3JrZXJEZXZU
b29sc0FnZW50PiBtX2RldnRvb2xzQWdlbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dvcmtlckNvbnRleHRJbnNw
ZWN0b3JQcm94eUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2VyQ29u
dGV4dEluc3BlY3RvclByb3h5SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc2YTAyZTYxY2M5NjdiNTgw
Nzk4Yjc5NWFlY2FhMmEyOWNjNDYwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwuY3BwCkBAIC0wLDAg
KzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV29ya2VyQ29udGV4dEluc3Bl
Y3RvclByb3h5SW1wbC5oIgorCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJEZXZUb29sc0Zyb250
ZW5kLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViV29ya2VyLmgiCisj
aW5jbHVkZSAiV2ViV29ya2VyRGV2VG9vbHNBZ2VudC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94
eUltcGw6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwoV2ViV29ya2VyRGV2VG9vbHNB
Z2VudCogZGV2dG9vbHNBZ2VudCkKKyAgICA6IG1fZGV2dG9vbHNBZ2VudChkZXZ0b29sc0FnZW50
KQorICAgICwgbV9mcm9udGVuZENoYW5uZWwoMCkKK3sKK30KKworV29ya2VyQ29udGV4dEluc3Bl
Y3RvclByb3h5SW1wbDo6fldvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwoKQoreworfQor
Cit2b2lkIFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGw6OmNvbm5lY3RGcm9udGVuZChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwpCit7CisgICAgbV9mcm9u
dGVuZENoYW5uZWwgPSBjaGFubmVsOworICAgIGlmIChtX2RldnRvb2xzQWdlbnQpCisgICAgICAg
IG1fZGV2dG9vbHNBZ2VudC0+Y29ubmVjdCh0aGlzKTsKK30KKwordm9pZCBXb3JrZXJDb250ZXh0
SW5zcGVjdG9yUHJveHlJbXBsOjpkaXNjb25uZWN0RnJvbnRlbmQoKQoreworICAgIG1fZnJvbnRl
bmRDaGFubmVsID0gMDsKKyAgICBpZiAobV9kZXZ0b29sc0FnZW50KQorICAgICAgICBtX2RldnRv
b2xzQWdlbnQtPmRpc2Nvbm5lY3QoKTsKK30KKwordm9pZCBXb3JrZXJDb250ZXh0SW5zcGVjdG9y
UHJveHlJbXBsOjpzZW5kTWVzc2FnZVRvV29ya2VyQ29udGV4dEluc3BlY3Rvcihjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKG1fZGV2dG9vbHNBZ2VudCkKKyAgICAgICAgbV9kZXZ0
b29sc0FnZW50LT5kaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChtZXNzYWdlKTsKK30KKworLy8g
V2ViRGV2VG9vbHNGcm9udGVuZCBpbXBsZW1lbnRhdGlvbi4KK3ZvaWQgV29ya2VyQ29udGV4dElu
c3BlY3RvclByb3h5SW1wbDo6ZGlzcGF0Y2hPbkluc3BlY3RvckZyb250ZW5kKGNvbnN0IFdlYlN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAobV9mcm9udGVuZENoYW5uZWwpCisgICAgICAgIG1f
ZnJvbnRlbmRDaGFubmVsLT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2FnZSk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dvcmtlckNvbnRleHRJbnNw
ZWN0b3JQcm94eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dvcmtlckNvbnRl
eHRJbnNwZWN0b3JQcm94eUltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzEzOGVhMDkwN2QxZTc1ZDU0YzFi
OTU0ZGJiZWM5Y2Q4YjkzN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5SW1wbC5oCkBAIC0wLDAgKzEsNjgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGxfaAorI2RlZmluZSBXb3Jr
ZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsX2gKKworI2luY2x1ZGUgIldlYkRldlRvb2xzRnJv
bnRlbmQuaCIKKyNpbmNsdWRlICJXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHkuaCIKKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJXb3Jr
ZXI7CitjbGFzcyBXZWJXb3JrZXJEZXZUb29sc0FnZW50OworY2xhc3MgV29ya2VyRGV2VG9vbHNG
cm9udGVuZFByb3h5OworCitjbGFzcyBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsIDog
cHVibGljIFdlYkNvcmU6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgV2ViRGV2VG9vbHNGcm9udGVuZCB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5SW1wbChX
ZWJXb3JrZXJEZXZUb29sc0FnZW50Kik7CisgICAgdmlydHVhbCB+V29ya2VyQ29udGV4dEluc3Bl
Y3RvclByb3h5SW1wbCgpOworCitwcml2YXRlOgorICAgIC8vIFdvcmtlckNvbnRleHRJbnNwZWN0
b3JQcm94eSBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdEZyb250ZW5k
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworICAgIHZpcnR1YWwgdm9pZCBk
aXNjb25uZWN0RnJvbnRlbmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtl
ckNvbnRleHRJbnNwZWN0b3IoY29uc3QgU3RyaW5nJik7CisKKyAgICAvLyBXZWJEZXZUb29sc0Zy
b250ZW5kIGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE9uSW5zcGVj
dG9yRnJvbnRlbmQoY29uc3QgV2ViU3RyaW5nJik7CisKKyAgICBXZWJXb3JrZXJEZXZUb29sc0Fn
ZW50KiBtX2RldnRvb2xzQWdlbnQ7CisgICAgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiBtX2Zyb250ZW5kQ2hhbm5lbDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92419</attachid>
            <date>2011-05-05 08:32:31 -0700</date>
            <delta_ts>2011-05-20 08:57:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60267-20110505193228.patch</filename>
            <type>text/plain</type>
            <size>28864</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU4NTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
M2MxY2M1MjM4MTEwOTU1ZGQ5ODg1NTNkYmMzYTRhZGQzNTFlN2I3YS4uMDFmMjY3N2QzYTQ1YjIy
NWQxNTNlMjI2ZjA3OGMzNjYwZWExMjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1NyBAQAorMjAxMS0wNS0wNSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQ2hyb21pdW1dIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlv
biBvZiB3b3JrZXIgaW5zcGVjdG9yIHRyYW5zcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAyNjcKKworICAgICAgICBBZGRlZCBXZWJXb3JrZXJE
ZXZUb29sc0FnZW50IHRoYXQgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSB3b3JrZXIgaW5zcGVjdG9y
IG9uCisgICAgICAgIHRoZSBXb3JrZXJDb250ZXh0IHNpZGUuIEl0IHNob3VsZCBiZSBpbWVwbGVt
ZW50ZWQgYnkgdGhlIGVtYmVkZGVyIGFuZCBzaG91bGQKKyAgICAgICAgZm9yd2FyZCBjYWxscyB0
byB0aGUgY29ycmVzcG9uZGluZyBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgd29ya2VyIHByb2Nlc3Mg
d2hlcmUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gaXMgcHJvdmlkZWQgYnkgV2ViV29ya2VySW1w
bC4gVGhlIHdvcmtlciBkZXZ0b29scyBhZ2VudCBtYXkKKyAgICAgICAgY29tbXVuaWNhdGUgd2l0
aCBjb3JyZXNwb25kaW5nIGluc3BlY3RvciBmcm9udC1lbmQgYnkgbWVhbnMgb2YgV2ViRGV2VG9v
bHNGcm9udGVuZAorICAgICAgICBwYXNzZWQgdG8gY29ubmVjdCBtZXRob2QuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJXb3JrZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViV29ya2VyOjpkZXZ0b29sc0FnZW50KToKKyAgICAgICAgKiBwdWJsaWMvV2ViV29y
a2VyRGV2VG9vbHNBZ2VudC5oOiBBZGRlZC4gSW50ZXJmYWNlIHRvIHRoZSBXb3JrZXJDb250ZXh0
IGluc3BlY3Rvci4KKyAgICAgICAgUHJvdmlkZXMgc3RhcnQvc3RvcCBpbnNwZWN0aW9uIGZ1bmN0
aW9uYWxpdHkgYW5kIHRyYW5zcG9ydCBmb3IgbWVzc2FnZXMgc2VudCBmcm9tCisgICAgICAgIGlu
c3BlY3RvciBmcm9udC1lbmQgdGhyb3VnaCBJbnNwZWN0b3JXb3JrZXJBZ2VudCB0byB0aGUgaW5z
cGVjdG9yIGFnZW50cyBvbiB0aGUgV29ya2VyQ29udGV4dAorICAgICAgICBzaWRlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJXb3JrZXJEZXZUb29sc0FnZW50Ojp+V2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dCk6CisgICAgICAgICogc3JjL1dlYldvcmtlckJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
V29ya2VyQmFzZTo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6Omluc3BlY3Rv
clByb3h5KTogUmV0dXJuIFdlYkRldlRvb2xzQWdlbnRJbXBsIGluc3RhbmNlCisgICAgICAgIHRo
YXQgZ2l2ZXMgYWNjZXNzIHRvIHRoZSBjb3JyZXNwb25kaW5nIHdvcmtlciBpbnNwZWN0b3IgYWdl
bnRzLgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmg6CisgICAgICAgICogc3Jj
L1dlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsOjpXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsOjp+V2ViV29ya2Vy
RGV2VG9vbHNBZ2VudEltcGwpOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0VG9Xb3JrZXJDb250
ZXh0SW5zcGVjdG9yVGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckRldlRvb2xzQWdl
bnRJbXBsOjpjb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dEltcGw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpkaXNwYXRjaE9uSW5zcGVjdG9y
QmFja2VuZFRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1w
bDo6ZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3Jr
ZXJEZXZUb29sc0FnZW50SW1wbDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kVGFzayk6CisgICAgICAg
IChXZWJLaXQ6OldlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsOjpzZW5kTWVzc2FnZVRvRnJvbnRl
bmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbDo6d29ya2Vy
VGhyZWFkKToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGwuaDogQWRk
ZWQuCisgICAgICAgICogc3JjL1dlYldvcmtlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJXb3JrZXJJbXBsOjpzdGFydFdvcmtlckNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJX
b3JrZXJJbXBsOjpkZXZ0b29sc0FnZW50KToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VySW1wbC5o
OgorICAgICAgICAqIHNyYy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsLmNwcDogQWRk
ZWQuIFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eSBpbXBsZW1lbnRhdGlvbgorICAgICAgICB0
aGF0IHBhc3NlcyBhbGwgY2FsbHMgdG8gV2ViV29ya2VyRGV2VG9vbHNBZ2VudCBwcm92aWRlZCBi
eSB0aGUgZW1iZWRkZXIuCisgICAgICAgIChXZWJLaXQ6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQ
cm94eUltcGw6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsOjp+V29ya2VyQ29udGV4dEluc3Bl
Y3RvclByb3h5SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQ
cm94eUltcGw6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldvcmtlckNvbnRl
eHRJbnNwZWN0b3JQcm94eUltcGw6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJL
aXQ6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGw6OnNlbmRNZXNzYWdlVG9Xb3JrZXJD
b250ZXh0SW5zcGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V29ya2VyQ29udGV4dEluc3BlY3Rv
clByb3h5SW1wbDo6ZGlzcGF0Y2hPbkluc3BlY3RvckZyb250ZW5kKToKKyAgICAgICAgKiBzcmMv
V29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5SW1wbC5oOiBBZGRlZC4KKwogMjAxMS0wNS0wMyAg
SGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDNlMGIwZDkxMjNl
NDAyNjZjYzMxMWM3ZTgxZjI2ZmQ1MGZjM2VlNjkuLmNkZTY0YjA3MzBhZjhmODFlMzAzNGI2YmRi
NDU2MmQzNWU2NzA4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI5NCw2ICsy
OTQsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViV29ya2VyLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViV29ya2VyQ2xpZW50LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViV29ya2Vy
RGV2VG9vbHNBZ2VudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL3dpbi9XZWJJbnB1dEV2
ZW50RmFjdG9yeS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL3dpbi9XZWJTYW5kYm94U3Vw
cG9ydC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9y
eS5oJywKQEAgLTU3NiwxMiArNTc3LDE2IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJXb3Jr
ZXJCYXNlLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oJywKKyAgICAgICAg
ICAgICAgICAnc3JjL1dlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsLmNwcCcsCisgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbC5oJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYldvcmtlckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYldvcmtl
ckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hy
b21pdW0uaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Xb3JrZXJBc3luY0ZpbGVXcml0ZXJDaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV29ya2VyQXN5bmNGaWxlV3JpdGVyQ2hy
b21pdW0uaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJv
eHlJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9y
UHJveHlJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxi
YWNrc0JyaWRnZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV29ya2VyRmlsZVN5c3RlbUNh
bGxiYWNrc0JyaWRnZS5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dvcmtlckZpbGVXcml0ZXJD
YWxsYmFja3NCcmlkZ2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYldvcmtlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29y
a2VyLmgKaW5kZXggOTM5N2JjZGVmNTVhODZhZWZjOWFjOWIxZWIxMjdiMWI1NTQ4YzlhZC4uMDk5
Nzk2NzIwNjBmZGRiOTEzM2YyZTQ4ZTM2ODhiZWJhMjM3ZWRhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyLmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBjbGFzcyBXZWJXb3JrZXJD
bGllbnQ7CitjbGFzcyBXZWJXb3JrZXJEZXZUb29sc0FnZW50OwogCiAvLyBQcm92aWRlcyBhbiBp
bnRlcmZhY2UgdG8gdGhlIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCBmb3IgYSB3b3JrZXIuCiBj
bGFzcyBXZWJXb3JrZXIgewpAQCAtNTUsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0
IFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3b3Jr
ZXJPYmplY3REZXN0cm95ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsaWVudERlc3Ryb3ll
ZCgpID0gMDsKKworICAgIHZpcnR1YWwgV2ViV29ya2VyRGV2VG9vbHNBZ2VudCogZGV2dG9vbHNB
Z2VudCgpIHsgcmV0dXJuIDA7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyRGV2VG9vbHNBZ2Vu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZlYzhmOTkwZGI0ZmUwYWEwMmUxYjZjNTdiMTgxOGRkZDA5MzZlYjIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXb3Jr
ZXJEZXZUb29sc0FnZW50LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViV29ya2VyRGV2VG9v
bHNBZ2VudF9oCisjZGVmaW5lIFdlYldvcmtlckRldlRvb2xzQWdlbnRfaAorCituYW1lc3BhY2Ug
V2ViS2l0IHsKK2NsYXNzIFdlYkRldlRvb2xzRnJvbnRlbmQ7CitjbGFzcyBXZWJTdHJpbmc7CisK
K2NsYXNzIFdlYldvcmtlckRldlRvb2xzQWdlbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfldl
YldvcmtlckRldlRvb2xzQWdlbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KFdl
YkRldlRvb2xzRnJvbnRlbmQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdl
YlN0cmluZyYgbWVzc2FnZSkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFz
ZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5oCmluZGV4IDhm
YjAzMmU2MTdlZmRiMmYzN2JhNWE5OTExYTUyYzI1YjNiZTM5ZGEuLjJkNzUwYjcwNzY4NGZlMjg3
ZWYzOTc5ZDM4NTg2ODkxNjYyMGE0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJXb3JrZXJCYXNlLmgKQEAgLTk4LDEyICs5OCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gRXhlY3V0
ZXMgdGhlIGdpdmVuIHRhc2sgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0YXRpYyB2b2lkIGRp
c3BhdGNoVGFza1RvTWFpblRocmVhZChQYXNzT3duUHRyPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OlRhc2s+KTsKIAorICAgIFdlYkNvcmU6OldvcmtlclRocmVhZCogd29ya2VyVGhy
ZWFkKCkgeyByZXR1cm4gbV93b3JrZXJUaHJlYWQuZ2V0KCk7IH0KKwogcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgV2ViV29ya2VyQ2xpZW50KiBjbGllbnQoKSA9IDA7CiAgICAgdmlydHVhbCBXZWJD
b21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNsaWVudCgpID0gMDsKIAogICAgIHZvaWQgc2V0V29y
a2VyVGhyZWFkKFBhc3NSZWZQdHI8V2ViQ29yZTo6V29ya2VyVGhyZWFkPiB0aHJlYWQpIHsgbV93
b3JrZXJUaHJlYWQgPSB0aHJlYWQ7IH0KLSAgICBXZWJDb3JlOjpXb3JrZXJUaHJlYWQqIHdvcmtl
clRocmVhZCgpIHsgcmV0dXJuIG1fd29ya2VyVGhyZWFkLmdldCgpOyB9CiAKICAgICAvLyBTaHV0
cyBkb3duIHRoZSB3b3JrZXIgdGhyZWFkLgogICAgIHZvaWQgc3RvcFdvcmtlclRocmVhZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNw
cAppbmRleCAxMDEwYjFjYjE4NmQyMTIwMzc5MWMzNGY5Y2MwZWVlYmM0MzZlMzMwLi4zODdmMWRi
NjExMTFlNzgwNzExMzdkZDQ4MTEzZWUxN2E1ZTVjM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcApAQCAtNjIsNiArNjIsNyBA
QAogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5jbHVkZSAiV2ViV29ya2VyLmgiCiAjaW5j
bHVkZSAiV2ViV29ya2VySW1wbC5oIgorI2luY2x1ZGUgIldvcmtlckNvbnRleHRJbnNwZWN0b3JQ
cm94eUltcGwuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTIwNiw2ICsyMDcs
MTUgQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjp3b3JrZXJPYmplY3REZXN0cm95ZWQoKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWxsb3dDcm9zc1RocmVhZEFjY2Vzcyh0aGlzKSkpOwogfQogCitXb3JrZXJDb250ZXh0
SW5zcGVjdG9yUHJveHkqIFdlYldvcmtlckNsaWVudEltcGw6Omluc3BlY3RvclByb3h5KCkKK3sK
KyAgICBpZiAoIW1faW5zcGVjdG9yUHJveHkpIHsKKyAgICAgICAgaWYgKFdlYldvcmtlckRldlRv
b2xzQWdlbnQqIGRldnRvb2xzQWdlbnQgPSBtX3dlYldvcmtlci0+ZGV2dG9vbHNBZ2VudCgpKQor
ICAgICAgICAgICAgbV9pbnNwZWN0b3JQcm94eSA9IG5ldyBXb3JrZXJDb250ZXh0SW5zcGVjdG9y
UHJveHlJbXBsKGRldnRvb2xzQWdlbnQpOworICAgIH0KKyAgICByZXR1cm4gbV9pbnNwZWN0b3JQ
cm94eS5nZXQoKTsKK30KKwogdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0TWVzc2FnZVRv
V29ya2VyT2JqZWN0KGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJNZXNzYWdlUG9ydENo
YW5uZWxBcnJheSYgY2hhbm5lbHMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJXb3JrZXJDbGllbnRJbXBsLmgKaW5kZXggYTdkY2QzYzA4NjUyYjM3MTUwYTNkOTI5MTVm
ZjBjYTQ0MmIzZjc2Ny4uYWJhZTQxNDNlM2VmNTg0YzI0ZWY1NzVlOTU3ZDgxZDU5MmU1ZjU5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwu
aApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRl
ICJXZWJXb3JrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0UHJveHkuaCIKKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTQ1LDYgKzQ2LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJXb3JrZXI7CitjbGFz
cyBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsOwogCiAvLyBUaGUgcHVycG9zZSBvZiB0
aGlzIGNsYXNzIGlzIHRvIHByb3ZpZGUgYSBXb3JrZXJDb250ZXh0UHJveHkKIC8vIGltcGxlbWVu
dGF0aW9uIHRoYXQgd2UgY2FuIGdpdmUgdG8gV2ViS2l0LiAgSW50ZXJuYWxseSwgaXQgY29udmVy
dHMgdGhlCkBAIC03MywxMyArNzUsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyT2JqZWN0RGVz
dHJveWVkKCk7CiAKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OldvcmtlckNvbnRleHRJbnNwZWN0b3JQ
cm94eSogaW5zcGVjdG9yUHJveHkoKTsKKwogICAgIC8vIFdlYldvcmtlckNsaWVudCBtZXRob2Rz
OgogICAgIC8vIFRoZXNlIGFyZSBjYWxsZWQgb24gdGhlIG1haW4gV2ViS2l0IHRocmVhZC4KICAg
ICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChjb25zdCBXZWJTdHJpbmcm
LCBjb25zdCBXZWJNZXNzYWdlUG9ydENoYW5uZWxBcnJheSYpOwogICAgIHZpcnR1YWwgdm9pZCBw
b3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViU3RyaW5nJiwgaW50LCBjb25zdCBX
ZWJTdHJpbmcmKTsKIAotICAgIC8vIEZJWE1FOiB0aGUgYmVsb3cgaXMgZm9yIGNvbXBhdGliaWxp
dHkgb25seSBhbmQgc2hvdWxkIGJlICAgICAKLSAgICAvLyByZW1vdmVkIG9uY2UgQ2hyb21pdW0g
aXMgdXBkYXRlZCB0byByZW1vdmUgbWVzc2FnZSAKKyAgICAvLyBGSVhNRTogdGhlIGJlbG93IGlz
IGZvciBjb21wYXRpYmlsaXR5IG9ubHkgYW5kIHNob3VsZCBiZQorICAgIC8vIHJlbW92ZWQgb25j
ZSBDaHJvbWl1bSBpcyB1cGRhdGVkIHRvIHJlbW92ZSBtZXNzYWdlCiAgICAgLy8gZGVzdGluYXRp
b24gcGFyYW1ldGVyIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM3MTU1Pi4KICAgICB2aXJ0dWFsIHZv
aWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoaW50LCBpbnQsIGludCwgaW50LCBj
b25zdCBXZWJTdHJpbmcmLCBpbnQsIGNvbnN0IFdlYlN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9p
ZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChpbnQsIGludCwgaW50LCBjb25zdCBX
ZWJTdHJpbmcmLCBpbnQsIGNvbnN0IFdlYlN0cmluZyYpOwpAQCAtMTU1LDYgKzE1OSw3IEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgbV91bmNvbmZpcm1lZE1lc3NhZ2VDb3VudDsKICAgICBib29s
IG1fd29ya2VyQ29udGV4dEhhZFBlbmRpbmdBY3Rpdml0eTsKICAgICBUaHJlYWRJZGVudGlmaWVy
IG1fd29ya2VyVGhyZWFkSWQ7CisgICAgT3duUHRyPFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94
eUltcGw+IG1faW5zcGVjdG9yUHJveHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJEZXZUb29sc0Fn
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJEZXZUb29s
c0FnZW50SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA5ZTMxZGI4NWM4YjhlNGQ4YTJiMjhkZGEyN2Mz
ZDUxMWMwNjVmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbC5oIgorCisj
aWYgRU5BQkxFKFdPUktFUlMpCisKKyNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJXZWJEZXZUb29sc0Zy
b250ZW5kLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViV29ya2VyQmFz
ZS5oIgorI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViV29ya2VyRGV2VG9vbHNB
Z2VudEltcGw6OldlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsKFdlYldvcmtlckJhc2UqIHdvcmtl
cikKKyAgICA6IG1fd29ya2VyKHdvcmtlcikKKyAgICAsIG1fZnJvbnRlbmQoMCkKK3sKK30KKwor
V2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGw6On5XZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbCgp
Cit7Cit9CisKK3N0YXRpYyB2b2lkIGNvbm5lY3RUb1dvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCogY2hhbm5lbCkKK3sKKyAgICBBU1NFUlQoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwor
ICAgIHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KS0+d29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcigpLT5jb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7Cit9CisKK3ZvaWQgV2ViV29y
a2VyRGV2VG9vbHNBZ2VudEltcGw6OmNvbm5lY3QoV2ViRGV2VG9vbHNGcm9udGVuZCogZnJvbnRl
bmQpCit7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOworICAgIGlmICh3b3JrZXJUaHJlYWQo
KSkKKyAgICAgICAgd29ya2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFzayhjcmVhdGVDYWxs
YmFja1Rhc2soY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2ssIEFsbG93Q3Jvc3NU
aHJlYWRBY2Nlc3ModGhpcykpKTsKKyAgICBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyAvLyBGSVhNRTogaW1wbGVtZXQgZWFybHkgYXR0YWNoCit9CisKK3ZvaWQgV2ViV29ya2Vy
RGV2VG9vbHNBZ2VudEltcGw6OmRpc2Nvbm5lY3QoKQoreworICAgIG1fZnJvbnRlbmQgPSAwOyAv
LyBGSVhNRTogZGlzY29ubmVjdCBmcm9tIGluc3BlY3RvcgorfQorCitzdGF0aWMgdm9pZCBkaXNw
YXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIEFTU0VSVChjb250ZXh0LT5pc1dvcmtl
ckNvbnRleHQoKSk7CisgICAgc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+KGNvbnRleHQpLT53
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZCht
ZXNzYWdlKTsKK30KKwordm9pZCBXZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbDo6ZGlzcGF0Y2hP
bkluc3BlY3RvckJhY2tlbmQoY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICh3
b3JrZXJUaHJlYWQoKSkKKyAgICAgICAgd29ya2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoY3JlYXRlQ2FsbGJhY2tUYXNrKGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFz
aywgU3RyaW5nKG1lc3NhZ2UpKSwgImRlYnVnZ2VyIik7Cit9CisKK3ZvaWQgV2ViV29ya2VyRGV2
VG9vbHNBZ2VudEltcGw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZFRhc2soCisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosCisgICAgV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGwqIHRoaXNQdHIs
CisgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHRoaXNQdHItPm1fZnJvbnRlbmQt
PmRpc3BhdGNoT25JbnNwZWN0b3JGcm9udGVuZChtZXNzYWdlKTsKK30KKworYm9vbCBXZWJXb3Jr
ZXJEZXZUb29sc0FnZW50SW1wbDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKK3sKKyAgICBXZWJXb3JrZXJCYXNlOjpkaXNwYXRjaFRhc2tUb01haW5UaHJlYWQo
Y3JlYXRlQ2FsbGJhY2tUYXNrKCZzZW5kTWVzc2FnZVRvRnJvbnRlbmRUYXNrLCBBbGxvd0Nyb3Nz
VGhyZWFkQWNjZXNzKHRoaXMpLCBtZXNzYWdlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1dl
YkNvcmU6OldvcmtlclRocmVhZCogV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGw6OndvcmtlclRo
cmVhZCgpCit7CisgICAgaWYgKCFtX3dvcmtlcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG1fd29ya2VyLT53b3JrZXJUaHJlYWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3
ZDk3NmRhMDljNWZiODA4NDkzNjNhMWQwY2ViMmUxMDA3OTQ2MWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbC5o
CkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsX2gKKyNk
ZWZpbmUgV2ViV29ya2VyRGV2VG9vbHNBZ2VudEltcGxfaAorCisjaW5jbHVkZSAiSW5zcGVjdG9y
RnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSAiV2ViV29ya2VyRGV2VG9vbHNBZ2VudC5oIgor
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFdvcmtlclRocmVhZDsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkRldlRvb2xzRnJvbnRlbmQ7CitjbGFzcyBXZWJTdHJp
bmc7CitjbGFzcyBXZWJXb3JrZXJCYXNlOworCitjbGFzcyBXZWJXb3JrZXJEZXZUb29sc0FnZW50
SW1wbCA6IHB1YmxpYyBXZWJXb3JrZXJEZXZUb29sc0FnZW50CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAsIHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwg
eworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsKFdlYldv
cmtlckJhc2UqKTsKKyAgICB2aXJ0dWFsIH5XZWJXb3JrZXJEZXZUb29sc0FnZW50SW1wbCgpOwor
CisgICAgLy8gV2ViRGV2VG9vbHNBZ2VudCBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZv
aWQgY29ubmVjdChXZWJEZXZUb29sc0Zyb250ZW5kKik7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nv
bm5lY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmQoY29u
c3QgV2ViU3RyaW5nJiBtZXNzYWdlKTsKKworcHJpdmF0ZToKKyAgICAvLyBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdl
VG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHN0YXRpYyB2b2lkIHNlbmRN
ZXNzYWdlVG9Gcm9udGVuZFRhc2soV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFdl
YldvcmtlckRldlRvb2xzQWdlbnRJbXBsKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKworICAg
IFdlYkNvcmU6OldvcmtlclRocmVhZCogd29ya2VyVGhyZWFkKCk7CisKKyAgICBXZWJXb3JrZXJC
YXNlKiBtX3dvcmtlcjsKKyAgICBXZWJEZXZUb29sc0Zyb250ZW5kKiBtX2Zyb250ZW5kOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNwcAppbmRleCBiMmQ0OTE1ZTIzMTg2MTQ4NzFiMjFlZTA0
OGEwZjlkMjE0MTM1NTlhLi4zMjRkMThhNjEzMzdjOTYwMTU5NzBkYTdmNTJlMDVkYjA4ZmEwNmFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNwcApAQCAt
NDIsOSArNDIsMTEgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCisjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogI2luY2x1
ZGUgIlBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgiCisjaW5jbHVkZSAiV2ViV29ya2VyRGV2
VG9vbHNBZ2VudEltcGwuaCIKICNpbmNsdWRlICJXZWJNZXNzYWdlUG9ydENoYW5uZWwuaCIKICNp
bmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJVUkwuaCIKQEAgLTEwMSw4ICsxMDMs
NyBAQCB2b2lkIFdlYldvcmtlckltcGw6OnN0YXJ0V29ya2VyQ29udGV4dChjb25zdCBXZWJVUkwm
IHNjcmlwdFVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYlN0cmluZyYgc291cmNlQ29kZSkKIHsKICAgICBpbml0aWFsaXplTG9hZGVyKHNjcmlwdFVy
bCk7Ci0gICAgc2V0V29ya2VyVGhyZWFkKERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNj
cmlwdFVybCwgdXNlckFnZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMpKTsKKyAgICBzZXRXb3JrZXJU
aHJlYWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VXJsLCB1c2VyQWdlbnQs
IHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcykpOwogICAgIC8vIFdvcmtlciBpbml0aWFsaXphdGlv
biBtZWFucyBhIHBlbmRpbmcgYWN0aXZpdHkuCiAgICAgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KHRy
dWUpOwogICAgIHdvcmtlclRocmVhZCgpLT5zdGFydCgpOwpAQCAtMTQ2LDYgKzE0NywxMyBAQCB2
b2lkIFdlYldvcmtlckltcGw6OmNsaWVudERlc3Ryb3llZCgpCiAgICAgbV9jbGllbnQgPSAwOwog
fQogCitXZWJXb3JrZXJEZXZUb29sc0FnZW50KiBXZWJXb3JrZXJJbXBsOjpkZXZ0b29sc0FnZW50
KCkKK3sKKyAgICBpZiAoIW1fZGV2dG9vbHNBZ2VudCkKKyAgICAgICAgbV9kZXZ0b29sc0FnZW50
ID0gbmV3IFdlYldvcmtlckRldlRvb2xzQWdlbnRJbXBsKHRoaXMpOworICAgIHJldHVybiBtX2Rl
dnRvb2xzQWdlbnQuZ2V0KCk7Cit9CisKICNlbHNlCiAKIFdlYldvcmtlciogV2ViV29ya2VyOjpj
cmVhdGUoV2ViV29ya2VyQ2xpZW50KiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJXb3JrZXJJbXBsLmgKaW5kZXggZDJmZDAxNjk1YWVkMTQ3OTlhMDk0OTk5ZjMxOWRhZjAy
MGM0YTIyMC4uMjY0Y2RhM2YzOTY2OGYxZmM4NTNhNDljOWMzMDZhNTg3ZGJkNjhhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckltcGwuaApAQCAtMzgsOSArMzgsOSBA
QAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAogI2luY2x1ZGUgIldlYldv
cmtlckJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewotY2xhc3MgV2ViVmlldzsKIAogLy8gVGhpcyBjbGFzcyBpcyB1c2VkIGJ5IHRoZSB3b3JrZXIg
cHJvY2VzcyBjb2RlIHRvIHRhbGsgdG8gdGhlIFdlYkNvcmU6OldvcmtlcgogLy8gaW1wbGVtZW50
YXRpb24uICBJdCBjYW4ndCB1c2UgaXQgZGlyZWN0bHkgc2luY2UgaXQgdXNlcyBXZWJLaXQgdHlw
ZXMsIHNvIHRoaXMKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3
b3JrZXJPYmplY3REZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xpZW50RGVzdHJveWVk
KCk7CiAKKyAgICB2aXJ0dWFsIFdlYldvcmtlckRldlRvb2xzQWdlbnQqIGRldnRvb2xzQWdlbnQo
KTsKKwogICAgIC8vIFdlYldvcmtlckJhc2UgbWV0aG9kczoKICAgICB2aXJ0dWFsIFdlYldvcmtl
ckNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KICAgICB2aXJ0dWFsIFdlYkNv
bW1vbldvcmtlckNsaWVudCogY29tbW9uQ2xpZW50KCk7CkBAIC03Myw3ICs3NSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIFBhc3NPd25QdHI8V2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+
IGNoYW5uZWxzKTsKIAogICAgIFdlYldvcmtlckNsaWVudCogbV9jbGllbnQ7Ci0KKyAgICBPd25Q
dHI8V2ViV29ya2VyRGV2VG9vbHNBZ2VudD4gbV9kZXZ0b29sc0FnZW50OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
b3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3
NmEwMmU2MWNjOTY3YjU4MDc5OGI3OTVhZWNhYTJhMjljYzQ2MDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJ
bXBsLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldv
cmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwuaCIKKworI2luY2x1ZGUgIkluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAi
V2ViRGV2VG9vbHNGcm9udGVuZC5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUg
IldlYldvcmtlci5oIgorI2luY2x1ZGUgIldlYldvcmtlckRldlRvb2xzQWdlbnQuaCIKKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXb3JrZXJDb250
ZXh0SW5zcGVjdG9yUHJveHlJbXBsOjpXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsKFdl
YldvcmtlckRldlRvb2xzQWdlbnQqIGRldnRvb2xzQWdlbnQpCisgICAgOiBtX2RldnRvb2xzQWdl
bnQoZGV2dG9vbHNBZ2VudCkKKyAgICAsIG1fZnJvbnRlbmRDaGFubmVsKDApCit7Cit9CisKK1dv
cmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGw6On5Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJv
eHlJbXBsKCkKK3sKK30KKwordm9pZCBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsOjpj
b25uZWN0RnJvbnRlbmQoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBjaGFubmVs
KQoreworICAgIG1fZnJvbnRlbmRDaGFubmVsID0gY2hhbm5lbDsKKyAgICBpZiAobV9kZXZ0b29s
c0FnZW50KQorICAgICAgICBtX2RldnRvb2xzQWdlbnQtPmNvbm5lY3QodGhpcyk7Cit9CisKK3Zv
aWQgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5SW1wbDo6ZGlzY29ubmVjdEZyb250ZW5kKCkK
K3sKKyAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IDA7CisgICAgaWYgKG1fZGV2dG9vbHNBZ2VudCkK
KyAgICAgICAgbV9kZXZ0b29sc0FnZW50LT5kaXNjb25uZWN0KCk7Cit9CisKK3ZvaWQgV29ya2Vy
Q29udGV4dEluc3BlY3RvclByb3h5SW1wbDo6c2VuZE1lc3NhZ2VUb1dvcmtlckNvbnRleHRJbnNw
ZWN0b3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmIChtX2RldnRvb2xzQWdlbnQp
CisgICAgICAgIG1fZGV2dG9vbHNBZ2VudC0+ZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmQobWVz
c2FnZSk7Cit9CisKKy8vIFdlYkRldlRvb2xzRnJvbnRlbmQgaW1wbGVtZW50YXRpb24uCit2b2lk
IFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGw6OmRpc3BhdGNoT25JbnNwZWN0b3JGcm9u
dGVuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKG1fZnJvbnRlbmRDaGFu
bmVsKQorICAgICAgICBtX2Zyb250ZW5kQ2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKG1l
c3NhZ2UpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
b3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMxMzhl
YTA5MDdkMWU3NWQ1NGMxYjk1NGRiYmVjOWNkOGI5MzdmNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwu
aApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlJbXBs
X2gKKyNkZWZpbmUgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5SW1wbF9oCisKKyNpbmNsdWRl
ICJXZWJEZXZUb29sc0Zyb250ZW5kLmgiCisjaW5jbHVkZSAiV29ya2VyQ29udGV4dEluc3BlY3Rv
clByb3h5LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWw7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworY2xhc3MgV2ViV29ya2VyOworY2xhc3MgV2ViV29ya2VyRGV2VG9vbHNBZ2VudDsKK2NsYXNz
IFdvcmtlckRldlRvb2xzRnJvbnRlbmRQcm94eTsKKworY2xhc3MgV29ya2VyQ29udGV4dEluc3Bl
Y3RvclByb3h5SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJv
eHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFdlYkRl
dlRvb2xzRnJvbnRlbmQgeworcHVibGljOgorICAgIGV4cGxpY2l0IFdvcmtlckNvbnRleHRJbnNw
ZWN0b3JQcm94eUltcGwoV2ViV29ya2VyRGV2VG9vbHNBZ2VudCopOworICAgIHZpcnR1YWwgfldv
cmtlckNvbnRleHRJbnNwZWN0b3JQcm94eUltcGwoKTsKKworcHJpdmF0ZToKKyAgICAvLyBXb3Jr
ZXJDb250ZXh0SW5zcGVjdG9yUHJveHkgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lk
IGNvbm5lY3RGcm9udGVuZChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCk7CisgICAgdmlydHVhbCB2b2lkIHNl
bmRNZXNzYWdlVG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYpOworCisgICAg
Ly8gV2ViRGV2VG9vbHNGcm9udGVuZCBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hPbkluc3BlY3RvckZyb250ZW5kKGNvbnN0IFdlYlN0cmluZyYpOworCisgICAgV2Vi
V29ya2VyRGV2VG9vbHNBZ2VudCogbV9kZXZ0b29sc0FnZW50OworICAgIFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCogbV9mcm9udGVuZENoYW5uZWw7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94228</attachid>
            <date>2011-05-20 08:57:54 -0700</date>
            <delta_ts>2011-05-20 10:22:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60267-20110520195751.patch</filename>
            <type>text/plain</type>
            <size>26639</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY5NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYjM0Y2IzOWRiZTNkOGU1
ZDIyNTIxNjg3ZWQwNjlmM2M3YmUzYzk5Li4xNGUyZDA1Nzk3ZTBjYzM3NjViMjBmYzUzMDlmNmRm
OTE0Nzc2NjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDUtMjAgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBXZWIgSW5zcGVjdG9yOiBwcm92
aWRlIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2Ygd29ya2VyIGluc3BlY3RvciB0cmFuc3BvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwMjY3CisK
KyAgICAgICAgQWxsIG1ldGhvZHMgb2YgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5IGFyZSBp
bmxpbmVkIGluIFdvcmtlckNvbnRleHRQcm94eSBhbmQKKyAgICAgICAgdGhlIGNsYXNzIGl0c2Vs
ZiBpcyByZW1vdmVkLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JXb3JrZXJBZ2VudDo6V29ya2VyRnJvbnRlbmRDaGFubmVsOjpXb3JrZXJGcm9udGVu
ZENoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6Oldvcmtl
ckZyb250ZW5kQ2hhbm5lbDo6cHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29y
a2VyQWdlbnQ6OldvcmtlckZyb250ZW5kQ2hhbm5lbDo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2V0RnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNlbmRNZXNzYWdlVG9X
b3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0YXJ0
V29ya2VyQ29udGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50
Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHkuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHRQcm94eS5oOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyQ29udGV4dFByb3h5Ojpjb25uZWN0VG9JbnNwZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dFByb3h5OjpkaXNjb25uZWN0RnJvbUluc3BlY3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0UHJveHk6OnNlbmRNZXNzYWdlVG9JbnNw
ZWN0b3IpOgorCiAyMDExLTA1LTIwICBQZXRlciBWYXJnYSAgPHB2YXJnYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggMDlkZmZlMjQ0MDJiNTI0OTViMzc4ZGQ4NzFlYjc4Y2Q4YWQ1MmVkNy4u
NWRmNjNkZDQzOTAyMWJkZDFlYmY3MDRlMTQwYTg2MDQyYzhkYzQzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0zNTk1LDcgKzM1OTUsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyQ29udGV4dC5oIFwKLQlTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNv
bnRleHRJbnNwZWN0b3JQcm94eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNv
bnRleHRQcm94eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGFlMDVl
Y2QyMDgwNjgzZmQwNzgwNTk2ZDFmYTA3YjE4NjQ1MTMwNGYuLmU0ZmFiNjRkZTFhNDlkOTZiN2Yw
OWE1ZWQzMDU3YzM1ZjA0MGM3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYwMTYsNyArNjAxNiw2
IEBACiAgICAgICAgICAgICAnd29ya2Vycy9Xb3JrZXIuaCcsCiAgICAgICAgICAgICAnd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmNwcCcsCiAgICAgICAgICAgICAnd29ya2Vycy9Xb3JrZXJDb250ZXh0
LmgnLAotICAgICAgICAgICAgJ3dvcmtlcnMvV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5Lmgn
LAogICAgICAgICAgICAgJ3dvcmtlcnMvV29ya2VyQ29udGV4dFByb3h5LmgnLAogICAgICAgICAg
ICAgJ3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaCcsCiAgICAgICAgICAgICAnd29ya2Vycy9X
b3JrZXJMb2NhdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCA4N2MzODYyNzUxMDQwY2E5MTk1MTA3NjlkMDQ2NzRlMmZlNjgxZjQ4
Li41ZDMzOTczNWY5ZTY0NTM5ZDEwYzIzNTNjMzQ1ZWI4Y2U5MDk4YzAyIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDgxNTAsMTAgKzQ4MTUw
LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
d29ya2Vyc1xXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cd29ya2Vyc1xXb3JrZXJDb250ZXh0UHJv
eHkuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDI3OGYzYjhmNjZiZWY5MjI5NWNhZDQ4ZmVh
N2YyYzA4ZjE3NDViMS4uMGI3OGQ4OWEzY2E0ZDM4MWUzYWYwZWQ1ZWZmYmY5ODhjMTExNDFlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTY0OSw3ICs1NjQ5LDYgQEAKIAkJRjM3NUNDMDcxMTUwRDMwMDAwOEREQjgxIC8qIElu
c3BlY3RvcldvcmtlclJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGMzc1Q0MwNjExNTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2Vy
UmVzb3VyY2UuaCAqLzsgfTsKIAkJRjM4MTBDMUIxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3Rv
cldvcmtlckFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEYzODEwQzE5MTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHAgKi87IH07CiAJCUYzODEwQzFDMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJB
Z2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4
MTBDMUExMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmggKi87IH07Ci0J
CUYzODEwQzFFMTM2NUE0RDQwMEVENkUzMyAvKiBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzODEwQzFE
MTM2NUE0RDQwMEVENkUzMyAvKiBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHkuaCAqLzsgfTsK
IAkJRjM5MjI0OUMxMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM5MjI0OUEx
MjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwICovOyB9OwogCQlG
MzkyMjQ5RDEyNkYxMUFFMDBBOTI2RDkgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM5MjI0OUIxMjZGMTFB
RTAwQTkyNkQ5IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCAqLzsgfTsKIAkJRjM5QkU5NUIx
MjY3M0JGNDAwRTBBNjc0IC8qIFNjcmlwdEFyZ3VtZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzlCRTk1OTEyNjczQkY0MDBFMEE2NzQgLyog
U2NyaXB0QXJndW1lbnRzLmNwcCAqLzsgfTsKQEAgLTEyMTQzLDcgKzEyMTQyLDYgQEAKIAkJRjM3
NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvcldvcmtlclJlc291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzODEwQzE5MTM2NUE0OTYwMEVENkUzMyAvKiBJ
bnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUYzODEwQzFBMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJBZ2VudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMzgxMEMxRDEzNjVBNEQ0MDBFRDZFMzMgLyog
V29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eS5oOyBwYXRoID0gd29ya2Vycy9Xb3Jr
ZXJDb250ZXh0SW5zcGVjdG9yUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjM5MjI0OUExMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0Q2FsbFN0YWNrRmFjdG9y
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzOTIyNDlCMTI2RjExQUUwMEE5
MjZEOSAvKiBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjM5QkU5NTkxMjY3M0JGNDAwRTBBNjc0IC8qIFNjcmlwdEFyZ3VtZW50cy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRBcmd1bWVudHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMzODMsNyArMTMzODEsNiBAQAogCQkJ
CTJFNDM0NjM2MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJDb250ZXh0LmNwcCAqLywKIAkJCQky
RTQzNDYzNzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyQ29udGV4dC5oICovLAogCQkJCTJFNDM0
NjM4MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJDb250ZXh0LmlkbCAqLywKLQkJCQlGMzgxMEMx
RDEzNjVBNEQ0MDBFRDZFMzMgLyogV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5LmggKi8sCiAJ
CQkJMkU0MzQ2MzkwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckNvbnRleHRQcm94eS5oICovLAog
CQkJCTE4RjgzMUI3MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5oICovLAog
CQkJCTJFNDM0NjNBMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJMb2NhdGlvbi5jcHAgKi8sCkBA
IC0yMjc3Myw3ICsyMjc3MCw2IEBACiAJCQkJMzc5OTE5OTcxMjAwRERGNDAwRUEwNDFDIC8qIFdP
RkZGaWxlRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0NjBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0OTBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjM4MTBDMUUxMzY1QTRE
NDAwRUQ2RTMzIC8qIFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkU0MzQ2NEIwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckNvbnRleHRQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjM0NzQyRTExMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRlYnVn
Z2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNkUwN0E1MTM1OEE4QkUwMEFBQ0JDOSAv
KiBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGI4NzVm
MGZmZTkyMWE3MTM5MzM0ZTNhYzhmYjJlM2RhNDY3OGZlM2MuLjkwYjQxYTVlM2I4ZmU0MTRjZDE5
ZDhiNDQzMTI2YzNiMmE3Zjg2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcldvcmtlckFnZW50LmNwcApAQCAtMzgsNDEgKzM4LDQwIEBACiAjaW5jbHVkZSAi
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgi
CiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgotI2luY2x1ZGUgIldvcmtlckNvbnRl
eHRJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHRQcm94eS5oIgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEluc3BlY3RvcldvcmtlckFnZW50OjpXb3JrZXJGcm9u
dGVuZENoYW5uZWwgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsIHsKK2NsYXNzIElu
c3BlY3RvcldvcmtlckFnZW50OjpXb3JrZXJGcm9udGVuZENoYW5uZWwgOiBwdWJsaWMgV29ya2Vy
Q29udGV4dFByb3h5OjpQYWdlSW5zcGVjdG9yIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBXb3Jr
ZXJGcm9udGVuZENoYW5uZWwoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBXb3JrZXJDb250
ZXh0SW5zcGVjdG9yUHJveHkqIGluc3BlY3RvclByb3h5KQorICAgIGV4cGxpY2l0IFdvcmtlckZy
b250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIFdvcmtlckNvbnRleHRQ
cm94eSogcHJveHkpCiAgICAgICAgIDogbV9mcm9udGVuZChmcm9udGVuZCkKLSAgICAgICAgLCBt
X2luc3BlY3RvclByb3h5KGluc3BlY3RvclByb3h5KQorICAgICAgICAsIG1fcHJveHkocHJveHkp
CiAgICAgICAgICwgbV9pZChzX25leHRJZCsrKQogICAgIHsKICAgICB9CiAgICAgdmlydHVhbCB+
V29ya2VyRnJvbnRlbmRDaGFubmVsKCkgeyB9CiAKICAgICBpbnQgaWQoKSBjb25zdCB7IHJldHVy
biBtX2lkOyB9Ci0gICAgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5KiBpbnNwZWN0b3JQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yUHJveHk7IH0KKyAgICBXb3JrZXJDb250ZXh0
UHJveHkqIHByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9wcm94eTsgfQogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQorICAgIC8vIFdvcmtlckNvbnRleHRQcm94eTo6UGFnZUluc3BlY3RvciBpbXBsZW1lbnRhdGlv
bgorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKICAgICB7CiAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gdmFsdWUg
PSBJbnNwZWN0b3JWYWx1ZTo6cGFyc2VKU09OKG1lc3NhZ2UpOwogICAgICAgICBpZiAoIXZhbHVl
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBtZXNzYWdlT2JqZWN0ID0gdmFsdWUtPmFzT2JqZWN0
KCk7CiAgICAgICAgIGlmICghbWVzc2FnZU9iamVjdCkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9mcm9udGVuZC0+d29ya2VyKCktPmRp
c3BhdGNoTWVzc2FnZUZyb21Xb3JrZXIobV9pZCwgbWVzc2FnZU9iamVjdCk7Ci0gICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAogICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOwot
ICAgIFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eSogbV9pbnNwZWN0b3JQcm94eTsKKyAgICBX
b3JrZXJDb250ZXh0UHJveHkqIG1fcHJveHk7CiAgICAgaW50IG1faWQ7CiAgICAgc3RhdGljIGlu
dCBzX25leHRJZDsKIH07CkBAIC0xMTEsMTcgKzExMCwxNyBAQCB2b2lkIEluc3BlY3Rvcldvcmtl
ckFnZW50OjpzZW5kTWVzc2FnZVRvV29ya2VyKEVycm9yU3RyaW5nKiBlcnJvciwgaW50IHdvcmtl
cklkLAogewogICAgIFdvcmtlckZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCA9IG1faWRUb0NoYW5u
ZWwuZ2V0KHdvcmtlcklkKTsKICAgICBpZiAoY2hhbm5lbCkKLSAgICAgICAgY2hhbm5lbC0+aW5z
cGVjdG9yUHJveHkoKS0+c2VuZE1lc3NhZ2VUb1dvcmtlckNvbnRleHRJbnNwZWN0b3IobWVzc2Fn
ZS0+dG9KU09OU3RyaW5nKCkpOworICAgICAgICBjaGFubmVsLT5wcm94eSgpLT5zZW5kTWVzc2Fn
ZVRvSW5zcGVjdG9yKG1lc3NhZ2UtPnRvSlNPTlN0cmluZygpKTsKICAgICBlbHNlCiAgICAgICAg
ICplcnJvciA9ICJXb3JrZXIgaXMgZ29uZSI7CiB9CiAKIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OmRpZFN0YXJ0V29ya2VyQ29udGV4dChXb3JrZXJDb250ZXh0UHJveHkqIHdvcmtlckNvbnRl
eHRQcm94eSkKIHsKLSAgICBXb3JrZXJGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBuZXcgV29y
a2VyRnJvbnRlbmRDaGFubmVsKG1faW5zcGVjdG9yRnJvbnRlbmQsIHdvcmtlckNvbnRleHRQcm94
eS0+aW5zcGVjdG9yUHJveHkoKSk7CisgICAgV29ya2VyRnJvbnRlbmRDaGFubmVsKiBjaGFubmVs
ID0gbmV3IFdvcmtlckZyb250ZW5kQ2hhbm5lbChtX2luc3BlY3RvckZyb250ZW5kLCB3b3JrZXJD
b250ZXh0UHJveHkpOwogICAgIG1faWRUb0NoYW5uZWwuc2V0KGNoYW5uZWwtPmlkKCksIGNoYW5u
ZWwpOwogCi0gICAgd29ya2VyQ29udGV4dFByb3h5LT5pbnNwZWN0b3JQcm94eSgpLT5jb25uZWN0
RnJvbnRlbmQoY2hhbm5lbCk7CisgICAgd29ya2VyQ29udGV4dFByb3h5LT5jb25uZWN0VG9JbnNw
ZWN0b3IoY2hhbm5lbCk7CiAgICAgaWYgKG1faW5zcGVjdG9yRnJvbnRlbmQpCiAgICAgICAgIG1f
aW5zcGVjdG9yRnJvbnRlbmQtPndvcmtlcigpLT53b3JrZXJDcmVhdGVkKGNoYW5uZWwtPmlkKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldvcmtl
ckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQu
aAppbmRleCAyZWI0MzFhNmQyNWFmMTk2ZTc2YzVhMjMyNTljZjAxM2I2MzU3MGFlLi40YTM0YjFm
YmNiMDcxZDZmZjQ1YTJhYzc1MmRiMTAwN2Y5YjUwN2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAtNDEsNyArNDEsNiBAQCBjbGFz
cyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKIGNsYXNzIEluc3Ry
dW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBXb3JrZXJDb250ZXh0UHJveHk7Ci1jbGFzcyBXb3JrZXJD
b250ZXh0SW5zcGVjdG9yUHJveHk7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHRJbnNwZWN0b3JQ
cm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJv
eHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWVhZWMzY2ZhZTNhOGQ3M2U1YjEw
N2YyZGQ5NjA1M2UyOTE3MDQ3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHRJbnNwZWN0b3JQ
cm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV29ya2VyQ29udGV4
dEluc3BlY3RvclByb3h5X2gKLSNkZWZpbmUgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5X2gK
LQotI2lmIEVOQUJMRShXT1JLRVJTKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQotCi0jaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWw7Ci0KLWNsYXNzIFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eSB7Ci1w
dWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKCkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yKGNv
bnN0IFN0cmluZyYpIHsgfQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfldvcmtlckNvbnRleHRJ
bnNwZWN0b3JQcm94eSgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKFdPUktFUlMpCi0KLSNlbmRpZiAvLyBXb3JrZXJDb250ZXh0SW5zcGVjdG9y
UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0
UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dFByb3h5LmgKaW5k
ZXggNjA3YWMwMjU0MjNkYTcwNTk4YWVjNTdmNDRiYzY4ZTZjYzRkZmI5MC4uNGE1MDA1Njk3NjYw
NjliOTE0ZTUzZmJhMjhjMTk2NjkyYTJlMDU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb250ZXh0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckNvbnRleHRQcm94eS5oCkBAIC00MSw3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIEtVUkw7CiAgICAgY2xhc3MgV29ya2VyOwotICAgIGNsYXNzIFdvcmtl
ckNvbnRleHRJbnNwZWN0b3JQcm94eTsKIAogICAgIC8vIEEgcHJveHkgdG8gdGFsayB0byB0aGUg
d29ya2VyIGNvbnRleHQuCiAgICAgY2xhc3MgV29ya2VyQ29udGV4dFByb3h5IHsKQEAgLTYxLDcg
KzYwLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHdvcmtl
ck9iamVjdERlc3Ryb3llZCgpID0gMDsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgICAg
IHZpcnR1YWwgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5KiBpbnNwZWN0b3JQcm94eSgpIHsg
cmV0dXJuIDA7IH0KKyAgICAgICAgY2xhc3MgUGFnZUluc3BlY3RvciB7CisgICAgICAgIHB1Ymxp
YzoKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKGNv
bnN0IFN0cmluZyYpID0gMDsKKyAgICAgICAgfTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNvbm5l
Y3RUb0luc3BlY3RvcihQYWdlSW5zcGVjdG9yKikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBk
aXNjb25uZWN0RnJvbUluc3BlY3RvcigpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1l
c3NhZ2VUb0luc3BlY3Rvcihjb25zdCBTdHJpbmcmKSB7IH0KICNlbmRpZgogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjdjZDNkYTgwMjY2MjlhOWVhNzgwZWU3YzgzNGRl
OWI1YWJkYzIwZC4uZTJlYTFjOTkwNjFkZTk4NjdlOTUwYzg3MDA4YmEwZjU0NTVlMjRkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMS0wNS0yMCAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFdlYiBJbnNwZWN0b3I6IHBy
b3ZpZGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB3b3JrZXIgaW5zcGVjdG9yIHRyYW5zcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAyNjcK
KworICAgICAgICBXZWJXb3JrZXIgYW5kIFdlYldvcmtlckNsaWVudCBhcmUgZXh0ZW5kZWQgd2l0
aCBtZXRob2RzIGZvciBwYXNzaW5nCisgICAgICAgIERldlRvb2xzIG1lc3NhZ2VzIGJldHdlZW4g
d29ya2VyIGNvbnRleHQgaW5zcGVjdG9yIGFuZCBwYWdlIGluc3BlY3Rvci4KKworICAgICAgICAq
IHB1YmxpYy9XZWJXb3JrZXIuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyOjphdHRhY2hE
ZXZUb29scyk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlcjo6ZGV0YWNoRGV2VG9vbHMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXI6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKToKKyAg
ICAgICAgKiBwdWJsaWMvV2ViV29ya2VyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldv
cmtlckNsaWVudDo6ZGlzcGF0Y2hEZXZUb29sc01lc3NhZ2UpOgorICAgICAgICAqIHNyYy9XZWJX
b3JrZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1w
bDo6V2ViV29ya2VyQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVu
dEltcGw6OmNvbm5lY3RUb0luc3BlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNs
aWVudEltcGw6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
V29ya2VyQ2xpZW50SW1wbDo6c2VuZE1lc3NhZ2VUb0luc3BlY3Rvcik6CisgICAgICAgIChXZWJL
aXQ6OldlYldvcmtlckNsaWVudEltcGw6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKToKKyAgICAg
ICAgKiBzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VySW1wbDo6c3RhcnRXb3JrZXJDb250
ZXh0KToKKyAgICAgICAgKFdlYktpdDo6Y29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRh
c2spOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJJbXBsOjphdHRhY2hEZXZUb29scyk6Cisg
ICAgICAgIChXZWJLaXQ6OmRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2sp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJJbXBsOjpkZXRhY2hEZXZUb29scyk6CisgICAg
ICAgIChXZWJLaXQ6OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYldvcmtlckltcGw6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViV29ya2VySW1wbDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kVGFzayk6CisgICAg
ICAgIChXZWJLaXQ6OldlYldvcmtlckltcGw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6CisgICAg
ICAgICogc3JjL1dlYldvcmtlckltcGwuaDoKKwogMjAxMS0wNS0yMCAgVml0YWx5IFJlcGVzaGtv
ICA8dml0YWx5ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldvcmtlci5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyLmgKaW5kZXggOTM5N2JjZGVmNTVhODZhZWZj
OWFjOWIxZWIxMjdiMWI1NTQ4YzlhZC4uZDIwMzg2MmYyYTIwNzIwZjYwN2RhMmJlOGIxMGQzMDhk
NmIyODk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29y
a2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyLmgKQEAg
LTU1LDYgKzU1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgV2ViTWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXkmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdvcmtlck9iamVjdERlc3Ryb3llZCgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xpZW50RGVzdHJveWVkKCkgPSAwOworCisgICAgdmly
dHVhbCB2b2lkIGF0dGFjaERldlRvb2xzKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRldGFjaERl
dlRvb2xzKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKGNv
bnN0IFdlYlN0cmluZyYpIHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXb3JrZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldvcmtlckNsaWVudC5oCmluZGV4IGViMmU2
M2U1Y2U5MzNmMzMxYmYwMGEyY2E1NmI4ZjMzNjhkNTQ0MTIuLjExZTc1N2IyNjlkZTFlMjdiNjUx
OWI5N2VkNDE3MDk3NWEzOTMzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYldvcmtlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYldvcmtlckNsaWVudC5oCkBAIC01Miw2ICs1Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgY29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KGJvb2wgaGFzUGVuZGluZ0Fj
dGl2aXR5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydFBlbmRpbmdBY3Rpdml0eShib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGV2
VG9vbHNNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldl
YldvcmtlckNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKaW5kZXggY2I1MTU1ZDQyOTI3NGQ0ZmI1OTEzNDQ1
YmU3MTE3NDI0ZjNkNzEwNy4uZDI5OGNmNDYyYjY3MGI3ZGM4YjU4NmVhYTdiYWRhNzhkZDJlODMy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHAKQEAgLTEyMCw2ICsxMjAsNyBAQCBXZWJXb3JrZXJDbGllbnRJbXBsOjpXZWJXb3Jr
ZXJDbGllbnRJbXBsKFdvcmtlciogd29ya2VyKQogICAgICwgbV91bmNvbmZpcm1lZE1lc3NhZ2VD
b3VudCgwKQogICAgICwgbV93b3JrZXJDb250ZXh0SGFkUGVuZGluZ0FjdGl2aXR5KGZhbHNlKQog
ICAgICwgbV93b3JrZXJUaHJlYWRJZChjdXJyZW50VGhyZWFkKCkpCisgICAgLCBtX3BhZ2VJbnNw
ZWN0b3IoMCkKIHsKIH0KIApAQCAtMjA3LDYgKzIwOCwyNCBAQCB2b2lkIFdlYldvcmtlckNsaWVu
dEltcGw6Ondvcmtlck9iamVjdERlc3Ryb3llZCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhyZWFkQWNj
ZXNzKHRoaXMpKSk7CiB9CiAKK3ZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6Y29ubmVjdFRvSW5z
cGVjdG9yKFdvcmtlckNvbnRleHRQcm94eTo6UGFnZUluc3BlY3RvciogcGFnZUluc3BlY3RvcikK
K3sKKyAgICBBU1NFUlQoIW1fcGFnZUluc3BlY3Rvcik7CisgICAgbV9wYWdlSW5zcGVjdG9yID0g
cGFnZUluc3BlY3RvcjsKKyAgICBtX3dlYldvcmtlci0+YXR0YWNoRGV2VG9vbHMoKTsKK30KKwor
dm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpkaXNjb25uZWN0RnJvbUluc3BlY3RvcigpCit7Cisg
ICAgbV93ZWJXb3JrZXItPmRldGFjaERldlRvb2xzKCk7CisgICAgbV9wYWdlSW5zcGVjdG9yID0g
MDsKK30KKwordm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpzZW5kTWVzc2FnZVRvSW5zcGVjdG9y
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3dlYldvcmtlci0+ZGlzcGF0Y2hEZXZU
b29sc01lc3NhZ2UobWVzc2FnZSk7Cit9CisKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9z
dE1lc3NhZ2VUb1dvcmtlck9iamVjdChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTWVz
c2FnZVBvcnRDaGFubmVsQXJyYXkmIGNoYW5uZWxzKQogewpAQCAtMzE1LDYgKzMzNCwxMiBAQCB2
b2lkIFdlYldvcmtlckNsaWVudEltcGw6OndvcmtlckNvbnRleHRDbG9zZWQoKQogewogfQogCit2
b2lkIFdlYldvcmtlckNsaWVudEltcGw6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKGNvbnN0IFdl
YlN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAobV9wYWdlSW5zcGVjdG9yKQorICAgICAgICBt
X3BhZ2VJbnNwZWN0b3ItPmRpc3BhdGNoTWVzc2FnZUZyb21Xb3JrZXIobWVzc2FnZSk7Cit9CisK
IHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0VGFzayhTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYldvcmtlckNsaWVudEltcGwqIHRoaXNQdHIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBz
Y3JpcHRVUkwsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3Jr
ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGll
bnRJbXBsLmgKaW5kZXggNzkwMzk5MjQ0MWYxZWE1NDdjNDZkMjA0MzQ1N2U2ZmY2ZjFhNWQyNS4u
Njc0Y2RkMTIwY2E3OTJkYjhmZmMxZjQ0MGZhNzdiMzkyYTIyYjBkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuaApAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJXb3JrZXJDbGll
bnQuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKQEAgLTczLDEzICs3NCwxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJPYmplY3REZXN0
cm95ZWQoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0VG9JbnNwZWN0b3IoV29ya2VyQ29u
dGV4dFByb3h5OjpQYWdlSW5zcGVjdG9yKik7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RG
cm9tSW5zcGVjdG9yKCk7CisgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9JbnNwZWN0b3Io
Y29uc3QgU3RyaW5nJik7CisKICAgICAvLyBXZWJXb3JrZXJDbGllbnQgbWV0aG9kczoKICAgICAv
LyBUaGVzZSBhcmUgY2FsbGVkIG9uIHRoZSBtYWluIFdlYktpdCB0aHJlYWQuCiAgICAgdmlydHVh
bCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViU3RyaW5nJiwgY29uc3Qg
V2ViTWVzc2FnZVBvcnRDaGFubmVsQXJyYXkmKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdEV4Y2Vw
dGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFdlYlN0cmluZyYsIGludCwgY29uc3QgV2ViU3RyaW5n
Jik7CiAKLSAgICAvLyBGSVhNRTogdGhlIGJlbG93IGlzIGZvciBjb21wYXRpYmlsaXR5IG9ubHkg
YW5kIHNob3VsZCBiZSAgICAgCi0gICAgLy8gcmVtb3ZlZCBvbmNlIENocm9taXVtIGlzIHVwZGF0
ZWQgdG8gcmVtb3ZlIG1lc3NhZ2UgCisgICAgLy8gRklYTUU6IHRoZSBiZWxvdyBpcyBmb3IgY29t
cGF0aWJpbGl0eSBvbmx5IGFuZCBzaG91bGQgYmUKKyAgICAvLyByZW1vdmVkIG9uY2UgQ2hyb21p
dW0gaXMgdXBkYXRlZCB0byByZW1vdmUgbWVzc2FnZQogICAgIC8vIGRlc3RpbmF0aW9uIHBhcmFt
ZXRlciA8aHR0cDovL3dlYmtpdC5vcmcvYi8zNzE1NT4uCiAgICAgdmlydHVhbCB2b2lkIHBvc3RD
b25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCwgaW50LCBpbnQsIGludCwgY29uc3QgV2Vi
U3RyaW5nJiwgaW50LCBjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdENv
bnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoaW50LCBpbnQsIGludCwgY29uc3QgV2ViU3RyaW5n
JiwgaW50LCBjb25zdCBXZWJTdHJpbmcmKTsKQEAgLTEwNSw2ICsxMTAsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
dlRvb2xzTWVzc2FnZShjb25zdCBXZWJTdHJpbmcmKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IH5XZWJXb3JrZXJDbGllbnRJbXBsKCk7CiAKQEAgLTE2MCw2ICsxNjcsNyBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fdW5jb25maXJtZWRNZXNzYWdlQ291bnQ7CiAgICAgYm9vbCBtX3dvcmtl
ckNvbnRleHRIYWRQZW5kaW5nQWN0aXZpdHk7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3dvcmtl
clRocmVhZElkOworICAgIFdvcmtlckNvbnRleHRQcm94eTo6UGFnZUluc3BlY3RvciogbV9wYWdl
SW5zcGVjdG9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNwcAppbmRleCBkOWQ4YzdhNzA4M2YwYjRjYmI0
ZDY2NDEwMmMxMTBiMjEyMTM1YzQ4Li44ODlmMDE3N2EwZTE0OGMzZTAwNmE4MzM1OGE2ZDRlNTRh
MGY2YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNw
cApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVk
ZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIK
KyNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogI2luY2x1ZGUgIlBsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmgiCkBAIC0xMDEsOCArMTAzLDcgQEAgdm9pZCBXZWJXb3JrZXJJ
bXBsOjpzdGFydFdvcmtlckNvbnRleHQoY29uc3QgV2ViVVJMJiBzY3JpcHRVcmwsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHNvdXJjZUNv
ZGUpCiB7CiAgICAgaW5pdGlhbGl6ZUxvYWRlcihzY3JpcHRVcmwpOwotICAgIHNldFdvcmtlclRo
cmVhZChEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVcmwsIHVzZXJBZ2VudCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNl
Q29kZSwgKnRoaXMsICp0aGlzKSk7CisgICAgc2V0V29ya2VyVGhyZWFkKERlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKHNjcmlwdFVybCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywg
KnRoaXMpKTsKICAgICAvLyBXb3JrZXIgaW5pdGlhbGl6YXRpb24gbWVhbnMgYSBwZW5kaW5nIGFj
dGl2aXR5LgogICAgIHJlcG9ydFBlbmRpbmdBY3Rpdml0eSh0cnVlKTsKICAgICB3b3JrZXJUaHJl
YWQoKS0+c3RhcnQoKTsKQEAgLTE0Niw2ICsxNDcsNTMgQEAgdm9pZCBXZWJXb3JrZXJJbXBsOjpj
bGllbnREZXN0cm95ZWQoKQogICAgIG1fY2xpZW50ID0gMDsKIH0KIAorc3RhdGljIHZvaWQgY29u
bmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBjaGFubmVsKQoreworICAgIEFTU0VS
VChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgc3RhdGljX2Nhc3Q8V29ya2VyQ29u
dGV4dCo+KGNvbnRleHQpLT53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCktPmNvbm5lY3RGcm9u
dGVuZChjaGFubmVsKTsKK30KKwordm9pZCBXZWJXb3JrZXJJbXBsOjphdHRhY2hEZXZUb29scygp
Cit7CisgICAgd29ya2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFzayhjcmVhdGVDYWxsYmFj
a1Rhc2soY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2ssIEFsbG93Q3Jvc3NUaHJl
YWRBY2Nlc3ModGhpcykpKTsKK30KKworc3RhdGljIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXJD
b250ZXh0SW5zcGVjdG9yVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBib29s
KQoreworICAgIEFTU0VSVChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgc3RhdGlj
X2Nhc3Q8V29ya2VyQ29udGV4dCo+KGNvbnRleHQpLT53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
KCktPmRpc2Nvbm5lY3RGcm9udGVuZCgpOworfQorCit2b2lkIFdlYldvcmtlckltcGw6OmRldGFj
aERldlRvb2xzKCkKK3sKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrKGNy
ZWF0ZUNhbGxiYWNrVGFzayhkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNr
LCB0cnVlKSk7Cit9CisKK3N0YXRpYyB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFz
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
Cit7CisgICAgQVNTRVJUKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKKyAgICBzdGF0aWNf
Y2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCktPndvcmtlckluc3BlY3RvckNvbnRyb2xsZXIo
KS0+ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2UpOworfQorCit2b2lkIFdlYldv
cmtlckltcGw6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYgbWVzc2Fn
ZSkKK3sKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVh
dGVDYWxsYmFja1Rhc2soZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrLCBTdHJpbmcobWVz
c2FnZSkpLCAiZGVidWdnZXIiKTsKK30KKwordm9pZCBXZWJXb3JrZXJJbXBsOjpzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmRUYXNrKAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLAorICAgIFdlYldv
cmtlckltcGwqIHRoaXNQdHIsCisgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHRo
aXNQdHItPm1fY2xpZW50LT5kaXNwYXRjaERldlRvb2xzTWVzc2FnZShtZXNzYWdlKTsKK30KKwor
Ym9vbCBXZWJXb3JrZXJJbXBsOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQoreworICAgIFdlYldvcmtlckJhc2U6OmRpc3BhdGNoVGFza1RvTWFpblRocmVhZChj
cmVhdGVDYWxsYmFja1Rhc2soJnNlbmRNZXNzYWdlVG9Gcm9udGVuZFRhc2ssIEFsbG93Q3Jvc3NU
aHJlYWRBY2Nlc3ModGhpcyksIG1lc3NhZ2UpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogI2Vs
c2UKIAogV2ViV29ya2VyKiBXZWJXb3JrZXI6OmNyZWF0ZShXZWJXb3JrZXJDbGllbnQqIGNsaWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckltcGwuaAppbmRleCBkMmZk
MDE2OTVhZWQxNDc5OWEwOTQ5OTlmMzE5ZGFmMDIwYzRhMjIwLi40ODJjNTc0Y2Y0OTRjOWQ1OGUw
YmY1YmNhYzkyNWMxNzFlODQ3ODA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJXb3JrZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
V29ya2VySW1wbC5oCkBAIC0zNSwxOSArMzUsMTkgQEAKIAogI2lmIEVOQUJMRShXT1JLRVJTKQog
CisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2ViV29ya2VyQmFzZS5oIgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYlZpZXc7CiAKIC8vIFRoaXMgY2xhc3MgaXMgdXNlZCBi
eSB0aGUgd29ya2VyIHByb2Nlc3MgY29kZSB0byB0YWxrIHRvIHRoZSBXZWJDb3JlOjpXb3JrZXIK
IC8vIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuJ3QgdXNlIGl0IGRpcmVjdGx5IHNpbmNlIGl0IHVz
ZXMgV2ViS2l0IHR5cGVzLCBzbyB0aGlzCiAvLyBjbGFzcyBjb252ZXJ0cyB0aGUgZGF0YSB0eXBl
cy4gIFdoZW4gdGhlIFdlYkNvcmU6OldvcmtlciBvYmplY3Qgd2FudHMgdG8gY2FsbAogLy8gV2Vi
Q29yZTo6V29ya2VyT2JqZWN0UHJveHksIHRoaXMgY2xhc3Mgd2lsbCBjb252ZXIgdG8gQ2hyb21l
IGRhdGEgdHlwZXMgZmlyc3QKIC8vIGFuZCB0aGVuIGNhbGwgdGhlIHN1cHBsaWVkIFdlYldvcmtl
ckNsaWVudC4KLWNsYXNzIFdlYldvcmtlckltcGwgOiBwdWJsaWMgV2ViV29ya2VyQmFzZSwgcHVi
bGljIFdlYldvcmtlciB7CitjbGFzcyBXZWJXb3JrZXJJbXBsIDogcHVibGljIFdlYldvcmtlckJh
c2UsIHB1YmxpYyBXZWJXb3JrZXIsIHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwgewogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYldvcmtlckltcGwoV2ViV29ya2VyQ2xp
ZW50KiBjbGllbnQpOwogCkBAIC01OCwxMCArNTgsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCB3b3JrZXJPYmplY3REZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xpZW50RGVz
dHJveWVkKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoRGV2VG9vbHMoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGV0YWNoRGV2VG9vbHMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZXZU
b29sc01lc3NhZ2UoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKKwogICAgIC8vIFdlYldvcmtl
ckJhc2UgbWV0aG9kczoKICAgICB2aXJ0dWFsIFdlYldvcmtlckNsaWVudCogY2xpZW50KCkgeyBy
ZXR1cm4gbV9jbGllbnQ7IH0KICAgICB2aXJ0dWFsIFdlYkNvbW1vbldvcmtlckNsaWVudCogY29t
bW9uQ2xpZW50KCk7CiAKKyAgICAvLyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwgbWV0aG9kczoK
KyAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpOwor
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgfldlYldvcmtlckltcGwoKTsKIApAQCAtNzIsOCArNzks
MTMgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsCiAgICAg
ICAgIFBhc3NPd25QdHI8V2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxz
KTsKIAotICAgIFdlYldvcmtlckNsaWVudCogbV9jbGllbnQ7CisgICAgLy8gVGFza3MgdGhhdCBh
cmUgcnVuIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICBzdGF0aWMgdm9pZCBzZW5kTWVzc2FnZVRv
RnJvbnRlbmRUYXNrKAorICAgICAgICBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwK
KyAgICAgICAgV2ViV29ya2VySW1wbCogdGhpc1B0ciwKKyAgICAgICAgY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UpOwogCisgICAgV2ViV29ya2VyQ2xpZW50KiBtX2NsaWVudDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="87509"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="87519"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94422</attachid>
            <date>2011-05-23 07:18:56 -0700</date>
            <delta_ts>2011-05-23 07:18:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>worker-2.patch</filename>
            <type>text/plain</type>
            <size>33627</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0ZWU4NmY5Li5iMTJmMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTEtMDUtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVt
XSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2Ygd29ya2Vy
IGluc3BlY3RvciB0cmFuc3BvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYwMjY3CisKKyAgICAgICAgQWxsIG1ldGhvZHMgb2YgV29ya2VyQ29udGV4
dEluc3BlY3RvclByb3h5IGFyZSBpbmxpbmVkIGluIFdvcmtlckNvbnRleHRQcm94eSBhbmQKKyAg
ICAgICAgdGhlIGNsYXNzIGl0c2VsZiBpcyByZW1vdmVkLiBNZXNzYWdlcyBmcm9tIHdvcmtlciBp
bnNwZWN0b3IgdG8gcGFnZSBpbnNwZWN0b3IKKyAgICAgICAgYXJlIHNlbnQgYnkgbWVhbnMgb2Yg
V29ya2VyUmVwb3J0aW5nUHJveHkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50OjpXb3JrZXJGcm9udGVuZENoYW5uZWw6Oldvcmtl
ckZyb250ZW5kQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2Vu
dDo6V29ya2VyRnJvbnRlbmRDaGFubmVsOjpwcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JXb3JrZXJBZ2VudDo6V29ya2VyRnJvbnRlbmRDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2VG
cm9tV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50OjpzZW5k
TWVzc2FnZVRvV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50
OjpkaWRTdGFydFdvcmtlckNvbnRleHQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmNv
bm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9s
bGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJQcm94eTo6cG9z
dE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3IpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4
dEluc3BlY3RvclByb3h5Lmg6IFJlbW92ZWQuCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250
ZXh0UHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRQcm94eTo6UGFnZUlu
c3BlY3Rvcjo6flBhZ2VJbnNwZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4
dFByb3h5Ojpjb25uZWN0VG9JbnNwZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29u
dGV4dFByb3h5OjpkaXNjb25uZWN0RnJvbUluc3BlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJDb250ZXh0UHJveHk6OnNlbmRNZXNzYWdlVG9JbnNwZWN0b3IpOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
TWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yKToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJS
ZXBvcnRpbmdQcm94eS5oOgorCiAyMDExLTA1LTE5ICBWaXRhbHkgUmVwZXNoa28gIDx2aXRhbHly
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMDlkZmZlMi4uNWRmNjNkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNTk1LDcgKzM1OTUsNiBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmggXAogCVNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5oIFwKLQlTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckNvbnRleHRJbnNwZWN0b3JQcm94eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckNvbnRleHRQcm94eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGFl
MDVlY2QuLmU0ZmFiNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYwMTYsNyArNjAxNiw2IEBACiAg
ICAgICAgICAgICAnd29ya2Vycy9Xb3JrZXIuaCcsCiAgICAgICAgICAgICAnd29ya2Vycy9Xb3Jr
ZXJDb250ZXh0LmNwcCcsCiAgICAgICAgICAgICAnd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgnLAot
ICAgICAgICAgICAgJ3dvcmtlcnMvV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5LmgnLAogICAg
ICAgICAgICAgJ3dvcmtlcnMvV29ya2VyQ29udGV4dFByb3h5LmgnLAogICAgICAgICAgICAgJ3dv
cmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaCcsCiAgICAgICAgICAgICAnd29ya2Vycy9Xb3JrZXJM
b2NhdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCA4N2MzODYyLi41ZDMzOTczIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDgxNTAsMTAgKzQ4MTUwLDYgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cd29ya2Vyc1xXb3JrZXJD
b250ZXh0SW5zcGVjdG9yUHJveHkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cd29ya2Vyc1xXb3JrZXJDb250ZXh0UHJveHkuaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNDI3OGYzYi4uMGI3OGQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTY0OSw3ICs1NjQ5LDYgQEAK
IAkJRjM3NUNDMDcxMTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzc1Q0MwNjEx
NTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLzsgfTsKIAkJRjM4
MTBDMUIxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzODEwQzE5MTM2NUE0OTYw
MEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgKi87IH07CiAJCUYzODEwQzFDMTM2
NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MTBDMUExMzY1QTQ5NjAwRUQ2RTMzIC8q
IEluc3BlY3RvcldvcmtlckFnZW50LmggKi87IH07Ci0JCUYzODEwQzFFMTM2NUE0RDQwMEVENkUz
MyAvKiBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzODEwQzFEMTM2NUE0RDQwMEVENkUzMyAvKiBXb3Jr
ZXJDb250ZXh0SW5zcGVjdG9yUHJveHkuaCAqLzsgfTsKIAkJRjM5MjI0OUMxMjZGMTFBRTAwQTky
NkQ5IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM5MjI0OUExMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlw
dENhbGxTdGFja0ZhY3RvcnkuY3BwICovOyB9OwogCQlGMzkyMjQ5RDEyNkYxMUFFMDBBOTI2RDkg
LyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjM5MjI0OUIxMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlwdENhbGxT
dGFja0ZhY3RvcnkuaCAqLzsgfTsKIAkJRjM5QkU5NUIxMjY3M0JGNDAwRTBBNjc0IC8qIFNjcmlw
dEFyZ3VtZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGMzlCRTk1OTEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLzsg
fTsKQEAgLTEyMTQzLDcgKzEyMTQyLDYgQEAKIAkJRjM3NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8q
IEluc3BlY3RvcldvcmtlclJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluc3BlY3RvcldvcmtlclJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUYzODEwQzE5MTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzODEwQzFBMTM2NUE0OTYwMEVE
NkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlGMzgxMEMxRDEzNjVBNEQ0MDBFRDZFMzMgLyogV29ya2VyQ29udGV4dEluc3BlY3RvclBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlckNvbnRleHRJbnNw
ZWN0b3JQcm94eS5oOyBwYXRoID0gd29ya2Vycy9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM5MjI0OUExMjZGMTFBRTAwQTkyNkQ5
IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUYzOTIyNDlCMTI2RjExQUUwMEE5MjZEOSAvKiBTY3JpcHRDYWxsU3RhY2tG
YWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdENhbGxTdGFj
a0ZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM5QkU5NTkxMjY3M0JG
NDAwRTBBNjc0IC8qIFNjcmlwdEFyZ3VtZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTY3JpcHRBcmd1bWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTMzODMsNyArMTMzODEsNiBAQAogCQkJCTJFNDM0NjM2MEY1NDZBODIwMEIwRjFC
QSAvKiBXb3JrZXJDb250ZXh0LmNwcCAqLywKIAkJCQkyRTQzNDYzNzBGNTQ2QTgyMDBCMEYxQkEg
LyogV29ya2VyQ29udGV4dC5oICovLAogCQkJCTJFNDM0NjM4MEY1NDZBODIwMEIwRjFCQSAvKiBX
b3JrZXJDb250ZXh0LmlkbCAqLywKLQkJCQlGMzgxMEMxRDEzNjVBNEQ0MDBFRDZFMzMgLyogV29y
a2VyQ29udGV4dEluc3BlY3RvclByb3h5LmggKi8sCiAJCQkJMkU0MzQ2MzkwRjU0NkE4MjAwQjBG
MUJBIC8qIFdvcmtlckNvbnRleHRQcm94eS5oICovLAogCQkJCTE4RjgzMUI3MEZENDhDNzgwMEQ4
QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5oICovLAogCQkJCTJFNDM0NjNBMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJMb2NhdGlvbi5jcHAgKi8sCkBAIC0yMjc3Myw3ICsyMjc3MCw2IEBACiAJ
CQkJMzc5OTE5OTcxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxlRm9ybWF0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRTQzNDY0NjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRTQzNDY0OTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJRjM4MTBDMUUxMzY1QTRENDAwRUQ2RTMzIC8qIFdvcmtlckNvbnRl
eHRJbnNwZWN0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NEIwRjU0NkE4MjAw
QjBGMUJBIC8qIFdvcmtlckNvbnRleHRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NzQy
RTExMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUYzNkUwN0E1MTM1OEE4QkUwMEFBQ0JDOSAvKiBXb3JrZXJJbnNwZWN0b3JDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGI4NzVmMGYuLjkwYjQxYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcApAQCAtMzgs
NDEgKzM4LDQwIEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5o
IgotI2luY2x1ZGUgIldvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIldv
cmtlckNvbnRleHRQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEluc3BlY3Rv
cldvcmtlckFnZW50OjpXb3JrZXJGcm9udGVuZENoYW5uZWwgOiBwdWJsaWMgSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsIHsKK2NsYXNzIEluc3BlY3RvcldvcmtlckFnZW50OjpXb3JrZXJGcm9udGVu
ZENoYW5uZWwgOiBwdWJsaWMgV29ya2VyQ29udGV4dFByb3h5OjpQYWdlSW5zcGVjdG9yIHsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBXb3JrZXJGcm9udGVuZENoYW5uZWwoSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kLCBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHkqIGluc3BlY3RvclByb3h5
KQorICAgIGV4cGxpY2l0IFdvcmtlckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQsIFdvcmtlckNvbnRleHRQcm94eSogcHJveHkpCiAgICAgICAgIDogbV9mcm9udGVu
ZChmcm9udGVuZCkKLSAgICAgICAgLCBtX2luc3BlY3RvclByb3h5KGluc3BlY3RvclByb3h5KQor
ICAgICAgICAsIG1fcHJveHkocHJveHkpCiAgICAgICAgICwgbV9pZChzX25leHRJZCsrKQogICAg
IHsKICAgICB9CiAgICAgdmlydHVhbCB+V29ya2VyRnJvbnRlbmRDaGFubmVsKCkgeyB9CiAKICAg
ICBpbnQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgV29ya2VyQ29udGV4dEluc3Bl
Y3RvclByb3h5KiBpbnNwZWN0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yUHJv
eHk7IH0KKyAgICBXb3JrZXJDb250ZXh0UHJveHkqIHByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9w
cm94eTsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRl
bmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorICAgIC8vIFdvcmtlckNvbnRleHRQcm94eTo6UGFn
ZUluc3BlY3RvciBpbXBsZW1lbnRhdGlvbgorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1lc3Nh
Z2VGcm9tV29ya2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICB7CiAgICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JWYWx1ZT4gdmFsdWUgPSBJbnNwZWN0b3JWYWx1ZTo6cGFyc2VKU09OKG1lc3Nh
Z2UpOwogICAgICAgICBpZiAoIXZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBtZXNzYWdl
T2JqZWN0ID0gdmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghbWVzc2FnZU9iamVjdCkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
bV9mcm9udGVuZC0+d29ya2VyKCktPmRpc3BhdGNoTWVzc2FnZUZyb21Xb3JrZXIobV9pZCwgbWVz
c2FnZU9iamVjdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIEluc3BlY3Rv
ckZyb250ZW5kKiBtX2Zyb250ZW5kOwotICAgIFdvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eSog
bV9pbnNwZWN0b3JQcm94eTsKKyAgICBXb3JrZXJDb250ZXh0UHJveHkqIG1fcHJveHk7CiAgICAg
aW50IG1faWQ7CiAgICAgc3RhdGljIGludCBzX25leHRJZDsKIH07CkBAIC0xMTEsMTcgKzExMCwx
NyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpzZW5kTWVzc2FnZVRvV29ya2VyKEVycm9y
U3RyaW5nKiBlcnJvciwgaW50IHdvcmtlcklkLAogewogICAgIFdvcmtlckZyb250ZW5kQ2hhbm5l
bCogY2hhbm5lbCA9IG1faWRUb0NoYW5uZWwuZ2V0KHdvcmtlcklkKTsKICAgICBpZiAoY2hhbm5l
bCkKLSAgICAgICAgY2hhbm5lbC0+aW5zcGVjdG9yUHJveHkoKS0+c2VuZE1lc3NhZ2VUb1dvcmtl
ckNvbnRleHRJbnNwZWN0b3IobWVzc2FnZS0+dG9KU09OU3RyaW5nKCkpOworICAgICAgICBjaGFu
bmVsLT5wcm94eSgpLT5zZW5kTWVzc2FnZVRvSW5zcGVjdG9yKG1lc3NhZ2UtPnRvSlNPTlN0cmlu
ZygpKTsKICAgICBlbHNlCiAgICAgICAgICplcnJvciA9ICJXb3JrZXIgaXMgZ29uZSI7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0YXJ0V29ya2VyQ29udGV4dChXb3JrZXJD
b250ZXh0UHJveHkqIHdvcmtlckNvbnRleHRQcm94eSkKIHsKLSAgICBXb3JrZXJGcm9udGVuZENo
YW5uZWwqIGNoYW5uZWwgPSBuZXcgV29ya2VyRnJvbnRlbmRDaGFubmVsKG1faW5zcGVjdG9yRnJv
bnRlbmQsIHdvcmtlckNvbnRleHRQcm94eS0+aW5zcGVjdG9yUHJveHkoKSk7CisgICAgV29ya2Vy
RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsID0gbmV3IFdvcmtlckZyb250ZW5kQ2hhbm5lbChtX2lu
c3BlY3RvckZyb250ZW5kLCB3b3JrZXJDb250ZXh0UHJveHkpOwogICAgIG1faWRUb0NoYW5uZWwu
c2V0KGNoYW5uZWwtPmlkKCksIGNoYW5uZWwpOwogCi0gICAgd29ya2VyQ29udGV4dFByb3h5LT5p
bnNwZWN0b3JQcm94eSgpLT5jb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CisgICAgd29ya2VyQ29u
dGV4dFByb3h5LT5jb25uZWN0VG9JbnNwZWN0b3IoY2hhbm5lbCk7CiAgICAgaWYgKG1faW5zcGVj
dG9yRnJvbnRlbmQpCiAgICAgICAgIG1faW5zcGVjdG9yRnJvbnRlbmQtPndvcmtlcigpLT53b3Jr
ZXJDcmVhdGVkKGNoYW5uZWwtPmlkKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCAyZWI0MzFhLi40YTM0YjFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAtNDEs
NyArNDEsNiBAQCBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVj
dDsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBXb3JrZXJDb250ZXh0UHJveHk7
Ci1jbGFzcyBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHk7CiAKIHR5cGVkZWYgU3RyaW5nIEVy
cm9yU3RyaW5nOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggODE0ZWZjNS4uOTUxMmNiNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtNDMsNyArNDMsMTAgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdB
Z2VudHMuaCIKKyNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyRGVi
dWdnZXJBZ2VudC5oIgorI2luY2x1ZGUgIldvcmtlclJlcG9ydGluZ1Byb3h5LmgiCisjaW5jbHVk
ZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNjYsNiArNjksMTkgQEAgcHJpdmF0ZToKICAgICBXb3JrZXJDb250
ZXh0KiBtX3dvcmtlckNvbnRleHQ7CiB9OwogCitjbGFzcyBQYWdlSW5zcGVjdG9yUHJveHkgOiBw
dWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQ
YWdlSW5zcGVjdG9yUHJveHkoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCkgOiBtX3dvcmtl
ckNvbnRleHQod29ya2VyQ29udGV4dCkgeyB9CisgICAgdmlydHVhbCB+UGFnZUluc3BlY3RvclBy
b3h5KCkgeyB9Citwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRl
bmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgbV93b3JrZXJDb250ZXh0
LT50aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0TWVzc2FnZVRvUGFnZUluc3Bl
Y3RvcihtZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIFdvcmtlckNv
bnRleHQqIG1fd29ya2VyQ29udGV4dDsKK307CisKIH0KIAogV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250
ZXh0KQpAQCAtOTMsMTMgKzEwOSwxNCBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjp+V29y
a2VySW5zcGVjdG9yQ29udHJvbGxlcigpCiB7CiB9CiAKLXZvaWQgV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogY2hhbm5l
bCkKK3ZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKIHsK
ICAgICBBU1NFUlQoIW1fZnJvbnRlbmQpOwogICAgIG1fc3RhdGUtPnVubXV0ZSgpOwotICAgIG1f
ZnJvbnRlbmQgPSBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmQoY2hhbm5lbCkpOworICAg
IG1fZnJvbnRlbmRDaGFubmVsID0gYWRvcHRQdHIobmV3IFBhZ2VJbnNwZWN0b3JQcm94eShtX3dv
cmtlckNvbnRleHQpKTsKKyAgICBtX2Zyb250ZW5kID0gYWRvcHRQdHIobmV3IEluc3BlY3RvckZy
b250ZW5kKG1fZnJvbnRlbmRDaGFubmVsLmdldCgpKSk7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ciA9IGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcigKLSAgICAgICAgY2hh
bm5lbCwKKyAgICAgICAgbV9mcm9udGVuZENoYW5uZWwuZ2V0KCksCiAjaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgMCwgLy8gSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50CiAjZW5kaWYKQEAgLTE0OSw2ICsxNjYsNyBAQCB2b2lkIFdvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCgpCiAgICAgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5jbGVhckZyb250ZW5kKCk7CiAKICAgICBtX2Zy
b250ZW5kLmNsZWFyKCk7CisgICAgbV9mcm9udGVuZENoYW5uZWwuY2xlYXIoKTsKIH0KIAogdm9p
ZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggYTk5ZjBjMy4uOTE0OWI1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyKFdvcmtlckNvbnRleHQqKTsKICAgICB+V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigp
OwogCi0gICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKik7
CisgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVu
ZCgpOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYp
OwogCkBAIC03MSw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ+IG1fZGVidWdnZXJBZ2VudDsKICAgICBPd25QdHI8SW5zcGVjdG9yUnVudGltZUFn
ZW50PiBtX3J1bnRpbWVBZ2VudDsKIAorICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWw+IG1fZnJvbnRlbmRDaGFubmVsOwogICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZD4gbV9m
cm9udGVuZDsKICAgICBSZWZQdHI8SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2Vu
ZERpc3BhdGNoZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCBjNDc3OGUzLi5iNDZiMjVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3Jr
ZXJSZXBvc2l0b3J5LmNwcApAQCAtODEsNiArODEsOSBAQCBwdWJsaWM6CiAgICAgLy8gV29ya2Vy
UmVwb3J0aW5nUHJveHkKICAgICB2aXJ0dWFsIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29ya2VyT2Jq
ZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dv
cmtlck9iamVjdChNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCk7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VU
b1BhZ2VJbnNwZWN0b3IoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQg
d29ya2VyQ29udGV4dENsb3NlZCgpOwogICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJDb250ZXh0RGVz
dHJveWVkKCk7CiAKQEAgLTE3OCw2ICsxODEsMTIgQEAgdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6
cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE0K
ICAgICAgICAgKCppdGVyKS0+cG9zdFRhc2soY3JlYXRlQ2FsbGJhY2tUYXNrKCZwb3N0Q29uc29s
ZU1lc3NhZ2VUYXNrLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBz
b3VyY2VVUkwpKTsKIH0KIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCit2b2lkIFNoYXJlZFdvcmtl
clByb3h5Ojpwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmKQoreworfQor
I2VuZGlmCisKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OndvcmtlckNvbnRleHRDbG9zZWQoKQog
ewogICAgIGlmIChpc0Nsb3NpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckNvbnRleHRJbnNwZWN0b3JQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlZWFlYzNjLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dEluc3BlY3RvclByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHlfaAotI2RlZmluZSBXb3JrZXJDb250ZXh0
SW5zcGVjdG9yUHJveHlfaAotCi0jaWYgRU5BQkxFKFdPUktFUlMpICYmIEVOQUJMRShJTlNQRUNU
T1IpCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbDsKLQotY2xhc3MgV29ya2VyQ29udGV4dElu
c3BlY3RvclByb3h5IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdEZyb250ZW5k
KEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25u
ZWN0RnJvbnRlbmQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlckNv
bnRleHRJbnNwZWN0b3IoY29uc3QgU3RyaW5nJikgeyB9Ci1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVh
bCB+V29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5KCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKLQotI2VuZGlmIC8vIFdvcmtl
ckNvbnRleHRJbnNwZWN0b3JQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnRleHRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b250ZXh0UHJveHkuaAppbmRleCA2MDdhYzAyLi44Nzk4ZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dFByb3h5LmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgY2xhc3MgS1VSTDsKICAgICBjbGFzcyBXb3JrZXI7Ci0gICAgY2xh
c3MgV29ya2VyQ29udGV4dEluc3BlY3RvclByb3h5OwogCiAgICAgLy8gQSBwcm94eSB0byB0YWxr
IHRvIHRoZSB3b3JrZXIgY29udGV4dC4KICAgICBjbGFzcyBXb3JrZXJDb250ZXh0UHJveHkgewpA
QCAtNjEsNyArNjAsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgPSAwOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
LSAgICAgICAgdmlydHVhbCBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHkqIGluc3BlY3RvclBy
b3h5KCkgeyByZXR1cm4gMDsgfQorICAgICAgICBjbGFzcyBQYWdlSW5zcGVjdG9yIHsKKyAgICAg
ICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB+UGFnZUluc3BlY3RvcigpIHsgfQorICAg
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Xb3JrZXIoY29uc3QgU3Ry
aW5nJikgPSAwOworICAgICAgICB9OworICAgICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdFRvSW5z
cGVjdG9yKFBhZ2VJbnNwZWN0b3IqKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5l
Y3RGcm9tSW5zcGVjdG9yKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2FnZVRv
SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYpIHsgfQogI2VuZGlmCiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCBhZDY5ZTE2
Li5mNjk5OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcApAQCAtMzUzLDYgKzM1MywxMiBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojp0ZXJtaW5hdGVXb3JrZXJDb250ZXh0KCkKICAgICAgICAgbV93b3JrZXJUaHJlYWQtPnN0b3Ao
KTsKIH0KIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCit2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojpwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmKQoreworfQorI2VuZGlm
CisKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OmNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9i
amVjdChib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkKIHsKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPnBvc3RUYXNrKFdvcmtlclRocmVhZEFjdGl2aXR5UmVwb3J0VGFzazo6Y3JlYXRlKHRo
aXMsIHRydWUsIGhhc1BlbmRpbmdBY3Rpdml0eSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGFiNjExM2EuLjM3MzE0ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTY0LDYgKzY0
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3Nh
Z2VUb1dvcmtlck9iamVjdChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NP
d25QdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KTsKICAgICAgICAgdmlydHVhbCB2b2lkIHBv
c3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAg
ICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3IoY29uc3QgU3RyaW5n
Jik7CisjZW5kaWYKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbmZpcm1NZXNzYWdlRnJvbVdvcmtl
ck9iamVjdChib29sIGhhc1BlbmRpbmdBY3Rpdml0eSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZXBvcnRQZW5kaW5nQWN0aXZpdHkoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgd29ya2VyQ29udGV4dENsb3NlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJSZXBvcnRpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJSZXBvcnRpbmdQcm94eS5oCmluZGV4IGQwZWQzMTIuLmZhNTJmMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUmVwb3J0aW5nUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmgKQEAgLTQ2LDcg
KzQ2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdEV4
Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKLQorI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25z
dCBTdHJpbmcmKSA9IDA7CisjZW5kaWYKICAgICAgICAgLy8gSW52b2tlZCB3aGVuIGNsb3NlKCkg
aXMgaW52b2tlZCBvbiB0aGUgd29ya2VyIGNvbnRleHQuCiAgICAgICAgIHZpcnR1YWwgdm9pZCB3
b3JrZXJDb250ZXh0Q2xvc2VkKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGFkODc2NTAuLmY5MDEzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDAgQEAKKzIwMTEtMDUtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9t
aXVtXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2Ygd29y
a2VyIGluc3BlY3RvciB0cmFuc3BvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYwMjY3CisKKyAgICAgICAgV2ViV29ya2VyIGFuZCBXZWJXb3JrZXJD
bGllbnQgYXJlIGV4dGVuZGVkIHdpdGggbWV0aG9kcyBmb3IgcGFzc2luZworICAgICAgICBEZXZU
b29scyBtZXNzYWdlcyBiZXR3ZWVuIHdvcmtlciBjb250ZXh0IGluc3BlY3RvciBhbmQgcGFnZSBp
bnNwZWN0b3IuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViV29ya2VyLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYldvcmtlcjo6YXR0YWNoRGV2VG9vbHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3Jr
ZXI6OmRldGFjaERldlRvb2xzKToKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyOjpkaXNwYXRj
aERldlRvb2xzTWVzc2FnZSk6CisgICAgICAgICogcHVibGljL1dlYldvcmtlckNsaWVudC5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJDbGllbnQ6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdl
KToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyQmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YldvcmtlckJhc2U6OnBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYktp
dDo6V2ViV29ya2VyQmFzZTo6cG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3JUYXNrKToKKyAgICAg
ICAgKiBzcmMvV2ViV29ya2VyQmFzZS5oOgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6V2ViV29ya2Vy
Q2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OmNvbm5l
Y3RUb0luc3BlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OmRp
c2Nvbm5lY3RGcm9tSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50
SW1wbDo6c2VuZE1lc3NhZ2VUb0luc3BlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtl
ckNsaWVudEltcGw6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKToKKyAgICAgICAgKiBzcmMvV2Vi
V29ya2VyQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViV29ya2VySW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6Y29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2spOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXb3JrZXJJbXBsOjphdHRhY2hEZXZUb29scyk6CisgICAgICAgIChXZWJL
aXQ6OmRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2spOgorICAgICAgICAo
V2ViS2l0OjpXZWJXb3JrZXJJbXBsOjpkZXRhY2hEZXZUb29scyk6CisgICAgICAgIChXZWJLaXQ6
OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYldv
cmtlckltcGw6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKToKKyAgICAgICAgKiBzcmMvV2ViV29y
a2VySW1wbC5oOgorCiAyMDExLTA1LTIyICBHcmVnIFNpbW9uICA8Z3JlZ3NpbW9uQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXb3JrZXIuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYldvcmtlci5oCmluZGV4IDkzOTdiY2QuLmQyMDM4NjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldvcmtlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldvcmtlci5oCkBAIC01NSw2ICs1NSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5JikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJPYmplY3REZXN0cm95ZWQoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNsaWVudERlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hEZXZUb29scygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hEZXZUb29scygpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERldlRvb2xzTWVzc2FnZShjb25zdCBXZWJTdHJpbmcm
KSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJXb3JrZXJDbGllbnQuaAppbmRleCBlYjJlNjNlLi4xMWU3NTdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXb3JrZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXb3JrZXJDbGllbnQuaApA
QCAtNTIsNiArNTIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbmZpcm1NZXNzYWdl
RnJvbVdvcmtlck9iamVjdChib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCByZXBvcnRQZW5kaW5nQWN0aXZpdHkoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpID0g
MDsKIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERldlRvb2xzTWVzc2FnZShjb25zdCBXZWJT
dHJpbmcmKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJXb3JrZXJDbGllbnQoKSB7IH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCmluZGV4IGQz
ZmEyNmQuLmJkNjc4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YldvcmtlckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtl
ckJhc2UuY3BwCkBAIC00MjIsNiArNDIyLDE4IEBAIHZvaWQgV2ViV29ya2VyQmFzZTo6cG9zdENv
bnNvbGVNZXNzYWdlVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
aW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCit2b2lkIFdlYldvcmtlckJhc2U6OnBvc3RNZXNz
YWdlVG9QYWdlSW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBkaXNwYXRj
aFRhc2tUb01haW5UaHJlYWQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZwb3N0TWVzc2FnZVRvUGFnZUlu
c3BlY3RvclRhc2ssIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcyksIG1lc3NhZ2UpKTsKK30K
Kwordm9pZCBXZWJXb3JrZXJCYXNlOjpwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3RvclRhc2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFdlYldvcmtlckJhc2UqIHRoaXNQdHIsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIXRoaXNQdHItPmNsaWVudCgpKQorICAgICAgICByZXR1
cm47CisgICAgdGhpc1B0ci0+Y2xpZW50KCktPmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKG1lc3Nh
Z2UpOworfQorCiB2b2lkIFdlYldvcmtlckJhc2U6OmNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9i
amVjdChib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkKIHsKICAgICBkaXNwYXRjaFRhc2tUb01haW5U
aHJlYWQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZjb25maXJtTWVzc2FnZVRhc2ssIEFsbG93Q3Jvc3NU
aHJlYWRBY2Nlc3ModGhpcyksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJXb3JrZXJCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJC
YXNlLmgKaW5kZXggMWFhYzdhYS4uOWVmY2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYldvcmtlckJhc2UuaApAQCAtNzQsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KAogICAgICAgICBXZWJDb3Jl
OjpNZXNzYWdlU291cmNlLCBXZWJDb3JlOjpNZXNzYWdlVHlwZSwKICAgICAgICAgV2ViQ29yZTo6
TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYsIGludCwgY29uc3QgV1RGOjpTdHJpbmcm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3IoY29uc3QgV1RG
OjpTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgY29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2Jq
ZWN0KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRQZW5kaW5nQWN0aXZpdHkoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHdvcmtlckNvbnRleHRDbG9zZWQoKTsKQEAgLTEzOCw2ICsxMzks
NyBAQCBwcml2YXRlOgogICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwKICAgICAg
ICAgaW50IGxpbmVOdW1iZXIsCiAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwp
OworICAgIHN0YXRpYyB2b2lkIHBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yVGFzayhXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViV29ya2VyQmFzZSosIGNvbnN0IFdURjo6U3Ry
aW5nJik7CiAgICAgc3RhdGljIHZvaWQgY29uZmlybU1lc3NhZ2VUYXNrKAogICAgICAgICBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAogICAgICAgICBXZWJXb3JrZXJC
YXNlKiB0aGlzUHRyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
V29ya2VyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3Jr
ZXJDbGllbnRJbXBsLmNwcAppbmRleCBjYjUxNTVkLi5kMjk4Y2Y0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcApAQCAtMTIwLDYg
KzEyMCw3IEBAIFdlYldvcmtlckNsaWVudEltcGw6OldlYldvcmtlckNsaWVudEltcGwoV29ya2Vy
KiB3b3JrZXIpCiAgICAgLCBtX3VuY29uZmlybWVkTWVzc2FnZUNvdW50KDApCiAgICAgLCBtX3dv
cmtlckNvbnRleHRIYWRQZW5kaW5nQWN0aXZpdHkoZmFsc2UpCiAgICAgLCBtX3dvcmtlclRocmVh
ZElkKGN1cnJlbnRUaHJlYWQoKSkKKyAgICAsIG1fcGFnZUluc3BlY3RvcigwKQogewogfQogCkBA
IC0yMDcsNiArMjA4LDI0IEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6d29ya2VyT2JqZWN0
RGVzdHJveWVkKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcykpKTsKIH0KIAor
dm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpjb25uZWN0VG9JbnNwZWN0b3IoV29ya2VyQ29udGV4
dFByb3h5OjpQYWdlSW5zcGVjdG9yKiBwYWdlSW5zcGVjdG9yKQoreworICAgIEFTU0VSVCghbV9w
YWdlSW5zcGVjdG9yKTsKKyAgICBtX3BhZ2VJbnNwZWN0b3IgPSBwYWdlSW5zcGVjdG9yOworICAg
IG1fd2ViV29ya2VyLT5hdHRhY2hEZXZUb29scygpOworfQorCit2b2lkIFdlYldvcmtlckNsaWVu
dEltcGw6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKCkKK3sKKyAgICBtX3dlYldvcmtlci0+ZGV0
YWNoRGV2VG9vbHMoKTsKKyAgICBtX3BhZ2VJbnNwZWN0b3IgPSAwOworfQorCit2b2lkIFdlYldv
cmtlckNsaWVudEltcGw6OnNlbmRNZXNzYWdlVG9JbnNwZWN0b3IoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQoreworICAgIG1fd2ViV29ya2VyLT5kaXNwYXRjaERldlRvb2xzTWVzc2FnZShtZXNzYWdl
KTsKK30KKwogdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0TWVzc2FnZVRvV29ya2VyT2Jq
ZWN0KGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eSYgY2hhbm5lbHMpCiB7CkBAIC0zMTUsNiArMzM0LDEyIEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50
SW1wbDo6d29ya2VyQ29udGV4dENsb3NlZCgpCiB7CiB9CiAKK3ZvaWQgV2ViV29ya2VyQ2xpZW50
SW1wbDo6ZGlzcGF0Y2hEZXZUb29sc01lc3NhZ2UoY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKQor
eworICAgIGlmIChtX3BhZ2VJbnNwZWN0b3IpCisgICAgICAgIG1fcGFnZUluc3BlY3Rvci0+ZGlz
cGF0Y2hNZXNzYWdlRnJvbVdvcmtlcihtZXNzYWdlKTsKK30KKwogdm9pZCBXZWJXb3JrZXJDbGll
bnRJbXBsOjpzdGFydFdvcmtlckNvbnRleHRUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViV29ya2VyQ2xpZW50SW1wbCogdGhpc1B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHNjcmlwdFVSTCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuaAppbmRleCA3OTAz
OTkyLi42NzRjZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJX
b3JrZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29y
a2VyQ2xpZW50SW1wbC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViRmlsZVN5c3Rl
bS5oIgogI2luY2x1ZGUgIldlYldvcmtlckNsaWVudC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRl
eHRQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAtNzMsMTMgKzc0LDE3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHdvcmtlck9iamVjdERlc3Ryb3llZCgpOwogCisgICAgdmlydHVhbCB2b2lk
IGNvbm5lY3RUb0luc3BlY3RvcihXb3JrZXJDb250ZXh0UHJveHk6OlBhZ2VJbnNwZWN0b3IqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyb21JbnNwZWN0b3IoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2VuZE1lc3NhZ2VUb0luc3BlY3Rvcihjb25zdCBTdHJpbmcmKTsKKwogICAgIC8vIFdl
YldvcmtlckNsaWVudCBtZXRob2RzOgogICAgIC8vIFRoZXNlIGFyZSBjYWxsZWQgb24gdGhlIG1h
aW4gV2ViS2l0IHRocmVhZC4KICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlck9i
amVjdChjb25zdCBXZWJTdHJpbmcmLCBjb25zdCBXZWJNZXNzYWdlUG9ydENoYW5uZWxBcnJheSYp
OwogICAgIHZpcnR1YWwgdm9pZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgV2Vi
U3RyaW5nJiwgaW50LCBjb25zdCBXZWJTdHJpbmcmKTsKIAotICAgIC8vIEZJWE1FOiB0aGUgYmVs
b3cgaXMgZm9yIGNvbXBhdGliaWxpdHkgb25seSBhbmQgc2hvdWxkIGJlICAgICAKLSAgICAvLyBy
ZW1vdmVkIG9uY2UgQ2hyb21pdW0gaXMgdXBkYXRlZCB0byByZW1vdmUgbWVzc2FnZSAKKyAgICAv
LyBGSVhNRTogdGhlIGJlbG93IGlzIGZvciBjb21wYXRpYmlsaXR5IG9ubHkgYW5kIHNob3VsZCBi
ZQorICAgIC8vIHJlbW92ZWQgb25jZSBDaHJvbWl1bSBpcyB1cGRhdGVkIHRvIHJlbW92ZSBtZXNz
YWdlCiAgICAgLy8gZGVzdGluYXRpb24gcGFyYW1ldGVyIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM3
MTU1Pi4KICAgICB2aXJ0dWFsIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3Qo
aW50LCBpbnQsIGludCwgaW50LCBjb25zdCBXZWJTdHJpbmcmLCBpbnQsIGNvbnN0IFdlYlN0cmlu
ZyYpOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChp
bnQsIGludCwgaW50LCBjb25zdCBXZWJTdHJpbmcmLCBpbnQsIGNvbnN0IFdlYlN0cmluZyYpOwpA
QCAtMTA1LDYgKzExMCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGV2VG9vbHNNZXNzYWdlKGNvbnN0IFdlYlN0cmlu
ZyYpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgfldlYldvcmtlckNsaWVudEltcGwoKTsKIApA
QCAtMTYwLDYgKzE2Nyw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV91bmNvbmZpcm1lZE1l
c3NhZ2VDb3VudDsKICAgICBib29sIG1fd29ya2VyQ29udGV4dEhhZFBlbmRpbmdBY3Rpdml0eTsK
ICAgICBUaHJlYWRJZGVudGlmaWVyIG1fd29ya2VyVGhyZWFkSWQ7CisgICAgV29ya2VyQ29udGV4
dFByb3h5OjpQYWdlSW5zcGVjdG9yKiBtX3BhZ2VJbnNwZWN0b3I7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJX
b3JrZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckltcGwu
Y3BwCmluZGV4IGQ5ZDhjN2EuLjBmOWY5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYldvcmtlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYldvcmtlckltcGwuY3BwCkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRl
ICJTdWJzdGl0dXRlRGF0YS5oIgorI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CiAjaW5jbHVkZSAiUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCIKQEAgLTEwMSw4ICsxMDMs
NyBAQCB2b2lkIFdlYldvcmtlckltcGw6OnN0YXJ0V29ya2VyQ29udGV4dChjb25zdCBXZWJVUkwm
IHNjcmlwdFVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYlN0cmluZyYgc291cmNlQ29kZSkKIHsKICAgICBpbml0aWFsaXplTG9hZGVyKHNjcmlwdFVy
bCk7Ci0gICAgc2V0V29ya2VyVGhyZWFkKERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNj
cmlwdFVybCwgdXNlckFnZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMpKTsKKyAgICBzZXRXb3JrZXJU
aHJlYWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VXJsLCB1c2VyQWdlbnQs
IHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcykpOwogICAgIC8vIFdvcmtlciBpbml0aWFsaXphdGlv
biBtZWFucyBhIHBlbmRpbmcgYWN0aXZpdHkuCiAgICAgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KHRy
dWUpOwogICAgIHdvcmtlclRocmVhZCgpLT5zdGFydCgpOwpAQCAtMTQ2LDYgKzE0NywzOSBAQCB2
b2lkIFdlYldvcmtlckltcGw6OmNsaWVudERlc3Ryb3llZCgpCiAgICAgbV9jbGllbnQgPSAwOwog
fQogCitzdGF0aWMgdm9pZCBjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBib29sKQoreworICAgIEFTU0VSVChjb250ZXh0
LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+KGNv
bnRleHQpLT53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCktPmNvbm5lY3RGcm9udGVuZCgpOwor
fQorCit2b2lkIFdlYldvcmtlckltcGw6OmF0dGFjaERldlRvb2xzKCkKK3sKKyAgICB3b3JrZXJU
aHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrKGNyZWF0ZUNhbGxiYWNrVGFzayhjb25uZWN0VG9X
b3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywgdHJ1ZSkpOworfQorCitzdGF0aWMgdm9pZCBkaXNj
b25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIGJvb2wpCit7CisgICAgQVNTRVJUKGNvbnRleHQtPmlzV29ya2VyQ29udGV4
dCgpKTsKKyAgICBzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCktPndvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlzY29ubmVjdEZyb250ZW5kKCk7Cit9CisKK3ZvaWQgV2Vi
V29ya2VySW1wbDo6ZGV0YWNoRGV2VG9vbHMoKQoreworICAgIHdvcmtlclRocmVhZCgpLT5ydW5M
b29wKCkucG9zdFRhc2soY3JlYXRlQ2FsbGJhY2tUYXNrKGRpc2Nvbm5lY3RGcm9tV29ya2VyQ29u
dGV4dEluc3BlY3RvclRhc2ssIHRydWUpKTsKK30KKworc3RhdGljIHZvaWQgZGlzcGF0Y2hPbklu
c3BlY3RvckJhY2tlbmRUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBBU1NFUlQoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0
KCkpOworICAgIHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KS0+d29ya2VySW5z
cGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQobWVzc2FnZSk7
Cit9CisKK3ZvaWQgV2ViV29ya2VySW1wbDo6ZGlzcGF0Y2hEZXZUb29sc01lc3NhZ2UoY29uc3Qg
V2ViU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9z
dFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2Vu
ZFRhc2ssIFN0cmluZyhtZXNzYWdlKSksICJkZWJ1Z2dlciIpOworfQorCiAjZWxzZQogCiBXZWJX
b3JrZXIqIFdlYldvcmtlcjo6Y3JlYXRlKFdlYldvcmtlckNsaWVudCogY2xpZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5oCmluZGV4IGQyZmQwMTYuLjc5Yzlj
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmgKQEAgLTQw
LDcgKzQwLDYgQEAKICNpbmNsdWRlICJXZWJXb3JrZXJCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewotY2xhc3MgV2ViVmlldzsKIAogLy8gVGhpcyBjbGFzcyBpcyB1c2VkIGJ5IHRoZSB3b3Jr
ZXIgcHJvY2VzcyBjb2RlIHRvIHRhbGsgdG8gdGhlIFdlYkNvcmU6OldvcmtlcgogLy8gaW1wbGVt
ZW50YXRpb24uICBJdCBjYW4ndCB1c2UgaXQgZGlyZWN0bHkgc2luY2UgaXQgdXNlcyBXZWJLaXQg
dHlwZXMsIHNvIHRoaXMKQEAgLTU4LDYgKzU3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCk7CiAgICAgdmlydHVhbCB2b2lkIGNsaWVudERlc3Ry
b3llZCgpOwogCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaERldlRvb2xzKCk7CisgICAgdmlydHVh
bCB2b2lkIGRldGFjaERldlRvb2xzKCk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGV2VG9v
bHNNZXNzYWdlKGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CisKICAgICAvLyBXZWJXb3JrZXJC
YXNlIG1ldGhvZHM6CiAgICAgdmlydHVhbCBXZWJXb3JrZXJDbGllbnQqIGNsaWVudCgpIHsgcmV0
dXJuIG1fY2xpZW50OyB9CiAgICAgdmlydHVhbCBXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1v
bkNsaWVudCgpOwpAQCAtNzMsNyArNzYsNiBAQCBwcml2YXRlOgogICAgICAgICBQYXNzT3duUHRy
PFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscyk7CiAKICAgICBXZWJX
b3JrZXJDbGllbnQqIG1fY2xpZW50OwotCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>