<?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>196773</bug_id>
          
          <creation_ts>2019-04-10 10:13:54 -0700</creation_ts>
          <short_desc>Add a DiagnosticLogging method taking an arbitrary dictionary of values.</short_desc>
          <delta_ts>2019-04-15 16:50:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1525996</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-10 10:13:54 -0700</bug_when>
    <thetext>Add a DiagnosticLogging method taking an arbitrary dictionary of values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526028</commentid>
    <comment_count>1</comment_count>
      <attachid>367143</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-10 11:32:53 -0700</bug_when>
    <thetext>Created attachment 367143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526031</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-10 11:35:40 -0700</bug_when>
    <thetext>Attachment 367143 did not pass style-queue:


ERROR: Source/WTF/wtf/HashFunctions.h:288:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526066</commentid>
    <comment_count>3</comment_count>
      <attachid>367143</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-10 12:38:57 -0700</bug_when>
    <thetext>Comment on attachment 367143
Patch

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

Let&apos;s add HashTraits&lt;Variant&lt;Types...&gt;&gt; and some WTF tests for this.

&gt; Source/WTF/wtf/HashFunctions.h:222
&gt; +            return std::hash&lt;Variant&lt;Types...&gt;&gt;(a) == std::hash&lt;Variant&lt;Types...&gt;&gt;(b);

This should just use operator== without using std::hash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526098</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-10 13:43:07 -0700</bug_when>
    <thetext>Turns out, the VariantHash changes are totally unnecessary. I&apos;ll remove them (and separate out that work to another patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526099</commentid>
    <comment_count>5</comment_count>
      <attachid>367157</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-10 13:44:12 -0700</bug_when>
    <thetext>Created attachment 367157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527380</commentid>
    <comment_count>6</comment_count>
      <attachid>367157</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-15 13:47:20 -0700</bug_when>
    <thetext>Comment on attachment 367157
Patch

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

&gt; Source/WebKit/UIProcess/API/C/WKPageDiagnosticLoggingClient.h:68
&gt; +typedef struct WKPageDiagnosticLoggingClientV2 {

Let&apos;s not add to the C API for this.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:43
&gt; +- (void)_webView:(WKWebView *)webView logDiagnosticMessage:(NSString *)message description:(NSString *)description valueDictionary:(NSDictionary *)valueDictionary;

Please add a test that this can be called in WKWebViewDiagnosticLogging.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527457</commentid>
    <comment_count>7</comment_count>
      <attachid>367157</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-15 15:14:48 -0700</bug_when>
    <thetext>Comment on attachment 367157
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:43
&gt;&gt; +- (void)_webView:(WKWebView *)webView logDiagnosticMessage:(NSString *)message description:(NSString *)description valueDictionary:(NSDictionary *)valueDictionary;
&gt; 
&gt; Please add a test that this can be called in WKWebViewDiagnosticLogging.mm.

Also add availability macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527482</commentid>
    <comment_count>8</comment_count>
      <attachid>367157</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-15 15:36:17 -0700</bug_when>
    <thetext>Comment on attachment 367157
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h:64
&gt; +        unsigned webviewLogDiagnosticMessageWithValueDictionary : 1;

This is never set :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527490</commentid>
    <comment_count>9</comment_count>
      <attachid>367469</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-15 16:02:01 -0700</bug_when>
    <thetext>Created attachment 367469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527494</commentid>
    <comment_count>10</comment_count>
      <attachid>367471</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-15 16:08:50 -0700</bug_when>
    <thetext>Created attachment 367471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527512</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-15 16:49:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/r244307</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527515</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-15 16:50:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/49923704&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367143</attachid>
            <date>2019-04-10 11:32:53 -0700</date>
            <delta_ts>2019-04-10 13:44:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196773-20190410113253.patch</filename>
            <type>text/plain</type>
            <size>30216</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQwNDM4NTQ0OGZiMTFlNTY5ZWVkZGEx
NzNjZjkwYTMyMTg5Mzk0ZjIuLjZlODE5ZTVkZmY1YWIxYjRhMDEzNGUzMmIzZTBiYmE4NDFjNWFk
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDQtMTAgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgRGlhZ25vc3RpY0xvZ2dpbmcgbWV0aG9kIHRh
a2luZyBhbiBhcmJpdHJhcnkgZGljdGlvbmFyeSBvZiB2YWx1ZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3NzMKKworICAgICAgICBWYXJpYW50
IGhhcyBhIHN0ZDo6aGFzaCBpbXBsZW1lbnRhdGlvbiwgYnV0IG5vdCBhIERlZmF1bHRIYXNoIGRl
ZmluaXRpb24gbmVjZXNzYXJ5IGZvcgorICAgICAgICB1c2Ugd2l0aCBIYXNoVGFibGUuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvSGFzaEZ1
bmN0aW9ucy5oOgorICAgICAgICAoV1RGOjpWYXJpYW50SGFzaDo6aGFzaCk6CisgICAgICAgIChX
VEY6OlZhcmlhbnRIYXNoOjplcXVhbCk6CisgICAgICAgIChXVEY6OlZhcmlhbnRIYXNoOjphbGxU
cnVlKToKKyAgICAgICAgKFdURjo6VmFyaWFudEhhc2g6OnNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkKToKKwogMjAxOS0wNC0wOCAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CiAKICAgICAgICAgRW5hYmxlIERGRyBvbiBNSVBTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA2NmYy
OTY4ZGQ3ZmYwZDk0Nzc3NzdhZGU0M2MzMjBhMjJmYmQxOS4uMzkyOTM3NDVhZTRjZWQ5N2RmN2Zl
ODNhYmZhMjkxMzk4MDY0YWFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA0
LTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIERp
YWdub3N0aWNMb2dnaW5nIG1ldGhvZCB0YWtpbmcgYW4gYXJiaXRyYXJ5IGRpY3Rpb25hcnkgb2Yg
dmFsdWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk2NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisKIDIwMTktMDQtMDggIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdCBmb3I6IDE5NjA5NSBJbmJh
bmQgVGV4dCBUcmFjayBjdWVzIGludGVyc3BlcnNlZCB3aXRoIERhdGEgY3VlcyBjYW4gZGlzcGxh
eSBvdXQgb2Ygb3JkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiZGUxMGY0NWY3OTgzMWE2Mzc1ZTBhZjlmYzMy
M2VjMTQwMzEwYzQuLjE3NjdlYjczYzQ0Yjc4OWJhODU0ZTI2ZDJmNTg0N2Y4N2MxNDk5Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDQtMTAgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgRGlhZ25vc3RpY0xvZ2dpbmcgbWV0aG9kIHRh
a2luZyBhbiBhcmJpdHJhcnkgZGljdGlvbmFyeSBvZiB2YWx1ZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3NzMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBhZGRpdGlvbiB0byBhZGRpbmcgdGhl
IG5ldyBsb2dnaW5nIGRlbGVnYXRlIG1ldGhvZCAoYW5kIHBpcGluZyBldmVyeXRoaW5nIGludG8g
aXQpLCAKKyAgICAgICAgYWRkIGEgbmV3IEFQSU9iamVjdCBjbGFzcyB0byByZXByZXNlbnQgYSBz
aWduZWQgaW50ZWdlci4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJTnVtYmVyLmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQVBJ
T2JqZWN0Lm1tOgorICAgICAgICAoQVBJOjpPYmplY3Q6Om5ld09iamVjdCk6CisgICAgICAgICog
U2hhcmVkL0NvY29hL1dLTlNOdW1iZXIubW06CisgICAgICAgICgtW1dLTlNOdW1iZXIgZGVhbGxv
Y10pOgorICAgICAgICAoLVtXS05TTnVtYmVyIG9iakNUeXBlXSk6CisgICAgICAgICgtW1dLTlNO
dW1iZXIgZ2V0VmFsdWU6XSk6CisgICAgICAgICgtW1dLTlNOdW1iZXIgbG9uZ0xvbmdWYWx1ZV0p
OgorICAgICAgICAoLVtXS05TTnVtYmVyIF9hcGlPYmplY3RdKToKKyAgICAgICAgKiBTaGFyZWQv
VXNlckRhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyRGF0YTo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlckRhdGE6OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFy
eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisKIDIw
MTktMDQtMDcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDM5NTYuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9IYXNoRnVuY3Rpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoRnVuY3Rpb25zLmgK
aW5kZXggNThmN2IwZmE4Y2QxNzFjZDFmOGNhZjEzYTUwY2ZmYTg4OTYwNDRhZC4uNDBjZTE0ODky
NjE3NTEwZTM3ZjMxZjEwMDBkZTY4ZWU2NGFjNTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvSGFzaEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hGdW5jdGlvbnMuaApA
QCAtMjE0LDYgKzIxNCwyMiBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGljIGNvbnN0
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBhbGxUcnVlKERlZmF1bHRIYXNo
PFR5cGVzPjo6SGFzaDo6c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQuLi4pOwogICAgIH07
CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KKyAgICBzdHJ1Y3QgVmFyaWFudEhh
c2ggeworICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBWYXJpYW50PFR5cGVzLi4u
PiYgdikgeyByZXR1cm4gc3RkOjpoYXNoPFZhcmlhbnQ8VHlwZXMuLi4+Pih2KTsgfQorICAgICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBWYXJpYW50PFR5cGVzLi4uPiYgYSwgY29uc3QgVmFy
aWFudDxUeXBlcy4uLj4mIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Omhh
c2g8VmFyaWFudDxUeXBlcy4uLj4+KGEpID09IHN0ZDo6aGFzaDxWYXJpYW50PFR5cGVzLi4uPj4o
Yik7CisgICAgICAgIH0KKyAgICAgICAgLy8gV2Ugc2hvdWxkIHVzZSBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IERlZmF1bHRIYXNoPFR5cGVzPjo6SGFzaDo6c2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgJiYuLi4gd2hlbmV2ZXIKKyAgICAgICAgLy8gd2Ugc3dpdGNoIHRvIEMr
KzE3LiBXZSBjYW4ndCBkbyBhbnl0aGluZyBiZXR0ZXIgaGVyZSByaWdodCBub3cgYmVjYXVzZSBH
Q0MgY2FuJ3QgZG8gQysrLgorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCb29sVHlwZT4KKyAg
ICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGFsbFRydWUoQm9vbFR5cGUgdmFsdWUpIHsgcmV0
dXJuIHZhbHVlOyB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJvb2xUeXBlLCB0eXBlbmFt
ZS4uLiBCb29sVHlwZXM+CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBhbGxUcnVlKEJv
b2xUeXBlIHZhbHVlLCBCb29sVHlwZXMuLi4gdmFsdWVzKSB7IHJldHVybiB2YWx1ZSAmJiBhbGxU
cnVlKHZhbHVlcy4uLik7IH0KKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFy
ZVRvRW1wdHlPckRlbGV0ZWQgPSBhbGxUcnVlKERlZmF1bHRIYXNoPFR5cGVzPjo6SGFzaDo6c2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQuLi4pOworICAgIH07CisKICAgICAvLyBtYWtlIElu
dEhhc2ggdGhlIGRlZmF1bHQgaGFzaCBmdW5jdGlvbiBmb3IgbWFueSBpbnRlZ2VyIHR5cGVzCiAK
ICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxib29sPiB7IHR5cGVkZWYgSW50SGFz
aDx1aW50OF90PiBIYXNoOyB9OwpAQCAtMjY5LDYgKzI4NSw3IEBAIG5hbWVzcGFjZSBXVEYgewog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IERlZmF1bHRIYXNo
PHN0ZDo6cGFpcjxULCBVPj4geyB0eXBlZGVmIFBhaXJIYXNoPFQsIFU+IEhhc2g7IH07CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBEZWZhdWx0SGFzaDxzdGQ6OnR1cGxl
PFR5cGVzLi4uPj4geyB0eXBlZGVmIFR1cGxlSGFzaDxUeXBlcy4uLj4gSGFzaDsgfTsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IERlZmF1bHRIYXNoPFZhcmlhbnQ8VHlw
ZXMuLi4+PiB7IHR5cGVkZWYgVmFyaWFudEhhc2g8VHlwZXMuLi4+IEhhc2g7IH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4
IGQxNTkwODVkZDZjZDYzODI2MDFkODIyYTY5MTRhNDQ4NmFhYWE2MWYuLjBlN2NmYmE5MGY5NTcz
NDUxNTZhODFjYWZjYWUwYmYwYmM5ZjNlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCkBAIC0xMzEsNiArMTMxLDcgQEAgY2xhc3MgRW1wdHlEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCBmaW5hbCA6IHB1YmxpYyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CiAgICAgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLCBTaG91bGRTYW1wbGUpIGZpbmFsIHsg
fQogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgZG91YmxlLCB1bnNpZ25lZCwgU2hvdWxkU2FtcGxlKSBmaW5hbCB7IH0K
ICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTaG91bGRTYW1wbGUpIGZpbmFsIHsgfQorICAgIHZvaWQg
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZhbHVlRGljdGlvbmFyeSYsIFNob3VsZFNhbXBsZSkgZmluYWwg
eyB9CiB9OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCA4NGFhNTFkZDJkZWVlNmQwY2RmNTAw
ODdjMTUyYzczOWRlYzYxYzZhLi4wNjEyMTgyMGNhMTAwMWVhNDE4YTUxODFkOGQ3ODI0OTQ5NTRj
ZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
CkBAIC0yOCw3ICsyOCwxMCBAQAogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlw
ZS5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SYW5kb21OdW1iZXIu
aD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDYgKzQ1LDExIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUs
IHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgU2hvdWxkU2FtcGxlKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZSkg
PSAwOwogCisgICAgdXNpbmcgVmFsdWVQYXlsb2FkID0gVmFyaWFudDxTdHJpbmcsIHVpbnQ2NF90
LCBpbnQ2NF90LCBib29sLCBkb3VibGU+OworICAgIHVzaW5nIFZhbHVlRGljdGlvbmFyeSA9IEhh
c2hNYXA8U3RyaW5nLCBWYWx1ZVBheWxvYWQ+OworCisgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFZhbHVlRGljdGlvbmFyeSYsIFNob3VsZFNh
bXBsZSkgPSAwOworCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQWZ0ZXJTYW1wbGluZyhTaG91
bGRTYW1wbGUpOwogCiAgICAgdmlydHVhbCB+RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSA9IGRl
ZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJTnVtYmVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJTnVtYmVyLmgKaW5kZXggZmU1NzM0OTgxYzU3
ZmYxZjZiNWJhOWJjM2I1MGMxZjQ0Y2Q4NDM0OC4uOWRjZDQ3YWMyM2UwODNkNzVjNzRmODdkOTRm
YzBhZTViOWI0ZTEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU51
bWJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElOdW1iZXIuaApAQCAtNjks
NiArNjksNyBAQCBwcml2YXRlOgogdHlwZWRlZiBOdW1iZXI8Ym9vbCwgQVBJOjpPYmplY3Q6OlR5
cGU6OkJvb2xlYW4+IEJvb2xlYW47CiB0eXBlZGVmIE51bWJlcjxkb3VibGUsIEFQSTo6T2JqZWN0
OjpUeXBlOjpEb3VibGU+IERvdWJsZTsKIHR5cGVkZWYgTnVtYmVyPHVpbnQ2NF90LCBBUEk6Ok9i
amVjdDo6VHlwZTo6VUludDY0PiBVSW50NjQ7Cit0eXBlZGVmIE51bWJlcjxpbnQ2NF90LCBBUEk6
Ok9iamVjdDo6VHlwZTo6SW50NjQ+IEludDY0OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCmluZGV4IDBhZGY1YzUxYjE2Y2YzYjE1NzRkMWM3
YWY4NmYxZmM2ODZiMWFmODAuLjJhZTg1ZmNlYTBlYjI2MzVmMzUzNWJmNDQ2ZTQ3NDJkZjEzZTFl
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDcgQEAg
cHVibGljOgogICAgICAgICBCb29sZWFuLAogICAgICAgICBEb3VibGUsCiAgICAgICAgIFVJbnQ2
NCwKKyAgICAgICAgSW50NjQsCiAgICAgICAgIAogICAgICAgICAvLyBHZW9tZXRyeSB0eXBlcwog
ICAgICAgICBQb2ludCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQ
SU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQppbmRl
eCAzMTAyMDQyNWExOTA5YmM1NTdlYjIxNjVmYTE0MjkyNGNiMWNjNDU0Li40NTdmZDBjOTg4NjQ3
MDZlZjk0MTQ0OWUwOTIzODhjMTRmN2ZkMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9BUElPYmplY3QubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
QVBJT2JqZWN0Lm1tCkBAIC0xNjMsNiArMTYzLDcgQEAgdm9pZCogT2JqZWN0OjpuZXdPYmplY3Qo
c2l6ZV90IHNpemUsIFR5cGUgdHlwZSkKICAgICBjYXNlIFR5cGU6OkJvb2xlYW46CiAgICAgY2Fz
ZSBUeXBlOjpEb3VibGU6CiAgICAgY2FzZSBUeXBlOjpVSW50NjQ6CisgICAgY2FzZSBUeXBlOjpJ
bnQ2NDoKICAgICAgICAgd3JhcHBlciA9IFtXS05TTnVtYmVyIGFsbG9jXTsKICAgICAgICAgKChX
S05TTnVtYmVyICopd3JhcHBlciktPl90eXBlID0gdHlwZTsKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XS05TTnVtYmVyLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvV0tOU051bWJlci5tbQppbmRleCBmZTY3MmFiYWIzNDBkMmZm
Y2RkOGM3YzU3MjdmY2JlYzI2Y2RkZmMwLi41NzM5NTI1NDQzZDJmY2U2ZTBkZTc0YTdiMTQ2NmZl
NDQyYWJmYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XS05TTnVt
YmVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLTlNOdW1iZXIubW0KQEAg
LTMzLDYgKzMzLDcgQEAgQGltcGxlbWVudGF0aW9uIFdLTlNOdW1iZXIgewogICAgICAgICBBUEk6
Ok9iamVjdFN0b3JhZ2U8QVBJOjpCb29sZWFuPiBfYm9vbGVhbjsKICAgICAgICAgQVBJOjpPYmpl
Y3RTdG9yYWdlPEFQSTo6RG91YmxlPiBfZG91YmxlOwogICAgICAgICBBUEk6Ok9iamVjdFN0b3Jh
Z2U8QVBJOjpVSW50NjQ+IF91aW50NjQ7CisgICAgICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6
OkludDY0PiBfaW50NjQ7CiAgICAgfSBfbnVtYmVyOwogfQogCkBAIC01MSw2ICs1MiwxMCBAQCAt
ICh2b2lkKWRlYWxsb2MKICAgICAgICAgX251bWJlci5fdWludDY0LT5+TnVtYmVyPHVpbnQ2NF90
LCBBUEk6Ok9iamVjdDo6VHlwZTo6VUludDY0PigpOwogICAgICAgICBicmVhazsKIAorICAgIGNh
c2UgQVBJOjpPYmplY3Q6OlR5cGU6OkludDY0OgorICAgICAgICBfbnVtYmVyLl9pbnQ2NC0+fk51
bWJlcjxpbnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6SW50NjQ+KCk7CisgICAgICAgIGJyZWFr
OworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpA
QCAtNzUsNiArODAsMTAgQEAgLSAoY29uc3QgY2hhciAqKW9iakNUeXBlCiAgICAgICAgIHJldHVy
biBAZW5jb2RlKHVpbnQ2NF90KTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2Jq
ZWN0OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAgcmV0dXJuIEBlbmNvZGUoaW50NjRfdCk7CisgICAg
ICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQpAQCAtOTcsNiArMTA2LDEwIEBAIC0gKHZvaWQpZ2V0VmFsdWU6KHZvaWQgKil2YWx1
ZQogICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KHZhbHVlKSA9IF9udW1iZXIu
X3VpbnQ2NC0+dmFsdWUoKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2JqZWN0
OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8aW50NjRfdCo+KHZhbHVl
KSA9IF9udW1iZXIuX2ludDY0LT52YWx1ZSgpOworICAgICAgICBicmVhazsKKwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTEyOCw2ICsxNDEs
MTQgQEAgLSAodW5zaWduZWQgbG9uZyBsb25nKXVuc2lnbmVkTG9uZ0xvbmdWYWx1ZQogICAgIHJl
dHVybiBzdXBlci51bnNpZ25lZExvbmdMb25nVmFsdWU7CiB9CiAKKy0gKGxvbmcgbG9uZylsb25n
TG9uZ1ZhbHVlCit7CisgICAgaWYgKF90eXBlID09IEFQSTo6T2JqZWN0OjpUeXBlOjpJbnQ2NCkK
KyAgICAgICAgcmV0dXJuIF9udW1iZXIuX2ludDY0LT52YWx1ZSgpOworCisgICAgcmV0dXJuIHN1
cGVyLmxvbmdMb25nVmFsdWU7Cit9CisKIC8vIE1BUks6IE5TQ29weWluZyBwcm90b2NvbCBpbXBs
ZW1lbnRhdGlvbgogCiAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKQEAgLTE1Miw2
ICsxNzMsMTAgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICAgICAgcmV0dXJuICpf
bnVtYmVyLl91aW50NjQ7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBBUEk6Ok9iamVjdDo6
VHlwZTo6SW50NjQ6CisgICAgICAgIHJldHVybiAqX251bWJlci5faW50NjQ7CisgICAgICAgIGJy
ZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwCmluZGV4IDUzMzM3M2MxNjkxOWI0ZTc0MTlhYzBk
ODBjNmEwYTYxYzVjNDBhNzguLmZkOWU0MjQ3MTFiNDM3N2VkM2Y0MDNhOGMzYjZjYjc5M2MwOGY5
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJEYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyRGF0YS5jcHAKQEAgLTMxMCw2ICszMTAsMTAgQEAgdm9p
ZCBVc2VyRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQVBJOjpPYmpl
Y3QmIG9iamVjdCkKICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpVSW50NjQmPihvYmpl
Y3QpLmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2Jq
ZWN0OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpJbnQ2NCY+
KG9iamVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgQVBJ
OjpPYmplY3Q6OlR5cGU6OlVzZXJDb250ZW50VVJMUGF0dGVybjogewogICAgICAgICBhdXRvJiB1
cmxQYXR0ZXJuID0gc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpVc2VyQ29udGVudFVSTFBhdHRlcm4m
PihvYmplY3QpOwogICAgICAgICBlbmNvZGVyIDw8IHVybFBhdHRlcm4ucGF0dGVyblN0cmluZygp
OwpAQCAtNTcyLDYgKzU3NiwxMSBAQCBib29sIFVzZXJEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXN1bHQpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6
SW50NjQ6CisgICAgICAgIGlmICghQVBJOjpJbnQ2NDo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBB
UEk6Ok9iamVjdDo6VHlwZTo6VXNlckNvbnRlbnRVUkxQYXR0ZXJuOiB7CiAgICAgICAgIFN0cmlu
ZyBzdHJpbmc7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5nKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgKaW5kZXggNDBhZDBkNDA4Yjg0NzIwMWE2YTRmNTAxMjJkNjYzOTUyNDkzZjIyMy4uN2Zh
N2FjNGI1Y2M0ZWU5NzM1MTU0ZGYyM2Q4YTcxZWFhMTM3ODJmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgK
QEAgLTI3LDcgKzI3LDkgQEAKICNkZWZpbmUgQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAog
CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5OwpAQCAtMzUsNiArMzcs
OCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIG5hbWVzcGFjZSBBUEkgewogCitjbGFzcyBEaWN0
aW9uYXJ5OworCiBjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSB7IH0KQEAgLTQzLDYgKzQ3LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQo
V2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3Vs
dFR5cGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29u
c3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBXVEY6OlN0cmluZyYgdmFsdWUpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2
YWN5KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShXZWJLaXQ6OldlYlBhZ2VQcm94
eSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVzY3Jp
cHRpb24sIFJlZjxBUEk6OkRpY3Rpb25hcnk+JiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggOGFlNTEzYTNiZGRjY2E3YzRlMDk0
OGExNzYxMGQ5MjQ2MTUxMWJkOS4uZGZhNTU0OWI0ODEzODcxY2EzODAxMTFiOTU2NWVmNGYwOTJl
NjU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0zNyw2ICszNyw3IEBAIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlQ2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBXS1N0cmluZ1JlZiBtCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VMb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3Nh
Z2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlw
ZSByZXN1bHQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdl
TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS1N0cmluZ1JlZiB2
YWx1ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VMb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3lDYWxsYmFjaykoV0tQYWdlUmVmIHBh
Z2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZUxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlRGljdGlvbmFyeUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIFdLRGljdGlvbmFyeVJlZiB2YWx1
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdLUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50QmFzZSB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC02NCw2
ICs2NSwyMSBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYx
IHsKICAgICBXS1BhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3lDYWxs
YmFjayAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5
OwogfSBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYxOwogCit0eXBlZGVmIHN0cnVjdCBX
S1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYyIHsKKyAgICBXS1BhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKwor
ICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2U7Cisg
ICAgV0tQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDsKKyAgICBXS1BhZ2VM
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWU7CisKKyAgICAvLyBWZXJzaW9uIDEuCisg
ICAgV0tQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5Q2FsbGJhY2sg
ICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeTsKKwor
ICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZURpY3Rpb25hcnlDYWxsYmFjayAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWVEaWN0aW9uYXJ5OworfSBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYyOworCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
LmgKaW5kZXggYzQ3NjhkYjA4ODBkYjBiYWRhNjM1MTQ2NDRhNzIzZTUzZDk1NWE2YS4uYjAxMzYy
MGM1OGYwNjYyN2NjYWFhZDE0YWQ0ODY1MTFjNGU3ODAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dp
bmdEZWxlZ2F0ZS5oCkBAIC00MCw1ICs0MCw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSkgewogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQ6KE5TU3RyaW5n
ICopbWVzc2FnZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiByZXN1bHQ6KF9X
S0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSlyZXN1bHQ7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlOihOU1N0cmlu
ZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVzY3JpcHRpb24gdmFsdWU6KE5T
U3RyaW5nICopIHZhbHVlOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6KE5TU3RyaW5nICopbWVzc2Fn
ZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBkZXNjcmlwdGlv
bjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiB2YWx1ZURpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAq
KXZhbHVlRGljdGlvbmFyeTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggZTA5YTY5OTI1NjJi
MjY5NzZiZDBiOGVmNWU2ODZkN2FiNzM2YTYwNC4uNWZkY2NhYzAwNDM4ZDcwOTgyNTI5NDlmMDAz
Mzk5ZTc1MzUzNzg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC01MSw2ICs1MSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUpIG92ZXJyaWRlOwogICAgIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKSBvdmVy
cmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShX
ZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVE
aWN0aW9uYXJ5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgUmVmPEFQSTo6RGljdGlvbmFyeT4mJikgb3ZlcnJpZGU7CiAKICAg
ICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKICAgICBXZWFrT2JqQ1B0cjxpZCA8X1dLRGlhZ25vc3Rp
Y0xvZ2dpbmdEZWxlZ2F0ZT4+IG1fZGVsZWdhdGU7CkBAIC02MCw2ICs2MSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHVuc2lnbmVkIHdlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQg
OiAxOwogICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUgOiAxOwogICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
RW5oYW5jZWRQcml2YWN5IDogMTsKKyAgICAgICAgdW5zaWduZWQgd2Vidmlld0xvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9k
czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQubW0KaW5kZXggOGQ3YzA4ZWVkMDIwOTFiODAyYWQxOTA4MTVj
MmVlMDRiZmVkY2I4Yy4uMmUyM2ZkZGRkOGIxZTc3OWRkZGM3ZDA0NTFkZjRjYzdlYmQ5Nzc5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQubW0KQEAgLTg3LDQgKzg3LDExIEBAIHZvaWQgRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShXZWJLaXQ6
OldlCiAgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3Om1fd2ViVmlldyBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6bWVzc2FnZSBkZXNjcmlwdGlvbjpkZXNj
cmlwdGlvbl07CiB9CiAKK3ZvaWQgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFJlZjxBUEk6OkRpY3Rpb25hcnk+
JiYgdmFsdWVEaWN0aW9uYXJ5KQoreworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJ2aWV3
TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KQorICAgICAgICBbbV9kZWxl
Z2F0ZS5nZXQoKSBfd2ViVmlldzptX3dlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2U6bWVzc2Fn
ZSBkZXNjcmlwdGlvbjpkZXNjcmlwdGlvbiB2YWx1ZURpY3Rpb25hcnk6c3RhdGljX2Nhc3Q8TlNE
aWN0aW9uYXJ5Kj4odmFsdWVEaWN0aW9uYXJ5LT53cmFwcGVyKCkpXTsKK30KKworCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcAppbmRleCAwZjc1NGMzNzY5MGYwYzg0Njk5MTY3ZTM1ODFkMjc5MTZhNWM3
YjM1Li5jZjBhZDM2MTJlZTc3ZDFlNGQxMTkwMDYwZDA5ZWQ0ZDBkNjNlYTBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0zNTQs
NiArMzU0LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICAgICAgfHwgZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkQWRkSXRl
bTo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZTo6bmFtZSgpCiAgICAgICAgIHx8IGRl
Y29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6Om5hbWUoKQorICAgICAgICB8fCBkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5OjpuYW1lKCkKICAgICAgICAgfHwgZGVjb2Rlci5tZXNz
YWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldE5ldHdvcmtSZXF1ZXN0c0lu
UHJvZ3Jlc3M6Om5hbWUoKQogI2lmIFVTRShRVUlDS19MT09LKQogICAgICAgICB8fCBkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3RhcnRMb2FkRm9y
UXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZTo6bmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApp
bmRleCBhNTQ3ZWFkNTI1MWFmMDAyN2IyODhiMTc5NDUxZTdhMjI3ODk2ZGJjLi4zYzIwYWQyM2Yx
YTM0MDI0ZGY4ODAwMDg3YjhjNGQzNTc0YzM0ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aCIKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLRGljdGlvbmFyeS5oIgog
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC02OSw0ICs3MCwxMiBAQCB2b2lkIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KFdlYgogICAgIG1fY2xp
ZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeSh0b0FQSShwYWdlKSwg
dG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0b0FQSShkZXNjcmlwdGlvbi5pbXBsKCkpLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOwogfQogCit2b2lkIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KFdlYlBhZ2VQcm94
eSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBSZWY8QVBJOjpEaWN0aW9uYXJ5PiYmIHZhbHVlRGljdGlvbmFyeSkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0
aW9uYXJ5KHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKGRlc2NyaXB0
aW9uLmltcGwoKSksIHRvQVBJKCZ2YWx1ZURpY3Rpb25hcnkubGVha1JlZigpKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCmluZGV4IGJhYWRjMTUyN2NmZGViZDJlNmNhNTk0Y2M5OWM4M2RmOTM0ZTdmOGIuLjJiNTFk
NWI5YzMzNjRkODZjMTJhMzlkMDdjODcwNjhjMGYzMjYxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBUElDbGllbnQuaCIKICNpbmNsdWRlICJBUElE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgorI2luY2x1ZGUgIkFQSURpY3Rpb25hcnkuaCIKICNp
bmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nUmVz
dWx0VHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNSw3ICszNiw3IEBACiBu
YW1lc3BhY2UgQVBJIHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1Bh
Z2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwLCBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dFYxPiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnRWMCwgV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMSwgV0tQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnRWMj4gVmVyc2lvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBB
UEkKQEAgLTUyLDYgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBl
KSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdlYlBh
Z2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3koV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShXZWJQYWdlUHJveHkqLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFJlZjxBUEk6OkRp
Y3Rpb25hcnk+JiYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiZTE2MTFmZWMwZGM4NjAz
MjY3NjMxMmQyMzhmZjAwZmY1MmUwYzdmLi4wNDkxNjM0YTRlYjVkYzhlOGI0OTdjMjI5ZWJiODIw
YzlmNWExZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTY1MjksNiArNjUyOSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoRW5oYW5jZWRQcml2YWN5KGNvbnN0IFN0cmluZyYgbWVzc2FnZQogICAgIGVmZmVjdGl2
ZUNsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KHRoaXMsIG1l
c3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50OjpWYWx1ZURpY3Rpb25hcnkmIHZhbHVlRGljdGlvbmFyeSwgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKK3sKKyAgICBhdXRvKiBlZmZlY3RpdmVDbGllbnQgPSBlZmZlY3Rp
dmVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChzaG91bGRTYW1wbGUpOworICAgIGlmICghZWZmZWN0
aXZlQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGFwaURpY3Rpb25hcnkgPSBB
UEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOworCisgICAgZm9yIChhdXRvJiBrZXlWYWx1ZVBhaXIg
OiB2YWx1ZURpY3Rpb25hcnkpIHsKKyAgICAgICAgYXBpRGljdGlvbmFyeS0+YWRkKGtleVZhbHVl
UGFpci5rZXksIFdURjo6c3dpdGNoT24oa2V5VmFsdWVQYWlyLnZhbHVlLAorICAgICAgICAgICAg
W10oY29uc3QgU3RyaW5nJiB2YWx1ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4gQVBJOjpTdHJp
bmc6OmNyZWF0ZSh2YWx1ZSk7IH0sCisgICAgICAgICAgICBbXSh1aW50NjRfdCB2YWx1ZSkgLT4g
UmVmPE9iamVjdD4geyByZXR1cm4gQVBJOjpVSW50NjQ6OmNyZWF0ZSh2YWx1ZSk7IH0sCisgICAg
ICAgICAgICBbXShpbnQ2NF90IHZhbHVlKSAtPiBSZWY8T2JqZWN0PiB7IHJldHVybiBBUEk6Oklu
dDY0OjpjcmVhdGUodmFsdWUpOyB9LAorICAgICAgICAgICAgW10oYm9vbCB2YWx1ZSkgLT4gUmVm
PE9iamVjdD4geyByZXR1cm4gQVBJOjpCb29sZWFuOjpjcmVhdGUodmFsdWUpOyB9LAorICAgICAg
ICAgICAgW10oZG91YmxlIHZhbHVlKSAtPiBSZWY8T2JqZWN0PiB7IHJldHVybiBBUEk6OkRvdWJs
ZTo6Y3JlYXRlKHZhbHVlKTsgfQorICAgICAgICApKTsKKyAgICB9CisKKyAgICBlZmZlY3RpdmVD
bGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSh0aGlzLCBtZXNz
YWdlLCBkZXNjcmlwdGlvbiwgV1RGTW92ZShhcGlEaWN0aW9uYXJ5KSk7Cit9CisKIHZvaWQgV2Vi
UGFnZVByb3h5Ojpsb2dTY3JvbGxpbmdFdmVudCh1aW50MzJfdCBldmVudFR5cGUsIE1vbm90b25p
Y1RpbWUgdGltZXN0YW1wLCB1aW50NjRfdCBkYXRhKQogewogICAgIFBlcmZvcm1hbmNlTG9nZ2lu
Z0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQgZXZlbnQgPSBzdGF0aWNfY2FzdDxQZXJmb3JtYW5jZUxv
Z2dpbmdDbGllbnQ6OlNjcm9sbGluZ0V2ZW50PihldmVudFR5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhMWM4M2FjYTQ3NTc5NmQ1ZjlkMTcyN2YwZTBkNjI0
NjQwM2VhZjFlLi4yOTk3ZWNlNzZkYmNkZWI3ZjVhNTU5N2QyZmFhNDQ2NGNlNGZiNzQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzAsNiArNzAsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3Bs
YXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9u
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRUcmFja2luZ1JlZ2lvbnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CkBAIC0xMzM0LDYgKzEzMzUsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIFdlYkNv
cmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJs
ZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpTaG91bGRTYW1w
bGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6
U2hvdWxkU2FtcGxlKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGlj
dGlvbmFyeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IGNvbnN0IFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkm
LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwogCiAgICAgLy8gUGVyZm9ybWFuY2UgbG9nZ2luZy4K
ICAgICB2b2lkIGxvZ1Njcm9sbGluZ0V2ZW50KHVpbnQzMl90IGV2ZW50VHlwZSwgTW9ub3Rvbmlj
VGltZSwgdWludDY0X3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDIxZmZmZTRhOTFiZGM2NTFjNWRlMjY0NDc2ZWMzYTc0Mzc0
NjYzMDQuLmEyY2MzYjM2MWM5NWFiNjMzNWRlZDUzYTJkODQxZDhkOTQ1ZjU4NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0
Miw2ICsyNDIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIExvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdChTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCB1
aW50MzJfdCByZXN1bHQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2Ft
cGxlKQogICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFN0cmluZyBtZXNzYWdlLCBT
dHJpbmcgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1
cmVzLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKICAgICBM
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3koU3RyaW5nIG1lc3NhZ2UsIFN0
cmluZyBkZXNjcmlwdGlvbiwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRT
YW1wbGUpCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KFN0cmlu
ZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50OjpWYWx1ZURpY3Rpb25hcnkgdmFsdWUsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRT
YW1wbGUgc2hvdWxkU2FtcGxlKQogCiAgICAgIyBQZXJmb3JtYW5jZSBsb2dnaW5nCiAgICAgTG9n
U2Nyb2xsaW5nRXZlbnQodWludDMyX3QgZXZlbnRUeXBlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgdWludDY0X3QgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
Y3BwCmluZGV4IDdhM2E5ZDYyMDdkMjk3ZmFmYWE4ZTM1MzA3OGQ3YjRjMGU2MjQ0NTcuLmQ5Y2I0
ZjM3YzJhZDNlODA4YzBkZmUyZjY0ZDRhMzBjYzY5NTQyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtODMsNCArODMsMTQgQEAgdm9pZCBXZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2
YWN5KGNvbnN0IFMKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3kobWVzc2FnZSwgZGVzY3JpcHRpb24s
IFNob3VsZFNhbXBsZTo6Tm8pKTsKIH0KIAordm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgVmFsdWVEaWN0aW9uYXJ5
JiB2YWx1ZSwgU2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKK3sKKyAgICBBU1NFUlQoIW1fcGFn
ZS5jb3JlUGFnZSgpIHx8IG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZCgpKTsKKworICAgIGlmICghc2hvdWxkTG9nQWZ0ZXJTYW1wbGluZyhzaG91
bGRTYW1wbGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnkobWVz
c2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlLCBTaG91bGRTYW1wbGU6Ok5vKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApp
bmRleCAwYjdlNTQ1ZmRhNjYwM2M2YmUyODhkNmE3MGIxMTZlMzY1ZWM5MmUyLi5iY2NjZjM4ZDk4
YTY1MzA5MTQyMTAyZTJhNGVlMWU3MWEyMzU1NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaApAQCAtNDMsNiArNDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBl
LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpIG92ZXJyaWRlOwogICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2Vi
Q29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aEVuaGFuY2VkUHJpdmFjeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBWYWx1ZURpY3Rpb25hcnkm
LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZSYgbV9wYWdl
OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367157</attachid>
            <date>2019-04-10 13:44:12 -0700</date>
            <delta_ts>2019-04-15 16:01:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196773-20190410134411.patch</filename>
            <type>text/plain</type>
            <size>27378</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA2NmYyOTY4ZGQ3ZmYw
ZDk0Nzc3NzdhZGU0M2MzMjBhMjJmYmQxOS4uMzkyOTM3NDVhZTRjZWQ5N2RmN2ZlODNhYmZhMjkx
Mzk4MDY0YWFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA0LTEwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIERpYWdub3N0aWNM
b2dnaW5nIG1ldGhvZCB0YWtpbmcgYW4gYXJiaXRyYXJ5IGRpY3Rpb25hcnkgb2YgdmFsdWVzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzczCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL0Rp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisKIDIwMTktMDQtMDggIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdCBmb3I6IDE5NjA5NSBJbmJhbmQgVGV4dCBU
cmFjayBjdWVzIGludGVyc3BlcnNlZCB3aXRoIERhdGEgY3VlcyBjYW4gZGlzcGxheSBvdXQgb2Yg
b3JkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDNiZGUxMGY0NWY3OTgzMWE2Mzc1ZTBhZjlmYzMyM2VjMTQwMzEw
YzQuLjE3NjdlYjczYzQ0Yjc4OWJhODU0ZTI2ZDJmNTg0N2Y4N2MxNDk5Y2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTktMDQtMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgRGlhZ25vc3RpY0xvZ2dpbmcgbWV0aG9kIHRha2luZyBhbiBh
cmJpdHJhcnkgZGljdGlvbmFyeSBvZiB2YWx1ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbiBhZGRpdGlvbiB0byBhZGRpbmcgdGhlIG5ldyBsb2dn
aW5nIGRlbGVnYXRlIG1ldGhvZCAoYW5kIHBpcGluZyBldmVyeXRoaW5nIGludG8gaXQpLCAKKyAg
ICAgICAgYWRkIGEgbmV3IEFQSU9iamVjdCBjbGFzcyB0byByZXByZXNlbnQgYSBzaWduZWQgaW50
ZWdlci4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJTnVtYmVyLmg6CisgICAgICAgICogU2hh
cmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1t
OgorICAgICAgICAoQVBJOjpPYmplY3Q6Om5ld09iamVjdCk6CisgICAgICAgICogU2hhcmVkL0Nv
Y29hL1dLTlNOdW1iZXIubW06CisgICAgICAgICgtW1dLTlNOdW1iZXIgZGVhbGxvY10pOgorICAg
ICAgICAoLVtXS05TTnVtYmVyIG9iakNUeXBlXSk6CisgICAgICAgICgtW1dLTlNOdW1iZXIgZ2V0
VmFsdWU6XSk6CisgICAgICAgICgtW1dLTlNOdW1iZXIgbG9uZ0xvbmdWYWx1ZV0pOgorICAgICAg
ICAoLVtXS05TTnVtYmVyIF9hcGlPYmplY3RdKToKKyAgICAgICAgKiBTaGFyZWQvVXNlckRhdGEu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6VXNlckRhdGE6OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9E
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9EaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZURpY3Rpb25hcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZURpY3Rpb25hcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisKIDIwMTktMDQtMDcg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDM5NTYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCmluZGV4IGQxNTkwODVkZDZjZDYzODI2MDFkODIyYTY5MTRhNDQ4NmFhYWE2MWYuLjBl
N2NmYmE5MGY5NTczNDUxNTZhODFjYWZjYWUwYmYwYmM5ZjNlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0xMzEsNiArMTMxLDcgQEAgY2xhc3MgRW1wdHlEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCBmaW5hbCA6IHB1YmxpYyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCB7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLCBTaG91bGRTYW1w
bGUpIGZpbmFsIHsgfQogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgZG91YmxlLCB1bnNpZ25lZCwgU2hvdWxkU2FtcGxl
KSBmaW5hbCB7IH0KICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJp
dmFjeShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTaG91bGRTYW1wbGUpIGZpbmFsIHsg
fQorICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZhbHVlRGljdGlvbmFyeSYsIFNob3VsZFNh
bXBsZSkgZmluYWwgeyB9CiB9OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCA4NGFhNTFkZDJk
ZWVlNmQwY2RmNTAwODdjMTUyYzczOWRlYzYxYzZhLi4wNjEyMTgyMGNhMTAwMWVhNDE4YTUxODFk
OGQ3ODI0OTQ5NTRjZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oCkBAIC0yOCw3ICsyOCwxMCBAQAogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dn
aW5nUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9S
YW5kb21OdW1iZXIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDYgKzQ1
LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBk
b3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgU2hvdWxkU2FtcGxlKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJp
dmFjeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFNo
b3VsZFNhbXBsZSkgPSAwOwogCisgICAgdXNpbmcgVmFsdWVQYXlsb2FkID0gVmFyaWFudDxTdHJp
bmcsIHVpbnQ2NF90LCBpbnQ2NF90LCBib29sLCBkb3VibGU+OworICAgIHVzaW5nIFZhbHVlRGlj
dGlvbmFyeSA9IEhhc2hNYXA8U3RyaW5nLCBWYWx1ZVBheWxvYWQ+OworCisgICAgdmlydHVhbCB2
b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFZhbHVlRGljdGlvbmFy
eSYsIFNob3VsZFNhbXBsZSkgPSAwOworCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQWZ0ZXJT
YW1wbGluZyhTaG91bGRTYW1wbGUpOwogCiAgICAgdmlydHVhbCB+RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
QVBJTnVtYmVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJTnVtYmVyLmgKaW5kZXgg
ZmU1NzM0OTgxYzU3ZmYxZjZiNWJhOWJjM2I1MGMxZjQ0Y2Q4NDM0OC4uOWRjZDQ3YWMyM2UwODNk
NzVjNzRmODdkOTRmYzBhZTViOWI0ZTEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0FQSU51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElOdW1i
ZXIuaApAQCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogdHlwZWRlZiBOdW1iZXI8Ym9vbCwgQVBJ
OjpPYmplY3Q6OlR5cGU6OkJvb2xlYW4+IEJvb2xlYW47CiB0eXBlZGVmIE51bWJlcjxkb3VibGUs
IEFQSTo6T2JqZWN0OjpUeXBlOjpEb3VibGU+IERvdWJsZTsKIHR5cGVkZWYgTnVtYmVyPHVpbnQ2
NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6VUludDY0PiBVSW50NjQ7Cit0eXBlZGVmIE51bWJlcjxp
bnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6SW50NjQ+IEludDY0OwogCiB9IC8vIG5hbWVzcGFj
ZSBBUEkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCmluZGV4IDBhZGY1YzUxYjE2
Y2YzYjE1NzRkMWM3YWY4NmYxZmM2ODZiMWFmODAuLjJhZTg1ZmNlYTBlYjI2MzVmMzUzNWJmNDQ2
ZTQ3NDJkZjEzZTFlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKQEAgLTg4
LDYgKzg4LDcgQEAgcHVibGljOgogICAgICAgICBCb29sZWFuLAogICAgICAgICBEb3VibGUsCiAg
ICAgICAgIFVJbnQ2NCwKKyAgICAgICAgSW50NjQsCiAgICAgICAgIAogICAgICAgICAvLyBHZW9t
ZXRyeSB0eXBlcwogICAgICAgICBQb2ludCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0FQSU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9i
amVjdC5tbQppbmRleCAzMTAyMDQyNWExOTA5YmM1NTdlYjIxNjVmYTE0MjkyNGNiMWNjNDU0Li40
NTdmZDBjOTg4NjQ3MDZlZjk0MTQ0OWUwOTIzODhjMTRmN2ZkMDFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCkBAIC0xNjMsNiArMTYzLDcgQEAgdm9pZCogT2JqZWN0
OjpuZXdPYmplY3Qoc2l6ZV90IHNpemUsIFR5cGUgdHlwZSkKICAgICBjYXNlIFR5cGU6OkJvb2xl
YW46CiAgICAgY2FzZSBUeXBlOjpEb3VibGU6CiAgICAgY2FzZSBUeXBlOjpVSW50NjQ6CisgICAg
Y2FzZSBUeXBlOjpJbnQ2NDoKICAgICAgICAgd3JhcHBlciA9IFtXS05TTnVtYmVyIGFsbG9jXTsK
ICAgICAgICAgKChXS05TTnVtYmVyICopd3JhcHBlciktPl90eXBlID0gdHlwZTsKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XS05TTnVtYmVy
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV0tOU051bWJlci5tbQppbmRleCBmZTY3
MmFiYWIzNDBkMmZmY2RkOGM3YzU3MjdmY2JlYzI2Y2RkZmMwLi41NzM5NTI1NDQzZDJmY2U2ZTBk
ZTc0YTdiMTQ2NmZlNDQyYWJmYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XS05TTnVtYmVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLTlNO
dW1iZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAgQGltcGxlbWVudGF0aW9uIFdLTlNOdW1iZXIgewog
ICAgICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpCb29sZWFuPiBfYm9vbGVhbjsKICAgICAg
ICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RG91YmxlPiBfZG91YmxlOwogICAgICAgICBBUEk6
Ok9iamVjdFN0b3JhZ2U8QVBJOjpVSW50NjQ+IF91aW50NjQ7CisgICAgICAgIEFQSTo6T2JqZWN0
U3RvcmFnZTxBUEk6OkludDY0PiBfaW50NjQ7CiAgICAgfSBfbnVtYmVyOwogfQogCkBAIC01MSw2
ICs1MiwxMCBAQCAtICh2b2lkKWRlYWxsb2MKICAgICAgICAgX251bWJlci5fdWludDY0LT5+TnVt
YmVyPHVpbnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6VUludDY0PigpOwogICAgICAgICBicmVh
azsKIAorICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkludDY0OgorICAgICAgICBfbnVtYmVy
Ll9pbnQ2NC0+fk51bWJlcjxpbnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6SW50NjQ+KCk7Cisg
ICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQpAQCAtNzUsNiArODAsMTAgQEAgLSAoY29uc3QgY2hhciAqKW9iakNUeXBlCiAg
ICAgICAgIHJldHVybiBAZW5jb2RlKHVpbnQ2NF90KTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBj
YXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAgcmV0dXJuIEBlbmNvZGUoaW50
NjRfdCk7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtOTcsNiArMTA2LDEwIEBAIC0gKHZvaWQpZ2V0VmFsdWU6
KHZvaWQgKil2YWx1ZQogICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KHZhbHVl
KSA9IF9udW1iZXIuX3VpbnQ2NC0+dmFsdWUoKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNl
IEFQSTo6T2JqZWN0OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8aW50
NjRfdCo+KHZhbHVlKSA9IF9udW1iZXIuX2ludDY0LT52YWx1ZSgpOworICAgICAgICBicmVhazsK
KwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAg
LTEyOCw2ICsxNDEsMTQgQEAgLSAodW5zaWduZWQgbG9uZyBsb25nKXVuc2lnbmVkTG9uZ0xvbmdW
YWx1ZQogICAgIHJldHVybiBzdXBlci51bnNpZ25lZExvbmdMb25nVmFsdWU7CiB9CiAKKy0gKGxv
bmcgbG9uZylsb25nTG9uZ1ZhbHVlCit7CisgICAgaWYgKF90eXBlID09IEFQSTo6T2JqZWN0OjpU
eXBlOjpJbnQ2NCkKKyAgICAgICAgcmV0dXJuIF9udW1iZXIuX2ludDY0LT52YWx1ZSgpOworCisg
ICAgcmV0dXJuIHN1cGVyLmxvbmdMb25nVmFsdWU7Cit9CisKIC8vIE1BUks6IE5TQ29weWluZyBw
cm90b2NvbCBpbXBsZW1lbnRhdGlvbgogCiAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpv
bmUKQEAgLTE1Miw2ICsxNzMsMTAgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICAg
ICAgcmV0dXJuICpfbnVtYmVyLl91aW50NjQ7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBB
UEk6Ok9iamVjdDo6VHlwZTo6SW50NjQ6CisgICAgICAgIHJldHVybiAqX251bWJlci5faW50NjQ7
CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwCmluZGV4IDUzMzM3M2MxNjkx
OWI0ZTc0MTlhYzBkODBjNmEwYTYxYzVjNDBhNzguLmZkOWU0MjQ3MTFiNDM3N2VkM2Y0MDNhOGMz
YjZjYjc5M2MwOGY5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyRGF0YS5jcHAKQEAgLTMxMCw2ICsz
MTAsMTAgQEAgdm9pZCBVc2VyRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgQVBJOjpPYmplY3QmIG9iamVjdCkKICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpV
SW50NjQmPihvYmplY3QpLmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBj
YXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3Qg
QVBJOjpJbnQ2NCY+KG9iamVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKwog
ICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlVzZXJDb250ZW50VVJMUGF0dGVybjogewogICAg
ICAgICBhdXRvJiB1cmxQYXR0ZXJuID0gc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpVc2VyQ29udGVu
dFVSTFBhdHRlcm4mPihvYmplY3QpOwogICAgICAgICBlbmNvZGVyIDw8IHVybFBhdHRlcm4ucGF0
dGVyblN0cmluZygpOwpAQCAtNTcyLDYgKzU3NiwxMSBAQCBib29sIFVzZXJEYXRhOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXN1bHQpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBBUEk6Ok9i
amVjdDo6VHlwZTo6SW50NjQ6CisgICAgICAgIGlmICghQVBJOjpJbnQ2NDo6ZGVjb2RlKGRlY29k
ZXIsIHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOwor
CiAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6VXNlckNvbnRlbnRVUkxQYXR0ZXJuOiB7CiAg
ICAgICAgIFN0cmluZyBzdHJpbmc7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5n
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggNDBhZDBkNDA4Yjg0NzIwMWE2YTRmNTAxMjJkNjYzOTUy
NDkzZjIyMy4uN2ZhN2FjNGI1Y2M0ZWU5NzM1MTU0ZGYyM2Q4YTcxZWFhMTM3ODJmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmgKQEAgLTI3LDcgKzI3LDkgQEAKICNkZWZpbmUgQVBJRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5
cGUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRv
bWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5OwpA
QCAtMzUsNiArMzcsOCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIG5hbWVzcGFjZSBBUEkgewog
CitjbGFzcyBEaWN0aW9uYXJ5OworCiBjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSB7IH0KQEAgLTQz
LDYgKzQ3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVz
c2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGlj
TG9nZ2luZ1Jlc3VsdFR5cGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYg
bWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBXVEY6OlN0cmlu
ZyYgdmFsdWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
RW5oYW5jZWRQcml2YWN5KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXNjcmlwdGlvbikgPSAwOworCisgICAgdmly
dHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShXZWJLaXQ6
OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0
cmluZyYgZGVzY3JpcHRpb24sIFJlZjxBUEk6OkRpY3Rpb25hcnk+JiYpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXggOGFlNTEzYTNi
ZGRjY2E3YzRlMDk0OGExNzYxMGQ5MjQ2MTUxMWJkOS4uZGZhNTU0OWI0ODEzODcxY2EzODAxMTFi
OTU2NWVmNGYwOTJlNjU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0zNyw2ICsz
Nyw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZUxvZ0RpYWdub3N0aWNNZXNzYWdlQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VMb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS0RpYWdub3N0aWNMb2dn
aW5nUmVzdWx0VHlwZSByZXN1bHQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2
b2lkICgqV0tQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBX
S1N0cmluZ1JlZiB2YWx1ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3lDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0
aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZUxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVzY3JpcHRpb24sIFdLRGljdGlv
bmFyeVJlZiB2YWx1ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0
IFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZSB7CiAgICAgaW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNp
b247CkBAIC02NCw2ICs2NSwyMSBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudFYxIHsKICAgICBXS1BhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNl
ZFByaXZhY3lDYWxsYmFjayAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5o
YW5jZWRQcml2YWN5OwogfSBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYxOwogCit0eXBl
ZGVmIHN0cnVjdCBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYyIHsKKyAgICBXS1BhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VMb2dEaWFnbm9zdGljTWVz
c2FnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2U7CisgICAgV0tQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDsK
KyAgICBXS1BhZ2VMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWU7CisKKyAgICAvLyBW
ZXJzaW9uIDEuCisgICAgV0tQYWdlTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2
YWN5Q2FsbGJhY2sgICAgICAgICAgICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2Vk
UHJpdmFjeTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VMb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZURpY3Rpb25hcnlDYWxsYmFjayAgICAgICAgICAgICAgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5OworfSBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudFYyOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlLmgKaW5kZXggYzQ3NjhkYjA4ODBkYjBiYWRhNjM1MTQ2NDRhNzIzZTUzZDk1
NWE2YS4uYjAxMzYyMGM1OGYwNjYyN2NjYWFhZDE0YWQ0ODY1MTFjNGU3ODAxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5n
RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlh
Z25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCkBAIC00MCw1ICs0MCw2IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSkgewogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1
bHQ6KE5TU3RyaW5nICopbWVzc2FnZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlv
biByZXN1bHQ6KF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSlyZXN1bHQ7CiAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlOihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVzY3JpcHRp
b24gdmFsdWU6KE5TU3RyaW5nICopIHZhbHVlOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6KE5TU3Ry
aW5nICopbWVzc2FnZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiB2YWx1ZURpY3Rpb25hcnk6KE5T
RGljdGlvbmFyeSAqKXZhbHVlRGljdGlvbmFyeTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKaW5kZXgg
ZTA5YTY5OTI1NjJiMjY5NzZiZDBiOGVmNWU2ODZkN2FiNzM2YTYwNC4uNWZkY2NhYzAwNDM4ZDcw
OTgyNTI5NDlmMDAzMzk5ZTc1MzUzNzg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC01MSw2ICs1MSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2Vi
UGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUpIG92ZXJyaWRlOwogICAg
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVByb3h5KiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcm
IHZhbHVlKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFu
Y2VkUHJpdmFjeShXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWVEaWN0aW9uYXJ5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUmVmPEFQSTo6RGljdGlvbmFyeT4mJikgb3Zl
cnJpZGU7CiAKICAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKICAgICBXZWFrT2JqQ1B0cjxpZCA8
X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4+IG1fZGVsZWdhdGU7CkBAIC02MCw2ICs2MSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIHVuc2lnbmVkIHdlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQgOiAxOwogICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWUgOiAxOwogICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5IDogMTsKKyAgICAgICAgdW5zaWduZWQgd2Vidmll
d0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSA6IDE7CiAgICAgfSBtX2Rl
bGVnYXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubW0KaW5kZXggOGQ3YzA4ZWVkMDIwOTFi
ODAyYWQxOTA4MTVjMmVlMDRiZmVkY2I4Yy4uMmUyM2ZkZGRkOGIxZTc3OWRkZGM3ZDA0NTFkZjRj
YzdlYmQ5Nzc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubW0KQEAgLTg3LDQgKzg3LDExIEBAIHZvaWQgRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJp
dmFjeShXZWJLaXQ6OldlCiAgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3Om1fd2Vi
VmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6bWVzc2FnZSBkZXNj
cmlwdGlvbjpkZXNjcmlwdGlvbl07CiB9CiAKK3ZvaWQgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6
OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShXZWJQYWdlUHJveHkqLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFJlZjxBUEk6
OkRpY3Rpb25hcnk+JiYgdmFsdWVEaWN0aW9uYXJ5KQoreworICAgIGlmIChtX2RlbGVnYXRlTWV0
aG9kcy53ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KQorICAg
ICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlldzptX3dlYlZpZXcgbG9nRGlhZ25vc3RpY01l
c3NhZ2U6bWVzc2FnZSBkZXNjcmlwdGlvbjpkZXNjcmlwdGlvbiB2YWx1ZURpY3Rpb25hcnk6c3Rh
dGljX2Nhc3Q8TlNEaWN0aW9uYXJ5Kj4odmFsdWVEaWN0aW9uYXJ5LT53cmFwcGVyKCkpXTsKK30K
KworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCAwZjc1NGMzNzY5MGYwYzg0Njk5MTY3ZTM1
ODFkMjc5MTZhNWM3YjM1Li5jZjBhZDM2MTJlZTc3ZDFlNGQxMTkwMDYwZDA5ZWQ0ZDBkNjNlYTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCkBAIC0zNTQsNiArMzU0LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICAgICAg
fHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tG
b3J3YXJkQWRkSXRlbTo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9
PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZTo6bmFtZSgpCiAg
ICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6Om5hbWUoKQorICAgICAg
ICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5OjpuYW1lKCkKICAgICAgICAgfHwg
ZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldE5ldHdv
cmtSZXF1ZXN0c0luUHJvZ3Jlc3M6Om5hbWUoKQogI2lmIFVTRShRVUlDS19MT09LKQogICAgICAg
ICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
U3RhcnRMb2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZTo6bmFtZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcAppbmRleCBhNTQ3ZWFkNTI1MWFmMDAyN2IyODhiMTc5NDUxZTdhMjI3ODk2ZGJj
Li4zYzIwYWQyM2YxYTM0MDI0ZGY4ODAwMDg3YjhjNGQzNTc0YzM0ZjJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCIKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLRGlj
dGlvbmFyeS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC02OSw0ICs3MCwxMiBAQCB2b2lkIFdlYlBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KFdl
YgogICAgIG1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeSh0
b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCB0b0FQSShkZXNjcmlwdGlvbi5pbXBs
KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCit2b2lkIFdlYlBhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5
KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBSZWY8QVBJOjpEaWN0aW9uYXJ5PiYmIHZhbHVlRGljdGlvbmFyeSkKK3sK
KyAgICBpZiAoIW1fY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFy
eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWVEaWN0aW9uYXJ5KHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRv
QVBJKGRlc2NyaXB0aW9uLmltcGwoKSksIHRvQVBJKCZ2YWx1ZURpY3Rpb25hcnkubGVha1JlZigp
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCmluZGV4IGJhYWRjMTUyN2NmZGViZDJlNmNhNTk0Y2M5OWM4M2RmOTM0
ZTdmOGIuLjJiNTFkNWI5YzMzNjRkODZjMTJhMzlkMDdjODcwNjhjMGYzMjYxNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBUElDbGllbnQuaCIKICNp
bmNsdWRlICJBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgorI2luY2x1ZGUgIkFQSURpY3Rp
b25hcnkuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0
aWNMb2dnaW5nUmVzdWx0VHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNSw3
ICszNiw3IEBACiBuYW1lc3BhY2UgQVBJIHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJh
aXRzPFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3Rk
Ojp0dXBsZTxXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudFYwLCBXS1BhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudFYxPiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMCwgV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRW
MSwgV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRWMj4gVmVyc2lvbnM7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBBUEkKQEAgLTUyLDYgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dp
bmdSZXN1bHRUeXBlKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3koV2ViUGFnZVByb3h5KiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSBvdmVycmlkZTsK
KyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShXZWJQYWdl
UHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IFJlZjxBUEk6OkRpY3Rpb25hcnk+JiYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiZTE2
MTFmZWMwZGM4NjAzMjY3NjMxMmQyMzhmZjAwZmY1MmUwYzdmLi4wNDkxNjM0YTRlYjVkYzhlOGI0
OTdjMjI5ZWJiODIwYzlmNWExZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTY1MjksNiArNjUyOSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KGNvbnN0IFN0cmluZyYgbWVzc2FnZQog
ICAgIGVmZmVjdGl2ZUNsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2
YWN5KHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFdlYkNvcmU6OkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkmIHZhbHVlRGljdGlvbmFyeSwgV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKK3sKKyAgICBhdXRvKiBlZmZlY3RpdmVDbGll
bnQgPSBlZmZlY3RpdmVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChzaG91bGRTYW1wbGUpOworICAg
IGlmICghZWZmZWN0aXZlQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGFwaURp
Y3Rpb25hcnkgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOworCisgICAgZm9yIChhdXRvJiBr
ZXlWYWx1ZVBhaXIgOiB2YWx1ZURpY3Rpb25hcnkpIHsKKyAgICAgICAgYXBpRGljdGlvbmFyeS0+
YWRkKGtleVZhbHVlUGFpci5rZXksIFdURjo6c3dpdGNoT24oa2V5VmFsdWVQYWlyLnZhbHVlLAor
ICAgICAgICAgICAgW10oY29uc3QgU3RyaW5nJiB2YWx1ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1
cm4gQVBJOjpTdHJpbmc6OmNyZWF0ZSh2YWx1ZSk7IH0sCisgICAgICAgICAgICBbXSh1aW50NjRf
dCB2YWx1ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4gQVBJOjpVSW50NjQ6OmNyZWF0ZSh2YWx1
ZSk7IH0sCisgICAgICAgICAgICBbXShpbnQ2NF90IHZhbHVlKSAtPiBSZWY8T2JqZWN0PiB7IHJl
dHVybiBBUEk6OkludDY0OjpjcmVhdGUodmFsdWUpOyB9LAorICAgICAgICAgICAgW10oYm9vbCB2
YWx1ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4gQVBJOjpCb29sZWFuOjpjcmVhdGUodmFsdWUp
OyB9LAorICAgICAgICAgICAgW10oZG91YmxlIHZhbHVlKSAtPiBSZWY8T2JqZWN0PiB7IHJldHVy
biBBUEk6OkRvdWJsZTo6Y3JlYXRlKHZhbHVlKTsgfQorICAgICAgICApKTsKKyAgICB9CisKKyAg
ICBlZmZlY3RpdmVDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFy
eSh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgV1RGTW92ZShhcGlEaWN0aW9uYXJ5KSk7Cit9
CisKIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dTY3JvbGxpbmdFdmVudCh1aW50MzJfdCBldmVudFR5
cGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCB1aW50NjRfdCBkYXRhKQogewogICAgIFBlcmZv
cm1hbmNlTG9nZ2luZ0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQgZXZlbnQgPSBzdGF0aWNfY2FzdDxQ
ZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ6OlNjcm9sbGluZ0V2ZW50PihldmVudFR5cGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhMWM4M2FjYTQ3NTc5NmQ1Zjlk
MTcyN2YwZTBkNjI0NjQwM2VhZjFlLi4yOTk3ZWNlNzZkYmNkZWI3ZjVhNTU5N2QyZmFhNDQ2NGNl
NGZiNzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzAsNiAr
NzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9EcmFnQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRUcmFja2luZ1JlZ2lvbnMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CkBAIC0xMzM0LDYgKzEzMzUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1aW50MzJfdCBy
ZXN1bHQsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5j
ZWRQcml2YWN5KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpWYWx1
ZURpY3Rpb25hcnkmLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwogCiAgICAgLy8gUGVyZm9ybWFu
Y2UgbG9nZ2luZy4KICAgICB2b2lkIGxvZ1Njcm9sbGluZ0V2ZW50KHVpbnQzMl90IGV2ZW50VHlw
ZSwgTW9ub3RvbmljVGltZSwgdWludDY0X3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDIxZmZmZTRhOTFiZGM2NTFjNWRlMjY0
NDc2ZWMzYTc0Mzc0NjYzMDQuLmEyY2MzYjM2MWM5NWFiNjMzNWRlZDUzYTJkODQxZDhkOTQ1ZjU4
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTI0Miw2ICsyNDIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRl
c2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRTYW1w
bGUgc2hvdWxkU2FtcGxlKQogICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFN0cmlu
ZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2ln
bmlmaWNhbnRGaWd1cmVzLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNh
bXBsZSkKICAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3koU3RyaW5n
IG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFNh
bXBsZSBzaG91bGRTYW1wbGUpCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0
aW9uYXJ5KFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkgdmFsdWUsIGVudW06Ym9vbCBXZWJD
b3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogCiAgICAgIyBQZXJmb3JtYW5jZSBsb2dn
aW5nCiAgICAgTG9nU2Nyb2xsaW5nRXZlbnQodWludDMyX3QgZXZlbnRUeXBlLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgdWludDY0X3QgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwCmluZGV4IDdhM2E5ZDYyMDdkMjk3ZmFmYWE4ZTM1MzA3OGQ3YjRjMGU2
MjQ0NTcuLmQ5Y2I0ZjM3YzJhZDNlODA4YzBkZmUyZjY0ZDRhMzBjYzY5NTQyOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtODMsNCArODMsMTQgQEAg
dm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
RW5oYW5jZWRQcml2YWN5KGNvbnN0IFMKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3kobWVzc2FnZSwg
ZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6Tm8pKTsKIH0KIAordm9pZCBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgVmFs
dWVEaWN0aW9uYXJ5JiB2YWx1ZSwgU2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKK3sKKyAgICBB
U1NFUlQoIW1fcGFnZS5jb3JlUGFnZSgpIHx8IG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygp
LmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKTsKKworICAgIGlmICghc2hvdWxkTG9nQWZ0ZXJT
YW1wbGluZyhzaG91bGRTYW1wbGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2Uuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURp
Y3Rpb25hcnkobWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlLCBTaG91bGRTYW1wbGU6Ok5vKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaAppbmRleCAwYjdlNTQ1ZmRhNjYwM2M2YmUyODhkNmE3MGIxMTZlMzY1ZWM5MmUy
Li5iY2NjZjM4ZDk4YTY1MzA5MTQyMTAyZTJhNGVlMWU3MWEyMzU1NTUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtNDMsNiArNDMsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dp
bmdSZXN1bHRUeXBlLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpIG92ZXJyaWRlOwogICAgIHZvaWQg
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50
RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnkoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBWYWx1
ZURpY3Rpb25hcnkmLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpIG92ZXJyaWRlOwogCiAgICAgV2Vi
UGFnZSYgbV9wYWdlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367469</attachid>
            <date>2019-04-15 16:02:01 -0700</date>
            <delta_ts>2019-04-15 16:08:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196773-20190415160200.patch</filename>
            <type>text/plain</type>
            <size>28203</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDE4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA0LTE1ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIERpYWdub3N0aWNMb2dn
aW5nIG1ldGhvZCB0YWtpbmcgYW4gYXJiaXRyYXJ5IGRpY3Rpb25hcnkgb2YgdmFsdWVzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzczCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIHBhZ2UvRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKwogMjAxOS0wNC0xMCAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjptb3ZlUGFyYWdyYXBocyB3aGVuIHJvb3QgZWRpdGFibGUgZWxlbWVudCBnb2VzIGF3
YXkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCShyZXZpc2lvbiAy
NDQxODEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMxLDYgKzEzMSw3IEBAIGNsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQgZmluYWwKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUsIFNo
b3VsZFNhbXBsZSkgZmluYWwgeyB9CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBkb3VibGUsIHVuc2lnbmVkLCBTaG91
bGRTYW1wbGUpIGZpbmFsIHsgfQogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5o
YW5jZWRQcml2YWN5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFNob3VsZFNhbXBsZSkg
ZmluYWwgeyB9CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25h
cnkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmFsdWVEaWN0aW9uYXJ5Jiwg
U2hvdWxkU2FtcGxlKSBmaW5hbCB7IH0KIH07CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAko
cmV2aXNpb24gMjQ0MTgxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBACiAjaW5jbHVkZSAiRGlh
Z25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsNiArNDQsMTEgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2ln
bmlmaWNhbnRGaWd1cmVzLCBTaG91bGRTYW1wbGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlKSA9IDA7CiAKKyAgICB1
c2luZyBWYWx1ZVBheWxvYWQgPSBWYXJpYW50PFN0cmluZywgdWludDY0X3QsIGludDY0X3QsIGJv
b2wsIGRvdWJsZT47CisgICAgdXNpbmcgVmFsdWVEaWN0aW9uYXJ5ID0gSGFzaE1hcDxTdHJpbmcs
IFZhbHVlUGF5bG9hZD47CisKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgY29uc3QgVmFsdWVEaWN0aW9uYXJ5JiwgU2hvdWxkU2FtcGxlKSA9IDA7CisK
ICAgICBzdGF0aWMgYm9vbCBzaG91bGRMb2dBZnRlclNhbXBsaW5nKFNob3VsZFNhbXBsZSk7CiAK
ICAgICB2aXJ0dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpID0gZGVmYXVsdDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI0NDE4MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYs
NiArNTYsNyBAQAogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJET01XaW5k
b3cuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpc2FibGVkQWRhcHRhdGlvbnMu
aCIKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC00
OTk4LDQgKzQ5OTksMjQgQEAgdm9pZCBJbnRlcm5hbHM6OnByb2Nlc3NEaWRSZXN1bWUoKQogICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnByb2Nlc3NEaWRS
ZXN1bWUoKTsKIH0KIAordm9pZCBJbnRlcm5hbHM6OnRlc3REaWN0aW9uYXJ5TG9nZ2luZygpCit7
CisgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3Vt
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkgZGljdGlvbmFyeTsKKyAgICBkaWN0aW9uYXJ5LnNl
dCgic3RyaW5nS2V5Il9zLCBTdHJpbmcoInN0cmluZ1ZhbHVlIikpOworICAgIGRpY3Rpb25hcnku
c2V0KCJ1aW50NjRLZXkiX3MsIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSk7
CisgICAgZGljdGlvbmFyeS5zZXQoImludDY0S2V5Il9zLCBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDY0X3Q+OjptaW4oKSk7CisgICAgZGljdGlvbmFyeS5zZXQoImJvb2xLZXkiX3MsIHRydWUpOwor
ICAgIGRpY3Rpb25hcnkuc2V0KCJkb3VibGVLZXkiX3MsIDIuNzE4MjgxODI4NDU5MDQ1MjM1MzYw
Mjg3NCk7CisKKyAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSgidGVzdE1lc3NhZ2UiX3MsICJ0ZXN0RGVzY3Jp
cHRpb24iX3MsIGRpY3Rpb25hcnksIFNob3VsZFNhbXBsZTo6Tm8pOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9u
IDI0NDE4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTgwOCw2ICs4MDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9jZXNzV2lsbFN1
c3BlbmQoKTsKICAgICB2b2lkIHByb2Nlc3NEaWRSZXN1bWUoKTsKIAorICAgIHZvaWQgdGVzdERp
Y3Rpb25hcnlMb2dnaW5nKCk7CisgICAgICAgIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRl
cm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNDQxODEp
CisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTc0Myw0ICs3NDMsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKIAogICAgIHZvaWQg
cHJvY2Vzc1dpbGxTdXNwZW5kKCk7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisKKyAg
ICB2b2lkIHRlc3REaWN0aW9uYXJ5TG9nZ2luZygpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDQ1IEBACisyMDE5LTA0LTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIERpYWdub3N0aWNMb2dnaW5nIG1ldGhvZCB0YWtpbmcgYW4gYXJi
aXRyYXJ5IGRpY3Rpb25hcnkgb2YgdmFsdWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBD
aHJpc3RlbnNlbi4KKworICAgICAgICBJbiBhZGRpdGlvbiB0byBhZGRpbmcgdGhlIG5ldyBsb2dn
aW5nIGRlbGVnYXRlIG1ldGhvZCAoYW5kIHBpcGluZyBldmVyeXRoaW5nIGludG8gaXQpLCAKKyAg
ICAgICAgYWRkIGEgbmV3IEFQSU9iamVjdCBjbGFzcyB0byByZXByZXNlbnQgYSBzaWduZWQgaW50
ZWdlci4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJTnVtYmVyLmg6CisgICAgICAgICogU2hh
cmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1t
OgorICAgICAgICAoQVBJOjpPYmplY3Q6Om5ld09iamVjdCk6CisgICAgICAgICogU2hhcmVkL0Nv
Y29hL1dLTlNOdW1iZXIubW06CisgICAgICAgICgtW1dLTlNOdW1iZXIgZGVhbGxvY10pOgorICAg
ICAgICAoLVtXS05TTnVtYmVyIG9iakNUeXBlXSk6CisgICAgICAgICgtW1dLTlNOdW1iZXIgZ2V0
VmFsdWU6XSk6CisgICAgICAgICgtW1dLTlNOdW1iZXIgbG9uZ0xvbmdWYWx1ZV0pOgorICAgICAg
ICAoLVtXS05TTnVtYmVyIF9hcGlPYmplY3RdKToKKyAgICAgICAgKiBTaGFyZWQvVXNlckRhdGEu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6VXNlckRhdGE6OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9E
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9EaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZURpY3Rpb25hcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZURpY3Rpb25hcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisKIDIwMTktMDQtMTAg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVkIHVuZGVybmVhdGggdGhlIHRhYiBiYXIg
d2hlbiBkZXRhY2hlZApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJEYXRhLmNwcAkocmV2aXNpb24g
MjQ0MTgxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMTAsNiArMzEwLDEwIEBAIHZvaWQgVXNlckRhdGE6OmVuY29kZShJUEM6OkVuY29k
ZXImIGVuY28KICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpVSW50NjQmPihvYmplY3Qp
LmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2JqZWN0
OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpJbnQ2NCY+KG9i
amVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgQVBJOjpP
YmplY3Q6OlR5cGU6OlVzZXJDb250ZW50VVJMUGF0dGVybjogewogICAgICAgICBhdXRvJiB1cmxQ
YXR0ZXJuID0gc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpVc2VyQ29udGVudFVSTFBhdHRlcm4mPihv
YmplY3QpOwogICAgICAgICBlbmNvZGVyIDw8IHVybFBhdHRlcm4ucGF0dGVyblN0cmluZygpOwpA
QCAtNTcyLDYgKzU3NiwxMSBAQCBib29sIFVzZXJEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2Fz
ZSBBUEk6Ok9iamVjdDo6VHlwZTo6SW50NjQ6CisgICAgICAgIGlmICghQVBJOjpJbnQ2NDo6ZGVj
b2RlKGRlY29kZXIsIHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGJyZWFrOworCiAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6VXNlckNvbnRlbnRVUkxQYXR0
ZXJuOiB7CiAgICAgICAgIFN0cmluZyBzdHJpbmc7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc3RyaW5nKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElOdW1iZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJTnVtYmVyLmgJKHJldmlz
aW9uIDI0NDE4MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElOdW1iZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogdHlwZWRlZiBOdW1iZXI8Ym9v
bCwgQVBJOjpPYmplY3Q6OlR5cGU6OkJvb2xlYW4+IEJvb2xlYW47CiB0eXBlZGVmIE51bWJlcjxk
b3VibGUsIEFQSTo6T2JqZWN0OjpUeXBlOjpEb3VibGU+IERvdWJsZTsKIHR5cGVkZWYgTnVtYmVy
PHVpbnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6VUludDY0PiBVSW50NjQ7Cit0eXBlZGVmIE51
bWJlcjxpbnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6SW50NjQ+IEludDY0OwogCiB9IC8vIG5h
bWVzcGFjZSBBUEkKIApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAkocmV2
aXNpb24gMjQ0MTgxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgQm9vbGVhbiwK
ICAgICAgICAgRG91YmxlLAogICAgICAgICBVSW50NjQsCisgICAgICAgIEludDY0LAogICAgICAg
ICAKICAgICAgICAgLy8gR2VvbWV0cnkgdHlwZXMKICAgICAgICAgUG9pbnQsCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCShyZXZpc2lvbiAyNDQxODEpCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0JKHdvcmtpbmcgY29weSkKQEAg
LTE2Myw2ICsxNjMsNyBAQCB2b2lkKiBPYmplY3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlw
CiAgICAgY2FzZSBUeXBlOjpCb29sZWFuOgogICAgIGNhc2UgVHlwZTo6RG91YmxlOgogICAgIGNh
c2UgVHlwZTo6VUludDY0OgorICAgIGNhc2UgVHlwZTo6SW50NjQ6CiAgICAgICAgIHdyYXBwZXIg
PSBbV0tOU051bWJlciBhbGxvY107CiAgICAgICAgICgoV0tOU051bWJlciAqKXdyYXBwZXIpLT5f
dHlwZSA9IHR5cGU7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvV0tOU051bWJlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XS05TTnVtYmVyLm1tCShyZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9XS05TTnVtYmVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6
OkJvb2xlYW4+IF9ib29sZWFuOwogICAgICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpEb3Vi
bGU+IF9kb3VibGU7CiAgICAgICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OlVJbnQ2ND4gX3Vp
bnQ2NDsKKyAgICAgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6SW50NjQ+IF9pbnQ2NDsKICAg
ICB9IF9udW1iZXI7CiB9CiAKQEAgLTUxLDYgKzUyLDEwIEBAIC0gKHZvaWQpZGVhbGxvYwogICAg
ICAgICBfbnVtYmVyLl91aW50NjQtPn5OdW1iZXI8dWludDY0X3QsIEFQSTo6T2JqZWN0OjpUeXBl
OjpVSW50NjQ+KCk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlw
ZTo6SW50NjQ6CisgICAgICAgIF9udW1iZXIuX2ludDY0LT5+TnVtYmVyPGludDY0X3QsIEFQSTo6
T2JqZWN0OjpUeXBlOjpJbnQ2ND4oKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC03NSw2ICs4MCwxMCBAQCAt
IChjb25zdCBjaGFyICopb2JqQ1R5cGUKICAgICAgICAgcmV0dXJuIEBlbmNvZGUodWludDY0X3Qp
OwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkludDY0Ogor
ICAgICAgICByZXR1cm4gQGVuY29kZShpbnQ2NF90KTsKKyAgICAgICAgYnJlYWs7CisKICAgICBk
ZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC05Nyw2ICsx
MDYsMTAgQEAgLSAodm9pZClnZXRWYWx1ZToodm9pZCAqKXZhbHVlCiAgICAgICAgICpyZWludGVy
cHJldF9jYXN0PHVpbnQ2NF90Kj4odmFsdWUpID0gX251bWJlci5fdWludDY0LT52YWx1ZSgpOwog
ICAgICAgICBicmVhazsKIAorICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkludDY0OgorICAg
ICAgICAqcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90Kj4odmFsdWUpID0gX251bWJlci5faW50NjQt
PnZhbHVlKCk7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMTI4LDYgKzE0MSwxNCBAQCAtICh1bnNpZ25lZCBs
b25nIGxvbmcpdW5zaWduZWRMb25nTG9uZ1ZhCiAgICAgcmV0dXJuIHN1cGVyLnVuc2lnbmVkTG9u
Z0xvbmdWYWx1ZTsKIH0KIAorLSAobG9uZyBsb25nKWxvbmdMb25nVmFsdWUKK3sKKyAgICBpZiAo
X3R5cGUgPT0gQVBJOjpPYmplY3Q6OlR5cGU6OkludDY0KQorICAgICAgICByZXR1cm4gX251bWJl
ci5faW50NjQtPnZhbHVlKCk7CisKKyAgICByZXR1cm4gc3VwZXIubG9uZ0xvbmdWYWx1ZTsKK30K
KwogLy8gTUFSSzogTlNDb3B5aW5nIHByb3RvY29sIGltcGxlbWVudGF0aW9uCiAKIC0gKGlkKWNv
cHlXaXRoWm9uZTooTlNab25lICopem9uZQpAQCAtMTUyLDYgKzE3MywxMCBAQCAtIChBUEk6Ok9i
amVjdCYpX2FwaU9iamVjdAogICAgICAgICByZXR1cm4gKl9udW1iZXIuX3VpbnQ2NDsKICAgICAg
ICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAg
cmV0dXJuICpfbnVtYmVyLl9pbnQ2NDsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNDQx
ODEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1NCw2ICszNTQsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRSZWNlaXZlTWVzCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEFkZEl0ZW06Om5hbWUoKQogICAgICAg
ICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9n
RGlhZ25vc3RpY01lc3NhZ2U6Om5hbWUoKQogICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5o
YW5jZWRQcml2YWN5OjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGlj
dGlvbmFyeTo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzOjpuYW1lKCkK
ICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFN0YXJ0TG9hZEZvclF1aWNrTG9va0RvY3VtZW50
SW5NYWluRnJhbWU6Om5hbWUoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgJKHJldmlzaW9uIDI0NDE4
MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0
aWNMb2dnaW5nUmVzdWx0VHlwZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwogICAg
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KFdlYlBhZ2VQcm94
eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgb3Zl
cnJpZGU7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnko
V2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBSZWY8QVBJOjpEaWN0aW9uYXJ5PiYmKSBvdmVycmlk
ZSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NTI0LDYg
KzY1MjQsMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlVwogICAg
IGVmZmVjdGl2ZUNsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5
KHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6Omxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkmIHZhbHVlRGljdGlvbmFyeSwgV2ViQ29yZTo6
U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKK3sKKyAgICBhdXRvKiBlZmZlY3RpdmVDbGllbnQg
PSBlZmZlY3RpdmVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChzaG91bGRTYW1wbGUpOworICAgIGlm
ICghZWZmZWN0aXZlQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGFwaURpY3Rp
b25hcnkgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOworCisgICAgZm9yIChhdXRvJiBrZXlW
YWx1ZVBhaXIgOiB2YWx1ZURpY3Rpb25hcnkpIHsKKyAgICAgICAgYXBpRGljdGlvbmFyeS0+YWRk
KGtleVZhbHVlUGFpci5rZXksIFdURjo6c3dpdGNoT24oa2V5VmFsdWVQYWlyLnZhbHVlLAorICAg
ICAgICAgICAgW10oY29uc3QgU3RyaW5nJiB2YWx1ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4g
QVBJOjpTdHJpbmc6OmNyZWF0ZSh2YWx1ZSk7IH0sCisgICAgICAgICAgICBbXSh1aW50NjRfdCB2
YWx1ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4gQVBJOjpVSW50NjQ6OmNyZWF0ZSh2YWx1ZSk7
IH0sCisgICAgICAgICAgICBbXShpbnQ2NF90IHZhbHVlKSAtPiBSZWY8T2JqZWN0PiB7IHJldHVy
biBBUEk6OkludDY0OjpjcmVhdGUodmFsdWUpOyB9LAorICAgICAgICAgICAgW10oYm9vbCB2YWx1
ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4gQVBJOjpCb29sZWFuOjpjcmVhdGUodmFsdWUpOyB9
LAorICAgICAgICAgICAgW10oZG91YmxlIHZhbHVlKSAtPiBSZWY8T2JqZWN0PiB7IHJldHVybiBB
UEk6OkRvdWJsZTo6Y3JlYXRlKHZhbHVlKTsgfQorICAgICAgICApKTsKKyAgICB9CisKKyAgICBl
ZmZlY3RpdmVDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSh0
aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgV1RGTW92ZShhcGlEaWN0aW9uYXJ5KSk7Cit9CisK
IHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dTY3JvbGxpbmdFdmVudCh1aW50MzJfdCBldmVudFR5cGUs
IE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCB1aW50NjRfdCBkYXRhKQogewogICAgIFBlcmZvcm1h
bmNlTG9nZ2luZ0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQgZXZlbnQgPSBzdGF0aWNfY2FzdDxQZXJm
b3JtYW5jZUxvZ2dpbmdDbGllbnQ6OlNjcm9sbGluZ0V2ZW50PihldmVudFR5cGUpOwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDI0NDE4MSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudFRyYWNraW5n
UmVnaW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZXMuaD4KQEAgLTEzNDUs
NiArMTM0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVp
bnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMs
IFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhFbmhhbmNlZFByaXZhY3koY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ6OlZhbHVlRGljdGlvbmFyeSYsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAKICAgICAvLyBQ
ZXJmb3JtYW5jZSBsb2dnaW5nLgogICAgIHZvaWQgbG9nU2Nyb2xsaW5nRXZlbnQodWludDMyX3Qg
ZXZlbnRUeXBlLCBNb25vdG9uaWNUaW1lLCB1aW50NjRfdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDQx
ODEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTI0Miw2ICsyNDIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChTdHJpbmcgbWVzc2FnZSwg
U3RyaW5nIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIGVudW06Ym9vbCBXZWJDb3JlOjpT
aG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5z
aWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
IHNob3VsZFNhbXBsZSkKICAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZh
Y3koU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZW51bTpib29sIFdlYkNvcmU6
OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWVEaWN0aW9uYXJ5KFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkgdmFsdWUsIGVudW06
Ym9vbCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogCiAgICAgIyBQZXJmb3Jt
YW5jZSBsb2dnaW5nCiAgICAgTG9nU2Nyb2xsaW5nRXZlbnQodWludDMyX3QgZXZlbnRUeXBlLCBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgdWludDY0X3QgZGF0YSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCShyZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTEgKzIzLDkg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEFQ
SURpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKLSNkZWZpbmUgQVBJRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnRfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dn
aW5nUmVzdWx0VHlwZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKQEAgLTM1LDYgKzMzLDggQEAgY2xh
c3MgV2ViUGFnZVByb3h5OwogCiBuYW1lc3BhY2UgQVBJIHsKIAorY2xhc3MgRGljdGlvbmFyeTsK
KwogY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwg
fkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkgeyB9CkBAIC00Myw5ICs0Myw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6
V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3Ry
aW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdlYktp
dDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6
U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpTdHJpbmcmIHZhbHVlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShXZWJL
aXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6
OlN0cmluZyYgZGVzY3JpcHRpb24pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnkoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25z
dCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBS
ZWY8QVBJOjpEaWN0aW9uYXJ5PiYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKLQot
I2VuZGlmIC8vIEFQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKLQpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25v
c3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw1ICs0MCw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9X
S0RpYWdub3N0aWMKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0OihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246
KE5TU3RyaW5nICopZGVzY3JpcHRpb24gcmVzdWx0OihfV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3Vs
dFR5cGUpcmVzdWx0OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0aW9u
OihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIHZhbHVlOihOU1N0cmluZyAqKSB2YWx1ZTsKIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
RW5oYW5jZWRQcml2YWN5OihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3RyaW5n
ICopZGVzY3JpcHRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNz
YWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVzY3JpcHRp
b24gdmFsdWVEaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKil2YWx1ZURpY3Rpb25hcnkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9EaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oCShyZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01MSw2ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhSZXN1bHQoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUpIG92
ZXJyaWRlOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVBy
b3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBj
b25zdCBTdHJpbmcmIHZhbHVlKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aEVuaGFuY2VkUHJpdmFjeShXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUmVmPEFQSTo6RGljdGlv
bmFyeT4mJikgb3ZlcnJpZGU7CiAKICAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKICAgICBXZWFr
T2JqQ1B0cjxpZCA8X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4+IG1fZGVsZWdhdGU7CkBA
IC02MCw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVuc2lnbmVkIHdlYnZpZXdMb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQgOiAxOwogICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3TG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUgOiAxOwogICAgICAgICB1bnNpZ25lZCB3ZWJ2aWV3
TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5IDogMTsKKyAgICAgICAgdW5z
aWduZWQgd2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSA6IDE7
CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tCShy
ZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9EaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogCisj
aW1wb3J0ICJBUElEaWN0aW9uYXJ5LmgiCiAjaW1wb3J0ICJXS1NoYXJlZEFQSUNhc3QuaCIKICNp
bXBvcnQgIl9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCIKIApAQCAtNDksNiArNTAsNyBA
QCB2b2lkIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzZXREZWxlZ2F0CiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFJlc3VsdDpkZXNjcmlwdGlvbjpyZXN1bHQ6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWU6ZGVzY3JpcHRpb246dmFsdWU6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vidmll
d0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeSA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aEVuaGFuY2VkUHJpdmFjeTpkZXNjcmlwdGlvbjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53
ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5ID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bG9nRGlhZ25vc3RpY01lc3Nh
Z2U6ZGVzY3JpcHRpb246dmFsdWVEaWN0aW9uYXJ5OildOwogfQogCiB2b2lkIERpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJLaXQ6OldlYlBhZ2VQcm94eSos
IGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVzY3JpcHRp
b24pCkBAIC04Nyw0ICs4OSwxMSBAQCB2b2lkIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dE
aWFnbm9zCiAgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3Om1fd2ViVmlldyBsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6bWVzc2FnZSBkZXNjcmlwdGlvbjpk
ZXNjcmlwdGlvbl07CiB9CiAKK3ZvaWQgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFJlZjxBUEk6OkRpY3Rpb25h
cnk+JiYgdmFsdWVEaWN0aW9uYXJ5KQoreworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJ2
aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KQorICAgICAgICBbbV9k
ZWxlZ2F0ZS5nZXQoKSBfd2ViVmlldzptX3dlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2U6bWVz
c2FnZSBkZXNjcmlwdGlvbjpkZXNjcmlwdGlvbiB2YWx1ZURpY3Rpb25hcnk6c3RhdGljX2Nhc3Q8
TlNEaWN0aW9uYXJ5Kj4odmFsdWVEaWN0aW9uYXJ5LT53cmFwcGVyKCkpXTsKK30KKworCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcAkocmV2aXNpb24gMjQ0MTgxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODMsNCArODMsMTQgQEAgdm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6
bG9nRGlhZwogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgU2hv
dWxkU2FtcGxlOjpObykpOwogfQogCit2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojps
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBWYWx1ZURpY3Rpb25hcnkmIHZh
bHVlLCBTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQoreworICAgIEFTU0VSVCghbV9wYWdlLmNv
cmVQYWdlKCkgfHwgbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dp
bmdFbmFibGVkKCkpOworCisgICAgaWYgKCFzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNh
bXBsZSkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShtZXNzYWdl
LCBkZXNjcmlwdGlvbiwgdmFsdWUsIFNob3VsZFNhbXBsZTo6Tm8pKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aAkocmV2aXNpb24gMjQ0MTgxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQz
LDYgKzQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
KSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVl
LCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3ko
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGUpIG92ZXJyaWRlOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgY29uc3QgVmFsdWVEaWN0aW9uYXJ5JiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
KSBvdmVycmlkZTsKIAogICAgIFdlYlBhZ2UmIG1fcGFnZTsKIH07CkluZGV4OiBUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQzMDEpCisr
KyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0w
NC0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIEFkZCBhIERpYWdub3N0aWNMb2dnaW5nIG1ldGhvZCB0YWtpbmcgYW4gYXJiaXRyYXJ5IGRp
Y3Rpb25hcnkgb2YgdmFsdWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk2NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEaWFnbm9z
dGljTG9nZ2luZy5tbToKKyAgICAgICAgKC1bVGVzdExvZ2dpbmdEZWxlZ2F0ZSBfd2ViVmlldzps
b2dEaWFnbm9zdGljTWVzc2FnZTpkZXNjcmlwdGlvbjp2YWx1ZURpY3Rpb25hcnk6XSk6CisgICAg
ICAgIChURVNUKToKKwogMjAxOS0wNC0xNSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBJbmplY3RlZEJ1bmRsZSBwYXJhbWV0ZXJzIG9mdGVuIG5lZWQgaW5p
dGlhbGl6YXRpb24gZnVuY3Rpb24gY2FsbGVkIGJlZm9yZSB1bmFyY2hpdmluZwpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEaWFnbm9zdGljTG9n
Z2luZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLV2ViVmlld0RpYWdub3N0aWNMb2dnaW5nLm1tCShyZXZpc2lvbiAyNDQxODEpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0RpYWdub3N0aWNM
b2dnaW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNCArMjgsMzAgQEAKICNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgi
CisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRGlhZ25vc3RpY0xvZ2dp
bmdEZWxlZ2F0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCitzdGF0aWMgYm9vbCBp
c0RvbmU7CisKIEBpbnRlcmZhY2UgVGVzdExvZ2dpbmdEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tE
aWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlPgogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdExv
Z2dpbmdEZWxlZ2F0ZQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxv
Z0RpYWdub3N0aWNNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3Ry
aW5nICopZGVzY3JpcHRpb24gdmFsdWVEaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKil2YWx1ZURp
Y3Rpb25hcnkKK3sKKyAgICBFWFBFQ1RfVFJVRShbW3ZhbHVlRGljdGlvbmFyeSBvYmplY3RGb3JL
ZXk6QCJzdHJpbmdLZXkiXSBpc0VxdWFsVG9TdHJpbmc6QCJzdHJpbmdWYWx1ZSJdKTsKKyAgICBF
WFBFQ1RfVFJVRShbW3ZhbHVlRGljdGlvbmFyeSBvYmplY3RGb3JLZXk6QCJ1aW50NjRLZXkiXSB1
bnNpZ25lZExvbmdMb25nVmFsdWVdID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+Ojpt
YXgoKSk7CisgICAgRVhQRUNUX1RSVUUoW1t2YWx1ZURpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OkAi
aW50NjRLZXkiXSBsb25nTG9uZ1ZhbHVlXSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+
OjptaW4oKSk7CisgICAgRVhQRUNUX1RSVUUoW1t2YWx1ZURpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5
OkAiYm9vbEtleSJdIGJvb2xWYWx1ZV0pOworICAgIEVYUEVDVF9UUlVFKFtbdmFsdWVEaWN0aW9u
YXJ5IG9iamVjdEZvcktleTpAImRvdWJsZUtleSJdIGRvdWJsZVZhbHVlXSA9PSAyLjcxODI4MTgy
ODQ1OTA0NTIzNTM2MDI4NzQpOworCisgICAgaXNEb25lID0gdHJ1ZTsKK30KKwogQGVuZAogCiBU
RVNUKFdLV2ViVmlldywgUHJpdmF0ZVNlc3Npb25EaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlKQpA
QCAtNjksMyArODUsMTMgQEAgVEVTVChXS1dlYlZpZXcsIERpYWdub3N0aWNMb2dnaW5nRGVsZWdh
dAogICAgIEVYUEVDVF9FUShuaWwsIHdlYlZpZXcuZ2V0KCkuX2RpYWdub3N0aWNMb2dnaW5nRGVs
ZWdhdGUpOwogfQogCitURVNUKFdLV2ViVmlldywgRGlhZ25vc3RpY0xvZ2dpbmdEaWN0aW9uYXJ5
KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOltXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIl1dKTsKKyAgICBhdXRvIHRlc3RMb2dnaW5nRGVsZWdhdGUgPSBh
ZG9wdE5TKFtUZXN0TG9nZ2luZ0RlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IF9zZXREaWFn
bm9zdGljTG9nZ2luZ0RlbGVnYXRlOnRlc3RMb2dnaW5nRGVsZWdhdGUuZ2V0KCldOworICAgIFt3
ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzLl9kaWFnbm9zdGljTG9nZ2luZ0VuYWJs
ZWQgPSBZRVM7CisKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+d2luZG93
LmludGVybmFscy50ZXN0RGljdGlvbmFyeUxvZ2dpbmcoKTwvc2NyaXB0PiIgYmFzZVVSTDpuaWxd
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367471</attachid>
            <date>2019-04-15 16:08:50 -0700</date>
            <delta_ts>2019-04-15 16:32:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196773-20190415160848.patch</filename>
            <type>text/plain</type>
            <size>28159</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDE4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA0LTE1ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIERpYWdub3N0aWNMb2dn
aW5nIG1ldGhvZCB0YWtpbmcgYW4gYXJiaXRyYXJ5IGRpY3Rpb25hcnkgb2YgdmFsdWVzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzczCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIHBhZ2UvRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKwogMjAxOS0wNC0xMCAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjptb3ZlUGFyYWdyYXBocyB3aGVuIHJvb3QgZWRpdGFibGUgZWxlbWVudCBnb2VzIGF3
YXkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCShyZXZpc2lvbiAy
NDQxODEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMxLDYgKzEzMSw3IEBAIGNsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQgZmluYWwKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUsIFNo
b3VsZFNhbXBsZSkgZmluYWwgeyB9CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBkb3VibGUsIHVuc2lnbmVkLCBTaG91
bGRTYW1wbGUpIGZpbmFsIHsgfQogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5o
YW5jZWRQcml2YWN5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFNob3VsZFNhbXBsZSkg
ZmluYWwgeyB9CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25h
cnkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmFsdWVEaWN0aW9uYXJ5Jiwg
U2hvdWxkU2FtcGxlKSBmaW5hbCB7IH0KIH07CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAko
cmV2aXNpb24gMjQ0MTgxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBACiAjaW5jbHVkZSAiRGlh
Z25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsNiArNDQsMTEgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2ln
bmlmaWNhbnRGaWd1cmVzLCBTaG91bGRTYW1wbGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlKSA9IDA7CiAKKyAgICB1
c2luZyBWYWx1ZVBheWxvYWQgPSBWYXJpYW50PFN0cmluZywgdWludDY0X3QsIGludDY0X3QsIGJv
b2wsIGRvdWJsZT47CisgICAgdXNpbmcgVmFsdWVEaWN0aW9uYXJ5ID0gSGFzaE1hcDxTdHJpbmcs
IFZhbHVlUGF5bG9hZD47CisKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgY29uc3QgVmFsdWVEaWN0aW9uYXJ5JiwgU2hvdWxkU2FtcGxlKSA9IDA7CisK
ICAgICBzdGF0aWMgYm9vbCBzaG91bGRMb2dBZnRlclNhbXBsaW5nKFNob3VsZFNhbXBsZSk7CiAK
ICAgICB2aXJ0dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpID0gZGVmYXVsdDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI0NDE4MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYs
NiArNTYsNyBAQAogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJET01XaW5k
b3cuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpc2FibGVkQWRhcHRhdGlvbnMu
aCIKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC00
OTk4LDQgKzQ5OTksMjQgQEAgdm9pZCBJbnRlcm5hbHM6OnByb2Nlc3NEaWRSZXN1bWUoKQogICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnByb2Nlc3NEaWRS
ZXN1bWUoKTsKIH0KIAordm9pZCBJbnRlcm5hbHM6OnRlc3REaWN0aW9uYXJ5TG9nZ2luZygpCit7
CisgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3Vt
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkgZGljdGlvbmFyeTsKKyAgICBkaWN0aW9uYXJ5LnNl
dCgic3RyaW5nS2V5Il9zLCBTdHJpbmcoInN0cmluZ1ZhbHVlIikpOworICAgIGRpY3Rpb25hcnku
c2V0KCJ1aW50NjRLZXkiX3MsIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSk7
CisgICAgZGljdGlvbmFyeS5zZXQoImludDY0S2V5Il9zLCBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDY0X3Q+OjptaW4oKSk7CisgICAgZGljdGlvbmFyeS5zZXQoImJvb2xLZXkiX3MsIHRydWUpOwor
ICAgIGRpY3Rpb25hcnkuc2V0KCJkb3VibGVLZXkiX3MsIDIuNzE4MjgxODI4NDU5MDQ1MjM1MzYw
Mjg3NCk7CisKKyAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSgidGVzdE1lc3NhZ2UiX3MsICJ0ZXN0RGVzY3Jp
cHRpb24iX3MsIGRpY3Rpb25hcnksIFNob3VsZFNhbXBsZTo6Tm8pOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9u
IDI0NDE4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTgwOCw2ICs4MDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9jZXNzV2lsbFN1
c3BlbmQoKTsKICAgICB2b2lkIHByb2Nlc3NEaWRSZXN1bWUoKTsKIAorICAgIHZvaWQgdGVzdERp
Y3Rpb25hcnlMb2dnaW5nKCk7CisgICAgICAgIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRl
cm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNDQxODEp
CisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTc0Myw0ICs3NDMsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKIAogICAgIHZvaWQg
cHJvY2Vzc1dpbGxTdXNwZW5kKCk7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisKKyAg
ICB2b2lkIHRlc3REaWN0aW9uYXJ5TG9nZ2luZygpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDQ1IEBACisyMDE5LTA0LTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIERpYWdub3N0aWNMb2dnaW5nIG1ldGhvZCB0YWtpbmcgYW4gYXJi
aXRyYXJ5IGRpY3Rpb25hcnkgb2YgdmFsdWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBD
aHJpc3RlbnNlbi4KKworICAgICAgICBJbiBhZGRpdGlvbiB0byBhZGRpbmcgdGhlIG5ldyBsb2dn
aW5nIGRlbGVnYXRlIG1ldGhvZCAoYW5kIHBpcGluZyBldmVyeXRoaW5nIGludG8gaXQpLCAKKyAg
ICAgICAgYWRkIGEgbmV3IEFQSU9iamVjdCBjbGFzcyB0byByZXByZXNlbnQgYSBzaWduZWQgaW50
ZWdlci4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJTnVtYmVyLmg6CisgICAgICAgICogU2hh
cmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1t
OgorICAgICAgICAoQVBJOjpPYmplY3Q6Om5ld09iamVjdCk6CisgICAgICAgICogU2hhcmVkL0Nv
Y29hL1dLTlNOdW1iZXIubW06CisgICAgICAgICgtW1dLTlNOdW1iZXIgZGVhbGxvY10pOgorICAg
ICAgICAoLVtXS05TTnVtYmVyIG9iakNUeXBlXSk6CisgICAgICAgICgtW1dLTlNOdW1iZXIgZ2V0
VmFsdWU6XSk6CisgICAgICAgICgtW1dLTlNOdW1iZXIgbG9uZ0xvbmdWYWx1ZV0pOgorICAgICAg
ICAoLVtXS05TTnVtYmVyIF9hcGlPYmplY3RdKToKKyAgICAgICAgKiBTaGFyZWQvVXNlckRhdGEu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6VXNlckRhdGE6OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9E
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9EaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZURpY3Rpb25hcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZURpY3Rpb25hcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisKIDIwMTktMDQtMTAg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVkIHVuZGVybmVhdGggdGhlIHRhYiBiYXIg
d2hlbiBkZXRhY2hlZApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJEYXRhLmNwcAkocmV2aXNpb24g
MjQ0MTgxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMTAsNiArMzEwLDEwIEBAIHZvaWQgVXNlckRhdGE6OmVuY29kZShJUEM6OkVuY29k
ZXImIGVuY28KICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpVSW50NjQmPihvYmplY3Qp
LmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2JqZWN0
OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpJbnQ2NCY+KG9i
amVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgQVBJOjpP
YmplY3Q6OlR5cGU6OlVzZXJDb250ZW50VVJMUGF0dGVybjogewogICAgICAgICBhdXRvJiB1cmxQ
YXR0ZXJuID0gc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpVc2VyQ29udGVudFVSTFBhdHRlcm4mPihv
YmplY3QpOwogICAgICAgICBlbmNvZGVyIDw8IHVybFBhdHRlcm4ucGF0dGVyblN0cmluZygpOwpA
QCAtNTcyLDYgKzU3NiwxMSBAQCBib29sIFVzZXJEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2Fz
ZSBBUEk6Ok9iamVjdDo6VHlwZTo6SW50NjQ6CisgICAgICAgIGlmICghQVBJOjpJbnQ2NDo6ZGVj
b2RlKGRlY29kZXIsIHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGJyZWFrOworCiAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6VXNlckNvbnRlbnRVUkxQYXR0
ZXJuOiB7CiAgICAgICAgIFN0cmluZyBzdHJpbmc7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc3RyaW5nKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElOdW1iZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJTnVtYmVyLmgJKHJldmlz
aW9uIDI0NDE4MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElOdW1iZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogdHlwZWRlZiBOdW1iZXI8Ym9v
bCwgQVBJOjpPYmplY3Q6OlR5cGU6OkJvb2xlYW4+IEJvb2xlYW47CiB0eXBlZGVmIE51bWJlcjxk
b3VibGUsIEFQSTo6T2JqZWN0OjpUeXBlOjpEb3VibGU+IERvdWJsZTsKIHR5cGVkZWYgTnVtYmVy
PHVpbnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6VUludDY0PiBVSW50NjQ7Cit0eXBlZGVmIE51
bWJlcjxpbnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6SW50NjQ+IEludDY0OwogCiB9IC8vIG5h
bWVzcGFjZSBBUEkKIApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAkocmV2
aXNpb24gMjQ0MTgxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgQm9vbGVhbiwK
ICAgICAgICAgRG91YmxlLAogICAgICAgICBVSW50NjQsCisgICAgICAgIEludDY0LAogICAgICAg
ICAKICAgICAgICAgLy8gR2VvbWV0cnkgdHlwZXMKICAgICAgICAgUG9pbnQsCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCShyZXZpc2lvbiAyNDQxODEpCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0JKHdvcmtpbmcgY29weSkKQEAg
LTE2Myw2ICsxNjMsNyBAQCB2b2lkKiBPYmplY3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlw
CiAgICAgY2FzZSBUeXBlOjpCb29sZWFuOgogICAgIGNhc2UgVHlwZTo6RG91YmxlOgogICAgIGNh
c2UgVHlwZTo6VUludDY0OgorICAgIGNhc2UgVHlwZTo6SW50NjQ6CiAgICAgICAgIHdyYXBwZXIg
PSBbV0tOU051bWJlciBhbGxvY107CiAgICAgICAgICgoV0tOU051bWJlciAqKXdyYXBwZXIpLT5f
dHlwZSA9IHR5cGU7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvV0tOU051bWJlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XS05TTnVtYmVyLm1tCShyZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9XS05TTnVtYmVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6
OkJvb2xlYW4+IF9ib29sZWFuOwogICAgICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpEb3Vi
bGU+IF9kb3VibGU7CiAgICAgICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OlVJbnQ2ND4gX3Vp
bnQ2NDsKKyAgICAgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6SW50NjQ+IF9pbnQ2NDsKICAg
ICB9IF9udW1iZXI7CiB9CiAKQEAgLTUxLDYgKzUyLDEwIEBAIC0gKHZvaWQpZGVhbGxvYwogICAg
ICAgICBfbnVtYmVyLl91aW50NjQtPn5OdW1iZXI8dWludDY0X3QsIEFQSTo6T2JqZWN0OjpUeXBl
OjpVSW50NjQ+KCk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlw
ZTo6SW50NjQ6CisgICAgICAgIF9udW1iZXIuX2ludDY0LT5+TnVtYmVyPGludDY0X3QsIEFQSTo6
T2JqZWN0OjpUeXBlOjpJbnQ2ND4oKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC03NSw2ICs4MCwxMCBAQCAt
IChjb25zdCBjaGFyICopb2JqQ1R5cGUKICAgICAgICAgcmV0dXJuIEBlbmNvZGUodWludDY0X3Qp
OwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkludDY0Ogor
ICAgICAgICByZXR1cm4gQGVuY29kZShpbnQ2NF90KTsKKyAgICAgICAgYnJlYWs7CisKICAgICBk
ZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC05Nyw2ICsx
MDYsMTAgQEAgLSAodm9pZClnZXRWYWx1ZToodm9pZCAqKXZhbHVlCiAgICAgICAgICpyZWludGVy
cHJldF9jYXN0PHVpbnQ2NF90Kj4odmFsdWUpID0gX251bWJlci5fdWludDY0LT52YWx1ZSgpOwog
ICAgICAgICBicmVhazsKIAorICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkludDY0OgorICAg
ICAgICAqcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90Kj4odmFsdWUpID0gX251bWJlci5faW50NjQt
PnZhbHVlKCk7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMTI4LDYgKzE0MSwxNCBAQCAtICh1bnNpZ25lZCBs
b25nIGxvbmcpdW5zaWduZWRMb25nTG9uZ1ZhCiAgICAgcmV0dXJuIHN1cGVyLnVuc2lnbmVkTG9u
Z0xvbmdWYWx1ZTsKIH0KIAorLSAobG9uZyBsb25nKWxvbmdMb25nVmFsdWUKK3sKKyAgICBpZiAo
X3R5cGUgPT0gQVBJOjpPYmplY3Q6OlR5cGU6OkludDY0KQorICAgICAgICByZXR1cm4gX251bWJl
ci5faW50NjQtPnZhbHVlKCk7CisKKyAgICByZXR1cm4gc3VwZXIubG9uZ0xvbmdWYWx1ZTsKK30K
KwogLy8gTUFSSzogTlNDb3B5aW5nIHByb3RvY29sIGltcGxlbWVudGF0aW9uCiAKIC0gKGlkKWNv
cHlXaXRoWm9uZTooTlNab25lICopem9uZQpAQCAtMTUyLDYgKzE3MywxMCBAQCAtIChBUEk6Ok9i
amVjdCYpX2FwaU9iamVjdAogICAgICAgICByZXR1cm4gKl9udW1iZXIuX3VpbnQ2NDsKICAgICAg
ICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpJbnQ2NDoKKyAgICAgICAg
cmV0dXJuICpfbnVtYmVyLl9pbnQ2NDsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNDQx
ODEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1NCw2ICszNTQsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRSZWNlaXZlTWVzCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEFkZEl0ZW06Om5hbWUoKQogICAgICAg
ICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9n
RGlhZ25vc3RpY01lc3NhZ2U6Om5hbWUoKQogICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5o
YW5jZWRQcml2YWN5OjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGlj
dGlvbmFyeTo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzOjpuYW1lKCkK
ICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFN0YXJ0TG9hZEZvclF1aWNrTG9va0RvY3VtZW50
SW5NYWluRnJhbWU6Om5hbWUoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgJKHJldmlzaW9uIDI0NDE4
MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0
aWNMb2dnaW5nUmVzdWx0VHlwZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwogICAg
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KFdlYlBhZ2VQcm94
eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikgb3Zl
cnJpZGU7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnko
V2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uLCBSZWY8QVBJOjpEaWN0aW9uYXJ5PiYmKSBvdmVycmlk
ZSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NTI0LDYg
KzY1MjQsMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlVwogICAg
IGVmZmVjdGl2ZUNsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5
KHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6Omxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkmIHZhbHVlRGljdGlvbmFyeSwgV2ViQ29yZTo6
U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKK3sKKyAgICBhdXRvKiBlZmZlY3RpdmVDbGllbnQg
PSBlZmZlY3RpdmVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChzaG91bGRTYW1wbGUpOworICAgIGlm
ICghZWZmZWN0aXZlQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGFwaURpY3Rp
b25hcnkgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOworCisgICAgZm9yIChhdXRvJiBrZXlW
YWx1ZVBhaXIgOiB2YWx1ZURpY3Rpb25hcnkpIHsKKyAgICAgICAgYXBpRGljdGlvbmFyeS0+YWRk
KGtleVZhbHVlUGFpci5rZXksIFdURjo6c3dpdGNoT24oa2V5VmFsdWVQYWlyLnZhbHVlLAorICAg
ICAgICAgICAgW10oY29uc3QgU3RyaW5nJiB2YWx1ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4g
QVBJOjpTdHJpbmc6OmNyZWF0ZSh2YWx1ZSk7IH0sCisgICAgICAgICAgICBbXSh1aW50NjRfdCB2
YWx1ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4gQVBJOjpVSW50NjQ6OmNyZWF0ZSh2YWx1ZSk7
IH0sCisgICAgICAgICAgICBbXShpbnQ2NF90IHZhbHVlKSAtPiBSZWY8T2JqZWN0PiB7IHJldHVy
biBBUEk6OkludDY0OjpjcmVhdGUodmFsdWUpOyB9LAorICAgICAgICAgICAgW10oYm9vbCB2YWx1
ZSkgLT4gUmVmPE9iamVjdD4geyByZXR1cm4gQVBJOjpCb29sZWFuOjpjcmVhdGUodmFsdWUpOyB9
LAorICAgICAgICAgICAgW10oZG91YmxlIHZhbHVlKSAtPiBSZWY8T2JqZWN0PiB7IHJldHVybiBB
UEk6OkRvdWJsZTo6Y3JlYXRlKHZhbHVlKTsgfQorICAgICAgICApKTsKKyAgICB9CisKKyAgICBl
ZmZlY3RpdmVDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSh0
aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgV1RGTW92ZShhcGlEaWN0aW9uYXJ5KSk7Cit9CisK
IHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dTY3JvbGxpbmdFdmVudCh1aW50MzJfdCBldmVudFR5cGUs
IE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCB1aW50NjRfdCBkYXRhKQogewogICAgIFBlcmZvcm1h
bmNlTG9nZ2luZ0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQgZXZlbnQgPSBzdGF0aWNfY2FzdDxQZXJm
b3JtYW5jZUxvZ2dpbmdDbGllbnQ6OlNjcm9sbGluZ0V2ZW50PihldmVudFR5cGUpOwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDI0NDE4MSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudFRyYWNraW5n
UmVnaW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZXMuaD4KQEAgLTEzNDUs
NiArMTM0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVp
bnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMs
IFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhFbmhhbmNlZFByaXZhY3koY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ6OlZhbHVlRGljdGlvbmFyeSYsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAKICAgICAvLyBQ
ZXJmb3JtYW5jZSBsb2dnaW5nLgogICAgIHZvaWQgbG9nU2Nyb2xsaW5nRXZlbnQodWludDMyX3Qg
ZXZlbnRUeXBlLCBNb25vdG9uaWNUaW1lLCB1aW50NjRfdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDQx
ODEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTI0Miw2ICsyNDIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChTdHJpbmcgbWVzc2FnZSwg
U3RyaW5nIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIGVudW06Ym9vbCBXZWJDb3JlOjpT
aG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5z
aWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
IHNob3VsZFNhbXBsZSkKICAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZh
Y3koU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZW51bTpib29sIFdlYkNvcmU6
OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWVEaWN0aW9uYXJ5KFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkgdmFsdWUsIGVudW06
Ym9vbCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogCiAgICAgIyBQZXJmb3Jt
YW5jZSBsb2dnaW5nCiAgICAgTG9nU2Nyb2xsaW5nRXZlbnQodWludDMyX3QgZXZlbnRUeXBlLCBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgdWludDY0X3QgZGF0YSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCShyZXZpc2lvbiAyNDQxODEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsNyBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQVBJ
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnRfaAotI2RlZmluZSBBUElEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudF9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dp
bmdSZXN1bHRUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNSw2
ICszNCw4IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogbmFtZXNwYWNlIEFQSSB7CiAKK2NsYXNz
IERpY3Rpb25hcnk7CisKIGNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIHsgfQpAQCAtNDMsOSArNDQs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBXVEY6OlN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBXVEY6OlN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6U3RyaW5nJiB2YWx1
ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNl
ZFByaXZhY3koV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc2NyaXB0aW9uKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KFdlYktpdDo6V2ViUGFn
ZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBk
ZXNjcmlwdGlvbiwgUmVmPEFQSTo6RGljdGlvbmFyeT4mJikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgQVBJCi0KLSNlbmRpZiAvLyBBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudF9oCi0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaAkocmV2aXNpb24gMjQ0MTgxKQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVs
ZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNSArNDAsNiBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBfV0tEaWFnbm9zdGljCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDooTlNTdHJpbmcgKiltZXNzYWdl
IGRlc2NyaXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIHJlc3VsdDooX1dLRGlhZ25vc3Rp
Y0xvZ2dpbmdSZXN1bHRUeXBlKXJlc3VsdDsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWU6KE5TU3RyaW5nICopbWVzc2Fn
ZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiB2YWx1ZTooTlNTdHJpbmcgKikg
dmFsdWU7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0
aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBsb2dE
aWFnbm9zdGljTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0aW9uOihOU1N0cmlu
ZyAqKWRlc2NyaXB0aW9uIHZhbHVlRGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopdmFsdWVEaWN0
aW9uYXJ5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAkocmV2aXNpb24gMjQ0MTgxKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdS
ZXN1bHRUeXBlKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3koV2ViUGFnZVByb3h5KiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShXZWJQYWdlUHJv
eHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFJl
ZjxBUEk6OkRpY3Rpb25hcnk+JiYpIG92ZXJyaWRlOwogCiAgICAgV0tXZWJWaWV3ICptX3dlYlZp
ZXc7CiAgICAgV2Vha09iakNQdHI8aWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+PiBt
X2RlbGVnYXRlOwpAQCAtNjAsNiArNjEsNyBAQCBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCB3
ZWJ2aWV3TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0IDogMTsKICAgICAgICAgdW5zaWdu
ZWQgd2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlIDogMTsKICAgICAgICAgdW5z
aWduZWQgd2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeSA6IDE7
CisgICAgICAgIHVuc2lnbmVkIHdlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURp
Y3Rpb25hcnkgOiAxOwogICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiB9OwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5tbQkocmV2aXNpb24gMjQ0MTgxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCIKIAorI2ltcG9ydCAiQVBJRGljdGlvbmFyeS5oIgogI2ltcG9ydCAiV0tTaGFyZWRB
UElDYXN0LmgiCiAjaW1wb3J0ICJfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgiCiAKQEAg
LTQ5LDYgKzUwLDcgQEAgdm9pZCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6c2V0RGVsZWdhdAog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1
bHQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQ6ZGVzY3JpcHRpb246cmVzdWx0OildOwogICAgIG1f
ZGVsZWdhdGVNZXRob2RzLndlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlOmRlc2NyaXB0aW9uOnZhbHVlOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYnZpZXdMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3kgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6ZGVzY3JpcHRpb246KV07CisgICAgbV9kZWxl
Z2F0ZU1ldGhvZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFy
eSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlOmRlc2NyaXB0aW9uOnZhbHVlRGljdGlvbmFyeTopXTsKIH0KIAogdm9p
ZCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViS2l0OjpX
ZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJp
bmcmIGRlc2NyaXB0aW9uKQpAQCAtODcsNCArODksMTEgQEAgdm9pZCBEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6bG9nRGlhZ25vcwogICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlldzpt
X3dlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5Om1lc3NhZ2Ug
ZGVzY3JpcHRpb246ZGVzY3JpcHRpb25dOwogfQogCit2b2lkIERpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rpb25hcnkoV2ViUGFnZVByb3h5
KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBSZWY8
QVBJOjpEaWN0aW9uYXJ5PiYmIHZhbHVlRGljdGlvbmFyeSkKK3sKKyAgICBpZiAobV9kZWxlZ2F0
ZU1ldGhvZHMud2Vidmlld0xvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeSkK
KyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXc6bV93ZWJWaWV3IGxvZ0RpYWdub3N0
aWNNZXNzYWdlOm1lc3NhZ2UgZGVzY3JpcHRpb246ZGVzY3JpcHRpb24gdmFsdWVEaWN0aW9uYXJ5
OnN0YXRpY19jYXN0PE5TRGljdGlvbmFyeSo+KHZhbHVlRGljdGlvbmFyeS0+d3JhcHBlcigpKV07
Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5jcHAJKHJldmlzaW9uIDI0NDE4MSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDQgKzgzLDE0IEBAIHZvaWQgV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ6OmxvZ0RpYWcKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3kobWVzc2FnZSwgZGVz
Y3JpcHRpb24sIFNob3VsZFNhbXBsZTo6Tm8pKTsKIH0KIAordm9pZCBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgVmFsdWVE
aWN0aW9uYXJ5JiB2YWx1ZSwgU2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKK3sKKyAgICBBU1NF
UlQoIW1fcGFnZS5jb3JlUGFnZSgpIHx8IG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRp
YWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKTsKKworICAgIGlmICghc2hvdWxkTG9nQWZ0ZXJTYW1w
bGluZyhzaG91bGRTYW1wbGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2Uuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rp
b25hcnkobWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlLCBTaG91bGRTYW1wbGU6Ok5vKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmgJKHJldmlzaW9uIDI0NDE4MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUsIFdlYkNvcmU6
OlNob3VsZFNhbXBsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpTaG91
bGRTYW1wbGUpIG92ZXJyaWRlOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5o
YW5jZWRQcml2YWN5KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFZhbHVlRGljdGlvbmFyeSYsIFdlYkNvcmU6
OlNob3VsZFNhbXBsZSkgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlJiBtX3BhZ2U7CiB9OwpJbmRl
eDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjQ0MzAxKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTktMDQtMTUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KKworICAgICAgICBBZGQgYSBEaWFnbm9zdGljTG9nZ2luZyBtZXRob2QgdGFraW5nIGFu
IGFyYml0cmFyeSBkaWN0aW9uYXJ5IG9mIHZhbHVlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Njc3MworCisgICAgICAgIFJldmlld2VkIGJ5IEpl
ciBOb2JsZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tX
ZWJWaWV3RGlhZ25vc3RpY0xvZ2dpbmcubW06CisgICAgICAgICgtW1Rlc3RMb2dnaW5nRGVsZWdh
dGUgX3dlYlZpZXc6bG9nRGlhZ25vc3RpY01lc3NhZ2U6ZGVzY3JpcHRpb246dmFsdWVEaWN0aW9u
YXJ5Ol0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTktMDQtMTUgIEJyZW50IEZ1bGdoYW0gIDxi
ZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5qZWN0ZWRCdW5kbGUgcGFyYW1ldGVycyBv
ZnRlbiBuZWVkIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGNhbGxlZCBiZWZvcmUgdW5hcmNoaXZp
bmcKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3
RGlhZ25vc3RpY0xvZ2dpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEaWFnbm9zdGljTG9nZ2luZy5tbQkocmV2aXNpb24g
MjQ0MTgxKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZp
ZXdEaWFnbm9zdGljTG9nZ2luZy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTQgKzI4LDMwIEBA
CiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9y
dCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJh
dGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0Rp
YWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAor
c3RhdGljIGJvb2wgaXNEb25lOworCiBAaW50ZXJmYWNlIFRlc3RMb2dnaW5nRGVsZWdhdGUgOiBO
U09iamVjdCA8X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4KIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFRlc3RMb2dnaW5nRGVsZWdhdGUKKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2Ny
aXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIHZhbHVlRGljdGlvbmFyeTooTlNEaWN0aW9u
YXJ5ICopdmFsdWVEaWN0aW9uYXJ5Cit7CisgICAgRVhQRUNUX1RSVUUoW1t2YWx1ZURpY3Rpb25h
cnkgb2JqZWN0Rm9yS2V5OkAic3RyaW5nS2V5Il0gaXNFcXVhbFRvU3RyaW5nOkAic3RyaW5nVmFs
dWUiXSk7CisgICAgRVhQRUNUX1RSVUUoW1t2YWx1ZURpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OkAi
dWludDY0S2V5Il0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXSA9PSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQ2NF90Pjo6bWF4KCkpOworICAgIEVYUEVDVF9UUlVFKFtbdmFsdWVEaWN0aW9uYXJ5IG9i
amVjdEZvcktleTpAImludDY0S2V5Il0gbG9uZ0xvbmdWYWx1ZV0gPT0gc3RkOjpudW1lcmljX2xp
bWl0czxpbnQ2NF90Pjo6bWluKCkpOworICAgIEVYUEVDVF9UUlVFKFtbdmFsdWVEaWN0aW9uYXJ5
IG9iamVjdEZvcktleTpAImJvb2xLZXkiXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfVFJVRShb
W3ZhbHVlRGljdGlvbmFyeSBvYmplY3RGb3JLZXk6QCJkb3VibGVLZXkiXSBkb3VibGVWYWx1ZV0g
PT0gMi43MTgyODE4Mjg0NTkwNDUyMzUzNjAyODc0KTsKKworICAgIGlzRG9uZSA9IHRydWU7Cit9
CisKIEBlbmQKIAogVEVTVChXS1dlYlZpZXcsIFByaXZhdGVTZXNzaW9uRGlhZ25vc3RpY0xvZ2dp
bmdEZWxlZ2F0ZSkKQEAgLTY5LDMgKzg1LDEzIEBAIFRFU1QoV0tXZWJWaWV3LCBEaWFnbm9zdGlj
TG9nZ2luZ0RlbGVnYXQKICAgICBFWFBFQ1RfRVEobmlsLCB3ZWJWaWV3LmdldCgpLl9kaWFnbm9z
dGljTG9nZ2luZ0RlbGVnYXRlKTsKIH0KIAorVEVTVChXS1dlYlZpZXcsIERpYWdub3N0aWNMb2dn
aW5nRGljdGlvbmFyeSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyJdXSk7CisgICAgYXV0byB0ZXN0TG9nZ2lu
Z0RlbGVnYXRlID0gYWRvcHROUyhbVGVzdExvZ2dpbmdEZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2Vi
VmlldyBfc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTp0ZXN0TG9nZ2luZ0RlbGVnYXRlLmdl
dCgpXTsKKyAgICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy5fZGlhZ25vc3Rp
Y0xvZ2dpbmdFbmFibGVkID0gWUVTOworCisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8
c2NyaXB0PndpbmRvdy5pbnRlcm5hbHMudGVzdERpY3Rpb25hcnlMb2dnaW5nKCk8L3NjcmlwdD4i
IGJhc2VVUkw6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9
Cg==
</data>
<flag name="review"
          id="383836"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
      

    </bug>

</bugzilla>