<?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>140410</bug_id>
          
          <creation_ts>2015-01-13 14:11:51 -0800</creation_ts>
          <short_desc>[WK2][iOS] Add Cocoa delegate for logging diagnostic messages</short_desc>
          <delta_ts>2015-01-17 17:41:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>140486</dependson>
          <blocked>140463</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kling</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1060929</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-13 14:11:51 -0800</bug_when>
    <thetext>Add Cocoa delegate for logging diagnostic messages. Right now, there is only a WK2 C API client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061280</commentid>
    <comment_count>1</comment_count>
      <attachid>244630</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-14 13:09:43 -0800</bug_when>
    <thetext>Created attachment 244630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061294</commentid>
    <comment_count>2</comment_count>
      <attachid>244634</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-14 13:48:36 -0800</bug_when>
    <thetext>Created attachment 244634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061367</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-14 15:47:12 -0800</bug_when>
    <thetext>Unless we really need this code to run in the WebProcess, I would rather we IPC this over to the UIProcess and do it there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061771</commentid>
    <comment_count>4</comment_count>
      <attachid>244751</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-15 21:41:00 -0800</bug_when>
    <thetext>Created attachment 244751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061859</commentid>
    <comment_count>5</comment_count>
      <attachid>244777</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-16 11:26:24 -0800</bug_when>
    <thetext>Created attachment 244777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061921</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-16 12:58:16 -0800</bug_when>
    <thetext>Sam, could you please take another look? I updated the patch now that diagnostic messages go through the UIProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061925</commentid>
    <comment_count>7</comment_count>
      <attachid>244777</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-01-16 13:02:36 -0800</bug_when>
    <thetext>Comment on attachment 244777
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:38
&gt; +- (void)_webView:(WKWebView *)webView logDiagnosticMessage:(NSString *)message inDescription:(NSString *)description;
&gt; +- (void)_webView:(WKWebView *)webView logDiagnosticMessageWithResult:(NSString *)message inDescription:(NSString *)description inResult:(WKDiagnosticLoggingResultType)result;
&gt; +- (void)_webView:(WKWebView *)webView logDiagnosticMessageWithValue:(NSString *)message inDescription:(NSString *)description inValue:(NSString *) value;

I think these read a little weird, especially the &quot;inDescription&quot; and &quot;inValue&quot; parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061930</commentid>
    <comment_count>8</comment_count>
      <attachid>244796</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-16 13:06:42 -0800</bug_when>
    <thetext>Created attachment 244796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061931</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-16 13:08:08 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 244777 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=244777&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:38
&gt; &gt; +- (void)_webView:(WKWebView *)webView logDiagnosticMessage:(NSString *)message inDescription:(NSString *)description;
&gt; &gt; +- (void)_webView:(WKWebView *)webView logDiagnosticMessageWithResult:(NSString *)message inDescription:(NSString *)description inResult:(WKDiagnosticLoggingResultType)result;
&gt; &gt; +- (void)_webView:(WKWebView *)webView logDiagnosticMessageWithValue:(NSString *)message inDescription:(NSString *)description inValue:(NSString *) value;
&gt; 
&gt; I think these read a little weird, especially the &quot;inDescription&quot; and
&gt; &quot;inValue&quot; parts.

Ok, I am really not familiar with ObjC and its conventions. I switched to description/value/result instead of inDescription/inValue/inResult. Let me know if you have other suggestions so that these read better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062146</commentid>
    <comment_count>10</comment_count>
      <attachid>244796</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-17 17:41:14 -0800</bug_when>
    <thetext>Comment on attachment 244796
Patch

Clearing flags on attachment: 244796

Committed r178630: &lt;http://trac.webkit.org/changeset/178630&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062147</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-17 17:41:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244630</attachid>
            <date>2015-01-14 13:09:43 -0800</date>
            <delta_ts>2015-01-14 13:48:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140410-20150114130949.patch</filename>
            <type>text/plain</type>
            <size>33970</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4Mzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODk4ZjhkMDVhMjdhN2I4
M2E1MTNiN2Y3YmJiMzIxNTViYTlkNDQ2Yy4uMDFiMTgyNGExNjQ2NWRiOTQ3ZTdmZDkwNjZlODVj
YjMzZmQxNTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTAxLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl1baU9TXSBBZGQgQ29j
b2EgZGVsZWdhdGUgZm9yIGxvZ2dpbmcgZGlhZ25vc3RpYyBtZXNzYWdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIENvY29hIGRlbGVnYXRlIGZv
ciBsb2dnaW5nIGRpYWdub3N0aWMgbWVzc2FnZXMgb24gaU9TLgorICAgICAgICBFdmVudHVhbGx5
LCB0aGUgRmVhdHVyZUNvdW50ZXIgY2xhc3Mgd2lsbCBnbyBhd2F5IGFuZCB3ZSdsbAorICAgICAg
ICBqdXN0IHVzZSB0aGUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuCisKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdE
ZWxlZ2F0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
UHJpdmF0ZS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZVNldERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0RpYWdub3N0aWNSZXN1bHRUeXBlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmguCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyIF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlXSk6CisgICAg
ICAgIChjb25zdHJ1Y3REaWFnbm9zdGljS2V5KToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIF9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
Ol0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaC4KKyAg
ICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKEFQ
STo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6RGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0SW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlRm9ybUNsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVUlDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KToKKwogMjAxNS0wMS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBhZnRlciByMTc4Mzc1LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU5
YjJmODdlNjFmMDExN2QzNmM2OGEzMTUzZDAwNzQxNGY2NmJiOTkuLjc1YjA1ODg4ODRjMmYzZTBh
NjM5OGE2NDNlNTY3MGIwZGMyYzNlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTgwMSw2ICs4MDEsOSBAQAogCQkzRjg4OUQx
NDE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTIxODg3
NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAqLzsgfTsK
IAkJM0Y4ODlEMTUxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4
ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
ICovOyB9OwogCQkzRjg4OUQxNzE4ODc4NTkzMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDNGODg5RDBEMTg4NzY5OUMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
ICovOyB9OworCQk0NjUwMkY0NTFBNjcwMEY2MDA5RkQwRjUgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY1MDJGNDQxQTY3MDBGNjAwOUZEMEY1IC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0Njg5RkE2NzFBNjVBMUU4MDAzRjdBMUMgLyog
QVBJSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4OUZBNjYxQTY1QTFFODAwM0Y3QTFD
IC8qIEFQSUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgfTsKKwkJ
NDZFMjNBNEMxQTY1Q0E1MTAwOUE5QzdDIC8qIFdLRGlhZ25vc3RpY1Jlc3VsdFR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RTIzQTRCMUE2NUNB
NTEwMDlBOUM3QyAvKiBXS0RpYWdub3N0aWNSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVG
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJF
QkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07
CiAJCTRBM0NDMThCMTlCMDY0MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmggKi87IH07CiAJCTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNCMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCAqLzsgfTsKQEAgLTI4NzAsNiArMjg3Myw5
IEBACiAJCTNGODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW07IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg4OUQx
MzE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg4OUQxNjE4ODc3QTI0MDBGRUFEQUYgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2NTAyRjQ0MUE2NzAwRjYwMDlGRDBGNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5EaWFnbm9z
dGljTG9nZ2luZ0RlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
V2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUZBNjYxQTY1QTFFODAwM0Y3QTFDIC8qIEFQSUluamVjdGVk
QnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVBJSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkUyM0E0QjFBNjVDQTUxMDA5QTlDN0MgLyogV0tE
aWFnbm9zdGljUmVzdWx0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0RpYWdub3N0aWNSZXN1bHRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRB
NDEwRjM1MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTQxMEYzNjE5
QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAv
KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODAzLDYgKzQ4MDks
NyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUFBMkU1NjUxOEQ3NzUwODAwMzgxNEJEIC8qIFdL
V2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMuaCAqLywKIAkJCQkxQUEyRTU2NDE4RDc3NTA4MDAz
ODE0QkQgLyogV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycy5tbSAqLywKKwkJCQk0NjUwMkY0
NDFBNjcwMEY2MDA5RkQwRjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdE
ZWxlZ2F0ZS5oICovLAogCQkJCTM3OTU3ODlCMThBRDRGMTEwMEI5RUQyRSAvKiBXS1dlYlByb2Nl
c3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJMUYwMTgxNjkxODU4REMxNTAw
RjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8sCiAJCQkJMUYwMTgxNkExODU4
REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovLApAQCAtNjI5Nyw2
ICs2MzA0LDcgQEAKIAkJCQlCQzIwNEVFNzExQzgzRUFEMDA4RjMzNzUgLyogQVBJICovLAogCQkJ
CUJDNEJFRTk2MTIwQTA5MTcwMEZCQTBDNyAvKiBET00gKi8sCiAJCQkJQkMyMDRFRTQxMUM4M0U5
QzAwOEYzMzc1IC8qIG1hYyAqLywKKwkJCQk0Njg5RkE2NjFBNjVBMUU4MDAzRjdBMUMgLyogQVBJ
SW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJCTM3NjkwNzlD
MThGMzQwQTIwMDFERkYwNCAvKiBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaCAqLywKIAkJ
CQkzNzY5MDc5ODE4RjMxQ0IyMDAxREZGMDQgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGll
bnQuaCAqLywKIAkJCQlCQzIwNEVFMDExQzgzRTk4MDA4RjMzNzUgLyogSW5qZWN0ZWRCdW5kbGUu
Y3BwICovLApAQCAtNjQwNiw2ICs2NDE0LDcgQEAKIAkJCQlCQzVEMjRDNjE2Q0Q3M0M1MDA3RDU0
NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCAqLywKIAkJCQlCQzE0REY5QzEyMEI2
MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAgKi8sCiAJCQkJQkMxNERGOUQx
MjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29ybGQuaCAqLywKKwkJCQk0NkUyM0E0
QjFBNjVDQTUxMDA5QTlDN0MgLyogV0tEaWFnbm9zdGljUmVzdWx0VHlwZS5oICovLAogCQkJKTsK
IAkJCXBhdGggPSBjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTc1MDQsNiArNzUx
Myw3IEBACiAJCQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNUUyMDA0MThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREEwNDlCNDE4MENDQ0QzMDBB
QUZBOUUgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjUw
MkY0NTFBNjcwMEY2MDA5RkQwRjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dp
bmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4NzEwMTcxODI4NDE1RDAwMThGQTAx
IC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4
OTQ5RjExODIwNDRGNjAwRTg5OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDNDNBQkIxMjdCOTVEQzAwMzE3RjE2IC8qIFBsYXRm
b3JtUG9wdXBNZW51RGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC03NjQ1LDYgKzc2NTUsNyBAQAog
CQkJCTUxMjkzNUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxMEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUFDQkI4MjEyN0E4QkFEMDBEMjAzQjkg
LyogV2ViQ29udGV4dE1lbnVQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDZFMjNBNEMxQTY1
Q0E1MTAwOUE5QzdDIC8qIFdLRGlhZ25vc3RpY1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxQUNCQkEwMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y0REUyNTE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4
dFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMDkzNDUwMTMxNUI5NEQwMDk3QTdC
QyAvKiBXZWJDb29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTc3NjIsNiArNzc3Myw3
IEBACiAJCQkJMUEwNDNBMDkxMjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTA0M0Y2QTEyNTE0RDhCMDBGRkJGQjUgLyogV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzMDY4MjQxMjVB
NkI5NDAwRTcxMjc4IC8qIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQ2ODlGQTY3MUE2NUExRTgwMDNGN0ExQyAvKiBBUElJbmplY3RlZEJ1bmRsZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzMwNjZCRjEyNUE0
NDIxMDBFNzEyNzggLyogV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0U0RDIxQjFBNDkxNEEzMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2wuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDRTREMjI4MUE0OTE2QzIwMEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9vbE1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dn
aW5nRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNWE4NWQ3ZjJiY2Y4YTcyMDhmNTI0OGRkMmE4MDg5ZjllMmQ5OWZjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9u
Lmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KKworQHByb3RvY29sIFdLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVs
ZWdhdGUgPE5TT2JqZWN0PgorQG9wdGlvbmFsCisKKy0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgaW5jcmVtZW50S2V5OihOU1N0cmluZyAqKWtleSBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CisKK0BlbmQKKworI2VuZGlmIC8vIFdL
X0FQSV9FTkFCTEVECisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBiYTIzMjk2
ZDc5ZTQ4OWEyNWU2MmQzYThiNzBmMzc4N2VlNjg5ODQ2Li4yMjk1NDUwYjMzZjZkMTgyZDNhZWI0
YzE3N2Q5ZTcwODJlMGMzYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0x
NTQsOSArMTU0LDkgQEAgdm9pZCBXS0J1bmRsZVBhZ2VEaWRFeGl0RnVsbFNjcmVlbihXS0J1bmRs
ZVBhZ2VSZWYgcGFnZVJlZikKICNlbmRpZgogfQogCi12b2lkIFdLQnVuZGxlUGFnZVNldERpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UqIGNsaWVudCkKK3ZvaWQgV0tCdW5kbGVQYWdlU2V0
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxl
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSogd2tDbGllbnQpCiB7Ci0gICAgdG9JbXBs
KHBhZ2VSZWYpLT5pbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dChjbGllbnQpOworICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0SW5qZWN0ZWRCdW5kbGVEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEluamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Pih3a0NsaWVudCkpOwogfQogCiBXS0J1bmRsZVBhZ2VHcm91cFJl
ZiBXS0J1bmRsZVBhZ2VHZXRQYWdlR3JvdXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmgKaW5kZXggNGIwMjk5ZDM3ZGNiZGRjZmY1NjkxMWE1YzYxZTQyZGQ1MmUwN2E0Ni4u
ZTEzZTFlMWYxZDkzMTQyNWY4NjVkMTk5YjViOTY0MDA2MTRhMzlhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aApAQCAtMjcsMTMgKzI3LDcgQEAKICNkZWZpbmUgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnRfaAogCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgotCi1lbnVtIHsKLSAgICBr
V0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MgPSAwLAotICAgIGtXS0RpYWdub3N0aWNMb2dn
aW5nUmVzdWx0RmFpbCA9IDEsCi0gICAga1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHROb29wID0g
MiwKLX07Ci10eXBlZGVmIHVpbnQzMl90IFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlOwor
I2luY2x1ZGUgPFdlYktpdC9XS0RpYWdub3N0aWNSZXN1bHRUeXBlLmg+CiAKIHR5cGVkZWYgdm9p
ZCAoKldLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tT
dHJpbmdSZWYgc3VjY2VzcywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0RpYWdub3N0aWNSZXN1bHRUeXBlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLRGlhZ25vc3RpY1Jl
c3VsdFR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDhmZWJkZTZjMjBiMDVmNThjMzYwNTM2ZTk0NDYxY2Qw
NTllMTM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0RpYWdub3N0aWNSZXN1bHRUeXBlLmgKQEAgLTAsMCArMSwzNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV0tEaWFnbm9zdGljUmVzdWx0VHlwZV9oCisjZGVmaW5l
IFdLRGlhZ25vc3RpY1Jlc3VsdFR5cGVfaAorCitlbnVtIHsKKyAgICBrV0tEaWFnbm9zdGljTG9n
Z2luZ1Jlc3VsdFBhc3MgPSAwLAorICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCA9
IDEsCisgICAga1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHROb29wID0gMiwKK307Cit0eXBlZGVm
IHVpbnQzMl90IFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlOworCisjZW5kaWYgLyogV0tE
aWFnbm9zdGljUmVzdWx0VHlwZV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5t
bQppbmRleCAyZmI4Zjk1MzllY2M4MzExNGQyNmE2NmE2YWM0Mzc3NzY2Y2JmODg3Li5jMTUyM2Jh
OTZkZjFmMTZjOGRmNzIxODQ4ZjU2ODQwM2ZlNjhiYzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXIubW0KQEAgLTQ0LDEzICs0NCwxNCBAQAogI2ltcG9ydCAiV0tSZXRhaW5QdHIu
aCIKICNpbXBvcnQgIldLU3RyaW5nQ0YuaCIKICNpbXBvcnQgIldLVVJMUmVxdWVzdE5TLmgiCi0j
aW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnaW5GcmFtZUludGVybmFsLmgiCisjaW1wb3J0ICJXS1dl
YlByb2Nlc3NQbHVnSW5EaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJXS1dl
YlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luRm9y
bURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmgiCiAjaW1wb3J0
ICJXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZEludGVybmFsLmgiCisjaW1wb3J0ICJXS1dl
YlByb2Nlc3NQbHVnaW5GcmFtZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgog
I2ltcG9ydCAiV2ViUGFnZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgpAQCAtNzQsNiArNzUs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxXZWJQ
YWdlPiBfcGFnZTsKICAgICBXZWFrT2JqQ1B0cjxpZCA8V0tXZWJQcm9jZXNzUGx1Z0luTG9hZERl
bGVnYXRlPj4gX2xvYWREZWxlZ2F0ZTsKICAgICBXZWFrT2JqQ1B0cjxpZCA8V0tXZWJQcm9jZXNz
UGx1Z0luRm9ybURlbGVnYXRlUHJpdmF0ZT4+IF9mb3JtRGVsZWdhdGU7CisgICAgV2Vha09iakNQ
dHI8aWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+PiBfZGlh
Z25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTsKICAgICAKICAgICBSZXRhaW5QdHI8X1dLUmVtb3RlT2Jq
ZWN0UmVnaXN0cnk+IF9yZW1vdGVPYmplY3RSZWdpc3RyeTsKIH0KQEAgLTUyMSw2ICs1MjMsODcg
QEAgc3RhdGljIHZvaWQgc2V0VXBSZXNvdXJjZUxvYWRDbGllbnQoV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyICoKICAgICAgICAgX3BhZ2UtPnNldEluamVjdGVkQnVu
ZGxlRm9ybUNsaWVudChudWxscHRyKTsKIH0KIAorLSAoaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkRp
YWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+KV9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlCit7Cisg
ICAgcmV0dXJuIF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpOwor
fQorCitzdGF0aWMgU3RyaW5nIGNvbnN0cnVjdERpYWdub3N0aWNLZXkoY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpT
dHJpbmcmIHZhbHVlID0gV1RGOjpTdHJpbmcoKSkKK3sKKyAgICBXVEY6OlN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICBjb25zdCB1bnNpZ25lZCBwcmVmaXhMZW5ndGggPSAxNzsKKyAgICBidWls
ZGVyLnJlc2VydmVDYXBhY2l0eShwcmVmaXhMZW5ndGggKyBtZXNzYWdlLmxlbmd0aCgpICsgIWRl
c2NyaXB0aW9uLmlzRW1wdHkoKSArIGRlc2NyaXB0aW9uLmxlbmd0aCgpICsgIXZhbHVlLmlzRW1w
dHkoKSArIHZhbHVlLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImNvbS5h
cHBsZS5XZWJLaXQuIik7CisgICAgQVNTRVJUKGJ1aWxkZXIubGVuZ3RoKCkgPT0gcHJlZml4TGVu
Z3RoKTsKKyAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChtZXNzYWdlKTsKKyAgICBpZiAoIWRlc2NyaXB0aW9uLmlzRW1wdHkoKSkgeworICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnLicpOworICAgICAgICBidWlsZGVyLmFwcGVuZChkZXNjcmlwdGlvbik7
CisgICAgfQorICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCcuJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlKTsKKyAgICB9CisgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgY29uc3Ry
dWN0RGlhZ25vc3RpY0tleShjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpT
dHJpbmcmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQp
Cit7CisgICAgU3RyaW5nIHZhbHVlOworICAgIHN3aXRjaCAocmVzdWx0KSB7CisgICAgY2FzZSBr
V0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3M6CisgICAgICAgIHZhbHVlID0gV1RGOjpBU0NJ
SUxpdGVyYWwoInN1Y2Nlc3MiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBrV0tEaWFnbm9z
dGljTG9nZ2luZ1Jlc3VsdEZhaWw6CisgICAgICAgIHZhbHVlID0gV1RGOjpBU0NJSUxpdGVyYWwo
ImZhaWx1cmUiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBrV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdE5vb3A6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gY29uc3RydWN0
RGlhZ25vc3RpY0tleShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOworfQorCistICh2b2lk
KV9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOihpZCA8V0tXZWJQcm9jZXNzUGx1Z0luRGlh
Z25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4pZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZQoreworICAg
IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlID0gZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTsK
KworICAgIGNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIEFQSTo6SW5qZWN0
ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAg
IGV4cGxpY2l0IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlciAqY29udHJvbGxlcikKKyAgICAgICAgICAgIDogbV9jb250cm9s
bGVyKGNvbnRyb2xsZXIpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwg
dm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbikgb3ZlcnJpZGUKKyAgICAgICAg
eworICAgICAgICAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fY29udHJvbGxlci0+X2RpYWdub3N0aWNM
b2dnaW5nRGVsZWdhdGUuZ2V0KCk7CisgICAgICAgICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXI6aW5jcmVtZW50S2V5OildKQorICAgICAgICAgICAgICAgIFtkZWxlZ2F0ZSBfd2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjptX2NvbnRyb2xsZXIgaW5jcmVtZW50
S2V5OmNvbnN0cnVjdERpYWdub3N0aWNLZXkobWVzc2FnZSwgZGVzY3JpcHRpb24pXTsKKyAgICAg
ICAgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KFdlYlBhZ2UqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcm
IGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gZGVsZWdhdGUgPSBtX2NvbnRyb2xsZXIt
Pl9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmdldCgpOworICAgICAgICAgICAgaWYgKFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyOmluY3JlbWVudEtleTopXSkKKyAgICAgICAgICAgICAgICBbZGVs
ZWdhdGUgX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6bV9jb250cm9s
bGVyIGluY3JlbWVudEtleTpjb25zdHJ1Y3REaWFnbm9zdGljS2V5KG1lc3NhZ2UsIGRlc2NyaXB0
aW9uLCByZXN1bHQpXTsKKyAgICAgICAgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBXVEY6OlN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6U3RyaW5nJiB2YWx1
ZSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fY29u
dHJvbGxlci0+X2RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuZ2V0KCk7CisgICAgICAgICAgICBp
ZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6aW5jcmVtZW50S2V5OildKQorICAgICAgICAgICAg
ICAgIFtkZWxlZ2F0ZSBfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpt
X2NvbnRyb2xsZXIgaW5jcmVtZW50S2V5OmNvbnN0cnVjdERpYWdub3N0aWNLZXkobWVzc2FnZSwg
ZGVzY3JpcHRpb24sIHZhbHVlKV07CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAg
IFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqbV9jb250cm9sbGVy
OworICAgIH07CisKKyAgICBpZiAoZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSkKKyAgICAgICAg
X3BhZ2UtPnNldEluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3RkOjptYWtl
X3VuaXF1ZTxEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4oc2VsZikpOworICAgIGVsc2UKKyAgICAg
ICAgX3BhZ2UtPnNldEluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQobnVsbHB0
cik7Cit9CisKIC0gKEJPT0wpX2RlZmVyc0xvYWRpbmcKIHsKICAgICByZXR1cm4gX3BhZ2UtPmRl
ZmVyc0xvYWRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0
ZS5oCmluZGV4IDgxMjRiMTk4YjkyMzk4YWQ1YzdjYzQzMTlkZWI0ZGNiYjA5NjhiNjQuLjk1Yjc1
ZGE5MTc1NTY3OGFiMDBkN2E2MzY4YzQ2OGUzZDI3NDQ1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaApAQCAtMzIsNiArMzIsNyBAQAogQGNsYXNzIFdL
QnJvd3NpbmdDb250ZXh0SGFuZGxlOwogQGNsYXNzIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Owog
QHByb3RvY29sIFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGU7CitAcHJvdG9j
b2wgV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTsKIAogQGludGVy
ZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKFdLUHJpdmF0
ZSkKIApAQCAtNDMsNiArNDQsOCBAQAogCiBAcHJvcGVydHkgKHdlYWssIHNldHRlcj1fc2V0Rm9y
bURlbGVnYXRlOikgaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGU+IF9m
b3JtRGVsZWdhdGU7CiAKK0Bwcm9wZXJ0eSAod2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlOikgaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVs
ZWdhdGU+IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOworCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXREZWZlcnNMb2FkaW5nOikgQk9PTCBfZGVmZXJzTG9hZGluZzsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF91c2VzTm9uUGVyc2lzdGVudFdlYnNp
dGVEYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJSW5qZWN0ZWRCdW5kbGVE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZWJhYzkwMTljN2VjODgxMDFh
YjU2YmJhN2E5NzQxNDZkOWFiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBUElJbmpl
Y3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgQVBJSW5qZWN0ZWRC
dW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisKKyNpbmNsdWRlICJXS0J1bmRsZVBhZ2Uu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CitjbGFzcyBXZWJQYWdlOworfQorCituYW1lc3BhY2UgQVBJIHsKKworbmFtZXNwYWNlIEluamVj
dGVkQnVuZGxlIHsKKworY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViS2l0OjpXZWJQYWdlKiwgY29uc3QgV1RGOjpT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbikgeyBVTlVTRURf
UEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZSosIGNv
bnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVzY3JpcHRpb24s
IFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsg
VU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShXZWJLaXQ6OldlYlBhZ2UqLCBjb25zdCBXVEY6OlN0cmluZyYg
bWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBXVEY6OlN0cmlu
ZyYgdmFsdWUpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0oZGVzY3JpcHRp
b24pOyBVTlVTRURfUEFSQU0odmFsdWUpOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBJbmplY3Rl
ZEJ1bmRsZQorCit9IC8vIG5hbWVzcGFjZSBBUEkKKworI2VuZGlmIC8vIEFQSUluamVjdGVkQnVu
ZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCmluZGV4IGVi
NjE2ZWVmMGE0YjczYzU2NmZlMjE5YTA1ZmI0NjAyYTc0MTcwMmQuLmU5ODNkMGVhOTU1N2EwMmI3
M2VkYWZmNjE4MGI4MjA2NTY5YjQ0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBAIC0zMiw2ICsz
MiwxMSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KGNvbnN0IFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSogY2xpZW50
KQoreworICAgIGluaXRpYWxpemUoY2xpZW50KTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVk
KFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKQogewogICAgIGlmICghbV9jbGllbnQubG9n
RGlhZ25vc3RpY01lc3NhZ2VEZXByZWNhdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCmluZGV4IGJiNmVhZWY1
ZTBiODllYzY0Y2Q2YjJhZDI3YmM0ZWIzNTI4ZTcyMmEuLjljYmZkMzhjMjgyOGFjOGRkNDVlYTMz
OGU4MzY1NTFmNDgzNTQ0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNk
ZWZpbmUgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAogCiAjaW5j
bHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZS5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Mywx
MiArNDQsMTQgQEAgY2xhc3MgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OwogY2xhc3MgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YTsKIGNsYXNzIFdlYlBhZ2U7CiAKLWNsYXNzIEluamVjdGVkQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4geworY2xhc3MgSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlPiwgcHVibGljIEFQSTo6SW5qZWN0ZWRC
dW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBJ
bmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25zdCBXS0J1bmRsZVBh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UqKTsKKwogICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VEZXByZWNhdGVkKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2Vzcyk7Ci0gICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSk7Ci0gICAgdm9pZCBsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQYWdlKiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dn
aW5nUmVzdWx0VHlwZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggOWUzNmY3ODYxNWRjMWMzNWMyZjU3NjBkMTE2MzY2Mjc4ZDI1
ZmE3Ny4uYjUxZGQ2ZDhjNWFjMGFjZTJhMzA3NDk4MjhjOGI2Mzg5YjU5MjQyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjc4LDYgKzI3
OCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9zZXRDYW5TdGFydE1lZGlhVGlt
ZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUGFnZTo6c2V0Q2FuU3RhcnRNZWRpYVRpbWVy
RmlyZWQpCiAgICAgLCBtX2Zvcm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVk
QnVuZGxlOjpGb3JtQ2xpZW50PigpKQogICAgICwgbV91aUNsaWVudChzdGQ6Om1ha2VfdW5pcXVl
PEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudD4oKSkKKyAgICAsIG1fZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudD4oKSkKICAgICAsIG1fZmluZENvbnRyb2xsZXIodGhpcykKICNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICAsIG1fYWN0aXZlQ29sb3JDaG9vc2VyKDAp
CkBAIC02MTQsNiArNjE1LDE2IEBAIHZvaWQgV2ViUGFnZTo6c2V0SW5qZWN0ZWRCdW5kbGVGb3Jt
Q2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpGCiAgICAgbV9mb3Jt
Q2xpZW50ID0gV1RGOjptb3ZlKGZvcm1DbGllbnQpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldElu
amVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6
SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PiBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCkKK3sKKyAgICBpZiAoIWRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KSB7CisgICAgICAg
IG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6SW5qZWN0
ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PigpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IFdURjo6bW92ZShkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVk
QnVuZGxlTG9hZGVyQ2xpZW50KFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudEJhc2UqIGNsaWVudCkK
IHsKICAgICBtX2xvYWRlckNsaWVudC5pbml0aWFsaXplKGNsaWVudCk7CkBAIC02NjAsMTEgKzY3
MSw2IEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRnVsbFNjcmVlbkNs
aWVudChXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdl
Ojppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXS0J1bmRs
ZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UqIGNsaWVudCkKLXsKLSAgICBtX2xvZ0Rp
YWdub3N0aWNNZXNzYWdlQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKLX0KLQogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogUGFzc1JlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNyZWF0
ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FbGVtZW50
LCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFN0cmluZyYgbmV3TUlNRVR5
cGUpCiB7CkBAIC0xMDExLDcgKzEwMTcsNyBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgbV9mdWxsU2NyZWVuQ2xpZW50LmluaXRpYWxpemUo
MCk7CiAjZW5kaWYKLSAgICBtX2xvZ0RpYWdub3N0aWNNZXNzYWdlQ2xpZW50LmluaXRpYWxpemUo
MCk7CisgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8QVBJ
OjpJbmplY3RlZEJ1bmRsZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+KCk7CiAKICAgICBtX3By
aW50Q29udGV4dCA9IG51bGxwdHI7CiAgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2Fk
ZXIoKS5kZXRhY2hGcm9tUGFyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCAxNDRmNWQxNTYzNTk4NjBmN2E5MDg5ZGRiNzc3N2U4ZjE0NDky
ODdlLi5mYzQ1MjlkN2Q4Y2JlODcwYjJhMjhlMmFjZDhmMDMyZTY5Yzg5MzhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZm5kZWYgV2ViUGFnZV9oCiAjZGVmaW5lIFdlYlBhZ2VfaAogCisjaW5jbHVkZSAiQVBJSW5q
ZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkFQSUluamVj
dGVkQnVuZGxlRm9ybUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSUluamVjdGVkQnVuZGxlUGFnZVVJ
Q2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCkBAIC0yOTQsMTggKzI5NSwxOCBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIHZvaWQgaW5pdGlhbGl6ZUlu
amVjdGVkQnVuZGxlRnVsbFNjcmVlbkNsaWVudChXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
QmFzZSopOwogI2VuZGlmCi0gICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudChXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2Uq
KTsKKyAgICB2b2lkIHNldEluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3Rk
Ojp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Pik7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VD
b250ZXh0TWVudUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVDb250ZXh0TWVudUNsaWVudCgpIHsgcmV0
dXJuIG1fY29udGV4dE1lbnVDbGllbnQ7IH0KICNlbmRpZgogICAgIEluamVjdGVkQnVuZGxlUGFn
ZUVkaXRvckNsaWVudCYgaW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGllbnQoKSB7IHJldHVybiBtX2Vk
aXRvckNsaWVudDsgfQotICAgIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQmIGluamVj
dGVkQnVuZGxlRm9ybUNsaWVudCgpIHsgcmV0dXJuICptX2Zvcm1DbGllbnQuZ2V0KCk7IH0KKyAg
ICBBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50JiBpbmplY3RlZEJ1bmRsZUZvcm1DbGll
bnQoKSB7IHJldHVybiAqbV9mb3JtQ2xpZW50OyB9CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50JiBpbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpIHsgcmV0dXJuIG1fbG9hZGVy
Q2xpZW50OyB9CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50JiBpbmplY3RlZEJ1
bmRsZVBvbGljeUNsaWVudCgpIHsgcmV0dXJuIG1fcG9saWN5Q2xpZW50OyB9CiAgICAgSW5qZWN0
ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50JiBpbmplY3RlZEJ1bmRsZVJlc291cmNlTG9h
ZENsaWVudCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VMb2FkQ2xpZW50OyB9Ci0gICAgQVBJOjpJbmpl
Y3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50JiBpbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkgeyByZXR1
cm4gKm1fdWlDbGllbnQuZ2V0KCk7IH0KLSAgICBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCYgaW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIHsg
cmV0dXJuIG1fbG9nRGlhZ25vc3RpY01lc3NhZ2VDbGllbnQ7IH0KKyAgICBBUEk6OkluamVjdGVk
QnVuZGxlOjpQYWdlVUlDbGllbnQmIGluamVjdGVkQnVuZGxlVUlDbGllbnQoKSB7IHJldHVybiAq
bV91aUNsaWVudDsgfQorICAgIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50JiBpbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkgeyByZXR1cm4g
Km1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7IH0KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCYgaW5qZWN0ZWRCdW5kbGVG
dWxsU2NyZWVuQ2xpZW50KCkgeyByZXR1cm4gbV9mdWxsU2NyZWVuQ2xpZW50OyB9CiAjZW5kaWYK
QEAgLTExOTUsNyArMTE5Niw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQgbV9mdWxsU2NyZWVuQ2xp
ZW50OwogI2VuZGlmCi0gICAgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQgbV9sb2dEaWFnbm9zdGljTWVzc2FnZUNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QVBJ
OjpJbmplY3RlZEJ1bmRsZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+IG1fZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ7CiAKICAgICBGaW5kQ29udHJvbGxlciBtX2ZpbmRDb250cm9sbGVyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244634</attachid>
            <date>2015-01-14 13:48:36 -0800</date>
            <delta_ts>2015-01-15 21:40:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140410-20150114134842.patch</filename>
            <type>text/plain</type>
            <size>34046</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTljYjczN2Y2NmI1N2Iw
ZmQzYmFjMmVhYjMwYzE4ZjE3NzQ5OTFhOS4uNDYzYjY0ZjVlNWFmNjliYjc5NTI1MTQ4NTA3MmUw
MGI4ZGMxZDFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTAxLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl1baU9TXSBBZGQgQ29j
b2EgZGVsZWdhdGUgZm9yIGxvZ2dpbmcgZGlhZ25vc3RpYyBtZXNzYWdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIENvY29hIGRlbGVnYXRlIGZv
ciBsb2dnaW5nIGRpYWdub3N0aWMgbWVzc2FnZXMgb24gaU9TLgorICAgICAgICBFdmVudHVhbGx5
LCB0aGUgRmVhdHVyZUNvdW50ZXIgY2xhc3Mgd2lsbCBnbyBhd2F5IGFuZCB3ZSdsbAorICAgICAg
ICBqdXN0IHVzZSB0aGUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuCisKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdE
ZWxlZ2F0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
UHJpdmF0ZS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZVNldERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0RpYWdub3N0aWNSZXN1bHRUeXBlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmguCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyIF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlXSk6CisgICAg
ICAgIChjb25zdHJ1Y3REaWFnbm9zdGljS2V5KToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIF9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
Ol0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaC4KKyAg
ICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKEFQ
STo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6RGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OkluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0SW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlRm9ybUNsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVUlDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KToKKwogMjAxNS0wMS0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCB3aWxsT3BlbiBhbmQgZGlkQ2xvc2UgbWVtYmVyIGZ1bmN0aW9u
cyB0byBXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU5YjJmODdlNjFmMDExN2QzNmM2
OGEzMTUzZDAwNzQxNGY2NmJiOTkuLjc1YjA1ODg4ODRjMmYzZTBhNjM5OGE2NDNlNTY3MGIwZGMy
YzNlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTgwMSw2ICs4MDEsOSBAQAogCQkzRjg4OUQxNDE4ODc3OEM5MDBGRUFEQUYg
LyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTIxODg3NzhDOTAwRkVBREFGIC8qIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAqLzsgfTsKIAkJM0Y4ODlEMTUxODg3NzhD
OTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTMxODg3NzhDOTAwRkVB
REFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovOyB9OwogCQkzRjg4OUQx
NzE4ODc4NTkzMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDBEMTg4NzY5OUMw
MEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovOyB9OworCQk0NjUwMkY0
NTFBNjcwMEY2MDA5RkQwRjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdE
ZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY1MDJGNDQxQTY3MDBGNjAwOUZEMEY1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNM
b2dnaW5nRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk0Njg5RkE2NzFBNjVBMUU4MDAzRjdBMUMgLyogQVBJSW5qZWN0ZWRCdW5kbGVE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDY4OUZBNjYxQTY1QTFFODAwM0Y3QTFDIC8qIEFQSUluamVjdGVkQnVu
ZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgfTsKKwkJNDZFMjNBNEMxQTY1Q0E1MTAw
OUE5QzdDIC8qIFdLRGlhZ25vc3RpY1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RTIzQTRCMUE2NUNBNTEwMDlBOUM3QyAvKiBXS0Rp
YWdub3N0aWNSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CiAJCTRBM0NDMThCMTlCMDY0
MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGM0ExOUFG
N0IwNDAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgg
Ki87IH07CiAJCTRBM0NDMThDMTlCMDY0MTUwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBNDEwRjNCMTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmNwcCAqLzsgfTsKQEAgLTI4NzAsNiArMjg3Myw5IEBACiAJCTNGODg5RDEyMTg4
Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubW07IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg4OUQxMzE4ODc3OEM5MDBGRUFEQUYg
LyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOyBwYXRoID0gaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzRjg4OUQxNjE4ODc3QTI0MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NTAyRjQ0MUE2NzAw
RjYwMDlGRDBGNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5EaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkRp
YWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDY4OUZBNjYxQTY1QTFFODAwM0Y3QTFDIC8qIEFQSUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSW5qZWN0
ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0NkUyM0E0QjFBNjVDQTUxMDA5QTlDN0MgLyogV0tEaWFnbm9zdGljUmVzdWx0VHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0RpYWdub3N0aWNSZXN1bHRU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjM1MTlBRjdBQzMwMDJF
QkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTQxMEYzNjE5QUY3QUMzMDAyRUJBQjUgLyog
V0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODAzLDYgKzQ4MDksNyBAQAogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJMUFBMkU1NjUxOEQ3NzUwODAwMzgxNEJEIC8qIFdLV2ViUHJvY2Vzc0J1bmRsZVBh
cmFtZXRlcnMuaCAqLywKIAkJCQkxQUEyRTU2NDE4RDc3NTA4MDAzODE0QkQgLyogV0tXZWJQcm9j
ZXNzQnVuZGxlUGFyYW1ldGVycy5tbSAqLywKKwkJCQk0NjUwMkY0NDFBNjcwMEY2MDA5RkQwRjUg
LyogV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oICovLAogCQkJ
CTM3OTU3ODlCMThBRDRGMTEwMEI5RUQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdh
dGVQcml2YXRlLmggKi8sCiAJCQkJMUYwMTgxNjkxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lLmggKi8sCiAJCQkJMUYwMTgxNkExODU4REMxNTAwRjkyODg0IC8qIFdL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovLApAQCAtNjI5Nyw2ICs2MzA0LDcgQEAKIAkJCQlC
QzIwNEVFNzExQzgzRUFEMDA4RjMzNzUgLyogQVBJICovLAogCQkJCUJDNEJFRTk2MTIwQTA5MTcw
MEZCQTBDNyAvKiBET00gKi8sCiAJCQkJQkMyMDRFRTQxMUM4M0U5QzAwOEYzMzc1IC8qIG1hYyAq
LywKKwkJCQk0Njg5RkE2NjFBNjVBMUU4MDAzRjdBMUMgLyogQVBJSW5qZWN0ZWRCdW5kbGVEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJCTM3NjkwNzlDMThGMzQwQTIwMDFERkYwNCAv
KiBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaCAqLywKIAkJCQkzNzY5MDc5ODE4RjMxQ0Iy
MDAxREZGMDQgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCAqLywKIAkJCQlCQzIw
NEVFMDExQzgzRTk4MDA4RjMzNzUgLyogSW5qZWN0ZWRCdW5kbGUuY3BwICovLApAQCAtNjQwNiw2
ICs2NDE0LDcgQEAKIAkJCQlCQzVEMjRDNjE2Q0Q3M0M1MDA3RDU0NjEgLyogV0tCdW5kbGVSYW5n
ZUhhbmRsZVByaXZhdGUuaCAqLywKIAkJCQlCQzE0REY5QzEyMEI2MzVGMDA4MjZDMEMgLyogV0tC
dW5kbGVTY3JpcHRXb3JsZC5jcHAgKi8sCiAJCQkJQkMxNERGOUQxMjBCNjM1RjAwODI2QzBDIC8q
IFdLQnVuZGxlU2NyaXB0V29ybGQuaCAqLywKKwkJCQk0NkUyM0E0QjFBNjVDQTUxMDA5QTlDN0Mg
LyogV0tEaWFnbm9zdGljUmVzdWx0VHlwZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBjOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTc1MDQsNiArNzUxMyw3IEBACiAJCQkJRTE5NTgy
RDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNUUyMDA0MThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyREEwNDlCNDE4MENDQ0QzMDBBQUZBOUUgLyogUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjUwMkY0NTFBNjcwMEY2MDA5RkQw
RjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkQ4NzEwMTcxODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4OTQ5RjExODIwNDRGNjAwRTg5
OEFBIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNDNDNBQkIxMjdCOTVEQzAwMzE3RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5o
IGluIEhlYWRlcnMgKi8sCkBAIC03NjQ1LDYgKzc2NTUsNyBAQAogCQkJCTUxMjkzNUQ4MTI4OEQx
OTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
MEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUFDQkI4MjEyN0E4QkFEMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDZFMjNBNEMxQTY1Q0E1MTAwOUE5QzdDIC8qIFdL
RGlhZ25vc3RpY1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUNCQkEwMTI3QThG
MkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0Y0REUyNTE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMzMDkzNDUwMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTc3NjIsNiArNzc3Myw3IEBACiAJCQkJMUEwNDNBMDkx
MjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTA0M0Y2QTEyNTE0RDhCMDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzMDY4MjQxMjVBNkI5NDAwRTcxMjc4IC8qIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2ODlGQTY3
MUE2NUExRTgwMDNGN0ExQyAvKiBBUElJbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzMwNjZCRjEyNUE0NDIxMDBFNzEyNzggLyogV2Vi
UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U0RDIxQjFBNDkxNEEzMDBD
N0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTREMjI4MUE0
OTE2QzIwMEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWE4NWQ3
ZjJiY2Y4YTcyMDhmNTI0OGRkMmE4MDg5ZjllMmQ5OWZjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElf
RU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworQHByb3RvY29s
IFdLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUgPE5TT2JqZWN0Pgor
QG9wdGlvbmFsCisKKy0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRy
b2xsZXIgaW5jcmVtZW50S2V5OihOU1N0cmluZyAqKWtleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBiYTIzMjk2ZDc5ZTQ4OWEyNWU2MmQzYThi
NzBmMzc4N2VlNjg5ODQ2Li4yMjk1NDUwYjMzZjZkMTgyZDNhZWI0YzE3N2Q5ZTcwODJlMGMzYWMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0xNTQsOSArMTU0LDkgQEAgdm9p
ZCBXS0J1bmRsZVBhZ2VEaWRFeGl0RnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikK
ICNlbmRpZgogfQogCi12b2lkIFdLQnVuZGxlUGFnZVNldERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudEJhc2UqIGNsaWVudCkKK3ZvaWQgV0tCdW5kbGVQYWdlU2V0RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50QmFzZSogd2tDbGllbnQpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFs
aXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChjbGllbnQpOworICAgIHRv
SW1wbChwYWdlUmVmKS0+c2V0SW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChz
dGQ6Om1ha2VfdW5pcXVlPEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Pih3a0NsaWVudCkpOwogfQogCiBXS0J1bmRsZVBhZ2VHcm91cFJlZiBXS0J1bmRsZVBhZ2VHZXRQ
YWdlR3JvdXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggNGIw
Mjk5ZDM3ZGNiZGRjZmY1NjkxMWE1YzYxZTQyZGQ1MmUwN2E0Ni4uZTEzZTFlMWYxZDkzMTQyNWY4
NjVkMTk5YjViOTY0MDA2MTRhMzlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMjcsMTMgKzI3LDcg
QEAKICNkZWZpbmUgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAogCiAjaW5j
bHVkZSA8V2ViS2l0L1dLQmFzZS5oPgotCi1lbnVtIHsKLSAgICBrV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFBhc3MgPSAwLAotICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCA9IDEs
Ci0gICAga1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHROb29wID0gMiwKLX07Ci10eXBlZGVmIHVp
bnQzMl90IFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlOworI2luY2x1ZGUgPFdlYktpdC9X
S0RpYWdub3N0aWNSZXN1bHRUeXBlLmg+CiAKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYgc3VjY2Vzcywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VMb2dE
aWFnbm9zdGljTWVzc2FnZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0RpYWdub3N0aWNSZXN1bHRUeXBlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLRGlhZ25vc3RpY1Jlc3VsdFR5cGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZDhmZWJkZTZjMjBiMDVmNThjMzYwNTM2ZTk0NDYxY2QwNTllMTM2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0RpYWdub3N0aWNSZXN1bHRUeXBlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV0tEaWFnbm9zdGljUmVzdWx0VHlwZV9oCisjZGVmaW5lIFdLRGlhZ25vc3RpY1Jlc3Vs
dFR5cGVfaAorCitlbnVtIHsKKyAgICBrV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MgPSAw
LAorICAgIGtXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCA9IDEsCisgICAga1dLRGlhZ25v
c3RpY0xvZ2dpbmdSZXN1bHROb29wID0gMiwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLRGlhZ25v
c3RpY0xvZ2dpbmdSZXN1bHRUeXBlOworCisjZW5kaWYgLyogV0tEaWFnbm9zdGljUmVzdWx0VHlw
ZV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCAyZmI4Zjk1Mzll
Y2M4MzExNGQyNmE2NmE2YWM0Mzc3NzY2Y2JmODg3Li5jMTUyM2JhOTZkZjFmMTZjOGRmNzIxODQ4
ZjU2ODQwM2ZlNjhiYzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KQEAg
LTQ0LDEzICs0NCwxNCBAQAogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKICNpbXBvcnQgIldLU3Ry
aW5nQ0YuaCIKICNpbXBvcnQgIldLVVJMUmVxdWVzdE5TLmgiCi0jaW1wb3J0ICJXS1dlYlByb2Nl
c3NQbHVnaW5GcmFtZUludGVybmFsLmgiCisjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5EaWFn
bm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5JbnRl
cm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5o
IgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgiCiAjaW1wb3J0ICJX
S1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVn
SW5TY3JpcHRXb3JsZEludGVybmFsLmgiCisjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnaW5GcmFt
ZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgogI2ltcG9ydCAiV2ViUGFnZS5o
IgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgpAQCAtNzQsNiArNzUsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxXZWJQYWdlPiBfcGFnZTsKICAgICBX
ZWFrT2JqQ1B0cjxpZCA8V0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlPj4gX2xvYWREZWxl
Z2F0ZTsKICAgICBXZWFrT2JqQ1B0cjxpZCA8V0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRl
UHJpdmF0ZT4+IF9mb3JtRGVsZWdhdGU7CisgICAgV2Vha09iakNQdHI8aWQgPFdLV2ViUHJvY2Vz
c1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+PiBfZGlhZ25vc3RpY0xvZ2dpbmdEZWxl
Z2F0ZTsKICAgICAKICAgICBSZXRhaW5QdHI8X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnk+IF9yZW1v
dGVPYmplY3RSZWdpc3RyeTsKIH0KQEAgLTUyMSw2ICs1MjMsODcgQEAgc3RhdGljIHZvaWQgc2V0
VXBSZXNvdXJjZUxvYWRDbGllbnQoV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyICoKICAgICAgICAgX3BhZ2UtPnNldEluamVjdGVkQnVuZGxlRm9ybUNsaWVudChudWxs
cHRyKTsKIH0KIAorLSAoaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVs
ZWdhdGU+KV9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlCit7CisgICAgcmV0dXJuIF9kaWFnbm9z
dGljTG9nZ2luZ0RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpOworfQorCitzdGF0aWMgU3RyaW5n
IGNvbnN0cnVjdERpYWdub3N0aWNLZXkoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpTdHJpbmcmIHZhbHVlID0gV1RG
OjpTdHJpbmcoKSkKK3sKKyAgICBXVEY6OlN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBjb25z
dCB1bnNpZ25lZCBwcmVmaXhMZW5ndGggPSAxNzsKKyAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0
eShwcmVmaXhMZW5ndGggKyBtZXNzYWdlLmxlbmd0aCgpICsgIWRlc2NyaXB0aW9uLmlzRW1wdHko
KSArIGRlc2NyaXB0aW9uLmxlbmd0aCgpICsgIXZhbHVlLmlzRW1wdHkoKSArIHZhbHVlLmxlbmd0
aCgpKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImNvbS5hcHBsZS5XZWJLaXQuIik7Cisg
ICAgQVNTRVJUKGJ1aWxkZXIubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3RoKTsKKyAgICBBU1NFUlQo
IW1lc3NhZ2UuaXNFbXB0eSgpKTsKKyAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlKTsKKyAgICBp
ZiAoIWRlc2NyaXB0aW9uLmlzRW1wdHkoKSkgeworICAgICAgICBidWlsZGVyLmFwcGVuZCgnLicp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChkZXNjcmlwdGlvbik7CisgICAgfQorICAgIGlmICgh
dmFsdWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcuJyk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHZhbHVlKTsKKyAgICB9CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgY29uc3RydWN0RGlhZ25vc3RpY0tleShj
b25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9u
LCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQpCit7CisgICAgU3RyaW5nIHZh
bHVlOworICAgIHN3aXRjaCAocmVzdWx0KSB7CisgICAgY2FzZSBrV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFBhc3M6CisgICAgICAgIHZhbHVlID0gV1RGOjpBU0NJSUxpdGVyYWwoInN1Y2Nlc3Mi
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBrV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZh
aWw6CisgICAgICAgIHZhbHVlID0gV1RGOjpBU0NJSUxpdGVyYWwoImZhaWx1cmUiKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBrV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdE5vb3A6CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gY29uc3RydWN0RGlhZ25vc3RpY0tleShtZXNz
YWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOworfQorCistICh2b2lkKV9zZXREaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlOihpZCA8V0tXZWJQcm9jZXNzUGx1Z0luRGlhZ25vc3RpY0xvZ2dpbmdEZWxl
Z2F0ZT4pZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZQoreworICAgIF9kaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlID0gZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTsKKworICAgIGNsYXNzIERpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IERpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciAqY29udHJvbGxlcikKKyAgICAgICAgICAgIDogbV9jb250cm9sbGVyKGNvbnRyb2xsZXIpCisg
ICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGlj
TWVzc2FnZShXZWJQYWdlKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6
U3RyaW5nJiBkZXNjcmlwdGlvbikgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgYXV0
byBkZWxlZ2F0ZSA9IG1fY29udHJvbGxlci0+X2RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuZ2V0
KCk7CisgICAgICAgICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6aW5jcmVtZW50S2V5
OildKQorICAgICAgICAgICAgICAgIFtkZWxlZ2F0ZSBfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcjptX2NvbnRyb2xsZXIgaW5jcmVtZW50S2V5OmNvbnN0cnVjdERpYWdu
b3N0aWNLZXkobWVzc2FnZSwgZGVzY3JpcHRpb24pXTsKKyAgICAgICAgfQorICAgICAgICB2aXJ0
dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBhZ2UqLCBjb25zdCBX
VEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBXS0Rp
YWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQpIG92ZXJyaWRlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGF1dG8gZGVsZWdhdGUgPSBtX2NvbnRyb2xsZXItPl9kaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlLmdldCgpOworICAgICAgICAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
OmluY3JlbWVudEtleTopXSkKKyAgICAgICAgICAgICAgICBbZGVsZWdhdGUgX3dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6bV9jb250cm9sbGVyIGluY3JlbWVudEtleTpj
b25zdHJ1Y3REaWFnbm9zdGljS2V5KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQpXTsKKyAg
ICAgICAgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUoV2ViUGFnZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6U3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGUKKyAgICAg
ICAgeworICAgICAgICAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fY29udHJvbGxlci0+X2RpYWdub3N0
aWNMb2dnaW5nRGVsZWdhdGUuZ2V0KCk7CisgICAgICAgICAgICBpZiAoW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXI6aW5jcmVtZW50S2V5OildKQorICAgICAgICAgICAgICAgIFtkZWxlZ2F0ZSBfd2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjptX2NvbnRyb2xsZXIgaW5jcmVt
ZW50S2V5OmNvbnN0cnVjdERpYWdub3N0aWNLZXkobWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVl
KV07CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFdLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqbV9jb250cm9sbGVyOworICAgIH07CisKKyAgICBp
ZiAoZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSkKKyAgICAgICAgX3BhZ2UtPnNldEluamVjdGVk
QnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudD4oc2VsZikpOworICAgIGVsc2UKKyAgICAgICAgX3BhZ2UtPnNldEluamVj
dGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQobnVsbHB0cik7Cit9CisKIC0gKEJPT0wp
X2RlZmVyc0xvYWRpbmcKIHsKICAgICByZXR1cm4gX3BhZ2UtPmRlZmVyc0xvYWRpbmcoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0ZS5oCmluZGV4IDgxMjRiMTk4
YjkyMzk4YWQ1YzdjYzQzMTlkZWI0ZGNiYjA5NjhiNjQuLjcyZTBmY2E1ZDMxOGY3YjMxOThlNmUx
OWUyZWVkYWFmNjAzM2E4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
clByaXZhdGUuaApAQCAtMzIsNiArMzIsNyBAQAogQGNsYXNzIFdLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlOwogQGNsYXNzIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogQHByb3RvY29sIFdLV2ViUHJv
Y2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGU7CitAcHJvdG9jb2wgV0tXZWJQcm9jZXNzUGx1
Z0luRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTsKIAogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKFdLUHJpdmF0ZSkKIApAQCAtNDMsNiArNDQs
OCBAQAogCiBAcHJvcGVydHkgKHdlYWssIHNldHRlcj1fc2V0Rm9ybURlbGVnYXRlOikgaWQgPFdL
V2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGU+IF9mb3JtRGVsZWdhdGU7CiAKK0Bw
cm9wZXJ0eSAod2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOikgaWQg
PFdLV2ViUHJvY2Vzc1BsdWdJbkRpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGlj
TG9nZ2luZ0RlbGVnYXRlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKwog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVmZXJzTG9hZGluZzopIEJPT0wgX2Rl
ZmVyc0xvYWRpbmc7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfdXNl
c05vblBlcnNpc3RlbnRXZWJzaXRlRGF0YVN0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
OGViYWM5MDE5YzdlYzg4MTAxYWI1NmJiYTdhOTc0MTQ2ZDlhYjBkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1
bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgQVBJSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisj
ZGVmaW5lIEFQSUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorCisjaW5j
bHVkZSAiV0tCdW5kbGVQYWdlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZTsKK30KKworbmFtZXNwYWNlIEFQSSB7
CisKK25hbWVzcGFjZSBJbmplY3RlZEJ1bmRsZSB7CisKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgp
IHsgfQorCisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYktpdDo6V2Vi
UGFnZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVz
Y3JpcHRpb24pIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0oZGVzY3JpcHRp
b24pOyB9CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChX
ZWJLaXQ6OldlYlBhZ2UqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpT
dHJpbmcmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSkgeyBVTlVT
RURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViS2l0OjpXZWJQYWdlKiwg
Y29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlv
biwgY29uc3QgV1RGOjpTdHJpbmcmIHZhbHVlKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5V
U0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHZhbHVlKTsgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UgSW5qZWN0ZWRCdW5kbGUKKworfSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRp
ZiAvLyBBUElJbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcAppbmRleCBlYjYxNmVlZjBhNGI3M2M1NjZmZTIxOWEwNWZiNDYwMmE3NDE3MDJk
Li5lOTgzZDBlYTk1NTdhMDJiNzNlZGFmZjYxODBiODIwNjU2OWI0NDljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmNwcApAQCAtMzIsNiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK0luamVj
dGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpJbmplY3RlZEJ1bmRsZVBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25zdCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICBpbml0aWFsaXplKGNsaWVudCk7Cit9CisKIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlRGVwcmVjYXRlZChXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2VzcykKIHsKICAg
ICBpZiAoIW1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaAppbmRleCBiYjZlYWVmNWUwYjg5ZWM2NGNkNmIyYWQyN2JjNGViMzUyOGU3MjJhLi45Y2Jm
ZDM4YzI4MjhhYzhkZDQ1ZWEzMzhlODM2NTUxZjQ4MzU0NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBA
IC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50X2gKIAogI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIkFQSUluamVj
dGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJXS0J1bmRsZVBh
Z2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgpAQCAtNDMsMTIgKzQ0LDE0IEBAIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdDsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFzcyBXZWJQYWdlOwog
Ci1jbGFzcyBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA6IHB1Ymxp
YyBBUEk6OkNsaWVudDxXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2U+IHsK
K2NsYXNzIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGlj
IEFQSTo6Q2xpZW50PFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4sIHB1
YmxpYyBBUEk6OkluamVjdGVkQnVuZGxlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CiBwdWJs
aWM6CisgICAgZXhwbGljaXQgSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQoY29uc3QgV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlKik7CisKICAg
ICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlRGVwcmVjYXRlZChXZWJQYWdlKiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1
Y2Nlc3MpOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZSosIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7Ci0gICAgdm9pZCBsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5
cGUpOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZSosIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSk7CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBh
Z2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQo
V2ViUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJQYWdlKiwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVl
KSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDllMzZmNzg2MTVkYzFjMzVj
MmY1NzYwZDExNjM2NjI3OGQyNWZhNzcuLmI1MWRkNmQ4YzVhYzBhY2UyYTMwNzQ5ODI4YzhiNjM4
OWI1OTI0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTI3OCw2ICsyNzgsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1f
c2V0Q2FuU3RhcnRNZWRpYVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlBhZ2U6OnNl
dENhblN0YXJ0TWVkaWFUaW1lckZpcmVkKQogICAgICwgbV9mb3JtQ2xpZW50KHN0ZDo6bWFrZV91
bmlxdWU8QVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudD4oKSkKICAgICAsIG1fdWlDbGll
bnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ+KCkp
CisgICAgLCBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpJ
bmplY3RlZEJ1bmRsZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+KCkpCiAgICAgLCBtX2ZpbmRD
b250cm9sbGVyKHRoaXMpCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgLCBtX2Fj
dGl2ZUNvbG9yQ2hvb3NlcigwKQpAQCAtNjE0LDYgKzYxNSwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNl
dEluamVjdGVkQnVuZGxlRm9ybUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpJbmplY3RlZEJ1
bmRsZTo6RgogICAgIG1fZm9ybUNsaWVudCA9IFdURjo6bW92ZShmb3JtQ2xpZW50KTsKIH0KIAor
dm9pZCBXZWJQYWdlOjpzZXRJbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KHN0
ZDo6dW5pcXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dD4gZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCit7CisgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCkgeworICAgICAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gc3RkOjptYWtl
X3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4oKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQg
PSBXVEY6Om1vdmUoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpOworfQorCiB2b2lkIFdlYlBhZ2U6
OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudChXS0J1bmRsZVBhZ2VMb2FkZXJD
bGllbnRCYXNlKiBjbGllbnQpCiB7CiAgICAgbV9sb2FkZXJDbGllbnQuaW5pdGlhbGl6ZShjbGll
bnQpOwpAQCAtNjYwLDExICs2NzEsNiBAQCB2b2lkIFdlYlBhZ2U6OmluaXRpYWxpemVJbmplY3Rl
ZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaQogfQogI2Vu
ZGlmCiAKLXZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlKiBjbGll
bnQpCi17Ci0gICAgbV9sb2dEaWFnbm9zdGljTWVzc2FnZUNsaWVudC5pbml0aWFsaXplKGNsaWVu
dCk7Ci19Ci0KICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIFBhc3NSZWZQdHI8UGx1
Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxl
bWVudCogcGx1Z2luRWxlbWVudCwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
LCBTdHJpbmcmIG5ld01JTUVUeXBlKQogewpAQCAtMTAxMSw3ICsxMDE3LDcgQEAgdm9pZCBXZWJQ
YWdlOjpjbG9zZSgpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIG1fZnVsbFNjcmVl
bkNsaWVudC5pbml0aWFsaXplKDApOwogI2VuZGlmCi0gICAgbV9sb2dEaWFnbm9zdGljTWVzc2Fn
ZUNsaWVudC5pbml0aWFsaXplKDApOworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBz
dGQ6Om1ha2VfdW5pcXVlPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50PigpOwogCiAgICAgbV9wcmludENvbnRleHQgPSBudWxscHRyOwogICAgIG1fbWFpbkZyYW1l
LT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZGV0YWNoRnJvbVBhcmVudCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMTQ0ZjVkMTU2MzU5ODYwZjdh
OTA4OWRkYjc3NzdlOGYxNDQ5Mjg3ZS4uZmM0NTI5ZDdkOGNiZTg3MGIyYTI4ZTJhY2Q4ZjAzMmU2
OWM4OTM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFdlYlBhZ2VfaAogI2RlZmluZSBXZWJQYWdlX2gK
IAorI2luY2x1ZGUgIkFQSUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIK
ICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaCIKICNpbmNsdWRlICJBUElJ
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgpAQCAt
Mjk0LDE4ICsyOTUsMTggQEAgcHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudEJhc2UqKTsKICNlbmRpZgotICAgIHZvaWQgaW5pdGlhbGl6ZUlu
amVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnRCYXNlKik7CisgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudD4pOwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAg
SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQmIGluamVjdGVkQnVuZGxlQ29udGV4
dE1lbnVDbGllbnQoKSB7IHJldHVybiBtX2NvbnRleHRNZW51Q2xpZW50OyB9CiAjZW5kaWYKICAg
ICBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQmIGluamVjdGVkQnVuZGxlRWRpdG9yQ2xp
ZW50KCkgeyByZXR1cm4gbV9lZGl0b3JDbGllbnQ7IH0KLSAgICBBUEk6OkluamVjdGVkQnVuZGxl
OjpGb3JtQ2xpZW50JiBpbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKSB7IHJldHVybiAqbV9mb3Jt
Q2xpZW50LmdldCgpOyB9CisgICAgQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudCYgaW5q
ZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkgeyByZXR1cm4gKm1fZm9ybUNsaWVudDsgfQogICAgIElu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudCYgaW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQo
KSB7IHJldHVybiBtX2xvYWRlckNsaWVudDsgfQogICAgIEluamVjdGVkQnVuZGxlUGFnZVBvbGlj
eUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVQb2xpY3lDbGllbnQoKSB7IHJldHVybiBtX3BvbGljeUNs
aWVudDsgfQogICAgIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudCYgaW5qZWN0
ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKSB7IHJldHVybiBtX3Jlc291cmNlTG9hZENsaWVu
dDsgfQotICAgIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudCYgaW5qZWN0ZWRCdW5k
bGVVSUNsaWVudCgpIHsgcmV0dXJuICptX3VpQ2xpZW50LmdldCgpOyB9Ci0gICAgSW5qZWN0ZWRC
dW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGluamVjdGVkQnVuZGxlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoKSB7IHJldHVybiBtX2xvZ0RpYWdub3N0aWNNZXNzYWdlQ2xpZW50OyB9
CisgICAgQVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50JiBpbmplY3RlZEJ1bmRsZVVJ
Q2xpZW50KCkgeyByZXR1cm4gKm1fdWlDbGllbnQ7IH0KKyAgICBBUEk6OkluamVjdGVkQnVuZGxl
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgaW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCgpIHsgcmV0dXJuICptX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50OyB9CiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGll
bnQmIGluamVjdGVkQnVuZGxlRnVsbFNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fZnVsbFNjcmVl
bkNsaWVudDsgfQogI2VuZGlmCkBAIC0xMTk1LDcgKzExOTYsNyBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50IG1fZnVsbFNjcmVlbkNsaWVudDsKICNlbmRpZgotICAgIEluamVjdGVkQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50IG1fbG9nRGlhZ25vc3RpY01lc3NhZ2VDbGllbnQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50PiBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwogCiAgICAgRmluZENvbnRyb2xsZXIgbV9m
aW5kQ29udHJvbGxlcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244751</attachid>
            <date>2015-01-15 21:41:00 -0800</date>
            <delta_ts>2015-01-16 11:26:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140410-20150115214106.patch</filename>
            <type>text/plain</type>
            <size>33678</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTYxMmM0NjYzYzQwNDI3
MDFkNjM1MTE3ZGM2ZWIxMTFjMmQ1NTFjZS4uZTM5ZDhiMzc5YzNjZWFiOTdlYjJjMGM5YWQ3NjNi
NTUzNTRkOGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE1LTAxLTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dLMl1baU9TXSBBZGQgQ29j
b2EgZGVsZWdhdGUgZm9yIGxvZ2dpbmcgZGlhZ25vc3RpYyBtZXNzYWdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIENvY29hIGRlbGVnYXRlIGZv
ciBsb2dnaW5nIGRpYWdub3N0aWMgbWVzc2FnZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaC4KKyAgICAgICAgKEFQ
STo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6On5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6Cisg
ICAgICAgIChBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2Fn
ZSk6CisgICAgICAgIChBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoQVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlXSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmguCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ6OmRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2Vi
UGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXREaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1
bHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppbml0aWFsaXplRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCisyMDE1LTAxLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAg
ICAgW1dLMl0gV2lyZSBkaWFnbm9zdGljIGxvZ2dpbmcgbWVzc2FnZXMgdGhyb3VnaCB0aGUgVUlQ
cm9jZXNzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDA0ODYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGEwYjFhZDY1ZWJmMTEwNGM0
NjQ3N2Y0NTNhYWU3NjkyNDczNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0FQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorI2Rl
ZmluZSBBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Rp
YWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KKworbmFt
ZXNwYWNlIEFQSSB7CisKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIHsgfQorCisgICAgdmlydHVh
bCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3Qg
V1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbikgeyBV
TlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFn
ZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBk
ZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKSB7IFVOVVNF
RF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgfQorICAgIHZpcnR1
YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVzY3Jp
cHRpb24sIGNvbnN0IFdURjo6U3RyaW5nJiB2YWx1ZSkgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7
IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IFVOVVNFRF9QQVJBTSh2YWx1ZSk7IH0KK307CisK
K30gLy8gbmFtZXNwYWNlIEFQSQorCisjZW5kaWYgLy8gQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnRfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGE5
ZjBiZjgxZmU1N2RmODNhN2I4ZmQ3MmY1NDdmNzllNzU5MjFlZjcuLmY2ZWY5OWY1YjJiOWNjNGE2
NDQ0YThiZTY3NDVmZmQxOGMyYzhhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCkBAIC03MjksNyArNzI5LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlQ29udGV4
dE1lbnVDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2wK
IAogdm9pZCBXS1BhZ2VTZXRQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tQYWdlUmVmIHBh
Z2VSZWYsIGNvbnN0IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSogd2tDbGllbnQp
CiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQod2tDbGllbnQpOworICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoc3RkOjptYWtlX3VuaXF1ZTxXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+KHdr
Q2xpZW50KSk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0UGFnZUZpbmRDbGllbnQoV0tQYWdlUmVmIHBh
Z2VSZWYsIGNvbnN0IFdLUGFnZUZpbmRDbGllbnRCYXNlKiB3a0NsaWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNGU0NDY2NGJi
MTEwY2E5OWYxMmI2YTEwZDc2NDMwOWZhNzUxMTQ0NC4uN2E4MTU3YmFhMjk2NTgyYzBmOGJmYzNh
MjUxNDQ1MmNkNjliNjJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkFQSUZvcm1DbGll
bnQuaCIKICNpbXBvcnQgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiQ29t
cGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9ydCAiRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCIKICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25T
dGF0ZUNvZGluZy5oIgogI2ltcG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCkBAIC02Niw2ICs2Nyw3
IEBACiAjaW1wb3J0ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQ
b29sLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIl9XS0RpYWdub3N0
aWNMb2dnaW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZpbmREZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiX1dLRm9ybURlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeUlu
dGVybmFsLmgiCkBAIC0zNjIsNiArMzY0LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KENHUmVjdClmcmFtZSBjb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW8KICAg
ICBfcGFnZS0+c2V0VUlDbGllbnQoX3VpRGVsZWdhdGUtPmNyZWF0ZVVJQ2xpZW50KCkpOwogCiAg
ICAgX3BhZ2UtPnNldEZpbmRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkZpbmRDbGll
bnQ+KHNlbGYpKTsKKyAgICBfcGFnZS0+c2V0RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3RkOjpt
YWtlX3VuaXF1ZTxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PihzZWxmKSk7CiAKICAg
ICBwYWdlVG9WaWV3TWFwKCkuYWRkKF9wYWdlLmdldCgpLCBzZWxmKTsKIApAQCAtMTk3MCw2ICsx
OTczLDE2IEBAIC0gKHZvaWQpX3NldFBhZ2Vab29tRmFjdG9yOihkb3VibGUpem9vbUZhY3Rvcgog
ICAgIF9wYWdlLT5zZXRQYWdlWm9vbUZhY3Rvcih6b29tRmFjdG9yKTsKIH0KIAorLSAoaWQgPF9X
S0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+KV9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlCit7
CisgICAgcmV0dXJuIFtzdGF0aWNfY2FzdDxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Jj4oX3BhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkpLmRlbGVnYXRlKCkubGVha1JlZigp
IGF1dG9yZWxlYXNlXTsKK30KKworLSAodm9pZClfc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0
ZTooaWQ8X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4pZGlhZ25vc3RpY0xvZ2dpbmdEZWxl
Z2F0ZQoreworICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQm
PihfcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSkuc2V0RGVsZWdhdGUoZGlhZ25vc3Rp
Y0xvZ2dpbmdEZWxlZ2F0ZSk7Cit9CisKIC0gKGlkIDxfV0tGaW5kRGVsZWdhdGU+KV9maW5kRGVs
ZWdhdGUKIHsKICAgICByZXR1cm4gW3N0YXRpY19jYXN0PFdlYktpdDo6RmluZENsaWVudCY+KF9w
YWdlLT5maW5kQ2xpZW50KCkpLmRlbGVnYXRlKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgKaW5kZXggMGQ2ZjI2MGM5YTY0NGY5ZjVlZmUyZGRiNWMwMWFiOWQzNzQwODUwYS4uODc4
MWVkNWIzNWJkYmI5NTI2NGZiZTllMWUxMTZlNzhhN2YzNTZkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTU1
LDYgKzU1LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0ZpbmRPcHRpb25z
KSB7CiBAY2xhc3MgX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyOwogCiBAcHJvdG9jb2wgV0tIaXN0
b3J5RGVsZWdhdGVQcml2YXRlOworQHByb3RvY29sIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdh
dGU7CiBAcHJvdG9jb2wgX1dLRmluZERlbGVnYXRlOwogQHByb3RvY29sIF9XS0Zvcm1EZWxlZ2F0
ZTsKIApAQCAtMTc1LDYgKzE3Niw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBf
V0tGaW5kT3B0aW9ucykgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dFpv
b21GYWN0b3I6KSBkb3VibGUgX3RleHRab29tRmFjdG9yOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0UGFnZVpvb21GYWN0b3I6KSBkb3VibGUgX3BhZ2Vab29tRmFjdG9yOwogCitA
cHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0Rl
bGVnYXRlOikgaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEZpbmREZWxlZ2F0ZTopIGlkIDxfV0tG
aW5kRGVsZWdhdGU+IF9maW5kRGVsZWdhdGU7CiAtICh2b2lkKV9maW5kU3RyaW5nOihOU1N0cmlu
ZyAqKXN0cmluZyBvcHRpb25zOihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJ
bnRlZ2VyKW1heENvdW50OwogLSAodm9pZClfY291bnRTdHJpbmdNYXRjaGVzOihOU1N0cmluZyAq
KXN0cmluZyBvcHRpb25zOihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJbnRl
Z2VyKW1heENvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45Y2ViOTYwMmVkMTVmOWNlNDhmZjQ3NTExMTFjYjFjNDgxYWViNjI4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdl
YktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPEZv
dW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRGlhZ25vc3RpY0xvZ2dp
bmdSZXN1bHRUeXBlLmg+CisKK0Bwcm90b2NvbCBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
IDxOU09iamVjdD4KK0BvcHRpb25hbAorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5EZXNjcmlw
dGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdDooTlNTdHJpbmcgKiltZXNzYWdlIGluRGVzY3JpcHRpb246
KE5TU3RyaW5nICopZGVzY3JpcHRpb24gaW5SZXN1bHQ6KFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1
bHRUeXBlKXJlc3VsdCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5EZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNj
cmlwdGlvbiBpblZhbHVlOihOU1N0cmluZyAqKSB2YWx1ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJiNGM4ZTg5OGRmNDhiNzU5YTk3MzhjMzc0NGMxZjc3
NDJhMTVhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnRfaAorCisjaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKKworI2lmIFdLX0FQSV9F
TkFCTEVECisKKyNpbXBvcnQgIkFQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisjaW1wb3J0
ICJXZWFrT2JqQ1B0ci5oIgorI2ltcG9ydCA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3Vs
dFR5cGUuaD4KKworQGNsYXNzIFdLV2ViVmlldzsKK0Bwcm90b2NvbCBfV0tEaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQgZmluYWwgOiBwdWJsaWMgQVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tXZWJWaWV3
ICopOworCisgICAgUmV0YWluUHRyPGlkIDxfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlPj4g
ZGVsZWdhdGUoKTsKKyAgICB2b2lkIHNldERlbGVnYXRlKGlkIDxfV0tEaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlPik7CisKK3ByaXZhdGU6CisgICAgLy8gRnJvbSBBUEk6OkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQ
cm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dChXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdlYlBhZ2VQ
cm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7CisKKyAgICBXS1dlYlZpZXcgKm1fd2ViVmll
dzsKKyAgICBXZWFrT2JqQ1B0cjxpZCA8X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4+IG1f
ZGVsZWdhdGU7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlh
Z25vc3RpY01lc3NhZ2UgOiAxOworICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0IDogMTsKKyAgICAgICAgdW5zaWduZWQgd2Vidmlld0xvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlIDogMTsKKyAgICB9IG1fZGVsZWdhdGVNZXRob2RzOworfTsK
KworfSAvLyBXZWJLaXQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECisKKyNlbmRpZiAvLyBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NWIyMGIyMmZmNWRhNDQyNzc0NzMwMjNmMjY5YjE1YjI2NTQzNTA3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Lm1tCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAor
CisjaW1wb3J0ICJXS1NoYXJlZEFQSUNhc3QuaCIKKyNpbXBvcnQgIl9XS0RpYWdub3N0aWNMb2dn
aW5nRGVsZWdhdGUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXS1dlYlZpZXcgKndlYlZpZXcpCisgICAg
OiBtX3dlYlZpZXcod2ViVmlldykKK3sKK30KKworUmV0YWluUHRyPGlkIDxfV0tEaWFnbm9zdGlj
TG9nZ2luZ0RlbGVnYXRlPj4gRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmRlbGVnYXRlKCkKK3sK
KyAgICByZXR1cm4gbV9kZWxlZ2F0ZS5nZXQoKTsKK30KKwordm9pZCBEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6c2V0RGVsZWdhdGUoaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IGRl
bGVnYXRlKQoreworICAgIG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKKworICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmxvZ0RpYWdub3N0aWNNZXNzYWdlOmluRGVzY3Jp
cHRpb246KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFJlc3VsdCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDppbkRlc2NyaXB0aW9uOmluUmVz
dWx0OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOmluRGVzY3JpcHRpb246aW5WYWx1ZTop
XTsKK30KKwordm9pZCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29u
c3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uKQoreworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9k
cy53ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2UpCisgICAgICAgIFttX2RlbGVnYXRlLmdldCgp
IF93ZWJWaWV3Om1fd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZTptZXNzYWdlIGluRGVzY3Jp
cHRpb246ZGVzY3JpcHRpb25dOworfQorCit2b2lkIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojps
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25z
dCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBX
ZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0KQoreworICAgIGlmICht
X2RlbGVnYXRlTWV0aG9kcy53ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KQor
ICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlldzptX3dlYlZpZXcgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0Om1lc3NhZ2UgaW5EZXNjcmlwdGlvbjpkZXNjcmlwdGlvbiBpblJl
c3VsdDp0b0FQSShyZXN1bHQpXTsKK30KKwordm9pZCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25z
dCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBj
b25zdCBXVEY6OlN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndl
YnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSkKKyAgICAgICAgW21fZGVsZWdhdGUu
Z2V0KCkgX3dlYlZpZXc6bV93ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOm1l
c3NhZ2UgaW5EZXNjcmlwdGlvbjpkZXNjcmlwdGlvbiBpblZhbHVlOnZhbHVlXTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcAppbmRleCBhYjQ4MzcxMWE3ZDYwMzI5ZjVlNDI2MmNmZjA1N2MwZmFiYzQ2NmIw
Li5kOGU0MjYzY2Q2NGE5NjkwNDY2NGNlN2QxNTE4YzA2Njc0Zjg0MzllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcApAQCAtMzIsNiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK1dl
YlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KGNvbnN0IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSogY2xpZW50KQorewor
ICAgIGluaXRpYWxpemUoY2xpZW50KTsKK30KKwogdm9pZCBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQogewogICAgIGlmICgh
bV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggYWI0
ZWFiNzE3NzVmMzE4MGFlM2ZjYTNjZjg3MWZmNDlhNDYzNWY1YS4uNDFjODM0ZjRjNDI1NDE1Mjhk
ZTkxZGZjMjg5ZmQwOTBiZDAzMDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMjcsNiArMjcs
NyBAQAogI2RlZmluZSBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAogCiAjaW5jbHVk
ZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIK
ICNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00MywxMSArNDQsMTMg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3MgV2Vi
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4geworY2xhc3MgV2ViUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50IGZpbmFsIDogcHVibGljIEFQSTo6Q2xpZW50PFdLUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50QmFzZT4sIHB1YmxpYyBBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eSosIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7Ci0gICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGlj
TG9nZ2luZ1Jlc3VsdFR5cGUpOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICBleHBsaWNpdCBXZWJQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQoY29uc3QgV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRC
YXNlKik7CisKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZVBy
b3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVBy
b3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBj
b25zdCBTdHJpbmcmIHZhbHVlKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5ZDVkY2Mx
N2UwNDE4ZDkyN2Y0N2ZhNjg1MjEyYTc3M2ZiYjUyMTI0Li42M2I4NzUyMGRlMjhhNjJhNDgwN2Qw
ZDAxM2ZjZWY3NmYxMGIzY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMjY0LDYgKzI2NCw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBh
Z2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAgICAg
LCBtX2Zvcm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkZvcm1DbGllbnQ+KCkpCiAgICAg
LCBtX3VpQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpVSUNsaWVudD4oKSkKICAgICAsIG1f
ZmluZENsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6RmluZENsaWVudD4oKSkKKyAgICAsIG1f
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50PigpKQogICAgICwgbV9uYXZpZ2F0aW9uU3RhdGUoc3RkOjptYWtlX3VuaXF1
ZTxXZWJOYXZpZ2F0aW9uU3RhdGU+KCkpCiAgICAgLCBtX3Byb2Nlc3MocHJvY2VzcykKICAgICAs
IG1fcGFnZUdyb3VwKCpjb25maWd1cmF0aW9uLnBhZ2VHcm91cCkKQEAgLTU1MCw5ICs1NTEsMTQg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVGaW5kTWF0Y2hlc0NsaWVudChjb25zdCBX
S1BhZ2VGaW5kTWF0Y2hlc0NsaWVudEJhc2UKICAgICBtX2ZpbmRNYXRjaGVzQ2xpZW50LmluaXRp
YWxpemUoY2xpZW50KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudChjb25zdCBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2Uq
IGNsaWVudCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXREaWFnbm9zdGljTG9nZ2luZ0NsaWVudChz
dGQ6OnVuaXF1ZV9wdHI8QVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4gZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQpCiB7Ci0gICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5pbml0aWFsaXpl
KGNsaWVudCk7CisgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkgeworICAgICAgICBt
X2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50PigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCA9IFdURjo6bW92ZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk7
CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTcxMCw3ICs3MTYsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6Y2xvc2UoKQogI2VuZGlmCiAgICAgbV9maW5kQ2xpZW50ID0gc3RkOjpt
YWtlX3VuaXF1ZTxBUEk6OkZpbmRDbGllbnQ+KCk7CiAgICAgbV9maW5kTWF0Y2hlc0NsaWVudC5p
bml0aWFsaXplKG51bGxwdHIpOwotICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaW5pdGlh
bGl6ZShudWxscHRyKTsKKyAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gc3RkOjptYWtl
X3VuaXF1ZTxBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PigpOwogI2lmIEVOQUJMRShDT05U
RVhUX01FTlVTKQogICAgIG1fY29udGV4dE1lbnVDbGllbnQuaW5pdGlhbGl6ZShudWxscHRyKTsK
ICNlbmRpZgpAQCAtNDM4NywxNyArNDM5MywxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZWRpdGlu
Z1JhbmdlQ2FsbGJhY2soY29uc3QgRWRpdGluZ1JhbmdlJiByYW5nZSwgdWludDY0X3QgY2FsbAog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQogewotICAgIG1fZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRp
b24pOworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdl
KHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6Omxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCkKIHsKLSAgICBtX2RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh0aGlzLCBtZXNz
YWdlLCBkZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdS
ZXN1bHRUeXBlPihyZXN1bHQpKTsKKyAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHN0
YXRpY19jYXN0PFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZT4ocmVzdWx0KSk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0
cmluZyYgdmFsdWUpCiB7Ci0gICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZSh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOwor
ICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSk7CiB9CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFjayhjb25zdCBJbnRSZWN0JiByZWN0
LCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCB1aW50NjRfdCBjYWxsYmFja0lEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGUxYzc1NDA1YzJhZTU5
MGE5Y2ZmMTk2OGUwNTBiNGM2ZmEzZDIwOTYuLjBmYWU2NjI5MjkzMmQxYmMxN2IzYzg0NDIyOGQw
NGE2MGVjZWU2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTMxMSw4ICszMTEsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICBBUEk6OkZpbmRDbGllbnQmIGZp
bmRDbGllbnQoKSB7IHJldHVybiAqbV9maW5kQ2xpZW50OyB9CiAgICAgdm9pZCBzZXRGaW5kQ2xp
ZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkZpbmRDbGllbnQ+KTsKKyAgICBBUEk6OkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIHsgcmV0dXJuICptX2Rp
YWdub3N0aWNMb2dnaW5nQ2xpZW50OyB9CisgICAgdm9pZCBzZXREaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4pOwogICAg
IHZvaWQgaW5pdGlhbGl6ZUZpbmRNYXRjaGVzQ2xpZW50KGNvbnN0IFdLUGFnZUZpbmRNYXRjaGVz
Q2xpZW50QmFzZSopOwotICAgIHZvaWQgaW5pdGlhbGl6ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KGNvbnN0IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSopOwogICAgIHZvaWQgc2V0
Rm9ybUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGb3JtQ2xpZW50Pik7CiAgICAgdm9pZCBz
ZXRMb2FkZXJDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6TG9hZGVyQ2xpZW50Pik7CiAgICAg
dm9pZCBzZXRQb2xpY3lDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6UG9saWN5Q2xpZW50Pik7
CkBAIC0xMzY3LDcgKzEzNjgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVf
cHRyPEFQSTo6RmluZENsaWVudD4gbV9maW5kQ2xpZW50OwogICAgIFdlYkZpbmRNYXRjaGVzQ2xp
ZW50IG1fZmluZE1hdGNoZXNDbGllbnQ7Ci0gICAgV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50IG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+IG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CiAjaWYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50IG1fY29u
dGV4dE1lbnVDbGllbnQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmY2RkZWViYTgzMDk1YzIyNDYyMTg1NDVhMWU5
YTY1NTdiMjAyYjVkLi44Y2M4YWY4N2EzZjI5MzhiYWJiOGVmNjQ4YWVmMmEwYmQzYTI1OTViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMTEwLDYgKzExMTAsMTAgQEAKIAkJODM3MkRCMjgxQTY3NTYyODAwQzY5N0M1IC8qIFdl
YlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIyNjFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsKIAkJODM3MkRCMjkxQTY3NTYyODAw
QzY5N0M1IC8qIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3MkRCMjcxQTY3NTYyODAwQzY5N0M1
IC8qIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OwogCQk4MzcyREIyRjFB
Njc3RDRBMDBDNjk3QzUgLyogV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzJEQjJFMUE2NzdENEEw
MEM2OTdDNSAvKiBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTgzODkxQjYzMUE2OEIzNDIwMDMw
RjM4NiAvKiBBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4OTFCNjIxQTY4QjM0MjAwMzBGMzg2IC8qIEFQ
SURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CisJCTgzODkxQjY5MUE2OEJFQkMwMDMw
RjM4NiAvKiBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzg5MUI2ODFBNjhCRUJDMDAzMEYzODYgLyog
X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTgzODkxQjZDMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM4OTFCNkExQTY4QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggKi87IH07CisJCTgzODkxQjZEMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzODkxQjZCMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5tbSAqLzsgfTsKIAkJODQ0Nzc4NTMxNzZGQ0MwODAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovOyB9OwogCQk4NjgxNjBEMDE4NzY0NTU3MDAyMUU3
OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2ODE2MENGMTg3NjQ1MzcwMDIxRTc5RCAvKiBXaW5kb3dT
ZXJ2ZXJDb25uZWN0aW9uLm1tICovOyB9OwogCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyog
UHJvY2Vzc1Rocm90dGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZFNjdBMjExOTBGNDExODAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCAq
LzsgfTsKQEAgLTMyMjMsNiArMzIyNywxMCBAQAogCQk4MzcyREIyNjFBNjc1NjI4MDBDNjk3QzUg
LyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI3MUE2NzU2MjgwMEM2OTdDNSAvKiBX
ZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNzJEQjJFMUE2NzdENEEwMEM2OTdDNSAvKiBXS0RpYWdub3N0aWNM
b2dnaW5nUmVzdWx0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Rp
YWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4Mzg5MUI2MjFBNjhCMzQyMDAzMEYzODYgLyogQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM4OTFCNjgxQTY4QkVCQzAw
MzBGMzg2IC8qIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4Mzg5MUI2QTFBNjhDMzBCMDAzMEYzODYgLyogRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM4
OTFCNkIxQTY4QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NDc3ODUxMTc2RkNBQzEwMENE
QzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MENEMTg3NjNENEIwMDIx
RTc5RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd1Nl
cnZlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY4MTYwQ0Yx
ODc2NDUzNzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDcxMiw2ICs0NzIwLDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIERhdGFiYXNlcyAqLywK
KwkJCQk4Mzg5MUI2QTFBNjhDMzBCMDAzMEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aCAqLywKKwkJCQk4Mzg5MUI2QjFBNjhDMzBCMDAzMEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQubW0gKi8sCiAJCQkJQTFERjYzMTExOEUwQjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xp
ZW50LmggKi8sCiAJCQkJQTFERjYzMTAxOEUwQjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50
Lm1tICovLAogCQkJCTAwQjk2NjE4MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggKi8s
CkBAIC01MTEzLDYgKzUxMjMsNyBAQAogCQkJCTM3QTVFMDEyMThCQkY5MzcwMDBBMDgxRSAvKiBf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oICovLAogCQkJCTM3QTVFMDExMThCQkY5MzcwMDBBMDgx
RSAvKiBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSAqLywKIAkJCQkzNzlBODczNTE4QkJGQTQz
MDA1ODhBRjIgLyogX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oICovLAorCQkJCTgz
ODkxQjY4MUE2OEJFQkMwMDMwRjM4NiAvKiBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgg
Ki8sCiAJCQkJQTFBNEZFNTcxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkLmggKi8sCiAJ
CQkJQTFBNEZFNTgxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkLm1tICovLAogCQkJCUEx
QTRGRTYwMThERDU0QTQwMEI1RUE4QSAvKiBfV0tEb3dubG9hZERlbGVnYXRlLmggKi8sCkBAIC02
MDUxLDYgKzYwNjIsNyBAQAogCQkJCUJDOEE1MDEzMTE3NjVGNDUwMDc1NzU3MyAvKiBjcHAgKi8s
CiAJCQkJMkRBOTQ0NzcxODg0RTNBQjAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzExMUI0NzEx
MkY2MTY5MDAzMzdCQUIgLyogbWFjICovLAorCQkJCTgzODkxQjYyMUE2OEIzNDIwMDMwRjM4NiAv
KiBBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJCTFGN0QzNkMwMThEQTUxM0Yw
MEQ5RDY1OSAvKiBBUElEb3dubG9hZENsaWVudC5oICovLAogCQkJCTAwQjk2NjE1MThFMjRDQkEw
MENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi8sCiAJCQkJMzdFMjVENkQxOEZERTVENjAwNUQz
QTAwIC8qIEFQSUZvcm1DbGllbnQuaCAqLywKQEAgLTc0MDIsNiArNzQxNCw3IEBACiAJCQkJMUE2
NDIyOUExMkREMDI5MjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVhTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMjY1MjE3MTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTY0MjMwOTEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0Fy
ZWFQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4Mzg5MUI2QzFBNjhDMzBCMDAz
MEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVE
QTZFRDBBMTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0
aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAv
KiBFZGl0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03NzEwLDYgKzc3MjMsNyBAQAogCQkJ
CTUxODM0NTkzMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxRDAyRjZBMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJh
c2VNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExQjI0QTcxMzJFMDk1NzAwMDY1QTBD
IC8qIFdlYkljb25EYXRhYmFzZVByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4Mzg5MUI2OTFB
NjhCRUJDMDAzMEYzODYgLyogX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFEMDJGNkMxMzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZVBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTM1MUY2MTgwRjVDNzUwMEU1M0JF
OSAvKiBXZWJJREJGYWN0b3J5QmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOTA5OTMx
ODNBQ0VBRjAwNTUyMkE2IC8qIFdlYklEQlNlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtNzk1Myw2ICs3OTY3LDcgQEAKIAkJCQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyog
V0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjAwMTI0RkYwMjcwMDY4
RjIwQSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMDlBRTVF
OTEyNTI1N0MyMDAyNTgyNUQgLyogV0tOYXRpdmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
ODM4OTFCNjMxQTY4QjM0MjAwMzBGMzg2IC8qIEFQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTVCMUM1MTE4OTg2MDZGMDA0RkNGOUIgLyogV0tOYXZpZ2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI1NkUzODE4QTFBNzg4MDA2RkI5MjIgLyogV0tO
YXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI1NkUzQTE4QTFBN0RGMDA2
RkI5MjIgLyogV0tOYXZpZ2F0aW9uQWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAt
OTY3Niw2ICs5NjkxLDcgQEAKIAkJCQkzN0JGMkYwNzE5NDdERUI0MDA3MjNDNDggLyogV0tOU1VS
TFJlcXVlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYwMTEyNEZGMDI3MDA2OEYyMEEg
LyogV0tOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENUVCQjgxNzQ2QTE1QjAwMEMx
QzQ1IC8qIFdLT2JqQ1R5cGVXcmFwcGVyUmVmLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODM4OTFC
NkQxQTY4QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzc0NDM2ODgxODIwRTcyNDAwNDk1NzlGIC8qIFdLT2JqZWN0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM4NTgwNjMxMkI4NTA1NzAwRURFQjJFIC8qIFdLT3BlblBhbmVsUGFy
YW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzg1ODA2MjEyQjg1MDU3MDBFREVCMkUg
LyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244777</attachid>
            <date>2015-01-16 11:26:24 -0800</date>
            <delta_ts>2015-01-16 13:06:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140410-20150116112630.patch</filename>
            <type>text/plain</type>
            <size>33501</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDkxNjQyY2I4NTAwYjc2
MzUyYmQwYzZhYzA5ZGYzN2E2ZDJmZjQyZi4uNDZmOWFkMTk4ZWQwMTVlMjkyYmFkZmViMTcxNzNh
YTBhNzVhOWNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTAxLTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl1baU9TXSBBZGQgQ29j
b2EgZGVsZWdhdGUgZm9yIGxvZ2dpbmcgZGlhZ25vc3RpYyBtZXNzYWdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIENvY29hIGRlbGVnYXRlIGZv
ciBsb2dnaW5nIGRpYWdub3N0aWMgbWVzc2FnZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaC4KKyAgICAgICAgKEFQ
STo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6On5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6Cisg
ICAgICAgIChBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2Fn
ZSk6CisgICAgICAgIChBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoQVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlXSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmguCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ6OmRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2Vi
UGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXREaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1
bHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppbml0aWFsaXplRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDE1LTAxLTE2ICBTaGl2YWt1bWFyIEpNICA8c2hpdmEuam1Ac2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgRml4IGJ1aWxkIHdhcm5pbmcgaW4gV2ViS2l0Mi9VSVByb2Nlc3MgbW9kdWxlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGEwYjFhZDY1ZWJmMTEwNGM0NjQ3N2Y0NTNh
YWU3NjkyNDczNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorI2RlZmluZSBBUElE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNM
b2dnaW5nUmVzdWx0VHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KKworbmFtZXNwYWNlIEFQ
SSB7CisKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbikgeyBVTlVTRURfUEFS
QU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZVByb3h5Kiwg
Y29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlv
biwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKSB7IFVOVVNFRF9QQVJBTSht
ZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0
IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFdURjo6U3RyaW5nJiB2YWx1ZSkgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9Q
QVJBTShkZXNjcmlwdGlvbik7IFVOVVNFRF9QQVJBTSh2YWx1ZSk7IH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIEFQSQorCisjZW5kaWYgLy8gQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGE5ZjBiZjgxZmU1
N2RmODNhN2I4ZmQ3MmY1NDdmNzllNzU5MjFlZjcuLmY2ZWY5OWY1YjJiOWNjNGE2NDQ0YThiZTY3
NDVmZmQxOGMyYzhhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCkBAIC03MjksNyArNzI5LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlQ29udGV4dE1lbnVDbGll
bnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2wKIAogdm9pZCBX
S1BhZ2VTZXRQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSogd2tDbGllbnQpCiB7Ci0gICAg
dG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQod2tDbGll
bnQpOworICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3Rk
OjptYWtlX3VuaXF1ZTxXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+KHdrQ2xpZW50KSk7
CiB9CiAKIHZvaWQgV0tQYWdlU2V0UGFnZUZpbmRDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZUZpbmRDbGllbnRCYXNlKiB3a0NsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNGU0NDY2NGJiMTEwY2E5OWYx
MmI2YTEwZDc2NDMwOWZhNzUxMTQ0NC4uN2E4MTU3YmFhMjk2NTgyYzBmOGJmYzNhMjUxNDQ1MmNk
NjliNjJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkFQSUZvcm1DbGllbnQuaCIKICNp
bXBvcnQgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhh
bmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9ydCAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIK
ICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5oIgogI2ltcG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCkBAIC02Niw2ICs2Nyw3IEBACiAjaW1w
b3J0ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAj
aW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIl9XS0RpYWdub3N0aWNMb2dnaW5n
RGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZpbmREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLRm9y
bURlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgi
CkBAIC0zNjIsNiArMzY0LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVj
dClmcmFtZSBjb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW8KICAgICBfcGFnZS0+
c2V0VUlDbGllbnQoX3VpRGVsZWdhdGUtPmNyZWF0ZVVJQ2xpZW50KCkpOwogCiAgICAgX3BhZ2Ut
PnNldEZpbmRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkZpbmRDbGllbnQ+KHNlbGYp
KTsKKyAgICBfcGFnZS0+c2V0RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3RkOjptYWtlX3VuaXF1
ZTxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PihzZWxmKSk7CiAKICAgICBwYWdlVG9W
aWV3TWFwKCkuYWRkKF9wYWdlLmdldCgpLCBzZWxmKTsKIApAQCAtMTk3MCw2ICsxOTczLDE2IEBA
IC0gKHZvaWQpX3NldFBhZ2Vab29tRmFjdG9yOihkb3VibGUpem9vbUZhY3RvcgogICAgIF9wYWdl
LT5zZXRQYWdlWm9vbUZhY3Rvcih6b29tRmFjdG9yKTsKIH0KIAorLSAoaWQgPF9XS0RpYWdub3N0
aWNMb2dnaW5nRGVsZWdhdGU+KV9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlCit7CisgICAgcmV0
dXJuIFtzdGF0aWNfY2FzdDxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Jj4oX3BhZ2Ut
PmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkpLmRlbGVnYXRlKCkubGVha1JlZigpIGF1dG9yZWxl
YXNlXTsKK30KKworLSAodm9pZClfc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTooaWQ8X1dL
RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4pZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZQorewor
ICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmPihfcGFnZS0+
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSkuc2V0RGVsZWdhdGUoZGlhZ25vc3RpY0xvZ2dpbmdE
ZWxlZ2F0ZSk7Cit9CisKIC0gKGlkIDxfV0tGaW5kRGVsZWdhdGU+KV9maW5kRGVsZWdhdGUKIHsK
ICAgICByZXR1cm4gW3N0YXRpY19jYXN0PFdlYktpdDo6RmluZENsaWVudCY+KF9wYWdlLT5maW5k
Q2xpZW50KCkpLmRlbGVnYXRlKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5k
ZXggMGQ2ZjI2MGM5YTY0NGY5ZjVlZmUyZGRiNWMwMWFiOWQzNzQwODUwYS4uODc4MWVkNWIzNWJk
YmI5NTI2NGZiZTllMWUxMTZlNzhhN2YzNTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTU1LDYgKzU1LDcg
QEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0ZpbmRPcHRpb25zKSB7CiBAY2xh
c3MgX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyOwogCiBAcHJvdG9jb2wgV0tIaXN0b3J5RGVsZWdh
dGVQcml2YXRlOworQHByb3RvY29sIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU7CiBAcHJv
dG9jb2wgX1dLRmluZERlbGVnYXRlOwogQHByb3RvY29sIF9XS0Zvcm1EZWxlZ2F0ZTsKIApAQCAt
MTc1LDYgKzE3Niw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tGaW5kT3B0
aW9ucykgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dFpvb21GYWN0b3I6
KSBkb3VibGUgX3RleHRab29tRmFjdG9yOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0UGFnZVpvb21GYWN0b3I6KSBkb3VibGUgX3BhZ2Vab29tRmFjdG9yOwogCitAcHJvcGVydHkg
KG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOikg
aWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVn
YXRlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEZpbmREZWxlZ2F0ZTopIGlkIDxfV0tGaW5kRGVsZWdh
dGU+IF9maW5kRGVsZWdhdGU7CiAtICh2b2lkKV9maW5kU3RyaW5nOihOU1N0cmluZyAqKXN0cmlu
ZyBvcHRpb25zOihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJbnRlZ2VyKW1h
eENvdW50OwogLSAodm9pZClfY291bnRTdHJpbmdNYXRjaGVzOihOU1N0cmluZyAqKXN0cmluZyBv
cHRpb25zOihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJbnRlZ2VyKW1heENv
dW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tE
aWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmE5NWJj
ZTE5YWRhNGMzMTM3OGMyNTQ3YWE2NWE5NWE4NjkyNmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVn
YXRlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0Zv
dW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24v
Rm91bmRhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRU
eXBlLmg+CisKK0Bwcm90b2NvbCBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlIDxOU09iamVj
dD4KK0BvcHRpb25hbAorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxv
Z0RpYWdub3N0aWNNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5EZXNjcmlwdGlvbjooTlNT
dHJpbmcgKilkZXNjcmlwdGlvbjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0OihOU1N0cmluZyAqKW1lc3NhZ2UgaW5E
ZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBpblJlc3VsdDooV0tEaWFnbm9zdGlj
TG9nZ2luZ1Jlc3VsdFR5cGUpcmVzdWx0OworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZTooTlNTdHJpbmcgKiltZXNzYWdl
IGluRGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVzY3JpcHRpb24gaW5WYWx1ZTooTlNTdHJpbmcg
KikgdmFsdWU7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzJiNGM4ZTg5OGRmNDhiNzU5YTk3MzhjMzc0NGMxZjc3NDJhMTVh
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9EaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKKyNkZWZpbmUgRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnRfaAorCisjaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKKworI2lmIFdLX0FQSV9FTkFCTEVE
CisKKyNpbXBvcnQgIkFQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisjaW1wb3J0ICJXZWFr
T2JqQ1B0ci5oIgorI2ltcG9ydCA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUu
aD4KKworQGNsYXNzIFdLV2ViVmlldzsKK0Bwcm90b2NvbCBfV0tEaWFnbm9zdGljTG9nZ2luZ0Rl
bGVnYXRlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQgZmluYWwgOiBwdWJsaWMgQVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tXZWJWaWV3ICopOwor
CisgICAgUmV0YWluUHRyPGlkIDxfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlPj4gZGVsZWdh
dGUoKTsKKyAgICB2b2lkIHNldERlbGVnYXRlKGlkIDxfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVn
YXRlPik7CisKK3ByaXZhdGU6CisgICAgLy8gRnJvbSBBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eSos
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQ
YWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdlYlBhZ2VQcm94eSos
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7CisKKyAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKKyAg
ICBXZWFrT2JqQ1B0cjxpZCA8X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4+IG1fZGVsZWdh
dGU7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlhZ25vc3Rp
Y01lc3NhZ2UgOiAxOworICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0IDogMTsKKyAgICAgICAgdW5zaWduZWQgd2Vidmlld0xvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlIDogMTsKKyAgICB9IG1fZGVsZWdhdGVNZXRob2RzOworfTsKKworfSAv
LyBXZWJLaXQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECisKKyNlbmRpZiAvLyBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudF9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWIyMGIy
MmZmNWRhNDQyNzc0NzMwMjNmMjY5YjE1YjI2NTQzNTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tCkBA
IC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1w
b3J0ICJXS1NoYXJlZEFQSUNhc3QuaCIKKyNpbXBvcnQgIl9XS0RpYWdub3N0aWNMb2dnaW5nRGVs
ZWdhdGUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXS1dlYlZpZXcgKndlYlZpZXcpCisgICAgOiBtX3dl
YlZpZXcod2ViVmlldykKK3sKK30KKworUmV0YWluUHRyPGlkIDxfV0tEaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlPj4gRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmRlbGVnYXRlKCkKK3sKKyAgICBy
ZXR1cm4gbV9kZWxlZ2F0ZS5nZXQoKTsKK30KKwordm9pZCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6c2V0RGVsZWdhdGUoaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IGRlbGVnYXRl
KQoreworICAgIG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKKworICAgIG1fZGVsZWdhdGVNZXRob2Rz
LndlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmxvZ0RpYWdub3N0aWNNZXNzYWdlOmluRGVzY3JpcHRpb246
KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDppbkRlc2NyaXB0aW9uOmluUmVzdWx0Oild
OworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Omxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOmluRGVzY3JpcHRpb246aW5WYWx1ZTopXTsKK30K
Kwordm9pZCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoV2Vi
S2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RG
OjpTdHJpbmcmIGRlc2NyaXB0aW9uKQoreworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJ2
aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2UpCisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJW
aWV3Om1fd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZTptZXNzYWdlIGluRGVzY3JpcHRpb246
ZGVzY3JpcHRpb25dOworfQorCit2b2lkIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6
OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0KQoreworICAgIGlmIChtX2RlbGVn
YXRlTWV0aG9kcy53ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KQorICAgICAg
ICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlldzptX3dlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0Om1lc3NhZ2UgaW5EZXNjcmlwdGlvbjpkZXNjcmlwdGlvbiBpblJlc3VsdDp0
b0FQSShyZXN1bHQpXTsKK30KKwordm9pZCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6
OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBX
VEY6OlN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYnZpZXdM
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSkKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkg
X3dlYlZpZXc6bV93ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOm1lc3NhZ2Ug
aW5EZXNjcmlwdGlvbjpkZXNjcmlwdGlvbiBpblZhbHVlOnZhbHVlXTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcAppbmRleCBhYjQ4MzcxMWE3ZDYwMzI5ZjVlNDI2MmNmZjA1N2MwZmFiYzQ2NmIwLi5kOGU0
MjYzY2Q2NGE5NjkwNDY2NGNlN2QxNTE4YzA2Njc0Zjg0MzllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcApAQCAtMzIsNiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK1dlYlBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KGNv
bnN0IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSogY2xpZW50KQoreworICAgIGlu
aXRpYWxpemUoY2xpZW50KTsKK30KKwogdm9pZCBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQogewogICAgIGlmICghbV9jbGll
bnQubG9nRGlhZ25vc3RpY01lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggYWI0ZWFiNzE3
NzVmMzE4MGFlM2ZjYTNjZjg3MWZmNDlhNDYzNWY1YS4uNDFjODM0ZjRjNDI1NDE1MjhkZTkxZGZj
Mjg5ZmQwOTBiZDAzMDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAogCiAjaW5jbHVkZSAiQVBJ
Q2xpZW50LmgiCisjaW5jbHVkZSAiQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNs
dWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0
VHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00MywxMSArNDQsMTMgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3MgV2ViUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLUGFnZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50QmFzZT4geworY2xhc3MgV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50IGZpbmFsIDogcHVibGljIEFQSTo6Q2xpZW50PFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50QmFzZT4sIHB1YmxpYyBBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7Ci0gICAgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGUpOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2Vi
UGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICBleHBsaWNpdCBXZWJQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoY29uc3QgV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlKik7
CisKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBh
Z2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBT
dHJpbmcmIHZhbHVlKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5ZDVkY2MxN2UwNDE4
ZDkyN2Y0N2ZhNjg1MjEyYTc3M2ZiYjUyMTI0Li42M2I4NzUyMGRlMjhhNjJhNDgwN2QwZDAxM2Zj
ZWY3NmYxMGIzY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMjY0LDYgKzI2NCw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGll
bnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX2Zv
cm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkZvcm1DbGllbnQ+KCkpCiAgICAgLCBtX3Vp
Q2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpVSUNsaWVudD4oKSkKICAgICAsIG1fZmluZENs
aWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6RmluZENsaWVudD4oKSkKKyAgICAsIG1fZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50PigpKQogICAgICwgbV9uYXZpZ2F0aW9uU3RhdGUoc3RkOjptYWtlX3VuaXF1ZTxXZWJO
YXZpZ2F0aW9uU3RhdGU+KCkpCiAgICAgLCBtX3Byb2Nlc3MocHJvY2VzcykKICAgICAsIG1fcGFn
ZUdyb3VwKCpjb25maWd1cmF0aW9uLnBhZ2VHcm91cCkKQEAgLTU1MCw5ICs1NTEsMTQgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVGaW5kTWF0Y2hlc0NsaWVudChjb25zdCBXS1BhZ2VG
aW5kTWF0Y2hlc0NsaWVudEJhc2UKICAgICBtX2ZpbmRNYXRjaGVzQ2xpZW50LmluaXRpYWxpemUo
Y2xpZW50KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudChjb25zdCBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UqIGNsaWVu
dCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXREaWFnbm9zdGljTG9nZ2luZ0NsaWVudChzdGQ6OnVu
aXF1ZV9wdHI8QVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4gZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQpCiB7Ci0gICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5pbml0aWFsaXplKGNsaWVu
dCk7CisgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkgeworICAgICAgICBtX2RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50PigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9kaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCA9IFdURjo6bW92ZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk7CiB9CiAK
ICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTcxMCw3ICs3MTYsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6Y2xvc2UoKQogI2VuZGlmCiAgICAgbV9maW5kQ2xpZW50ID0gc3RkOjptYWtlX3Vu
aXF1ZTxBUEk6OkZpbmRDbGllbnQ+KCk7CiAgICAgbV9maW5kTWF0Y2hlc0NsaWVudC5pbml0aWFs
aXplKG51bGxwdHIpOwotICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaW5pdGlhbGl6ZShu
dWxscHRyKTsKKyAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PigpOwogI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQogICAgIG1fY29udGV4dE1lbnVDbGllbnQuaW5pdGlhbGl6ZShudWxscHRyKTsKICNlbmRp
ZgpAQCAtNDM4NywxNyArNDM5MywxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZWRpdGluZ1Jhbmdl
Q2FsbGJhY2soY29uc3QgRWRpdGluZ1JhbmdlJiByYW5nZSwgdWludDY0X3QgY2FsbAogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQogewotICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24pOwor
ICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKHRoaXMs
IG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCkKIHsKLSAgICBtX2RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh0aGlzLCBtZXNzYWdlLCBk
ZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRU
eXBlPihyZXN1bHQpKTsKKyAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhSZXN1bHQodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHN0YXRpY19j
YXN0PFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZT4ocmVzdWx0KSk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYg
dmFsdWUpCiB7Ci0gICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZSh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpOworICAgIG1f
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHRo
aXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjpyZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFjayhjb25zdCBJbnRSZWN0JiByZWN0LCBjb25z
dCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGUxYzc1NDA1YzJhZTU5MGE5Y2Zm
MTk2OGUwNTBiNGM2ZmEzZDIwOTYuLjBmYWU2NjI5MjkzMmQxYmMxN2IzYzg0NDIyOGQwNGE2MGVj
ZWU2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMxMSw4
ICszMTEsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICBBUEk6OkZpbmRDbGllbnQmIGZpbmRDbGll
bnQoKSB7IHJldHVybiAqbV9maW5kQ2xpZW50OyB9CiAgICAgdm9pZCBzZXRGaW5kQ2xpZW50KHN0
ZDo6dW5pcXVlX3B0cjxBUEk6OkZpbmRDbGllbnQ+KTsKKyAgICBBUEk6OkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIHsgcmV0dXJuICptX2RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50OyB9CisgICAgdm9pZCBzZXREaWFnbm9zdGljTG9nZ2luZ0NsaWVudChz
dGQ6OnVuaXF1ZV9wdHI8QVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4pOwogICAgIHZvaWQg
aW5pdGlhbGl6ZUZpbmRNYXRjaGVzQ2xpZW50KGNvbnN0IFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50
QmFzZSopOwotICAgIHZvaWQgaW5pdGlhbGl6ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KGNvbnN0
IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSopOwogICAgIHZvaWQgc2V0Rm9ybUNs
aWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGb3JtQ2xpZW50Pik7CiAgICAgdm9pZCBzZXRMb2Fk
ZXJDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6TG9hZGVyQ2xpZW50Pik7CiAgICAgdm9pZCBz
ZXRQb2xpY3lDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6UG9saWN5Q2xpZW50Pik7CkBAIC0x
MzY3LDcgKzEzNjgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQ
STo6RmluZENsaWVudD4gbV9maW5kQ2xpZW50OwogICAgIFdlYkZpbmRNYXRjaGVzQ2xpZW50IG1f
ZmluZE1hdGNoZXNDbGllbnQ7Ci0gICAgV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IG1f
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6RGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ+IG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CiAjaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpCiAgICAgV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50IG1fY29udGV4dE1l
bnVDbGllbnQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBmY2RkZWViYTgzMDk1YzIyNDYyMTg1NDVhMWU5YTY1NTdi
MjAyYjVkLi44Y2M4YWY4N2EzZjI5MzhiYWJiOGVmNjQ4YWVmMmEwYmQzYTI1OTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
MTEwLDYgKzExMTAsMTAgQEAKIAkJODM3MkRCMjgxQTY3NTYyODAwQzY5N0M1IC8qIFdlYlBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIyNjFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsKIAkJODM3MkRCMjkxQTY3NTYyODAwQzY5N0M1
IC8qIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3MkRCMjcxQTY3NTYyODAwQzY5N0M1IC8qIFdl
YlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OwogCQk4MzcyREIyRjFBNjc3RDRB
MDBDNjk3QzUgLyogV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzJEQjJFMUE2NzdENEEwMEM2OTdD
NSAvKiBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTgzODkxQjYzMUE2OEIzNDIwMDMwRjM4NiAv
KiBBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM4OTFCNjIxQTY4QjM0MjAwMzBGMzg2IC8qIEFQSURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CisJCTgzODkxQjY5MUE2OEJFQkMwMDMwRjM4NiAv
KiBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzg5MUI2ODFBNjhCRUJDMDAzMEYzODYgLyogX1dLRGlh
Z25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTgzODkxQjZDMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM4OTFCNkExQTY4QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmggKi87IH07CisJCTgzODkxQjZEMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzODkxQjZCMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbSAq
LzsgfTsKIAkJODQ0Nzc4NTMxNzZGQ0MwODAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdE1lZGlhVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdE1lZGlhVHlwZS5oICovOyB9OwogCQk4NjgxNjBEMDE4NzY0NTU3MDAyMUU3OUQgLyog
V2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2ODE2MENGMTg3NjQ1MzcwMDIxRTc5RCAvKiBXaW5kb3dTZXJ2ZXJD
b25uZWN0aW9uLm1tICovOyB9OwogCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vz
c1Rocm90dGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODZFNjdBMjExOTBGNDExODAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCAqLzsgfTsK
QEAgLTMyMjMsNiArMzIyNywxMCBAQAogCQk4MzcyREIyNjFBNjc1NjI4MDBDNjk3QzUgLyogV2Vi
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI3MUE2NzU2MjgwMEM2OTdDNSAvKiBXZWJQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzNzJEQjJFMUE2NzdENEEwMEM2OTdDNSAvKiBXS0RpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0RpYWdub3N0
aWNMb2dnaW5nUmVzdWx0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4Mzg5
MUI2MjFBNjhCMzQyMDAzMEYzODYgLyogQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM4OTFCNjgxQTY4QkVCQzAwMzBGMzg2
IC8qIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4Mzg5MUI2QTFBNjhDMzBCMDAzMEYzODYgLyogRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM4OTFCNkIx
QTY4QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NDc3ODUxMTc2RkNBQzEwMENEQzdCQiAv
KiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MENEMTg3NjNENEIwMDIxRTc5RCAv
KiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd1NlcnZlckNv
bm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY4MTYwQ0YxODc2NDUz
NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDcxMiw2ICs0NzIwLDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIERhdGFiYXNlcyAqLywKKwkJCQk4
Mzg5MUI2QTFBNjhDMzBCMDAzMEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywK
KwkJCQk4Mzg5MUI2QjFBNjhDMzBCMDAzMEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
bW0gKi8sCiAJCQkJQTFERjYzMTExOEUwQjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50Lmgg
Ki8sCiAJCQkJQTFERjYzMTAxOEUwQjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tICov
LAogCQkJCTAwQjk2NjE4MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggKi8sCkBAIC01
MTEzLDYgKzUxMjMsNyBAQAogCQkJCTM3QTVFMDEyMThCQkY5MzcwMDBBMDgxRSAvKiBfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mby5oICovLAogCQkJCTM3QTVFMDExMThCQkY5MzcwMDBBMDgxRSAvKiBf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSAqLywKIAkJCQkzNzlBODczNTE4QkJGQTQzMDA1ODhB
RjIgLyogX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oICovLAorCQkJCTgzODkxQjY4
MUE2OEJFQkMwMDMwRjM4NiAvKiBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmggKi8sCiAJ
CQkJQTFBNEZFNTcxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkLmggKi8sCiAJCQkJQTFB
NEZFNTgxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkLm1tICovLAogCQkJCUExQTRGRTYw
MThERDU0QTQwMEI1RUE4QSAvKiBfV0tEb3dubG9hZERlbGVnYXRlLmggKi8sCkBAIC02MDUxLDYg
KzYwNjIsNyBAQAogCQkJCUJDOEE1MDEzMTE3NjVGNDUwMDc1NzU3MyAvKiBjcHAgKi8sCiAJCQkJ
MkRBOTQ0NzcxODg0RTNBQjAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzExMUI0NzExMkY2MTY5
MDAzMzdCQUIgLyogbWFjICovLAorCQkJCTgzODkxQjYyMUE2OEIzNDIwMDMwRjM4NiAvKiBBUElE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJCTFGN0QzNkMwMThEQTUxM0YwMEQ5RDY1
OSAvKiBBUElEb3dubG9hZENsaWVudC5oICovLAogCQkJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4
OCAvKiBBUElGaW5kQ2xpZW50LmggKi8sCiAJCQkJMzdFMjVENkQxOEZERTVENjAwNUQzQTAwIC8q
IEFQSUZvcm1DbGllbnQuaCAqLywKQEAgLTc0MDIsNiArNzQxNCw3IEBACiAJCQkJMUE2NDIyOUEx
MkREMDI5MjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVhTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMjY1MjE3MTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTY0MjMwOTEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4Mzg5MUI2QzFBNjhDMzBCMDAzMEYzODYg
LyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVEQTZFRDBB
MTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFu
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0
b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03NzEwLDYgKzc3MjMsNyBAQAogCQkJCTUxODM0
NTkzMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxRDAyRjZBMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExQjI0QTcxMzJFMDk1NzAwMDY1QTBDIC8qIFdl
Ykljb25EYXRhYmFzZVByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4Mzg5MUI2OTFBNjhCRUJD
MDAzMEYzODYgLyogX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFEMDJGNkMxMzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTM1MUY2MTgwRjVDNzUwMEU1M0JFOSAvKiBX
ZWJJREJGYWN0b3J5QmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOTA5OTMxODNBQ0VB
RjAwNTUyMkE2IC8qIFdlYklEQlNlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAt
Nzk1Myw2ICs3OTY3LDcgQEAKIAkJCQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRh
YmxlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjAwMTI0RkYwMjcwMDY4RjIwQSAv
KiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMDlBRTVFOTEyNTI1
N0MyMDAyNTgyNUQgLyogV0tOYXRpdmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM4OTFC
NjMxQTY4QjM0MjAwMzBGMzg2IC8qIEFQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTVCMUM1MTE4OTg2MDZGMDA0RkNGOUIgLyogV0tOYXZpZ2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTI1NkUzODE4QTFBNzg4MDA2RkI5MjIgLyogV0tOYXZpZ2F0
aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI1NkUzQTE4QTFBN0RGMDA2RkI5MjIg
LyogV0tOYXZpZ2F0aW9uQWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtOTY3Niw2
ICs5NjkxLDcgQEAKIAkJCQkzN0JGMkYwNzE5NDdERUI0MDA3MjNDNDggLyogV0tOU1VSTFJlcXVl
c3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYwMTEyNEZGMDI3MDA2OEYyMEEgLyogV0tO
dW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENUVCQjgxNzQ2QTE1QjAwMEMxQzQ1IC8q
IFdLT2JqQ1R5cGVXcmFwcGVyUmVmLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODM4OTFCNkQxQTY4
QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzc0NDM2ODgxODIwRTcyNDAwNDk1NzlGIC8qIFdLT2JqZWN0Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM4NTgwNjMxMkI4NTA1NzAwRURFQjJFIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVy
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzg1ODA2MjEyQjg1MDU3MDBFREVCMkUgLyogV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244796</attachid>
            <date>2015-01-16 13:06:42 -0800</date>
            <delta_ts>2015-01-17 17:41:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140410-20150116130649.patch</filename>
            <type>text/plain</type>
            <size>33471</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDkxNjQyY2I4NTAwYjc2
MzUyYmQwYzZhYzA5ZGYzN2E2ZDJmZjQyZi4uNDZmOWFkMTk4ZWQwMTVlMjkyYmFkZmViMTcxNzNh
YTBhNzVhOWNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTAxLTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl1baU9TXSBBZGQgQ29j
b2EgZGVsZWdhdGUgZm9yIGxvZ2dpbmcgZGlhZ25vc3RpYyBtZXNzYWdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIENvY29hIGRlbGVnYXRlIGZv
ciBsb2dnaW5nIGRpYWdub3N0aWMgbWVzc2FnZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaC4KKyAgICAgICAgKEFQ
STo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6On5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6Cisg
ICAgICAgIChBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2Fn
ZSk6CisgICAgICAgIChBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoQVBJOjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlXSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmguCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ6OmRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2Vi
UGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXREaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1
bHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppbml0aWFsaXplRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDE1LTAxLTE2ICBTaGl2YWt1bWFyIEpNICA8c2hpdmEuam1Ac2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgRml4IGJ1aWxkIHdhcm5pbmcgaW4gV2ViS2l0Mi9VSVByb2Nlc3MgbW9kdWxlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGEwYjFhZDY1ZWJmMTEwNGM0NjQ3N2Y0NTNh
YWU3NjkyNDczNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorI2RlZmluZSBBUElE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNM
b2dnaW5nUmVzdWx0VHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KKworbmFtZXNwYWNlIEFQ
SSB7CisKK2NsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbikgeyBVTlVTRURfUEFS
QU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZVByb3h5Kiwg
Y29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlv
biwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKSB7IFVOVVNFRF9QQVJBTSht
ZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0
IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFdURjo6U3RyaW5nJiB2YWx1ZSkgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9Q
QVJBTShkZXNjcmlwdGlvbik7IFVOVVNFRF9QQVJBTSh2YWx1ZSk7IH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIEFQSQorCisjZW5kaWYgLy8gQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGE5ZjBiZjgxZmU1
N2RmODNhN2I4ZmQ3MmY1NDdmNzllNzU5MjFlZjcuLmY2ZWY5OWY1YjJiOWNjNGE2NDQ0YThiZTY3
NDVmZmQxOGMyYzhhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCkBAIC03MjksNyArNzI5LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlQ29udGV4dE1lbnVDbGll
bnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2wKIAogdm9pZCBX
S1BhZ2VTZXRQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSogd2tDbGllbnQpCiB7Ci0gICAg
dG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQod2tDbGll
bnQpOworICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3Rk
OjptYWtlX3VuaXF1ZTxXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+KHdrQ2xpZW50KSk7
CiB9CiAKIHZvaWQgV0tQYWdlU2V0UGFnZUZpbmRDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZUZpbmRDbGllbnRCYXNlKiB3a0NsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNGU0NDY2NGJiMTEwY2E5OWYx
MmI2YTEwZDc2NDMwOWZhNzUxMTQ0NC4uN2E4MTU3YmFhMjk2NTgyYzBmOGJmYzNhMjUxNDQ1MmNk
NjliNjJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkFQSUZvcm1DbGllbnQuaCIKICNp
bXBvcnQgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhh
bmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9ydCAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIK
ICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5oIgogI2ltcG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCkBAIC02Niw2ICs2Nyw3IEBACiAjaW1w
b3J0ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAj
aW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIl9XS0RpYWdub3N0aWNMb2dnaW5n
RGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZpbmREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLRm9y
bURlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgi
CkBAIC0zNjIsNiArMzY0LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVj
dClmcmFtZSBjb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW8KICAgICBfcGFnZS0+
c2V0VUlDbGllbnQoX3VpRGVsZWdhdGUtPmNyZWF0ZVVJQ2xpZW50KCkpOwogCiAgICAgX3BhZ2Ut
PnNldEZpbmRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkZpbmRDbGllbnQ+KHNlbGYp
KTsKKyAgICBfcGFnZS0+c2V0RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3RkOjptYWtlX3VuaXF1
ZTxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PihzZWxmKSk7CiAKICAgICBwYWdlVG9W
aWV3TWFwKCkuYWRkKF9wYWdlLmdldCgpLCBzZWxmKTsKIApAQCAtMTk3MCw2ICsxOTczLDE2IEBA
IC0gKHZvaWQpX3NldFBhZ2Vab29tRmFjdG9yOihkb3VibGUpem9vbUZhY3RvcgogICAgIF9wYWdl
LT5zZXRQYWdlWm9vbUZhY3Rvcih6b29tRmFjdG9yKTsKIH0KIAorLSAoaWQgPF9XS0RpYWdub3N0
aWNMb2dnaW5nRGVsZWdhdGU+KV9kaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlCit7CisgICAgcmV0
dXJuIFtzdGF0aWNfY2FzdDxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Jj4oX3BhZ2Ut
PmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkpLmRlbGVnYXRlKCkubGVha1JlZigpIGF1dG9yZWxl
YXNlXTsKK30KKworLSAodm9pZClfc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTooaWQ8X1dL
RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4pZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZQorewor
ICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmPihfcGFnZS0+
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSkuc2V0RGVsZWdhdGUoZGlhZ25vc3RpY0xvZ2dpbmdE
ZWxlZ2F0ZSk7Cit9CisKIC0gKGlkIDxfV0tGaW5kRGVsZWdhdGU+KV9maW5kRGVsZWdhdGUKIHsK
ICAgICByZXR1cm4gW3N0YXRpY19jYXN0PFdlYktpdDo6RmluZENsaWVudCY+KF9wYWdlLT5maW5k
Q2xpZW50KCkpLmRlbGVnYXRlKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5k
ZXggMGQ2ZjI2MGM5YTY0NGY5ZjVlZmUyZGRiNWMwMWFiOWQzNzQwODUwYS4uODc4MWVkNWIzNWJk
YmI5NTI2NGZiZTllMWUxMTZlNzhhN2YzNTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTU1LDYgKzU1LDcg
QEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0ZpbmRPcHRpb25zKSB7CiBAY2xh
c3MgX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyOwogCiBAcHJvdG9jb2wgV0tIaXN0b3J5RGVsZWdh
dGVQcml2YXRlOworQHByb3RvY29sIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU7CiBAcHJv
dG9jb2wgX1dLRmluZERlbGVnYXRlOwogQHByb3RvY29sIF9XS0Zvcm1EZWxlZ2F0ZTsKIApAQCAt
MTc1LDYgKzE3Niw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tGaW5kT3B0
aW9ucykgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dFpvb21GYWN0b3I6
KSBkb3VibGUgX3RleHRab29tRmFjdG9yOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0UGFnZVpvb21GYWN0b3I6KSBkb3VibGUgX3BhZ2Vab29tRmFjdG9yOwogCitAcHJvcGVydHkg
KG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOikg
aWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9nZ2luZ0RlbGVn
YXRlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEZpbmREZWxlZ2F0ZTopIGlkIDxfV0tGaW5kRGVsZWdh
dGU+IF9maW5kRGVsZWdhdGU7CiAtICh2b2lkKV9maW5kU3RyaW5nOihOU1N0cmluZyAqKXN0cmlu
ZyBvcHRpb25zOihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJbnRlZ2VyKW1h
eENvdW50OwogLSAodm9pZClfY291bnRTdHJpbmdNYXRjaGVzOihOU1N0cmluZyAqKXN0cmluZyBv
cHRpb25zOihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJbnRlZ2VyKW1heENv
dW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tE
aWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGVjODU2
N2M4M2UzNjk2ZmU1OWI1MzhjOWQ3ODljOTA3OWY2YjhlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVn
YXRlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0Zv
dW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24v
Rm91bmRhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRU
eXBlLmg+CisKK0Bwcm90b2NvbCBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlIDxOU09iamVj
dD4KK0BvcHRpb25hbAorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxv
Z0RpYWdub3N0aWNNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3Ry
aW5nICopZGVzY3JpcHRpb247CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2Ny
aXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIHJlc3VsdDooV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGUpcmVzdWx0OworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2Ny
aXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIHZhbHVlOihOU1N0cmluZyAqKSB2YWx1ZTsK
KworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MmI0YzhlODk4ZGY0OGI3NTlhOTczOGMzNzQ0YzFmNzc0MmExNWE5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnRfaAorI2RlZmluZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCisK
KyNpbXBvcnQgIldLRm91bmRhdGlvbi5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9y
dCAiQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKKyNpbXBvcnQgIldlYWtPYmpDUHRyLmgi
CisjaW1wb3J0IDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oPgorCitAY2xh
c3MgV0tXZWJWaWV3OworQHByb3RvY29sIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBmaW5h
bCA6IHB1YmxpYyBBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXS1dlYlZpZXcgKik7CisKKyAgICBSZXRh
aW5QdHI8aWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+PiBkZWxlZ2F0ZSgpOworICAg
IHZvaWQgc2V0RGVsZWdhdGUoaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+KTsKKwor
cHJpdmF0ZToKKyAgICAvLyBGcm9tIEFQSTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQKKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZVByb3h5KiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBhZ2VQcm94eSos
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29y
ZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVByb3h5KiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZh
bHVlKSBvdmVycmlkZTsKKworICAgIFdLV2ViVmlldyAqbV93ZWJWaWV3OworICAgIFdlYWtPYmpD
UHRyPGlkIDxfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlPj4gbV9kZWxlZ2F0ZTsKKworICAg
IHN0cnVjdCB7CisgICAgICAgIHVuc2lnbmVkIHdlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZSA6
IDE7CisgICAgICAgIHVuc2lnbmVkIHdlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1
bHQgOiAxOworICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUgOiAxOworICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7Cit9OworCit9IC8vIFdlYktpdAor
CisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKKworI2VuZGlmIC8vIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0Rp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MGU4ZTZkM2VhYzRiOTkz
NTI1MTA5YmIxNDY4YzY3YzBjM2MzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubW0KQEAgLTAsMCArMSw3
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIldLU2hh
cmVkQVBJQ2FzdC5oIgorI2ltcG9ydCAiX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KFdLV2ViVmlldyAqd2ViVmlldykKKyAgICA6IG1fd2ViVmlldyh3ZWJW
aWV3KQoreworfQorCitSZXRhaW5QdHI8aWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+
PiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6ZGVsZWdhdGUoKQoreworICAgIHJldHVybiBtX2Rl
bGVnYXRlLmdldCgpOworfQorCit2b2lkIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzZXREZWxl
Z2F0ZShpZCA8X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4gZGVsZWdhdGUpCit7CisgICAg
bV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworCisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vidmlld0xv
Z0RpYWdub3N0aWNNZXNzYWdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6bG9nRGlhZ25vc3RpY01lc3NhZ2U6ZGVzY3JpcHRpb246KV07CisgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdDpkZXNjcmlwdGlvbjpyZXN1bHQ6KV07CisgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWU6ZGVzY3JpcHRpb246dmFsdWU6KV07Cit9CisKK3ZvaWQgRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5Kiwg
Y29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlv
bikKK3sKKyAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNz
YWdlKQorICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlldzptX3dlYlZpZXcgbG9nRGlh
Z25vc3RpY01lc3NhZ2U6bWVzc2FnZSBkZXNjcmlwdGlvbjpkZXNjcmlwdGlvbl07Cit9CisKK3Zv
aWQgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBXVEY6OlN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVz
dWx0VHlwZSByZXN1bHQpCit7CisgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYnZpZXdMb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpCisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93
ZWJWaWV3Om1fd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQ6bWVzc2FnZSBk
ZXNjcmlwdGlvbjpkZXNjcmlwdGlvbiByZXN1bHQ6dG9BUEkocmVzdWx0KV07Cit9CisKK3ZvaWQg
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdl
YktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpTdHJpbmcmIHZhbHVlKQoreworICAg
IGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUpCisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3Om1fd2ViVmlldyBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZTptZXNzYWdlIGRlc2NyaXB0aW9uOmRlc2NyaXB0aW9uIHZh
bHVlOnZhbHVlXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXS19B
UElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAppbmRleCBhYjQ4MzcxMWE3ZDYwMzI5ZjVl
NDI2MmNmZjA1N2MwZmFiYzQ2NmIwLi5kOGU0MjYzY2Q2NGE5NjkwNDY2NGNlN2QxNTE4YzA2Njc0
Zjg0MzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtMzIsNiArMzIsMTEgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6V2ViUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KGNvbnN0IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50QmFzZSogY2xpZW50KQoreworICAgIGluaXRpYWxpemUoY2xpZW50KTsKK30KKwogdm9pZCBX
ZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYlBh
Z2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uKQogewogICAgIGlmICghbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmgKaW5kZXggYWI0ZWFiNzE3NzVmMzE4MGFlM2ZjYTNjZjg3MWZmNDlhNDYzNWY1
YS4uNDFjODM0ZjRjNDI1NDE1MjhkZTkxZGZjMjg5ZmQwOTBiZDAzMDVmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnRfaAogCiAjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CkBAIC00MywxMSArNDQsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKIAotY2xhc3MgV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IDogcHVibGlj
IEFQSTo6Q2xpZW50PFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4geworY2xhc3Mg
V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IGZpbmFsIDogcHVibGljIEFQSTo6Q2xpZW50
PFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4sIHB1YmxpYyBBUEk6OkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdl
KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbik7Ci0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFn
ZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUpOwotICAgIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAg
ICBleHBsaWNpdCBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoY29uc3QgV0tQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnRCYXNlKik7CisKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2UoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdS
ZXN1bHRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKSBvdmVycmlkZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCA5ZDVkY2MxN2UwNDE4ZDkyN2Y0N2ZhNjg1MjEyYTc3M2ZiYjUyMTI0Li42
M2I4NzUyMGRlMjhhNjJhNDgwN2QwZDAxM2ZjZWY3NmYxMGIzY2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjY0LDYgKzI2NCw3IEBAIFdlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94
eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX2Zvcm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6
OkZvcm1DbGllbnQ+KCkpCiAgICAgLCBtX3VpQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpV
SUNsaWVudD4oKSkKICAgICAsIG1fZmluZENsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6Rmlu
ZENsaWVudD4oKSkKKyAgICAsIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoc3RkOjptYWtlX3Vu
aXF1ZTxBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PigpKQogICAgICwgbV9uYXZpZ2F0aW9u
U3RhdGUoc3RkOjptYWtlX3VuaXF1ZTxXZWJOYXZpZ2F0aW9uU3RhdGU+KCkpCiAgICAgLCBtX3By
b2Nlc3MocHJvY2VzcykKICAgICAsIG1fcGFnZUdyb3VwKCpjb25maWd1cmF0aW9uLnBhZ2VHcm91
cCkKQEAgLTU1MCw5ICs1NTEsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVGaW5k
TWF0Y2hlc0NsaWVudChjb25zdCBXS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudEJhc2UKICAgICBtX2Zp
bmRNYXRjaGVzQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmluaXRpYWxpemVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25zdCBXS1BhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudEJhc2UqIGNsaWVudCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXREaWFn
bm9zdGljTG9nZ2luZ0NsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudD4gZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCiB7Ci0gICAgbV9kaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5pbml0aWFsaXplKGNsaWVudCk7CisgICAgaWYgKCFkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCkgeworICAgICAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gc3RkOjptYWtl
X3VuaXF1ZTxBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PigpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IFdURjo6bW92ZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCk7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAg
LTcxMCw3ICs3MTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKQogI2VuZGlmCiAgICAg
bV9maW5kQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkZpbmRDbGllbnQ+KCk7CiAgICAg
bV9maW5kTWF0Y2hlc0NsaWVudC5pbml0aWFsaXplKG51bGxwdHIpOwotICAgIG1fZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaW5pdGlhbGl6ZShudWxscHRyKTsKKyAgICBtX2RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
PigpOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIG1fY29udGV4dE1lbnVDbGllbnQu
aW5pdGlhbGl6ZShudWxscHRyKTsKICNlbmRpZgpAQCAtNDM4NywxNyArNDM5MywxNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZWRpdGluZ1JhbmdlQ2FsbGJhY2soY29uc3QgRWRpdGluZ1JhbmdlJiBy
YW5nZSwgdWludDY0X3QgY2FsbAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01l
c3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQog
ewotICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UodGhp
cywgbWVzc2FnZSwgZGVzY3JpcHRpb24pOworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQt
PmxvZ0RpYWdub3N0aWNNZXNzYWdlKHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAog
dm9pZCBXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3Vs
dCkKIHsKLSAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdCh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlPihyZXN1bHQpKTsKKyAgICBtX2RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodGhpcywgbWVz
c2FnZSwgZGVzY3JpcHRpb24sIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZT4ocmVzdWx0KSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgbV9kaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh0aGlzLCBtZXNzYWdlLCBk
ZXNjcmlwdGlvbiwgdmFsdWUpOworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1
ZSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFj
ayhjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCB1
aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IGUxYzc1NDA1YzJhZTU5MGE5Y2ZmMTk2OGUwNTBiNGM2ZmEzZDIwOTYuLjBmYWU2NjI5
MjkzMmQxYmMxN2IzYzg0NDIyOGQwNGE2MGVjZWU2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTMxMSw4ICszMTEsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICBBUEk6OkZpbmRDbGllbnQmIGZpbmRDbGllbnQoKSB7IHJldHVybiAqbV9maW5kQ2xpZW50OyB9
CiAgICAgdm9pZCBzZXRGaW5kQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkZpbmRDbGllbnQ+
KTsKKyAgICBBUEk6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCgpIHsgcmV0dXJuICptX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50OyB9CisgICAgdm9pZCBz
ZXREaWFnbm9zdGljTG9nZ2luZ0NsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudD4pOwogICAgIHZvaWQgaW5pdGlhbGl6ZUZpbmRNYXRjaGVzQ2xpZW50KGNv
bnN0IFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50QmFzZSopOwotICAgIHZvaWQgaW5pdGlhbGl6ZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KGNvbnN0IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
QmFzZSopOwogICAgIHZvaWQgc2V0Rm9ybUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGb3Jt
Q2xpZW50Pik7CiAgICAgdm9pZCBzZXRMb2FkZXJDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6
TG9hZGVyQ2xpZW50Pik7CiAgICAgdm9pZCBzZXRQb2xpY3lDbGllbnQoc3RkOjp1bmlxdWVfcHRy
PEFQSTo6UG9saWN5Q2xpZW50Pik7CkBAIC0xMzY3LDcgKzEzNjgsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6RmluZENsaWVudD4gbV9maW5kQ2xpZW50Owog
ICAgIFdlYkZpbmRNYXRjaGVzQ2xpZW50IG1fZmluZE1hdGNoZXNDbGllbnQ7Ci0gICAgV2ViUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEFQSTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+IG1fZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgV2ViUGFnZUNv
bnRleHRNZW51Q2xpZW50IG1fY29udGV4dE1lbnVDbGllbnQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmY2RkZWVi
YTgzMDk1YzIyNDYyMTg1NDVhMWU5YTY1NTdiMjAyYjVkLi44Y2M4YWY4N2EzZjI5MzhiYWJiOGVm
NjQ4YWVmMmEwYmQzYTI1OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTEwLDYgKzExMTAsMTAgQEAKIAkJODM3MkRCMjgx
QTY3NTYyODAwQzY5N0M1IC8qIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIyNjFBNjc1
NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsK
IAkJODM3MkRCMjkxQTY3NTYyODAwQzY5N0M1IC8qIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3
MkRCMjcxQTY3NTYyODAwQzY5N0M1IC8qIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
ICovOyB9OwogCQk4MzcyREIyRjFBNjc3RDRBMDBDNjk3QzUgLyogV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNzJEQjJFMUE2NzdENEEwMEM2OTdDNSAvKiBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0
VHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTgzODkxQjYzMUE2OEIzNDIwMDMwRjM4NiAvKiBBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4OTFCNjIx
QTY4QjM0MjAwMzBGMzg2IC8qIEFQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CisJ
CTgzODkxQjY5MUE2OEJFQkMwMDMwRjM4NiAvKiBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzg5MUI2
ODFBNjhCRUJDMDAzMEYzODYgLyogX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTgzODkxQjZDMUE2
OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4OTFCNkExQTY4QzMwQjAwMzBGMzg2
IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CisJCTgzODkxQjZEMUE2OEMzMEIw
MDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzODkxQjZCMUE2OEMzMEIwMDMwRjM4NiAvKiBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbSAqLzsgfTsKIAkJODQ0Nzc4NTMxNzZGQ0MwODAwQ0RD
N0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ0Nzc4NTExNzZGQ0FDMTAwQ0RD
N0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovOyB9OwogCQk4
NjgxNjBEMDE4NzY0NTU3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2ODE2MENGMTg3NjQ1
MzcwMDIxRTc5RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tICovOyB9OwogCQk4NkU2N0Ey
NTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFNjdBMjExOTBGNDExODAwMDA0QUI3IC8q
IFByb2Nlc3NUaHJvdHRsZXIuaCAqLzsgfTsKQEAgLTMyMjMsNiArMzIyNywxMCBAQAogCQk4Mzcy
REIyNjFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI3
MUE2NzU2MjgwMEM2OTdDNSAvKiBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjJFMUE2NzdENEEwMEM2
OTdDNSAvKiBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4Mzg5MUI2MjFBNjhCMzQyMDAzMEYzODYgLyogQVBJRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODM4OTFCNjgxQTY4QkVCQzAwMzBGMzg2IC8qIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRGlhZ25vc3RpY0xvZ2dp
bmdEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4Mzg5MUI2QTFBNjhD
MzBCMDAzMEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODM4OTFCNkIxQTY4QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg0NDc3ODUxMTc2RkNBQzEwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRN
ZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg2ODE2MENEMTg3NjNENEIwMDIxRTc5RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdpbmRvd1NlcnZlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODY4MTYwQ0YxODc2NDUzNzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5l
Y3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDcxMiw2ICs0NzIwLDggQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTE3REQ1QkIxODBEQTdDNDAwODE2
NjBCIC8qIERhdGFiYXNlcyAqLywKKwkJCQk4Mzg5MUI2QTFBNjhDMzBCMDAzMEYzODYgLyogRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKKwkJCQk4Mzg5MUI2QjFBNjhDMzBCMDAzMEYzODYg
LyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubW0gKi8sCiAJCQkJQTFERjYzMTExOEUwQjdDODAw
M0EzRTJBIC8qIERvd25sb2FkQ2xpZW50LmggKi8sCiAJCQkJQTFERjYzMTAxOEUwQjdDODAwM0Ez
RTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tICovLAogCQkJCTAwQjk2NjE4MThFMjVBRTEwMENFMUY4
OCAvKiBGaW5kQ2xpZW50LmggKi8sCkBAIC01MTEzLDYgKzUxMjMsNyBAQAogCQkJCTM3QTVFMDEy
MThCQkY5MzcwMDBBMDgxRSAvKiBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oICovLAogCQkJCTM3
QTVFMDExMThCQkY5MzcwMDBBMDgxRSAvKiBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSAqLywK
IAkJCQkzNzlBODczNTE4QkJGQTQzMDA1ODhBRjIgLyogX1dLQWN0aXZhdGVkRWxlbWVudEluZm9J
bnRlcm5hbC5oICovLAorCQkJCTgzODkxQjY4MUE2OEJFQkMwMDMwRjM4NiAvKiBfV0tEaWFnbm9z
dGljTG9nZ2luZ0RlbGVnYXRlLmggKi8sCiAJCQkJQTFBNEZFNTcxOERDRTlGQTAwQjVFQThBIC8q
IF9XS0Rvd25sb2FkLmggKi8sCiAJCQkJQTFBNEZFNTgxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rv
d25sb2FkLm1tICovLAogCQkJCUExQTRGRTYwMThERDU0QTQwMEI1RUE4QSAvKiBfV0tEb3dubG9h
ZERlbGVnYXRlLmggKi8sCkBAIC02MDUxLDYgKzYwNjIsNyBAQAogCQkJCUJDOEE1MDEzMTE3NjVG
NDUwMDc1NzU3MyAvKiBjcHAgKi8sCiAJCQkJMkRBOTQ0NzcxODg0RTNBQjAwRUQ4NkRCIC8qIGlv
cyAqLywKIAkJCQlCQzExMUI0NzExMkY2MTY5MDAzMzdCQUIgLyogbWFjICovLAorCQkJCTgzODkx
QjYyMUE2OEIzNDIwMDMwRjM4NiAvKiBBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAog
CQkJCTFGN0QzNkMwMThEQTUxM0YwMEQ5RDY1OSAvKiBBUElEb3dubG9hZENsaWVudC5oICovLAog
CQkJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi8sCiAJCQkJ
MzdFMjVENkQxOEZERTVENjAwNUQzQTAwIC8qIEFQSUZvcm1DbGllbnQuaCAqLywKQEAgLTc0MDIs
NiArNzQxNCw3IEBACiAJCQkJMUE2NDIyOUExMkREMDI5MjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVh
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjY1MjE3MTE4MjYwODEwMDI0M0UxMiAv
KiBEcmF3aW5nQXJlYVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY0MjMwOTEyREQwOUVC
MDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk4Mzg5MUI2QzFBNjhDMzBCMDAzMEYzODYgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTVEQTZFRDBBMTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlu
a2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMDVGRTU0MThE
N0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTQx
QUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03
NzEwLDYgKzc3MjMsNyBAQAogCQkJCTUxODM0NTkzMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29u
RGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDAyRjZBMTMyRUM3MzcwMEJF
QUE5NiAvKiBXZWJJY29uRGF0YWJhc2VNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEx
QjI0QTcxMzJFMDk1NzAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZVByb3h5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4Mzg5MUI2OTFBNjhCRUJDMDAzMEYzODYgLyogX1dLRGlhZ25vc3RpY0xvZ2dp
bmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFEMDJGNkMxMzJFQzczNzAwQkVBQTk2
IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
RTM1MUY2MTgwRjVDNzUwMEU1M0JFOSAvKiBXZWJJREJGYWN0b3J5QmFja2VuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTEyOTA5OTMxODNBQ0VBRjAwNTUyMkE2IC8qIFdlYklEQlNlcnZlckNvbm5l
Y3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtNzk1Myw2ICs3OTY3LDcgQEAKIAkJCQlCQzQwNzVG
RTEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNDA3NjAwMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDMDlBRTVFOTEyNTI1N0MyMDAyNTgyNUQgLyogV0tOYXRpdmVFdmVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODM4OTFCNjMxQTY4QjM0MjAwMzBGMzg2IC8qIEFQSURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVCMUM1MTE4OTg2MDZG
MDA0RkNGOUIgLyogV0tOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI1NkUzODE4
QTFBNzg4MDA2RkI5MjIgLyogV0tOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTI1NkUzQTE4QTFBN0RGMDA2RkI5MjIgLyogV0tOYXZpZ2F0aW9uQWN0aW9uSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLApAQCAtOTY3Niw2ICs5NjkxLDcgQEAKIAkJCQkzN0JGMkYwNzE5NDdE
RUI0MDA3MjNDNDggLyogV0tOU1VSTFJlcXVlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzQw
NzYwMTEyNEZGMDI3MDA2OEYyMEEgLyogV0tOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0NENUVCQjgxNzQ2QTE1QjAwMEMxQzQ1IC8qIFdLT2JqQ1R5cGVXcmFwcGVyUmVmLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJODM4OTFCNkQxQTY4QzMwQjAwMzBGMzg2IC8qIERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0NDM2ODgxODIwRTcyNDAwNDk1NzlG
IC8qIFdLT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4NTgwNjMxMkI4NTA1NzAwRURF
QjJFIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzg1
ODA2MjEyQjg1MDU3MDBFREVCMkUgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgaW4g
U291cmNlcyAqLywK
</data>

          </attachment>
      

    </bug>

</bugzilla>