<?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>174300</bug_id>
          
          <creation_ts>2017-07-09 13:44:49 -0700</creation_ts>
          <short_desc>[WK2] Ignore touch events that interrupt platform-driven momentum scrolling</short_desc>
          <delta_ts>2017-07-27 02:17:50 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1326886</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-09 13:44:49 -0700</bug_when>
    <thetext>In https://trac.webkit.org/r211197, we decreased the scroll deceleration rate in web content to match the rest of the iOS platform. However, due to the much longer duration of the momentum scrolling phase, many users are tapping during momentum scrolling to stop scroll deceleration -- this, in turn, leads to many unwanted or accidental taps in web content on pages such as images.google.com.

One potential way to resolve this is to prevent touches that interrupt momentum scrolling from propagating DOM touch events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326887</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-09 13:47:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/33030639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326904</commentid>
    <comment_count>2</comment_count>
      <attachid>314957</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-09 15:54:55 -0700</bug_when>
    <thetext>Created attachment 314957
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327081</commentid>
    <comment_count>3</comment_count>
      <attachid>314957</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-07-10 11:30:56 -0700</bug_when>
    <thetext>Comment on attachment 314957
First pass

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

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:4058
&gt; +// FIXME: Remove once -gestureRecognizer:shouldIgnoreWebTouchWithEvent: is in UIWebTouchEventsGestureRecognizer.h.

Would be nice to have a radar number here.

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:4067
&gt; +    NSSet&lt;UITouch *&gt; *webTouches = [event touchesForGestureRecognizer:gestureRecognizer];
&gt; +    for (UITouch *webTouch in webTouches) {

I think &quot;webTouches&quot; and &quot;webTouch&quot; could just be &quot;touches&quot; and &quot;touch&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327097</commentid>
    <comment_count>4</comment_count>
      <attachid>314957</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-10 12:14:58 -0700</bug_when>
    <thetext>Comment on attachment 314957
First pass

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

Thanks Simon!

&gt;&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:4058
&gt;&gt; +// FIXME: Remove once -gestureRecognizer:shouldIgnoreWebTouchWithEvent: is in UIWebTouchEventsGestureRecognizer.h.
&gt; 
&gt; Would be nice to have a radar number here.

👍 included a radar here.

&gt;&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:4067
&gt;&gt; +    for (UITouch *webTouch in webTouches) {
&gt; 
&gt; I think &quot;webTouches&quot; and &quot;webTouch&quot; could just be &quot;touches&quot; and &quot;touch&quot;.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327102</commentid>
    <comment_count>5</comment_count>
      <attachid>315008</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-10 12:27:29 -0700</bug_when>
    <thetext>Created attachment 315008
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327214</commentid>
    <comment_count>6</comment_count>
      <attachid>315008</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-10 15:08:42 -0700</bug_when>
    <thetext>Comment on attachment 315008
Patch for landing

Clearing flags on attachment: 315008

Committed r219310: &lt;http://trac.webkit.org/changeset/219310&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327361</commentid>
    <comment_count>7</comment_count>
      <attachid>315073</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-10 21:14:39 -0700</bug_when>
    <thetext>Created attachment 315073
Address post-review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327366</commentid>
    <comment_count>8</comment_count>
      <attachid>315076</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-10 21:39:52 -0700</bug_when>
    <thetext>Created attachment 315076
Address post-review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327583</commentid>
    <comment_count>9</comment_count>
      <attachid>315076</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-11 10:55:24 -0700</bug_when>
    <thetext>Comment on attachment 315076
Address post-review feedback

Clearing flags on attachment: 315076

Committed r219340: &lt;http://trac.webkit.org/changeset/219340&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314957</attachid>
            <date>2017-07-09 15:54:55 -0700</date>
            <delta_ts>2017-07-10 11:30:56 -0700</delta_ts>
            <desc>First pass</desc>
            <filename>bug-174300-20170709155454.patch</filename>
            <type>text/plain</type>
            <size>33517</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzMWMxM2JlZjVlYzY3
YmVlZDU5YWM1YjU1NjAyMWRjN2ZiNWE0MC4uMWE2NTg1NDM1NzcxZWFiODZlYjU0NjVlYWQ2ODQ4
OGEwYjliMTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA3LTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIElnbm9y
ZSB0b3VjaCBldmVudHMgdGhhdCBpbnRlcnJ1cHQgcGxhdGZvcm0tZHJpdmVuIG1vbWVudHVtIHNj
cm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc0MzAwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzAzMDYzOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvaW9z
L25vLXRvdWNoLWV2ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1tYWluZnJh
bWUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvaW9zL25vLXRvdWNoLWV2ZW50cy13
aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1vdmVyZmxvdy5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy9pb3MvdG91Y2gtZXZlbnRzLWR1cmluZy1zY3JvbGwtZGVjZWxlcmF0
aW9uLWluLW92ZXJmbG93Lmh0bWwKKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVO
b2RlRGlkRW5kUGFuR2VzdHVyZSk6CisKIDIwMTctMDctMDYgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEltcHJvdmUgcGVyZm9ybWFu
Y2Ugb2YgZm9udCBsb29rdXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGY0ZjY5ZDlkYjJlNGJjZjljZDk1YzVi
MWVjZjllMzU3ODYxMGEyZi4uMTk4NTFhMWIyY2FhYTkyM2NiOWU4YThhZmYzYzFhNzYzNWZjMjRm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE3LTA3LTA5ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIElnbm9yZSB0b3VjaCBl
dmVudHMgdGhhdCBpbnRlcnJ1cHQgcGxhdGZvcm0tZHJpdmVuIG1vbWVudHVtIHNjcm9sbGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MzAwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzAzMDYzOT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGltbWVkaWF0ZWx5IGZh
aWxpbmcgV0tDb250ZW50VmlldydzIFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciBp
ZiBhbnkgdG91Y2ggaW50ZXJydXB0cworICAgICAgICBzY3JvbGwgdmlldyBkZWNlbGVyYXRpb24u
IENvdmVyZWQgYnkgMyBuZXcgTGF5b3V0VGVzdHMgKHNlZSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cpLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
c2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOndpbGxEZWNlbGVyYXRlOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVuZFpvb21pbmc6d2l0aFZpZXc6YXRTY2FsZTpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3Jv
bGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW06CisgICAgICAgICgtW1dLT3ZlcmZs
b3dTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOndpbGxEZWNlbGVy
YXRlOl0pOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlSU9TOjpvdmVyZmxvd1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKToKKworICAgICAgICBB
ZGRzIHBsdW1iaW5nIGluIHRoZSBVSSBwcm9jZXNzIHRvIGFsZXJ0IHRoZSBXS0NvbnRlbnRWaWV3
IHdoZW4gc2Nyb2xsIHZpZXcgZHJhZ2dpbmcgaGFzIGVuZGVkIGluIGFuIG92ZXJmbG93CisgICAg
ICAgIG1vbWVudHVtIHNjcm9sbGluZyByZWdpb24gKHRyYWNrZWQgYnkgYW4gb3ZlcmZsb3cgc2Ny
b2xsaW5nIHRyZWUgbm9kZSkuIFRoaXMgcGFyYWxsZWxzIFVJIHByb2Nlc3MgcGx1bWJpbmcgZm9y
CisgICAgICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6Om92ZXJmbG93
U2Nyb2xsVmlld1dpbGxTdGFydFBhbkdlc3R1cmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpvdmVyZmxvd1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0
dXJlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBzY3JvbGxWaWV3RGlkRW5kUGFuT3JQaW5jaEdlc3R1cmVdKToKKworICAgICAgICBXaGVu
IHRoZSBkcmFnZ2luZyBwaGFzZSBvZiBhIHNjcm9sbCBnZXN0dXJlIGVuZHMsIGVuc3VyZSB0aGF0
IF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSBpcyByZXNldCB0byBOTy4KKyAgICAg
ICAgV2hlbiB0b3VjaGVzIGFyZSBub3QgYmVpbmcgcHJldmVudGVkLCB0aGlzIGZsYWcgaXMgc2V0
IHRvIFlFUyBpbiAtc2Nyb2xsVmlld1dpbGxTdGFydFBhbk9yUGluY2hHZXN0dXJlOiBhbmQKKyAg
ICAgICAgbm9ybWFsbHkgcmVzZXQgdG8gTk8gaW4gLV93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6
IGFmdGVyIGFsbCB0b3VjaCBwb2ludHMgaGF2ZSBiZWVuIHJlbGVhc2VkLiBIb3dldmVyLCBpbiB0
aGUKKyAgICAgICAgY2FzZSB3aGVyZSB3ZSd2ZSBwcmVtYXR1cmVseSBmYWlsZWQgdGhlIHdlYiB0
b3VjaCBldmVudHMgZ2VzdHVyZSByZWNvZ25pemVyIGFmdGVyIC10b3VjaGVzQmVnYW46LAorICAg
ICAgICAtX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDogd2lsbCBub3QgYmUgY2FsbGVkIGFnYWlu
IGluIGEgc3RhdGUgd2hlcmUgYWxsIHRvdWNoZXMgaGF2ZSBiZWVuIHJlbGVhc2VkLiBUaHVzLCB3
ZQorICAgICAgICBhbHNvIG5lZWQgdG8gYm9va2VuZCB0aGUgcGxhY2Ugd2hlcmUgd2UgYmVnaW4g
YWxsb3dpbmcgYXN5bmMgdG91Y2ggZXZlbnQgZGlzcGF0Y2ggaW4KKyAgICAgICAgLXNjcm9sbFZp
ZXdXaWxsU3RhcnRQYW5PclBpbmNoR2VzdHVyZSBieSBkaXNhbGxvd2luZyBhc3luYyB0b3VjaCBl
dmVudCBkaXNwYXRjaCBpbgorICAgICAgICAtc2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0
dXJlLgorCisgICAgICAgIFRoaXMgaGFzIG5vIGltcGFjdCBpbiB0aGUgbm9ybWFsIGNhc2Ugd2hl
cmUgdGhlIHVzZXIgc2Nyb2xscyB3aXRob3V0IG1vbWVudHVtLCBzaW5jZQorICAgICAgICAtc2Ny
b2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJlIHdpbGwgZmlyZSBhZnRlciBhc3luYyB0b3Vj
aCBldmVudHMgaGF2ZSBhbHJlYWR5IGJlZW4gZGlzYWxsb3dlZCBpbgorICAgICAgICAtX3dlYlRv
dWNoRXZlbnRzUmVjb2duaXplZDosIGFuZCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgcGFnZSBwcmV2
ZW50cyBkZWZhdWx0IG9uIHRvdWNoZXMsIHNjcm9sbGluZyBkb2Vzbid0CisgICAgICAgIGhhcHBl
biBhbnl3YXlzLCBzbyBuZWl0aGVyIHNjcm9sbFZpZXdXaWxsU3RhcnRQYW5PclBpbmNoR2VzdHVy
ZSBub3Igc2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJlIHdpbGwgYmUKKyAgICAgICAg
aW52b2tlZC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNo
b3VsZElnbm9yZVdlYlRvdWNoV2l0aEV2ZW50Ol0pOgorCisgICAgICAgIEltcGxlbWVudHMgYSBu
ZXcgU1BJIGhvb2sgaW4gVUlLaXQuIFRoaXMgc2VydmVzIGFuIGlkZW50aWNhbCBwdXJwb3NlIGFz
IC1zaG91bGRJZ25vcmVXZWJUb3VjaCwgYnV0IGFkZGl0aW9uYWxseQorICAgICAgICBwYXNzZXMg
dGhlIHRyaWdnZXJpbmcgVUlFdmVudCwgYXMgd2VsbCBhcyB0aGUgZ2VzdHVyZSByZWNvZ25pemVy
IGl0c2VsZiAoZm9sbG93aW5nIHN0YW5kYXJkIGNvbnZlbnRpb24gZm9yCisgICAgICAgIE9iamVj
dGl2ZSBDIGRlbGVnYXRlIG1ldGhvZHMpLiBIZXJlLCB3ZSByZXR1cm4gWUVTIGluIHRoZSBjYXNl
IHdoZXJlIG9uZSBvciBtb3JlIG9mIHRoZSB0b3VjaGVzIHJlY29nbml6ZWQgYnkKKyAgICAgICAg
dGhlIGdlc3R1cmUgaXMgY3VycmVudGx5IGludGVycnVwdGluZyBzY3JvbGwgZGVjZWxlcmF0aW9u
LgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6b3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVy
ZSk6CisKIDIwMTctMDctMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBpbnRlcm5hbCBpT1MgMTEgYnVpbGQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCA5Yjg5
NTA0NWYzZmFkYjAwZWZkYjkzYWZkNzVjN2MxNjZmMmNlMjhlLi4yOGZjZDE3YjVkN2EzOTZiM2M1
Nzc1YWEwZTcwOWQ0ZDdmNGEzOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogI2lmIFBMQVRG
T1JNKElPUykKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdCgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFNjcm9sbCgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFNjcm9sbCgpIHsg
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL1VJ
S2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5k
ZXggYjI3NDIwM2MwNTIzYzA2ZDNjNjgxZjA3ZDM1ZmI4NTA2OWI2ZjI3Yi4uNTczMWJlMzQzOTg0
NTQ0ODljODdjYWVlMmNmNzI1MTk3MWNmYzBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtNjg5LDkgKzY4OSwxMiBAQCBzdHJ1Y3QgX1VJV2ViVG91
Y2hFdmVudCB7CiAgICAgYm9vbCBpc1BvdGVudGlhbFRhcDsKIH07CiAKLUBwcm90b2NvbCBVSVdl
YlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQorQGNsYXNzIFVJV2ViVG91Y2hF
dmVudHNHZXN0dXJlUmVjb2duaXplcjsKKworQHByb3RvY29sIFVJV2ViVG91Y2hFdmVudHNHZXN0
dXJlUmVjb2duaXplckRlbGVnYXRlIDxOU09iamVjdD4KIC0gKEJPT0wpaXNBbnlUb3VjaE92ZXJB
Y3RpdmVBcmVhOihOU1NldCAqKXRvdWNoZXM7Ci0tIChCT09MKXNob3VsZElnbm9yZVdlYlRvdWNo
OworQG9wdGlvbmFsCistIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSVdlYlRvdWNoRXZlbnRz
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRJZ25vcmVXZWJUb3Vj
aFdpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50OwogQGVuZAogCiBAaW50ZXJmYWNlIFVJV2ViVG91
Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciA6IFVJR2VzdHVyZVJlY29nbml6ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYzlhY2Fm
OTY4ZDM2MmMwYjQ2NGQ5YTZmNDY0YTYzYmYzMDVlYTM3Ni4uMWIyYzQwZmZmM2RjZjQ3YmE5ZGY5
NTE3YTBiMWE3ZDliY2QwYzg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIxNDMsNiArMjE0Myw5IEBAIC0gKHZvaWQpc2Nyb2xs
Vmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxEZWNlbGVy
YXRlOihCT09MCiAgICAgLy8gSWYgd2UncmUgZGVjZWxlcmF0aW5nLCBzY3JvbGwgb2Zmc2V0IHdp
bGwgYmUgdXBkYXRlZCB3aGVuIHNjcm9sbFZpZXdEaWRGaW5pc2hEZWNlbGVyYXRpbmc6IGlzIGNh
bGxlZC4KICAgICBpZiAoIWRlY2VsZXJhdGUpCiAgICAgICAgIFtzZWxmIF9kaWRGaW5pc2hTY3Jv
bGxpbmddOworCisgICAgaWYgKHNjcm9sbFZpZXcucGFuR2VzdHVyZVJlY29nbml6ZXIuc3RhdGUg
PT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRW5kZWQpCisgICAgICAgIFtfY29udGVudFZpZXcg
c2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJlXTsKIH0KIAogLSAodm9pZClzY3JvbGxW
aWV3RGlkRW5kRGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CkBAIC0yMTc3
LDYgKzIxODAsOSBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRab29taW5nOihVSVNjcm9sbFZp
ZXcgKilzY3JvbGxWaWV3IHdpdGhWaWV3OihVSVZpZXcgKil2aQogICAgIEFTU0VSVChzY3JvbGxW
aWV3ID09IF9zY3JvbGxWaWV3KTsKICAgICBbc2VsZiBfc2NoZWR1bGVWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVBZnRlclNjcm9sbEluVmlldzpzY3JvbGxWaWV3XTsKICAgICBbX2NvbnRlbnRWaWV3
IGRpZFpvb21Ub1NjYWxlOnNjYWxlXTsKKworICAgIGlmIChzY3JvbGxWaWV3LnBpbmNoR2VzdHVy
ZVJlY29nbml6ZXIuc3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRW5kZWQpCisgICAg
ICAgIFtfY29udGVudFZpZXcgc2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJlXTsKIH0K
IAogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZp
ZXcgKilzY3JvbGxWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA4
OTNlMmMwMTQ3OWM3NTM2ODlmMjVhYTY3NTQyMDllM2I0MDY0MDg4Li5kZGU2ZmJiYTZhYmMyOWE4
YjBiMjQ5NDRkOWE3MTIwZWFlY2Q1MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKQEAgLTMwOCw2ICszMDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUgbWlu
aW11bVpvb21TY2FsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVj
dCBkb2N1bWVudFJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG92ZXJmbG93U2Ny
b2xsVmlld1dpbGxTdGFydFBhbkdlc3R1cmUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG92ZXJm
bG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG92
ZXJmbG93U2Nyb2xsVmlld0RpZFNjcm9sbCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZs
b3dTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG92ZXJmbG93
U2Nyb2xsRGlkRW5kU2Nyb2xsKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuaAppbmRleCBlODdiYjJjMmU4NGM4NDliMDVmZTEzYmYwOTk2ZWMwZTM1ZTdkZGJiLi5i
NTc0MGQxNmEzMzE2ZjA3MTIxOWNkNjY1MWNjZDg5YzdlMTk4ZjM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjdXN0b21GaXhlZFBvc2l0aW9u
UmVjdCgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0
dXJlKCk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFBhbkdlc3R1cmUoKTsKICAg
ICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCk7CiAgICAgdm9pZCBzY3Jv
bGxpbmdUcmVlTm9kZURpZEVuZFNjcm9sbCgpOwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcAppbmRleCA0MjFjNzQ1N2M5MDNiNDdlMmUxYTdiNDg4OTg4MWY1
N2MzMGVhYzRkLi45Y2Y3NDAyMDVjMzM3NzMwZDIxODMwMDI0YTVhOGFkZjgxYTExNjRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTg3LDYgKzg3LDExIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5n
VHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkKIHsKICAgICBtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0
dXJlKCk7CiB9CisKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVE
aWRFbmRQYW5HZXN0dXJlKCkKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Ny
b2xsaW5nVHJlZU5vZGVEaWRFbmRQYW5HZXN0dXJlKCk7Cit9CiAgICAgCiB2b2lkIFJlbW90ZVNj
cm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdUcmVlLmgKaW5kZXggNzMxOGNjYzgxNGNhNTcxNmRjNzBjMjRiNmM0NDE3OGQyNTZjZGE3MC4u
OTI4NjQyZWIyMWEwOGYxNWVhMjAzYTRmODljZmY3OTQ0ZDczM2Q4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVl
LmgKQEAgLTYxLDYgKzYxLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1MpCiAgICAgV2Vi
Q29yZTo6RmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSgpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwoKSBvdmVycmlkZTsKICAgICB2b2lkIHNj
cm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3Jv
bGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaAppbmRleCAw
MmM4ZGU5MThjNzRmM2I3M2VlYzAzN2I1YWI5NmNkOWJmNzA1NWE4Li45NzY4OGU3MGM2MTE1ZDk5
MGJlNjcyODNhNjc3ODNhZDhhYmRkMjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0KCk7CiAgICAgdm9pZCBvdmVyZmxvd1Nj
cm9sbERpZEVuZCgpOwogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2Vz
dHVyZSgpOworICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgpOwog
ICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jiwg
Ym9vbCBpblVzZXJJbnRlcmF0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2Vz
RGlkQ2hhbmdlKHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0K
aW5kZXggNDMzZDM4ZTQyNTAxZTgyNTE2MDg2YWM2NjYwNGZhOGUyOWY3ODRlMy4uMTVlNjMyMWE4
N2M3YzJhNjVlMmY4MGJmOWY0ODhhYTczNzc5ZmUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCkBAIC0xMTcsNiArMTE3LDkg
QEAgLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9s
bFZpZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlLT5z
Y3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVy
YWN0aW9uKTsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlLT5vdmVyZmxvd1Njcm9sbERpZEVu
ZCgpOwogICAgIH0KKworICAgIGlmIChzY3JvbGxWaWV3LnBhbkdlc3R1cmVSZWNvZ25pemVyLnN0
YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUVuZGVkKQorICAgICAgICBfc2Nyb2xsaW5n
VHJlZU5vZGUtPm92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKTsKIH0KIAogLSAo
dm9pZClzY3JvbGxWaWV3RGlkRW5kRGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxW
aWV3CkBAIC0yOTQsNiArMjk3LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUzo6b3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyCiAgICAgc2Ny
b2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2VzdHVyZSgpOwogfQog
Cit2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6Om92ZXJmbG93U2Ny
b2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKQoreworICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxp
bmdUcmVlTm9kZURpZEVuZFBhbkdlc3R1cmUoKTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIGluVXNlckludGVyYXRpb24pCiB7CiAgICAgaWYgKG1f
dXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDhjOThmOTlhOWYzODhiOTI4MjdhNzRiODhmYzM0YWVmODQ2MWI4ZWUuLjM1NjU0
YTczNzJmMmIwZmJiY2IxZGRmZGMxMzNjNzgwODIxZGRlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ5NSw2ICs0OTUsNyBAQCBwdWJsaWM6CiAgICAgV2Vi
Q29yZTo6RmxvYXRSZWN0IGNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1cnJlbnRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwg
ZG91YmxlIGRpc3BsYXllZENvbnRlbnRTY2FsZSwgV2ViQ29yZTo6RnJhbWVWaWV3OjpMYXlvdXRW
aWV3cG9ydENvbnN0cmFpbnQgPSBXZWJDb3JlOjpGcmFtZVZpZXc6OkxheW91dFZpZXdwb3J0Q29u
c3RyYWludDo6VW5jb25zdHJhaW5lZCwgYm9vbCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQgPSBmYWxz
ZSkgY29uc3Q7CiAKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld1dpbGxTdGFydFBhbkdlc3R1
cmUoKTsKKyAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKTsKICAg
ICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZFNjcm9sbCgpOwogICAgIHZvaWQgb3ZlcmZsb3dT
Y3JvbGxXaWxsU3RhcnRTY3JvbGwoKTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsRGlkRW5kU2Ny
b2xsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKaW5kZXggY2Q2MjdjMmM3ZTVkZjk2NDY1MmYwMmRhMTZlYTdiY2NlODQ2MDI2NS4uMDU1
NGZlY2RkZTJkYzIyMTYyYzIxMTQ2MGIzMTk3Nzc2NDBhZmY2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTUxLDYgKzE1MSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNhYmxlSW5zcGVjdG9yTm9kZVNlYXJjaCgpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdEaWRTY3JvbGwoKSBvdmVycmlk
ZTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggNzhl
NTFhMzk1MjY0MDY2NDJkMDkyYjQ1NDE0ZTdiYmJkZjI2YzRhMS4uY2QwYTg3M2JkZTVkNTc2YjY2
ZmRlMGY1NjM2ZjdiNGMwMDBmM2Y0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC02NzEsNiArNjcxLDExIEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6Om92ZXJmbG93U2Nyb2xsVmlld1dpbGxTdGFydFBhbkdlc3R1cmUoKQogICAg
IFttX2NvbnRlbnRWaWV3IHNjcm9sbFZpZXdXaWxsU3RhcnRQYW5PclBpbmNoR2VzdHVyZV07CiB9
CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1
cmUoKQoreworICAgIFttX2NvbnRlbnRWaWV3IHNjcm9sbFZpZXdEaWRFbmRQYW5PclBpbmNoR2Vz
dHVyZV07Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6Om92ZXJmbG93U2Nyb2xsVmlld0RpZFNj
cm9sbCgpCiB7CiAgICAgW21fY29udGVudFZpZXcgX2RpZFNjcm9sbF07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHlJT1MubW0KaW5kZXggMjhkMzk1OTM0NTRlMTg1ZmI2NmZlNWRmN2RhYjhi
M2EyODYyMDRlYy4uNDk5ZTZkOTdhYjQ1ZjkyNDc4NzExOTc1ZDg2MDk4NTY4NDAyMmY1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQpAQCAtMTA0LDYgKzEwNCwxMSBAQCB2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlV2ls
bFN0YXJ0UGFuR2VzdHVyZSgpCiAgICAgbV93ZWJQYWdlUHJveHkub3ZlcmZsb3dTY3JvbGxWaWV3
V2lsbFN0YXJ0UGFuR2VzdHVyZSgpOwogfQogCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSgpCit7CisgICAgbV93
ZWJQYWdlUHJveHkub3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgpOworfQorCiB2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlV2ls
bFN0YXJ0U2Nyb2xsKCkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS5vdmVyZmxvd1Njcm9sbFdpbGxT
dGFydFNjcm9sbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggMzI3NDIzNjhhODAwOTllYjc1NzE2NGVk
ODY4ODA0NWE5YzBhNzhmMi4uZTNhMzUzMzY3YzZjMWExNjA3ZDYyMDlhNTA0ODBiMGExMzE5ODc2
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0yNzksNiArMjc5LDcgQEAgc3RydWN0IFdLQXV0b0NvcnJl
Y3Rpb25EYXRhIHsKIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uOwogCiAtICh2b2lkKXNjcm9s
bFZpZXdXaWxsU3RhcnRQYW5PclBpbmNoR2VzdHVyZTsKKy0gKHZvaWQpc2Nyb2xsVmlld0RpZEVu
ZFBhbk9yUGluY2hHZXN0dXJlOwogCiAtIChCT09MKWNhbkJlY29tZUZpcnN0UmVzcG9uZGVyRm9y
V2ViVmlldzsKIC0gKEJPT0wpYmVjb21lRmlyc3RSZXNwb25kZXJGb3JXZWJWaWV3OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCA3ZDk1ODFjODEyZWNjZmY1YTJlMGU2ZWRkMzIxZTZlNGNiNWQ0NDYyLi43
NDUwODc1NjFhYjY1YWY2MjJhNWQ3ODEwZDZiZGQxZWVmMWIyYjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtMTg0NSw2ICsxODQ1LDExIEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxTdGFydFBhbk9y
UGluY2hHZXN0dXJlCiAgICAgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5ID0gWUVT
OwogfQogCistICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRQYW5PclBpbmNoR2VzdHVyZQoreworICAg
IF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSA9IE5POworfQorCiAtICh2b2lkKV9k
aWRFbmRTY3JvbGxpbmdPclpvb21pbmcKIHsKICAgICBpZiAoIV9uZWVkc0RlZmVycmVkRW5kU2Ny
b2xsaW5nU2VsZWN0aW9uVXBkYXRlKSB7CkBAIC00MDUwLDExICs0MDU1LDIyIEBAIC0gKHZvaWQp
ZmlsZVVwbG9hZFBhbmVsRGlkRGlzbWlzczooV0tGaWxlVXBsb2FkUGFuZWwgKilmaWxlVXBsb2Fk
UGFuZWwKIAogI3ByYWdtYSBtYXJrIC0gSW1wbGVtZW50YXRpb24gb2YgVUlXZWJUb3VjaEV2ZW50
c0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUuCiAKKy8vIEZJWE1FOiBSZW1vdmUgb25jZSAtZ2Vz
dHVyZVJlY29nbml6ZXI6c2hvdWxkSWdub3JlV2ViVG91Y2hXaXRoRXZlbnQ6IGlzIGluIFVJV2Vi
VG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplci5oLgogLSAoQk9PTClzaG91bGRJZ25vcmVXZWJU
b3VjaAogewogICAgIHJldHVybiBOTzsKIH0KIAorLSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjoo
VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hv
dWxkSWdub3JlV2ViVG91Y2hXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudAoreworICAgIE5TU2V0
PFVJVG91Y2ggKj4gKndlYlRvdWNoZXMgPSBbZXZlbnQgdG91Y2hlc0Zvckdlc3R1cmVSZWNvZ25p
emVyOmdlc3R1cmVSZWNvZ25pemVyXTsKKyAgICBmb3IgKFVJVG91Y2ggKndlYlRvdWNoIGluIHdl
YlRvdWNoZXMpIHsKKyAgICAgICAgaWYgKFt3ZWJUb3VjaC52aWV3IGlzS2luZE9mQ2xhc3M6W1VJ
U2Nyb2xsVmlldyBjbGFzc11dICYmIFsoVUlTY3JvbGxWaWV3ICopd2ViVG91Y2gudmlldyBfaXNJ
bnRlcnJ1cHRpbmdEZWNlbGVyYXRpb25dKQorICAgICAgICAgICAgcmV0dXJuIFlFUzsKKyAgICB9
CisgICAgcmV0dXJuIHNlbGYuX3Njcm9sbGVyLl9pc0ludGVycnVwdGluZ0RlY2VsZXJhdGlvbjsK
K30KKwogLSAoQk9PTClpc0FueVRvdWNoT3ZlckFjdGl2ZUFyZWE6KE5TU2V0ICopdG91Y2hlcwog
ewogICAgIHJldHVybiBZRVM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tCmluZGV4IGMxYmE3NjRmMDE1NDI3MTFlMjlhZDVmOWEwNzM0Mjc3Njgy
OGFiYmEuLmVhZDNhNmJmOTk5MjVlNmNhMTcwMTRiZGQ5NWMyZDg3ZjRlZTYyNTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0yNzIs
NiArMjcyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpvdmVyZmxvd1Njcm9sbFZpZXdXaWxsU3Rh
cnRQYW5HZXN0dXJlKCkKICAgICBtX3BhZ2VDbGllbnQub3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0
YXJ0UGFuR2VzdHVyZSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6b3ZlcmZsb3dTY3JvbGxW
aWV3RGlkRW5kUGFuR2VzdHVyZSgpCit7CisgICAgbV9wYWdlQ2xpZW50Lm92ZXJmbG93U2Nyb2xs
Vmlld0RpZEVuZFBhbkdlc3R1cmUoKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6Om92ZXJmbG93
U2Nyb2xsVmlld0RpZFNjcm9sbCgpCiB7CiAgICAgbV9wYWdlQ2xpZW50Lm92ZXJmbG93U2Nyb2xs
Vmlld0RpZFNjcm9sbCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZlYTFjYzBmMTNlNDQyODdhZTc1NmIzNjhjNTA4Mzdk
ZDgwNzQxMGIuLmRlNzA4NTIzOWQ4ODk2MWM3ZTExNmNhZjE0NGJmMGI0ODYyNGU4MmIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNy0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJZ25vcmUgdG91Y2ggZXZlbnRzIHRoYXQgaW50
ZXJydXB0IHBsYXRmb3JtLWRyaXZlbiBtb21lbnR1bSBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDMwMAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzMwMzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyAzIG5ldyBMYXlvdXRUZXN0cyBjb3ZlcmluZyBjYXNlcyBvZiB0b3Vj
aCBldmVudCBoYW5kbGluZyBkdXJpbmcgc2Nyb2xsIGRlY2VsZXJhdGlvbiBpbiBtYWluZnJhbWUg
YW5kCisgICAgICAgIG92ZXJmbG93IHNjcm9sbGluZyBjb250YWluZXJzLiBTZWUgU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIGZhc3QvZXZlbnRz
L2lvcy9uby10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwtaW4tbWFp
bmZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL25v
LXRvdWNoLWV2ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1tYWluZnJhbWUu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL25vLXRvdWNoLWV2ZW50cy13
aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1vdmVyZmxvdy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9uby10b3VjaC1ldmVudHMtd2hlbi1zdG9w
cGluZy1tb21lbnR1bS1zY3JvbGwtaW4tb3ZlcmZsb3cuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvaW9zL3RvdWNoLWV2ZW50cy1kdXJpbmctc2Nyb2xsLWRlY2VsZXJhdGlvbi1p
bi1vdmVyZmxvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lv
cy90b3VjaC1ldmVudHMtZHVyaW5nLXNjcm9sbC1kZWNlbGVyYXRpb24taW4tb3ZlcmZsb3cuaHRt
bDogQWRkZWQuCisKIDIwMTctMDctMDYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMTY5NDQpOiBGb250IGxvYWRzIGNhbiBj
YXVzZSBDaGluZXNlIGNoYXJhY3RlcnMgdG8gZHJhdyBhcyAubm90ZGVmCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvbm8tdG91Y2gtZXZlbnRzLXdoZW4tc3RvcHBpbmct
bW9tZW50dW0tc2Nyb2xsLWluLW1haW5mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9pb3Mvbm8tdG91Y2gtZXZlbnRzLXdoZW4tc3RvcHBpbmctbW9tZW50dW0tc2Ny
b2xsLWluLW1haW5mcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY5ZTNlODFmYzgzZGQx
OTEwMWJmMDY3NTk2MjRjMmY4OTU4MTlkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2lvcy9uby10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1z
Y3JvbGwtaW4tbWFpbmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitQQVNTIGRv
Y3VtZW50LmJvZHkuc2Nyb2xsVG9wIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0b3VjaGVzJykudGV4dENvbnRlbnQgaXMgIjEiCitQQVNTIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3VjaGVzJykudGV4dENvbnRlbnQgaXMgIjEiCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3VjaGVzJykudGV4dENvbnRlbnQgaXMgIjIiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RvIG1hbnVh
bGx5IHRlc3QsIHN3aXBlIGRvd24gdG8gc2Nyb2xsIGluIHRoZSBkb2N1bWVudC4gVGhlIHRvdWNo
IGNvdW50IHNob3VsZCB1cGRhdGUgdG8gMS4gVGFwIGFueXdoZXJlIHRvIHN0b3Agc2Nyb2xsaW5n
IHdoaWxlIGRlY2VsZXJhdGluZy4gVGhlIHRvdWNoIGNvdW50IHNob3VsZCByZW1haW4gYXQgMS4g
VGhlbiB0YXAgYWdhaW4gaW4gdGhlIGRvY3VtZW50LiBUaGUgdG91Y2ggY291bnQgc2hvdWxkIGJl
IDIuCisKK1RoZSB0b3VjaCBjb3VudCBpczogMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW9zL25vLXRvdWNoLWV2ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9s
bC1pbi1tYWluZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9uby10b3Vj
aC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwtaW4tbWFpbmZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDJkMjk3ZjU3M2RjOTg4NTU2YjkyOTUzZjZlZjc0NzIwMjEyY2VhZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9uby10b3VjaC1ldmVu
dHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwtaW4tbWFpbmZyYW1lLmh0bWwKQEAgLTAs
MCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsK
KyAgICAgICAgICAgIGhlaWdodDogNTAwMHZoOworICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1h
cHBsZS1zeXN0ZW07CisgICAgICAgICAgICBjb2xvcjogd2hpdGU7CisgICAgICAgICAgICBtYXJn
aW46IDA7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICBw
YWRkaW5nOiAxZW07CisgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgICAg
ICB9CisKKyAgICAgICAgLmRlc2NyaXB0aW9uIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhl
ZDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9
ImRlc2NyaXB0aW9uIj4KKyAgICA8cD5UbyBtYW51YWxseSB0ZXN0LCBzd2lwZSBkb3duIHRvIHNj
cm9sbCBpbiB0aGUgZG9jdW1lbnQuIFRoZSB0b3VjaCBjb3VudCBzaG91bGQgdXBkYXRlIHRvIDEu
IFRhcCBhbnl3aGVyZSB0byBzdG9wIHNjcm9sbGluZyB3aGlsZSBkZWNlbGVyYXRpbmcuIFRoZSB0
b3VjaCBjb3VudCBzaG91bGQgcmVtYWluIGF0IDEuIFRoZW4gdGFwIGFnYWluIGluIHRoZSBkb2N1
bWVudC4gVGhlIHRvdWNoIGNvdW50IHNob3VsZCBiZSAyLjwvcD4KKyAgICA8cD5UaGUgdG91Y2gg
Y291bnQgaXM6IDxzcGFuIGlkPSJ0b3VjaGVzIj4wPC9zcGFuPjwvcD4KKzwvZGl2PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK3RvdWNoc3RhcnRFdmVudENvdW50ID0gMDsKKworZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Ag
PSAwOworZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgKCkgPT4g
eworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gKCsrdG91Y2hzdGFy
dEV2ZW50Q291bnQgPT0gMikgPyAiZ3JlZW4iIDogInJlZCI7CisgICAgdG91Y2hlcy50ZXh0Q29u
dGVudCA9IGAke3RvdWNoc3RhcnRFdmVudENvdW50fWA7Cit9KTsKKworZnVuY3Rpb24gZ2V0U3dp
cGVVSVNjcmlwdChmcm9tWCwgZnJvbVksIHRvWCwgdG9ZLCBkdXJhdGlvbikKK3sKKyAgICByZXR1
cm4gYCgoKSA9PiB7CisgICAgICAgIHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgk
e2Zyb21YfSwgJHtmcm9tWX0sICR7dG9YfSwgJHt0b1l9LCAke2R1cmF0aW9ufSwgKCkgPT4gewor
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIiIpOworICAgICAgICB9
KTsKKyAgICB9KSgpO2A7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdFRvdWNoQ291bnRUb0JlKGNvdW50
KQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RvdWNoZXMnKS50ZXh0Q29udGVudCIsIGAke2NvdW50fWApOworfQorCitpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoZ2V0U3dpcGVVSVNjcmlwdCgxMDAsIDAuNzUgKiBpbm5lckhlaWdodCwgMTAwLCAw
LjI1ICogaW5uZXJIZWlnaHQsIDAuMSksICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlm
ZmVyZW50KCJkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCIsICIwIiwgKCkgPT4geworICAgICAgICAg
ICAgZXhwZWN0VG91Y2hDb3VudFRvQmUoMSk7CisgICAgICAgICAgICBVSUhlbHBlci50YXBBdCgx
MDAsIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wICsgMC43NSAqIGlubmVySGVpZ2h0KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICAgICAgICBleHBlY3RUb3VjaENvdW50VG9CZSgxKTsKKyAgICAgICAg
ICAgICAgICBVSUhlbHBlci50YXBBdCgxMDAsIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wICsgMC4y
NSAqIGlubmVySGVpZ2h0KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0
VG91Y2hDb3VudFRvQmUoMik7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0p
OworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pb3Mvbm8tdG91Y2gtZXZlbnRzLXdoZW4tc3RvcHBpbmctbW9tZW50dW0tc2Nyb2xs
LWluLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9u
by10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwtaW4tb3ZlcmZsb3ct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NTU5NzUzMmUyMmVkNDI1NjZiZmI2MzlmYzExZTk1
NDU1ZWZiMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mv
bm8tdG91Y2gtZXZlbnRzLXdoZW4tc3RvcHBpbmctbW9tZW50dW0tc2Nyb2xsLWluLW92ZXJmbG93
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb250YWluZXInKS5zY3JvbGxUb3AgYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKK1BBU1Mg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNoZXMnKS50ZXh0Q29udGVudCBpcyAiMSIKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNoZXMnKS50ZXh0Q29udGVudCBpcyAiMSIK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNoZXMnKS50ZXh0Q29udGVudCBpcyAi
MiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVG8g
bWFudWFsbHkgdGVzdCwgc3dpcGUgZG93biB0byBzY3JvbGwgaW4gdGhlIGNvbnRhaW5lci4gVGhl
IHRvdWNoIGNvdW50IHNob3VsZCB1cGRhdGUgdG8gMS4gVGFwIHRvIHN0b3Agc2Nyb2xsaW5nIHdo
aWxlIGRlY2VsZXJhdGluZy4gVGhlIHRvdWNoIGNvdW50IHNob3VsZCByZW1haW4gYXQgMS4gVGhl
biB0YXAgYWdhaW4gaW4gdGhlIGNvbnRhaW5lci4gVGhlIHRvdWNoIGNvdW50IHNob3VsZCBiZSAy
LgorCitUaGUgdG91Y2ggY291bnQgaXM6IDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9uby10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwt
aW4tb3ZlcmZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9uby10b3VjaC1l
dmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwtaW4tb3ZlcmZsb3cuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMDNmZTVjMDIzZjEwNGRlMjgwYzQ1MzM3YjlkYzRjZDlmNDkxMmI0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vLXRvdWNoLWV2ZW50cy13
aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1vdmVyZmxvdy5odG1sCkBAIC0wLDAgKzEs
ODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAg
ICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAg
ICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5
c3RlbTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgIGJveC1zaXppbmc6IGJv
cmRlci1ib3g7CisgICAgICAgIH0KKworICAgICAgICAjY29udGFpbmVyIHsKKyAgICAgICAgICAg
IHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIG92
ZXJmbG93LXk6IHNjcm9sbDsKKyAgICAgICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5n
OiB0b3VjaDsKKyAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICB9CisKKyAgICAgICAgI2NvbnRhaW5lciA+IGRpdiB7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDEwMDAwcHg7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAg
ICAgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICB9CisKKyAgICAgICAgI2Rlc2NyaXB0aW9u
IHsKKyAgICAgICAgICAgIHRvcDogMzAwcHg7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJj
b250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImFyZWEiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+CisgICAgPHA+VG8gbWFudWFsbHkgdGVzdCwgc3dpcGUgZG93biB0byBz
Y3JvbGwgaW4gdGhlIGNvbnRhaW5lci4gVGhlIHRvdWNoIGNvdW50IHNob3VsZCB1cGRhdGUgdG8g
MS4gVGFwIHRvIHN0b3Agc2Nyb2xsaW5nIHdoaWxlIGRlY2VsZXJhdGluZy4gVGhlIHRvdWNoIGNv
dW50IHNob3VsZCByZW1haW4gYXQgMS4gVGhlbiB0YXAgYWdhaW4gaW4gdGhlIGNvbnRhaW5lci4g
VGhlIHRvdWNoIGNvdW50IHNob3VsZCBiZSAyLjwvcD4KKyAgICA8cD5UaGUgdG91Y2ggY291bnQg
aXM6IDxzcGFuIGlkPSJ0b3VjaGVzIj4wPC9zcGFuPjwvcD4KKzwvZGl2PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3Rv
dWNoc3RhcnRFdmVudENvdW50ID0gMDsKK2NvbnRhaW5lci5zY3JvbGxUb3AgPSAwOworY29udGFp
bmVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCAoKSA9PiB7CisgICAgY29udGFpbmVy
LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICgrK3RvdWNoc3RhcnRFdmVudENvdW50ICUgMikgPyAi
Z3JlZW4iIDogInJlZCI7CisgICAgdG91Y2hlcy50ZXh0Q29udGVudCA9IGAke3RvdWNoc3RhcnRF
dmVudENvdW50fWA7Cit9KTsKKworZnVuY3Rpb24gZ2V0U3dpcGVVSVNjcmlwdChmcm9tWCwgZnJv
bVksIHRvWCwgdG9ZLCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gYCgoKSA9PiB7CisgICAgICAg
IHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgke2Zyb21YfSwgJHtmcm9tWX0sICR7
dG9YfSwgJHt0b1l9LCAke2R1cmF0aW9ufSwgKCkgPT4geworICAgICAgICAgICAgdWlDb250cm9s
bGVyLnVpU2NyaXB0Q29tcGxldGUoIiIpOworICAgICAgICB9KTsKKyAgICB9KSgpO2A7Cit9CisK
K2Z1bmN0aW9uIGV4cGVjdFRvdWNoQ291bnRUb0JlKGNvdW50KQoreworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNoZXMnKS50ZXh0Q29udGVu
dCIsIGAke2NvdW50fWApOworfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCkgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0U3dpcGVVSVNj
cmlwdCgxMDAsIDI1MCwgMTAwLCA1MCwgMC4xKSwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5zY3JvbGxU
b3AiLCAiMCIsICgpID0+IHsKKyAgICAgICAgICAgIGV4cGVjdFRvdWNoQ291bnRUb0JlKDEpOwor
ICAgICAgICAgICAgVUlIZWxwZXIudGFwQXQoMTAwLCAyNTApLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgICAgIGV4cGVjdFRvdWNoQ291bnRUb0JlKDEpOworICAgICAgICAgICAgICAgIFVJSGVs
cGVyLnRhcEF0KDEwMCwgNTApLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgICAgICBleHBl
Y3RUb3VjaENvdW50VG9CZSgyKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAg
fSk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2lvcy90b3VjaC1ldmVudHMtZHVyaW5nLXNjcm9sbC1kZWNlbGVyYXRpb24taW4t
b3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3RvdWNo
LWV2ZW50cy1kdXJpbmctc2Nyb2xsLWRlY2VsZXJhdGlvbi1pbi1vdmVyZmxvdy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTdiNGZlMzQ3YjA0MWQ2YWU0MTc0MDliNTdlMjQ2NTVkMTZmMWFiYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy90b3VjaC1ldmVu
dHMtZHVyaW5nLXNjcm9sbC1kZWNlbGVyYXRpb24taW4tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTMgQEAKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicp
LnNjcm9sbFRvcCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29udGFpbmVyVG91Y2hlcycpLnRleHRDb250ZW50IGlzICIxIgorUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRUb3VjaGVzJykudGV4dENvbnRlbnQgaXMgIjEi
CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXJUb3VjaGVzJykudGV4dENv
bnRlbnQgaXMgIjEiCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudFRvdWNo
ZXMnKS50ZXh0Q29udGVudCBpcyAiMiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorVG8gbWFudWFsbHkgdGVzdCwgc3dpcGUgZG93biB0byBzY3JvbGwg
aW4gdGhlIGNvbnRhaW5lci4gQm90aCB0b3VjaCBjb3VudHMgc2hvdWxkIHVwZGF0ZSB0byAxLiBU
aGVuIHRhcCBlbHNld2hlcmUgaW4gdGhlIGRvY3VtZW50LiBUaGUgZG9jdW1lbnQgdG91Y2ggY291
bnQgc2hvdWxkIGluY3JlbWVudCB0byAyLCBidXQgdGhlIGNvbnRhaW5lciB0b3VjaCBjb3VudCBz
aG91bGQgcmVtYWluIGF0IDEuCisKK1RoZSB0b3VjaCBjb3VudCBpbiB0aGUgc2Nyb2xsIGNvbnRh
aW5lciBpczogMQorCitUaGUgdG91Y2ggY291bnQgaW4gdGhlIGRvY3VtZW50IGlzOiAyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvdG91Y2gtZXZlbnRzLWR1cmluZy1z
Y3JvbGwtZGVjZWxlcmF0aW9uLWluLW92ZXJmbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9pb3MvdG91Y2gtZXZlbnRzLWR1cmluZy1zY3JvbGwtZGVjZWxlcmF0aW9uLWluLW92ZXJm
bG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM4MjQxNDk2YjI2MDg0Zjk5OTkxNTM0NWQ4ZjZjMzJkZmVi
OWVlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy90b3Vj
aC1ldmVudHMtZHVyaW5nLXNjcm9sbC1kZWNlbGVyYXRpb24taW4tb3ZlcmZsb3cuaHRtbApAQCAt
MCwwICsxLDkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZp
ZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAl
OworICAgICAgICAgICAgaGVpZ2h0OiA1MDB2aDsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAt
YXBwbGUtc3lzdGVtOworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgYm94LXNp
emluZzogYm9yZGVyLWJveDsKKyAgICAgICAgfQorCisgICAgICAgICNjb250YWluZXIgeworICAg
ICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAg
ICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAgICAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1z
Y3JvbGxpbmc6IHRvdWNoOworICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CisgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICB0b3A6IDA7CisgICAgICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIH0KKworICAgICAgICAjY29udGFpbmVyID4g
ZGl2IHsKKyAgICAgICAgICAgIGhlaWdodDogMTAwMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAx
MDAlOworICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIH0KKworICAgICAgICAjZGVz
Y3JpcHRpb24geworICAgICAgICAgICAgdG9wOiAzMDBweDsKKyAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iYXJlYSI+PC9kaXY+Cis8L2Rpdj4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj4KKyAgICA8cD5UbyBtYW51YWxseSB0ZXN0LCBzd2lwZSBk
b3duIHRvIHNjcm9sbCBpbiB0aGUgY29udGFpbmVyLiBCb3RoIHRvdWNoIGNvdW50cyBzaG91bGQg
dXBkYXRlIHRvIDEuIFRoZW4gdGFwIGVsc2V3aGVyZSBpbiB0aGUgZG9jdW1lbnQuIFRoZSBkb2N1
bWVudCB0b3VjaCBjb3VudCBzaG91bGQgaW5jcmVtZW50IHRvIDIsIGJ1dCB0aGUgY29udGFpbmVy
IHRvdWNoIGNvdW50IHNob3VsZCByZW1haW4gYXQgMS48L3A+CisgICAgPHA+VGhlIHRvdWNoIGNv
dW50IGluIHRoZSBzY3JvbGwgY29udGFpbmVyIGlzOiA8c3BhbiBpZD0iY29udGFpbmVyVG91Y2hl
cyI+MDwvc3Bhbj48L3A+CisgICAgPHA+VGhlIHRvdWNoIGNvdW50IGluIHRoZSBkb2N1bWVudCBp
czogPHNwYW4gaWQ9ImRvY3VtZW50VG91Y2hlcyI+MDwvc3Bhbj48L3A+Cis8L2Rpdj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+Citjb250YWluZXJUb3VjaHN0YXJ0RXZlbnRDb3VudCA9IDA7Citkb2N1bWVudFRvdWNoc3Rh
cnRFdmVudENvdW50ID0gMDsKK2NvbnRhaW5lci5zY3JvbGxUb3AgPSAwOworZG9jdW1lbnQuYm9k
eS5zY3JvbGxUb3AgPSAwOworY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQi
LCAoKSA9PiB7CisgICAgY29udGFpbmVyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICgrK2NvbnRh
aW5lclRvdWNoc3RhcnRFdmVudENvdW50ID09IDEpID8gImdyZWVuIiA6ICJyZWQiOworICAgIGNv
bnRhaW5lclRvdWNoZXMudGV4dENvbnRlbnQgPSBgJHtjb250YWluZXJUb3VjaHN0YXJ0RXZlbnRD
b3VudH1gOworfSk7Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQi
LCAoKSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAoKytk
b2N1bWVudFRvdWNoc3RhcnRFdmVudENvdW50ID09IDIpID8gImdyZWVuIiA6ICJyZWQiOworICAg
IGRvY3VtZW50VG91Y2hlcy50ZXh0Q29udGVudCA9IGAke2RvY3VtZW50VG91Y2hzdGFydEV2ZW50
Q291bnR9YDsKK30pOworCitmdW5jdGlvbiBnZXRTd2lwZVVJU2NyaXB0KGZyb21YLCBmcm9tWSwg
dG9YLCB0b1ksIGR1cmF0aW9uKQoreworICAgIHJldHVybiBgKCgpID0+IHsKKyAgICAgICAgdWlD
b250cm9sbGVyLmRyYWdGcm9tUG9pbnRUb1BvaW50KCR7ZnJvbVh9LCAke2Zyb21ZfSwgJHt0b1h9
LCAke3RvWX0sICR7ZHVyYXRpb259LCAoKSA9PiB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZSgiIik7CisgICAgICAgIH0pOworICAgIH0pKCk7YDsKK30KKworZnVu
Y3Rpb24gZXhwZWN0VG91Y2hDb3VudHNUb0JlKGNvbnRhaW5lckNvdW50LCBkb2N1bWVudENvdW50
KQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnRhaW5lclRvdWNoZXMnKS50ZXh0Q29udGVudCIsIGAke2NvbnRhaW5lckNvdW50fWApOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3Vt
ZW50VG91Y2hlcycpLnRleHRDb250ZW50IiwgYCR7ZG9jdW1lbnRDb3VudH1gKTsKK30KKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyICYmIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGdldFN3aXBlVUlTY3JpcHQoMTAwLCAyNTAsIDEwMCwgNTAsIDAu
MSksICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29udGFpbmVyJykuc2Nyb2xsVG9wIiwgIjAiLCAoKSA9PiB7CisgICAgICAg
ICAgICBleHBlY3RUb3VjaENvdW50c1RvQmUoMSwgMSk7CisgICAgICAgICAgICBVSUhlbHBlci50
YXBBdCgxMDAsIDM1MCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgZXhwZWN0VG91Y2hD
b3VudHNUb0JlKDEsIDIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cg==
</data>
<flag name="review"
          id="335813"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315008</attachid>
            <date>2017-07-10 12:27:29 -0700</date>
            <delta_ts>2017-07-10 15:08:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-174300-20170710122728.patch</filename>
            <type>text/plain</type>
            <size>33630</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk4OTBmZTI0YjAzOTVm
ODQzMzhiZTQyYTg5MzNiZTMyNDJjYmRiNy4uMjgwYWE4ZjNiMGU1YzYzYWU5NzEzOWY5NjFiMTlm
OTQwZDExY2U5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA3LTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIElnbm9y
ZSB0b3VjaCBldmVudHMgdGhhdCBpbnRlcnJ1cHQgcGxhdGZvcm0tZHJpdmVuIG1vbWVudHVtIHNj
cm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc0MzAwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzAzMDYzOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgU2VlIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL2lvcy9u
by10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwtaW4tbWFpbmZyYW1l
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2lvcy9uby10b3VjaC1ldmVudHMtd2hl
bi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwtaW4tb3ZlcmZsb3cuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9ldmVudHMvaW9zL3RvdWNoLWV2ZW50cy1kdXJpbmctc2Nyb2xsLWRlY2VsZXJhdGlv
bi1pbi1vdmVyZmxvdy5odG1sCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9k
ZURpZEVuZFBhbkdlc3R1cmUpOgorCiAyMDE3LTA3LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gU291cENvb2tpZUphciBpcyBu
ZXZlciByZWxlYXNlZCAocmVzdWx0aW5nIGluIHNxbGl0ZSB0ZW1wIGZpbGVzIGx5aW5nIGFyb3Vu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA1YmMyZDFkNTc3NzE4NDc0ODAxZDgyMmI1M2EzMzg0ZjA1ZmU5OTM5
Li40YjVhNTUzODI3ODY1OGY1YTQwMjVhMDk0MGJkODkxNDc4MGUxNWJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjcgQEAKKzIwMTctMDctMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSWdub3JlIHRvdWNoIGV2ZW50cyB0aGF0IGludGVy
cnVwdCBwbGF0Zm9ybS1kcml2ZW4gbW9tZW50dW0gc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQzMDAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzMzMDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGltbWVkaWF0ZWx5IGZhaWxpbmcgV0tDb250ZW50Vmll
dydzIFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciBpZiBhbnkgdG91Y2ggaW50ZXJy
dXB0cworICAgICAgICBzY3JvbGwgdmlldyBkZWNlbGVyYXRpb24uIENvdmVyZWQgYnkgMyBuZXcg
TGF5b3V0VGVzdHMgKHNlZSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cpLgorCisgICAgICAgICog
UGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVuZERy
YWdnaW5nOndpbGxEZWNlbGVyYXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmll
d0RpZEVuZFpvb21pbmc6d2l0aFZpZXc6YXRTY2FsZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
UGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1MubW06CisgICAgICAgICgtW1dLT3ZlcmZsb3dTY3JvbGxWaWV3RGVsZWdh
dGUgc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOndpbGxEZWNlbGVyYXRlOl0pOgorICAgICAgICAo
V2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpvdmVyZmxvd1Nj
cm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKToKKworICAgICAgICBBZGRzIHBsdW1iaW5nIGluIHRo
ZSBVSSBwcm9jZXNzIHRvIGFsZXJ0IHRoZSBXS0NvbnRlbnRWaWV3IHdoZW4gc2Nyb2xsIHZpZXcg
ZHJhZ2dpbmcgaGFzIGVuZGVkIGluIGFuIG92ZXJmbG93CisgICAgICAgIG1vbWVudHVtIHNjcm9s
bGluZyByZWdpb24gKHRyYWNrZWQgYnkgYW4gb3ZlcmZsb3cgc2Nyb2xsaW5nIHRyZWUgbm9kZSku
IFRoaXMgcGFyYWxsZWxzIFVJIHByb2Nlc3MgcGx1bWJpbmcgZm9yCisgICAgICAgIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6Om92ZXJmbG93U2Nyb2xsVmlld1dpbGxTdGFy
dFBhbkdlc3R1cmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpvdmVyZmxvd1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1Ry
ZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzY3JvbGxWaWV3RGlk
RW5kUGFuT3JQaW5jaEdlc3R1cmVdKToKKworICAgICAgICBXaGVuIHRoZSBkcmFnZ2luZyBwaGFz
ZSBvZiBhIHNjcm9sbCBnZXN0dXJlIGVuZHMsIGVuc3VyZSB0aGF0IF9jYW5TZW5kVG91Y2hFdmVu
dHNBc3luY2hyb25vdXNseSBpcyByZXNldCB0byBOTy4KKyAgICAgICAgV2hlbiB0b3VjaGVzIGFy
ZSBub3QgYmVpbmcgcHJldmVudGVkLCB0aGlzIGZsYWcgaXMgc2V0IHRvIFlFUyBpbiAtc2Nyb2xs
Vmlld1dpbGxTdGFydFBhbk9yUGluY2hHZXN0dXJlOiBhbmQKKyAgICAgICAgbm9ybWFsbHkgcmVz
ZXQgdG8gTk8gaW4gLV93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6IGFmdGVyIGFsbCB0b3VjaCBw
b2ludHMgaGF2ZSBiZWVuIHJlbGVhc2VkLiBIb3dldmVyLCBpbiB0aGUKKyAgICAgICAgY2FzZSB3
aGVyZSB3ZSd2ZSBwcmVtYXR1cmVseSBmYWlsZWQgdGhlIHdlYiB0b3VjaCBldmVudHMgZ2VzdHVy
ZSByZWNvZ25pemVyIGFmdGVyIC10b3VjaGVzQmVnYW46LAorICAgICAgICAtX3dlYlRvdWNoRXZl
bnRzUmVjb2duaXplZDogd2lsbCBub3QgYmUgY2FsbGVkIGFnYWluIGluIGEgc3RhdGUgd2hlcmUg
YWxsIHRvdWNoZXMgaGF2ZSBiZWVuIHJlbGVhc2VkLiBUaHVzLCB3ZQorICAgICAgICBhbHNvIG5l
ZWQgdG8gYm9va2VuZCB0aGUgcGxhY2Ugd2hlcmUgd2UgYmVnaW4gYWxsb3dpbmcgYXN5bmMgdG91
Y2ggZXZlbnQgZGlzcGF0Y2ggaW4KKyAgICAgICAgLXNjcm9sbFZpZXdXaWxsU3RhcnRQYW5PclBp
bmNoR2VzdHVyZSBieSBkaXNhbGxvd2luZyBhc3luYyB0b3VjaCBldmVudCBkaXNwYXRjaCBpbgor
ICAgICAgICAtc2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJlLgorCisgICAgICAgIFRo
aXMgaGFzIG5vIGltcGFjdCBpbiB0aGUgbm9ybWFsIGNhc2Ugd2hlcmUgdGhlIHVzZXIgc2Nyb2xs
cyB3aXRob3V0IG1vbWVudHVtLCBzaW5jZQorICAgICAgICAtc2Nyb2xsVmlld0RpZEVuZFBhbk9y
UGluY2hHZXN0dXJlIHdpbGwgZmlyZSBhZnRlciBhc3luYyB0b3VjaCBldmVudHMgaGF2ZSBhbHJl
YWR5IGJlZW4gZGlzYWxsb3dlZCBpbgorICAgICAgICAtX3dlYlRvdWNoRXZlbnRzUmVjb2duaXpl
ZDosIGFuZCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgcGFnZSBwcmV2ZW50cyBkZWZhdWx0IG9uIHRv
dWNoZXMsIHNjcm9sbGluZyBkb2Vzbid0CisgICAgICAgIGhhcHBlbiBhbnl3YXlzLCBzbyBuZWl0
aGVyIHNjcm9sbFZpZXdXaWxsU3RhcnRQYW5PclBpbmNoR2VzdHVyZSBub3Igc2Nyb2xsVmlld0Rp
ZEVuZFBhbk9yUGluY2hHZXN0dXJlIHdpbGwgYmUKKyAgICAgICAgaW52b2tlZC4KKworICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZElnbm9yZVdlYlRvdWNo
V2l0aEV2ZW50Ol0pOgorCisgICAgICAgIEltcGxlbWVudHMgYSBuZXcgU1BJIGhvb2sgaW4gVUlL
aXQuIFRoaXMgc2VydmVzIGFuIGlkZW50aWNhbCBwdXJwb3NlIGFzIC1zaG91bGRJZ25vcmVXZWJU
b3VjaCwgYnV0IGFkZGl0aW9uYWxseQorICAgICAgICBwYXNzZXMgdGhlIHRyaWdnZXJpbmcgVUlF
dmVudCwgYXMgd2VsbCBhcyB0aGUgZ2VzdHVyZSByZWNvZ25pemVyIGl0c2VsZiAoZm9sbG93aW5n
IHN0YW5kYXJkIGNvbnZlbnRpb24gZm9yCisgICAgICAgIE9iamVjdGl2ZSBDIGRlbGVnYXRlIG1l
dGhvZHMpLiBIZXJlLCB3ZSByZXR1cm4gWUVTIGluIHRoZSBjYXNlIHdoZXJlIG9uZSBvciBtb3Jl
IG9mIHRoZSB0b3VjaGVzIHJlY29nbml6ZWQgYnkKKyAgICAgICAgdGhlIGdlc3R1cmUgaXMgY3Vy
cmVudGx5IGludGVycnVwdGluZyBzY3JvbGwgZGVjZWxlcmF0aW9uLgorCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6b3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSk6CisKIDIwMTctMDctMTAg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtT
T1VQXSBTb3VwQ29va2llSmFyIGlzIG5ldmVyIHJlbGVhc2VkIChyZXN1bHRpbmcgaW4gc3FsaXRl
IHRlbXAgZmlsZXMgbHlpbmcgYXJvdW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDliODk1MDQ1ZjNmYWRiMDBlZmRiOTNhZmQ3NWM3YzE2
NmYyY2UyOGUuLjI4ZmNkMTdiNWQ3YTM5NmIzYzU3NzVhYTBlNzA5ZDRkN2Y0YTM5ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTEwMSw2
ICsxMDEsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgRmxvYXRS
ZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xs
aW5nVHJlZU5vZGVEaWRFbmRQYW5HZXN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCBiMjc0MjAzYzA1MjNjMDZkM2M2ODFmMDdk
MzVmYjg1MDY5YjZmMjdiLi41NzMxYmUzNDM5ODQ1NDQ4OWM4N2NhZWUyY2Y3MjUxOTcxY2ZjMGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC02ODks
OSArNjg5LDEyIEBAIHN0cnVjdCBfVUlXZWJUb3VjaEV2ZW50IHsKICAgICBib29sIGlzUG90ZW50
aWFsVGFwOwogfTsKIAotQHByb3RvY29sIFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXpl
ckRlbGVnYXRlCitAY2xhc3MgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyOworCitA
cHJvdG9jb2wgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUgPE5TT2Jq
ZWN0PgogLSAoQk9PTClpc0FueVRvdWNoT3ZlckFjdGl2ZUFyZWE6KE5TU2V0ICopdG91Y2hlczsK
LS0gKEJPT0wpc2hvdWxkSWdub3JlV2ViVG91Y2g7CitAb3B0aW9uYWwKKy0gKEJPT0wpZ2VzdHVy
ZVJlY29nbml6ZXI6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVS
ZWNvZ25pemVyIHNob3VsZElnbm9yZVdlYlRvdWNoV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7
CiBAZW5kCiAKIEBpbnRlcmZhY2UgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyIDog
VUlHZXN0dXJlUmVjb2duaXplcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQppbmRleCAxOGE0M2E4YTAwMzVmZTI3MmYyMmQ4NTQ3MGU5M2UzZmEx
MDUwN2E0Li4xYTlmYjYzNzhkZDI5NWM0ZDA1MmNmODBmMzg1YWNiYjYyNjk5MTQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjE0
Myw2ICsyMTQzLDkgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAvLyBJZiB3ZSdyZSBk
ZWNlbGVyYXRpbmcsIHNjcm9sbCBvZmZzZXQgd2lsbCBiZSB1cGRhdGVkIHdoZW4gc2Nyb2xsVmll
d0RpZEZpbmlzaERlY2VsZXJhdGluZzogaXMgY2FsbGVkLgogICAgIGlmICghZGVjZWxlcmF0ZSkK
ICAgICAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107CisKKyAgICBpZiAoc2Nyb2xsVmll
dy5wYW5HZXN0dXJlUmVjb2duaXplci5zdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVF
bmRlZCkKKyAgICAgICAgW19jb250ZW50VmlldyBzY3JvbGxWaWV3RGlkRW5kUGFuT3JQaW5jaEdl
c3R1cmVdOwogfQogCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcKQEAgLTIxNzcsNiArMjE4MCw5IEBAIC0gKHZvaWQpc2Nyb2xs
Vmlld0RpZEVuZFpvb21pbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZpZXc6KFVJ
VmlldyAqKXZpCiAgICAgQVNTRVJUKHNjcm9sbFZpZXcgPT0gX3Njcm9sbFZpZXcpOwogICAgIFtz
ZWxmIF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZUFmdGVyU2Nyb2xsSW5WaWV3OnNj
cm9sbFZpZXddOwogICAgIFtfY29udGVudFZpZXcgZGlkWm9vbVRvU2NhbGU6c2NhbGVdOworCisg
ICAgaWYgKHNjcm9sbFZpZXcucGluY2hHZXN0dXJlUmVjb2duaXplci5zdGF0ZSA9PSBVSUdlc3R1
cmVSZWNvZ25pemVyU3RhdGVFbmRlZCkKKyAgICAgICAgW19jb250ZW50VmlldyBzY3JvbGxWaWV3
RGlkRW5kUGFuT3JQaW5jaEdlc3R1cmVdOwogfQogCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRT
Y3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDg5M2UyYzAxNDc5Yzc1MzY4OWYyNWFhNjc1NDIw
OWUzYjQwNjQwODguLmRkZTZmYmJhNmFiYzI5YThiMGIyNDk0NGQ5YTcxMjBlYWVjZDUyN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzA4LDYgKzMwOCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtWm9vbVNjYWxlKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGRvY3VtZW50UmVjdCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVy
ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlkU2Nyb2xsKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Njcm9sbFdpbGxTdGFydFNjcm9sbCgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dTY3JvbGxEaWRFbmRTY3JvbGwoKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IGU4N2JiMmMyZTg0Yzg0
OWIwNWZlMTNiZjA5OTZlYzBlMzVlN2RkYmIuLmI1NzQwZDE2YTMzMTZmMDcxMjE5Y2Q2NjUxY2Nk
ODljN2UxOThmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBA
IC04Niw2ICs4Niw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViQ29yZTo6
RmxvYXRSZWN0IGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCkgY29uc3Q7CiAgICAgdm9pZCBzY3Jv
bGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKTsKKyAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSgpOwogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVXaWxs
U3RhcnRTY3JvbGwoKTsKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCk7
CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IDQy
MWM3NDU3YzkwM2I0N2UyZTFhN2I0ODg5ODgxZjU3YzMwZWFjNGQuLjljZjc0MDIwNWMzMzc3MzBk
MjE4MzAwMjRhNWE4YWRmODFhMTE2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAtODcsNiAr
ODcsMTEgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVdpbGxT
dGFydFBhbkdlc3R1cmUoKQogewogICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3Jv
bGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKTsKIH0KKwordm9pZCBSZW1vdGVTY3Jv
bGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFBhbkdlc3R1cmUoKQoreworICAgIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZURpZEVuZFBhbkdlc3R1
cmUoKTsKK30KICAgICAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5v
ZGVXaWxsU3RhcnRTY3JvbGwoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAppbmRleCA3MzE4Y2NjODE0Y2E1
NzE2ZGM3MGMyNGI2YzQ0MTc4ZDI1NmNkYTcwLi45Mjg2NDJlYjIxYTA4ZjE1ZWEyMDNhNGY4OWNm
Zjc5NDRkNzMzZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xs
aW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApAQCAtNjEsNiArNjEsNyBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgZml4ZWRQb3NpdGlv
blJlY3QoKSBvdmVycmlkZTsKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFu
R2VzdHVyZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRQYW5H
ZXN0dXJlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFNj
cm9sbCgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwo
KSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZUlPUy5oCmluZGV4IDAyYzhkZTkxOGM3NGYzYjczZWVjMDM3YjVhYjk2
Y2Q5YmY3MDU1YTguLjk3Njg4ZTcwYzYxMTVkOTkwYmU2NzI4M2E2Nzc4M2FkOGFiZGQyNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxXaWxs
U3RhcnQoKTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsRGlkRW5kKCk7CiAgICAgdm9pZCBvdmVy
Zmxvd1Njcm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCk7CisgICAgdm9pZCBvdmVyZmxvd1Nj
cm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKCk7CiAgICAgdm9pZCBzY3JvbGxWaWV3RGlkU2Nyb2xs
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBib29sIGluVXNlckludGVyYXRpb24pOwogICAg
IHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRh
bCwgdW5zaWduZWQgdmVydGljYWwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCA0MzNkMzhlNDI1MDFlODI1MTYwODZh
YzY2NjA0ZmE4ZTI5Zjc4NGUzLi4xNWU2MzIxYTg3YzdjMmE2NWUyZjgwYmY5ZjQ4OGFhNzM3Nzlm
ZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVJT1MubW0KQEAgLTExNyw2ICsxMTcsOSBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRE
cmFnZ2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aWxsRGVjZWxlcmF0ZTooQk9PTAog
ICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmll
dy5jb250ZW50T2Zmc2V0LCBfaW5Vc2VySW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5n
VHJlZU5vZGUtPm92ZXJmbG93U2Nyb2xsRGlkRW5kKCk7CiAgICAgfQorCisgICAgaWYgKHNjcm9s
bFZpZXcucGFuR2VzdHVyZVJlY29nbml6ZXIuc3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0
YXRlRW5kZWQpCisgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZS0+b3ZlcmZsb3dTY3JvbGxWaWV3
RGlkRW5kUGFuR2VzdHVyZSgpOwogfQogCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREZWNlbGVy
YXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKQEAgLTI5NCw2ICsyOTcsMTEgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpvdmVyZmxvd1Njcm9sbFZp
ZXdXaWxsU3RhcnRQYW5HZXN0dXIKICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5v
ZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZUlPUzo6b3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgpCit7
CisgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSgp
OworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnNjcm9s
bFZpZXdEaWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgaW5V
c2VySW50ZXJhdGlvbikKIHsKICAgICBpZiAobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOGM5OGY5OWE5ZjM4OGI5Mjgy
N2E3NGI4OGZjMzRhZWY4NDYxYjhlZS4uMzU2NTRhNzM3MmYyYjBmYmJjYjFkZGZkYzEzM2M3ODA4
MjFkZGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDk1
LDYgKzQ5NSw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgY29tcHV0ZUN1c3Rv
bUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENv
bnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVj
dFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3Vy
cmVudEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgZGlzcGxheWVkQ29udGVudFNjYWxl
LCBXZWJDb3JlOjpGcmFtZVZpZXc6OkxheW91dFZpZXdwb3J0Q29uc3RyYWludCA9IFdlYkNvcmU6
OkZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJhaW50OjpVbmNvbnN0cmFpbmVkLCBib29s
IHZpc3VhbFZpZXdwb3J0RW5hYmxlZCA9IGZhbHNlKSBjb25zdDsKIAogICAgIHZvaWQgb3ZlcmZs
b3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpOworICAgIHZvaWQgb3ZlcmZsb3dTY3Jv
bGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgpOwogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlk
U2Nyb2xsKCk7CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbFdpbGxTdGFydFNjcm9sbCgpOwogICAg
IHZvaWQgb3ZlcmZsb3dTY3JvbGxEaWRFbmRTY3JvbGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBjZDYyN2MyYzdlNWRmOTY0
NjUyZjAyZGExNmVhN2JjY2U4NDYwMjY1Li4wNTU0ZmVjZGRlMmRjMjIxNjJjMjExNDYwYjMxOTc3
NzY0MGFmZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCkBAIC0xNTEsNiArMTUxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2Fi
bGVJbnNwZWN0b3JOb2RlU2VhcmNoKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIG92ZXJmbG93U2Ny
b2xsVmlld1dpbGxTdGFydFBhbkdlc3R1cmUoKSBvdmVycmlkZTsKKyAgICB2b2lkIG92ZXJmbG93
U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKSBvdmVycmlkZTsKICAgICB2b2lkIG92ZXJmbG93
U2Nyb2xsVmlld0RpZFNjcm9sbCgpIG92ZXJyaWRlOwogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxX
aWxsU3RhcnRTY3JvbGwoKSBvdmVycmlkZTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsRGlkRW5k
U2Nyb2xsKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA3OGU1MWEzOTUyNjQwNjY0MmQwOTJiNDU0MTRlN2Ji
YmRmMjZjNGExLi5jZDBhODczYmRlNWQ1NzZiNjZmZGUwZjU2MzZmN2I0YzAwMGYzZjRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
QEAgLTY3MSw2ICs2NzEsMTEgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6b3ZlcmZsb3dTY3JvbGxW
aWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpCiAgICAgW21fY29udGVudFZpZXcgc2Nyb2xsVmlld1dp
bGxTdGFydFBhbk9yUGluY2hHZXN0dXJlXTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6b3Zl
cmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgpCit7CisgICAgW21fY29udGVudFZpZXcg
c2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJlXTsKK30KKwogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6b3ZlcmZsb3dTY3JvbGxWaWV3RGlkU2Nyb2xsKCkKIHsKICAgICBbbV9jb250ZW50Vmll
dyBfZGlkU2Nyb2xsXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQppbmRleCAy
OGQzOTU5MzQ1NGUxODVmYjY2ZmU1ZGY3ZGFiOGIzYTI4NjIwNGVjLi40OTllNmQ5N2FiNDVmOTI0
Nzg3MTE5NzVkODYwOTg1Njg0MDIyZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
SU9TLm1tCkBAIC0xMDQsNiArMTA0LDExIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkKICAgICBtX3dl
YlBhZ2VQcm94eS5vdmVyZmxvd1Njcm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCk7CiB9CiAK
K3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVE
aWRFbmRQYW5HZXN0dXJlKCkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5vdmVyZmxvd1Njcm9sbFZp
ZXdEaWRFbmRQYW5HZXN0dXJlKCk7Cit9CisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwoKQogewogICAgIG1fd2Vi
UGFnZVByb3h5Lm92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApp
bmRleCBiMjI4MDM2Njc2ZmIzMDdkNWU5MGQ0OGM0NzljNWU5ZGU3YWE0NDljLi5hY2U2MmZmMWQ3
YzM3ODQxNTA2NzNlYTg5YWY2YTU3MmViY2NlM2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTI3OSw2
ICsyNzksNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogLSAodm9pZCljbGVhbnVw
SW50ZXJhY3Rpb247CiAKIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxTdGFydFBhbk9yUGluY2hHZXN0
dXJlOworLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kUGFuT3JQaW5jaEdlc3R1cmU7CiAKIC0gKEJP
T0wpY2FuQmVjb21lRmlyc3RSZXNwb25kZXJGb3JXZWJWaWV3OwogLSAoQk9PTCliZWNvbWVGaXJz
dFJlc3BvbmRlckZvcldlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGU1MzQ2NWVkMmZmZTZk
ZDNmM2ZhMTFiMjljZWJhZTZiOTRiOGI1ZWUuLjRjYzFlZTBjYzlmMTNkNDBjNDQ3NjRjNDBmZThl
N2E1NDhjNzMzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xODQ1LDYgKzE4NDUsMTEgQEAgLSAo
dm9pZClzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuT3JQaW5jaEdlc3R1cmUKICAgICBfY2FuU2VuZFRv
dWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgPSBZRVM7CiB9CiAKKy0gKHZvaWQpc2Nyb2xsVmlld0Rp
ZEVuZFBhbk9yUGluY2hHZXN0dXJlCit7CisgICAgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJv
bm91c2x5ID0gTk87Cit9CisKIC0gKHZvaWQpX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZwogewog
ICAgIGlmICghX25lZWRzRGVmZXJyZWRFbmRTY3JvbGxpbmdTZWxlY3Rpb25VcGRhdGUpIHsKQEAg
LTQwNTAsMTEgKzQwNTUsMjIgQEAgLSAodm9pZClmaWxlVXBsb2FkUGFuZWxEaWREaXNtaXNzOihX
S0ZpbGVVcGxvYWRQYW5lbCAqKWZpbGVVcGxvYWRQYW5lbAogCiAjcHJhZ21hIG1hcmsgLSBJbXBs
ZW1lbnRhdGlvbiBvZiBVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZS4K
IAorLy8gRklYTUU6IFJlbW92ZSBvbmNlIC1nZXN0dXJlUmVjb2duaXplcjpzaG91bGRJZ25vcmVX
ZWJUb3VjaFdpdGhFdmVudDogaXMgaW4gVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVy
LmguIFJlZmVyIHRvIDxyZGFyOi8vcHJvYmxlbS8zMzIxNzUyNT4gZm9yIG1vcmUgZGV0YWlscy4K
IC0gKEJPT0wpc2hvdWxkSWdub3JlV2ViVG91Y2gKIHsKICAgICByZXR1cm4gTk87CiB9CiAKKy0g
KEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXpl
ciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZElnbm9yZVdlYlRvdWNoV2l0aEV2ZW50OihVSUV2
ZW50ICopZXZlbnQKK3sKKyAgICBOU1NldDxVSVRvdWNoICo+ICp0b3VjaGVzID0gW2V2ZW50IHRv
dWNoZXNGb3JHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlUmVjb2duaXplcl07CisgICAgZm9yIChV
SVRvdWNoICp0b3VjaCBpbiB0b3VjaGVzKSB7CisgICAgICAgIGlmIChbdG91Y2gudmlldyBpc0tp
bmRPZkNsYXNzOltVSVNjcm9sbFZpZXcgY2xhc3NdXSAmJiBbKFVJU2Nyb2xsVmlldyAqKXRvdWNo
LnZpZXcgX2lzSW50ZXJydXB0aW5nRGVjZWxlcmF0aW9uXSkKKyAgICAgICAgICAgIHJldHVybiBZ
RVM7CisgICAgfQorICAgIHJldHVybiBzZWxmLl9zY3JvbGxlci5faXNJbnRlcnJ1cHRpbmdEZWNl
bGVyYXRpb247Cit9CisKIC0gKEJPT0wpaXNBbnlUb3VjaE92ZXJBY3RpdmVBcmVhOihOU1NldCAq
KXRvdWNoZXMKIHsKICAgICByZXR1cm4gWUVTOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBjMWJhNzY0ZjAxNTQyNzExZTI5YWQ1Zjlh
MDczNDI3NzY4MjhhYmJhLi5lYWQzYTZiZjk5OTI1ZTZjYTE3MDE0YmRkOTVjMmQ4N2Y0ZWU2MjU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQpAQCAtMjcyLDYgKzI3MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6b3ZlcmZsb3dTY3JvbGxW
aWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpCiAgICAgbV9wYWdlQ2xpZW50Lm92ZXJmbG93U2Nyb2xs
Vmlld1dpbGxTdGFydFBhbkdlc3R1cmUoKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6Om92ZXJm
bG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKQoreworICAgIG1fcGFnZUNsaWVudC5vdmVy
Zmxvd1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5
OjpvdmVyZmxvd1Njcm9sbFZpZXdEaWRTY3JvbGwoKQogewogICAgIG1fcGFnZUNsaWVudC5vdmVy
Zmxvd1Njcm9sbFZpZXdEaWRTY3JvbGwoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNTBjN2U2M2MxNzdiMDA5YjQ1MThm
MTU1NjU0ZDVhZTAwMDI0YzMwLi5lMjc0MDljM2I3OTY1N2Q2YWI2Yzk2YmIxOTI3ZGY2Yjg3ZmY2
NzFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTctMDctMTAgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSWdub3JlIHRvdWNoIGV2ZW50
cyB0aGF0IGludGVycnVwdCBwbGF0Zm9ybS1kcml2ZW4gbW9tZW50dW0gc2Nyb2xsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQzMDAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzMzMDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBBZGRzIDMgbmV3IExheW91dFRlc3RzIGNvdmVyaW5nIGNhc2Vz
IG9mIHRvdWNoIGV2ZW50IGhhbmRsaW5nIGR1cmluZyBzY3JvbGwgZGVjZWxlcmF0aW9uIGluIG1h
aW5mcmFtZSBhbmQKKyAgICAgICAgb3ZlcmZsb3cgc2Nyb2xsaW5nIGNvbnRhaW5lcnMuIFNlZSBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogZmFz
dC9ldmVudHMvaW9zL25vLXRvdWNoLWV2ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9s
bC1pbi1tYWluZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9pb3Mvbm8tdG91Y2gtZXZlbnRzLXdoZW4tc3RvcHBpbmctbW9tZW50dW0tc2Nyb2xsLWluLW1h
aW5mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvbm8tdG91Y2gt
ZXZlbnRzLXdoZW4tc3RvcHBpbmctbW9tZW50dW0tc2Nyb2xsLWluLW92ZXJmbG93LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL25vLXRvdWNoLWV2ZW50cy13
aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1vdmVyZmxvdy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9pb3MvdG91Y2gtZXZlbnRzLWR1cmluZy1zY3JvbGwtZGVjZWxl
cmF0aW9uLWluLW92ZXJmbG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvaW9zL3RvdWNoLWV2ZW50cy1kdXJpbmctc2Nyb2xsLWRlY2VsZXJhdGlvbi1pbi1vdmVy
Zmxvdy5odG1sOiBBZGRlZC4KKwogMjAxNy0wNy0wOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IFVzZXIgaW50
ZXJhY3Rpb24gc2hvdWxkIGFsd2F5cyBnbyB0byB0b3AgZG9jdW1lbnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9uby10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1t
b21lbnR1bS1zY3JvbGwtaW4tbWFpbmZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2lvcy9uby10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3Jv
bGwtaW4tbWFpbmZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjllM2U4MWZjODNkZDE5
MTAxYmYwNjc1OTYyNGMyZjg5NTgxOWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvaW9zL25vLXRvdWNoLWV2ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNj
cm9sbC1pbi1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1BBU1MgZG9j
dW1lbnQuYm9keS5zY3JvbGxUb3AgYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNoZXMnKS50ZXh0Q29udGVudCBpcyAiMSIKK1BBU1MgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNoZXMnKS50ZXh0Q29udGVudCBpcyAiMSIKK1BBU1Mg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNoZXMnKS50ZXh0Q29udGVudCBpcyAiMiIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVG8gbWFudWFs
bHkgdGVzdCwgc3dpcGUgZG93biB0byBzY3JvbGwgaW4gdGhlIGRvY3VtZW50LiBUaGUgdG91Y2gg
Y291bnQgc2hvdWxkIHVwZGF0ZSB0byAxLiBUYXAgYW55d2hlcmUgdG8gc3RvcCBzY3JvbGxpbmcg
d2hpbGUgZGVjZWxlcmF0aW5nLiBUaGUgdG91Y2ggY291bnQgc2hvdWxkIHJlbWFpbiBhdCAxLiBU
aGVuIHRhcCBhZ2FpbiBpbiB0aGUgZG9jdW1lbnQuIFRoZSB0b3VjaCBjb3VudCBzaG91bGQgYmUg
Mi4KKworVGhlIHRvdWNoIGNvdW50IGlzOiAyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pb3Mvbm8tdG91Y2gtZXZlbnRzLXdoZW4tc3RvcHBpbmctbW9tZW50dW0tc2Nyb2xs
LWluLW1haW5mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vLXRvdWNo
LWV2ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1tYWluZnJhbWUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMmQyOTdmNTczZGM5ODg1NTZiOTI5NTNmNmVmNzQ3MjAyMTJjZWFlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vLXRvdWNoLWV2ZW50
cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1tYWluZnJhbWUuaHRtbApAQCAtMCww
ICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOwor
ICAgICAgICAgICAgaGVpZ2h0OiA1MDAwdmg7CisgICAgICAgICAgICBmb250LWZhbWlseTogLWFw
cGxlLXN5c3RlbTsKKyAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKKyAgICAgICAgICAgIG1hcmdp
bjogMDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHBh
ZGRpbmc6IDFlbTsKKyAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICAg
IH0KKworICAgICAgICAuZGVzY3JpcHRpb24geworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVk
OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0i
ZGVzY3JpcHRpb24iPgorICAgIDxwPlRvIG1hbnVhbGx5IHRlc3QsIHN3aXBlIGRvd24gdG8gc2Ny
b2xsIGluIHRoZSBkb2N1bWVudC4gVGhlIHRvdWNoIGNvdW50IHNob3VsZCB1cGRhdGUgdG8gMS4g
VGFwIGFueXdoZXJlIHRvIHN0b3Agc2Nyb2xsaW5nIHdoaWxlIGRlY2VsZXJhdGluZy4gVGhlIHRv
dWNoIGNvdW50IHNob3VsZCByZW1haW4gYXQgMS4gVGhlbiB0YXAgYWdhaW4gaW4gdGhlIGRvY3Vt
ZW50LiBUaGUgdG91Y2ggY291bnQgc2hvdWxkIGJlIDIuPC9wPgorICAgIDxwPlRoZSB0b3VjaCBj
b3VudCBpczogPHNwYW4gaWQ9InRvdWNoZXMiPjA8L3NwYW4+PC9wPgorPC9kaXY+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgordG91Y2hzdGFydEV2ZW50Q291bnQgPSAwOworCitkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA9
IDA7Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCAoKSA9PiB7
CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAoKyt0b3VjaHN0YXJ0
RXZlbnRDb3VudCA9PSAyKSA/ICJncmVlbiIgOiAicmVkIjsKKyAgICB0b3VjaGVzLnRleHRDb250
ZW50ID0gYCR7dG91Y2hzdGFydEV2ZW50Q291bnR9YDsKK30pOworCitmdW5jdGlvbiBnZXRTd2lw
ZVVJU2NyaXB0KGZyb21YLCBmcm9tWSwgdG9YLCB0b1ksIGR1cmF0aW9uKQoreworICAgIHJldHVy
biBgKCgpID0+IHsKKyAgICAgICAgdWlDb250cm9sbGVyLmRyYWdGcm9tUG9pbnRUb1BvaW50KCR7
ZnJvbVh9LCAke2Zyb21ZfSwgJHt0b1h9LCAke3RvWX0sICR7ZHVyYXRpb259LCAoKSA9PiB7Cisg
ICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiIik7CisgICAgICAgIH0p
OworICAgIH0pKCk7YDsKK30KKworZnVuY3Rpb24gZXhwZWN0VG91Y2hDb3VudFRvQmUoY291bnQp
Cit7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dG91Y2hlcycpLnRleHRDb250ZW50IiwgYCR7Y291bnR9YCk7Cit9CisKK2lmICh3aW5kb3cudGVz
dFJ1bm5lciAmJiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KSB7CisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChnZXRTd2lwZVVJU2NyaXB0KDEwMCwgMC43NSAqIGlubmVySGVpZ2h0LCAxMDAsIDAu
MjUgKiBpbm5lckhlaWdodCwgMC4xKSwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZm
ZXJlbnQoImRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIiwgIjAiLCAoKSA9PiB7CisgICAgICAgICAg
ICBleHBlY3RUb3VjaENvdW50VG9CZSgxKTsKKyAgICAgICAgICAgIFVJSGVscGVyLnRhcEF0KDEw
MCwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgKyAwLjc1ICogaW5uZXJIZWlnaHQpLnRoZW4oKCkg
PT4geworICAgICAgICAgICAgICAgIGV4cGVjdFRvdWNoQ291bnRUb0JlKDEpOworICAgICAgICAg
ICAgICAgIFVJSGVscGVyLnRhcEF0KDEwMCwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgKyAwLjI1
ICogaW5uZXJIZWlnaHQpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgICAgICBleHBlY3RU
b3VjaENvdW50VG9CZSgyKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9uby10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwt
aW4tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25v
LXRvdWNoLWV2ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1vdmVyZmxvdy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg1NTk3NTMyZTIyZWQ0MjU2NmJmYjYzOWZjMTFlOTU0
NTVlZmIxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9u
by10b3VjaC1ldmVudHMtd2hlbi1zdG9wcGluZy1tb21lbnR1bS1zY3JvbGwtaW4tb3ZlcmZsb3ct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnRhaW5lcicpLnNjcm9sbFRvcCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG91Y2hlcycpLnRleHRDb250ZW50IGlzICIxIgorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG91Y2hlcycpLnRleHRDb250ZW50IGlzICIxIgor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG91Y2hlcycpLnRleHRDb250ZW50IGlzICIy
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitUbyBt
YW51YWxseSB0ZXN0LCBzd2lwZSBkb3duIHRvIHNjcm9sbCBpbiB0aGUgY29udGFpbmVyLiBUaGUg
dG91Y2ggY291bnQgc2hvdWxkIHVwZGF0ZSB0byAxLiBUYXAgdG8gc3RvcCBzY3JvbGxpbmcgd2hp
bGUgZGVjZWxlcmF0aW5nLiBUaGUgdG91Y2ggY291bnQgc2hvdWxkIHJlbWFpbiBhdCAxLiBUaGVu
IHRhcCBhZ2FpbiBpbiB0aGUgY29udGFpbmVyLiBUaGUgdG91Y2ggY291bnQgc2hvdWxkIGJlIDIu
CisKK1RoZSB0b3VjaCBjb3VudCBpczogMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW9zL25vLXRvdWNoLWV2ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1p
bi1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vLXRvdWNoLWV2
ZW50cy13aGVuLXN0b3BwaW5nLW1vbWVudHVtLXNjcm9sbC1pbi1vdmVyZmxvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIwM2ZlNWMwMjNmMTA0ZGUyODBjNDUzMzdiOWRjNGNkOWY0OTEyYjQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvbm8tdG91Y2gtZXZlbnRzLXdo
ZW4tc3RvcHBpbmctbW9tZW50dW0tc2Nyb2xsLWluLW92ZXJmbG93Lmh0bWwKQEAgLTAsMCArMSw4
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
IDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAg
ICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lz
dGVtOworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgYm94LXNpemluZzogYm9y
ZGVyLWJveDsKKyAgICAgICAgfQorCisgICAgICAgICNjb250YWluZXIgeworICAgICAgICAgICAg
d2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgb3Zl
cmZsb3cteTogc2Nyb2xsOworICAgICAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6
IHRvdWNoOworICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICB0b3A6IDA7CisgICAgICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIH0KKworICAgICAgICAjY29udGFpbmVyID4gZGl2IHsKKyAg
ICAgICAgICAgIGhlaWdodDogMTAwMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAg
ICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIH0KKworICAgICAgICAjZGVzY3JpcHRpb24g
eworICAgICAgICAgICAgdG9wOiAzMDBweDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNv
bnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iYXJlYSI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj4KKyAgICA8cD5UbyBtYW51YWxseSB0ZXN0LCBzd2lwZSBkb3duIHRvIHNj
cm9sbCBpbiB0aGUgY29udGFpbmVyLiBUaGUgdG91Y2ggY291bnQgc2hvdWxkIHVwZGF0ZSB0byAx
LiBUYXAgdG8gc3RvcCBzY3JvbGxpbmcgd2hpbGUgZGVjZWxlcmF0aW5nLiBUaGUgdG91Y2ggY291
bnQgc2hvdWxkIHJlbWFpbiBhdCAxLiBUaGVuIHRhcCBhZ2FpbiBpbiB0aGUgY29udGFpbmVyLiBU
aGUgdG91Y2ggY291bnQgc2hvdWxkIGJlIDIuPC9wPgorICAgIDxwPlRoZSB0b3VjaCBjb3VudCBp
czogPHNwYW4gaWQ9InRvdWNoZXMiPjA8L3NwYW4+PC9wPgorPC9kaXY+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordG91
Y2hzdGFydEV2ZW50Q291bnQgPSAwOworY29udGFpbmVyLnNjcm9sbFRvcCA9IDA7Citjb250YWlu
ZXIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsICgpID0+IHsKKyAgICBjb250YWluZXIu
c3R5bGUuYmFja2dyb3VuZENvbG9yID0gKCsrdG91Y2hzdGFydEV2ZW50Q291bnQgJSAyKSA/ICJn
cmVlbiIgOiAicmVkIjsKKyAgICB0b3VjaGVzLnRleHRDb250ZW50ID0gYCR7dG91Y2hzdGFydEV2
ZW50Q291bnR9YDsKK30pOworCitmdW5jdGlvbiBnZXRTd2lwZVVJU2NyaXB0KGZyb21YLCBmcm9t
WSwgdG9YLCB0b1ksIGR1cmF0aW9uKQoreworICAgIHJldHVybiBgKCgpID0+IHsKKyAgICAgICAg
dWlDb250cm9sbGVyLmRyYWdGcm9tUG9pbnRUb1BvaW50KCR7ZnJvbVh9LCAke2Zyb21ZfSwgJHt0
b1h9LCAke3RvWX0sICR7ZHVyYXRpb259LCAoKSA9PiB7CisgICAgICAgICAgICB1aUNvbnRyb2xs
ZXIudWlTY3JpcHRDb21wbGV0ZSgiIik7CisgICAgICAgIH0pOworICAgIH0pKCk7YDsKK30KKwor
ZnVuY3Rpb24gZXhwZWN0VG91Y2hDb3VudFRvQmUoY291bnQpCit7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG91Y2hlcycpLnRleHRDb250ZW50
IiwgYCR7Y291bnR9YCk7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRTd2lwZVVJU2Ny
aXB0KDEwMCwgMjUwLCAxMDAsIDUwLCAwLjEpLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLnNjcm9sbFRv
cCIsICIwIiwgKCkgPT4geworICAgICAgICAgICAgZXhwZWN0VG91Y2hDb3VudFRvQmUoMSk7Cisg
ICAgICAgICAgICBVSUhlbHBlci50YXBBdCgxMDAsIDI1MCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgICAgICAgZXhwZWN0VG91Y2hDb3VudFRvQmUoMSk7CisgICAgICAgICAgICAgICAgVUlIZWxw
ZXIudGFwQXQoMTAwLCA1MCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVj
dFRvdWNoQ291bnRUb0JlKDIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
KTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW9zL3RvdWNoLWV2ZW50cy1kdXJpbmctc2Nyb2xsLWRlY2VsZXJhdGlvbi1pbi1v
dmVyZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvdG91Y2gt
ZXZlbnRzLWR1cmluZy1zY3JvbGwtZGVjZWxlcmF0aW9uLWluLW92ZXJmbG93LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lN2I0ZmUzNDdiMDQxZDZhZTQxNzQwOWI1N2UyNDY1NWQxNmYxYWJjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3RvdWNoLWV2ZW50
cy1kdXJpbmctc2Nyb2xsLWRlY2VsZXJhdGlvbi1pbi1vdmVyZmxvdy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyku
c2Nyb2xsVG9wIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb250YWluZXJUb3VjaGVzJykudGV4dENvbnRlbnQgaXMgIjEiCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudFRvdWNoZXMnKS50ZXh0Q29udGVudCBpcyAiMSIK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lclRvdWNoZXMnKS50ZXh0Q29u
dGVudCBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3VtZW50VG91Y2hl
cycpLnRleHRDb250ZW50IGlzICIyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitUbyBtYW51YWxseSB0ZXN0LCBzd2lwZSBkb3duIHRvIHNjcm9sbCBp
biB0aGUgY29udGFpbmVyLiBCb3RoIHRvdWNoIGNvdW50cyBzaG91bGQgdXBkYXRlIHRvIDEuIFRo
ZW4gdGFwIGVsc2V3aGVyZSBpbiB0aGUgZG9jdW1lbnQuIFRoZSBkb2N1bWVudCB0b3VjaCBjb3Vu
dCBzaG91bGQgaW5jcmVtZW50IHRvIDIsIGJ1dCB0aGUgY29udGFpbmVyIHRvdWNoIGNvdW50IHNo
b3VsZCByZW1haW4gYXQgMS4KKworVGhlIHRvdWNoIGNvdW50IGluIHRoZSBzY3JvbGwgY29udGFp
bmVyIGlzOiAxCisKK1RoZSB0b3VjaCBjb3VudCBpbiB0aGUgZG9jdW1lbnQgaXM6IDIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy90b3VjaC1ldmVudHMtZHVyaW5nLXNj
cm9sbC1kZWNlbGVyYXRpb24taW4tb3ZlcmZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2lvcy90b3VjaC1ldmVudHMtZHVyaW5nLXNjcm9sbC1kZWNlbGVyYXRpb24taW4tb3ZlcmZs
b3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xMzgyNDE0OTZiMjYwODRmOTk5OTE1MzQ1ZDhmNmMzMmRmZWI5
ZWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3RvdWNo
LWV2ZW50cy1kdXJpbmctc2Nyb2xsLWRlY2VsZXJhdGlvbi1pbi1vdmVyZmxvdy5odG1sCkBAIC0w
LDAgKzEsOTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7
CisgICAgICAgICAgICBoZWlnaHQ6IDUwMHZoOworICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1h
cHBsZS1zeXN0ZW07CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICBib3gtc2l6
aW5nOiBib3JkZXItYm94OworICAgICAgICB9CisKKyAgICAgICAgI2NvbnRhaW5lciB7CisgICAg
ICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAg
ICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNj
cm9sbGluZzogdG91Y2g7CisgICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgfQorCisgICAgICAgICNjb250YWluZXIgPiBk
aXYgeworICAgICAgICAgICAgaGVpZ2h0OiAxMDAwMHB4OworICAgICAgICAgICAgd2lkdGg6IDEw
MCU7CisgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgfQorCisgICAgICAgICNkZXNj
cmlwdGlvbiB7CisgICAgICAgICAgICB0b3A6IDMwMHB4OworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJhcmVhIj48L2Rpdj4KKzwvZGl2Pgor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPgorICAgIDxwPlRvIG1hbnVhbGx5IHRlc3QsIHN3aXBlIGRv
d24gdG8gc2Nyb2xsIGluIHRoZSBjb250YWluZXIuIEJvdGggdG91Y2ggY291bnRzIHNob3VsZCB1
cGRhdGUgdG8gMS4gVGhlbiB0YXAgZWxzZXdoZXJlIGluIHRoZSBkb2N1bWVudC4gVGhlIGRvY3Vt
ZW50IHRvdWNoIGNvdW50IHNob3VsZCBpbmNyZW1lbnQgdG8gMiwgYnV0IHRoZSBjb250YWluZXIg
dG91Y2ggY291bnQgc2hvdWxkIHJlbWFpbiBhdCAxLjwvcD4KKyAgICA8cD5UaGUgdG91Y2ggY291
bnQgaW4gdGhlIHNjcm9sbCBjb250YWluZXIgaXM6IDxzcGFuIGlkPSJjb250YWluZXJUb3VjaGVz
Ij4wPC9zcGFuPjwvcD4KKyAgICA8cD5UaGUgdG91Y2ggY291bnQgaW4gdGhlIGRvY3VtZW50IGlz
OiA8c3BhbiBpZD0iZG9jdW1lbnRUb3VjaGVzIj4wPC9zcGFuPjwvcD4KKzwvZGl2PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2NvbnRhaW5lclRvdWNoc3RhcnRFdmVudENvdW50ID0gMDsKK2RvY3VtZW50VG91Y2hzdGFy
dEV2ZW50Q291bnQgPSAwOworY29udGFpbmVyLnNjcm9sbFRvcCA9IDA7Citkb2N1bWVudC5ib2R5
LnNjcm9sbFRvcCA9IDA7Citjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIs
ICgpID0+IHsKKyAgICBjb250YWluZXIuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gKCsrY29udGFp
bmVyVG91Y2hzdGFydEV2ZW50Q291bnQgPT0gMSkgPyAiZ3JlZW4iIDogInJlZCI7CisgICAgY29u
dGFpbmVyVG91Y2hlcy50ZXh0Q29udGVudCA9IGAke2NvbnRhaW5lclRvdWNoc3RhcnRFdmVudENv
dW50fWA7Cit9KTsKK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIs
ICgpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICgrK2Rv
Y3VtZW50VG91Y2hzdGFydEV2ZW50Q291bnQgPT0gMikgPyAiZ3JlZW4iIDogInJlZCI7CisgICAg
ZG9jdW1lbnRUb3VjaGVzLnRleHRDb250ZW50ID0gYCR7ZG9jdW1lbnRUb3VjaHN0YXJ0RXZlbnRD
b3VudH1gOworfSk7CisKK2Z1bmN0aW9uIGdldFN3aXBlVUlTY3JpcHQoZnJvbVgsIGZyb21ZLCB0
b1gsIHRvWSwgZHVyYXRpb24pCit7CisgICAgcmV0dXJuIGAoKCkgPT4geworICAgICAgICB1aUNv
bnRyb2xsZXIuZHJhZ0Zyb21Qb2ludFRvUG9pbnQoJHtmcm9tWH0sICR7ZnJvbVl9LCAke3RvWH0s
ICR7dG9ZfSwgJHtkdXJhdGlvbn0sICgpID0+IHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51
aVNjcmlwdENvbXBsZXRlKCIiKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgOworfQorCitmdW5j
dGlvbiBleHBlY3RUb3VjaENvdW50c1RvQmUoY29udGFpbmVyQ291bnQsIGRvY3VtZW50Q291bnQp
Cit7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29udGFpbmVyVG91Y2hlcycpLnRleHRDb250ZW50IiwgYCR7Y29udGFpbmVyQ291bnR9YCk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1l
bnRUb3VjaGVzJykudGV4dENvbnRlbnQiLCBgJHtkb2N1bWVudENvdW50fWApOworfQorCitpZiAo
d2luZG93LnRlc3RSdW5uZXIgJiYgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RS
dW5uZXIucnVuVUlTY3JpcHQoZ2V0U3dpcGVVSVNjcmlwdCgxMDAsIDI1MCwgMTAwLCA1MCwgMC4x
KSwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoImRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb250YWluZXInKS5zY3JvbGxUb3AiLCAiMCIsICgpID0+IHsKKyAgICAgICAg
ICAgIGV4cGVjdFRvdWNoQ291bnRzVG9CZSgxLCAxKTsKKyAgICAgICAgICAgIFVJSGVscGVyLnRh
cEF0KDEwMCwgMzUwKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBleHBlY3RUb3VjaENv
dW50c1RvQmUoMSwgMik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315073</attachid>
            <date>2017-07-10 21:14:39 -0700</date>
            <delta_ts>2017-07-10 21:40:42 -0700</delta_ts>
            <desc>Address post-review feedback</desc>
            <filename>bug-174300-20170710211438.patch</filename>
            <type>text/plain</type>
            <size>17580</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjgwYWE4ZjNiMGU1YzYz
YWU5NzEzOWY5NjFiMTlmOTQwZDExY2U5Mi4uMDE2MTFmNTVjMmJmMjI1YjkzNmQxNTNlOTczY2I5
Nzg4M2NhNGI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDE3LTA3LTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIEFkZHJlc3MgcG9z
dC1yZXZpZXcgZmVlZGJhY2sgYWZ0ZXIgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9yMjE5MzEwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQzMDAKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgcGFuLWdlc3R1cmUtcmVsYXRlZCBwbHVt
YmluZyBpbnRyb2R1Y2VkIGluIHIyMTkzMTAgdGhhdCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5Lgor
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlk
RW5kUGFuR2VzdHVyZSk6IERlbGV0ZWQuCisKKzIwMTctMDctMTAgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMl0gSWdub3JlIHRvdWNoIGV2ZW50
cyB0aGF0IGludGVycnVwdCBwbGF0Zm9ybS1kcml2ZW4gbW9tZW50dW0gc2Nyb2xsaW5nCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQzMDAKICAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzMzMDMwNjM5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDRiNWE1NTM4Mjc4NjU4
ZjVhNDAyNWEwOTQwYmQ4OTE0NzgwZTE1YmYuLjg3ZDBiNWJhYTUxMWQyYzlmZDNmZGM2MzhhYWM0
Yzg1YmVjNjE0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1NiBAQAogMjAxNy0wNy0xMCAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGRyZXNzIHBv
c3QtcmV2aWV3IGZlZWRiYWNrIGFmdGVyIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvcjIxOTMxMAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MzAwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzAzMDYzOT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVzIHBsdW1iaW5nIGludHJvZHVjZWQgaW4g
cjIxOTMxMCBmb3IgdGVsbGluZyBXS0NvbnRlbnRWaWV3IHdoZW4gdGhlIHVzZXIgaGFzIGZpbmlz
aGVkIHBhbm5pbmcgb3Igem9vbWluZy4KKyAgICAgICAgVGhpcyB3YXMgcHJldmlvdXNseSB1c2Vk
IHRvIHJlc2V0IGFsbG93aW5nIGFzeW5jaHJvbm91cyB0b3VjaCBldmVudCBhZnRlciBwcmV2ZW50
aW5nIHRoZSB3ZWIgdG91Y2ggZXZlbnRzCisgICAgICAgIGdlc3R1cmUgcmVjb2duaXplciBmcm9t
IGZpcmluZy4KKworICAgICAgICBIb3dldmVyLCBhIGZhciBzaW1wbGVyIChhbmQgbXVjaCBsZXNz
IGZyYWdpbGUpIHNvbHV0aW9uIGlzIHRvIGp1c3Qgc2V0IF9jYW5TZW5kVG91Y2hFdmVudHNBc3lu
Y2hyb25vdXNseSB0byBOTworICAgICAgICBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBnZXN0dXJl
LCBiZWZvcmUgdGhlIGZpcnN0IGB0b3VjaHN0YXJ0YCBldmVudCBpcyBkaXNwYXRjaGVkLiBUaGlz
IHdheSwgd2UgYWx3YXlzIGVuc3VyZQorICAgICAgICB0aGF0IF9jYW5TZW5kVG91Y2hFdmVudHNB
c3luY2hyb25vdXNseSBpcyBOTyB3aGVuIGJlZ2lubmluZyB0byBwcm9jZXNzIGEgdG91Y2ggZXZl
bnQuIFRoaXMgYXBwcm9hY2ggaXMgY29ycmVjdAorICAgICAgICBiZWNhdXNlIHRoZSBvbmx5IHBs
YWNlIHdoZXJlIHdlIHF1ZXJ5IF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSBpcyBp
biAtX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDosIHdoZXJlCisgICAgICAgICh3aGVuIHdlIGFy
ZSBiZWdpbm5pbmcgYSBuZXcgZ2VzdHVyZSkgd2UgYXJlIGd1YXJhbnRlZWQgdGhhdCAtZ2VzdHVy
ZVJlY29nbml6ZXI6c2hvdWxkSWdub3JlV2ViVG91Y2hXaXRoRXZlbnQ6CisgICAgICAgIGhhcyBh
bHJlYWR5IGJlZW4gY2FsbGVkIGFuZCBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkg
aXMgTk8uCisKKyAgICAgICAgQ29uZmlybWVkIHRoYXQgdGhlIExheW91dFRlc3RzIGFkZGVkIGlu
IHIyMTkzMTAgc3RpbGwgcGFzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5n
OndpbGxEZWNlbGVyYXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVu
ZFpvb21pbmc6d2l0aFZpZXc6YXRTY2FsZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNs
aWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNj
cm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MubW06CisgICAgICAgICgtW1dLT3ZlcmZsb3dTY3JvbGxWaWV3RGVs
ZWdhdGUgc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOndpbGxEZWNlbGVyYXRlOl0pOgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpvdmVyZmxv
d1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpvdmVyZmxvd1Njcm9sbFZpZXdEaWRFbmRQ
YW5HZXN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOl0p
OgorCisgICAgICAgIFNldHRpbmcgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5IHRv
IE5PIHdoZW4gYWxsIHRvdWNoIHBvaW50cyBoYXZlIGJlZW4gcmVsZWFzZWQgaXMgbm8gbG9uZ2Vy
IG5lY2Vzc2FyeSwKKyAgICAgICAgc2luY2Ugd2Ugbm93IGFsd2F5cyBlbnN1cmUgdGhhdCBpdCBp
cyBOTyB3aGVuIGJlZ2lubmluZyBhIHRvdWNoIGdlc3R1cmUuCisKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRJZ25vcmVXZWJUb3VjaFdpdGhFdmVudDpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzY3JvbGxWaWV3RGlkRW5kUGFuT3JQaW5jaEdl
c3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpvdmVyZmxvd1Njcm9sbFZpZXdE
aWRFbmRQYW5HZXN0dXJlKTogRGVsZXRlZC4KKworMjAxNy0wNy0xMCAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBJZ25vcmUgdG91Y2ggZXZl
bnRzIHRoYXQgaW50ZXJydXB0IHBsYXRmb3JtLWRyaXZlbiBtb21lbnR1bSBzY3JvbGxpbmcKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDMwMAogICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzMwMzA2Mzk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMjhmY2QxN2I1ZDdhMzk2YjNjNTc3NWFhMGU3
MDlkNGQ3ZjRhMzlmYy4uOWI4OTUwNDVmM2ZhZGIwMGVmZGI5M2FmZDc1YzdjMTY2ZjJjZTI4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAt
MTAxLDcgKzEwMSw2IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBG
bG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3QoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2VzdHVyZSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZURpZEVuZFBhbkdlc3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKSB7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAxYTlmYjYzNzhk
ZDI5NWM0ZDA1MmNmODBmMzg1YWNiYjYyNjk5MTQxLi4xOGE0M2E4YTAwMzVmZTI3MmYyMmQ4NTQ3
MGU5M2UzZmExMDUwN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtMjE0Myw5ICsyMTQzLDYgQEAgLSAodm9pZClzY3JvbGxWaWV3
RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2lsbERlY2VsZXJhdGU6
KEJPT0wKICAgICAvLyBJZiB3ZSdyZSBkZWNlbGVyYXRpbmcsIHNjcm9sbCBvZmZzZXQgd2lsbCBi
ZSB1cGRhdGVkIHdoZW4gc2Nyb2xsVmlld0RpZEZpbmlzaERlY2VsZXJhdGluZzogaXMgY2FsbGVk
LgogICAgIGlmICghZGVjZWxlcmF0ZSkKICAgICAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGlu
Z107Ci0KLSAgICBpZiAoc2Nyb2xsVmlldy5wYW5HZXN0dXJlUmVjb2duaXplci5zdGF0ZSA9PSBV
SUdlc3R1cmVSZWNvZ25pemVyU3RhdGVFbmRlZCkKLSAgICAgICAgW19jb250ZW50VmlldyBzY3Jv
bGxWaWV3RGlkRW5kUGFuT3JQaW5jaEdlc3R1cmVdOwogfQogCiAtICh2b2lkKXNjcm9sbFZpZXdE
aWRFbmREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKQEAgLTIxODAsOSAr
MjE3Nyw2IEBAIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFpvb21pbmc6KFVJU2Nyb2xsVmlldyAq
KXNjcm9sbFZpZXcgd2l0aFZpZXc6KFVJVmlldyAqKXZpCiAgICAgQVNTRVJUKHNjcm9sbFZpZXcg
PT0gX3Njcm9sbFZpZXcpOwogICAgIFtzZWxmIF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUFmdGVyU2Nyb2xsSW5WaWV3OnNjcm9sbFZpZXddOwogICAgIFtfY29udGVudFZpZXcgZGlk
Wm9vbVRvU2NhbGU6c2NhbGVdOwotCi0gICAgaWYgKHNjcm9sbFZpZXcucGluY2hHZXN0dXJlUmVj
b2duaXplci5zdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVFbmRlZCkKLSAgICAgICAg
W19jb250ZW50VmlldyBzY3JvbGxWaWV3RGlkRW5kUGFuT3JQaW5jaEdlc3R1cmVdOwogfQogCiAt
ICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAq
KXNjcm9sbFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGRkZTZm
YmJhNmFiYzI5YThiMGIyNDk0NGQ5YTcxMjBlYWVjZDUyN2EuLjg5M2UyYzAxNDc5Yzc1MzY4OWYy
NWFhNjc1NDIwOWUzYjQwNjQwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aApAQCAtMzA4LDcgKzMwOCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVt
Wm9vbVNjYWxlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGRv
Y3VtZW50UmVjdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dTY3JvbGxW
aWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dT
Y3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZs
b3dTY3JvbGxWaWV3RGlkU2Nyb2xsKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Nj
cm9sbFdpbGxTdGFydFNjcm9sbCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dTY3Jv
bGxEaWRFbmRTY3JvbGwoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oCmluZGV4IGI1NzQwZDE2YTMzMTZmMDcxMjE5Y2Q2NjUxY2NkODljN2UxOThmMzkuLmU4N2Ji
MmMyZTg0Yzg0OWIwNWZlMTNiZjA5OTZlYzBlMzVlN2RkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC04Niw3ICs4Niw2IEBAIHB1YmxpYzoKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0
KCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUo
KTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSgpOwogICAgIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwoKTsKICAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCk7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ1RyZWUuY3BwCmluZGV4IDljZjc0MDIwNWMzMzc3MzBkMjE4MzAwMjRhNWE4YWRmODFh
MTE2NGEuLjI1ZWJiNGJlMzExN2MwYzBhYzI0MjNmODdjZWY3MjIxOWRlMzMwMTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJl
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcApAQCAtODgsMTEgKzg4LDYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVl
OjpzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKQogICAgIG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKTsK
IH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFBh
bkdlc3R1cmUoKQotewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdU
cmVlTm9kZURpZEVuZFBhbkdlc3R1cmUoKTsKLX0KLSAgICAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5n
VHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwoKQogewogICAgIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFNjcm9sbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ1RyZWUuaAppbmRleCA5Mjg2NDJlYjIxYTA4ZjE1ZWEyMDNhNGY4OWNmZjc5NDRkNzMz
ZDgzLi43MzE4Y2NjODE0Y2E1NzE2ZGM3MGMyNGI2YzQ0MTc4ZDI1NmNkYTcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaApAQCAtNjEsNyArNjEsNiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3QoKSBvdmVycmlkZTsKICAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2VzdHVyZSgpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRQYW5HZXN0dXJlKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFNjcm9sbCgpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKSBvdmVycmlkZTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oCmlu
ZGV4IDk3Njg4ZTcwYzYxMTVkOTkwYmU2NzI4M2E2Nzc4M2FkOGFiZGQyNjguLjAyYzhkZTkxOGM3
NGYzYjczZWVjMDM3YjVhYjk2Y2Q5YmY3MDU1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgcHVi
bGljOgogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxXaWxsU3RhcnQoKTsKICAgICB2b2lkIG92ZXJm
bG93U2Nyb2xsRGlkRW5kKCk7CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdXaWxsU3RhcnRQ
YW5HZXN0dXJlKCk7Ci0gICAgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJl
KCk7CiAgICAgdm9pZCBzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmLCBib29sIGluVXNlckludGVyYXRpb24pOwogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludElu
ZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlP
Uy5tbQppbmRleCAxNWU2MzIxYTg3YzdjMmE2NWUyZjgwYmY5ZjQ4OGFhNzM3NzlmZTNhLi40MzNk
MzhlNDI1MDFlODI1MTYwODZhYzY2NjA0ZmE4ZTI5Zjc4NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
aW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0KQEAgLTExNyw5ICsx
MTcsNiBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3ICop
c2Nyb2xsVmlldyB3aWxsRGVjZWxlcmF0ZTooQk9PTAogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5v
ZGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0LCBfaW5Vc2Vy
SW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGUtPm92ZXJmbG93U2Nyb2xs
RGlkRW5kKCk7CiAgICAgfQotCi0gICAgaWYgKHNjcm9sbFZpZXcucGFuR2VzdHVyZVJlY29nbml6
ZXIuc3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRW5kZWQpCi0gICAgICAgIF9zY3Jv
bGxpbmdUcmVlTm9kZS0+b3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgpOwogfQog
CiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNj
cm9sbFZpZXcKQEAgLTI5NywxMSArMjk0LDYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlSU9TOjpvdmVyZmxvd1Njcm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXIKICAg
ICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCk7
CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6b3ZlcmZs
b3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgpCi17Ci0gICAgc2Nyb2xsaW5nVHJlZSgpLnNj
cm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSgpOwotfQotCiB2b2lkIFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnNjcm9sbFZpZXdEaWRTY3JvbGwoY29uc3QgRmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgaW5Vc2VySW50ZXJhdGlvbikKIHsKICAgICBp
ZiAobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKaW5kZXggMzU2NTRhNzM3MmYyYjBmYmJjYjFkZGZkYzEzM2M3ODA4MjFkZGU0Yy4u
OGM5OGY5OWE5ZjM4OGI5MjgyN2E3NGI4OGZjMzRhZWY4NDYxYjhlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDk1LDcgKzQ5NSw2IEBAIHB1YmxpYzoKICAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgY29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3Vu
ZHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VycmVudEN1c3RvbUZpeGVkUG9zaXRpb25S
ZWN0LCBkb3VibGUgZGlzcGxheWVkQ29udGVudFNjYWxlLCBXZWJDb3JlOjpGcmFtZVZpZXc6Okxh
eW91dFZpZXdwb3J0Q29uc3RyYWludCA9IFdlYkNvcmU6OkZyYW1lVmlldzo6TGF5b3V0Vmlld3Bv
cnRDb25zdHJhaW50OjpVbmNvbnN0cmFpbmVkLCBib29sIHZpc3VhbFZpZXdwb3J0RW5hYmxlZCA9
IGZhbHNlKSBjb25zdDsKIAogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFu
R2VzdHVyZSgpOwotICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2VzdHVyZSgp
OwogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlkU2Nyb2xsKCk7CiAgICAgdm9pZCBvdmVy
Zmxvd1Njcm9sbFdpbGxTdGFydFNjcm9sbCgpOwogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxEaWRF
bmRTY3JvbGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaAppbmRleCAwNTU0ZmVjZGRlMmRjMjIxNjJjMjExNDYwYjMxOTc3NzY0MGFmZjY1
Li5jZDYyN2MyYzdlNWRmOTY0NjUyZjAyZGExNmVhN2JjY2U4NDYwMjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xNTEsNyAr
MTUxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2FibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld1dpbGxTdGFydFBhbkdlc3R1
cmUoKSBvdmVycmlkZTsKLSAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1
cmUoKSBvdmVycmlkZTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZFNjcm9sbCgpIG92
ZXJyaWRlOwogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKSBvdmVycmlk
ZTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRl
eCBjZDBhODczYmRlNWQ1NzZiNjZmZGUwZjU2MzZmN2I0YzAwMGYzZjRiLi43OGU1MWEzOTUyNjQw
NjY0MmQwOTJiNDU0MTRlN2JiYmRmMjZjNGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTY3MSwxMSArNjcxLDYgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6b3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgp
CiAgICAgW21fY29udGVudFZpZXcgc2Nyb2xsVmlld1dpbGxTdGFydFBhbk9yUGluY2hHZXN0dXJl
XTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6b3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFu
R2VzdHVyZSgpCi17Ci0gICAgW21fY29udGVudFZpZXcgc2Nyb2xsVmlld0RpZEVuZFBhbk9yUGlu
Y2hHZXN0dXJlXTsKLX0KLQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6b3ZlcmZsb3dTY3JvbGxWaWV3
RGlkU2Nyb2xsKCkKIHsKICAgICBbbV9jb250ZW50VmlldyBfZGlkU2Nyb2xsXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQppbmRleCA0OTllNmQ5N2FiNDVmOTI0Nzg3MTE5NzVk
ODYwOTg1Njg0MDIyZjUyLi4yOGQzOTU5MzQ1NGUxODVmYjY2ZmU1ZGY3ZGFiOGIzYTI4NjIwNGVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCkBAIC0xMDQsMTEgKzEwNCw2
IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5v
ZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkKICAgICBtX3dlYlBhZ2VQcm94eS5vdmVyZmxvd1Njcm9s
bFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCk7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRQYW5HZXN0dXJlKCkKLXsKLSAg
ICBtX3dlYlBhZ2VQcm94eS5vdmVyZmxvd1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKCk7Ci19
Ci0KIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5v
ZGVXaWxsU3RhcnRTY3JvbGwoKQogewogICAgIG1fd2ViUGFnZVByb3h5Lm92ZXJmbG93U2Nyb2xs
V2lsbFN0YXJ0U2Nyb2xsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBhY2U2MmZmMWQ3YzM3ODQxNTA2
NzNlYTg5YWY2YTU3MmViY2NlM2ViLi5iMjI4MDM2Njc2ZmIzMDdkNWU5MGQ0OGM0NzljNWU5ZGU3
YWE0NDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTI3OSw3ICsyNzksNiBAQCBzdHJ1Y3QgV0tBdXRv
Q29ycmVjdGlvbkRhdGEgewogLSAodm9pZCljbGVhbnVwSW50ZXJhY3Rpb247CiAKIC0gKHZvaWQp
c2Nyb2xsVmlld1dpbGxTdGFydFBhbk9yUGluY2hHZXN0dXJlOwotLSAodm9pZClzY3JvbGxWaWV3
RGlkRW5kUGFuT3JQaW5jaEdlc3R1cmU7CiAKIC0gKEJPT0wpY2FuQmVjb21lRmlyc3RSZXNwb25k
ZXJGb3JXZWJWaWV3OwogLSAoQk9PTCliZWNvbWVGaXJzdFJlc3BvbmRlckZvcldlYlZpZXc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IDRjYzFlZTBjYzlmMTNkNDBjNDQ3NjRjNDBmZThlN2E1NDhjNzMz
Y2YuLjExMDUwZjhjZjllODRlOWExMTdlNzdmZDhjM2M5NjI1YWY5M2VlMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCkBAIC04OTMsOSArODkzLDYgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25p
emVkOihVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKICAgICAg
ICAgX3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseShuYXRpdmVXZWJUb3VjaEV2
ZW50KTsKICAgICBlbHNlCiAgICAgICAgIF9wYWdlLT5oYW5kbGVUb3VjaEV2ZW50U3luY2hyb25v
dXNseShuYXRpdmVXZWJUb3VjaEV2ZW50KTsKLQotICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2ZW50
LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkKLSAgICAgICAgX2NhblNlbmRUb3VjaEV2ZW50
c0FzeW5jaHJvbm91c2x5ID0gTk87CiAjZW5kaWYKIH0KIApAQCAtMTg0NSwxMSArMTg0Miw2IEBA
IC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxTdGFydFBhbk9yUGluY2hHZXN0dXJlCiAgICAgX2NhblNl
bmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5ID0gWUVTOwogfQogCi0tICh2b2lkKXNjcm9sbFZp
ZXdEaWRFbmRQYW5PclBpbmNoR2VzdHVyZQotewotICAgIF9jYW5TZW5kVG91Y2hFdmVudHNBc3lu
Y2hyb25vdXNseSA9IE5POwotfQotCiAtICh2b2lkKV9kaWRFbmRTY3JvbGxpbmdPclpvb21pbmcK
IHsKICAgICBpZiAoIV9uZWVkc0RlZmVycmVkRW5kU2Nyb2xsaW5nU2VsZWN0aW9uVXBkYXRlKSB7
CkBAIC00MDYzLDYgKzQwNTUsOCBAQCAtIChCT09MKXNob3VsZElnbm9yZVdlYlRvdWNoCiAKIC0g
KEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXpl
ciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZElnbm9yZVdlYlRvdWNoV2l0aEV2ZW50OihVSUV2
ZW50ICopZXZlbnQKIHsKKyAgICBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgPSBO
TzsKKwogICAgIE5TU2V0PFVJVG91Y2ggKj4gKnRvdWNoZXMgPSBbZXZlbnQgdG91Y2hlc0Zvckdl
c3R1cmVSZWNvZ25pemVyOmdlc3R1cmVSZWNvZ25pemVyXTsKICAgICBmb3IgKFVJVG91Y2ggKnRv
dWNoIGluIHRvdWNoZXMpIHsKICAgICAgICAgaWYgKFt0b3VjaC52aWV3IGlzS2luZE9mQ2xhc3M6
W1VJU2Nyb2xsVmlldyBjbGFzc11dICYmIFsoVUlTY3JvbGxWaWV3ICopdG91Y2gudmlldyBfaXNJ
bnRlcnJ1cHRpbmdEZWNlbGVyYXRpb25dKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBlYWQzYTZiZjk5OTI1ZTZjYTE3MDE0YmRkOTVj
MmQ4N2Y0ZWU2MjU3Li5jMWJhNzY0ZjAxNTQyNzExZTI5YWQ1ZjlhMDczNDI3NzY4MjhhYmJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpA
QCAtMjcyLDExICsyNzIsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6b3ZlcmZsb3dTY3JvbGxWaWV3
V2lsbFN0YXJ0UGFuR2VzdHVyZSgpCiAgICAgbV9wYWdlQ2xpZW50Lm92ZXJmbG93U2Nyb2xsVmll
d1dpbGxTdGFydFBhbkdlc3R1cmUoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om92ZXJmbG93
U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKQotewotICAgIG1fcGFnZUNsaWVudC5vdmVyZmxv
d1Njcm9sbFZpZXdEaWRFbmRQYW5HZXN0dXJlKCk7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5Ojpv
dmVyZmxvd1Njcm9sbFZpZXdEaWRTY3JvbGwoKQogewogICAgIG1fcGFnZUNsaWVudC5vdmVyZmxv
d1Njcm9sbFZpZXdEaWRTY3JvbGwoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315076</attachid>
            <date>2017-07-10 21:39:52 -0700</date>
            <delta_ts>2017-07-11 10:55:24 -0700</delta_ts>
            <desc>Address post-review feedback</desc>
            <filename>bug-174300-20170710213951.patch</filename>
            <type>text/plain</type>
            <size>16764</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjgwYWE4ZjNiMGU1YzYz
YWU5NzEzOWY5NjFiMTlmOTQwZDExY2U5Mi4uNTJmMzhkNjkwZjEyNmYyNWFkOTUwMTgwMTBjZjk2
YjRkOTJkYzk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA3LTExICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZHJlc3MgcG9z
dC1yZXZpZXcgZmVlZGJhY2sgYWZ0ZXIgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9yMjE5MzEwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQzMDAKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgcGFuLWdlc3R1cmUtcmVsYXRlZCBwbHVt
YmluZyBpbnRyb2R1Y2VkIGluIHIyMTkzMTAgdGhhdCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5Lgor
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlk
RW5kUGFuR2VzdHVyZSk6IERlbGV0ZWQuCisKIDIwMTctMDctMTAgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl0gSWdub3JlIHRvdWNoIGV2ZW50
cyB0aGF0IGludGVycnVwdCBwbGF0Zm9ybS1kcml2ZW4gbW9tZW50dW0gc2Nyb2xsaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggNGI1YTU1MzgyNzg2NThmNWE0MDI1YTA5NDBiZDg5MTQ3ODBlMTViZi4uYWExMzM4
ZTg3ZjFlYzhjMTBmZTBhZDMyNmNjZjk4Y2Q1YjJlMTNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQ5IEBACisyMDE3LTA3LTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZHJlc3MgcG9zdC1yZXZpZXcgZmVlZGJhY2sgYWZ0ZXIgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9yMjE5MzEwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzQzMDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMDMwNjM5Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMg
cGx1bWJpbmcgaW50cm9kdWNlZCBpbiByMjE5MzEwIGZvciB0ZWxsaW5nIFdLQ29udGVudFZpZXcg
d2hlbiB0aGUgdXNlciBoYXMgZmluaXNoZWQgcGFubmluZyBvciB6b29taW5nLgorICAgICAgICBU
aGlzIHdhcyBwcmV2aW91c2x5IHVzZWQgdG8gcmVzZXQgYWxsb3dpbmcgYXN5bmNocm9ub3VzIHRv
dWNoIGV2ZW50IGFmdGVyIHByZXZlbnRpbmcgdGhlIHdlYiB0b3VjaCBldmVudHMKKyAgICAgICAg
Z2VzdHVyZSByZWNvZ25pemVyIGZyb20gZmlyaW5nLgorCisgICAgICAgIEhvd2V2ZXIsIGEgZmFy
IHNpbXBsZXIgKGFuZCBtdWNoIGxlc3MgZnJhZ2lsZSkgc29sdXRpb24gaXMgdG8ganVzdCBzZXQg
X2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5IHRvIE5PCisgICAgICAgIGF0IHRoZSBi
ZWdpbm5pbmcgb2YgdGhlIGdlc3R1cmUsIGJlZm9yZSB0aGUgZmlyc3QgYHRvdWNoc3RhcnRgIGV2
ZW50IGlzIGRpc3BhdGNoZWQuIFRoaXMgd2F5LCB3ZSBhbHdheXMgZW5zdXJlCisgICAgICAgIHRo
YXQgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5IGlzIE5PIHdoZW4gYmVnaW5uaW5n
IHRvIHByb2Nlc3MgYSB0b3VjaCBldmVudC4gVGhpcyBhcHByb2FjaCBpcyBjb3JyZWN0CisgICAg
ICAgIGJlY2F1c2UgdGhlIG9ubHkgcGxhY2Ugd2hlcmUgd2UgcXVlcnkgX2NhblNlbmRUb3VjaEV2
ZW50c0FzeW5jaHJvbm91c2x5IGlzIGluIC1fd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOiwgd2hl
cmUKKyAgICAgICAgKHdoZW4gd2UgYXJlIGJlZ2lubmluZyBhIG5ldyBnZXN0dXJlKSB3ZSBhcmUg
Z3VhcmFudGVlZCB0aGF0IC1nZXN0dXJlUmVjb2duaXplcjpzaG91bGRJZ25vcmVXZWJUb3VjaFdp
dGhFdmVudDoKKyAgICAgICAgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgYW5kIF9jYW5TZW5kVG91
Y2hFdmVudHNBc3luY2hyb25vdXNseSBpcyBOTy4KKworICAgICAgICBDb25maXJtZWQgdGhhdCB0
aGUgTGF5b3V0VGVzdHMgYWRkZWQgaW4gcjIxOTMxMCBzdGlsbCBwYXNzLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBz
Y3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2lsbERlY2VsZXJhdGU6XSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBzY3JvbGxWaWV3RGlkRW5kWm9vbWluZzp3aXRoVmlldzphdFNjYWxlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Njcm9s
bGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRQYW5HZXN0dXJlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9p
b3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKC1b
V0tPdmVyZmxvd1Njcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2ls
bERlY2VsZXJhdGU6XSk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1M6Om92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6Om92
ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUpOiBEZWxldGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJl
ZU5vZGVEaWRFbmRQYW5HZXN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1
cmVSZWNvZ25pemVyOnNob3VsZElnbm9yZVdlYlRvdWNoV2l0aEV2ZW50Ol0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IHNjcm9sbFZpZXdEaWRFbmRQYW5PclBpbmNoR2VzdHVyZV0pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1
cmUpOiBEZWxldGVkLgorCiAyMDE3LTA3LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdIElnbm9yZSB0b3VjaCBldmVudHMgdGhhdCBpbnRl
cnJ1cHQgcGxhdGZvcm0tZHJpdmVuIG1vbWVudHVtIHNjcm9sbGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDI4ZmNkMTdiNWQ3YTM5NmIz
YzU3NzVhYTBlNzA5ZDRkN2Y0YTM5ZmMuLjliODk1MDQ1ZjNmYWRiMDBlZmRiOTNhZmQ3NWM3YzE2
NmYyY2UyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKQEAgLTEwMSw3ICsxMDEsNiBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oSU9TKQogICAg
IHZpcnR1YWwgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRQYW5HZXN0dXJlKCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkgeyB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
MWE5ZmI2Mzc4ZGQyOTVjNGQwNTJjZjgwZjM4NWFjYmI2MjY5OTE0MS4uMThhNDNhOGEwMDM1ZmUy
NzJmMjJkODU0NzBlOTNlM2ZhMTA1MDdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIxNDMsOSArMjE0Myw2IEBAIC0gKHZvaWQp
c2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxE
ZWNlbGVyYXRlOihCT09MCiAgICAgLy8gSWYgd2UncmUgZGVjZWxlcmF0aW5nLCBzY3JvbGwgb2Zm
c2V0IHdpbGwgYmUgdXBkYXRlZCB3aGVuIHNjcm9sbFZpZXdEaWRGaW5pc2hEZWNlbGVyYXRpbmc6
IGlzIGNhbGxlZC4KICAgICBpZiAoIWRlY2VsZXJhdGUpCiAgICAgICAgIFtzZWxmIF9kaWRGaW5p
c2hTY3JvbGxpbmddOwotCi0gICAgaWYgKHNjcm9sbFZpZXcucGFuR2VzdHVyZVJlY29nbml6ZXIu
c3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRW5kZWQpCi0gICAgICAgIFtfY29udGVu
dFZpZXcgc2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJlXTsKIH0KIAogLSAodm9pZClz
Y3JvbGxWaWV3RGlkRW5kRGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CkBA
IC0yMTgwLDkgKzIxNzcsNiBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRab29taW5nOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWaWV3OihVSVZpZXcgKil2aQogICAgIEFTU0VSVChz
Y3JvbGxWaWV3ID09IF9zY3JvbGxWaWV3KTsKICAgICBbc2VsZiBfc2NoZWR1bGVWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVBZnRlclNjcm9sbEluVmlldzpzY3JvbGxWaWV3XTsKICAgICBbX2NvbnRl
bnRWaWV3IGRpZFpvb21Ub1NjYWxlOnNjYWxlXTsKLQotICAgIGlmIChzY3JvbGxWaWV3LnBpbmNo
R2VzdHVyZVJlY29nbml6ZXIuc3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRW5kZWQp
Ci0gICAgICAgIFtfY29udGVudFZpZXcgc2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJl
XTsKIH0KIAogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApp
bmRleCBkZGU2ZmJiYTZhYmMyOWE4YjBiMjQ5NDRkOWE3MTIwZWFlY2Q1MjdhLi44OTNlMmMwMTQ3
OWM3NTM2ODlmMjVhYTY3NTQyMDllM2I0MDY0MDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKQEAgLTMwOCw3ICszMDgsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3Vi
bGUgbWluaW11bVpvb21TY2FsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZs
b2F0UmVjdCBkb2N1bWVudFJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG92ZXJm
bG93U2Nyb2xsVmlld1dpbGxTdGFydFBhbkdlc3R1cmUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IG92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZFNjcm9sbCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
b3ZlcmZsb3dTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG92
ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaAppbmRleCBiNTc0MGQxNmEzMzE2ZjA3MTIxOWNkNjY1MWNjZDg5YzdlMTk4
ZjM5Li5lODdiYjJjMmU4NGM4NDliMDVmZTEzYmYwOTk2ZWMwZTM1ZTdkZGJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaApAQCAtODYsNyArODYsNiBAQCBwdWJsaWM6
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjdXN0b21GaXhlZFBv
c2l0aW9uUmVjdCgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQ
YW5HZXN0dXJlKCk7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFBhbkdlc3R1cmUo
KTsKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCk7CiAgICAgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFNjcm9sbCgpOwogI2lmIEVOQUJMRShDU1NfU0NST0xM
X1NOQVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAppbmRleCA5Y2Y3NDAyMDVjMzM3NzMwZDIxODMwMDI0
YTVhOGFkZjgxYTExNjRhLi4yNWViYjRiZTMxMTdjMGMwYWMyNDIzZjg3Y2VmNzIyMTlkZTMzMDE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTg4LDExICs4OCw2IEBAIHZvaWQgUmVtb3RlU2Ny
b2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkKICAgICBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5H
ZXN0dXJlKCk7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5v
ZGVEaWRFbmRQYW5HZXN0dXJlKCkKLXsKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
c2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRQYW5HZXN0dXJlKCk7Ci19Ci0gICAgCiB2b2lkIFJlbW90
ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCkKIHsKICAg
ICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRT
Y3JvbGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggOTI4NjQyZWIyMWEwOGYxNWVhMjAzYTRmODlj
ZmY3OTQ0ZDczM2Q4My4uNzMxOGNjYzgxNGNhNTcxNmRjNzBjMjRiNmM0NDE3OGQyNTZjZGE3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdUcmVlLmgKQEAgLTYxLDcgKzYxLDYgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9S
TShJT1MpCiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVyZSgpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkgb3ZlcnJpZGU7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9z
L1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVJT1MuaAppbmRleCA5NzY4OGU3MGM2MTE1ZDk5MGJlNjcyODNhNjc3ODNhZDhhYmRkMjY4Li4w
MmM4ZGU5MThjNzRmM2I3M2VlYzAzN2I1YWI5NmNkOWJmNzA1NWE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oCkBAIC00NCw3ICs0
NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0KCk7CiAgICAg
dm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZCgpOwogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3
V2lsbFN0YXJ0UGFuR2VzdHVyZSgpOwotICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5k
UGFuR2VzdHVyZSgpOwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiwgYm9vbCBpblVzZXJJbnRlcmF0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRT
bmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZl
cnRpY2FsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVJT1MubW0KaW5kZXggMTVlNjMyMWE4N2M3YzJhNjVlMmY4MGJmOWY0ODhhYTczNzc5
ZmUzYS4uNDMzZDM4ZTQyNTAxZTgyNTE2MDg2YWM2NjYwNGZhOGUyOWY3ODRlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCkBA
IC0xMTcsOSArMTE3LDYgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAgX3Njcm9s
bGluZ1RyZWVOb2RlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29udGVudE9mZnNl
dCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlLT5vdmVy
Zmxvd1Njcm9sbERpZEVuZCgpOwogICAgIH0KLQotICAgIGlmIChzY3JvbGxWaWV3LnBhbkdlc3R1
cmVSZWNvZ25pemVyLnN0YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUVuZGVkKQotICAg
ICAgICBfc2Nyb2xsaW5nVHJlZU5vZGUtPm92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1
cmUoKTsKIH0KIAogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRGVjZWxlcmF0aW5nOihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3CkBAIC0yOTcsMTEgKzI5NCw2IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6b3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFu
R2VzdHVyCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFu
R2VzdHVyZSgpOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJ
T1M6Om92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBhbkdlc3R1cmUoKQotewotICAgIHNjcm9sbGlu
Z1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZEVuZFBhbkdlc3R1cmUoKTsKLX0KLQogdm9pZCBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xs
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIGluVXNlckludGVyYXRpb24p
CiB7CiAgICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDM1NjU0YTczNzJmMmIwZmJiY2IxZGRmZGMxMzNjNzgw
ODIxZGRlNGMuLjhjOThmOTlhOWYzODhiOTI4MjdhNzRiODhmYzM0YWVmODQ2MWI4ZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ5NSw3ICs0OTUsNiBAQCBw
dWJsaWM6CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9u
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5w
dXRWaWV3Qm91bmRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1cnJlbnRDdXN0b21GaXhl
ZFBvc2l0aW9uUmVjdCwgZG91YmxlIGRpc3BsYXllZENvbnRlbnRTY2FsZSwgV2ViQ29yZTo6RnJh
bWVWaWV3OjpMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQgPSBXZWJDb3JlOjpGcmFtZVZpZXc6Okxh
eW91dFZpZXdwb3J0Q29uc3RyYWludDo6VW5jb25zdHJhaW5lZCwgYm9vbCB2aXN1YWxWaWV3cG9y
dEVuYWJsZWQgPSBmYWxzZSkgY29uc3Q7CiAKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld1dp
bGxTdGFydFBhbkdlc3R1cmUoKTsKLSAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBh
bkdlc3R1cmUoKTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZFNjcm9sbCgpOwogICAg
IHZvaWQgb3ZlcmZsb3dTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKTsKICAgICB2b2lkIG92ZXJmbG93
U2Nyb2xsRGlkRW5kU2Nyb2xsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMDU1NGZlY2RkZTJkYzIyMTYyYzIxMTQ2MGIzMTk3
Nzc2NDBhZmY2NS4uY2Q2MjdjMmM3ZTVkZjk2NDY1MmYwMmRhMTZlYTdiY2NlODQ2MDI2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApA
QCAtMTUxLDcgKzE1MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNhYmxlSW5zcGVjdG9yTm9k
ZVNlYXJjaCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdXaWxsU3Rh
cnRQYW5HZXN0dXJlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdEaWRF
bmRQYW5HZXN0dXJlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdEaWRT
Y3JvbGwoKSBvdmVycmlkZTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0U2Nyb2xs
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KaW5kZXggY2QwYTg3M2JkZTVkNTc2YjY2ZmRlMGY1NjM2ZjdiNGMwMDBmM2Y0Yi4uNzhl
NTFhMzk1MjY0MDY2NDJkMDkyYjQ1NDE0ZTdiYmJkZjI2YzRhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC02NzEsMTEgKzY3
MSw2IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6Om92ZXJmbG93U2Nyb2xsVmlld1dpbGxTdGFydFBh
bkdlc3R1cmUoKQogICAgIFttX2NvbnRlbnRWaWV3IHNjcm9sbFZpZXdXaWxsU3RhcnRQYW5PclBp
bmNoR2VzdHVyZV07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6Om92ZXJmbG93U2Nyb2xsVmll
d0RpZEVuZFBhbkdlc3R1cmUoKQotewotICAgIFttX2NvbnRlbnRWaWV3IHNjcm9sbFZpZXdEaWRF
bmRQYW5PclBpbmNoR2VzdHVyZV07Ci19Ci0KIHZvaWQgUGFnZUNsaWVudEltcGw6Om92ZXJmbG93
U2Nyb2xsVmlld0RpZFNjcm9sbCgpCiB7CiAgICAgW21fY29udGVudFZpZXcgX2RpZFNjcm9sbF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KaW5kZXggNDk5ZTZkOTdhYjQ1Zjky
NDc4NzExOTc1ZDg2MDk4NTY4NDAyMmY1Mi4uMjhkMzk1OTM0NTRlMTg1ZmI2NmZlNWRmN2RhYjhi
M2EyODYyMDRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQpAQCAtMTA0
LDExICsxMDQsNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9s
bGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2VzdHVyZSgpCiAgICAgbV93ZWJQYWdlUHJveHkub3Zl
cmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpOwogfQogCi12b2lkIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kUGFuR2VzdHVy
ZSgpCi17Ci0gICAgbV93ZWJQYWdlUHJveHkub3ZlcmZsb3dTY3JvbGxWaWV3RGlkRW5kUGFuR2Vz
dHVyZSgpOwotfQotCiB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9s
bGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS5vdmVy
Zmxvd1Njcm9sbFdpbGxTdGFydFNjcm9sbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggYWNlNjJmZjFk
N2MzNzg0MTUwNjczZWE4OWFmNmE1NzJlYmNjZTNlYi4uYjIyODAzNjY3NmZiMzA3ZDVlOTBkNDhj
NDc5YzVlOWRlN2FhNDQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0yNzksNyArMjc5LDYgQEAgc3Ry
dWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uOwog
CiAtICh2b2lkKXNjcm9sbFZpZXdXaWxsU3RhcnRQYW5PclBpbmNoR2VzdHVyZTsKLS0gKHZvaWQp
c2Nyb2xsVmlld0RpZEVuZFBhbk9yUGluY2hHZXN0dXJlOwogCiAtIChCT09MKWNhbkJlY29tZUZp
cnN0UmVzcG9uZGVyRm9yV2ViVmlldzsKIC0gKEJPT0wpYmVjb21lRmlyc3RSZXNwb25kZXJGb3JX
ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA0Y2MxZWUwY2M5ZjEzZDQwYzQ0NzY0YzQwZmU4
ZTdhNTQ4YzczM2NmLi5jNjNkYTg0MmNjMWUzZjg5OTkzZWFkNWY3ODUxNTI1YTNiODI5ZTYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTg0NSwxMSArMTg0NSw2IEBAIC0gKHZvaWQpc2Nyb2xsVmll
d1dpbGxTdGFydFBhbk9yUGluY2hHZXN0dXJlCiAgICAgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5j
aHJvbm91c2x5ID0gWUVTOwogfQogCi0tICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRQYW5PclBpbmNo
R2VzdHVyZQotewotICAgIF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSA9IE5POwot
fQotCiAtICh2b2lkKV9kaWRFbmRTY3JvbGxpbmdPclpvb21pbmcKIHsKICAgICBpZiAoIV9uZWVk
c0RlZmVycmVkRW5kU2Nyb2xsaW5nU2VsZWN0aW9uVXBkYXRlKSB7CkBAIC00MDYzLDYgKzQwNTgs
OCBAQCAtIChCT09MKXNob3VsZElnbm9yZVdlYlRvdWNoCiAKIC0gKEJPT0wpZ2VzdHVyZVJlY29n
bml6ZXI6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25p
emVyIHNob3VsZElnbm9yZVdlYlRvdWNoV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKIHsKKyAg
ICBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgPSBOTzsKKwogICAgIE5TU2V0PFVJ
VG91Y2ggKj4gKnRvdWNoZXMgPSBbZXZlbnQgdG91Y2hlc0Zvckdlc3R1cmVSZWNvZ25pemVyOmdl
c3R1cmVSZWNvZ25pemVyXTsKICAgICBmb3IgKFVJVG91Y2ggKnRvdWNoIGluIHRvdWNoZXMpIHsK
ICAgICAgICAgaWYgKFt0b3VjaC52aWV3IGlzS2luZE9mQ2xhc3M6W1VJU2Nyb2xsVmlldyBjbGFz
c11dICYmIFsoVUlTY3JvbGxWaWV3ICopdG91Y2gudmlldyBfaXNJbnRlcnJ1cHRpbmdEZWNlbGVy
YXRpb25dKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQppbmRleCBlYWQzYTZiZjk5OTI1ZTZjYTE3MDE0YmRkOTVjMmQ4N2Y0ZWU2MjU3Li5jMWJh
NzY0ZjAxNTQyNzExZTI5YWQ1ZjlhMDczNDI3NzY4MjhhYmJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMjcyLDExICsyNzIsNiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6b3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVy
ZSgpCiAgICAgbV9wYWdlQ2xpZW50Lm92ZXJmbG93U2Nyb2xsVmlld1dpbGxTdGFydFBhbkdlc3R1
cmUoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om92ZXJmbG93U2Nyb2xsVmlld0RpZEVuZFBh
bkdlc3R1cmUoKQotewotICAgIG1fcGFnZUNsaWVudC5vdmVyZmxvd1Njcm9sbFZpZXdEaWRFbmRQ
YW5HZXN0dXJlKCk7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5OjpvdmVyZmxvd1Njcm9sbFZpZXdE
aWRTY3JvbGwoKQogewogICAgIG1fcGFnZUNsaWVudC5vdmVyZmxvd1Njcm9sbFZpZXdEaWRTY3Jv
bGwoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>