<?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>159077</bug_id>
          
          <creation_ts>2016-06-23 16:38:52 -0700</creation_ts>
          <short_desc>[iOS] Make DumpRenderTree and WebKitTestRunner in the simulator use render server snapshotting</short_desc>
          <delta_ts>2016-07-01 02:55:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159337</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1204966</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-06-23 16:38:52 -0700</bug_when>
    <thetext>[iOS] Make DumpRenderTree and WebKitTestRunner in the simulator use render server snapshotting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204968</commentid>
    <comment_count>1</comment_count>
      <attachid>281941</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-06-23 16:41:42 -0700</bug_when>
    <thetext>Created attachment 281941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204969</commentid>
    <comment_count>2</comment_count>
      <attachid>281941</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-06-23 16:44:36 -0700</bug_when>
    <thetext>Comment on attachment 281941
Patch

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

&gt; Source/WebCore/platform/spi/cocoa/QuartzCoreSPI.h:172
&gt; +EXTERN_C uint8_t *CARenderServerGetBufferData(CARenderServerBufferRef);

star&apos;s on the wrong side :P

&gt; Tools/WebKitTestRunner/ios/PlatformWebViewIOS.mm:211
&gt; +    int bufferWidth = ceil(bufferSize.width * deviceScaleFactor);

I could see someone making use of bufferSize and it being wrong here.

&gt; Tools/WebKitTestRunner/ios/PlatformWebViewIOS.mm:220
&gt; +    CARenderServerRenderLayerWithTransform(MACH_PORT_NULL, [m_view layer].context.contextId, reinterpret_cast&lt;uint64_t&gt;(m_view.layer), buffer, 0, 0, &amp;transform);

Dots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204981</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-23 17:55:46 -0700</bug_when>
    <thetext>The follow up change, https://trac.webkit.org/r202405, fixed the Mac builds, but the iOS and Windows builds still appear to be broken:

https://build.webkit.org/builders/Apple%20iOS%209%20Simulator%20Release%20%28Build%29/builds/7381

https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/78640</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205014</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-06-23 20:32:22 -0700</bug_when>
    <thetext>Have to disable this in WTR because we have some synchronization issues (the &quot;wait for the web process&quot; is broken).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205814</commentid>
    <comment_count>5</comment_count>
      <attachid>282195</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-06-27 17:44:35 -0700</bug_when>
    <thetext>Created attachment 282195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205815</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-27 17:45:53 -0700</bug_when>
    <thetext>Attachment 282195 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebPageProxy.cpp:2891:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205834</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-06-27 18:46:06 -0700</bug_when>
    <thetext>https://trac.webkit.org/r202532</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205835</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-06-27 18:46:17 -0700</bug_when>
    <thetext>I&apos;ll garden the iOS tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205883</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-06-27 22:56:56 -0700</bug_when>
    <thetext>Followup fix in r202540.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281941</attachid>
            <date>2016-06-23 16:41:42 -0700</date>
            <delta_ts>2016-06-27 17:44:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159077-20160623164132.patch</filename>
            <type>text/plain</type>
            <size>23203</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI4OTBkZWI3YzJlMDIw
ZmY0MDQxNmViNWJkNWNiNTNlMGFlM2RkMS4uNDNjMzk1MThiZWMwZjA2NTgzNDA4OTYxMzQzNzg2
NzljZjQwMThhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA2LTIzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIE1ha2Ug
RHVtcFJlbmRlclRyZWUgYW5kIFdlYktpdFRlc3RSdW5uZXIgaW4gdGhlIHNpbXVsYXRvciB1c2Ug
cmVuZGVyIHNlcnZlciBzbmFwc2hvdHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIENBUmVuZGVyU2VydmVyIFNQSXMuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9oYXJuZXNzL3NuYXBzaG90LWNhcHR1cmVzLWNvbXBvc2l0aW5nLmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6CisKIDIw
MTYtMDYtMjIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjIwMTYyOSk6IFdlaXJkIGJ1dHRvbiBnbGl0Y2hpbmcgb24gZ2l0aHVi
LmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1F1YXJ0
ekNvcmVTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpDb3Jl
U1BJLmgKaW5kZXggMTI0YjBlOWExYTdjMmViYmUxMTI1ZDZmZDhhOGRkNDc4YTYyOWFkZC4uN2Q5
NDQ1ZmU4NjYyOTBhZTIzOGViM2EwZmE4ZTI0ODk0YzI5MGJlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCkBAIC0xNjMsNiArMTYz
LDE1IEBAIHR5cGVkZWYgZW51bSB7CiAjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiBFWFRF
Uk5fQyB2b2lkIENBUmVuZGVyU2VydmVyQ2FwdHVyZUxheWVyV2l0aFRyYW5zZm9ybShtYWNoX3Bv
cnRfdCBzZXJ2ZXJQb3J0LCB1aW50MzJfdCBjbGllbnRJZCwgdWludDY0X3QgbGF5ZXJJZCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz
Ml90IHNsb3RJZCwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCAq
KTsKKworRVhURVJOX0MgQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYgQ0FSZW5kZXJTZXJ2ZXJDcmVh
dGVCdWZmZXIoc2l6ZV90LCBzaXplX3QpOworRVhURVJOX0Mgdm9pZCBDQVJlbmRlclNlcnZlckRl
c3Ryb3lCdWZmZXIoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOworRVhURVJOX0Mgc2l6ZV90IENB
UmVuZGVyU2VydmVyR2V0QnVmZmVyV2lkdGgoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOworRVhU
RVJOX0Mgc2l6ZV90IENBUmVuZGVyU2VydmVyR2V0QnVmZmVySGVpZ2h0KENBUmVuZGVyU2VydmVy
QnVmZmVyUmVmKTsKK0VYVEVSTl9DIHNpemVfdCBDQVJlbmRlclNlcnZlckdldEJ1ZmZlclJvd0J5
dGVzKENBUmVuZGVyU2VydmVyQnVmZmVyUmVmKTsKK0VYVEVSTl9DIHVpbnQ4X3QgKkNBUmVuZGVy
U2VydmVyR2V0QnVmZmVyRGF0YShDQVJlbmRlclNlcnZlckJ1ZmZlclJlZik7CitFWFRFUk5fQyBz
aXplX3QgQ0FSZW5kZXJTZXJ2ZXJHZXRCdWZmZXJEYXRhU2l6ZShDQVJlbmRlclNlcnZlckJ1ZmZl
clJlZik7CisKICNpZiBVU0UoSU9TVVJGQUNFKQogRVhURVJOX0Mgdm9pZCBDQVJlbmRlclNlcnZl
clJlbmRlckxheWVyV2l0aFRyYW5zZm9ybShtYWNoX3BvcnRfdCBzZXJ2ZXJfcG9ydCwgdWludDMy
X3QgY2xpZW50X2lkLCB1aW50NjRfdCBsYXllcl9pZCwgSU9TdXJmYWNlUmVmIGlvc3VyZmFjZSwg
aW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCAqbWF0cml4KTsKIEVY
VEVSTl9DIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJEaXNwbGF5TGF5ZXJXaXRoVHJhbnNmb3Jt
QW5kVGltZU9mZnNldChtYWNoX3BvcnRfdCBzZXJ2ZXJfcG9ydCwgQ0ZTdHJpbmdSZWYgZGlzcGxh
eV9uYW1lLCB1aW50MzJfdCBjbGllbnRfaWQsIHVpbnQ2NF90IGxheWVyX2lkLCBJT1N1cmZhY2VS
ZWYgaW9zdXJmYWNlLCBpbnQzMl90IG94LCBpbnQzMl90IG95LCBjb25zdCBDQVRyYW5zZm9ybTNE
ICptYXRyaXgsIENGVGltZUludGVydmFsIG9mZnNldCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzViNDljMjU5OGE2MGRiZjVmYjlhOTVlMzlk
YjI4MzMyZjBiYzBmMS4uMzE1ZGJmYjFmYThjYjZlMTcyN2JhNDc3NWY5MDkzYTIyMzI4ZDJkMyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0IEBACisyMDE2LTA2LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1NdIE1ha2UgRHVtcFJlbmRlclRyZWUgYW5kIFdlYktpdFRlc3RS
dW5uZXIgaW4gdGhlIHNpbXVsYXRvciB1c2UgcmVuZGVyIHNlcnZlciBzbmFwc2hvdHRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTA3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4
IGJvdGggRFJUIGFuZCBXVFIgZm9yIGlPUyB0byB1c2UgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXll
cldpdGhUcmFuc2Zvcm0oKSBvbiB0aGUgdmlldydzIGxheWVyLgorICAgICAgICBUaGlzIGFsbG93
cyB0aGVtIHRvIGNhcHR1cmUgY29tcG9zaXRpbmcgbGF5ZXJzIGluIHNuYXBzaG90cywgcmF0aGVy
IHRoYW4gZG9pbmcgYSBzb2Z0d2FyZSBwYWludCwKKyAgICAgICAgdGh1cyBlbmFibGluZyB0ZXN0
aW5nIG9mIG1vcmUgdGhpbmdzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2cvUGl4ZWxE
dW1wU3VwcG9ydENHLmNwcDoKKyAgICAgICAgKGNyZWF0ZUJpdG1hcENvbnRleHQpOiBNb3ZlZCB0
byB0aGlzIGZpbGUgdG8gc2hhcmUgaXQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2cvUGl4
ZWxEdW1wU3VwcG9ydENHLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVt
cFN1cHBvcnRJT1MubW06CisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcp
OgorICAgICAgICAoQml0bWFwQ29udGV4dDo6Y3JlYXRlRnJvbVVJSW1hZ2UpOiBEZWxldGVkLgor
ICAgICAgICAoQml0bWFwQ29udGV4dDo6cGl4ZWxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEJp
dG1hcENvbnRleHQ6OkJpdG1hcENvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAoY29tcHV0ZU1E
NUhhc2hTdHJpbmdGb3JCaXRtYXBDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKGR1bXBCaXRt
YXApOiBEZWxldGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9Db25maWd1cmF0aW9u
cy9EdW1wUmVuZGVyVHJlZUxpYnJhcnkueGNjb25maWc6IERvbid0IGV4Y2x1ZGUgUGl4ZWxEdW1w
U3VwcG9ydENHLmNwcC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3Vw
cG9ydE1hYy5tbToKKyAgICAgICAgKGNyZWF0ZVBhZ2VkQml0bWFwQ29udGV4dCk6CisgICAgICAg
IChjcmVhdGVCaXRtYXBDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXJBcHAueGNjb25maWc6IGxpbmsgd2l0
aCBRdWFydHpDb3JlLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
OjpkdW1wKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9y
bVdlYlZpZXdJT1MubW06CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6d2luZG93U25h
cHNob3RJbWFnZSk6CisKIDIwMTYtMDYtMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0
QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBXM0MgdGVzdCBpbXBvcnRlciBzaG91bGQgZ2VuZXJh
dGUgZmlsZXMgdG8gaWdub3JlIGJ5IFdlYktpdCBTQ00KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2NnL1BpeGVsRHVtcFN1cHBvcnRDRy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jZy9QaXhlbER1bXBTdXBwb3J0Q0cuY3BwCmluZGV4IDYwOTg4MjJlZjI5OWRkOGYxYjI2MDA1
YjliZGRkMzBhNjU2OTEwM2QuLmI3MzQ0ZWQ2N2Y4N2MxZWQ0YThmN2Y5Mjk4ODVlYjExNjExZTNk
MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NnL1BpeGVsRHVtcFN1cHBvcnRD
Ry5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2cvUGl4ZWxEdW1wU3VwcG9ydENHLmNw
cApAQCAtMTE1LDMgKzExNSwyNyBAQCB2b2lkIGR1bXBCaXRtYXAoQml0bWFwQ29udGV4dCogY29u
dGV4dCwgY29uc3QgY2hhciogY2hlY2tzdW0pCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGlt
YWdlID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGVJbWFnZShjb250ZXh0LT5jZ0NvbnRl
eHQoKSkpOwogICAgIHByaW50UE5HKGltYWdlLmdldCgpLCBjaGVja3N1bSk7CiB9CisKK1Bhc3NS
ZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dChzaXplX3QgcGl4ZWxzV2lk
ZSwgc2l6ZV90IHBpeGVsc0hpZ2gsIHNpemVfdCYgcm93Qnl0ZXMsIHZvaWQqJiBidWZmZXIpCit7
CisgICAgcm93Qnl0ZXMgPSAoNCAqIHBpeGVsc1dpZGUgKyA2MykgJiB+NjM7IC8vIFVzZSBhIG11
bHRpcGxlIG9mIDY0IGJ5dGVzIHRvIGltcHJvdmUgQ0cgcGVyZm9ybWFuY2UKKworICAgIGJ1ZmZl
ciA9IGNhbGxvYyhwaXhlbHNIaWdoLCByb3dCeXRlcyk7CisgICAgaWYgKCFidWZmZXIpIHsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJEdW1wUmVuZGVyVHJlZTogY2FsbG9jKCV6dSwgJXp1KSBmYWls
ZWRcbiIsIHBpeGVsc0hpZ2gsIHJvd0J5dGVzKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorICAgIAorICAgIC8vIENyZWF0aW5nIHRoaXMgYml0bWFwIGluIHRoZSBkZXZpY2UgY29s
b3Igc3BhY2UgcHJldmVudHMgYW55IGNvbG9yIGNvbnZlcnNpb24gd2hlbiB0aGUgaW1hZ2Ugb2Yg
dGhlIHdlYiB2aWV3IGlzIGRyYXduIGludG8gaXQuCisgICAgUmV0YWluUHRyPENHQ29sb3JTcGFj
ZVJlZj4gY29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkp
OworICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGJ1ZmZl
ciwgcGl4ZWxzV2lkZSwgcGl4ZWxzSGlnaCwgOCwgcm93Qnl0ZXMsIGNvbG9yU3BhY2UuZ2V0KCks
IGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhv
c3QpOworICAgIGlmICghY29udGV4dCkgeworICAgICAgICBXVEZMb2dBbHdheXMoIkR1bXBSZW5k
ZXJUcmVlOiBDR0JpdG1hcENvbnRleHRDcmVhdGUoJXAsICV6dSwgJXp1LCA4LCAlenUsICVwLCAw
eCV4KSBmYWlsZWRcbiIsIGJ1ZmZlciwgcGl4ZWxzSGlnaCwgcGl4ZWxzV2lkZSwgcm93Qnl0ZXMs
IGNvbG9yU3BhY2UuZ2V0KCksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dC
aXRtYXBCeXRlT3JkZXIzMkhvc3QpOworICAgICAgICBmcmVlKGJ1ZmZlcik7CisgICAgICAgIGJ1
ZmZlciA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJl
dHVybiBCaXRtYXBDb250ZXh0OjpjcmVhdGVCeUFkb3B0aW5nQml0bWFwQW5kQ29udGV4dChidWZm
ZXIsIGNvbnRleHQpOworfQorCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jZy9Q
aXhlbER1bXBTdXBwb3J0Q0cuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NnL1BpeGVsRHVtcFN1
cHBvcnRDRy5oCmluZGV4IDU0NWE2YWQyNTAxMjlkMWJhMTdjNDhmOGM5NzVlZTY2ZGJhNGYwZTQu
LjU1OGVmMjdlNWZiZmU1MGJiNzk1Y2ZjNmU2ZWIxY2U1MzQ4MTZlYjAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2NnL1BpeGVsRHVtcFN1cHBvcnRDRy5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2NnL1BpeGVsRHVtcFN1cHBvcnRDRy5oCkBAIC03OSw2ICs3OSw3IEBAIHBy
aXZhdGU6CiAKIH07CiAKK1Bhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29u
dGV4dChzaXplX3QgcGl4ZWxzV2lkZSwgc2l6ZV90IHBpeGVsc0hpZ2gsIHNpemVfdCYgcm93Qnl0
ZXMsIHZvaWQqJiBidWZmZXIpOwogUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRt
YXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9vbCBpbmNyZW1lbnRhbFJlcGFp
bnQsIGJvb2wgc3dlZXBIb3Jpem9udGFsbHksIGJvb2wgZHJhd1NlbGVjdGlvblJlY3QpOwogCiAj
ZW5kaWYgLy8gUGl4ZWxEdW1wU3VwcG9ydENHX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
aW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KaW5kZXggMjc4ZDM0NzdmNDUzMDQ5YzRjMzZkYjA0
YzlkZDZmOGJmZWQ5ZWEwZC4uNzExOWFhYzU1Mjk1NzAwOTNiNGEyODkzMjUwOTFkNDhjZjA3YmUz
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJ
T1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1Mu
bW0KQEAgLTMxLDEzICszMSwxNiBAQAogCiAjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZS5oIgogI2lt
cG9ydCAiRHVtcFJlbmRlclRyZWVXaW5kb3cuaCIKKyNpbXBvcnQgIlBpeGVsRHVtcFN1cHBvcnRD
Ry5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKIAogI2RlZmluZSBDT01NT05fRElHRVNUX0ZPUl9P
UEVOU1NMCiAjaW1wb3J0IDxDb21tb25DcnlwdG8vQ29tbW9uRGlnZXN0Lmg+CiAjaW1wb3J0IDxN
b2JpbGVDb3JlU2VydmljZXMvVVRDb3JlVHlwZXMuaD4KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVh
cnR6Q29yZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV2ViQ29yZVRocmVhZC5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC00NSw0OSArNDgsNDkgQEAKIGV4dGVybiBEdW1w
UmVuZGVyVHJlZVdpbmRvdyAqZ0RydFdpbmRvdzsKIGV4dGVybiBVSVdlYkJyb3dzZXJWaWV3ICpn
V2ViQnJvd3NlclZpZXc7CiAKLWNsYXNzIEJpdG1hcENvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxCaXRtYXBDb250ZXh0PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Qml0bWFw
Q29udGV4dD4gY3JlYXRlRnJvbVVJSW1hZ2UoVUlJbWFnZSAqaW1hZ2UpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEJpdG1hcENvbnRleHQoaW1hZ2UpKTsKLSAgICB9CitQYXNz
UmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29s
IG9uc2NyZWVuLCBib29sIGluY3JlbWVudGFsUmVwYWludCwgYm9vbCBzd2VlcEhvcml6b250YWxs
eSwgYm9vbCBkcmF3U2VsZWN0aW9uUmVjdCkKK3sKKyAgICAvLyBUT0RPOiA8cmRhcjovL3Byb2Js
ZW0vNjU1ODM2Nj4gRHVtcFJlbmRlclRyZWU6IEludmVzdGlnYXRlIHRlc3RSZXBhaW50U3dlZXBI
b3Jpem9udGFsbHkgYW5kIGR1bXBTZWxlY3Rpb25SZWN0CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCi0gICAgTlNEYXRhICpwaXhlbERhdGEoKSBjb25zdCB7IHJldHVybiBtX3Bp
eGVsRGF0YS5nZXQoKTsgfQorICAgIFdlYlRocmVhZExvY2soKTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBmbHVzaF07CisKKyAgICBDR0Zsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gMjsgLy8gRklYTUU6
IGhhcmRjb2RlIDJ4IGZvciBub3cuIEluIGZ1dHVyZSB3ZSBjb3VsZCByZXNwZWN0IDF4IGFuZCAz
eCBhcyB3ZSBkbyBvbiBNYWMuCisgICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zvcm0gPSBDQVRyYW5z
Zm9ybTNETWFrZVNjYWxlKGRldmljZVNjYWxlRmFjdG9yLCBkZXZpY2VTY2FsZUZhY3RvciwgMSk7
CisgICAgCisgICAgQ0dTaXplIGJ1ZmZlclNpemUgPSBbW21haW5GcmFtZSB3ZWJWaWV3XSBmcmFt
ZV0uc2l6ZTsKKyAgICBpbnQgYnVmZmVyV2lkdGggPSBjZWlsKGJ1ZmZlclNpemUud2lkdGggKiBk
ZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgaW50IGJ1ZmZlckhlaWdodCA9IGNlaWwoYnVmZmVyU2l6
ZS5oZWlnaHQgKiBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKLXByaXZhdGU6Ci0gICAgQml0bWFwQ29u
dGV4dChVSUltYWdlICppbWFnZSkKLSAgICAgICAgOiBtX3BpeGVsRGF0YShVSUltYWdlUE5HUmVw
cmVzZW50YXRpb24oaW1hZ2UpKQotICAgIHsKKyAgICBDQVJlbmRlclNlcnZlckJ1ZmZlclJlZiBi
dWZmZXIgPSBDQVJlbmRlclNlcnZlckNyZWF0ZUJ1ZmZlcihidWZmZXJXaWR0aCwgYnVmZmVySGVp
Z2h0KTsKKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAgICBXVEZMb2dBbHdheXMoIkNBUmVuZGVy
U2VydmVyQ3JlYXRlQnVmZmVyIGZhaWxlZCBmb3IgYnVmZmVyIHdpdGggd2lkdGggJWQgaGVpZ2h0
ICVkXG4iLCBidWZmZXJXaWR0aCwgYnVmZmVySGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCi0gICAgUmV0YWluUHRyPE5TRGF0YT4gbV9waXhlbERhdGE7Ci19OworICAg
IENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxMLCBb
Z1dlYkJyb3dzZXJWaWV3IGxheWVyXS5jb250ZXh0LmNvbnRleHRJZCwgcmVpbnRlcnByZXRfY2Fz
dDx1aW50NjRfdD4oW2dXZWJCcm93c2VyVmlldyBsYXllcl0pLCBidWZmZXIsIDAsIDAsICZ0cmFu
c2Zvcm0pOwogCi12b2lkIGNvbXB1dGVNRDVIYXNoU3RyaW5nRm9yQml0bWFwQ29udGV4dChCaXRt
YXBDb250ZXh0KiBjb250ZXh0LCBjaGFyIGhhc2hTdHJpbmdbMzNdKQotewotICAgIHVuc2lnbmVk
IGNoYXIgcmVzdWx0W0NDX01ENV9ESUdFU1RfTEVOR1RIXTsKLSAgICBDQ19NRDUoW2NvbnRleHQt
PnBpeGVsRGF0YSgpIGJ5dGVzXSwgW2NvbnRleHQtPnBpeGVsRGF0YSgpIGxlbmd0aF0sIHJlc3Vs
dCk7Ci0gICAgaGFzaFN0cmluZ1swXSA9ICdcMCc7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCAx
NjsgKytpKQotICAgICAgICBzbnByaW50ZihoYXNoU3RyaW5nLCAzMywgIiVzJTAyeCIsIGhhc2hT
dHJpbmcsIHJlc3VsdFtpXSk7Ci19CisgICAgdWludDhfdCogZGF0YSA9IENBUmVuZGVyU2VydmVy
R2V0QnVmZmVyRGF0YShidWZmZXIpOworICAgIHNpemVfdCByb3dCeXRlcyA9IENBUmVuZGVyU2Vy
dmVyR2V0QnVmZmVyUm93Qnl0ZXMoYnVmZmVyKTsKIAotdm9pZCBkdW1wQml0bWFwKEJpdG1hcENv
bnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGNoZWNrc3VtKQotewotICAgIHByaW50UE5HKHN0
YXRpY19jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihbY29udGV4dC0+cGl4ZWxEYXRhKCkgYnl0
ZXNdKSwgW2NvbnRleHQtPnBpeGVsRGF0YSgpIGxlbmd0aF0sIGNoZWNrc3VtKTsKLX0KKyAgICBz
dGF0aWMgQ0dDb2xvclNwYWNlUmVmIHNSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhO
YW1lKGtDR0NvbG9yU3BhY2VTUkdCKTsKKyAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+
IHByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGRhdGEs
IENBUmVuZGVyU2VydmVyR2V0QnVmZmVyRGF0YVNpemUoYnVmZmVyKSwgbnVsbHB0cikpOworICAg
IAorICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3Jl
YXRlKGJ1ZmZlcldpZHRoLCBidWZmZXJIZWlnaHQsIDgsIDMyLCByb3dCeXRlcywgc1JHQlNwYWNl
LCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJI
b3N0LCBwcm92aWRlci5nZXQoKSwgMCwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQp
KTsKIAotUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdl
YlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9vbCBpbmNyZW1lbnRhbFJlcGFpbnQsIGJvb2wgc3dlZXBI
b3Jpem9udGFsbHksIGJvb2wgZHJhd1NlbGVjdGlvblJlY3QpCi17Ci0gICAgLy8gVE9ETzogPHJk
YXI6Ly9wcm9ibGVtLzY1NTgzNjY+IER1bXBSZW5kZXJUcmVlOiBJbnZlc3RpZ2F0ZSB0ZXN0UmVw
YWludFN3ZWVwSG9yaXpvbnRhbGx5IGFuZCBkdW1wU2VsZWN0aW9uUmVjdAorICAgIHZvaWQqIGJp
dG1hcEJ1ZmZlciA9IG51bGxwdHI7CisgICAgc2l6ZV90IGJpdG1hcFJvd0J5dGVzID0gMDsKKyAg
ICBhdXRvIGJpdG1hcENvbnRleHQgPSBjcmVhdGVCaXRtYXBDb250ZXh0KGJ1ZmZlcldpZHRoLCBi
dWZmZXJIZWlnaHQsIGJpdG1hcFJvd0J5dGVzLCBiaXRtYXBCdWZmZXIpOworICAgIGlmICghYml0
bWFwQ29udGV4dCkgeworICAgICAgICBDQVJlbmRlclNlcnZlckRlc3Ryb3lCdWZmZXIoYnVmZmVy
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCi0gICAgV2ViVGhyZWFkTG9jaygp
OwotICAgIFtDQVRyYW5zYWN0aW9uIGZsdXNoXTsKKyAgICBDR0NvbnRleHREcmF3SW1hZ2UoYml0
bWFwQ29udGV4dC0+Y2dDb250ZXh0KCksIENHUmVjdE1ha2UoMCwgMCwgYnVmZmVyV2lkdGgsIGJ1
ZmZlckhlaWdodCksIGNnSW1hZ2UuZ2V0KCkpOworICAgIENBUmVuZGVyU2VydmVyRGVzdHJveUJ1
ZmZlcihidWZmZXIpOwogCi0gICAgVUlHcmFwaGljc0JlZ2luSW1hZ2VDb250ZXh0V2l0aE9wdGlv
bnMoW1ttYWluRnJhbWUgd2ViVmlld10gZnJhbWVdLnNpemUsIFlFUyAvKiBvcGFxdWUgKi8sIFtn
RHJ0V2luZG93IHNjcmVlblNjYWxlXSk7Ci0gICAgW1tnV2ViQnJvd3NlclZpZXcgbGF5ZXJdIHJl
bmRlckluQ29udGV4dDpVSUdyYXBoaWNzR2V0Q3VycmVudENvbnRleHQoKV07Ci0gICAgUmVmUHRy
PEJpdG1hcENvbnRleHQ+IGNvbnRleHQgPSBCaXRtYXBDb250ZXh0OjpjcmVhdGVGcm9tVUlJbWFn
ZShVSUdyYXBoaWNzR2V0SW1hZ2VGcm9tQ3VycmVudEltYWdlQ29udGV4dCgpKTsKLSAgICBVSUdy
YXBoaWNzRW5kSW1hZ2VDb250ZXh0KCk7CisgICAgcmV0dXJuIGJpdG1hcENvbnRleHQ7CiAKLSAg
ICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Db25maWd1cmF0aW9u
cy9EdW1wUmVuZGVyVHJlZUxpYnJhcnkueGNjb25maWcgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvQ29uZmlndXJhdGlvbnMvRHVtcFJlbmRlclRyZWVMaWJyYXJ5LnhjY29uZmlnCmluZGV4IGNl
NWIyODliYWVlNDAyNmE3NmVhMTBhMTYzOGE1Mjc2MTRkYTQ4NTIuLmI1Y2MwNTI2YzNkNTU4MjIy
ZDRmODA0ZTc2ZmRjZDY0ZjdkMjRlYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9Db25maWd1cmF0aW9ucy9EdW1wUmVuZGVyVHJlZUxpYnJhcnkueGNjb25maWcKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0NvbmZpZ3VyYXRpb25zL0R1bXBSZW5kZXJUcmVlTGli
cmFyeS54Y2NvbmZpZwpAQCAtMzAsNSArMzAsNSBAQCBTS0lQX0lOU1RBTEwgPSBZRVM7CiAKIE9U
SEVSX0xERkxBR1MgPSA7CiAKLUVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1pcGhvbmUq
XSA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0gRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UubSBQaXhlbER1bXBTdXBwb3J0
TWFjLm1tIFBpeGVsRHVtcFN1cHBvcnRDRy5jcHA7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1F
U1tzZGs9aXBob25lKl0gPSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50TWFjLm1tIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0gUGl4
ZWxEdW1wU3VwcG9ydE1hYy5tbTsKIEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1tYWNv
c3gqXSA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJJT1MubW0gUGl4ZWxEdW1wU3VwcG9ydElPUy5tbSBEdW1wUmVuZGVyVHJlZUJyb3dzZXJWaWV3
Lm1tOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBv
cnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5t
bQppbmRleCA5Zjk5NmQzMmMxMGJhYTg5NzU4YzI4YjE4OGMyODA4NDEwOWJmMjEwLi43MTg0OGNi
MGY4Mzg2YmU5NzJhNGM4NDA2NWRiNTNjMmE1MjNjYzUxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbQpAQCAtNDksMjkgKzQ5LDYgQEAgQGlu
dGVyZmFjZSBDQVRyYW5zYWN0aW9uICgpCiArICh2b2lkKXN5bmNocm9uaXplOwogQGVuZAogCi1z
dGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0KHNpemVf
dCBwaXhlbHNXaWRlLCBzaXplX3QgcGl4ZWxzSGlnaCwgc2l6ZV90JiByb3dCeXRlcywgdm9pZCom
IGJ1ZmZlcikKLXsKLSAgICByb3dCeXRlcyA9ICg0ICogcGl4ZWxzV2lkZSArIDYzKSAmIH42Mzsg
Ly8gVXNlIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgdG8gaW1wcm92ZSBDRyBwZXJmb3JtYW5jZQot
Ci0gICAgYnVmZmVyID0gY2FsbG9jKHBpeGVsc0hpZ2gsIHJvd0J5dGVzKTsKLSAgICBpZiAoIWJ1
ZmZlcikgewotICAgICAgICBXVEZMb2dBbHdheXMoIkR1bXBSZW5kZXJUcmVlOiBjYWxsb2MoJWxs
dSwgJWxsdSkgZmFpbGVkXG4iLCBwaXhlbHNIaWdoLCByb3dCeXRlcyk7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIH0KLSAgICAKLSAgICAvLyBDcmVhdGluZyB0aGlzIGJpdG1hcCBpbiB0
aGUgZGV2aWNlIGNvbG9yIHNwYWNlIHByZXZlbnRzIGFueSBjb2xvciBjb252ZXJzaW9uIHdoZW4g
dGhlIGltYWdlIG9mIHRoZSB3ZWIgdmlldyBpcyBkcmF3biBpbnRvIGl0LgotICAgIFJldGFpblB0
cjxDR0NvbG9yU3BhY2VSZWY+IGNvbG9yU3BhY2UgPSBhZG9wdENGKENHQ29sb3JTcGFjZUNyZWF0
ZURldmljZVJHQigpKTsKLSAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IENHQml0bWFwQ29udGV4
dENyZWF0ZShidWZmZXIsIHBpeGVsc1dpZGUsIHBpeGVsc0hpZ2gsIDgsIHJvd0J5dGVzLCBjb2xv
clNwYWNlLmdldCgpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFw
Qnl0ZU9yZGVyMzJIb3N0KTsgLy8gVXNlIEFSR0I4IG9uIFBQQyBvciBCR1JBOCBvbiBYODYgdG8g
aW1wcm92ZSBDRyBwZXJmb3JtYW5jZQotICAgIGlmICghY29udGV4dCkgewotICAgICAgICBXVEZM
b2dBbHdheXMoIkR1bXBSZW5kZXJUcmVlOiBDR0JpdG1hcENvbnRleHRDcmVhdGUoJXAsICVsbHUs
ICVsbHUsIDgsICVsbHUsICVwLCAweCV4KSBmYWlsZWRcbiIsIGJ1ZmZlciwgcGl4ZWxzSGlnaCwg
cGl4ZWxzV2lkZSwgcm93Qnl0ZXMsIGNvbG9yU3BhY2UuZ2V0KCksIGtDR0ltYWdlQWxwaGFQcmVt
dWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QpOwotICAgICAgICBmcmVl
KGJ1ZmZlcik7Ci0gICAgICAgIGJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLQotICAgIHJldHVybiBCaXRtYXBDb250ZXh0OjpjcmVhdGVCeUFkb3B0aW5n
Qml0bWFwQW5kQ29udGV4dChidWZmZXIsIGNvbnRleHQpOwotfQotCiBzdGF0aWMgdm9pZCBwYWlu
dFJlcGFpbnRSZWN0T3ZlcmxheShXZWJWaWV3KiB3ZWJWaWV3LCBDR0NvbnRleHRSZWYgY29udGV4
dCkKIHsKICAgICBDR1JlY3Qgdmlld1JlY3QgPSBOU1JlY3RUb0NHUmVjdChbd2ViVmlldyBib3Vu
ZHNdKTsKQEAgLTIwMyw3ICsxODAsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0
ZVBhZ2VkQml0bWFwQ29udGV4dCgpCiAgICAgaW50IHBhZ2VIZWlnaHRJblBpeGVscyA9IFRlc3RS
dW5uZXI6OnZpZXdIZWlnaHQ7CiAgICAgaW50IG51bWJlck9mUGFnZXMgPSBbbWFpbkZyYW1lIG51
bWJlck9mUGFnZXNXaXRoUGFnZVdpZHRoOnBhZ2VXaWR0aEluUGl4ZWxzIHBhZ2VIZWlnaHQ6cGFn
ZUhlaWdodEluUGl4ZWxzXTsKICAgICBzaXplX3Qgcm93Qnl0ZXMgPSAwOwotICAgIHZvaWQqIGJ1
ZmZlciA9IDA7CisgICAgdm9pZCogYnVmZmVyID0gbnVsbHB0cjsKIAogICAgIGludCB0b3RhbEhl
aWdodCA9IG51bWJlck9mUGFnZXMgKiAocGFnZUhlaWdodEluUGl4ZWxzICsgMSkgLSAxOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRl
c3RSdW5uZXJBcHAueGNjb25maWcgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRp
b25zL1dlYktpdFRlc3RSdW5uZXJBcHAueGNjb25maWcKaW5kZXggMGYyOGI2MGE4MjM5ODE1Mjg2
MDE4MTE2Y2MwOTMxN2Y4MDQwZGFmMi4uMmM0MWIyNmZkOTc5MWM4YmJiNTZiMzRkNDJkZjZlNWI1
NmFjMDA4MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9u
cy9XZWJLaXRUZXN0UnVubmVyQXBwLnhjY29uZmlnCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0VGVzdFJ1bm5lckFwcC54Y2NvbmZpZwpAQCAtMjcsNyAr
MjcsNyBAQAogCiBQUk9EVUNUX05BTUUgPSBXZWJLaXRUZXN0UnVubmVyOwogR0NDX0VOQUJMRV9P
QkpDX0VYQ0VQVElPTlMgPSBZRVM7Ci1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpIC1sJChX
RUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZKSAtbFdlYktpdFRlc3RSdW5uZXIgLWZyYW1l
d29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIElt
YWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIFVJS2l0IC1mcmFtZXdvcmsgV2ViS2l0
IC1mcmFtZXdvcmsgRm91bmRhdGlvbjsKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgLWwk
KFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUlkpIC1sV2ViS2l0VGVzdFJ1bm5lciAtZnJh
bWV3b3JrIEphdmFTY3JpcHRDb3JlIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsg
UXVhcnR6Q29yZSAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3Jr
IFVJS2l0IC1mcmFtZXdvcmsgV2ViS2l0IC1mcmFtZXdvcmsgRm91bmRhdGlvbjsKIFNLSVBfSU5T
VEFMTFtzZGs9bWFjb3N4Kl0gPSBZRVM7CiBFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9
bWFjb3N4Kl0gPSBpb3MvKiBBcHBEZWxlZ2F0ZS5tOwogRVhDTFVERURfU09VUkNFX0ZJTEVfTkFN
RVNbc2RrPWFwcGxldHYqXSA9IGlvcy9MYXVuY2guc3Rvcnlib2FyZDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcAppbmRleCA1Njc3MmFmODIyMGJlZjhkMzA3NDU1YTI4Nzk1NWZmZmYxMGRhY2IyLi4x
ODk5YThiM2EzZjRkN2MyYmNiNGY3ZjU5ODE1ZGZhODJhNjQwZjZmIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCkBAIC04OTUsMTIgKzg5NSw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
dW1wKCkKICAgICAgICAgaW5qZWN0ZWRCdW5kbGUuZHVtcEJhY2tGb3J3YXJkTGlzdHNGb3JBbGxQ
YWdlcyhzdHJpbmdCdWlsZGVyKTsKIAogICAgIGlmIChpbmplY3RlZEJ1bmRsZS5zaG91bGREdW1w
UGl4ZWxzKCkgJiYgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUGl4ZWxz
KCkpIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIC8vIElPUyBkb2Vzbid0IGltcGxlbWVu
dCBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKSB5ZXQsIHNvIHdlIG5lZWQg
dG8gZ2VuZXJhdGUgdGhlIHNuYXBzaG90IGluIHRoZSB3ZWIgcHJvY2Vzcy4KLSAgICAgICAgYm9v
bCBzaG91bGRDcmVhdGVTbmFwc2hvdCA9IHRydWU7Ci0jZWxzZQogICAgICAgICBib29sIHNob3Vs
ZENyZWF0ZVNuYXBzaG90ID0gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5pc1ByaW50aW5n
KCk7Ci0jZW5kaWYKICAgICAgICAgaWYgKHNob3VsZENyZWF0ZVNuYXBzaG90KSB7CiAgICAgICAg
ICAgICBXS1NuYXBzaG90T3B0aW9ucyBvcHRpb25zID0ga1dLU25hcHNob3RPcHRpb25zU2hhcmVh
YmxlOwogICAgICAgICAgICAgV0tSZWN0IHNuYXBzaG90UmVjdCA9IFdLQnVuZGxlRnJhbWVHZXRW
aXNpYmxlQ29udGVudEJvdW5kcyhXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUobV9wYWdlKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1Mu
bW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KaW5k
ZXggZjAxOGRlZjM5OGQ3ZjRhMDg2NDVkMzRhNDFiMDI1Mjk3MWNjOTMwMC4uYmQxZmYwYmUyYmRm
NWRjZDEyNDAyMTY0NzViMDE0OThmNGZiZWVmMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtMjgsMTAgKzI4LDEyIEBACiAKICNp
bXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyV0tXZWJWaWV3Lmgi
CisjaW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPFdlYktpdC9XS0lt
YWdlQ0cuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoRGV0YWlscykK
QEAgLTk0LDEyICs5Niw2IEBAIC0gKENHRmxvYXQpYmFja2luZ1NjYWxlRmFjdG9yCiAKIEBlbmQK
IAotQGludGVyZmFjZSBVSVdpbmRvdyAoKQotCi0tICh2b2lkKV9zZXRXaW5kb3dSZXNvbHV0aW9u
OihDR0Zsb2F0KXJlc29sdXRpb24gZGlzcGxheUlmQ2hhbmdlZDooQk9PTClkaXNwbGF5SWZDaGFu
Z2VkOwotCi1AZW5kCi0KIG5hbWVzcGFjZSBXVFIgewogCiBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRm
b3JtV2ViVmlldyhXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uLCBjb25zdCBU
ZXN0T3B0aW9ucyYgb3B0aW9ucykKQEAgLTIwNiw4ICsyMDIsMzYgQEAgdm9pZCBQbGF0Zm9ybVdl
YlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoZmxvYXQpCiAKIFdLUmV0YWluUHRyPFdL
SW1hZ2VSZWY+IFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFnZSgpCiB7Ci0gICAg
Ly8gRklYTUU6IE5lZWQgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhpcywgb3Igd2UncmUgZGVwZW5k
aW5nIG9uIHNvZnR3YXJlIHBhaW50cyEKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICBDR0Zsb2F0IGRldmljZVNjYWxlRmFjdG9yID0g
MjsgLy8gRklYTUU6IGhhcmRjb2RlIDJ4IGZvciBub3cuIEluIGZ1dHVyZSB3ZSBjb3VsZCByZXNw
ZWN0IDF4IGFuZCAzeCBhcyB3ZSBkbyBvbiBNYWMuCisgICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zv
cm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGRldmljZVNjYWxlRmFjdG9yLCBkZXZpY2VTY2Fs
ZUZhY3RvciwgMSk7CisgICAgCisgICAgQ0dTaXplIGJ1ZmZlclNpemUgPSBtX3ZpZXcuYm91bmRz
LnNpemU7CisgICAgaW50IGJ1ZmZlcldpZHRoID0gY2VpbChidWZmZXJTaXplLndpZHRoICogZGV2
aWNlU2NhbGVGYWN0b3IpOworICAgIGludCBidWZmZXJIZWlnaHQgPSBjZWlsKGJ1ZmZlclNpemUu
aGVpZ2h0ICogZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAgQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJS
ZWYgYnVmZmVyID0gQ0FSZW5kZXJTZXJ2ZXJDcmVhdGVCdWZmZXIoYnVmZmVyV2lkdGgsIGJ1ZmZl
ckhlaWdodCk7CisgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDQVJl
bmRlclNlcnZlckNyZWF0ZUJ1ZmZlciBmYWlsZWQgZm9yIGJ1ZmZlciB3aXRoIHdpZHRoICVkIGhl
aWdodCAlZFxuIiwgYnVmZmVyV2lkdGgsIGJ1ZmZlckhlaWdodCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKworICAgIENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNm
b3JtKE1BQ0hfUE9SVF9OVUxMLCBbbV92aWV3IGxheWVyXS5jb250ZXh0LmNvbnRleHRJZCwgcmVp
bnRlcnByZXRfY2FzdDx1aW50NjRfdD4obV92aWV3LmxheWVyKSwgYnVmZmVyLCAwLCAwLCAmdHJh
bnNmb3JtKTsKKworICAgIHVpbnQ4X3QqIGRhdGEgPSBDQVJlbmRlclNlcnZlckdldEJ1ZmZlckRh
dGEoYnVmZmVyKTsKKyAgICBzaXplX3Qgcm93Qnl0ZXMgPSBDQVJlbmRlclNlcnZlckdldEJ1ZmZl
clJvd0J5dGVzKGJ1ZmZlcik7CisKKyAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIHNSR0JTcGFj
ZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VTUkdCKTsKKyAgICBS
ZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92
aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGRhdGEsIENBUmVuZGVyU2VydmVyR2V0QnVmZmVyRGF0YVNp
emUoYnVmZmVyKSwgbnVsbHB0cikpOworICAgIAorICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBj
Z0ltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRlKGJ1ZmZlcldpZHRoLCBidWZmZXJIZWlnaHQs
IDgsIDMyLCByb3dCeXRlcywgc1JHQlNwYWNlLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZp
cnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0LCBwcm92aWRlci5nZXQoKSwgMCwgZmFsc2Us
IGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKKyAgICBXS1JldGFpblB0cjxXS0ltYWdlUmVm
PiByZXN1bHQgPSBhZG9wdFdLKFdLSW1hZ2VDcmVhdGVGcm9tQ0dJbWFnZShjZ0ltYWdlLmdldCgp
LCAwKSk7CisKKyAgICBDQVJlbmRlclNlcnZlckRlc3Ryb3lCdWZmZXIoYnVmZmVyKTsKKworICAg
IHJldHVybiByZXN1bHQ7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAogYm9v
bCBQbGF0Zm9ybVdlYlZpZXc6OnZpZXdTdXBwb3J0c09wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMm
IG9wdGlvbnMpIGNvbnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmNlMmFjM2M3NWQ2YmVmMDVlY2M3ZWEzNzJmMjc4OTEx
ZjZiOWRmZi4uOTdkMDNiMTdmNDgxNDY0NGQ1YTVjMGNiM2RlZTAyOWI4NzFkMTQ1NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE2LTA2LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIE1ha2UgRHVtcFJlbmRlclRyZWUgYW5kIFdlYktp
dFRlc3RSdW5uZXIgaW4gdGhlIHNpbXVsYXRvciB1c2UgcmVuZGVyIHNlcnZlciBzbmFwc2hvdHRp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTA3
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAg
ICAgVGVzdCB0aGF0IGZhaWxzIGlmIHNuYXBzaG90dGluZyBkb2Vzbid0IGNvcnJlY3RseSBzbmFw
c2hvdCAzRCB0cmFuc2Zvcm1zLgorCisgICAgICAgICogZmFzdC9oYXJuZXNzL3NuYXBzaG90LWNh
cHR1cmVzLWNvbXBvc2l0aW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
aGFybmVzcy9zbmFwc2hvdC1jYXB0dXJlcy1jb21wb3NpdGluZy5odG1sOiBBZGRlZC4KKwogMjAx
Ni0wNi0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMjAxNjI5KTogV2VpcmQgYnV0dG9uIGdsaXRjaGluZyBvbiBnaXRodWIu
Y29tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvc25hcHNob3QtY2FwdHVy
ZXMtY29tcG9zaXRpbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9z
bmFwc2hvdC1jYXB0dXJlcy1jb21wb3NpdGluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIw
MjUxNDU4ZjI1NGYzNGVjNGEzZWUxNTgwNDAwM2E2YWMyYjkyY2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvc25hcHNob3QtY2FwdHVyZXMtY29tcG9zaXRpbmct
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+
Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAyMDBweDsKKyAgICAgICAgICAg
IGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9z
aXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgbGVmdDogMTEwcHg7CisgICAgICAgICAgICBo
ZWlnaHQ6IDQwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVoo
MCk7CisgICAgICAgIH0KKyAgICAgICAgLmNsaXBwZXIgeworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAzMHB4OworICAgICAgICAgICAgbGVmdDogMjAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDI3MHB4OworICAgICAgICAgICAgd2lkdGg6IDIyMHB4
OworICAgICAgICAgICAgYm9yZGVyOiA1MHB4IHNvbGlkIGdyYXk7CisgICAgICAgICAgICBib3Jk
ZXItdG9wLXdpZHRoOiAyMzBweDsKKyAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDI2
MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY2xpcHBlciI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvc25hcHNob3QtY2FwdHVyZXMt
Y29tcG9zaXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9zbmFwc2hvdC1jYXB0
dXJlcy1jb21wb3NpdGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2YTZhNTNhNjAxMzdjYzNjZTg0ZDk1
ZjBkOGQ3YTQxMTE3NWQxYTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hh
cm5lc3Mvc25hcHNob3QtY2FwdHVyZXMtY29tcG9zaXRpbmcuaHRtbApAQCAtMCwwICsxLDM2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAg
IC5jb250YWluZXIgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAg
ICAgdG9wOiAyMDBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgcGVy
c3BlY3RpdmU6IDQwMHB4OworICAgICAgICB9CisgICAgICAgIC5ib3ggeworICAgICAgICAgICAg
aGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKDEy
MGRlZyk7CisgICAgICAgIH0KKyAgICAgICAgLmNsaXBwZXIgeworICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAzMHB4OworICAgICAgICAgICAgbGVmdDog
MjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDI3MHB4OworICAgICAgICAgICAgd2lkdGg6IDIy
MHB4OworICAgICAgICAgICAgYm9yZGVyOiA1MHB4IHNvbGlkIGdyYXk7CisgICAgICAgICAgICBi
b3JkZXItdG9wLXdpZHRoOiAyMzBweDsKKyAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6
IDI2MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY2xpcHBlciI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282195</attachid>
            <date>2016-06-27 17:44:35 -0700</date>
            <delta_ts>2016-06-27 17:52:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159077-20160627174419.patch</filename>
            <type>text/plain</type>
            <size>9816</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjljOGZlZWEyZTI0Zjdl
ZTZlNTc0OWFhZDJjNDlhMDBiNjNkYWU5Mi4uMDI5YzdiMDcyNjU0MTI2Y2UyYTRiMWYyMWNmYWQ2
ODRjYjBiMDBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA2LTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIE1ha2Ug
RHVtcFJlbmRlclRyZWUgYW5kIFdlYktpdFRlc3RSdW5uZXIgaW4gdGhlIHNpbXVsYXRvciB1c2Ug
cmVuZGVyIHNlcnZlciBzbmFwc2hvdHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCBXZWJQYWdlUHJveHk6OmZvcmNlUmVwYWludCgpIHRvIGNv
cnJlY3RseSB3YWl0IGZvciB0aGUgbmV4dCBjb21taXQgZnJvbSB0aGUgd2ViIHByb2Nlc3MsCisg
ICAgICAgIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IgVUktc2lkZSBjb21wb3NpdGluZy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmZvcmNlUmVwYWludCk6CisKIDIwMTYtMDYtMjQgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIElEQiB0ZXN0cyBjcmFzaGluZyBhdHRlbXB0aW5n
IHRvIHJlZ2lzdGVyIHNhbmRib3ggZXh0ZW5zaW9ucyBmb3IgYmxvYiBmaWxlcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggODc3ODNkMzQzNzFmODA5Yzcy
YWE2OTRkN2JkMDE1MWM1OGY5NzlhNy4uOGVlN2M2NWJiYzRjNjE2ZDY5MGYyYzM0MDBhMDk5NDQ3
NjhiYmQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTI4ODgsOCArMjg4OCwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9yY2VSZXBhaW50KFBhc3NS
ZWZQdHI8Vm9pZENhbGxiYWNrPiBwcnBDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAg
IG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CisgICAgc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxs
YmFja0Jhc2U6OkVycm9yKT4gZGlkRm9yY2VSZXBhaW50Q2FsbGJhY2sgPSBbdGhpcywgY2FsbGJh
Y2tdKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAgY2FsbEFmdGVyTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZShbY2FsbGJhY2tdKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsK
KyAgICAgICAgICAgIGlmIChlcnJvciAhPSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7Cisg
ICAgICAgICAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoZXJyb3IpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2FsbGJhY2stPnBlcmZv
cm1DYWxsYmFjaygpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IG1fY2FsbGJhY2tzLnB1dChkaWRGb3JjZVJlcGFpbnRDYWxsYmFjaywgbV9wcm9jZXNz
LT50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpKTsKICAgICBtX2RyYXdpbmdB
cmVhLT53YWl0Rm9yQmFja2luZ1N0b3JlVXBkYXRlT25OZXh0UGFpbnQoKTsKICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZvcmNlUmVwYWludChjYWxsYmFja0lEKSwgbV9w
YWdlSUQpOyAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBlMzc2ZDdlOThiNzc3YzZhMWY5NDkwMmIyYWFjNzExMTExNTQ3NTI2Li5iYTI5MzM4
ZjMzMWNkNTM1NTVkMjQyMGEyYjVkMTcwNjkwMDU1OGRmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTYtMDYtMjcg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10g
TWFrZSBEdW1wUmVuZGVyVHJlZSBhbmQgV2ViS2l0VGVzdFJ1bm5lciBpbiB0aGUgc2ltdWxhdG9y
IHVzZSByZW5kZXIgc2VydmVyIHNuYXBzaG90dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBSZS1lbmFibGUgcmVuZGVyIHNlcnZlciBz
bmFwc2hvdHRpbmcgZm9yIGlPUyBXVFIgdmlhIHRoZSBjaGFuZ2UgaW4gSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcC4KKworICAgICAgICBGaXggV2ViUGFnZVByb3h5Ojpmb3JjZVJlcGFpbnQoKSB0byBj
b3JyZWN0bHkgd2FpdCBmb3IgdGhlIG5leHQgY29tbWl0IGZyb20gdGhlIHdlYiBwcm9jZXNzLAor
ICAgICAgICB3aGljaCBpcyBuZWNlc3NhcnkgZm9yIFVJLXNpZGUgY29tcG9zaXRpbmcuCisKKyAg
ICAgICAgQWRkIHNvbWUgbnVsbCBjaGVja3MgdG8gZml4IGlzc3VlcyB3aGVuIHRoZSBXS1dlYlZp
ZXcgZ2V0cyByZXNpemVkIHRvIGJlIGVtcHR5LCB3aGljaAorICAgICAgICBzZWVtcyB0byBoYXBw
ZW4gZm9yIHNvbWUgdGVzdHMgdGhhdCBjYWxsIHdpbmRvdy5yZXNpemVUbygpLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXApOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RS
OjpUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvY2cvVGVzdEludm9jYXRpb25DRy5jcHA6CisgICAgICAgIChXVFI6OmNyZWF0ZUNHQ29udGV4
dEZyb21JbWFnZSk6CisgICAgICAgIChXVFI6OmNvbXB1dGVNRDVIYXNoU3RyaW5nRm9yQ29udGV4
dCk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkdW1wUGl4ZWxzQW5kQ29tcGFyZVdp
dGhFeHBlY3RlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJW
aWV3SU9TLm1tOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90
SW1hZ2UpOgorCiAyMDE2LTA2LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpeCBXaW5kb3dzIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
CmluZGV4IGIzZDUxOWEwNWFiMTQ2MzVjOTlmZGZhY2QyNmMwNjJlYWEzN2EwOWYuLjE4OTlhOGIz
YTNmNGQ3YzJiY2I0ZjdmNTk4MTVkZmE4MmE2NDBmNmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAKQEAgLTg5NSwxMiArODk1LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXAoKQog
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5kdW1wQmFja0ZvcndhcmRMaXN0c0ZvckFsbFBhZ2VzKHN0
cmluZ0J1aWxkZXIpOwogCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLnNob3VsZER1bXBQaXhlbHMo
KSAmJiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBQaXhlbHMoKSkgewot
I2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgLy8gUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFw
c2hvdEltYWdlKCkgaGFzIHRpbWluZyBwcm9ibGVtcywgc28gdXNlIFdlYlByb2Nlc3Mgc25hcHNo
b3RzIGZvciBub3cuCi0gICAgICAgIGJvb2wgc2hvdWxkQ3JlYXRlU25hcHNob3QgPSB0cnVlOwot
I2Vsc2UKICAgICAgICAgYm9vbCBzaG91bGRDcmVhdGVTbmFwc2hvdCA9IGluamVjdGVkQnVuZGxl
LnRlc3RSdW5uZXIoKS0+aXNQcmludGluZygpOwotI2VuZGlmCiAgICAgICAgIGlmIChzaG91bGRD
cmVhdGVTbmFwc2hvdCkgewogICAgICAgICAgICAgV0tTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucyA9
IGtXS1NuYXBzaG90T3B0aW9uc1NoYXJlYWJsZTsKICAgICAgICAgICAgIFdLUmVjdCBzbmFwc2hv
dFJlY3QgPSBXS0J1bmRsZUZyYW1lR2V0VmlzaWJsZUNvbnRlbnRCb3VuZHMoV0tCdW5kbGVQYWdl
R2V0TWFpbkZyYW1lKG1fcGFnZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcAppbmRleCA0MTMxZGYzMzIyYjdlOGVjMzE5ZTkwMGQ3NWE4NWE5NDNjNmEyZjQ4Li5k
YTgxYTNkZmJkMzBlZDg3MGZjM2M4NjA4OTc0ZjBhYWExZWQyMWJlIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMjQ4LDggKzI0OCw4IEBAIHZvaWQgVGVz
dEludm9jYXRpb246OmR1bXBSZXN1bHRzKCkKICAgICAgICAgICAgICAgICBtX3dlYlByb2Nlc3NJ
c1VucmVzcG9uc2l2ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQorCiAgICAgICAgICAgICBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiB3aW5kb3dTbmFwc2hv
dCA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT53aW5kb3dTbmFw
c2hvdEltYWdlKCk7Ci0gICAgICAgICAgICBBU1NFUlQod2luZG93U25hcHNob3QpOwogICAgICAg
ICAgICAgZHVtcFBpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQod2luZG93U25hcHNob3QuZ2V0
KCksIG1fcmVwYWludFJlY3RzLmdldCgpLCBUZXN0SW52b2NhdGlvbjo6U25hcHNob3RSZXN1bHRU
eXBlOjpXZWJWaWV3KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY2cvVGVzdEludm9jYXRpb25DRy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2NnL1Rlc3RJbnZvY2F0aW9uQ0cuY3BwCmluZGV4IDBmMjZmMzI0NWU4MjcwOWQyMzY3YTI1
MDQ2ZmJhY2Y1M2VhNmQxN2EuLmMwYjkyNTcyNTQ3Yjc5OTcwMzVlMDVhOGYyZmRlNGMyNjBmZjA5
NzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY2cvVGVzdEludm9jYXRpb25D
Ry5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jZy9UZXN0SW52b2NhdGlvbkNHLmNw
cApAQCAtNTcsMTUgKzU3LDE5IEBAIHN0YXRpYyBDR0NvbnRleHRSZWYgY3JlYXRlQ0dDb250ZXh0
RnJvbUltYWdlKFdLSW1hZ2VSZWYgd2tJbWFnZSkKICAgICAvLyBDcmVhdGluZyB0aGlzIGJpdG1h
cCBpbiB0aGUgZGV2aWNlIGNvbG9yIHNwYWNlIHNob3VsZCBwcmV2ZW50IGFueSBjb2xvciBjb252
ZXJzaW9uIHdoZW4gdGhlIGltYWdlIG9mIHRoZSB3ZWIgdmlldyBpcyBkcmF3biBpbnRvIGl0Lgog
ICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNvbG9yU3BhY2UgPSBhZG9wdENGKENHQ29s
b3JTcGFjZUNyZWF0ZURldmljZVJHQigpKTsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IENH
Qml0bWFwQ29udGV4dENyZWF0ZSgwLCBwaXhlbHNXaWRlLCBwaXhlbHNIaWdoLCA4LCByb3dCeXRl
cywgY29sb3JTcGFjZS5nZXQoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtD
R0JpdG1hcEJ5dGVPcmRlcjMySG9zdCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIAogICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LCBDR1Jl
Y3RNYWtlKDAsIDAsIHBpeGVsc1dpZGUsIHBpeGVsc0hpZ2gpLCBpbWFnZS5nZXQoKSk7Ci0KICAg
ICByZXR1cm4gY29udGV4dDsKIH0KIAogdm9pZCBjb21wdXRlTUQ1SGFzaFN0cmluZ0ZvckNvbnRl
eHQoQ0dDb250ZXh0UmVmIGJpdG1hcENvbnRleHQsIGNoYXIgaGFzaFN0cmluZ1szM10pCiB7Cisg
ICAgaWYgKCFiaXRtYXBDb250ZXh0KSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiY29tcHV0ZU1E
NUhhc2hTdHJpbmdGb3JDb250ZXh0OiBjb250ZXh0IGlzIG51bGxcbiIpOworICAgICAgICByZXR1
cm47CisgICAgfQogICAgIEFTU0VSVChDR0JpdG1hcENvbnRleHRHZXRCaXRzUGVyUGl4ZWwoYml0
bWFwQ29udGV4dCkgPT0gMzIpOyAvLyBJbWFnZURpZmYgYXNzdW1lcyAzMiBiaXQgUkdCQSwgd2Ug
bXVzdCBhcyB3ZWxsLgogICAgIHNpemVfdCBwaXhlbHNIaWdoID0gQ0dCaXRtYXBDb250ZXh0R2V0
SGVpZ2h0KGJpdG1hcENvbnRleHQpOwogICAgIHNpemVfdCBwaXhlbHNXaWRlID0gQ0dCaXRtYXBD
b250ZXh0R2V0V2lkdGgoYml0bWFwQ29udGV4dCk7CkBAIC0xNDQsNyArMTQ4LDE2IEBAIHN0YXRp
YyB2b2lkIHBhaW50UmVwYWludFJlY3RPdmVybGF5KENHQ29udGV4dFJlZiBjb250ZXh0LCBXS0lt
YWdlUmVmIGltYWdlLCBXS0FyCiAKIHZvaWQgVGVzdEludm9jYXRpb246OmR1bXBQaXhlbHNBbmRD
b21wYXJlV2l0aEV4cGVjdGVkKFdLSW1hZ2VSZWYgaW1hZ2UsIFdLQXJyYXlSZWYgcmVwYWludFJl
Y3RzLCBTbmFwc2hvdFJlc3VsdFR5cGUgc25hcHNob3RUeXBlKQogeworICAgIGlmICghaW1hZ2Up
IHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJkdW1wUGl4ZWxzQW5kQ29tcGFyZVdpdGhFeHBlY3Rl
ZDogaW1hZ2UgaXMgbnVsbFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBSZXRh
aW5QdHI8Q0dDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRDRihjcmVhdGVDR0NvbnRleHRGcm9t
SW1hZ2UoaW1hZ2UpKTsKKyAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlz
KCJkdW1wUGl4ZWxzQW5kQ29tcGFyZVdpdGhFeHBlY3RlZDogY29udGV4dCBpcyBudWxsXG4iKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIC8vIEEgbm9uLW51bGwgcmVwYWludFJlY3Rz
IGFycmF5IG1lYW5zIHdlJ3JlIGRvaW5nIGEgcmVwYWludCB0ZXN0LgogICAgIGlmIChyZXBhaW50
UmVjdHMpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdl
YlZpZXdJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJ
T1MubW0KaW5kZXggZTBkY2E1NGU5Mzg5NDZmMjI2ZmNjOTI2ZGI2MWI2ZTk3Nzc2N2Q5NS4uNmYy
MzlhZjk4ZmVkNDVjMzZjM2JiNDRiYjcwZGU3ZDRhNWFmODdiNSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtMjEyLDYgKzIxMiwx
MCBAQCBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBz
aG90SW1hZ2UoKQogICAgIENHU2l6ZSB2aWV3U2l6ZSA9IG1fdmlldy5ib3VuZHMuc2l6ZTsKICAg
ICBpbnQgYnVmZmVyV2lkdGggPSBjZWlsKHZpZXdTaXplLndpZHRoICogZGV2aWNlU2NhbGVGYWN0
b3IpOwogICAgIGludCBidWZmZXJIZWlnaHQgPSBjZWlsKHZpZXdTaXplLmhlaWdodCAqIGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICBpZiAoIWJ1ZmZlcldpZHRoIHx8ICFidWZmZXJIZWlnaHQpIHsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJCZWluZyBhc2tlZCBmb3Igc25hcHNob3Qgb2YgdmlldyB3
aXRoIHdpZHRoICVkIGhlaWdodCAlZFxuIiwgYnVmZmVyV2lkdGgsIGJ1ZmZlckhlaWdodCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KIAogICAgIENBUmVuZGVyU2VydmVyQnVmZmVy
UmVmIGJ1ZmZlciA9IENBUmVuZGVyU2VydmVyQ3JlYXRlQnVmZmVyKGJ1ZmZlcldpZHRoLCBidWZm
ZXJIZWlnaHQpOwogICAgIGlmICghYnVmZmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWNmMmRlZWY1MzE4OTI5NTIz
MjVkNTRjOTE4ZGRiMjE1MjUwNjhkNy4uOTM2NDQxZjM3ZDU2MGU0OWU3ZDZkOGYxNjg4ODJjZWIw
OGRlNTYyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA2LTI3ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIE1ha2UgRHVtcFJlbmRl
clRyZWUgYW5kIFdlYktpdFRlc3RSdW5uZXIgaW4gdGhlIHNpbXVsYXRvciB1c2UgcmVuZGVyIHNl
cnZlciBzbmFwc2hvdHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgZmFzdC9oYXJuZXNzL3NuYXBzaG90LWNhcHR1cmVzLWNvbXBvc2l0
aW5nLmh0bWwgcGFzc2VzIG5vdy4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3It
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTYtMDYtMjQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS11bRUZMXSBJbWFnZUJ1ZmZlckNhaXJv
IHNob3VsZCBhY2NlcHQgcmVzb2x1dGlvbiBmYWN0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGVjODAw
YWZiNWY3MTk5YTVlMzIyMTRmMzExNTI5YmM3OWE0NTk4M2UuLjE2ZGIwYWRiNmZmYTMzOTIzNDEw
NmQ0MTZlNTFlMjcyYTVjYmExNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg5OSw1ICsxODk5LDMg
QEAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFmdGVyLXBh
Z2VzaG93Lmh0bWwgWyBQYXNzIEZhaWx1cmUKIHdlYmtpdC5vcmcvYi8xNTc1ODkgZmFzdC90ZXh0
LWF1dG9zaXppbmcvaW9zL3RleHQtYXV0b3NpemluZy1hZnRlci1iYWNrLmh0bWwgWyBQYXNzIFRp
bWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTU3OTkwIFsgUmVsZWFzZSBdIG1hdGhtbC93YnItaW4t
bXJvb3QtY3Jhc2guaHRtbCBbIFBhc3MgVGltZW91dCBdCi0KLXdlYmtpdC5vcmcvYi8xNTkwNzcg
ZmFzdC9oYXJuZXNzL3NuYXBzaG90LWNhcHR1cmVzLWNvbXBvc2l0aW5nLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0K
</data>
<flag name="review"
          id="306018"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>