<?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>156956</bug_id>
          
          <creation_ts>2016-04-23 17:39:24 -0700</creation_ts>
          <short_desc>Fix issues found by the clang static analyzer</short_desc>
          <delta_ts>2017-06-16 19:13:51 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=156957</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1186686</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-04-23 17:39:24 -0700</bug_when>
    <thetext>Fix issues found by the clang static analyzer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186687</commentid>
    <comment_count>1</comment_count>
      <attachid>277172</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-04-23 18:01:30 -0700</bug_when>
    <thetext>Created attachment 277172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186689</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-23 18:04:04 -0700</bug_when>
    <thetext>Attachment 277172 did not pass style-queue:


ERROR: Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:463:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:463:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 19 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>1186691</commentid>
    <comment_count>3</comment_count>
      <attachid>277172</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-04-23 18:27:41 -0700</bug_when>
    <thetext>Comment on attachment 277172
Patch

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

Fun.

&gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:466
&gt;  - (NSURLResponse *)response
&gt;  {
&gt; -    return _response.get();
&gt; +    @synchronized (self) {
&gt; +        return _response.get();
&gt; +    }
&gt;  }

I don&apos;t understand what good this is. The member variable should be aligned, so reading it is always atomic, no synchronization needed.

&gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:509
&gt; +- (void)dealloc
&gt; +{
&gt; +    [_originalRequest release];
&gt; +    [_currentRequest release];
&gt; +    [_error release];
&gt; +    [_taskDescription release];
&gt; +    [super dealloc];
&gt; +}

I know that Alex ran NSURLSession code through leaks, surprised that this wasn&apos;t found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186693</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-04-23 18:34:16 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 277172 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:463: 
&gt; Place brace on its own line for function definitions.  [whitespace/braces]
&gt; [4]
&gt; ERROR: Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:463: 
&gt; Extra space before ( in function call  [whitespace/parens] [4]
&gt; Total errors found: 2 in 19 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.

Filed https://bugs.webkit.org/show_bug.cgi?id=156957</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186694</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-04-23 18:36:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 277172 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=277172&amp;action=review
&gt; 
&gt; Fun.
&gt; 
&gt; &gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:466
&gt; &gt;  - (NSURLResponse *)response
&gt; &gt;  {
&gt; &gt; -    return _response.get();
&gt; &gt; +    @synchronized (self) {
&gt; &gt; +        return _response.get();
&gt; &gt; +    }
&gt; &gt;  }
&gt; 
&gt; I don&apos;t understand what good this is. The member variable should be aligned,
&gt; so reading it is always atomic, no synchronization needed.

Perhaps you&apos;re right. I didn&apos;t think too much about this. I&apos;ll remove it.

&gt; 
&gt; &gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:509
&gt; &gt; +- (void)dealloc
&gt; &gt; +{
&gt; &gt; +    [_originalRequest release];
&gt; &gt; +    [_currentRequest release];
&gt; &gt; +    [_error release];
&gt; &gt; +    [_taskDescription release];
&gt; &gt; +    [super dealloc];
&gt; &gt; +}
&gt; 
&gt; I know that Alex ran NSURLSession code through leaks, surprised that this
&gt; wasn&apos;t found.

I think this is code added by Jer for AVFoundation loading, perhaps written after Alex did his check.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186695</commentid>
    <comment_count>6</comment_count>
      <attachid>277174</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-04-23 18:43:57 -0700</bug_when>
    <thetext>Created attachment 277174
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186696</commentid>
    <comment_count>7</comment_count>
      <attachid>277175</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-04-23 18:47:17 -0700</bug_when>
    <thetext>Created attachment 277175
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186705</commentid>
    <comment_count>8</comment_count>
      <attachid>277175</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-23 19:49:27 -0700</bug_when>
    <thetext>Comment on attachment 277175
patch for landing

Clearing flags on attachment: 277175

Committed r199960: &lt;http://trac.webkit.org/changeset/199960&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320298</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-16 19:13:51 -0700</bug_when>
    <thetext>Nice changes!

Closing this bug as it landed a while ago.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277172</attachid>
            <date>2016-04-23 18:01:30 -0700</date>
            <delta_ts>2016-04-23 18:44:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156956-20160423180155.patch</filename>
            <type>text/plain</type>
            <size>26159</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI2MDkzNTQyM2Q2YzI3
YmQyYmVlMzA0OTZiMjJkZTYzN2E4OTBiOC4uOGNmNWY0MmNiZjJjNDJiYmY3ZjE4Njk4YWYwYWU3
ZWUwMGNmMzkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE2LTA0LTIzICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggaXNzdWVzIGZvdW5kIGJ5
IHRoZSBjbGFuZyBzdGF0aWMgYW5hbHl6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1Njk1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UpOiBTdG9y
ZWQgdHogaW4gYSBSZXRhaW5QdHIuCisgICAgICAgICogcGxhdGZvcm0vY2YvS2V5ZWREZWNvZGVy
Q0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZWREZWNvZGVyQ0Y6OktleWVkRGVjb2RlckNG
KTogSWYgZHluYW1pY19jZl9jYXN0IHJldHVybmVkIG51bGxwdHIsIHRoZSByZXN1bHQgb2YKKyAg
ICAgICAgQ0ZQcm9wZXJ0eUxpc3RDcmVhdGVXaXRoRGF0YSB3b3VsZCBsZWFrLiBTdG9yZWQgdGhl
IENGUHJvcGVydHlMaXN0UmVmIGluIGEgUmV0YWluUHRyLCB0aGVuIGxlYWtlZC9hZG9wdGVkIGl0
CisgICAgICAgIGludG8gbV9yb290RGljdGlvbmFyeSAodG8gYXZvaWQgcmV0YWluIGNvdW50IGNo
dXJuKSBpZiBpdCBpcyBhIENGRGljdGlvbmFyeS4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2Vi
QVZQbGF5ZXJDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIg
ZGVhbGxvY10pOiBSZWxlYXNlZCBfZXh0ZXJuYWxQbGF5YmFja0FpclBsYXlEZXZpY2VMb2NhbGl6
ZWROYW1lLgorICAgICAgICAoLVtXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uIGRlYWxsb2NdKTog
QWRkZWQgdG8gcmVsZWFzZSBfbG9jYWxpemVkRGlzcGxheU5hbWUuCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtX
ZWJBVlBsYXllckxheWVyIGRlYWxsb2NdKTogUmVsZWFzZWQgX3BpeGVsQnVmZmVyQXR0cmlidXRl
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24u
aDogUmVtb3ZlZCB0aGUgcmVhZHdyaXRlIGF0dHJpYnV0ZXMgZnJvbSBwcm9wZXJ0aWVzLCBzaW5j
ZQorICAgICAgICBwcm9wZXJ0aWVzIGFyZSByZWFkd3JpdGUgYnkgZGVmYXVsdC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW06CisgICAgICAg
ICgtW1dlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzayByZXNwb25zZV0pOiBNYWRlIHN5bmNocm9u
aXplZCBzaW5jZSB0aGUgcmVzcG9uc2UgcHJvcGVydHkgaXMgYXRvbWljLgorICAgICAgICAoLVtX
ZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2sgZGVhbGxvY10pOiBBZGRlZCB0byByZWxlYXNlIGNv
cGllZCBpdmFycy4KKwogMjAxNi0wNC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIENhbm5vdCBhY2Nlc3MgdGhlIFNRTFRyYW5zYWN0aW9uLmNvbnN0cnVjdG9y
LnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDMzMjE1Y2FmZGMxNzczMWVlMTc0MzBmZTNj
OWZhYWVmZTU4YmEzYzQuLjI2MzM2ZDQ1NTk4YWViZTFkZGZjNTdhMDhmNWE0MWQ3NmY3ZmY0NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wNC0yMyAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGlzc3VlcyBmb3VuZCBieSB0aGUg
Y2xhbmcgc3RhdGljIGFuYWx5emVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTY5NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2su
bW06CisgICAgICAgICgtW1dlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrIGRlYWxsb2Nd
KTogW3N1cGVyIGRlYWxsb2NdIHNob3VsZCBiZSBjYWxsZWQgbGFzdC4KKwogMjAxNi0wNC0yMSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhl
IGlPUyBidWlsZDogV0FLVmlldyBtYXkgbm90IHJlc3BvbmQgdG8gZHJhd0xheWVyOmluQ29udGV4
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCBjYzYyZjAyODdiNGIxNGQ1YjE2MGJlYWFjNjFmMzAyZjAzZmJlMWY0
Li4yMDViZmYwOTBiOGZkOWQ0ZGMyZWM4ZTEzMzcxMDBlNGFiMjUzMTFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzggQEAKKzIwMTYtMDQtMjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIEZpeCBpc3N1ZXMgZm91bmQgYnkgdGhlIGNsYW5nIHN0YXRpYyBhbmFseXpl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTU2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0ubW06CisgICAgICAgICgtW1dLUHJl
dmlld0FjdGlvbiBkZWFsbG9jXSk6IEFkZGVkIHRvIHJlbGVhc2UgX2lkZW50aWZpZXIuCisgICAg
ICAgICogVUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbToKKyAgICAgICAgKC1b
X1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIGRlYWxsb2NdKTogUmVsZWFzZWQgX2ZyYW1lVG9Qcmlu
dC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbnB1dFZpZXddKTogLWNyZWF0ZVBlcmlwaGVyYWxX
aXRoVmlldzogcmV0dXJuZWQgYSByZXRhaW5lZCBvYmplY3QsIGJ1dCB0aGUgbWV0aG9kIG5hbWUg
ZGlkIG5vdAorICAgICAgICBtYXRjaCBDb2NvYSBjb252ZW50aW9ucy4gQ2FsbGVkIC1pbml0V2l0
aFZpZXc6IGluc3RlYWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Nob3dBdHRhY2htZW50
U2hlZXRdKTogU3RvcmVkIHRoZSBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBpbiBhIFJldGFpblB0
ci4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGF0YUZvclByZXZpZXdJdGVtQ29udHJvbGxl
cjphdFBvc2l0aW9uOnR5cGU6XSk6IERpdHRvLgorICAgICAgICAoK1tXS0F1dG9jb3JyZWN0aW9u
Q29udGV4dCBhdXRvY29ycmVjdGlvbkNvbnRleHRXaXRoRGF0YTptYXJrZWRUZXh0OnNlbGVjdGVk
VGV4dDphZnRlclRleHQ6c2VsZWN0ZWRSYW5nZUluTWFya2VkVGV4dDpdKToKKyAgICAgICAgVGhl
IHByb3BlcnRpZXMgY29udGV4dEJlZm9yZVNlbGVjdGlvbiwgc2VsZWN0ZWRUZXh0LCBtYXJrZWRU
ZXh0LCBhbmQgY29udGV4dEFmdGVyU2VsZWN0aW9uIGhhdmUgdGhlICdjb3B5JworICAgICAgICBh
bm5vdGF0aW9uIGluIFVJV0tBdXRvY29ycmVjdGlvbkNvbnRleHQsIHNvIHRoZSBhZGRpdGlvbmFs
IGNvcHkgbWFkZSBoZXJlIHdvdWxkIGJlIGxlYWtlZC4gUmVtb3ZlZCB0aGUgZXh0cmEgY29weS4K
KyAgICAgICAgKC1bV0tBdXRvY29ycmVjdGlvbkNvbnRleHQgZGVhbGxvY10pOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLmg6IFJlbW92
ZWQgLWNyZWF0ZVBlcmlwaGVyYWxXaXRoVmlldzogYW5kIGRlY2xhcmVkIC1pbml0V2l0aFZpZXc6
LgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tOgor
ICAgICAgICAoLVtXS0Zvcm1JbnB1dENvbnRyb2wgaW5pdFdpdGhWaWV3Ol0pOiBDaGFuZ2VkIHRv
IHJldHVybiBpbnN0YW5jZXR5cGUuCisgICAgICAgICgrW1dLRm9ybUlucHV0Q29udHJvbCBjcmVh
dGVQZXJpcGhlcmFsV2l0aFZpZXc6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9mb3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLmg6IFJlbW92ZWQgLWNyZWF0ZVBlcmlwaGVyYWxX
aXRoVmlldzogYW5kIGRlY2xhcmVkIC1pbml0V2l0aFZpZXc6LgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0Q29udHJvbC5tbToKKyAgICAgICAgKCtbV0tGb3JtU2Vs
ZWN0Q29udHJvbCBjcmVhdGVQZXJpcGhlcmFsV2l0aFZpZXc6XSk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwOgorICAgICAgICAo
V2ViS2l0OjpkZWNvZGVMZWdhY3lTZXNzaW9uU3RhdGUpOiBJZiBkeW5hbWljX2NmX2Nhc3QgcmV0
dXJuZWQgbnVsbHB0ciwgdGhlIHJlc3VsdCBvZgorICAgICAgICBDRlByb3BlcnR5TGlzdENyZWF0
ZVdpdGhEYXRhIHdvdWxkIGxlYWsuIFN0b3JlZCB0aGUgQ0ZQcm9wZXJ0eUxpc3RSZWYgaW4gYSBS
ZXRhaW5QdHIgYmVmb3JlIGNhbGxpbmcgZHluYW1pY19jZl9jYXN0LgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvU2VydmljZXNDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNl
c0NvbnRyb2xsZXI6OnJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzKTogVXNlZCBhIFJldGFpblB0ciBm
b3IgYXR0YWNobWVudCBhbmQgY2VsbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRl
eHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlN
YWM6OnNldHVwU2VydmljZXNNZW51KTogVXNlZCBhIFJldGFpblB0ciBmb3IgZ3JvdXBFbnRyeS4K
KwogMjAxNi0wNC0yMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGaXhpbmcgYSB0eXBvIGluIG15IGxhc3QgY29tbWl0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCmluZGV4IGQyZWNhYmYyMGVhYzg2MGRlNWRj
ODMzYmVlMWU1MWJlYTkyYjI3YTQuLjdjMjQ2NGFiOTQ2ZTE3MjkyM2I3NDg1OGU0ZGE5ZTM4NTk4
MzliMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW0KQEAgLTU1MCw3ICs1NTAsNyBAQCBOU0FycmF5ICpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250
ZW50SW5SYW5nZShSZWZQdHI8UmFuZ2U+JiBjb250ZXh0UmFuZ2UsIERhdGFEZQogICAgICAgICBh
bGxSZXN1bHRSYW5nZXMuYXBwZW5kKFdURk1vdmUoZnJhZ21lbnRSYW5nZXMpKTsKICAgICB9CiAg
ICAgCi0gICAgQ0ZUaW1lWm9uZVJlZiB0eiA9IENGVGltZVpvbmVDb3B5RGVmYXVsdCgpOworICAg
IGF1dG8gdHogPSBhZG9wdENGKENGVGltZVpvbmVDb3B5RGVmYXVsdCgpKTsKICAgICBOU0RhdGUg
KnJlZmVyZW5jZURhdGUgPSBbTlNEYXRlIGRhdGVdOwogICAgIFRleHQqIGxhc3RUZXh0Tm9kZVRv
VXBkYXRlID0gbnVsbHB0cjsKICAgICBTdHJpbmcgbGFzdE5vZGVDb250ZW50OwpAQCAtNTgyLDcg
KzU4Miw3IEBAIE5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKFJl
ZlB0cjxSYW5nZT4mIGNvbnRleHRSYW5nZSwgRGF0YURlCiAgICAgICAgICAgICByYW5nZUJvdW5k
YXJpZXMudW5jaGVja2VkQXBwZW5kKHsgcmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgcmFuZ2UtPmVu
ZFBvc2l0aW9uKCkgfSk7CiAKICAgICAgICAgTlNTdHJpbmcgKmlkZW50aWZpZXIgPSBkYXRhRGV0
ZWN0b3JTdHJpbmdGb3JQYXRoKGluZGV4UGF0aHNbcmVzdWx0SW5kZXhdLmdldCgpKTsKLSAgICAg
ICAgTlNTdHJpbmcgKmNvcnJlc3BvbmRpbmdVUkwgPSBjb25zdHJ1Y3RVUkxTdHJpbmdGb3JSZXN1
bHQoY29yZVJlc3VsdCwgaWRlbnRpZmllciwgcmVmZXJlbmNlRGF0ZSwgKE5TVGltZVpvbmUgKil0
eiwgdHlwZXMpOworICAgICAgICBOU1N0cmluZyAqY29ycmVzcG9uZGluZ1VSTCA9IGNvbnN0cnVj
dFVSTFN0cmluZ0ZvclJlc3VsdChjb3JlUmVzdWx0LCBpZGVudGlmaWVyLCByZWZlcmVuY2VEYXRl
LCAoTlNUaW1lWm9uZSAqKXR6LmdldCgpLCB0eXBlcyk7CiAgICAgICAgIGJvb2wgZGlkTW9kaWZ5
RE9NID0gZmFsc2U7CiAKICAgICAgICAgaWYgKCFjb3JyZXNwb25kaW5nVVJMIHx8IHNlYXJjaEZv
ckxpbmtSZW1vdmluZ0V4aXN0aW5nRERMaW5rcyhyZXN1bHRSYW5nZXMuZmlyc3QoKS0+c3RhcnRD
b250YWluZXIoKSwgcmVzdWx0UmFuZ2VzLmxhc3QoKS0+ZW5kQ29udGFpbmVyKCksIGRpZE1vZGlm
eURPTSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LZXllZERlY29k
ZXJDRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LZXllZERlY29kZXJDRi5jcHAK
aW5kZXggODEwMzgzOGE3NjYwNWY2ZDA3NWY3N2EwNTlhYTAwYzQ0ZWM3MzY4NC4uMDU2OTAzMWU1
MTRmNzkwYTE4YTk5Mjk0MDE3ZTMyZWUwOGM0MDQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2YvS2V5ZWREZWNvZGVyQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NmL0tleWVkRGVjb2RlckNGLmNwcApAQCAtMzksOSArMzksMTAgQEAgc3RkOjp1bmlx
dWVfcHRyPEtleWVkRGVjb2Rlcj4gS2V5ZWREZWNvZGVyOjpkZWNvZGVyKGNvbnN0IHVpbnQ4X3Qq
IGRhdGEsIHNpemVfdAogS2V5ZWREZWNvZGVyQ0Y6OktleWVkRGVjb2RlckNGKGNvbnN0IHVpbnQ4
X3QqIGRhdGEsIHNpemVfdCBzaXplKQogewogICAgIGF1dG8gY2ZEYXRhID0gYWRvcHRDRihDRkRh
dGFDcmVhdGVXaXRoQnl0ZXNOb0NvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YSwgc2l6ZSwg
a0NGQWxsb2NhdG9yTnVsbCkpOworICAgIGF1dG8gY2ZQcm9wZXJ0eUxpc3QgPSBhZG9wdENGKENG
UHJvcGVydHlMaXN0Q3JlYXRlV2l0aERhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY2ZEYXRhLmdl
dCgpLCBrQ0ZQcm9wZXJ0eUxpc3RJbW11dGFibGUsIG51bGxwdHIsIG51bGxwdHIpKTsKIAotICAg
IGlmIChhdXRvIHJvb3REaWN0aW9uYXJ5ID0gYWRvcHRDRihkeW5hbWljX2NmX2Nhc3Q8Q0ZEaWN0
aW9uYXJ5UmVmPihDRlByb3BlcnR5TGlzdENyZWF0ZVdpdGhEYXRhKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGNmRGF0YS5nZXQoKSwga0NGUHJvcGVydHlMaXN0SW1tdXRhYmxlLCBudWxscHRyLCBudWxs
cHRyKSkpKQotICAgICAgICBtX3Jvb3REaWN0aW9uYXJ5ID0gV1RGTW92ZShyb290RGljdGlvbmFy
eSk7CisgICAgaWYgKGR5bmFtaWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KGNmUHJvcGVydHlM
aXN0LmdldCgpKSkKKyAgICAgICAgbV9yb290RGljdGlvbmFyeSA9IGFkb3B0Q0Yoc3RhdGljX2Nh
c3Q8Q0ZEaWN0aW9uYXJ5UmVmPihjZlByb3BlcnR5TGlzdC5sZWFrUmVmKCkpKTsKICAgICBlbHNl
CiAgICAgICAgIG1fcm9vdERpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBudWxscHRyLCAwLCAma0NGVHlwZURpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAg
bV9kaWN0aW9uYXJ5U3RhY2suYXBwZW5kKG1fcm9vdERpY3Rpb25hcnkuZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW0K
aW5kZXggYmZhNzdmYmE3ZGI0ZTJiYmY1MDEzNzlmZjBlOGMyNDU0ODVhZTdlYy4uMjU2OTMxNzAz
MGUxYzFjN2ZkYTk2MWRiNTRmODMyYzhhYzBmZGU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLm1tCkBAIC03MSw2ICs3MSw3
IEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtfbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyBy
ZWxlYXNlXTsKICAgICBbX2N1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uIHJlbGVhc2Vd
OwogICAgIFtfY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbiByZWxlYXNlXTsKKyAg
ICBbX2V4dGVybmFsUGxheWJhY2tBaXJQbGF5RGV2aWNlTG9jYWxpemVkTmFtZSByZWxlYXNlXTsK
ICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKQEAgLTQ1Myw2ICs0NTQsMTMgQEAgLSAodm9pZClz
ZXRQaWN0dXJlSW5QaWN0dXJlSW50ZXJydXB0ZWQ6KEJPT0wpcGljdHVyZUluUGljdHVyZUludGVy
cnVwdGVkCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9u
CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtfbG9jYWxpemVkRGlzcGxheU5hbWUgcmVsZWFz
ZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZjNhYTgwMzViMzJmMTMz
MGJiZDUyZWRkNDU2MmViZWI1Yzg1ODM4NC4uMGExNjA2MmMxOTQ3MTAzNWIwNTNhNWE1ZWYzZDE4
ZjYwNzQ5YzY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtMjM0LDYgKzIz
NCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbTlNP
YmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOworICAgIFtfcGl4ZWxCdWZm
ZXJBdHRyaWJ1dGVzIHJlbGVhc2VdOwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVO
U1VSTFNlc3Npb24uaAppbmRleCA5ZWJhMTIwYTY5YzcwMTcwZWI5Mjk1NTlkYjgwZTNmMTIyOWZl
OTgzLi41NGJjMTM5Y2YwNGU3ZGZmNGFmMGEzOTMyOTYzNjViY2IxYTdiYjU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVO
U1VSTFNlc3Npb24uaApAQCAtMTE5LDE2ICsxMTksMTcgQEAgV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBXZWJDb3JlTlNVUkxTZXNzaW9uIDogTlNPYmplY3QgewogICAgIE5TU3RyaW5nICpfdGFz
a0Rlc2NyaXB0aW9uOwogICAgIGZsb2F0IF9wcmlvcml0eTsKIH0KLUBwcm9wZXJ0eSAocmVhZHdy
aXRlKSBOU1VJbnRlZ2VyIHRhc2tJZGVudGlmaWVyOwotQHByb3BlcnR5IChyZWFkd3JpdGUsIGNv
cHkpIE5TVVJMUmVxdWVzdCAqb3JpZ2luYWxSZXF1ZXN0OwotQHByb3BlcnR5IChyZWFkd3JpdGUs
IGNvcHkpIE5TVVJMUmVxdWVzdCAqY3VycmVudFJlcXVlc3Q7CisKK0Bwcm9wZXJ0eSBOU1VJbnRl
Z2VyIHRhc2tJZGVudGlmaWVyOworQHByb3BlcnR5IChjb3B5KSBOU1VSTFJlcXVlc3QgKm9yaWdp
bmFsUmVxdWVzdDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNVUkxSZXF1ZXN0ICpjdXJyZW50UmVxdWVz
dDsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlOwot
QHByb3BlcnR5IChyZWFkd3JpdGUpIGludDY0X3QgY291bnRPZkJ5dGVzUmVjZWl2ZWQ7Ci1AcHJv
cGVydHkgKHJlYWR3cml0ZSkgaW50NjRfdCBjb3VudE9mQnl0ZXNTZW50OwotQHByb3BlcnR5IChy
ZWFkd3JpdGUpIGludDY0X3QgY291bnRPZkJ5dGVzRXhwZWN0ZWRUb1NlbmQ7Ci1AcHJvcGVydHkg
KHJlYWR3cml0ZSkgaW50NjRfdCBjb3VudE9mQnl0ZXNFeHBlY3RlZFRvUmVjZWl2ZTsKLUBwcm9w
ZXJ0eSAocmVhZHdyaXRlKSBOU1VSTFNlc3Npb25UYXNrU3RhdGUgc3RhdGU7Ci1AcHJvcGVydHkg
KHJlYWR3cml0ZSwgY29weSkgTlNFcnJvciAqZXJyb3I7CitAcHJvcGVydHkgaW50NjRfdCBjb3Vu
dE9mQnl0ZXNSZWNlaXZlZDsKK0Bwcm9wZXJ0eSBpbnQ2NF90IGNvdW50T2ZCeXRlc1NlbnQ7CitA
cHJvcGVydHkgaW50NjRfdCBjb3VudE9mQnl0ZXNFeHBlY3RlZFRvU2VuZDsKK0Bwcm9wZXJ0eSBp
bnQ2NF90IGNvdW50T2ZCeXRlc0V4cGVjdGVkVG9SZWNlaXZlOworQHByb3BlcnR5IE5TVVJMU2Vz
c2lvblRhc2tTdGF0ZSBzdGF0ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNFcnJvciAqZXJyb3I7CiBA
cHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICp0YXNrRGVzY3JpcHRpb247CiBAcHJvcGVydHkgZmxv
YXQgcHJpb3JpdHk7CiAtICh2b2lkKWNhbmNlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQppbmRl
eCA0MTljOTIzOGE1NGIwYTdhMTk0ZTA2MjVkMmIyZTI2ZjI1ZTdmMDAyLi4xZGJjN2UyYzFiNWZk
MTdlODVlZGQyN2U0MmMxODljMzY4MjdlNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCkBA
IC00NTcsMTAgKzQ1NywxMiBAQCBAc3ludGhlc2l6ZSBzdGF0ZT1fc3RhdGU7CiBAc3ludGhlc2l6
ZSBlcnJvcj1fZXJyb3I7CiBAc3ludGhlc2l6ZSB0YXNrRGVzY3JpcHRpb249X3Rhc2tEZXNjcmlw
dGlvbjsKIEBzeW50aGVzaXplIHByaW9yaXR5PV9wcmlvcml0eTsKLUBkeW5hbWljIHJlc3BvbnNl
OworCiAtIChOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UKIHsKLSAgICByZXR1cm4gX3Jlc3BvbnNl
LmdldCgpOworICAgIEBzeW5jaHJvbml6ZWQgKHNlbGYpIHsKKyAgICAgICAgcmV0dXJuIF9yZXNw
b25zZS5nZXQoKTsKKyAgICB9CiB9CiAKIC0gKHZvaWQpY2FuY2VsCkBAIC00OTcsNiArNDk5LDE1
IEBAIC0gKHZvaWQpcmVzdW1lCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAg
IFtfb3JpZ2luYWxSZXF1ZXN0IHJlbGVhc2VdOworICAgIFtfY3VycmVudFJlcXVlc3QgcmVsZWFz
ZV07CisgICAgW19lcnJvciByZWxlYXNlXTsKKyAgICBbX3Rhc2tEZXNjcmlwdGlvbiByZWxlYXNl
XTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKICNwcmFnbWEgbWFyayAtIE5TVVJMU2Vzc2lv
biBTUEkKIAogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJN
b2NrLm1tCmluZGV4IDI0NWQyMTgwYzg5ZjAxYWM5ZjlhOTBmNGIzNWY3ZDg2NWM4ZWMyYWEuLmYy
MzUyM2I5MThiMTYyMzEzZDIwMmQ4ZDQ5YTJiMjdhNzJlN2UzNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyTW9jay5tbQpAQCAtOTUsOCArOTUsOCBAQCAtIChpZClpbml0CiAKIC0gKHZvaWQpZGVhbGxv
YwogewotICAgIFtzdXBlciBkZWFsbG9jXTsKICAgICBbbV9pbnRlcm5hbCByZWxlYXNlXTsKKyAg
ICBbc3VwZXIgZGVhbGxvY107CiB9CiAKIC0gKHZvaWQpc2V0T3JpZW50YXRpb246KFdlYkRldmlj
ZU9yaWVudGF0aW9uKilvcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCmluZGV4IGM3YzMwZDFj
MjM0ZTAyM2U1NWRjYTM1OGRhNzU4YjQ1Mjc0NWMxYTMuLmIxZDIxNjczNmRhYzI2MDg2NjdmOThh
ZGU3ZGFjOWE1MzBhM2MwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0ubW0KQEAgLTQ1LDYgKzQ1LDEyIEBA
IC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogICAgIHJldHVybiBhY3Rpb247CiB9
CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtfaWRlbnRpZmllciByZWxlYXNlXTsKKyAgICBb
c3VwZXIgZGVhbGxvY107Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYm
IFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9f
V0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dL
V2ViVmlld1ByaW50Rm9ybWF0dGVyLm1tCmluZGV4IDA4Yjk4YThkZmZjYmQ0MDY3ZWVhYmRjYTQz
NTZjZjJmYzczMjU4MDcuLjdiYmM1ODczYTlhNGY3NmIyNmYxNzk1MjBiOTliMDA2ZDEwYzMwYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3Jt
YXR0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZv
cm1hdHRlci5tbQpAQCAtNDksNiArNDksNyBAQCBAaW1wbGVtZW50YXRpb24gX1dLV2ViVmlld1By
aW50Rm9ybWF0dGVyIHsKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFtzZWxmLndlYlZpZXcgX2Vu
ZFByaW50aW5nXTsKKyAgICBbX2ZyYW1lVG9QcmludCByZWxlYXNlXTsKICAgICBbc3VwZXIgZGVh
bGxvY107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMjk2MzRhMGI2NjJjYjY3MzUwZjJlNmFj
ZTQ4NmNlNmEzZjRmMGNkYi4uYjMyM2ViN2M1YzVjOGFhY2UxYjBjYTFjZDI0MjJmOTY1NDMzMjli
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTEwNjYsNyArMTA2Niw3IEBAIC0gKFVJVmlldyAqKWlu
cHV0VmlldwogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgaWYgKCFfaW5wdXRQZXJpcGhlcmFs
KQotICAgICAgICBfaW5wdXRQZXJpcGhlcmFsID0gYWRvcHROUyhfYXNzaXN0ZWROb2RlSW5mb3Jt
YXRpb24uZWxlbWVudFR5cGUgPT0gSW5wdXRUeXBlOjpTZWxlY3QgPyBbV0tGb3JtU2VsZWN0Q29u
dHJvbCBjcmVhdGVQZXJpcGhlcmFsV2l0aFZpZXc6c2VsZl0gOiBbV0tGb3JtSW5wdXRDb250cm9s
IGNyZWF0ZVBlcmlwaGVyYWxXaXRoVmlldzpzZWxmXSk7CisgICAgICAgIF9pbnB1dFBlcmlwaGVy
YWwgPSBhZG9wdE5TKF9hc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9PSBJbnB1
dFR5cGU6OlNlbGVjdCA/IFtbV0tGb3JtU2VsZWN0Q29udHJvbCBhbGxvY10gaW5pdFdpdGhWaWV3
OnNlbGZdIDogW1tXS0Zvcm1JbnB1dENvbnRyb2wgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmXSk7
CiAgICAgZWxzZQogICAgICAgICBbc2VsZiBfZGlzcGxheUZvcm1Ob2RlSW5wdXRWaWV3XTsKIApA
QCAtMTEzOCw5ICsxMTM4LDExIEBAIC0gKHZvaWQpX3Nob3dJbWFnZVNoZWV0CiAtICh2b2lkKV9z
aG93QXR0YWNobWVudFNoZWV0CiB7CiAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVs
ZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtfd2ViVmlldyBV
SURlbGVnYXRlXSk7Ci0gICAgCi0gICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDopXSkKLSAgICAg
ICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgc2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVu
dDpbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudCBVUkw6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmlu
ZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51cmxdIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9u
LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9y
bWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdl
Om5pbF1dOworICAgIGlmICghW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OildKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIGVsZW1lbnQgPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
YWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50IFVS
TDpbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOl9wb3NpdGlvbkluZm9ybWF0aW9uLnVybF0g
bG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24ucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9z
aXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6bmlsXSk7CisgICAgW3VpRGVsZWdhdGUgX3dl
YlZpZXc6X3dlYlZpZXcgc2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDplbGVtZW50LmdldCgpXTsK
IH0KIAogLSAodm9pZClfc2hvd0xpbmtTaGVldApAQCAtMzkxNCw4ICszOTE2LDggQEAgLSAoTlNE
aWN0aW9uYXJ5ICopX2RhdGFGb3JQcmV2aWV3SXRlbUNvbnRyb2xsZXI6KFVJUHJldmlld0l0ZW1D
b250cm9sbGVyICopY29udHIKICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB1c2UgVUlLaXQgY29u
c3RhbnRzLgogICAgICAgICBlbnVtIHsgV0tVSVByZXZpZXdJdGVtVHlwZUF0dGFjaG1lbnQgPSA1
IH07CiAgICAgICAgICp0eXBlID0gc3RhdGljX2Nhc3Q8VUlQcmV2aWV3SXRlbVR5cGU+KFdLVUlQ
cmV2aWV3SXRlbVR5cGVBdHRhY2htZW50KTsKLSAgICAgICAgY29uc3QgYXV0byYgZWxlbWVudCA9
IFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZh
dGVkRWxlbWVudFR5cGVBdHRhY2htZW50IFVSTDpbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5n
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLnVybF0gbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24u
cG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6
bmlsXTsKLSAgICAgICAgTlNVSW50ZWdlciBpbmRleCA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93
ZWJWaWV3IGluZGV4SW50b0F0dGFjaG1lbnRMaXN0Rm9yRWxlbWVudDplbGVtZW50XTsKKyAgICAg
ICAgYXV0byBlbGVtZW50ID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9j
XSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudCBVUkw6W05T
VVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51cmxdIGxvY2F0
aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9u
LnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9u
SW5mb3JtYXRpb24uYm91bmRzIGltYWdlOm5pbF0pOworICAgICAgICBOU1VJbnRlZ2VyIGluZGV4
ID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RG
b3JFbGVtZW50OmVsZW1lbnQuZ2V0KCldOwogICAgICAgICBpZiAoaW5kZXggIT0gTlNOb3RGb3Vu
ZCkgewogICAgICAgICAgICAgZGF0YUZvclByZXZpZXdbQCJVSVByZXZpZXdEYXRhQXR0YWNobWVu
dExpc3QiXSA9IFt1aURlbGVnYXRlIF9hdHRhY2htZW50TGlzdEZvcldlYlZpZXc6X3dlYlZpZXdd
OwogICAgICAgICAgICAgZGF0YUZvclByZXZpZXdbQCJVSVByZXZpZXdEYXRhQXR0YWNobWVudElu
ZGV4Il0gPSBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjppbmRleF07CkBAIC00
Mjk2LDI3ICs0Mjk4LDE3IEBAICsgKFdLQXV0b2NvcnJlY3Rpb25Db250ZXh0ICopYXV0b2NvcnJl
Y3Rpb25Db250ZXh0V2l0aERhdGE6KE5TU3RyaW5nICopYmVmb3JlVGV4CiAgICAgV0tBdXRvY29y
cmVjdGlvbkNvbnRleHQgKmNvbnRleHQgPSBbW1dLQXV0b2NvcnJlY3Rpb25Db250ZXh0IGFsbG9j
XSBpbml0XTsKIAogICAgIGlmIChbYmVmb3JlVGV4dCBsZW5ndGhdKQotICAgICAgICBjb250ZXh0
LmNvbnRleHRCZWZvcmVTZWxlY3Rpb24gPSBbYmVmb3JlVGV4dCBjb3B5XTsKKyAgICAgICAgY29u
dGV4dC5jb250ZXh0QmVmb3JlU2VsZWN0aW9uID0gYmVmb3JlVGV4dDsKICAgICBpZiAoW3NlbGVj
dGVkVGV4dCBsZW5ndGhdKQotICAgICAgICBjb250ZXh0LnNlbGVjdGVkVGV4dCA9IFtzZWxlY3Rl
ZFRleHQgY29weV07CisgICAgICAgIGNvbnRleHQuc2VsZWN0ZWRUZXh0ID0gc2VsZWN0ZWRUZXh0
OwogICAgIGlmIChbbWFya2VkVGV4dCBsZW5ndGhdKQotICAgICAgICBjb250ZXh0Lm1hcmtlZFRl
eHQgPSBbbWFya2VkVGV4dCBjb3B5XTsKKyAgICAgICAgY29udGV4dC5tYXJrZWRUZXh0ID0gbWFy
a2VkVGV4dDsKICAgICBpZiAoW2FmdGVyVGV4dCBsZW5ndGhdKQotICAgICAgICBjb250ZXh0LmNv
bnRleHRBZnRlclNlbGVjdGlvbiA9IFthZnRlclRleHQgY29weV07CisgICAgICAgIGNvbnRleHQu
Y29udGV4dEFmdGVyU2VsZWN0aW9uID0gYWZ0ZXJUZXh0OwogICAgIGNvbnRleHQucmFuZ2VJbk1h
cmtlZFRleHQgPSByYW5nZTsKICAgICByZXR1cm4gW2NvbnRleHQgYXV0b3JlbGVhc2VdOwogfQog
Ci0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBbc2VsZi5jb250ZXh0QmVmb3JlU2VsZWN0aW9uIHJl
bGVhc2VdOwotICAgIFtzZWxmLm1hcmtlZFRleHQgcmVsZWFzZV07Ci0gICAgW3NlbGYuc2VsZWN0
ZWRUZXh0IHJlbGVhc2VdOwotICAgIFtzZWxmLmNvbnRleHRBZnRlclNlbGVjdGlvbiByZWxlYXNl
XTsKLQotICAgIFtzdXBlciBkZWFsbG9jXTsKLX0KLQogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1JbnB1dENvbnRyb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGb3JtSW5wdXRDb250cm9sLmgKaW5kZXggYzcwYzBlMjM0MTc2OGJjZGZiNjdmNmMzMmZjNGJh
ZjhkZDRlZWU5MS4uNGQ0MTZkOTBiNjRkYTM5ODZiYWI1YzliNmRmM2ViMzdiNTQ4NjlmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENv
bnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlu
cHV0Q29udHJvbC5oCkBAIC0zMCw3ICszMCw3IEBACiBAY2xhc3MgV0tDb250ZW50VmlldzsKIAog
QGludGVyZmFjZSBXS0Zvcm1JbnB1dENvbnRyb2wgOiBOU09iamVjdDxXS0Zvcm1QZXJpcGhlcmFs
PgotKyAoV0tGb3JtSW5wdXRDb250cm9sICopY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OihXS0Nv
bnRlbnRWaWV3ICopdmlldzsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdLQ29udGVu
dFZpZXcgKil2aWV3OwogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJv
bC5tbQppbmRleCBjMGVmZjczZTFjZmQyYmFjYzQ2OTdiNzM3OWY2YmFjMTc3MTU0YzlkLi5iNjNm
YmRkODE3OWRlNmVjNTJjZDY4NDc5M2Q0ZDY3OTIzOWE1ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQpA
QCAtMjI1LDcgKzIyNSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0Zvcm1JbnB1dENvbnRyb2wgewog
ICAgIFJldGFpblB0cjxpZDxXS0Zvcm1Db250cm9sPj4gX2NvbnRyb2w7CiB9CiAKLS0gKGlkKWlu
aXRXaXRoVmlldzooV0tDb250ZW50VmlldyAqKXZpZXcKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBp
bml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CkBAIC0yNjMsMTEgKzI2Myw2IEBAIC0gKGlkKWlu
aXRXaXRoVmlldzooV0tDb250ZW50VmlldyAqKXZpZXcKIAogfQogCi0rIChXS0Zvcm1JbnB1dENv
bnRyb2wgKiljcmVhdGVQZXJpcGhlcmFsV2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3Ci17
Ci0gICAgcmV0dXJuIFtbV0tGb3JtSW5wdXRDb250cm9sIGFsbG9jXSBpbml0V2l0aFZpZXc6dmll
d107Ci19Ci0KIC0gKHZvaWQpYmVnaW5FZGl0aW5nCiB7CiAgICAgW19jb250cm9sIGNvbnRyb2xC
ZWdpbkVkaXRpbmddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLRm9ybVNlbGVjdENvbnRyb2wuaAppbmRleCBkNjVmMDZhNzdkMWVhMzYxN2QxYjQ3
YjI5YjIwZWUzOWNjMzlmZDI5Li5mODFhMGU3NGI3NWVkM2MyZTEzYjk1YzQ4MjYwMmRmMTI0ZDFh
OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9y
bVNlbGVjdENvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRm9ybVNlbGVjdENvbnRyb2wuaApAQCAtMzYsNyArMzYsNyBAQCBDR0Zsb2F0IGFkanVzdGVk
Rm9udFNpemUoQ0dGbG9hdCB0ZXh0V2lkdGgsIFVJRm9udCAqLCBDR0Zsb2F0IGluaXRpYWxGb250
U2l6ZSwgYwogQGNsYXNzIFdLQ29udGVudFZpZXc7CiAKIEBpbnRlcmZhY2UgV0tGb3JtU2VsZWN0
Q29udHJvbCA6IE5TT2JqZWN0PFdLRm9ybVBlcmlwaGVyYWw+Ci0rIChXS0Zvcm1TZWxlY3RDb250
cm9sICopY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldzsKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3OwogQGVuZAog
CiBAaW50ZXJmYWNlIFdLU2VsZWN0UG9wb3ZlciA6IFdLRm9ybVJvdGF0aW5nQWNjZXNzb3J5UG9w
b3ZlcjxXS0Zvcm1Db250cm9sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLm1tCmluZGV4IGRkMGUxZWU0MjQzZjAw
OGRmMmI2MGQ3YjA2ODUzNzE2ZTBkNDhhYTAuLmU0ZTg2NTJiNzYzZTc0MzQxYWZmNTk0YTdhOWM4
Y2RhYzdkODJlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tGb3JtU2VsZWN0Q29udHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLRm9ybVNlbGVjdENvbnRyb2wubW0KQEAgLTg0LDExICs4NCw2IEBAIC0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CiAgICAgcmV0dXJu
IHNlbGY7CiB9CiAKLSsgKFdLRm9ybVNlbGVjdENvbnRyb2wgKiljcmVhdGVQZXJpcGhlcmFsV2l0
aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3Ci17Ci0gICAgcmV0dXJuIFtbV0tGb3JtU2VsZWN0
Q29udHJvbCBhbGxvY10gaW5pdFdpdGhWaWV3OnZpZXddOwotfQotCiAtIChVSVZpZXcgKilhc3Np
c3RhbnRWaWV3CiB7CiAgICAgcmV0dXJuIFtfY29udHJvbCBjb250cm9sVmlld107CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNv
ZGluZy5jcHAKaW5kZXggNDVkYjcwYTkwNzdkYmZlN2VjZmMxMjhkZmRkOWViNTFlYWIwZWU2Ni4u
MDE2YzZiOTMzNDY1M2NmZWEyMjkwYjIxNjUwMGFiMDA5MjFiZGU2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
LmNwcApAQCAtMTEyMiwyMiArMTEyMiwyMyBAQCBib29sIGRlY29kZUxlZ2FjeVNlc3Npb25TdGF0
ZShjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IHNpemUsIFNlc3Npb25TdGF0ZSYgcwogICAg
IGlmICh2ZXJzaW9uTnVtYmVyICE9IHNlc3Npb25TdGF0ZURhdGFWZXJzaW9uKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIHNlc3Npb25TdGF0ZURpY3Rpb25hcnkgPSBhZG9wdENG
KGR5bmFtaWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGUHJvcGVydHlMaXN0Q3JlYXRlV2l0
aERhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgYnl0ZXMgKyBzaXplb2YodWludDMyX3QpLCBzaXplIC0gc2l6ZW9mKHVpbnQz
Ml90KSkpLmdldCgpLCBrQ0ZQcm9wZXJ0eUxpc3RJbW11dGFibGUsIG51bGxwdHIsIG51bGxwdHIp
KSk7CisgICAgYXV0byBjZlByb3BlcnR5TGlzdCA9IGFkb3B0Q0YoQ0ZQcm9wZXJ0eUxpc3RDcmVh
dGVXaXRoRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBieXRlcyArIHNpemVvZih1aW50MzJfdCksIHNpemUgLSBzaXplb2Yo
dWludDMyX3QpKSkuZ2V0KCksIGtDRlByb3BlcnR5TGlzdEltbXV0YWJsZSwgbnVsbHB0ciwgbnVs
bHB0cikpOworICAgIGF1dG8gc2Vzc2lvblN0YXRlRGljdGlvbmFyeSA9IGR5bmFtaWNfY2ZfY2Fz
dDxDRkRpY3Rpb25hcnlSZWY+KGNmUHJvcGVydHlMaXN0LmdldCgpKTsKICAgICBpZiAoIXNlc3Np
b25TdGF0ZURpY3Rpb25hcnkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChhdXRv
IGJhY2tGb3J3YXJkTGlzdERpY3Rpb25hcnkgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5
UmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5LmdldCgpLCBz
ZXNzaW9uSGlzdG9yeUtleSkpKSB7CisgICAgaWYgKGF1dG8gYmFja0ZvcndhcmRMaXN0RGljdGlv
bmFyeSA9IGR5bmFtaWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGRGljdGlvbmFyeUdldFZh
bHVlKHNlc3Npb25TdGF0ZURpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5S2V5KSkpIHsKICAgICAg
ICAgaWYgKCFkZWNvZGVTZXNzaW9uSGlzdG9yeShiYWNrRm9yd2FyZExpc3REaWN0aW9uYXJ5LCBz
ZXNzaW9uU3RhdGUuYmFja0ZvcndhcmRMaXN0U3RhdGUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIAotICAgIGlmIChhdXRvIHByb3Zpc2lvbmFsVVJMU3RyaW5nID0gZHluYW1p
Y19jZl9jYXN0PENGU3RyaW5nUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShzZXNzaW9uU3RhdGVE
aWN0aW9uYXJ5LmdldCgpLCBwcm92aXNpb25hbFVSTEtleSkpKSB7CisgICAgaWYgKGF1dG8gcHJv
dmlzaW9uYWxVUkxTdHJpbmcgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGRGljdGlv
bmFyeUdldFZhbHVlKHNlc3Npb25TdGF0ZURpY3Rpb25hcnksIHByb3Zpc2lvbmFsVVJMS2V5KSkp
IHsKICAgICAgICAgc2Vzc2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMID0gV2ViQ29yZTo6VVJMKFdl
YkNvcmU6OlVSTCgpLCBwcm92aXNpb25hbFVSTFN0cmluZyk7CiAgICAgICAgIGlmICghc2Vzc2lv
blN0YXRlLnByb3Zpc2lvbmFsVVJMLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICBpZiAoYXV0byByZW5kZXJUcmVlU2l6ZSA9IGR5bmFtaWNfY2ZfY2Fz
dDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc2Vzc2lvblN0YXRlRGljdGlvbmFy
eS5nZXQoKSwgcmVuZGVyVHJlZVNpemVLZXkpKSkKKyAgICBpZiAoYXV0byByZW5kZXJUcmVlU2l6
ZSA9IGR5bmFtaWNfY2ZfY2FzdDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc2Vz
c2lvblN0YXRlRGljdGlvbmFyeSwgcmVuZGVyVHJlZVNpemVLZXkpKSkKICAgICAgICAgQ0ZOdW1i
ZXJHZXRWYWx1ZShyZW5kZXJUcmVlU2l6ZSwga0NGTnVtYmVyU0ludDY0VHlwZSwgJnNlc3Npb25T
dGF0ZS5yZW5kZXJUcmVlU2l6ZSk7CiAgICAgZWxzZQogICAgICAgICBzZXNzaW9uU3RhdGUucmVu
ZGVyVHJlZVNpemUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9TZXJ2aWNlc0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Nl
cnZpY2VzQ29udHJvbGxlci5tbQppbmRleCAyZGQzNWM1MGZkOTY0OGYxN2E3MTA4MzVlZDg5Y2M5
YTVhMmZjOTBjLi5lNjVkYWJhZTY0NDQ1OTUxZDhmYWFlOWU5NGQzZTQ4YTRmNGVhODI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlcnZpY2VzQ29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlcnZpY2VzQ29udHJvbGxlci5t
bQpAQCAtODcsMTAgKzg3LDEwIEBAIHZvaWQgU2VydmljZXNDb250cm9sbGVyOjpyZWZyZXNoRXhp
c3RpbmdTZXJ2aWNlcyhib29sIHJlZnJlc2hJbW1lZGlhdGVseSkKIAogICAgICAgICBzdGF0aWMg
TlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyaWJ1dGVkU3RyaW5nV2l0aFJpY2hDb250ZW50OwogICAg
ICAgICBpZiAoIWF0dHJpYnV0ZWRTdHJpbmdXaXRoUmljaENvbnRlbnQpIHsKLSAgICAgICAgICAg
IE5TVGV4dEF0dGFjaG1lbnQgKmF0dGFjaG1lbnQgPSBbW05TVGV4dEF0dGFjaG1lbnQgYWxsb2Nd
IGluaXRdOwotICAgICAgICAgICAgTlNUZXh0QXR0YWNobWVudENlbGwgKmNlbGwgPSBbW05TVGV4
dEF0dGFjaG1lbnRDZWxsIGFsbG9jXSBpbml0SW1hZ2VDZWxsOmltYWdlLmdldCgpXTsKLSAgICAg
ICAgICAgIFthdHRhY2htZW50IHNldEF0dGFjaG1lbnRDZWxsOmNlbGxdOwotICAgICAgICAgICAg
TlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZyAqcmljaFN0cmluZyA9IChOU011dGFibGVBdHRyaWJ1
dGVkU3RyaW5nICopW05TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgYXR0cmlidXRlZFN0cmluZ1dp
dGhBdHRhY2htZW50OmF0dGFjaG1lbnRdOworICAgICAgICAgICAgYXV0byBhdHRhY2htZW50ID0g
YWRvcHROUyhbW05TVGV4dEF0dGFjaG1lbnQgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgICAgIGF1
dG8gY2VsbCA9IGFkb3B0TlMoW1tOU1RleHRBdHRhY2htZW50Q2VsbCBhbGxvY10gaW5pdEltYWdl
Q2VsbDppbWFnZS5nZXQoKV0pOworICAgICAgICAgICAgW2F0dGFjaG1lbnQgc2V0QXR0YWNobWVu
dENlbGw6Y2VsbC5nZXQoKV07CisgICAgICAgICAgICBOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5n
ICpyaWNoU3RyaW5nID0gKE5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgKilbTlNNdXRhYmxlQXR0
cmlidXRlZFN0cmluZyBhdHRyaWJ1dGVkU3RyaW5nV2l0aEF0dGFjaG1lbnQ6YXR0YWNobWVudC5n
ZXQoKV07CiAgICAgICAgICAgICBbcmljaFN0cmluZyBhcHBlbmRBdHRyaWJ1dGVkU3RyaW5nOiBh
dHRyaWJ1dGVkU3RyaW5nXTsKICAgICAgICAgICAgIGF0dHJpYnV0ZWRTdHJpbmdXaXRoUmljaENv
bnRlbnQgPSBbcmljaFN0cmluZyByZXRhaW5dOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXgg
ZGZjM2NlZDZiZTY0OTJiNGZmOTJlNDE1YTY4OWYyYzY5MmFhMzUxYS4uNGMyZWU5OTNlMDEzN2U4
Y2QzNWQwMDM3NWU2MDliZmUzY2FlZTA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtMjMxLDkgKzIzMSw5
IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2V0dXBTZXJ2aWNlc01lbnUoKQogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBtX21lbnUgPSBhZG9wdE5TKFtbTlNNZW51IGFsbG9jXSBp
bml0XSk7CiAgICAgICAgIGludCBpdGVtUG9zaXRpb24gPSAwOwotICAgICAgICBOU01lbnVJdGVt
ICpncm91cEVudHJ5ID0gW1tOU01lbnVJdGVtIGFsbG9jXSBpbml0V2l0aFRpdGxlOm1lbnVJdGVt
VGl0bGVGb3JUZWxlcGhvbmVOdW1iZXJHcm91cCgpIGFjdGlvbjpuaWwga2V5RXF1aXZhbGVudDpA
IiJdOworICAgICAgICBhdXRvIGdyb3VwRW50cnkgPSBhZG9wdE5TKFtbTlNNZW51SXRlbSBhbGxv
Y10gaW5pdFdpdGhUaXRsZTptZW51SXRlbVRpdGxlRm9yVGVsZXBob25lTnVtYmVyR3JvdXAoKSBh
Y3Rpb246bmlsIGtleUVxdWl2YWxlbnQ6QCIiXSk7CiAgICAgICAgIFtncm91cEVudHJ5IHNldEVu
YWJsZWQ6Tk9dOwotICAgICAgICBbbV9tZW51IGluc2VydEl0ZW06Z3JvdXBFbnRyeSBhdEluZGV4
Oml0ZW1Qb3NpdGlvbisrXTsKKyAgICAgICAgW21fbWVudSBpbnNlcnRJdGVtOmdyb3VwRW50cnku
Z2V0KCkgYXRJbmRleDppdGVtUG9zaXRpb24rK107CiAgICAgICAgIGZvciAoYXV0byYgbWVudUl0
ZW0gOiB0ZWxlcGhvbmVOdW1iZXJNZW51SXRlbXMpCiAgICAgICAgICAgICBbbV9tZW51IGluc2Vy
dEl0ZW06bWVudUl0ZW0uZ2V0KCkgYXRJbmRleDppdGVtUG9zaXRpb24rK107CiAgICAgfQo=
</data>
<flag name="review"
          id="301401"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277174</attachid>
            <date>2016-04-23 18:43:57 -0700</date>
            <delta_ts>2016-04-23 18:47:39 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-156956-20160423184422.patch</filename>
            <type>text/plain</type>
            <size>28382</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI2MDkzNTQyM2Q2YzI3
YmQyYmVlMzA0OTZiMjJkZTYzN2E4OTBiOC4uMWY4YzczMTI0OTgzY2Q5M2M5YjZiMGUwN2ViMDJh
OTczZTc2ZmQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA0LTIzICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggaXNzdWVzIGZvdW5kIGJ5
IHRoZSBjbGFuZyBzdGF0aWMgYW5hbHl6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1Njk1NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQ
cm9za3VyeWFrb3YuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06
CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SYW5nZSk6
IFN0b3JlZCB0eiBpbiBhIFJldGFpblB0ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9LZXllZERl
Y29kZXJDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXllZERlY29kZXJDRjo6S2V5ZWREZWNv
ZGVyQ0YpOiBJZiBkeW5hbWljX2NmX2Nhc3QgcmV0dXJuZWQgbnVsbHB0ciwgdGhlIHJlc3VsdCBv
ZgorICAgICAgICBDRlByb3BlcnR5TGlzdENyZWF0ZVdpdGhEYXRhIHdvdWxkIGxlYWsuIFN0b3Jl
ZCB0aGUgQ0ZQcm9wZXJ0eUxpc3RSZWYgaW4gYSBSZXRhaW5QdHIsIHRoZW4gbGVha2VkL2Fkb3B0
ZWQgaXQKKyAgICAgICAgaW50byBtX3Jvb3REaWN0aW9uYXJ5ICh0byBhdm9pZCByZXRhaW4gY291
bnQgY2h1cm4pIGlmIGl0IGlzIGEgQ0ZEaWN0aW9uYXJ5LgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJv
bGxlciBkZWFsbG9jXSk6IFJlbGVhc2VkIF9leHRlcm5hbFBsYXliYWNrQWlyUGxheURldmljZUxv
Y2FsaXplZE5hbWUuCisgICAgICAgICgtW1dlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gZGVhbGxv
Y10pOiBBZGRlZCB0byByZWxlYXNlIF9sb2NhbGl6ZWREaXNwbGF5TmFtZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAg
ICgtW1dlYkFWUGxheWVyTGF5ZXIgZGVhbGxvY10pOiBSZWxlYXNlZCBfcGl4ZWxCdWZmZXJBdHRy
aWJ1dGVzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vz
c2lvbi5oOiBSZW1vdmVkIHRoZSByZWFkd3JpdGUgYXR0cmlidXRlcyBmcm9tIHByb3BlcnRpZXMs
IHNpbmNlCisgICAgICAgIHByb3BlcnRpZXMgYXJlIHJlYWR3cml0ZSBieSBkZWZhdWx0LgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbTogUmVt
b3ZlZCBAZHluYW1pYywgd2hpY2ggaXNuJ3QgbmVjZXNzYXJ5IGp1c3QgZm9yIGRlZmluaW5nIGEg
Y3VzdG9tIGdldHRlci4KKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrIGRl
YWxsb2NdKTogQWRkZWQgdG8gcmVsZWFzZSBjb3BpZWQgaXZhcnMuCisKIDIwMTYtMDQtMjIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDYW5ub3QgYWNjZXNzIHRo
ZSBTUUxUcmFuc2FjdGlvbi5jb25zdHJ1Y3Rvci5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCAzMzIxNWNhZmRjMTc3MzFlZTE3NDMwZmUzYzlmYWFlZmU1OGJhM2M0Li5iM2VlMzFlMTk2MjAz
YWM1ODAwMDhhYjQwY2E0Y2E2YzA1MGIxMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTYtMDQtMjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBpc3N1ZXMgZm91bmQgYnkgdGhlIGNsYW5nIHN0YXRpYyBhbmFseXplcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIFdlYlZpZXcv
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW06CisgICAgICAgICgtW1dlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrIGRlYWxsb2NdKTogW3N1cGVyIGRlYWxsb2NdIHNob3Vs
ZCBiZSBjYWxsZWQgbGFzdC4KKwogMjAxNi0wNC0yMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGlPUyBidWlsZDogV0FLVmlldyBtYXkg
bm90IHJlc3BvbmQgdG8gZHJhd0xheWVyOmluQ29udGV4dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYzYyZjAy
ODdiNGIxNGQ1YjE2MGJlYWFjNjFmMzAyZjAzZmJlMWY0Li41OGIxMzU2ZjQ0ZDZmZWU2NTRhZDU2
MDI1N2E1MGM2ZjY3ZmMxNDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTYtMDQt
MjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBpc3N1ZXMg
Zm91bmQgYnkgdGhlIGNsYW5nIHN0YXRpYyBhbmFseXplcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSXRlbS5tbToKKyAgICAgICAgKC1bV0tQcmV2aWV3QWN0aW9uIGRlYWxsb2Nd
KTogQWRkZWQgdG8gcmVsZWFzZSBfaWRlbnRpZmllci4KKyAgICAgICAgKiBVSVByb2Nlc3MvX1dL
V2ViVmlld1ByaW50Rm9ybWF0dGVyLm1tOgorICAgICAgICAoLVtfV0tXZWJWaWV3UHJpbnRGb3Jt
YXR0ZXIgZGVhbGxvY10pOiBSZWxlYXNlZCBfZnJhbWVUb1ByaW50LgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGlucHV0Vmlld10pOiAtY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OiByZXR1cm5lZCBh
IHJldGFpbmVkIG9iamVjdCwgYnV0IHRoZSBtZXRob2QgbmFtZSBkaWQgbm90CisgICAgICAgIG1h
dGNoIENvY29hIGNvbnZlbnRpb25zLiBDYWxsZWQgLWluaXRXaXRoVmlldzogaW5zdGVhZC4KKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd0F0dGFjaG1lbnRTaGVldF0pOiBTdG9yZWQgdGhl
IF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGluIGEgUmV0YWluUHRyLgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9kYXRhRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOmF0UG9zaXRpb246dHlwZTpd
KTogRGl0dG8uCisgICAgICAgICgrW1dLQXV0b2NvcnJlY3Rpb25Db250ZXh0IGF1dG9jb3JyZWN0
aW9uQ29udGV4dFdpdGhEYXRhOm1hcmtlZFRleHQ6c2VsZWN0ZWRUZXh0OmFmdGVyVGV4dDpzZWxl
Y3RlZFJhbmdlSW5NYXJrZWRUZXh0Ol0pOgorICAgICAgICBUaGUgcHJvcGVydGllcyBjb250ZXh0
QmVmb3JlU2VsZWN0aW9uLCBzZWxlY3RlZFRleHQsIG1hcmtlZFRleHQsIGFuZCBjb250ZXh0QWZ0
ZXJTZWxlY3Rpb24gaGF2ZSB0aGUgJ2NvcHknCisgICAgICAgIGFubm90YXRpb24gaW4gVUlXS0F1
dG9jb3JyZWN0aW9uQ29udGV4dCwgc28gdGhlIGFkZGl0aW9uYWwgY29weSBtYWRlIGhlcmUgd291
bGQgYmUgbGVha2VkLiBSZW1vdmVkIHRoZSBleHRyYSBjb3B5LgorICAgICAgICAoLVtXS0F1dG9j
b3JyZWN0aW9uQ29udGV4dCBkZWFsbG9jXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wuaDogUmVtb3ZlZCAtY3JlYXRlUGVyaXBoZXJh
bFdpdGhWaWV3OiBhbmQgZGVjbGFyZWQgLWluaXRXaXRoVmlldzouCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRm9ybUlu
cHV0Q29udHJvbCBpbml0V2l0aFZpZXc6XSk6IENoYW5nZWQgdG8gcmV0dXJuIGluc3RhbmNldHlw
ZS4KKyAgICAgICAgKCtbV0tGb3JtSW5wdXRDb250cm9sIGNyZWF0ZVBlcmlwaGVyYWxXaXRoVmll
dzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVj
dENvbnRyb2wuaDogUmVtb3ZlZCAtY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OiBhbmQgZGVjbGFy
ZWQgLWluaXRXaXRoVmlldzouCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1T
ZWxlY3RDb250cm9sLm1tOgorICAgICAgICAoK1tXS0Zvcm1TZWxlY3RDb250cm9sIGNyZWF0ZVBl
cmlwaGVyYWxXaXRoVmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0xl
Z2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZUxlZ2Fj
eVNlc3Npb25TdGF0ZSk6IElmIGR5bmFtaWNfY2ZfY2FzdCByZXR1cm5lZCBudWxscHRyLCB0aGUg
cmVzdWx0IG9mCisgICAgICAgIENGUHJvcGVydHlMaXN0Q3JlYXRlV2l0aERhdGEgd291bGQgbGVh
ay4gU3RvcmVkIHRoZSBDRlByb3BlcnR5TGlzdFJlZiBpbiBhIFJldGFpblB0ciBiZWZvcmUgY2Fs
bGluZyBkeW5hbWljX2NmX2Nhc3QuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0Nv
bnRyb2xsZXIubW06CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzQ29udHJvbGxlcjo6cmVmcmVz
aEV4aXN0aW5nU2VydmljZXMpOiBVc2VkIGEgUmV0YWluUHRyIGZvciBhdHRhY2htZW50IGFuZCBj
ZWxsLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2V0dXBTZXJ2aWNlc01l
bnUpOiBVc2VkIGEgUmV0YWluUHRyIGZvciBncm91cEVudHJ5LgorCiAyMDE2LTA0LTIyICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGluZyBhIHR5cG8g
aW4gbXkgbGFzdCBjb21taXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFE
ZXRlY3Rpb24ubW0KaW5kZXggZDJlY2FiZjIwZWFjODYwZGU1ZGM4MzNiZWUxZTUxYmVhOTJiMjdh
NC4uN2MyNDY0YWI5NDZlMTcyOTIzYjc0ODU4ZTRkYTllMzg1OTgzOWIxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtNTUwLDcgKzU1MCw3
IEBAIE5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKFJlZlB0cjxS
YW5nZT4mIGNvbnRleHRSYW5nZSwgRGF0YURlCiAgICAgICAgIGFsbFJlc3VsdFJhbmdlcy5hcHBl
bmQoV1RGTW92ZShmcmFnbWVudFJhbmdlcykpOwogICAgIH0KICAgICAKLSAgICBDRlRpbWVab25l
UmVmIHR6ID0gQ0ZUaW1lWm9uZUNvcHlEZWZhdWx0KCk7CisgICAgYXV0byB0eiA9IGFkb3B0Q0Yo
Q0ZUaW1lWm9uZUNvcHlEZWZhdWx0KCkpOwogICAgIE5TRGF0ZSAqcmVmZXJlbmNlRGF0ZSA9IFtO
U0RhdGUgZGF0ZV07CiAgICAgVGV4dCogbGFzdFRleHROb2RlVG9VcGRhdGUgPSBudWxscHRyOwog
ICAgIFN0cmluZyBsYXN0Tm9kZUNvbnRlbnQ7CkBAIC01ODIsNyArNTgyLDcgQEAgTlNBcnJheSAq
RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoUmVmUHRyPFJhbmdlPiYgY29udGV4
dFJhbmdlLCBEYXRhRGUKICAgICAgICAgICAgIHJhbmdlQm91bmRhcmllcy51bmNoZWNrZWRBcHBl
bmQoeyByYW5nZS0+c3RhcnRQb3NpdGlvbigpLCByYW5nZS0+ZW5kUG9zaXRpb24oKSB9KTsKIAog
ICAgICAgICBOU1N0cmluZyAqaWRlbnRpZmllciA9IGRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgo
aW5kZXhQYXRoc1tyZXN1bHRJbmRleF0uZ2V0KCkpOwotICAgICAgICBOU1N0cmluZyAqY29ycmVz
cG9uZGluZ1VSTCA9IGNvbnN0cnVjdFVSTFN0cmluZ0ZvclJlc3VsdChjb3JlUmVzdWx0LCBpZGVu
dGlmaWVyLCByZWZlcmVuY2VEYXRlLCAoTlNUaW1lWm9uZSAqKXR6LCB0eXBlcyk7CisgICAgICAg
IE5TU3RyaW5nICpjb3JyZXNwb25kaW5nVVJMID0gY29uc3RydWN0VVJMU3RyaW5nRm9yUmVzdWx0
KGNvcmVSZXN1bHQsIGlkZW50aWZpZXIsIHJlZmVyZW5jZURhdGUsIChOU1RpbWVab25lICopdHou
Z2V0KCksIHR5cGVzKTsKICAgICAgICAgYm9vbCBkaWRNb2RpZnlET00gPSBmYWxzZTsKIAogICAg
ICAgICBpZiAoIWNvcnJlc3BvbmRpbmdVUkwgfHwgc2VhcmNoRm9yTGlua1JlbW92aW5nRXhpc3Rp
bmdERExpbmtzKHJlc3VsdFJhbmdlcy5maXJzdCgpLT5zdGFydENvbnRhaW5lcigpLCByZXN1bHRS
YW5nZXMubGFzdCgpLT5lbmRDb250YWluZXIoKSwgZGlkTW9kaWZ5RE9NKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0tleWVkRGVjb2RlckNGLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NmL0tleWVkRGVjb2RlckNGLmNwcAppbmRleCA4MTAzODM4YTc2NjA1
ZjZkMDc1Zjc3YTA1OWFhMDBjNDRlYzczNjg0Li4wNTY5MDMxZTUxNGY3OTBhMThhOTkyOTQwMTdl
MzJlZTA4YzQwNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LZXll
ZERlY29kZXJDRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvS2V5ZWREZWNv
ZGVyQ0YuY3BwCkBAIC0zOSw5ICszOSwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8S2V5ZWREZWNvZGVy
PiBLZXllZERlY29kZXI6OmRlY29kZXIoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90CiBLZXll
ZERlY29kZXJDRjo6S2V5ZWREZWNvZGVyQ0YoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNp
emUpCiB7CiAgICAgYXV0byBjZkRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZVdpdGhCeXRlc05v
Q29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhLCBzaXplLCBrQ0ZBbGxvY2F0b3JOdWxsKSk7
CisgICAgYXV0byBjZlByb3BlcnR5TGlzdCA9IGFkb3B0Q0YoQ0ZQcm9wZXJ0eUxpc3RDcmVhdGVX
aXRoRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjZkRhdGEuZ2V0KCksIGtDRlByb3BlcnR5TGlz
dEltbXV0YWJsZSwgbnVsbHB0ciwgbnVsbHB0cikpOwogCi0gICAgaWYgKGF1dG8gcm9vdERpY3Rp
b25hcnkgPSBhZG9wdENGKGR5bmFtaWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGUHJvcGVy
dHlMaXN0Q3JlYXRlV2l0aERhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY2ZEYXRhLmdldCgpLCBr
Q0ZQcm9wZXJ0eUxpc3RJbW11dGFibGUsIG51bGxwdHIsIG51bGxwdHIpKSkpCi0gICAgICAgIG1f
cm9vdERpY3Rpb25hcnkgPSBXVEZNb3ZlKHJvb3REaWN0aW9uYXJ5KTsKKyAgICBpZiAoZHluYW1p
Y19jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oY2ZQcm9wZXJ0eUxpc3QuZ2V0KCkpKQorICAgICAg
ICBtX3Jvb3REaWN0aW9uYXJ5ID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDRkRpY3Rpb25hcnlSZWY+
KGNmUHJvcGVydHlMaXN0LmxlYWtSZWYoKSkpOwogICAgIGVsc2UKICAgICAgICAgbV9yb290RGlj
dGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIG51bGxwdHIsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBtX2RpY3Rpb25hcnlTdGFjay5h
cHBlbmQobV9yb290RGljdGlvbmFyeS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5tbQppbmRleCBiZmE3N2ZiYTdkYjRl
MmJiZjUwMTM3OWZmMGU4YzI0NTQ4NWFlN2VjLi4yNTY5MzE3MDMwZTFjMWM3ZmRhOTYxZGI1NGY4
MzJjOGFjMGZkZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
QVZQbGF5ZXJDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJBVlBsYXllckNvbnRyb2xsZXIubW0KQEAgLTcxLDYgKzcxLDcgQEAgLSAodm9pZClkZWFsbG9j
CiAgICAgW19sZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zIHJlbGVhc2VdOwogICAgIFtfY3Vy
cmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb24gcmVsZWFzZV07CiAgICAgW19jdXJyZW50TGVn
aWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uIHJlbGVhc2VdOworICAgIFtfZXh0ZXJuYWxQbGF5YmFj
a0FpclBsYXlEZXZpY2VMb2NhbGl6ZWROYW1lIHJlbGVhc2VdOwogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KIApAQCAtNDUzLDYgKzQ1NCwxMyBAQCAtICh2b2lkKXNldFBpY3R1cmVJblBpY3R1cmVJ
bnRlcnJ1cHRlZDooQk9PTClwaWN0dXJlSW5QaWN0dXJlSW50ZXJydXB0ZWQKIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24KKworLSAodm9pZClkZWFsbG9j
Cit7CisgICAgW19sb2NhbGl6ZWREaXNwbGF5TmFtZSByZWxlYXNlXTsKKyAgICBbc3VwZXIgZGVh
bGxvY107Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbQppbmRleCBmM2FhODAzNWIzMmYxMzMwYmJkNTJlZGQ0NTYyZWJlYjVj
ODU4Mzg0Li4wYTE2MDYyYzE5NDcxMDM1YjA1M2E1YTVlZjNkMThmNjA3NDljNjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC0yMzQsNiArMjM0LDcgQEAgLSAoaW5zdGFuY2V0
eXBlKWluaXQKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91
c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2
ZUJvdW5kcykgb2JqZWN0Om5pbF07CisgICAgW19waXhlbEJ1ZmZlckF0dHJpYnV0ZXMgcmVsZWFz
ZV07CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oCmluZGV4
IDllYmExMjBhNjljNzAxNzBlYjkyOTU1OWRiODBlM2YxMjI5ZmU5ODMuLjU0YmMxMzljZjA0ZTdk
ZmY0YWYwYTM5MzI5NjM2NWJjYjFhN2JiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oCkBAIC0x
MTksMTYgKzExOSwxNyBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkNvcmVOU1VSTFNl
c3Npb24gOiBOU09iamVjdCB7CiAgICAgTlNTdHJpbmcgKl90YXNrRGVzY3JpcHRpb247CiAgICAg
ZmxvYXQgX3ByaW9yaXR5OwogfQotQHByb3BlcnR5IChyZWFkd3JpdGUpIE5TVUludGVnZXIgdGFz
a0lkZW50aWZpZXI7Ci1AcHJvcGVydHkgKHJlYWR3cml0ZSwgY29weSkgTlNVUkxSZXF1ZXN0ICpv
cmlnaW5hbFJlcXVlc3Q7Ci1AcHJvcGVydHkgKHJlYWR3cml0ZSwgY29weSkgTlNVUkxSZXF1ZXN0
ICpjdXJyZW50UmVxdWVzdDsKKworQHByb3BlcnR5IE5TVUludGVnZXIgdGFza0lkZW50aWZpZXI7
CitAcHJvcGVydHkgKGNvcHkpIE5TVVJMUmVxdWVzdCAqb3JpZ2luYWxSZXF1ZXN0OworQHByb3Bl
cnR5IChjb3B5KSBOU1VSTFJlcXVlc3QgKmN1cnJlbnRSZXF1ZXN0OwogQHByb3BlcnR5IChyZWFk
b25seSwgY29weSkgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2U7Ci1AcHJvcGVydHkgKHJlYWR3cml0
ZSkgaW50NjRfdCBjb3VudE9mQnl0ZXNSZWNlaXZlZDsKLUBwcm9wZXJ0eSAocmVhZHdyaXRlKSBp
bnQ2NF90IGNvdW50T2ZCeXRlc1NlbnQ7Ci1AcHJvcGVydHkgKHJlYWR3cml0ZSkgaW50NjRfdCBj
b3VudE9mQnl0ZXNFeHBlY3RlZFRvU2VuZDsKLUBwcm9wZXJ0eSAocmVhZHdyaXRlKSBpbnQ2NF90
IGNvdW50T2ZCeXRlc0V4cGVjdGVkVG9SZWNlaXZlOwotQHByb3BlcnR5IChyZWFkd3JpdGUpIE5T
VVJMU2Vzc2lvblRhc2tTdGF0ZSBzdGF0ZTsKLUBwcm9wZXJ0eSAocmVhZHdyaXRlLCBjb3B5KSBO
U0Vycm9yICplcnJvcjsKK0Bwcm9wZXJ0eSBpbnQ2NF90IGNvdW50T2ZCeXRlc1JlY2VpdmVkOwor
QHByb3BlcnR5IGludDY0X3QgY291bnRPZkJ5dGVzU2VudDsKK0Bwcm9wZXJ0eSBpbnQ2NF90IGNv
dW50T2ZCeXRlc0V4cGVjdGVkVG9TZW5kOworQHByb3BlcnR5IGludDY0X3QgY291bnRPZkJ5dGVz
RXhwZWN0ZWRUb1JlY2VpdmU7CitAcHJvcGVydHkgTlNVUkxTZXNzaW9uVGFza1N0YXRlIHN0YXRl
OworQHByb3BlcnR5IChjb3B5KSBOU0Vycm9yICplcnJvcjsKIEBwcm9wZXJ0eSAoY29weSkgTlNT
dHJpbmcgKnRhc2tEZXNjcmlwdGlvbjsKIEBwcm9wZXJ0eSBmbG9hdCBwcmlvcml0eTsKIC0gKHZv
aWQpY2FuY2VsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCmluZGV4IDQxOWM5MjM4YTU0YjBhN2Ex
OTRlMDYyNWQyYjJlMjZmMjVlN2YwMDIuLjM3NTE5OTcxMThiZTllMzdiZmYyZmE2NDI4OWNhZWUw
MmY2OGIxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KQEAgLTQ1Nyw3ICs0NTcsNyBAQCBA
c3ludGhlc2l6ZSBzdGF0ZT1fc3RhdGU7CiBAc3ludGhlc2l6ZSBlcnJvcj1fZXJyb3I7CiBAc3lu
dGhlc2l6ZSB0YXNrRGVzY3JpcHRpb249X3Rhc2tEZXNjcmlwdGlvbjsKIEBzeW50aGVzaXplIHBy
aW9yaXR5PV9wcmlvcml0eTsKLUBkeW5hbWljIHJlc3BvbnNlOworCiAtIChOU1VSTFJlc3BvbnNl
ICopcmVzcG9uc2UKIHsKICAgICByZXR1cm4gX3Jlc3BvbnNlLmdldCgpOwpAQCAtNDk3LDYgKzQ5
NywxNSBAQCAtICh2b2lkKXJlc3VtZQogICAgIH0pOwogfQogCistICh2b2lkKWRlYWxsb2MKK3sK
KyAgICBbX29yaWdpbmFsUmVxdWVzdCByZWxlYXNlXTsKKyAgICBbX2N1cnJlbnRSZXF1ZXN0IHJl
bGVhc2VdOworICAgIFtfZXJyb3IgcmVsZWFzZV07CisgICAgW190YXNrRGVzY3JpcHRpb24gcmVs
ZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiAjcHJhZ21hIG1hcmsgLSBOU1VSTFNl
c3Npb24gU1BJCiAKIC0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2Nr
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyTW9jay5tbQppbmRleCAyNDVkMjE4MGM4OWYwMWFjOWY5YTkwZjRiMzVmN2Q4NjVjOGVjMmFh
Li5mMjM1MjNiOTE4YjE2MjMxM2QyMDJkOGQ0OWEyYjI3YTcyZTdlMzYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2Nr
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlck1vY2subW0KQEAgLTk1LDggKzk1LDggQEAgLSAoaWQpaW5pdAogCiAtICh2b2lkKWRl
YWxsb2MKIHsKLSAgICBbc3VwZXIgZGVhbGxvY107CiAgICAgW21faW50ZXJuYWwgcmVsZWFzZV07
CisgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCiAtICh2b2lkKXNldE9yaWVudGF0aW9uOihXZWJE
ZXZpY2VPcmllbnRhdGlvbiopb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQppbmRleCBjN2Mz
MGQxYzIzNGUwMjNlNTVkY2EzNThkYTc1OGI0NTI3NDVjMWEzLi5iMWQyMTY3MzZkYWMyNjA4NjY3
Zjk4YWRlN2RhYzlhNTMwYTNjMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCkBAIC00NSw2ICs0NSwx
MiBAQCAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKICAgICByZXR1cm4gYWN0aW9u
OwogfQogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbX2lkZW50aWZpZXIgcmVsZWFzZV07Cisg
ICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxF
RCAmJiBUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQppbmRleCAwOGI5OGE4ZGZmY2JkNDA2N2VlYWJk
Y2E0MzU2Y2YyZmM3MzI1ODA3Li43YmJjNTg3M2E5YTRmNzZiMjZmMTc5NTIwYjk5YjAwNmQxMGMz
MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50
Rm9ybWF0dGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJp
bnRGb3JtYXR0ZXIubW0KQEAgLTQ5LDYgKzQ5LDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1dlYlZp
ZXdQcmludEZvcm1hdHRlciB7CiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbc2VsZi53ZWJWaWV3
IF9lbmRQcmludGluZ107CisgICAgW19mcmFtZVRvUHJpbnQgcmVsZWFzZV07CiAgICAgW3N1cGVy
IGRlYWxsb2NdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDI5NjM0YTBiNjYyY2I2NzM1MGYy
ZTZhY2U0ODZjZTZhM2Y0ZjBjZGIuLmIzMjNlYjdjNWM1YzhhYWNlMWIwY2ExY2QyNDIyZjk2NTQz
MzI5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCAtIChVSVZpZXcg
KilpbnB1dFZpZXcKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIGlmICghX2lucHV0UGVyaXBo
ZXJhbCkKLSAgICAgICAgX2lucHV0UGVyaXBoZXJhbCA9IGFkb3B0TlMoX2Fzc2lzdGVkTm9kZUlu
Zm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IElucHV0VHlwZTo6U2VsZWN0ID8gW1dLRm9ybVNlbGVj
dENvbnRyb2wgY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OnNlbGZdIDogW1dLRm9ybUlucHV0Q29u
dHJvbCBjcmVhdGVQZXJpcGhlcmFsV2l0aFZpZXc6c2VsZl0pOworICAgICAgICBfaW5wdXRQZXJp
cGhlcmFsID0gYWRvcHROUyhfYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uZWxlbWVudFR5cGUgPT0g
SW5wdXRUeXBlOjpTZWxlY3QgPyBbW1dLRm9ybVNlbGVjdENvbnRyb2wgYWxsb2NdIGluaXRXaXRo
VmlldzpzZWxmXSA6IFtbV0tGb3JtSW5wdXRDb250cm9sIGFsbG9jXSBpbml0V2l0aFZpZXc6c2Vs
Zl0pOwogICAgIGVsc2UKICAgICAgICAgW3NlbGYgX2Rpc3BsYXlGb3JtTm9kZUlucHV0Vmlld107
CiAKQEAgLTExMzgsOSArMTEzOCwxMSBAQCAtICh2b2lkKV9zaG93SW1hZ2VTaGVldAogLSAodm9p
ZClfc2hvd0F0dGFjaG1lbnRTaGVldAogewogICAgIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1
aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbX3dlYlZp
ZXcgVUlEZWxlZ2F0ZV0pOwotICAgIAotICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6KV0pCi0g
ICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHNob3dDdXN0b21TaGVldEZvckVs
ZW1lbnQ6W1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tB
Y3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgVVJMOltOU1VSTCBfd2ViX1VSTFdpdGhXVEZT
dHJpbmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsXSBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1h
dGlvbi5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJRDpfcG9zaXRpb25J
bmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBp
bWFnZTpuaWxdXTsKKyAgICBpZiAoIVt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6c2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDopXSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXV0byBlbGVtZW50ID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVu
dCBVUkw6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51
cmxdIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6
X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOm5pbF0pOworICAgIFt1aURlbGVnYXRl
IF93ZWJWaWV3Ol93ZWJWaWV3IHNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6ZWxlbWVudC5nZXQo
KV07CiB9CiAKIC0gKHZvaWQpX3Nob3dMaW5rU2hlZXQKQEAgLTM5MTQsOCArMzkxNiw4IEBAIC0g
KE5TRGljdGlvbmFyeSAqKV9kYXRhRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZXdJ
dGVtQ29udHJvbGxlciAqKWNvbnRyCiAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdXNlIFVJS2l0
IGNvbnN0YW50cy4KICAgICAgICAgZW51bSB7IFdLVUlQcmV2aWV3SXRlbVR5cGVBdHRhY2htZW50
ID0gNSB9OwogICAgICAgICAqdHlwZSA9IHN0YXRpY19jYXN0PFVJUHJldmlld0l0ZW1UeXBlPihX
S1VJUHJldmlld0l0ZW1UeXBlQXR0YWNobWVudCk7Ci0gICAgICAgIGNvbnN0IGF1dG8mIGVsZW1l
bnQgPSBbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0Fj
dGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudCBVUkw6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0
cmluZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51cmxdIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0
aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGlt
YWdlOm5pbF07Ci0gICAgICAgIE5TVUludGVnZXIgaW5kZXggPSBbdWlEZWxlZ2F0ZSBfd2ViVmll
dzpfd2ViVmlldyBpbmRleEludG9BdHRhY2htZW50TGlzdEZvckVsZW1lbnQ6ZWxlbWVudF07Cisg
ICAgICAgIGF1dG8gZWxlbWVudCA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBh
bGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgVVJM
OltOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsXSBs
b2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1h
dGlvbi50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3Np
dGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpuaWxdKTsKKyAgICAgICAgTlNVSW50ZWdlciBp
bmRleCA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGluZGV4SW50b0F0dGFjaG1lbnRM
aXN0Rm9yRWxlbWVudDplbGVtZW50LmdldCgpXTsKICAgICAgICAgaWYgKGluZGV4ICE9IE5TTm90
Rm91bmQpIHsKICAgICAgICAgICAgIGRhdGFGb3JQcmV2aWV3W0AiVUlQcmV2aWV3RGF0YUF0dGFj
aG1lbnRMaXN0Il0gPSBbdWlEZWxlZ2F0ZSBfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3Ol93ZWJW
aWV3XTsKICAgICAgICAgICAgIGRhdGFGb3JQcmV2aWV3W0AiVUlQcmV2aWV3RGF0YUF0dGFjaG1l
bnRJbmRleCJdID0gW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6aW5kZXhdOwpA
QCAtNDI5NiwyNyArNDI5OCwxNyBAQCArIChXS0F1dG9jb3JyZWN0aW9uQ29udGV4dCAqKWF1dG9j
b3JyZWN0aW9uQ29udGV4dFdpdGhEYXRhOihOU1N0cmluZyAqKWJlZm9yZVRleAogICAgIFdLQXV0
b2NvcnJlY3Rpb25Db250ZXh0ICpjb250ZXh0ID0gW1tXS0F1dG9jb3JyZWN0aW9uQ29udGV4dCBh
bGxvY10gaW5pdF07CiAKICAgICBpZiAoW2JlZm9yZVRleHQgbGVuZ3RoXSkKLSAgICAgICAgY29u
dGV4dC5jb250ZXh0QmVmb3JlU2VsZWN0aW9uID0gW2JlZm9yZVRleHQgY29weV07CisgICAgICAg
IGNvbnRleHQuY29udGV4dEJlZm9yZVNlbGVjdGlvbiA9IGJlZm9yZVRleHQ7CiAgICAgaWYgKFtz
ZWxlY3RlZFRleHQgbGVuZ3RoXSkKLSAgICAgICAgY29udGV4dC5zZWxlY3RlZFRleHQgPSBbc2Vs
ZWN0ZWRUZXh0IGNvcHldOworICAgICAgICBjb250ZXh0LnNlbGVjdGVkVGV4dCA9IHNlbGVjdGVk
VGV4dDsKICAgICBpZiAoW21hcmtlZFRleHQgbGVuZ3RoXSkKLSAgICAgICAgY29udGV4dC5tYXJr
ZWRUZXh0ID0gW21hcmtlZFRleHQgY29weV07CisgICAgICAgIGNvbnRleHQubWFya2VkVGV4dCA9
IG1hcmtlZFRleHQ7CiAgICAgaWYgKFthZnRlclRleHQgbGVuZ3RoXSkKLSAgICAgICAgY29udGV4
dC5jb250ZXh0QWZ0ZXJTZWxlY3Rpb24gPSBbYWZ0ZXJUZXh0IGNvcHldOworICAgICAgICBjb250
ZXh0LmNvbnRleHRBZnRlclNlbGVjdGlvbiA9IGFmdGVyVGV4dDsKICAgICBjb250ZXh0LnJhbmdl
SW5NYXJrZWRUZXh0ID0gcmFuZ2U7CiAgICAgcmV0dXJuIFtjb250ZXh0IGF1dG9yZWxlYXNlXTsK
IH0KIAotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW3NlbGYuY29udGV4dEJlZm9yZVNlbGVjdGlv
biByZWxlYXNlXTsKLSAgICBbc2VsZi5tYXJrZWRUZXh0IHJlbGVhc2VdOwotICAgIFtzZWxmLnNl
bGVjdGVkVGV4dCByZWxlYXNlXTsKLSAgICBbc2VsZi5jb250ZXh0QWZ0ZXJTZWxlY3Rpb24gcmVs
ZWFzZV07Ci0KLSAgICBbc3VwZXIgZGVhbGxvY107Ci19Ci0KIEBlbmQKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tGb3JtSW5wdXRDb250cm9sLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUlucHV0Q29udHJvbC5oCmluZGV4IGM3MGMwZTIzNDE3NjhiY2RmYjY3ZjZjMzJm
YzRiYWY4ZGQ0ZWVlOTEuLjRkNDE2ZDkwYjY0ZGEzOTg2YmFiNWM5YjZkZjNlYjM3YjU0ODY5ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5w
dXRDb250cm9sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zv
cm1JbnB1dENvbnRyb2wuaApAQCAtMzAsNyArMzAsNyBAQAogQGNsYXNzIFdLQ29udGVudFZpZXc7
CiAKIEBpbnRlcmZhY2UgV0tGb3JtSW5wdXRDb250cm9sIDogTlNPYmplY3Q8V0tGb3JtUGVyaXBo
ZXJhbD4KLSsgKFdLRm9ybUlucHV0Q29udHJvbCAqKWNyZWF0ZVBlcmlwaGVyYWxXaXRoVmlldzoo
V0tDb250ZW50VmlldyAqKXZpZXc7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0Nv
bnRlbnRWaWV3ICopdmlldzsKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250
cm9sLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENv
bnRyb2wubW0KaW5kZXggYzBlZmY3M2UxY2ZkMmJhY2M0Njk3YjczNzlmNmJhYzE3NzE1NGM5ZC4u
YjYzZmJkZDgxNzlkZTZlYzUyY2Q2ODQ3OTNkNGQ2NzkyMzlhNWU4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wu
bW0KQEAgLTIyNSw3ICsyMjUsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tGb3JtSW5wdXRDb250cm9s
IHsKICAgICBSZXRhaW5QdHI8aWQ8V0tGb3JtQ29udHJvbD4+IF9jb250cm9sOwogfQogCi0tIChp
ZClpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldwogewogICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtMjYzLDExICsyNjMsNiBAQCAtIChp
ZClpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CiAKIH0KIAotKyAoV0tGb3JtSW5w
dXRDb250cm9sICopY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmll
dwotewotICAgIHJldHVybiBbW1dLRm9ybUlucHV0Q29udHJvbCBhbGxvY10gaW5pdFdpdGhWaWV3
OnZpZXddOwotfQotCiAtICh2b2lkKWJlZ2luRWRpdGluZwogewogICAgIFtfY29udHJvbCBjb250
cm9sQmVnaW5FZGl0aW5nXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtU2VsZWN0Q29udHJvbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLmgKaW5kZXggZDY1ZjA2YTc3ZDFlYTM2MTdk
MWI0N2IyOWIyMGVlMzljYzM5ZmQyOS4uZjgxYTBlNzRiNzVlZDNjMmUxM2I5NWM0ODI2MDJkZjEy
NGQxYThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1TZWxlY3RDb250cm9sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLmgKQEAgLTM2LDcgKzM2LDcgQEAgQ0dGbG9hdCBhZGp1
c3RlZEZvbnRTaXplKENHRmxvYXQgdGV4dFdpZHRoLCBVSUZvbnQgKiwgQ0dGbG9hdCBpbml0aWFs
Rm9udFNpemUsIGMKIEBjbGFzcyBXS0NvbnRlbnRWaWV3OwogCiBAaW50ZXJmYWNlIFdLRm9ybVNl
bGVjdENvbnRyb2wgOiBOU09iamVjdDxXS0Zvcm1QZXJpcGhlcmFsPgotKyAoV0tGb3JtU2VsZWN0
Q29udHJvbCAqKWNyZWF0ZVBlcmlwaGVyYWxXaXRoVmlldzooV0tDb250ZW50VmlldyAqKXZpZXc7
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldzsKIEBl
bmQKIAogQGludGVyZmFjZSBXS1NlbGVjdFBvcG92ZXIgOiBXS0Zvcm1Sb3RhdGluZ0FjY2Vzc29y
eVBvcG92ZXI8V0tGb3JtQ29udHJvbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0Q29udHJvbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0Q29udHJvbC5tbQppbmRleCBkZDBlMWVlNDI0
M2YwMDhkZjJiNjBkN2IwNjg1MzcxNmUwZDQ4YWEwLi5lNGU4NjUyYjc2M2U3NDM0MWFmZjU5NGE3
YTljOGNkYWM3ZDgyZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLRm9ybVNlbGVjdENvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLm1tCkBAIC04NCwxMSArODQsNiBAQCAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldwogICAgIHJl
dHVybiBzZWxmOwogfQogCi0rIChXS0Zvcm1TZWxlY3RDb250cm9sICopY3JlYXRlUGVyaXBoZXJh
bFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldwotewotICAgIHJldHVybiBbW1dLRm9ybVNl
bGVjdENvbnRyb2wgYWxsb2NdIGluaXRXaXRoVmlldzp2aWV3XTsKLX0KLQogLSAoVUlWaWV3ICop
YXNzaXN0YW50VmlldwogewogICAgIHJldHVybiBbX2NvbnRyb2wgY29udHJvbFZpZXddOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVD
b2RpbmcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3Rh
dGVDb2RpbmcuY3BwCmluZGV4IDQ1ZGI3MGE5MDc3ZGJmZTdlY2ZjMTI4ZGZkZDllYjUxZWFiMGVl
NjYuLjAxNmM2YjkzMzQ2NTNjZmVhMjI5MGIyMTY1MDBhYjAwOTIxYmRlNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNv
ZGluZy5jcHAKQEAgLTExMjIsMjIgKzExMjIsMjMgQEAgYm9vbCBkZWNvZGVMZWdhY3lTZXNzaW9u
U3RhdGUoY29uc3QgdWludDhfdCogYnl0ZXMsIHNpemVfdCBzaXplLCBTZXNzaW9uU3RhdGUmIHMK
ICAgICBpZiAodmVyc2lvbk51bWJlciAhPSBzZXNzaW9uU3RhdGVEYXRhVmVyc2lvbikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5ID0gYWRv
cHRDRihkeW5hbWljX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRlByb3BlcnR5TGlzdENyZWF0
ZVdpdGhEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGJ5dGVzICsgc2l6ZW9mKHVpbnQzMl90KSwgc2l6ZSAtIHNpemVvZih1
aW50MzJfdCkpKS5nZXQoKSwga0NGUHJvcGVydHlMaXN0SW1tdXRhYmxlLCBudWxscHRyLCBudWxs
cHRyKSkpOworICAgIGF1dG8gY2ZQcm9wZXJ0eUxpc3QgPSBhZG9wdENGKENGUHJvcGVydHlMaXN0
Q3JlYXRlV2l0aERhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYWRvcHRDRihDRkRhdGFDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgYnl0ZXMgKyBzaXplb2YodWludDMyX3QpLCBzaXplIC0gc2l6
ZW9mKHVpbnQzMl90KSkpLmdldCgpLCBrQ0ZQcm9wZXJ0eUxpc3RJbW11dGFibGUsIG51bGxwdHIs
IG51bGxwdHIpKTsKKyAgICBhdXRvIHNlc3Npb25TdGF0ZURpY3Rpb25hcnkgPSBkeW5hbWljX2Nm
X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihjZlByb3BlcnR5TGlzdC5nZXQoKSk7CiAgICAgaWYgKCFz
ZXNzaW9uU3RhdGVEaWN0aW9uYXJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
YXV0byBiYWNrRm9yd2FyZExpc3REaWN0aW9uYXJ5ID0gZHluYW1pY19jZl9jYXN0PENGRGljdGlv
bmFyeVJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc2Vzc2lvblN0YXRlRGljdGlvbmFyeS5nZXQo
KSwgc2Vzc2lvbkhpc3RvcnlLZXkpKSkgeworICAgIGlmIChhdXRvIGJhY2tGb3J3YXJkTGlzdERp
Y3Rpb25hcnkgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRkRpY3Rpb25hcnlH
ZXRWYWx1ZShzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5LCBzZXNzaW9uSGlzdG9yeUtleSkpKSB7CiAg
ICAgICAgIGlmICghZGVjb2RlU2Vzc2lvbkhpc3RvcnkoYmFja0ZvcndhcmRMaXN0RGljdGlvbmFy
eSwgc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJkTGlzdFN0YXRlKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBwcm92aXNpb25hbFVSTFN0cmluZyA9IGR5
bmFtaWNfY2ZfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc2Vzc2lvblN0
YXRlRGljdGlvbmFyeS5nZXQoKSwgcHJvdmlzaW9uYWxVUkxLZXkpKSkgeworICAgIGlmIChhdXRv
IHByb3Zpc2lvbmFsVVJMU3RyaW5nID0gZHluYW1pY19jZl9jYXN0PENGU3RyaW5nUmVmPihDRkRp
Y3Rpb25hcnlHZXRWYWx1ZShzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5LCBwcm92aXNpb25hbFVSTEtl
eSkpKSB7CiAgICAgICAgIHNlc3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTCA9IFdlYkNvcmU6OlVS
TChXZWJDb3JlOjpVUkwoKSwgcHJvdmlzaW9uYWxVUkxTdHJpbmcpOwogICAgICAgICBpZiAoIXNl
c3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gcmVuZGVyVHJlZVNpemUgPSBkeW5hbWljX2Nm
X2Nhc3Q8Q0ZOdW1iZXJSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHNlc3Npb25TdGF0ZURpY3Rp
b25hcnkuZ2V0KCksIHJlbmRlclRyZWVTaXplS2V5KSkpCisgICAgaWYgKGF1dG8gcmVuZGVyVHJl
ZVNpemUgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZOdW1iZXJSZWY+KENGRGljdGlvbmFyeUdldFZhbHVl
KHNlc3Npb25TdGF0ZURpY3Rpb25hcnksIHJlbmRlclRyZWVTaXplS2V5KSkpCiAgICAgICAgIENG
TnVtYmVyR2V0VmFsdWUocmVuZGVyVHJlZVNpemUsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZzZXNz
aW9uU3RhdGUucmVuZGVyVHJlZVNpemUpOwogICAgIGVsc2UKICAgICAgICAgc2Vzc2lvblN0YXRl
LnJlbmRlclRyZWVTaXplID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvU2VydmljZXNDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9TZXJ2aWNlc0NvbnRyb2xsZXIubW0KaW5kZXggMmRkMzVjNTBmZDk2NDhmMTdhNzEwODM1ZWQ4
OWNjOWE1YTJmYzkwYy4uZTY1ZGFiYWU2NDQ0NTk1MWQ4ZmFhZTllOTRkM2U0OGE0ZjRlYTgyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xs
ZXIubW0KQEAgLTg3LDEwICs4NywxMCBAQCB2b2lkIFNlcnZpY2VzQ29udHJvbGxlcjo6cmVmcmVz
aEV4aXN0aW5nU2VydmljZXMoYm9vbCByZWZyZXNoSW1tZWRpYXRlbHkpCiAKICAgICAgICAgc3Rh
dGljIE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZFN0cmluZ1dpdGhSaWNoQ29udGVudDsK
ICAgICAgICAgaWYgKCFhdHRyaWJ1dGVkU3RyaW5nV2l0aFJpY2hDb250ZW50KSB7Ci0gICAgICAg
ICAgICBOU1RleHRBdHRhY2htZW50ICphdHRhY2htZW50ID0gW1tOU1RleHRBdHRhY2htZW50IGFs
bG9jXSBpbml0XTsKLSAgICAgICAgICAgIE5TVGV4dEF0dGFjaG1lbnRDZWxsICpjZWxsID0gW1tO
U1RleHRBdHRhY2htZW50Q2VsbCBhbGxvY10gaW5pdEltYWdlQ2VsbDppbWFnZS5nZXQoKV07Ci0g
ICAgICAgICAgICBbYXR0YWNobWVudCBzZXRBdHRhY2htZW50Q2VsbDpjZWxsXTsKLSAgICAgICAg
ICAgIE5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgKnJpY2hTdHJpbmcgPSAoTlNNdXRhYmxlQXR0
cmlidXRlZFN0cmluZyAqKVtOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nIGF0dHJpYnV0ZWRTdHJp
bmdXaXRoQXR0YWNobWVudDphdHRhY2htZW50XTsKKyAgICAgICAgICAgIGF1dG8gYXR0YWNobWVu
dCA9IGFkb3B0TlMoW1tOU1RleHRBdHRhY2htZW50IGFsbG9jXSBpbml0XSk7CisgICAgICAgICAg
ICBhdXRvIGNlbGwgPSBhZG9wdE5TKFtbTlNUZXh0QXR0YWNobWVudENlbGwgYWxsb2NdIGluaXRJ
bWFnZUNlbGw6aW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgICAgIFthdHRhY2htZW50IHNldEF0dGFj
aG1lbnRDZWxsOmNlbGwuZ2V0KCldOworICAgICAgICAgICAgTlNNdXRhYmxlQXR0cmlidXRlZFN0
cmluZyAqcmljaFN0cmluZyA9IChOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nICopW05TTXV0YWJs
ZUF0dHJpYnV0ZWRTdHJpbmcgYXR0cmlidXRlZFN0cmluZ1dpdGhBdHRhY2htZW50OmF0dGFjaG1l
bnQuZ2V0KCldOwogICAgICAgICAgICAgW3JpY2hTdHJpbmcgYXBwZW5kQXR0cmlidXRlZFN0cmlu
ZzogYXR0cmlidXRlZFN0cmluZ107CiAgICAgICAgICAgICBhdHRyaWJ1dGVkU3RyaW5nV2l0aFJp
Y2hDb250ZW50ID0gW3JpY2hTdHJpbmcgcmV0YWluXTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmlu
ZGV4IGRmYzNjZWQ2YmU2NDkyYjRmZjkyZTQxNWE2ODlmMmM2OTJhYTM1MWEuLjRjMmVlOTkzZTAx
MzdlOGNkMzVkMDAzNzVlNjA5YmZlM2NhZWUwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTIzMSw5ICsy
MzEsOSBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNldHVwU2VydmljZXNNZW51KCkK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9tZW51ID0gYWRvcHROUyhbW05TTWVudSBhbGxv
Y10gaW5pdF0pOwogICAgICAgICBpbnQgaXRlbVBvc2l0aW9uID0gMDsKLSAgICAgICAgTlNNZW51
SXRlbSAqZ3JvdXBFbnRyeSA9IFtbTlNNZW51SXRlbSBhbGxvY10gaW5pdFdpdGhUaXRsZTptZW51
SXRlbVRpdGxlRm9yVGVsZXBob25lTnVtYmVyR3JvdXAoKSBhY3Rpb246bmlsIGtleUVxdWl2YWxl
bnQ6QCIiXTsKKyAgICAgICAgYXV0byBncm91cEVudHJ5ID0gYWRvcHROUyhbW05TTWVudUl0ZW0g
YWxsb2NdIGluaXRXaXRoVGl0bGU6bWVudUl0ZW1UaXRsZUZvclRlbGVwaG9uZU51bWJlckdyb3Vw
KCkgYWN0aW9uOm5pbCBrZXlFcXVpdmFsZW50OkAiIl0pOwogICAgICAgICBbZ3JvdXBFbnRyeSBz
ZXRFbmFibGVkOk5PXTsKLSAgICAgICAgW21fbWVudSBpbnNlcnRJdGVtOmdyb3VwRW50cnkgYXRJ
bmRleDppdGVtUG9zaXRpb24rK107CisgICAgICAgIFttX21lbnUgaW5zZXJ0SXRlbTpncm91cEVu
dHJ5LmdldCgpIGF0SW5kZXg6aXRlbVBvc2l0aW9uKytdOwogICAgICAgICBmb3IgKGF1dG8mIG1l
bnVJdGVtIDogdGVsZXBob25lTnVtYmVyTWVudUl0ZW1zKQogICAgICAgICAgICAgW21fbWVudSBp
bnNlcnRJdGVtOm1lbnVJdGVtLmdldCgpIGF0SW5kZXg6aXRlbVBvc2l0aW9uKytdOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKaW5kZXggOGU1
MWMzNTVlYjE0YjgxZGM3Yzg0YmE0MjAzNDc1NmE4MGYwMDVlNC4uZmNmODJjMzY4NTk4ZjdhYmRk
YTFjOTk1MmUwMDkwZWI2OTNmZGY1OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy9jcHAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9jcHAucHkKQEAgLTE0NzYsNyArMTQ3Niw3IEBAIGRlZiBjaGVja19zcGFjaW5n
X2Zvcl9mdW5jdGlvbl9jYWxsKGxpbmUsIGxpbmVfbnVtYmVyLCBlcnJvcik6CiAgICAgICAgICAg
ICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvcGFyZW5zJywgMiwKICAgICAgICAgICAg
ICAgICAgICdFeHRyYSBzcGFjZSBhZnRlciAoJykKICAgICAgICAgaWYgKHNlYXJjaChyJ1x3XHMr
XCgnLCBmdW5jdGlvbl9jYWxsKQotICAgICAgICAgICAgYW5kIG5vdCBtYXRjaChyJ1xzKigoI3x0
eXBlZGVmfEBwcm9wZXJ0eXxAaW50ZXJmYWNlfEBpbXBsZW1lbnRhdGlvbil8fSBAY2F0Y2hcYikn
LCBmdW5jdGlvbl9jYWxsKSk6CisgICAgICAgICAgICBhbmQgbm90IG1hdGNoKHInXHMqKCgjfHR5
cGVkZWZ8QHByb3BlcnR5fEBpbnRlcmZhY2V8QGltcGxlbWVudGF0aW9ufEBzeW5jaHJvbml6ZWQp
fH0gQGNhdGNoXGIpJywgZnVuY3Rpb25fY2FsbCkpOgogICAgICAgICAgICAgZXJyb3IobGluZV9u
dW1iZXIsICd3aGl0ZXNwYWNlL3BhcmVucycsIDQsCiAgICAgICAgICAgICAgICAgICAnRXh0cmEg
c3BhY2UgYmVmb3JlICggaW4gZnVuY3Rpb24gY2FsbCcpCiAgICAgICAgICMgSWYgdGhlICkgaXMg
Zm9sbG93ZWQgb25seSBieSBhIG5ld2xpbmUgb3IgYSB7ICsgbmV3bGluZSwgYXNzdW1lIGl0J3MK
QEAgLTI0MjYsNyArMjQyNiw3IEBAIGRlZiBjaGVja19icmFjZXMoY2xlYW5fbGluZXMsIGxpbmVf
bnVtYmVyLCBlcnJvcik6CiAgICAgICAgICAgICAgICAgICAnVGhpcyB7IHNob3VsZCBiZSBhdCB0
aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBsaW5lJykKICAgICBlbGlmIChzZWFyY2gocidcKVxzKigo
KGNvbnN0fG92ZXJyaWRlKVxzKikqXHMqKT97XHMqJCcsIGxpbmUpCiAgICAgICAgICAgYW5kIGxp
bmUuY291bnQoJygnKSA9PSBsaW5lLmNvdW50KCcpJykKLSAgICAgICAgICBhbmQgbm90IHNlYXJj
aChyJyhcYihpZnxmb3J8d2hpbGV8c3dpdGNofE5TX0VOVU0pfH0gQGNhdGNoKVxiJywgbGluZSkK
KyAgICAgICAgICBhbmQgbm90IHNlYXJjaChyJyhccyooaWZ8Zm9yfHdoaWxlfHN3aXRjaHxOU19F
TlVNfEBzeW5jaHJvbml6ZWQpfH0gQGNhdGNoKVxiJywgbGluZSkKICAgICAgICAgICBhbmQgbm90
IG1hdGNoKHInXHMrW0EtWl9dW0EtWl8wLTldK1xiJywgbGluZSkpOgogICAgICAgICBlcnJvcihs
aW5lX251bWJlciwgJ3doaXRlc3BhY2UvYnJhY2VzJywgNCwKICAgICAgICAgICAgICAgJ1BsYWNl
IGJyYWNlIG9uIGl0cyBvd24gbGluZSBmb3IgZnVuY3Rpb24gZGVmaW5pdGlvbnMuJykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3Qu
cHkKaW5kZXggNTgyZGNiMGU3ZTRjY2M5Nzk0ZmMxYzY4MzE1ZTljYTc2ZjVjMjc5OC4uMzA1MjAz
ZjJhNTIxMWFjNWU1YTQ3MDZlOTEwZDcxMTcwMDIzNjBjMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKQEAgLTE3ODks
NiArMTc4OSwxMCBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAg
ICAgICAgICAnICAgIH0gQGNhdGNoIChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7XG4nCiAgICAg
ICAgICAgICAnICAgIH1cbicsCiAgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRf
bXVsdGlfbGluZV9saW50KAorICAgICAgICAgICAgJyAgICBAc3luY2hyb25pemVkIChzZWxmKSB7
XG4nCisgICAgICAgICAgICAnICAgIH1cbicsCisgICAgICAgICAgICAnJykKIAogICAgIGRlZiB0
ZXN0X21pc21hdGNoaW5nX3NwYWNlc19pbl9wYXJlbnMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0X2xpbnQoJ2lmIChmb28gKSB7JywgJ0V4dHJhIHNwYWNlIGJlZm9yZSApIGluIGlmJwo=
</data>
<flag name="commit-queue"
          id="301405"
          type_id="3"
          status="-"
          setter="aestes"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277175</attachid>
            <date>2016-04-23 18:47:17 -0700</date>
            <delta_ts>2016-04-23 19:49:27 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-156956-20160423184742.patch</filename>
            <type>text/plain</type>
            <size>26049</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI2MDkzNTQyM2Q2YzI3
YmQyYmVlMzA0OTZiMjJkZTYzN2E4OTBiOC4uMWY4YzczMTI0OTgzY2Q5M2M5YjZiMGUwN2ViMDJh
OTczZTc2ZmQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA0LTIzICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggaXNzdWVzIGZvdW5kIGJ5
IHRoZSBjbGFuZyBzdGF0aWMgYW5hbHl6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1Njk1NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQ
cm9za3VyeWFrb3YuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06
CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpkZXRlY3RDb250ZW50SW5SYW5nZSk6
IFN0b3JlZCB0eiBpbiBhIFJldGFpblB0ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9LZXllZERl
Y29kZXJDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXllZERlY29kZXJDRjo6S2V5ZWREZWNv
ZGVyQ0YpOiBJZiBkeW5hbWljX2NmX2Nhc3QgcmV0dXJuZWQgbnVsbHB0ciwgdGhlIHJlc3VsdCBv
ZgorICAgICAgICBDRlByb3BlcnR5TGlzdENyZWF0ZVdpdGhEYXRhIHdvdWxkIGxlYWsuIFN0b3Jl
ZCB0aGUgQ0ZQcm9wZXJ0eUxpc3RSZWYgaW4gYSBSZXRhaW5QdHIsIHRoZW4gbGVha2VkL2Fkb3B0
ZWQgaXQKKyAgICAgICAgaW50byBtX3Jvb3REaWN0aW9uYXJ5ICh0byBhdm9pZCByZXRhaW4gY291
bnQgY2h1cm4pIGlmIGl0IGlzIGEgQ0ZEaWN0aW9uYXJ5LgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJBVlBsYXllckNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJv
bGxlciBkZWFsbG9jXSk6IFJlbGVhc2VkIF9leHRlcm5hbFBsYXliYWNrQWlyUGxheURldmljZUxv
Y2FsaXplZE5hbWUuCisgICAgICAgICgtW1dlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gZGVhbGxv
Y10pOiBBZGRlZCB0byByZWxlYXNlIF9sb2NhbGl6ZWREaXNwbGF5TmFtZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAg
ICgtW1dlYkFWUGxheWVyTGF5ZXIgZGVhbGxvY10pOiBSZWxlYXNlZCBfcGl4ZWxCdWZmZXJBdHRy
aWJ1dGVzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vz
c2lvbi5oOiBSZW1vdmVkIHRoZSByZWFkd3JpdGUgYXR0cmlidXRlcyBmcm9tIHByb3BlcnRpZXMs
IHNpbmNlCisgICAgICAgIHByb3BlcnRpZXMgYXJlIHJlYWR3cml0ZSBieSBkZWZhdWx0LgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbTogUmVt
b3ZlZCBAZHluYW1pYywgd2hpY2ggaXNuJ3QgbmVjZXNzYXJ5IGp1c3QgZm9yIGRlZmluaW5nIGEg
Y3VzdG9tIGdldHRlci4KKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrIGRl
YWxsb2NdKTogQWRkZWQgdG8gcmVsZWFzZSBjb3BpZWQgaXZhcnMuCisKIDIwMTYtMDQtMjIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDYW5ub3QgYWNjZXNzIHRo
ZSBTUUxUcmFuc2FjdGlvbi5jb25zdHJ1Y3Rvci5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCAzMzIxNWNhZmRjMTc3MzFlZTE3NDMwZmUzYzlmYWFlZmU1OGJhM2M0Li5iM2VlMzFlMTk2MjAz
YWM1ODAwMDhhYjQwY2E0Y2E2YzA1MGIxMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTYtMDQtMjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBpc3N1ZXMgZm91bmQgYnkgdGhlIGNsYW5nIHN0YXRpYyBhbmFseXplcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIFdlYlZpZXcv
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW06CisgICAgICAgICgtW1dlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrIGRlYWxsb2NdKTogW3N1cGVyIGRlYWxsb2NdIHNob3Vs
ZCBiZSBjYWxsZWQgbGFzdC4KKwogMjAxNi0wNC0yMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGlPUyBidWlsZDogV0FLVmlldyBtYXkg
bm90IHJlc3BvbmQgdG8gZHJhd0xheWVyOmluQ29udGV4dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYzYyZjAy
ODdiNGIxNGQ1YjE2MGJlYWFjNjFmMzAyZjAzZmJlMWY0Li41OGIxMzU2ZjQ0ZDZmZWU2NTRhZDU2
MDI1N2E1MGM2ZjY3ZmMxNDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTYtMDQt
MjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBpc3N1ZXMg
Zm91bmQgYnkgdGhlIGNsYW5nIHN0YXRpYyBhbmFseXplcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSXRlbS5tbToKKyAgICAgICAgKC1bV0tQcmV2aWV3QWN0aW9uIGRlYWxsb2Nd
KTogQWRkZWQgdG8gcmVsZWFzZSBfaWRlbnRpZmllci4KKyAgICAgICAgKiBVSVByb2Nlc3MvX1dL
V2ViVmlld1ByaW50Rm9ybWF0dGVyLm1tOgorICAgICAgICAoLVtfV0tXZWJWaWV3UHJpbnRGb3Jt
YXR0ZXIgZGVhbGxvY10pOiBSZWxlYXNlZCBfZnJhbWVUb1ByaW50LgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGlucHV0Vmlld10pOiAtY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OiByZXR1cm5lZCBh
IHJldGFpbmVkIG9iamVjdCwgYnV0IHRoZSBtZXRob2QgbmFtZSBkaWQgbm90CisgICAgICAgIG1h
dGNoIENvY29hIGNvbnZlbnRpb25zLiBDYWxsZWQgLWluaXRXaXRoVmlldzogaW5zdGVhZC4KKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd0F0dGFjaG1lbnRTaGVldF0pOiBTdG9yZWQgdGhl
IF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGluIGEgUmV0YWluUHRyLgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9kYXRhRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOmF0UG9zaXRpb246dHlwZTpd
KTogRGl0dG8uCisgICAgICAgICgrW1dLQXV0b2NvcnJlY3Rpb25Db250ZXh0IGF1dG9jb3JyZWN0
aW9uQ29udGV4dFdpdGhEYXRhOm1hcmtlZFRleHQ6c2VsZWN0ZWRUZXh0OmFmdGVyVGV4dDpzZWxl
Y3RlZFJhbmdlSW5NYXJrZWRUZXh0Ol0pOgorICAgICAgICBUaGUgcHJvcGVydGllcyBjb250ZXh0
QmVmb3JlU2VsZWN0aW9uLCBzZWxlY3RlZFRleHQsIG1hcmtlZFRleHQsIGFuZCBjb250ZXh0QWZ0
ZXJTZWxlY3Rpb24gaGF2ZSB0aGUgJ2NvcHknCisgICAgICAgIGFubm90YXRpb24gaW4gVUlXS0F1
dG9jb3JyZWN0aW9uQ29udGV4dCwgc28gdGhlIGFkZGl0aW9uYWwgY29weSBtYWRlIGhlcmUgd291
bGQgYmUgbGVha2VkLiBSZW1vdmVkIHRoZSBleHRyYSBjb3B5LgorICAgICAgICAoLVtXS0F1dG9j
b3JyZWN0aW9uQ29udGV4dCBkZWFsbG9jXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wuaDogUmVtb3ZlZCAtY3JlYXRlUGVyaXBoZXJh
bFdpdGhWaWV3OiBhbmQgZGVjbGFyZWQgLWluaXRXaXRoVmlldzouCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRm9ybUlu
cHV0Q29udHJvbCBpbml0V2l0aFZpZXc6XSk6IENoYW5nZWQgdG8gcmV0dXJuIGluc3RhbmNldHlw
ZS4KKyAgICAgICAgKCtbV0tGb3JtSW5wdXRDb250cm9sIGNyZWF0ZVBlcmlwaGVyYWxXaXRoVmll
dzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVj
dENvbnRyb2wuaDogUmVtb3ZlZCAtY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OiBhbmQgZGVjbGFy
ZWQgLWluaXRXaXRoVmlldzouCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1T
ZWxlY3RDb250cm9sLm1tOgorICAgICAgICAoK1tXS0Zvcm1TZWxlY3RDb250cm9sIGNyZWF0ZVBl
cmlwaGVyYWxXaXRoVmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0xl
Z2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZUxlZ2Fj
eVNlc3Npb25TdGF0ZSk6IElmIGR5bmFtaWNfY2ZfY2FzdCByZXR1cm5lZCBudWxscHRyLCB0aGUg
cmVzdWx0IG9mCisgICAgICAgIENGUHJvcGVydHlMaXN0Q3JlYXRlV2l0aERhdGEgd291bGQgbGVh
ay4gU3RvcmVkIHRoZSBDRlByb3BlcnR5TGlzdFJlZiBpbiBhIFJldGFpblB0ciBiZWZvcmUgY2Fs
bGluZyBkeW5hbWljX2NmX2Nhc3QuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0Nv
bnRyb2xsZXIubW06CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzQ29udHJvbGxlcjo6cmVmcmVz
aEV4aXN0aW5nU2VydmljZXMpOiBVc2VkIGEgUmV0YWluUHRyIGZvciBhdHRhY2htZW50IGFuZCBj
ZWxsLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2V0dXBTZXJ2aWNlc01l
bnUpOiBVc2VkIGEgUmV0YWluUHRyIGZvciBncm91cEVudHJ5LgorCiAyMDE2LTA0LTIyICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGluZyBhIHR5cG8g
aW4gbXkgbGFzdCBjb21taXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFE
ZXRlY3Rpb24ubW0KaW5kZXggZDJlY2FiZjIwZWFjODYwZGU1ZGM4MzNiZWUxZTUxYmVhOTJiMjdh
NC4uN2MyNDY0YWI5NDZlMTcyOTIzYjc0ODU4ZTRkYTllMzg1OTgzOWIxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtNTUwLDcgKzU1MCw3
IEBAIE5TQXJyYXkgKkRhdGFEZXRlY3Rpb246OmRldGVjdENvbnRlbnRJblJhbmdlKFJlZlB0cjxS
YW5nZT4mIGNvbnRleHRSYW5nZSwgRGF0YURlCiAgICAgICAgIGFsbFJlc3VsdFJhbmdlcy5hcHBl
bmQoV1RGTW92ZShmcmFnbWVudFJhbmdlcykpOwogICAgIH0KICAgICAKLSAgICBDRlRpbWVab25l
UmVmIHR6ID0gQ0ZUaW1lWm9uZUNvcHlEZWZhdWx0KCk7CisgICAgYXV0byB0eiA9IGFkb3B0Q0Yo
Q0ZUaW1lWm9uZUNvcHlEZWZhdWx0KCkpOwogICAgIE5TRGF0ZSAqcmVmZXJlbmNlRGF0ZSA9IFtO
U0RhdGUgZGF0ZV07CiAgICAgVGV4dCogbGFzdFRleHROb2RlVG9VcGRhdGUgPSBudWxscHRyOwog
ICAgIFN0cmluZyBsYXN0Tm9kZUNvbnRlbnQ7CkBAIC01ODIsNyArNTgyLDcgQEAgTlNBcnJheSAq
RGF0YURldGVjdGlvbjo6ZGV0ZWN0Q29udGVudEluUmFuZ2UoUmVmUHRyPFJhbmdlPiYgY29udGV4
dFJhbmdlLCBEYXRhRGUKICAgICAgICAgICAgIHJhbmdlQm91bmRhcmllcy51bmNoZWNrZWRBcHBl
bmQoeyByYW5nZS0+c3RhcnRQb3NpdGlvbigpLCByYW5nZS0+ZW5kUG9zaXRpb24oKSB9KTsKIAog
ICAgICAgICBOU1N0cmluZyAqaWRlbnRpZmllciA9IGRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgo
aW5kZXhQYXRoc1tyZXN1bHRJbmRleF0uZ2V0KCkpOwotICAgICAgICBOU1N0cmluZyAqY29ycmVz
cG9uZGluZ1VSTCA9IGNvbnN0cnVjdFVSTFN0cmluZ0ZvclJlc3VsdChjb3JlUmVzdWx0LCBpZGVu
dGlmaWVyLCByZWZlcmVuY2VEYXRlLCAoTlNUaW1lWm9uZSAqKXR6LCB0eXBlcyk7CisgICAgICAg
IE5TU3RyaW5nICpjb3JyZXNwb25kaW5nVVJMID0gY29uc3RydWN0VVJMU3RyaW5nRm9yUmVzdWx0
KGNvcmVSZXN1bHQsIGlkZW50aWZpZXIsIHJlZmVyZW5jZURhdGUsIChOU1RpbWVab25lICopdHou
Z2V0KCksIHR5cGVzKTsKICAgICAgICAgYm9vbCBkaWRNb2RpZnlET00gPSBmYWxzZTsKIAogICAg
ICAgICBpZiAoIWNvcnJlc3BvbmRpbmdVUkwgfHwgc2VhcmNoRm9yTGlua1JlbW92aW5nRXhpc3Rp
bmdERExpbmtzKHJlc3VsdFJhbmdlcy5maXJzdCgpLT5zdGFydENvbnRhaW5lcigpLCByZXN1bHRS
YW5nZXMubGFzdCgpLT5lbmRDb250YWluZXIoKSwgZGlkTW9kaWZ5RE9NKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0tleWVkRGVjb2RlckNGLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NmL0tleWVkRGVjb2RlckNGLmNwcAppbmRleCA4MTAzODM4YTc2NjA1
ZjZkMDc1Zjc3YTA1OWFhMDBjNDRlYzczNjg0Li4wNTY5MDMxZTUxNGY3OTBhMThhOTkyOTQwMTdl
MzJlZTA4YzQwNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LZXll
ZERlY29kZXJDRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvS2V5ZWREZWNv
ZGVyQ0YuY3BwCkBAIC0zOSw5ICszOSwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8S2V5ZWREZWNvZGVy
PiBLZXllZERlY29kZXI6OmRlY29kZXIoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90CiBLZXll
ZERlY29kZXJDRjo6S2V5ZWREZWNvZGVyQ0YoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNp
emUpCiB7CiAgICAgYXV0byBjZkRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZVdpdGhCeXRlc05v
Q29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhLCBzaXplLCBrQ0ZBbGxvY2F0b3JOdWxsKSk7
CisgICAgYXV0byBjZlByb3BlcnR5TGlzdCA9IGFkb3B0Q0YoQ0ZQcm9wZXJ0eUxpc3RDcmVhdGVX
aXRoRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjZkRhdGEuZ2V0KCksIGtDRlByb3BlcnR5TGlz
dEltbXV0YWJsZSwgbnVsbHB0ciwgbnVsbHB0cikpOwogCi0gICAgaWYgKGF1dG8gcm9vdERpY3Rp
b25hcnkgPSBhZG9wdENGKGR5bmFtaWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGUHJvcGVy
dHlMaXN0Q3JlYXRlV2l0aERhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY2ZEYXRhLmdldCgpLCBr
Q0ZQcm9wZXJ0eUxpc3RJbW11dGFibGUsIG51bGxwdHIsIG51bGxwdHIpKSkpCi0gICAgICAgIG1f
cm9vdERpY3Rpb25hcnkgPSBXVEZNb3ZlKHJvb3REaWN0aW9uYXJ5KTsKKyAgICBpZiAoZHluYW1p
Y19jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oY2ZQcm9wZXJ0eUxpc3QuZ2V0KCkpKQorICAgICAg
ICBtX3Jvb3REaWN0aW9uYXJ5ID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDRkRpY3Rpb25hcnlSZWY+
KGNmUHJvcGVydHlMaXN0LmxlYWtSZWYoKSkpOwogICAgIGVsc2UKICAgICAgICAgbV9yb290RGlj
dGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIG51bGxwdHIsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBtX2RpY3Rpb25hcnlTdGFjay5h
cHBlbmQobV9yb290RGljdGlvbmFyeS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQVZQbGF5ZXJDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkFWUGxheWVyQ29udHJvbGxlci5tbQppbmRleCBiZmE3N2ZiYTdkYjRl
MmJiZjUwMTM3OWZmMGU4YzI0NTQ4NWFlN2VjLi4yNTY5MzE3MDMwZTFjMWM3ZmRhOTYxZGI1NGY4
MzJjOGFjMGZkZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
QVZQbGF5ZXJDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJBVlBsYXllckNvbnRyb2xsZXIubW0KQEAgLTcxLDYgKzcxLDcgQEAgLSAodm9pZClkZWFsbG9j
CiAgICAgW19sZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zIHJlbGVhc2VdOwogICAgIFtfY3Vy
cmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb24gcmVsZWFzZV07CiAgICAgW19jdXJyZW50TGVn
aWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uIHJlbGVhc2VdOworICAgIFtfZXh0ZXJuYWxQbGF5YmFj
a0FpclBsYXlEZXZpY2VMb2NhbGl6ZWROYW1lIHJlbGVhc2VdOwogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KIApAQCAtNDUzLDYgKzQ1NCwxMyBAQCAtICh2b2lkKXNldFBpY3R1cmVJblBpY3R1cmVJ
bnRlcnJ1cHRlZDooQk9PTClwaWN0dXJlSW5QaWN0dXJlSW50ZXJydXB0ZWQKIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24KKworLSAodm9pZClkZWFsbG9j
Cit7CisgICAgW19sb2NhbGl6ZWREaXNwbGF5TmFtZSByZWxlYXNlXTsKKyAgICBbc3VwZXIgZGVh
bGxvY107Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbQppbmRleCBmM2FhODAzNWIzMmYxMzMwYmJkNTJlZGQ0NTYyZWJlYjVj
ODU4Mzg0Li4wYTE2MDYyYzE5NDcxMDM1YjA1M2E1YTVlZjNkMThmNjA3NDljNjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC0yMzQsNiArMjM0LDcgQEAgLSAoaW5zdGFuY2V0
eXBlKWluaXQKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91
c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2
ZUJvdW5kcykgb2JqZWN0Om5pbF07CisgICAgW19waXhlbEJ1ZmZlckF0dHJpYnV0ZXMgcmVsZWFz
ZV07CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oCmluZGV4
IDllYmExMjBhNjljNzAxNzBlYjkyOTU1OWRiODBlM2YxMjI5ZmU5ODMuLjU0YmMxMzljZjA0ZTdk
ZmY0YWYwYTM5MzI5NjM2NWJjYjFhN2JiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oCkBAIC0x
MTksMTYgKzExOSwxNyBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkNvcmVOU1VSTFNl
c3Npb24gOiBOU09iamVjdCB7CiAgICAgTlNTdHJpbmcgKl90YXNrRGVzY3JpcHRpb247CiAgICAg
ZmxvYXQgX3ByaW9yaXR5OwogfQotQHByb3BlcnR5IChyZWFkd3JpdGUpIE5TVUludGVnZXIgdGFz
a0lkZW50aWZpZXI7Ci1AcHJvcGVydHkgKHJlYWR3cml0ZSwgY29weSkgTlNVUkxSZXF1ZXN0ICpv
cmlnaW5hbFJlcXVlc3Q7Ci1AcHJvcGVydHkgKHJlYWR3cml0ZSwgY29weSkgTlNVUkxSZXF1ZXN0
ICpjdXJyZW50UmVxdWVzdDsKKworQHByb3BlcnR5IE5TVUludGVnZXIgdGFza0lkZW50aWZpZXI7
CitAcHJvcGVydHkgKGNvcHkpIE5TVVJMUmVxdWVzdCAqb3JpZ2luYWxSZXF1ZXN0OworQHByb3Bl
cnR5IChjb3B5KSBOU1VSTFJlcXVlc3QgKmN1cnJlbnRSZXF1ZXN0OwogQHByb3BlcnR5IChyZWFk
b25seSwgY29weSkgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2U7Ci1AcHJvcGVydHkgKHJlYWR3cml0
ZSkgaW50NjRfdCBjb3VudE9mQnl0ZXNSZWNlaXZlZDsKLUBwcm9wZXJ0eSAocmVhZHdyaXRlKSBp
bnQ2NF90IGNvdW50T2ZCeXRlc1NlbnQ7Ci1AcHJvcGVydHkgKHJlYWR3cml0ZSkgaW50NjRfdCBj
b3VudE9mQnl0ZXNFeHBlY3RlZFRvU2VuZDsKLUBwcm9wZXJ0eSAocmVhZHdyaXRlKSBpbnQ2NF90
IGNvdW50T2ZCeXRlc0V4cGVjdGVkVG9SZWNlaXZlOwotQHByb3BlcnR5IChyZWFkd3JpdGUpIE5T
VVJMU2Vzc2lvblRhc2tTdGF0ZSBzdGF0ZTsKLUBwcm9wZXJ0eSAocmVhZHdyaXRlLCBjb3B5KSBO
U0Vycm9yICplcnJvcjsKK0Bwcm9wZXJ0eSBpbnQ2NF90IGNvdW50T2ZCeXRlc1JlY2VpdmVkOwor
QHByb3BlcnR5IGludDY0X3QgY291bnRPZkJ5dGVzU2VudDsKK0Bwcm9wZXJ0eSBpbnQ2NF90IGNv
dW50T2ZCeXRlc0V4cGVjdGVkVG9TZW5kOworQHByb3BlcnR5IGludDY0X3QgY291bnRPZkJ5dGVz
RXhwZWN0ZWRUb1JlY2VpdmU7CitAcHJvcGVydHkgTlNVUkxTZXNzaW9uVGFza1N0YXRlIHN0YXRl
OworQHByb3BlcnR5IChjb3B5KSBOU0Vycm9yICplcnJvcjsKIEBwcm9wZXJ0eSAoY29weSkgTlNT
dHJpbmcgKnRhc2tEZXNjcmlwdGlvbjsKIEBwcm9wZXJ0eSBmbG9hdCBwcmlvcml0eTsKIC0gKHZv
aWQpY2FuY2VsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCmluZGV4IDQxOWM5MjM4YTU0YjBhN2Ex
OTRlMDYyNWQyYjJlMjZmMjVlN2YwMDIuLjM3NTE5OTcxMThiZTllMzdiZmYyZmE2NDI4OWNhZWUw
MmY2OGIxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KQEAgLTQ1Nyw3ICs0NTcsNyBAQCBA
c3ludGhlc2l6ZSBzdGF0ZT1fc3RhdGU7CiBAc3ludGhlc2l6ZSBlcnJvcj1fZXJyb3I7CiBAc3lu
dGhlc2l6ZSB0YXNrRGVzY3JpcHRpb249X3Rhc2tEZXNjcmlwdGlvbjsKIEBzeW50aGVzaXplIHBy
aW9yaXR5PV9wcmlvcml0eTsKLUBkeW5hbWljIHJlc3BvbnNlOworCiAtIChOU1VSTFJlc3BvbnNl
ICopcmVzcG9uc2UKIHsKICAgICByZXR1cm4gX3Jlc3BvbnNlLmdldCgpOwpAQCAtNDk3LDYgKzQ5
NywxNSBAQCAtICh2b2lkKXJlc3VtZQogICAgIH0pOwogfQogCistICh2b2lkKWRlYWxsb2MKK3sK
KyAgICBbX29yaWdpbmFsUmVxdWVzdCByZWxlYXNlXTsKKyAgICBbX2N1cnJlbnRSZXF1ZXN0IHJl
bGVhc2VdOworICAgIFtfZXJyb3IgcmVsZWFzZV07CisgICAgW190YXNrRGVzY3JpcHRpb24gcmVs
ZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiAjcHJhZ21hIG1hcmsgLSBOU1VSTFNl
c3Npb24gU1BJCiAKIC0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2Nr
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyTW9jay5tbQppbmRleCAyNDVkMjE4MGM4OWYwMWFjOWY5YTkwZjRiMzVmN2Q4NjVjOGVjMmFh
Li5mMjM1MjNiOTE4YjE2MjMxM2QyMDJkOGQ0OWEyYjI3YTcyZTdlMzYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2Nr
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlck1vY2subW0KQEAgLTk1LDggKzk1LDggQEAgLSAoaWQpaW5pdAogCiAtICh2b2lkKWRl
YWxsb2MKIHsKLSAgICBbc3VwZXIgZGVhbGxvY107CiAgICAgW21faW50ZXJuYWwgcmVsZWFzZV07
CisgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCiAtICh2b2lkKXNldE9yaWVudGF0aW9uOihXZWJE
ZXZpY2VPcmllbnRhdGlvbiopb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQppbmRleCBjN2Mz
MGQxYzIzNGUwMjNlNTVkY2EzNThkYTc1OGI0NTI3NDVjMWEzLi5iMWQyMTY3MzZkYWMyNjA4NjY3
Zjk4YWRlN2RhYzlhNTMwYTNjMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCkBAIC00NSw2ICs0NSwx
MiBAQCAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKICAgICByZXR1cm4gYWN0aW9u
OwogfQogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbX2lkZW50aWZpZXIgcmVsZWFzZV07Cisg
ICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxF
RCAmJiBUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQppbmRleCAwOGI5OGE4ZGZmY2JkNDA2N2VlYWJk
Y2E0MzU2Y2YyZmM3MzI1ODA3Li43YmJjNTg3M2E5YTRmNzZiMjZmMTc5NTIwYjk5YjAwNmQxMGMz
MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50
Rm9ybWF0dGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJp
bnRGb3JtYXR0ZXIubW0KQEAgLTQ5LDYgKzQ5LDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1dlYlZp
ZXdQcmludEZvcm1hdHRlciB7CiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbc2VsZi53ZWJWaWV3
IF9lbmRQcmludGluZ107CisgICAgW19mcmFtZVRvUHJpbnQgcmVsZWFzZV07CiAgICAgW3N1cGVy
IGRlYWxsb2NdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDI5NjM0YTBiNjYyY2I2NzM1MGYy
ZTZhY2U0ODZjZTZhM2Y0ZjBjZGIuLmIzMjNlYjdjNWM1YzhhYWNlMWIwY2ExY2QyNDIyZjk2NTQz
MzI5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCAtIChVSVZpZXcg
KilpbnB1dFZpZXcKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIGlmICghX2lucHV0UGVyaXBo
ZXJhbCkKLSAgICAgICAgX2lucHV0UGVyaXBoZXJhbCA9IGFkb3B0TlMoX2Fzc2lzdGVkTm9kZUlu
Zm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IElucHV0VHlwZTo6U2VsZWN0ID8gW1dLRm9ybVNlbGVj
dENvbnRyb2wgY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OnNlbGZdIDogW1dLRm9ybUlucHV0Q29u
dHJvbCBjcmVhdGVQZXJpcGhlcmFsV2l0aFZpZXc6c2VsZl0pOworICAgICAgICBfaW5wdXRQZXJp
cGhlcmFsID0gYWRvcHROUyhfYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uZWxlbWVudFR5cGUgPT0g
SW5wdXRUeXBlOjpTZWxlY3QgPyBbW1dLRm9ybVNlbGVjdENvbnRyb2wgYWxsb2NdIGluaXRXaXRo
VmlldzpzZWxmXSA6IFtbV0tGb3JtSW5wdXRDb250cm9sIGFsbG9jXSBpbml0V2l0aFZpZXc6c2Vs
Zl0pOwogICAgIGVsc2UKICAgICAgICAgW3NlbGYgX2Rpc3BsYXlGb3JtTm9kZUlucHV0Vmlld107
CiAKQEAgLTExMzgsOSArMTEzOCwxMSBAQCAtICh2b2lkKV9zaG93SW1hZ2VTaGVldAogLSAodm9p
ZClfc2hvd0F0dGFjaG1lbnRTaGVldAogewogICAgIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1
aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbX3dlYlZp
ZXcgVUlEZWxlZ2F0ZV0pOwotICAgIAotICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6KV0pCi0g
ICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHNob3dDdXN0b21TaGVldEZvckVs
ZW1lbnQ6W1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tB
Y3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgVVJMOltOU1VSTCBfd2ViX1VSTFdpdGhXVEZT
dHJpbmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsXSBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1h
dGlvbi5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJRDpfcG9zaXRpb25J
bmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBp
bWFnZTpuaWxdXTsKKyAgICBpZiAoIVt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6c2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDopXSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXV0byBlbGVtZW50ID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVu
dCBVUkw6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51
cmxdIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6
X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOm5pbF0pOworICAgIFt1aURlbGVnYXRl
IF93ZWJWaWV3Ol93ZWJWaWV3IHNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6ZWxlbWVudC5nZXQo
KV07CiB9CiAKIC0gKHZvaWQpX3Nob3dMaW5rU2hlZXQKQEAgLTM5MTQsOCArMzkxNiw4IEBAIC0g
KE5TRGljdGlvbmFyeSAqKV9kYXRhRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZXdJ
dGVtQ29udHJvbGxlciAqKWNvbnRyCiAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdXNlIFVJS2l0
IGNvbnN0YW50cy4KICAgICAgICAgZW51bSB7IFdLVUlQcmV2aWV3SXRlbVR5cGVBdHRhY2htZW50
ID0gNSB9OwogICAgICAgICAqdHlwZSA9IHN0YXRpY19jYXN0PFVJUHJldmlld0l0ZW1UeXBlPihX
S1VJUHJldmlld0l0ZW1UeXBlQXR0YWNobWVudCk7Ci0gICAgICAgIGNvbnN0IGF1dG8mIGVsZW1l
bnQgPSBbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0Fj
dGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudCBVUkw6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0
cmluZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51cmxdIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0
aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGlt
YWdlOm5pbF07Ci0gICAgICAgIE5TVUludGVnZXIgaW5kZXggPSBbdWlEZWxlZ2F0ZSBfd2ViVmll
dzpfd2ViVmlldyBpbmRleEludG9BdHRhY2htZW50TGlzdEZvckVsZW1lbnQ6ZWxlbWVudF07Cisg
ICAgICAgIGF1dG8gZWxlbWVudCA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBh
bGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgVVJM
OltOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsXSBs
b2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1h
dGlvbi50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3Np
dGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpuaWxdKTsKKyAgICAgICAgTlNVSW50ZWdlciBp
bmRleCA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGluZGV4SW50b0F0dGFjaG1lbnRM
aXN0Rm9yRWxlbWVudDplbGVtZW50LmdldCgpXTsKICAgICAgICAgaWYgKGluZGV4ICE9IE5TTm90
Rm91bmQpIHsKICAgICAgICAgICAgIGRhdGFGb3JQcmV2aWV3W0AiVUlQcmV2aWV3RGF0YUF0dGFj
aG1lbnRMaXN0Il0gPSBbdWlEZWxlZ2F0ZSBfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3Ol93ZWJW
aWV3XTsKICAgICAgICAgICAgIGRhdGFGb3JQcmV2aWV3W0AiVUlQcmV2aWV3RGF0YUF0dGFjaG1l
bnRJbmRleCJdID0gW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6aW5kZXhdOwpA
QCAtNDI5NiwyNyArNDI5OCwxNyBAQCArIChXS0F1dG9jb3JyZWN0aW9uQ29udGV4dCAqKWF1dG9j
b3JyZWN0aW9uQ29udGV4dFdpdGhEYXRhOihOU1N0cmluZyAqKWJlZm9yZVRleAogICAgIFdLQXV0
b2NvcnJlY3Rpb25Db250ZXh0ICpjb250ZXh0ID0gW1tXS0F1dG9jb3JyZWN0aW9uQ29udGV4dCBh
bGxvY10gaW5pdF07CiAKICAgICBpZiAoW2JlZm9yZVRleHQgbGVuZ3RoXSkKLSAgICAgICAgY29u
dGV4dC5jb250ZXh0QmVmb3JlU2VsZWN0aW9uID0gW2JlZm9yZVRleHQgY29weV07CisgICAgICAg
IGNvbnRleHQuY29udGV4dEJlZm9yZVNlbGVjdGlvbiA9IGJlZm9yZVRleHQ7CiAgICAgaWYgKFtz
ZWxlY3RlZFRleHQgbGVuZ3RoXSkKLSAgICAgICAgY29udGV4dC5zZWxlY3RlZFRleHQgPSBbc2Vs
ZWN0ZWRUZXh0IGNvcHldOworICAgICAgICBjb250ZXh0LnNlbGVjdGVkVGV4dCA9IHNlbGVjdGVk
VGV4dDsKICAgICBpZiAoW21hcmtlZFRleHQgbGVuZ3RoXSkKLSAgICAgICAgY29udGV4dC5tYXJr
ZWRUZXh0ID0gW21hcmtlZFRleHQgY29weV07CisgICAgICAgIGNvbnRleHQubWFya2VkVGV4dCA9
IG1hcmtlZFRleHQ7CiAgICAgaWYgKFthZnRlclRleHQgbGVuZ3RoXSkKLSAgICAgICAgY29udGV4
dC5jb250ZXh0QWZ0ZXJTZWxlY3Rpb24gPSBbYWZ0ZXJUZXh0IGNvcHldOworICAgICAgICBjb250
ZXh0LmNvbnRleHRBZnRlclNlbGVjdGlvbiA9IGFmdGVyVGV4dDsKICAgICBjb250ZXh0LnJhbmdl
SW5NYXJrZWRUZXh0ID0gcmFuZ2U7CiAgICAgcmV0dXJuIFtjb250ZXh0IGF1dG9yZWxlYXNlXTsK
IH0KIAotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW3NlbGYuY29udGV4dEJlZm9yZVNlbGVjdGlv
biByZWxlYXNlXTsKLSAgICBbc2VsZi5tYXJrZWRUZXh0IHJlbGVhc2VdOwotICAgIFtzZWxmLnNl
bGVjdGVkVGV4dCByZWxlYXNlXTsKLSAgICBbc2VsZi5jb250ZXh0QWZ0ZXJTZWxlY3Rpb24gcmVs
ZWFzZV07Ci0KLSAgICBbc3VwZXIgZGVhbGxvY107Ci19Ci0KIEBlbmQKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tGb3JtSW5wdXRDb250cm9sLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUlucHV0Q29udHJvbC5oCmluZGV4IGM3MGMwZTIzNDE3NjhiY2RmYjY3ZjZjMzJm
YzRiYWY4ZGQ0ZWVlOTEuLjRkNDE2ZDkwYjY0ZGEzOTg2YmFiNWM5YjZkZjNlYjM3YjU0ODY5ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5w
dXRDb250cm9sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zv
cm1JbnB1dENvbnRyb2wuaApAQCAtMzAsNyArMzAsNyBAQAogQGNsYXNzIFdLQ29udGVudFZpZXc7
CiAKIEBpbnRlcmZhY2UgV0tGb3JtSW5wdXRDb250cm9sIDogTlNPYmplY3Q8V0tGb3JtUGVyaXBo
ZXJhbD4KLSsgKFdLRm9ybUlucHV0Q29udHJvbCAqKWNyZWF0ZVBlcmlwaGVyYWxXaXRoVmlldzoo
V0tDb250ZW50VmlldyAqKXZpZXc7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0Nv
bnRlbnRWaWV3ICopdmlldzsKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250
cm9sLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENv
bnRyb2wubW0KaW5kZXggYzBlZmY3M2UxY2ZkMmJhY2M0Njk3YjczNzlmNmJhYzE3NzE1NGM5ZC4u
YjYzZmJkZDgxNzlkZTZlYzUyY2Q2ODQ3OTNkNGQ2NzkyMzlhNWU4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wu
bW0KQEAgLTIyNSw3ICsyMjUsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tGb3JtSW5wdXRDb250cm9s
IHsKICAgICBSZXRhaW5QdHI8aWQ8V0tGb3JtQ29udHJvbD4+IF9jb250cm9sOwogfQogCi0tIChp
ZClpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldwogewogICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtMjYzLDExICsyNjMsNiBAQCAtIChp
ZClpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CiAKIH0KIAotKyAoV0tGb3JtSW5w
dXRDb250cm9sICopY3JlYXRlUGVyaXBoZXJhbFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmll
dwotewotICAgIHJldHVybiBbW1dLRm9ybUlucHV0Q29udHJvbCBhbGxvY10gaW5pdFdpdGhWaWV3
OnZpZXddOwotfQotCiAtICh2b2lkKWJlZ2luRWRpdGluZwogewogICAgIFtfY29udHJvbCBjb250
cm9sQmVnaW5FZGl0aW5nXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtU2VsZWN0Q29udHJvbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLmgKaW5kZXggZDY1ZjA2YTc3ZDFlYTM2MTdk
MWI0N2IyOWIyMGVlMzljYzM5ZmQyOS4uZjgxYTBlNzRiNzVlZDNjMmUxM2I5NWM0ODI2MDJkZjEy
NGQxYThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1TZWxlY3RDb250cm9sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLmgKQEAgLTM2LDcgKzM2LDcgQEAgQ0dGbG9hdCBhZGp1
c3RlZEZvbnRTaXplKENHRmxvYXQgdGV4dFdpZHRoLCBVSUZvbnQgKiwgQ0dGbG9hdCBpbml0aWFs
Rm9udFNpemUsIGMKIEBjbGFzcyBXS0NvbnRlbnRWaWV3OwogCiBAaW50ZXJmYWNlIFdLRm9ybVNl
bGVjdENvbnRyb2wgOiBOU09iamVjdDxXS0Zvcm1QZXJpcGhlcmFsPgotKyAoV0tGb3JtU2VsZWN0
Q29udHJvbCAqKWNyZWF0ZVBlcmlwaGVyYWxXaXRoVmlldzooV0tDb250ZW50VmlldyAqKXZpZXc7
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldzsKIEBl
bmQKIAogQGludGVyZmFjZSBXS1NlbGVjdFBvcG92ZXIgOiBXS0Zvcm1Sb3RhdGluZ0FjY2Vzc29y
eVBvcG92ZXI8V0tGb3JtQ29udHJvbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0Q29udHJvbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0Q29udHJvbC5tbQppbmRleCBkZDBlMWVlNDI0
M2YwMDhkZjJiNjBkN2IwNjg1MzcxNmUwZDQ4YWEwLi5lNGU4NjUyYjc2M2U3NDM0MWFmZjU5NGE3
YTljOGNkYWM3ZDgyZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLRm9ybVNlbGVjdENvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RDb250cm9sLm1tCkBAIC04NCwxMSArODQsNiBAQCAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldwogICAgIHJl
dHVybiBzZWxmOwogfQogCi0rIChXS0Zvcm1TZWxlY3RDb250cm9sICopY3JlYXRlUGVyaXBoZXJh
bFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldwotewotICAgIHJldHVybiBbW1dLRm9ybVNl
bGVjdENvbnRyb2wgYWxsb2NdIGluaXRXaXRoVmlldzp2aWV3XTsKLX0KLQogLSAoVUlWaWV3ICop
YXNzaXN0YW50VmlldwogewogICAgIHJldHVybiBbX2NvbnRyb2wgY29udHJvbFZpZXddOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVD
b2RpbmcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3Rh
dGVDb2RpbmcuY3BwCmluZGV4IDQ1ZGI3MGE5MDc3ZGJmZTdlY2ZjMTI4ZGZkZDllYjUxZWFiMGVl
NjYuLjAxNmM2YjkzMzQ2NTNjZmVhMjI5MGIyMTY1MDBhYjAwOTIxYmRlNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNv
ZGluZy5jcHAKQEAgLTExMjIsMjIgKzExMjIsMjMgQEAgYm9vbCBkZWNvZGVMZWdhY3lTZXNzaW9u
U3RhdGUoY29uc3QgdWludDhfdCogYnl0ZXMsIHNpemVfdCBzaXplLCBTZXNzaW9uU3RhdGUmIHMK
ICAgICBpZiAodmVyc2lvbk51bWJlciAhPSBzZXNzaW9uU3RhdGVEYXRhVmVyc2lvbikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5ID0gYWRv
cHRDRihkeW5hbWljX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRlByb3BlcnR5TGlzdENyZWF0
ZVdpdGhEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGJ5dGVzICsgc2l6ZW9mKHVpbnQzMl90KSwgc2l6ZSAtIHNpemVvZih1
aW50MzJfdCkpKS5nZXQoKSwga0NGUHJvcGVydHlMaXN0SW1tdXRhYmxlLCBudWxscHRyLCBudWxs
cHRyKSkpOworICAgIGF1dG8gY2ZQcm9wZXJ0eUxpc3QgPSBhZG9wdENGKENGUHJvcGVydHlMaXN0
Q3JlYXRlV2l0aERhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYWRvcHRDRihDRkRhdGFDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgYnl0ZXMgKyBzaXplb2YodWludDMyX3QpLCBzaXplIC0gc2l6
ZW9mKHVpbnQzMl90KSkpLmdldCgpLCBrQ0ZQcm9wZXJ0eUxpc3RJbW11dGFibGUsIG51bGxwdHIs
IG51bGxwdHIpKTsKKyAgICBhdXRvIHNlc3Npb25TdGF0ZURpY3Rpb25hcnkgPSBkeW5hbWljX2Nm
X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihjZlByb3BlcnR5TGlzdC5nZXQoKSk7CiAgICAgaWYgKCFz
ZXNzaW9uU3RhdGVEaWN0aW9uYXJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
YXV0byBiYWNrRm9yd2FyZExpc3REaWN0aW9uYXJ5ID0gZHluYW1pY19jZl9jYXN0PENGRGljdGlv
bmFyeVJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc2Vzc2lvblN0YXRlRGljdGlvbmFyeS5nZXQo
KSwgc2Vzc2lvbkhpc3RvcnlLZXkpKSkgeworICAgIGlmIChhdXRvIGJhY2tGb3J3YXJkTGlzdERp
Y3Rpb25hcnkgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRkRpY3Rpb25hcnlH
ZXRWYWx1ZShzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5LCBzZXNzaW9uSGlzdG9yeUtleSkpKSB7CiAg
ICAgICAgIGlmICghZGVjb2RlU2Vzc2lvbkhpc3RvcnkoYmFja0ZvcndhcmRMaXN0RGljdGlvbmFy
eSwgc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJkTGlzdFN0YXRlKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBwcm92aXNpb25hbFVSTFN0cmluZyA9IGR5
bmFtaWNfY2ZfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc2Vzc2lvblN0
YXRlRGljdGlvbmFyeS5nZXQoKSwgcHJvdmlzaW9uYWxVUkxLZXkpKSkgeworICAgIGlmIChhdXRv
IHByb3Zpc2lvbmFsVVJMU3RyaW5nID0gZHluYW1pY19jZl9jYXN0PENGU3RyaW5nUmVmPihDRkRp
Y3Rpb25hcnlHZXRWYWx1ZShzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5LCBwcm92aXNpb25hbFVSTEtl
eSkpKSB7CiAgICAgICAgIHNlc3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTCA9IFdlYkNvcmU6OlVS
TChXZWJDb3JlOjpVUkwoKSwgcHJvdmlzaW9uYWxVUkxTdHJpbmcpOwogICAgICAgICBpZiAoIXNl
c3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gcmVuZGVyVHJlZVNpemUgPSBkeW5hbWljX2Nm
X2Nhc3Q8Q0ZOdW1iZXJSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHNlc3Npb25TdGF0ZURpY3Rp
b25hcnkuZ2V0KCksIHJlbmRlclRyZWVTaXplS2V5KSkpCisgICAgaWYgKGF1dG8gcmVuZGVyVHJl
ZVNpemUgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZOdW1iZXJSZWY+KENGRGljdGlvbmFyeUdldFZhbHVl
KHNlc3Npb25TdGF0ZURpY3Rpb25hcnksIHJlbmRlclRyZWVTaXplS2V5KSkpCiAgICAgICAgIENG
TnVtYmVyR2V0VmFsdWUocmVuZGVyVHJlZVNpemUsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZzZXNz
aW9uU3RhdGUucmVuZGVyVHJlZVNpemUpOwogICAgIGVsc2UKICAgICAgICAgc2Vzc2lvblN0YXRl
LnJlbmRlclRyZWVTaXplID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvU2VydmljZXNDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9TZXJ2aWNlc0NvbnRyb2xsZXIubW0KaW5kZXggMmRkMzVjNTBmZDk2NDhmMTdhNzEwODM1ZWQ4
OWNjOWE1YTJmYzkwYy4uZTY1ZGFiYWU2NDQ0NTk1MWQ4ZmFhZTllOTRkM2U0OGE0ZjRlYTgyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xs
ZXIubW0KQEAgLTg3LDEwICs4NywxMCBAQCB2b2lkIFNlcnZpY2VzQ29udHJvbGxlcjo6cmVmcmVz
aEV4aXN0aW5nU2VydmljZXMoYm9vbCByZWZyZXNoSW1tZWRpYXRlbHkpCiAKICAgICAgICAgc3Rh
dGljIE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZFN0cmluZ1dpdGhSaWNoQ29udGVudDsK
ICAgICAgICAgaWYgKCFhdHRyaWJ1dGVkU3RyaW5nV2l0aFJpY2hDb250ZW50KSB7Ci0gICAgICAg
ICAgICBOU1RleHRBdHRhY2htZW50ICphdHRhY2htZW50ID0gW1tOU1RleHRBdHRhY2htZW50IGFs
bG9jXSBpbml0XTsKLSAgICAgICAgICAgIE5TVGV4dEF0dGFjaG1lbnRDZWxsICpjZWxsID0gW1tO
U1RleHRBdHRhY2htZW50Q2VsbCBhbGxvY10gaW5pdEltYWdlQ2VsbDppbWFnZS5nZXQoKV07Ci0g
ICAgICAgICAgICBbYXR0YWNobWVudCBzZXRBdHRhY2htZW50Q2VsbDpjZWxsXTsKLSAgICAgICAg
ICAgIE5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgKnJpY2hTdHJpbmcgPSAoTlNNdXRhYmxlQXR0
cmlidXRlZFN0cmluZyAqKVtOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nIGF0dHJpYnV0ZWRTdHJp
bmdXaXRoQXR0YWNobWVudDphdHRhY2htZW50XTsKKyAgICAgICAgICAgIGF1dG8gYXR0YWNobWVu
dCA9IGFkb3B0TlMoW1tOU1RleHRBdHRhY2htZW50IGFsbG9jXSBpbml0XSk7CisgICAgICAgICAg
ICBhdXRvIGNlbGwgPSBhZG9wdE5TKFtbTlNUZXh0QXR0YWNobWVudENlbGwgYWxsb2NdIGluaXRJ
bWFnZUNlbGw6aW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgICAgIFthdHRhY2htZW50IHNldEF0dGFj
aG1lbnRDZWxsOmNlbGwuZ2V0KCldOworICAgICAgICAgICAgTlNNdXRhYmxlQXR0cmlidXRlZFN0
cmluZyAqcmljaFN0cmluZyA9IChOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nICopW05TTXV0YWJs
ZUF0dHJpYnV0ZWRTdHJpbmcgYXR0cmlidXRlZFN0cmluZ1dpdGhBdHRhY2htZW50OmF0dGFjaG1l
bnQuZ2V0KCldOwogICAgICAgICAgICAgW3JpY2hTdHJpbmcgYXBwZW5kQXR0cmlidXRlZFN0cmlu
ZzogYXR0cmlidXRlZFN0cmluZ107CiAgICAgICAgICAgICBhdHRyaWJ1dGVkU3RyaW5nV2l0aFJp
Y2hDb250ZW50ID0gW3JpY2hTdHJpbmcgcmV0YWluXTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmlu
ZGV4IGRmYzNjZWQ2YmU2NDkyYjRmZjkyZTQxNWE2ODlmMmM2OTJhYTM1MWEuLjRjMmVlOTkzZTAx
MzdlOGNkMzVkMDAzNzVlNjA5YmZlM2NhZWUwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTIzMSw5ICsy
MzEsOSBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNldHVwU2VydmljZXNNZW51KCkK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9tZW51ID0gYWRvcHROUyhbW05TTWVudSBhbGxv
Y10gaW5pdF0pOwogICAgICAgICBpbnQgaXRlbVBvc2l0aW9uID0gMDsKLSAgICAgICAgTlNNZW51
SXRlbSAqZ3JvdXBFbnRyeSA9IFtbTlNNZW51SXRlbSBhbGxvY10gaW5pdFdpdGhUaXRsZTptZW51
SXRlbVRpdGxlRm9yVGVsZXBob25lTnVtYmVyR3JvdXAoKSBhY3Rpb246bmlsIGtleUVxdWl2YWxl
bnQ6QCIiXTsKKyAgICAgICAgYXV0byBncm91cEVudHJ5ID0gYWRvcHROUyhbW05TTWVudUl0ZW0g
YWxsb2NdIGluaXRXaXRoVGl0bGU6bWVudUl0ZW1UaXRsZUZvclRlbGVwaG9uZU51bWJlckdyb3Vw
KCkgYWN0aW9uOm5pbCBrZXlFcXVpdmFsZW50OkAiIl0pOwogICAgICAgICBbZ3JvdXBFbnRyeSBz
ZXRFbmFibGVkOk5PXTsKLSAgICAgICAgW21fbWVudSBpbnNlcnRJdGVtOmdyb3VwRW50cnkgYXRJ
bmRleDppdGVtUG9zaXRpb24rK107CisgICAgICAgIFttX21lbnUgaW5zZXJ0SXRlbTpncm91cEVu
dHJ5LmdldCgpIGF0SW5kZXg6aXRlbVBvc2l0aW9uKytdOwogICAgICAgICBmb3IgKGF1dG8mIG1l
bnVJdGVtIDogdGVsZXBob25lTnVtYmVyTWVudUl0ZW1zKQogICAgICAgICAgICAgW21fbWVudSBp
bnNlcnRJdGVtOm1lbnVJdGVtLmdldCgpIGF0SW5kZXg6aXRlbVBvc2l0aW9uKytdOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>