<?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>174219</bug_id>
          
          <creation_ts>2017-07-06 15:01:44 -0700</creation_ts>
          <short_desc>[iOS DnD] For cross-app drags, &apos;drop&apos; event handlers are never invoked if dataTransfer.dropEffect is not set while dragging</short_desc>
          <delta_ts>2017-07-10 00:23:40 -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>WebCore Misc.</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>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1326207</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-06 15:01:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/32083177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326224</commentid>
    <comment_count>1</comment_count>
      <attachid>314766</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-06 15:57:25 -0700</bug_when>
    <thetext>Created attachment 314766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326617</commentid>
    <comment_count>2</comment_count>
      <attachid>314766</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-07-07 14:08:43 -0700</bug_when>
    <thetext>Comment on attachment 314766
Patch

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

&gt; Source/WebCore/ChangeLog:20
&gt; +        Tests:
&gt; +        DataInteractionTests.ExternalSourceHTMLToUploadArea
&gt; +        DataInteractionTests.ExternalSourceImageAndHTMLToUploadArea
&gt; +        DataInteractionTests.ExternalSourceMoveOperationNotAllowed

We usually have the first test listed after &quot;Tests: &quot; and the rest indented to align with the first test

&gt; Source/WebCore/page/mac/DragControllerMac.mm:113
&gt; +    // On iOS, UIKit skips the -performDrop invocation altogether if MOVE is forbidden. Thus,
&gt; +    // if MOVE is not allowed in the drag source operation mask, fall back to only other allowable
&gt; +    // action, COPY.

Can we wrap lines after &quot;forbidden.&quot; instead of after &quot;Thus,&quot; to make it read better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326624</commentid>
    <comment_count>3</comment_count>
      <attachid>314766</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-07 14:14:06 -0700</bug_when>
    <thetext>Comment on attachment 314766
Patch

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

Thanks!

&gt;&gt; Source/WebCore/ChangeLog:20
&gt;&gt; +        DataInteractionTests.ExternalSourceMoveOperationNotAllowed
&gt; 
&gt; We usually have the first test listed after &quot;Tests: &quot; and the rest indented to align with the first test

Got it -- fixed.

&gt;&gt; Source/WebCore/page/mac/DragControllerMac.mm:113
&gt;&gt; +    // action, COPY.
&gt; 
&gt; Can we wrap lines after &quot;forbidden.&quot; instead of after &quot;Thus,&quot; to make it read better?

Sure! Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326627</commentid>
    <comment_count>4</comment_count>
      <attachid>314878</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-07 14:20:00 -0700</bug_when>
    <thetext>Created attachment 314878
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326650</commentid>
    <comment_count>5</comment_count>
      <attachid>314878</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-07 14:59:29 -0700</bug_when>
    <thetext>Comment on attachment 314878
Patch for landing

Clearing flags on attachment: 314878

Committed r219271: &lt;http://trac.webkit.org/changeset/219271&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314766</attachid>
            <date>2017-07-06 15:57:25 -0700</date>
            <delta_ts>2017-07-07 14:08:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174219-20170706155724.patch</filename>
            <type>text/plain</type>
            <size>23981</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI4NDRjNmY2NzMzYjlm
ODQwNGFlY2ZiZGQ5ZjUzYTY4ZjE4ZDFkNy4uNDg2OTg5ZTMwNmUwOTQ5OTUzN2ViNmJmMzZiYTc2
YWFlZTgxZTEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA3LTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBG
b3IgY3Jvc3MtYXBwIGRyYWdzLCAnZHJvcCcgZXZlbnQgaGFuZGxlcnMgYXJlIG5ldmVyIGludm9r
ZWQgaWYgZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgaXMgbm90IHNldCB3aGlsZSBkcmFnZ2luZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MjE5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjA4MzE3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIGluIERyYWdDb250cm9sbGVyLmNw
cCwgZGVmYXVsdE9wZXJhdGlvbkZvckRyYWcgbWFwcyBhIGRyYWcgc291cmNlIG9wZXJhdGlvbiBt
YXNrIG9mCisgICAgICAgIERyYWdPcGVyYXRpb25HZW5lcmljIHRvIERyYWdPcGVyYXRpb25Nb3Zl
IGFjcm9zcyBhbGwgcGxhdGZvcm1zLiBIb3dldmVyLCBvbiBpT1MsIHdoZXJlIGNyb3NzLWFwcCBk
cmFnIG1vdmVzIGRvCisgICAgICAgIG5vdCB0cmlnZ2VyIGEgZHJvcCwgdGhpcyBtZWFucyBkcm9w
IGhhbmRsZXJzIHdvbid0IGZpcmUgdW5sZXNzIHRoZSBkcm9wRWZmZWN0IGlzIGV4cGxpY2l0bHkg
c2V0IHRvIGNvcHkuCisKKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGludHJvZHVjZSBEcmFnQ29u
dHJvbGxlcjo6cGxhdGZvcm1HZW5lcmljRHJhZ09wZXJhdGlvbigpLCB3aGljaCByZXR1cm5zIERy
YWdPcGVyYXRpb25Db3B5IG9uIGlPUworICAgICAgICBhbmQgRHJhZ09wZXJhdGlvbk1vdmUgKHRo
ZSBleGlzdGluZyBiZWhhdmlvcikgZWxzZXdoZXJlLiBkZWZhdWx0T3BlcmF0aW9uRm9yRHJhZyB0
aGVuIG1hcHMgYSBkcmFnIHNvdXJjZQorICAgICAgICBvcGVyYXRpb24gbWFzayBvZiBEcmFnT3Bl
cmF0aW9uR2VuZXJpYyB0byBwbGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKCkuCisKKyAgICAg
ICAgVGVzdHM6CisgICAgICAgIERhdGFJbnRlcmFjdGlvblRlc3RzLkV4dGVybmFsU291cmNlSFRN
TFRvVXBsb2FkQXJlYQorICAgICAgICBEYXRhSW50ZXJhY3Rpb25UZXN0cy5FeHRlcm5hbFNvdXJj
ZUltYWdlQW5kSFRNTFRvVXBsb2FkQXJlYQorICAgICAgICBEYXRhSW50ZXJhY3Rpb25UZXN0cy5F
eHRlcm5hbFNvdXJjZU1vdmVPcGVyYXRpb25Ob3RBbGxvd2VkCisKKyAgICAgICAgKiBwYWdlL0Ry
YWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpwbGF0
Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRPcGVy
YXRpb25Gb3JEcmFnKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmg6CisgICAgICAg
ICogcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGxhdGZvcm1HZW5lcmljRHJhZ09wZXJhdGlvbik6CisKIDIwMTctMDctMDUg
IEVtaWxpbyBDb2JvcyDDgWx2YXJleiAgPGVjb2Jvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2xlYXJFeGlzdGluZ0NhY2hlZFNoZWV0IGRvZXNuJ3QgcmVh
bGx5IGV4aXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU3ZDdiNWUxMTI2OGI5OTc3ZGY5YTk5NDBlZDlhOWM0
OTE2N2RhM2QuLjJmNmQ5ODI0ZWM0ZjIyNTM0NWRmY2UyNTBlMjVmYTczOWYzYzRkNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNy0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIERuRF0gRm9yIGNyb3NzLWFwcCBkcmFn
cywgJ2Ryb3AnIGV2ZW50IGhhbmRsZXJzIGFyZSBuZXZlciBpbnZva2VkIGlmIGRhdGFUcmFuc2Zl
ci5kcm9wRWZmZWN0IGlzIG5vdCBzZXQgd2hpbGUgZHJhZ2dpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDIxOQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzIwODMxNzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVHdlYWsgc29tZSB0ZXN0aW5nIFNQSSB0byByZXR1cm4gYSBkcm9wIG9wZXJhdGlv
biBmbGFnIGluc3RlYWQgb2Ygd2hldGhlciBvciBub3QgdGhlIGRyb3Agb3BlcmF0aW9uIHdhcyBu
b3QKKyAgICAgICAgVUlEcm9wT3BlcmF0aW9uQ2FuY2VsLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVE
YXRhSW50ZXJhY3Rpb25VcGRhdGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVy
YWN0aW9uVXBkYXRlZDpdKToKKwogMjAxNy0wNy0wNSAgTWF0dCBMZXdpcyAgPGpsZXdpczNAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTkxMjguCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGE4NWU3YWUyYmI2MWVhNmEwZGRk
NmViYmQyZWFjODJiN2MzMGM4ZDQuLjM2ZTM5YzlkZjdmNDBiYWViZmQ3OGY4N2M0NjQxNjgzMmZm
YmI1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xODQsNiAr
MTg0LDE1IEBAIHN0YXRpYyBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVu
dEZyb21EcmFnRGF0YShjb25zdCBEcmFnRGF0YSYgZHJhCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKKyNpZiAhUExBVEZPUk0oSU9TKQorCitEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpw
bGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKCkKK3sKKyAgICByZXR1cm4gRHJhZ09wZXJhdGlv
bk1vdmU7Cit9CisKKyNlbmRpZgorCiBib29sIERyYWdDb250cm9sbGVyOjpkcmFnSXNNb3ZlKEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAg
ICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiB2aXNpYmxlU2VsZWN0aW9uID0gc2VsZWN0aW9uLnNl
bGVjdGlvbigpOwpAQCAtNjY2LDggKzY3NSwxMCBAQCBzdGF0aWMgRHJhZ09wZXJhdGlvbiBkZWZh
dWx0T3BlcmF0aW9uRm9yRHJhZyhEcmFnT3BlcmF0aW9uIHNyY09wTWFzaykKICAgICAgICAgcmV0
dXJuIERyYWdPcGVyYXRpb25Db3B5OwogICAgIGlmIChzcmNPcE1hc2sgPT0gRHJhZ09wZXJhdGlv
bk5vbmUpCiAgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9uZTsKLSAgICBpZiAoc3JjT3BN
YXNrICYgRHJhZ09wZXJhdGlvbk1vdmUgfHwgc3JjT3BNYXNrICYgRHJhZ09wZXJhdGlvbkdlbmVy
aWMpCisgICAgaWYgKHNyY09wTWFzayAmIERyYWdPcGVyYXRpb25Nb3ZlKQogICAgICAgICByZXR1
cm4gRHJhZ09wZXJhdGlvbk1vdmU7CisgICAgaWYgKHNyY09wTWFzayAmIERyYWdPcGVyYXRpb25H
ZW5lcmljKQorICAgICAgICByZXR1cm4gRHJhZ0NvbnRyb2xsZXI6OnBsYXRmb3JtR2VuZXJpY0Ry
YWdPcGVyYXRpb24oKTsKICAgICBpZiAoc3JjT3BNYXNrICYgRHJhZ09wZXJhdGlvbkNvcHkpCiAg
ICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uQ29weTsKICAgICBpZiAoc3JjT3BNYXNrICYgRHJh
Z09wZXJhdGlvbkxpbmspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggMmIw
YmVjZDNhM2JlYjlmN2ZiNzAzOWZlMTllZWMyNWEyOGQ5YWQyOC4uZmI5MDFmM2YxZDVjMjY3OWYw
NDYwZTdlNzg2MDcxMjE2NzQyZjdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
aApAQCAtNTUsNiArNTUsNyBAQCBzdHJ1Y3QgRHJhZ1N0YXRlOwogICAgICAgICB+RHJhZ0NvbnRy
b2xsZXIoKTsKIAogICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPERyYWdDb250cm9sbGVy
PiBjcmVhdGUoUGFnZSYsIERyYWdDbGllbnQmKTsKKyAgICAgICAgc3RhdGljIERyYWdPcGVyYXRp
b24gcGxhdGZvcm1HZW5lcmljRHJhZ09wZXJhdGlvbigpOwogCiAgICAgICAgIERyYWdDbGllbnQm
IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KaW5kZXggYzQ2ZmM4ZjNlZjNiYmE3NmQ0OGRl
YTY0MTA2ZjFlYzBhY2VlNTM4Zi4uZTRkYjg3MDNhMzEwNWI0NTBmMDJiMTJlM2I4YTc4OGY2NjQx
M2MwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0K
QEAgLTEwNiw2ICsxMDYsMTQgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lz
dGVtRHJhZygpCiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIAorRHJhZ09wZXJhdGlv
biBEcmFnQ29udHJvbGxlcjo6cGxhdGZvcm1HZW5lcmljRHJhZ09wZXJhdGlvbigpCit7CisgICAg
Ly8gT24gaU9TLCBVSUtpdCBza2lwcyB0aGUgLXBlcmZvcm1Ecm9wIGludm9jYXRpb24gYWx0b2dl
dGhlciBpZiBNT1ZFIGlzIGZvcmJpZGRlbi4gVGh1cywKKyAgICAvLyBpZiBNT1ZFIGlzIG5vdCBh
bGxvd2VkIGluIHRoZSBkcmFnIHNvdXJjZSBvcGVyYXRpb24gbWFzaywgZmFsbCBiYWNrIHRvIG9u
bHkgb3RoZXIgYWxsb3dhYmxlCisgICAgLy8gYWN0aW9uLCBDT1BZLgorICAgIHJldHVybiBEcmFn
T3BlcmF0aW9uQ29weTsKK30KKwogdm9pZCBEcmFnQ29udHJvbGxlcjo6dXBkYXRlU3VwcG9ydGVk
VHlwZUlkZW50aWZpZXJzRm9yRHJhZ0hhbmRsaW5nTWV0aG9kKERyYWdIYW5kbGluZ01ldGhvZCBk
cmFnSGFuZGxpbmdNZXRob2QsIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkgY29uc3QKIHsKICAg
ICBWZWN0b3I8U3RyaW5nPiBzdXBwb3J0ZWRUeXBlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYzJjNWJlNmI0MTE1MTcyYmYyMDZk
NmI0YzhmMjJhNjY4MmYzMmY5ZC4uZTY0MWQzYzcwZWJlNmIyYmM5MDM2ZGM0MzY1MWQxMGE3ZTQ5
YmE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KQEAgLTU2MjAsMTIgKzU2MjAsMTIgQEAgLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJh
Y3Rpb25FbnRlcmVkOihpZClpbmZvCiAjZW5kaWYKIH0KIAotLSAoQk9PTClfc2ltdWxhdGVEYXRh
SW50ZXJhY3Rpb25VcGRhdGVkOihpZClpbmZvCistIChOU1VJbnRlZ2VyKV9zaW11bGF0ZURhdGFJ
bnRlcmFjdGlvblVwZGF0ZWQ6KGlkKWluZm8KIHsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKICAgICByZXR1cm4gW19jb250ZW50VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25VcGRh
dGVkOmluZm9dOwogI2Vsc2UKLSAgICByZXR1cm4gTk87CisgICAgcmV0dXJuIDA7CiAjZW5kaWYK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaAppbmRleCA3ZDJlYzViZDMxYTRkY2QxYzBlODEyNWRmYThhMjc2ZjkxM2U4
NGFmLi45YmU5ZjBhNGY3OTA1MWYyNjQ4MjgxMzQ4MWQ2YWZkMDY1YTcxOTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aApAQCAtMzUyLDcgKzM1Miw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVk
aWF0ZUFjdGlvblR5cGUpIHsKIC0gKE5TRGljdGlvbmFyeSAqKV9wcm9wZXJ0aWVzT2ZMYXllcldp
dGhJRDoodW5zaWduZWQgbG9uZyBsb25nKWxheWVySUQgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOwogCiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVudGVyZWQ6KGlk
KWluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwotLSAoQk9PTClfc2ltdWxh
dGVEYXRhSW50ZXJhY3Rpb25VcGRhdGVkOihpZClpbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKKy0gKE5TVUludGVnZXIpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBkYXRl
ZDooaWQpaW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9z
aW11bGF0ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246KGlkKWluZm8gV0tfQVBJX0FW
QUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rp
b25FbmRlZDooaWQpaW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2
b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblNlc3Npb25EaWRFbmQ6KGlkKXNlc3Npb24gV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggMzI3NDIz
NjhhODAwOTllYjc1NzE2NGVkODY4ODA0NWE5YzBhNzhmMi4uYjIyODAzNjY3NmZiMzA3ZDVlOTBk
NDhjNDc5YzVlOWRlN2FhNDQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zNDIsNyArMzQyLDcgQEAg
Rk9SX0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElP
Tl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9kaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJldFJl
Y3Q6KENHUmVjdClwcmV2aW91c1JlY3QgY3VycmVudFJlY3Q6KENHUmVjdClyZWN0OwogCiAtICh2
b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVudGVyZWQ6KGlkKWluZm87Ci0tIChCT09MKV9z
aW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6KGlkKWluZm87CistIChOU1VJbnRlZ2VyKV9z
aW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6KGlkKWluZm87CiAtICh2b2lkKV9zaW11bGF0
ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246KGlkKWluZm87CiAtICh2b2lkKV9zaW11
bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOihpZClpbmZvOwogLSAodm9pZClfc2ltdWxhdGVEYXRh
SW50ZXJhY3Rpb25TZXNzaW9uRGlkRW5kOihpZClzZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRl
eCAxZGU1NGZlNTRlODQyYjM0NjJjNGM2YzhkYzdmYThkODZmOTYwNTVjLi43ZDc3M2JjOWU2NzYy
MjEwOGE1MDBhODQ1ODhmYjQ4OGRhNDkwMTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDgyNSw5
ICs0ODI1LDkgQEAgLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbnRlcmVkOihpZClz
ZXNzaW9uCiAgICAgW3NlbGYgZHJvcEludGVyYWN0aW9uOl9kYXRhT3BlcmF0aW9uLmdldCgpIHNl
c3Npb25EaWRFbnRlcjpzZXNzaW9uXTsKIH0KIAotLSAoQk9PTClfc2ltdWxhdGVEYXRhSW50ZXJh
Y3Rpb25VcGRhdGVkOihpZClzZXNzaW9uCistIChOU1VJbnRlZ2VyKV9zaW11bGF0ZURhdGFJbnRl
cmFjdGlvblVwZGF0ZWQ6KGlkKXNlc3Npb24KIHsKLSAgICByZXR1cm4gW3NlbGYgZHJvcEludGVy
YWN0aW9uOl9kYXRhT3BlcmF0aW9uLmdldCgpIHNlc3Npb25EaWRVcGRhdGU6c2Vzc2lvbl0ub3Bl
cmF0aW9uICE9IFVJRHJvcE9wZXJhdGlvbkNhbmNlbDsKKyAgICByZXR1cm4gW3NlbGYgZHJvcElu
dGVyYWN0aW9uOl9kYXRhT3BlcmF0aW9uLmdldCgpIHNlc3Npb25EaWRVcGRhdGU6c2Vzc2lvbl0u
b3BlcmF0aW9uOwogfQogCiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOihp
ZClzZXNzaW9uCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMGQ0N2NhYmU2NGNjZDU1NDVhMmMyNWIwMjM2MjBlY2Q5MjZhYzE4ZC4uZWYyNTA2ODAx
ZWNmNmNhMmIyMjFmNmZkYjI3M2NlYjc1MTIyYzQwOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA3LTA2ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5E
XSBGb3IgY3Jvc3MtYXBwIGRyYWdzLCAnZHJvcCcgZXZlbnQgaGFuZGxlcnMgYXJlIG5ldmVyIGlu
dm9rZWQgaWYgZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgaXMgbm90IHNldCB3aGlsZSBkcmFnZ2lu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MjE5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjA4MzE3Nz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGx1bWJpbmcgYW5kIHN1cHBvcnQgdG8g
bW9jayB0aGUgdmFsdWUgb2YgLWFsbG93c01vdmVPcGVyYXRpb24gb24gdGhlIHNpbXVsYXRlZCBV
SURyYWdEcm9wU2Vzc2lvbiBvYmplY3RzLgorICAgICAgICBTZXR0aW5nIHRoZSBEYXRhSW50ZXJh
Y3Rpb25TaW11bGF0b3IncyBzaG91bGRBbGxvd01vdmVPcGVyYXRpb24gcHJvcGVydHkgdG8gTk8g
c2ltdWxhdGVzIGEgZHJhZyBvcGVyYXRpb24gY29taW5nCisgICAgICAgIGluIGZyb20gYW5vdGhl
ciBhcHAgb3V0LW9mLXByb2Nlc3MsIGZvciB3aGljaCBtb3ZlIG9wZXJhdGlvbnMgd29uJ3QgY2F1
c2UgYSBkcm9wIHRvIGJlIHBlcmZvcm1lZCBpbiB0aGUgZmlyc3QKKyAgICAgICAgcGxhY2UuCisK
KyAgICAgICAgQWxzbyB0d2Vha3MgMiBleGlzdGluZyB1bml0IHRlc3RzIHJlZ2FyZGluZyBmaWxl
IHVwbG9hZHMgdmlhIEphdmFTY3JpcHQgdG8gc2ltdWxhdGUgaXRlbXMgY29taW5nIGluIGZyb20g
YQorICAgICAgICBkaWZmZXJlbnQgYXBwbGljYXRpb24sIGFuZCBhZGRzIGEgbmV3IHRlc3QgdG8g
Y2hlY2sgdGhhdCBpZiBhIGRyb3AgYXJlYSBzcGVjaWZpY2FsbHkgcmVxdWVzdHMgYSBNT1ZFIG9w
ZXJhdGlvbiwKKyAgICAgICAgbm8gYWN0aW9uIGlzIHRha2VuIHdoZW4gZHJvcHBpbmcuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9maWxlLXVwbG9hZGluZy5o
dG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRl
c3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmg6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tOgorICAgICAgICAoLVtNb2Nr
RHJhZ0Ryb3BTZXNzaW9uIGluaXRXaXRoSXRlbXM6bG9jYXRpb246d2luZG93OmFsbG93TW92ZTpd
KToKKyAgICAgICAgKC1bTW9ja0RyYWdEcm9wU2Vzc2lvbiBhbGxvd3NNb3ZlT3BlcmF0aW9uXSk6
CisgICAgICAgICgtW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBpbml0V2l0aFByb3ZpZGVyczps
b2NhdGlvbjp3aW5kb3c6YWxsb3dNb3ZlOl0pOgorICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0
aW9uU2Vzc2lvbiBpbml0V2l0aFdpbmRvdzphbGxvd01vdmU6XSk6CisgICAgICAgICgtW0RhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvciBpbml0V2l0aFdlYlZpZXc6XSk6CisgICAgICAgICgtW0RhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvciBydW5Gcm9tOnRvOl0pOgorICAgICAgICAoLVtEYXRhSW50ZXJh
Y3Rpb25TaW11bGF0b3IgX2FkdmFuY2VQcm9ncmVzc10pOgorICAgICAgICAoLVtNb2NrRHJhZ0Ry
b3BTZXNzaW9uIGluaXRXaXRoSXRlbXM6bG9jYXRpb246d2luZG93Ol0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gaW5pdFdpdGhQcm92aWRlcnM6bG9jYXRp
b246d2luZG93Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0aW9uU2Vz
c2lvbiBpbml0V2l0aFdpbmRvdzpdKTogRGVsZXRlZC4KKwogMjAxNy0wNy0wNSAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBndWFy
ZCBpT1MgMTEtZGVwZW5kZW50IFVJUGFzdGVib2FyZFRlc3RzIHRvIGJlIGlPUyAxMSsgb25seQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZmlsZS11
cGxvYWRpbmcuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Zp
bGUtdXBsb2FkaW5nLmh0bWwKaW5kZXggNjc3NDk1ODcxMzBmNzlkZWMwYmNmYjNjNmJmMzAwODVl
ZTNmNDg4My4uNmY4MGQyYWM0ZmU0MTQ0YTM1NDNkY2E3Y2YyNTdkY2YyNGE0YWRmNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZmlsZS11cGxvYWRp
bmcuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9maWxl
LXVwbG9hZGluZy5odG1sCkBAIC0zMSw4ICszMSwxOCBAQAogICAgICAgICBzZW5kVXBsb2FkZWRG
aWxlVHlwZXNUb0FwcChpbnB1dC5maWxlcyk7CiAgICAgfSk7CiAKLSAgICB1cGxvYWQuYWRkRXZl
bnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSk7
Ci0gICAgdXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZXZlbnQgPT4gZXZlbnQu
cHJldmVudERlZmF1bHQoKSk7CisgICAgdXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRl
ciIsIGV2ZW50ID0+IHsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAg
aWYgKHVwbG9hZC5kcm9wRWZmZWN0KQorICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRy
b3BFZmZlY3QgPSB1cGxvYWQuZHJvcEVmZmVjdDsKKyAgICB9KTsKKworICAgIHVwbG9hZC5hZGRF
dmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIGV2ZW50ID0+IHsKKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsKKyAgICAgICAgaWYgKHVwbG9hZC5kcm9wRWZmZWN0KQorICAgICAgICAgICAg
ZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSB1cGxvYWQuZHJvcEVmZmVjdDsKKyAgICB9
KTsKKwogICAgIHVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZXZlbnQgPT4gewogICAg
ICAgICBzZW5kVXBsb2FkZWRGaWxlVHlwZXNUb0FwcChldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMp
OwogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCAzNzk4NGY5
OGMzZjhlMWMxNjBjZWQwYTBkNGEyYTJiMmU1MDE4NmFhLi41ZTIzNWFmZWUzMGZiZDBhMzg2MWYy
YmNiM2I3MmFkMzNjNjQ4OGIwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQpAQCAtNDk2LDE0ICs0OTYsMTUgQEAgVEVT
VChEYXRhSW50ZXJhY3Rpb25UZXN0cywgRXh0ZXJuYWxTb3VyY2VJbWFnZVRvRmlsZUlucHV0KQog
CiBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBFeHRlcm5hbFNvdXJjZUhUTUxUb1VwbG9hZEFy
ZWEpCiB7Ci0gICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKV0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CiAgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiZmlsZS11cGxvYWRpbmciXTsKIAot
ICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92aWRlcj4gc2ltdWxhdGVkSFRNTEl0ZW1Qcm92aWRlciA9
IGFkb3B0TlMoW1tVSUl0ZW1Qcm92aWRlciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gc2ltdWxh
dGVkSFRNTEl0ZW1Qcm92aWRlciA9IGFkb3B0TlMoW1tVSUl0ZW1Qcm92aWRlciBhbGxvY10gaW5p
dF0pOwogICAgIE5TRGF0YSAqaHRtbERhdGEgPSBbQCI8Ym9keSBjb250ZW50ZWRpdGFibGU+PC9i
b2R5PiIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOwogICAgIFtzaW11
bGF0ZWRIVE1MSXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlk
ZW50aWZpZXI6KE5TU3RyaW5nICopa1VUVHlwZUhUTUwgd2l0aERhdGE6aHRtbERhdGFdOwogCi0g
ICAgUmV0YWluUHRyPERhdGFJbnRlcmFjdGlvblNpbXVsYXRvcj4gZGF0YUludGVyYWN0aW9uU2lt
dWxhdG9yID0gYWRvcHROUyhbW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBhbGxvY10gaW5pdFdp
dGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKKyAgICBhdXRvIGRhdGFJbnRlcmFjdGlvblNpbXVs
YXRvciA9IGFkb3B0TlMoW1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRo
V2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CisgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBz
ZXRTaG91bGRBbGxvd01vdmVPcGVyYXRpb246Tk9dOwogICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11
bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIHNpbXVsYXRlZEhUTUxJdGVtUHJvdmlk
ZXIuZ2V0KCkgXV07CiAgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBydW5Gcm9tOkNHUG9p
bnRNYWtlKDIwMCwgMzAwKSB0bzpDR1BvaW50TWFrZSgxMDAsIDMwMCldOwogCkBAIC01MTEsNiAr
NTEyLDI0IEBAIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIEV4dGVybmFsU291cmNlSFRNTFRv
VXBsb2FkQXJlYSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvaHRtbCIsIG91dHB1dFZhbHVl
LlVURjhTdHJpbmcpOwogfQogCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBFeHRlcm5hbFNv
dXJjZU1vdmVPcGVyYXRpb25Ob3RBbGxvd2VkKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
MzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVk
OkAiZmlsZS11cGxvYWRpbmciXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAidXBsb2FkLmRyb3BFZmZlY3QgPSAnbW92ZSciXTsKKworICAgIGF1dG8gc2ltdWxh
dGVkSFRNTEl0ZW1Qcm92aWRlciA9IGFkb3B0TlMoW1tVSUl0ZW1Qcm92aWRlciBhbGxvY10gaW5p
dF0pOworICAgIE5TRGF0YSAqaHRtbERhdGEgPSBbQCI8Ym9keSBjb250ZW50ZWRpdGFibGU+PC9i
b2R5PiIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOworICAgIFtzaW11
bGF0ZWRIVE1MSXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlk
ZW50aWZpZXI6KE5TU3RyaW5nICopa1VUVHlwZUhUTUwgd2l0aERhdGE6aHRtbERhdGFdOworCisg
ICAgYXV0byBkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0
aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAg
IFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2V0U2hvdWxkQWxsb3dNb3ZlT3BlcmF0aW9uOk5P
XTsKKyAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVByb3ZpZGVy
czpAWyBzaW11bGF0ZWRIVE1MSXRlbVByb3ZpZGVyLmdldCgpIF1dOworICAgIFtkYXRhSW50ZXJh
Y3Rpb25TaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgyMDAsIDMwMCkgdG86Q0dQb2ludE1h
a2UoMTAwLCAzMDApXTsKKworICAgIEVYUEVDVF9XS19TVFJFUSgiIiwgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIm91dHB1dC52YWx1ZSJdKTsKK30KKwogVEVTVChEYXRh
SW50ZXJhY3Rpb25UZXN0cywgRXh0ZXJuYWxTb3VyY2VaSVBBcmNoaXZlQW5kVVJMVG9TaW5nbGVG
aWxlSW5wdXQpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKQEAgLTU5
MSwyMiArNjEwLDIzIEBAIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIEV4dGVybmFsU291cmNl
SW1hZ2VBbmRIVE1MVG9NdWx0aXBsZUZpbGVJbnB1dCkKIAogVEVTVChEYXRhSW50ZXJhY3Rpb25U
ZXN0cywgRXh0ZXJuYWxTb3VyY2VJbWFnZUFuZEhUTUxUb1VwbG9hZEFyZWEpCiB7Ci0gICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRUZXN0UGFnZU5hbWVkOkAiZmlsZS11cGxvYWRpbmciXTsKIAotICAgIFJldGFpblB0cjxV
SUl0ZW1Qcm92aWRlcj4gc2ltdWxhdGVkSW1hZ2VJdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbVUlJ
dGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHNpbXVsYXRlZEltYWdlSXRlbVBy
b3ZpZGVyID0gYWRvcHROUyhbW1VJSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7CiAgICAgTlNE
YXRhICppbWFnZURhdGEgPSBVSUltYWdlSlBFR1JlcHJlc2VudGF0aW9uKHRlc3RJY29uSW1hZ2Uo
KSwgMC41KTsKICAgICBbc2ltdWxhdGVkSW1hZ2VJdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVw
cmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjooTlNTdHJpbmcgKilrVVRUeXBlSlBFRyB3aXRo
RGF0YTppbWFnZURhdGFdOwogCi0gICAgUmV0YWluUHRyPFVJSXRlbVByb3ZpZGVyPiBmaXJzdFNp
bXVsYXRlZEhUTUxJdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbVUlJdGVtUHJvdmlkZXIgYWxsb2Nd
IGluaXRdKTsKKyAgICBhdXRvIGZpcnN0U2ltdWxhdGVkSFRNTEl0ZW1Qcm92aWRlciA9IGFkb3B0
TlMoW1tVSUl0ZW1Qcm92aWRlciBhbGxvY10gaW5pdF0pOwogICAgIE5TRGF0YSAqZmlyc3RIVE1M
RGF0YSA9IFtAIjxib2R5IGNvbnRlbnRlZGl0YWJsZT48L2JvZHk+IiBkYXRhVXNpbmdFbmNvZGlu
ZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CiAgICAgW2ZpcnN0U2ltdWxhdGVkSFRNTEl0ZW1Qcm92
aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihOU1N0cmlu
ZyAqKWtVVFR5cGVIVE1MIHdpdGhEYXRhOmZpcnN0SFRNTERhdGFdOwogCi0gICAgUmV0YWluUHRy
PFVJSXRlbVByb3ZpZGVyPiBzZWNvbmRTaW11bGF0ZWRIVE1MSXRlbVByb3ZpZGVyID0gYWRvcHRO
UyhbW1VJSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBzZWNvbmRTaW11bGF0
ZWRIVE1MSXRlbVByb3ZpZGVyID0gYWRvcHROUyhbW1VJSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0
XSk7CiAgICAgTlNEYXRhICpzZWNvbmRIVE1MRGF0YSA9IFtAIjxodG1sPjxib2R5PmhlbGxvIHdv
cmxkPC9ib2R5PjwvaHRtbD4iIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5n
XTsKICAgICBbc2Vjb25kU2ltdWxhdGVkSFRNTEl0ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXBy
ZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWtVVFR5cGVIVE1MIHdpdGhE
YXRhOnNlY29uZEhUTUxEYXRhXTsKIAotICAgIFJldGFpblB0cjxEYXRhSW50ZXJhY3Rpb25TaW11
bGF0b3I+IGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9IGFkb3B0TlMoW1tEYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CisgICAg
YXV0byBkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9u
U2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtk
YXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2V0U2hvdWxkQWxsb3dNb3ZlT3BlcmF0aW9uOk5PXTsK
ICAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVByb3ZpZGVyczpA
WyBzaW11bGF0ZWRJbWFnZUl0ZW1Qcm92aWRlci5nZXQoKSwgZmlyc3RTaW11bGF0ZWRIVE1MSXRl
bVByb3ZpZGVyLmdldCgpLCBzZWNvbmRTaW11bGF0ZWRIVE1MSXRlbVByb3ZpZGVyLmdldCgpIF1d
OwogICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgyMDAs
IDMwMCkgdG86Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaAppbmRleCBiYTAxMTE3YTU4NTBl
MTNhZDNmMDQ5NTBmYTljMDJjMmQ4ZjgyNjBlLi4xN2RlN2I5MTdiNGJmMDg1NmJhMzNjOTg5ZjIx
ZTBlY2RhOGYwNjY2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3IuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3IuaApAQCAtNzUsNiArNzUsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBEYXRhSW50ZXJhY3Rpb25QaGFzZSkgewogCiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBhbGxvd3NGb2N1c1RvU3RhcnRJbnB1dFNlc3Npb247CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBzaG91bGRFbnN1cmVVSUFwcGxpY2F0aW9uOworQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgc2hvdWxkQWxsb3dNb3ZlT3BlcmF0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMpIEJs
b2NrUHRyPEJPT0woX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKik+IHNob3dDdXN0b21BY3Rpb25T
aGVldEJsb2NrOwogQHByb3BlcnR5IChub25hdG9taWMpIEJsb2NrUHRyPE5TQXJyYXkgKihVSUl0
ZW1Qcm92aWRlciAqLCBOU0FycmF5ICosIE5TRGljdGlvbmFyeSAqKT4gY29udmVydEl0ZW1Qcm92
aWRlcnNCbG9jazsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCbG9ja1B0cjxOU0FycmF5ICooaWQg
PFVJRHJvcFNlc3Npb24+KT4gb3ZlcnJpZGVQZXJmb3JtRHJvcEJsb2NrOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCmluZGV4IDAx
YTQ1MTQ4MGExNzUwOTQ5NzA0ZjVmYTMxM2RkMTQ4MTRjZDhiZTguLmYxYTcxZDc0MGNmOWNlYmE0
MDQzZGVjY2VjY2E5ZDlhNDZhZDg0OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
aW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0KQEAgLTUyLDIzICs1MiwyNSBAQCBAcHJp
dmF0ZQogICAgIFJldGFpblB0cjxVSVdpbmRvdz4gX3dpbmRvdzsKIH0KIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBDR1BvaW50IG1vY2tMb2NhdGlvbkluV2luZG93OworQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgYWxsb3dNb3ZlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gTW9ja0RyYWdEcm9w
U2Vzc2lvbgogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJdGVtczooTlNBcnJheSA8VUlEcmFn
SXRlbSAqPiopaXRlbXMgbG9jYXRpb246KENHUG9pbnQpbG9jYXRpb25JbldpbmRvdyB3aW5kb3c6
KFVJV2luZG93ICopd2luZG93CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJdGVtczooTlNBcnJh
eSA8VUlEcmFnSXRlbSAqPiopaXRlbXMgbG9jYXRpb246KENHUG9pbnQpbG9jYXRpb25JbldpbmRv
dyB3aW5kb3c6KFVJV2luZG93ICopd2luZG93IGFsbG93TW92ZTooQk9PTClhbGxvd01vdmUKIHsK
ICAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgewogICAgICAgICBfbW9ja0l0ZW1zID0gaXRl
bXM7CiAgICAgICAgIF9tb2NrTG9jYXRpb25JbldpbmRvdyA9IGxvY2F0aW9uSW5XaW5kb3c7CiAg
ICAgICAgIF93aW5kb3cgPSB3aW5kb3c7CisgICAgICAgIF9hbGxvd01vdmUgPSBhbGxvd01vdmU7
CiAgICAgfQogICAgIHJldHVybiBzZWxmOwogfQogCiAtIChCT09MKWFsbG93c01vdmVPcGVyYXRp
b24KIHsKLSAgICByZXR1cm4gWUVTOworICAgIHJldHVybiBfYWxsb3dNb3ZlOwogfQogCiAtIChC
T09MKWlzUmVzdHJpY3RlZFRvRHJhZ2dpbmdBcHBsaWNhdGlvbgpAQCAtMTM4LDEzICsxNDAsMTMg
QEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uCiAKLS0g
KGluc3RhbmNldHlwZSlpbml0V2l0aFByb3ZpZGVyczooTlNBcnJheTxVSUl0ZW1Qcm92aWRlciAq
PiAqKXByb3ZpZGVycyBsb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbkluV2luZG93IHdpbmRvdzoo
VUlXaW5kb3cgKil3aW5kb3cKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFByb3ZpZGVyczooTlNB
cnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqKXByb3ZpZGVycyBsb2NhdGlvbjooQ0dQb2ludClsb2Nh
dGlvbkluV2luZG93IHdpbmRvdzooVUlXaW5kb3cgKil3aW5kb3cgYWxsb3dNb3ZlOihCT09MKWFs
bG93TW92ZQogewogICAgIGF1dG8gaXRlbXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRdKTsKICAgICBmb3IgKFVJSXRlbVByb3ZpZGVyICppdGVtUHJvdmlkZXIgaW4gcHJv
dmlkZXJzKQogICAgICAgICBbaXRlbXMgYWRkT2JqZWN0OltbW1VJRHJhZ0l0ZW0gYWxsb2NdIGlu
aXRXaXRoSXRlbVByb3ZpZGVyOml0ZW1Qcm92aWRlcl0gYXV0b3JlbGVhc2VdXTsKIAotICAgIHJl
dHVybiBbc3VwZXIgaW5pdFdpdGhJdGVtczppdGVtcy5nZXQoKSBsb2NhdGlvbjpsb2NhdGlvbklu
V2luZG93IHdpbmRvdzp3aW5kb3ddOworICAgIHJldHVybiBbc3VwZXIgaW5pdFdpdGhJdGVtczpp
dGVtcy5nZXQoKSBsb2NhdGlvbjpsb2NhdGlvbkluV2luZG93IHdpbmRvdzp3aW5kb3cgYWxsb3dN
b3ZlOmFsbG93TW92ZV07CiB9CiAKIC0gKFVJRHJhZ2dpbmdTZXNzaW9uICopc2Vzc2lvbgpAQCAt
MjA4LDkgKzIxMCw5IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE1vY2tEYXRhSW50ZXJhY3Rp
b25TZXNzaW9uCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdpbmRvdzooVUlXaW5kb3cgKil3
aW5kb3cKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdpbmRvdzooVUlXaW5kb3cgKil3aW5kb3cg
YWxsb3dNb3ZlOihCT09MKWFsbG93TW92ZQogewotICAgIHJldHVybiBbc3VwZXIgaW5pdFdpdGhJ
dGVtczpAWyBdIGxvY2F0aW9uOkNHUG9pbnRaZXJvIHdpbmRvdzp3aW5kb3ddOworICAgIHJldHVy
biBbc3VwZXIgaW5pdFdpdGhJdGVtczpAWyBdIGxvY2F0aW9uOkNHUG9pbnRaZXJvIHdpbmRvdzp3
aW5kb3cgYWxsb3dNb3ZlOmFsbG93TW92ZV07CiB9CiAKIC0gKE5TVUludGVnZXIpbG9jYWxPcGVy
YXRpb25NYXNrCkBAIC0yNjMsNiArMjY1LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2Vi
VmlldzooVGVzdFdLV2ViVmlldyAqKXdlYlZpZXcKICAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0
XSkgewogICAgICAgICBfd2ViVmlldyA9IHdlYlZpZXc7CiAgICAgICAgIF9zaG91bGRFbnN1cmVV
SUFwcGxpY2F0aW9uID0gTk87CisgICAgICAgIF9zaG91bGRBbGxvd01vdmVPcGVyYXRpb24gPSBZ
RVM7CiAgICAgICAgIF9pc0RvbmVXYWl0aW5nRm9ySW5wdXRTZXNzaW9uID0gdHJ1ZTsKICAgICAg
ICAgW193ZWJWaWV3IHNldFVJRGVsZWdhdGU6c2VsZl07CiAgICAgICAgIFtfd2ViVmlldyBfc2V0
SW5wdXREZWxlZ2F0ZTpzZWxmXTsKQEAgLTMzMSwxMSArMzM0LDExIEBAIC0gKHZvaWQpcnVuRnJv
bTooQ0dQb2ludClzdGFydExvY2F0aW9uIHRvOihDR1BvaW50KWVuZExvY2F0aW9uCiAgICAgX2Vu
ZExvY2F0aW9uID0gZW5kTG9jYXRpb247CiAKICAgICBpZiAoc2VsZi5leHRlcm5hbEl0ZW1Qcm92
aWRlcnMuY291bnQpIHsKLSAgICAgICAgX2RhdGFPcGVyYXRpb25TZXNzaW9uID0gYWRvcHROUyhb
W01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBhbGxvY10gaW5pdFdpdGhQcm92aWRlcnM6c2VsZi5l
eHRlcm5hbEl0ZW1Qcm92aWRlcnMgbG9jYXRpb246X3N0YXJ0TG9jYXRpb24gd2luZG93Oltfd2Vi
VmlldyB3aW5kb3ddXSk7CisgICAgICAgIF9kYXRhT3BlcmF0aW9uU2Vzc2lvbiA9IGFkb3B0TlMo
W1tNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gYWxsb2NdIGluaXRXaXRoUHJvdmlkZXJzOnNlbGYu
ZXh0ZXJuYWxJdGVtUHJvdmlkZXJzIGxvY2F0aW9uOl9zdGFydExvY2F0aW9uIHdpbmRvdzpbX3dl
YlZpZXcgd2luZG93XSBhbGxvd01vdmU6c2VsZi5zaG91bGRBbGxvd01vdmVPcGVyYXRpb25dKTsK
ICAgICAgICAgX3BoYXNlID0gRGF0YUludGVyYWN0aW9uQmVnYW47CiAgICAgICAgIFtzZWxmIF9h
ZHZhbmNlUHJvZ3Jlc3NdOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIF9kYXRhSW50ZXJhY3Rpb25T
ZXNzaW9uID0gYWRvcHROUyhbW01vY2tEYXRhSW50ZXJhY3Rpb25TZXNzaW9uIGFsbG9jXSBpbml0
V2l0aFdpbmRvdzpbX3dlYlZpZXcgd2luZG93XV0pOworICAgICAgICBfZGF0YUludGVyYWN0aW9u
U2Vzc2lvbiA9IGFkb3B0TlMoW1tNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiBhbGxvY10gaW5p
dFdpdGhXaW5kb3c6W193ZWJWaWV3IHdpbmRvd10gYWxsb3dNb3ZlOnNlbGYuc2hvdWxkQWxsb3dN
b3ZlT3BlcmF0aW9uXSk7CiAgICAgICAgIFtfZGF0YUludGVyYWN0aW9uU2Vzc2lvbiBzZXRNb2Nr
TG9jYXRpb25JbldpbmRvdzpfc3RhcnRMb2NhdGlvbl07CiAgICAgICAgIFtfd2ViVmlldyBfc2lt
dWxhdGVQcmVwYXJlRm9yRGF0YUludGVyYWN0aW9uU2Vzc2lvbjpfZGF0YUludGVyYWN0aW9uU2Vz
c2lvbi5nZXQoKSBjb21wbGV0aW9uOl4oKSB7CiAgICAgICAgICAgICBEYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IgKndlYWtTZWxmID0gc3Ryb25nU2VsZi5nZXQoKTsKQEAgLTQwNCw3ICs0MDcsNyBA
QCAtICh2b2lkKV9hZHZhbmNlUHJvZ3Jlc3MKICAgICAgICAgZm9yIChVSURyYWdJdGVtICppdGVt
IGluIGl0ZW1zKQogICAgICAgICAgICAgW2l0ZW1Qcm92aWRlcnMgYWRkT2JqZWN0Oml0ZW0uaXRl
bVByb3ZpZGVyXTsKIAotICAgICAgICBfZGF0YU9wZXJhdGlvblNlc3Npb24gPSBhZG9wdE5TKFtb
TW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGFsbG9jXSBpbml0V2l0aFByb3ZpZGVyczppdGVtUHJv
dmlkZXJzIGxvY2F0aW9uOnNlbGYuX2N1cnJlbnRMb2NhdGlvbiB3aW5kb3c6W193ZWJWaWV3IHdp
bmRvd11dKTsKKyAgICAgICAgX2RhdGFPcGVyYXRpb25TZXNzaW9uID0gYWRvcHROUyhbW01vY2tE
YXRhT3BlcmF0aW9uU2Vzc2lvbiBhbGxvY10gaW5pdFdpdGhQcm92aWRlcnM6aXRlbVByb3ZpZGVy
cyBsb2NhdGlvbjpzZWxmLl9jdXJyZW50TG9jYXRpb24gd2luZG93Oltfd2ViVmlldyB3aW5kb3dd
IGFsbG93TW92ZTpzZWxmLnNob3VsZEFsbG93TW92ZU9wZXJhdGlvbl0pOwogICAgICAgICBbX2Rh
dGFJbnRlcmFjdGlvblNlc3Npb24gc2V0SXRlbXM6aXRlbXNdOwogICAgICAgICBfc291cmNlSXRl
bVByb3ZpZGVycyA9IGl0ZW1Qcm92aWRlcnM7CiAgICAgICAgIGlmIChzZWxmLnNob3dDdXN0b21B
Y3Rpb25TaGVldEJsb2NrKSB7CkBAIC00MjgsOSArNDMxLDExIEBAIC0gKHZvaWQpX2FkdmFuY2VQ
cm9ncmVzcwogICAgICAgICBbX3dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJl
ZDpfZGF0YU9wZXJhdGlvblNlc3Npb24uZ2V0KCldOwogICAgICAgICBfcGhhc2UgPSBEYXRhSW50
ZXJhY3Rpb25FbnRlcmVkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIERhdGFJbnRlcmFjdGlv
bkVudGVyZWQ6Ci0gICAgICAgIF9zaG91bGRQZXJmb3JtT3BlcmF0aW9uID0gW193ZWJWaWV3IF9z
aW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6X2RhdGFPcGVyYXRpb25TZXNzaW9uLmdldCgp
XTsKKyAgICBjYXNlIERhdGFJbnRlcmFjdGlvbkVudGVyZWQ6IHsKKyAgICAgICAgYXV0byBvcGVy
YXRpb24gPSBzdGF0aWNfY2FzdDxVSURyb3BPcGVyYXRpb24+KFtfd2ViVmlldyBfc2ltdWxhdGVE
YXRhSW50ZXJhY3Rpb25VcGRhdGVkOl9kYXRhT3BlcmF0aW9uU2Vzc2lvbi5nZXQoKV0pOworICAg
ICAgICBfc2hvdWxkUGVyZm9ybU9wZXJhdGlvbiA9IG9wZXJhdGlvbiA9PSBVSURyb3BPcGVyYXRp
b25Db3B5IHx8IChbX2RhdGFPcGVyYXRpb25TZXNzaW9uIGFsbG93c01vdmVPcGVyYXRpb25dICYm
IG9wZXJhdGlvbiAhPSBVSURyb3BPcGVyYXRpb25DYW5jZWwpOwogICAgICAgICBicmVhazsKKyAg
ICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQo=
</data>
<flag name="review"
          id="335626"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314878</attachid>
            <date>2017-07-07 14:20:00 -0700</date>
            <delta_ts>2017-07-07 14:59:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-174219-20170707142000.patch</filename>
            <type>text/plain</type>
            <size>23998</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg3MDU1MzIxOTY5MjA4
Mzk3YjdkMzMwMTlmYTJmZWE2ODgwNjJkNi4uMTE3M2U3NjNlMTk5MDk3NDk2NTM3MGMxNzU2YTA1
ZjczMWM0ZWU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA3LTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBG
b3IgY3Jvc3MtYXBwIGRyYWdzLCAnZHJvcCcgZXZlbnQgaGFuZGxlcnMgYXJlIG5ldmVyIGludm9r
ZWQgaWYgZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgaXMgbm90IHNldCB3aGlsZSBkcmFnZ2luZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MjE5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjA4MzE3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBS
eW9zdWtlIE5pd2EuCisKKyAgICAgICAgQ3VycmVudGx5LCBpbiBEcmFnQ29udHJvbGxlci5jcHAs
IGRlZmF1bHRPcGVyYXRpb25Gb3JEcmFnIG1hcHMgYSBkcmFnIHNvdXJjZSBvcGVyYXRpb24gbWFz
ayBvZgorICAgICAgICBEcmFnT3BlcmF0aW9uR2VuZXJpYyB0byBEcmFnT3BlcmF0aW9uTW92ZSBh
Y3Jvc3MgYWxsIHBsYXRmb3Jtcy4gSG93ZXZlciwgb24gaU9TLCB3aGVyZSBjcm9zcy1hcHAgZHJh
ZyBtb3ZlcyBkbworICAgICAgICBub3QgdHJpZ2dlciBhIGRyb3AsIHRoaXMgbWVhbnMgZHJvcCBo
YW5kbGVycyB3b24ndCBmaXJlIHVubGVzcyB0aGUgZHJvcEVmZmVjdCBpcyBleHBsaWNpdGx5IHNl
dCB0byBjb3B5LgorCisgICAgICAgIFRvIGZpeCB0aGlzLCB3ZSBpbnRyb2R1Y2UgRHJhZ0NvbnRy
b2xsZXI6OnBsYXRmb3JtR2VuZXJpY0RyYWdPcGVyYXRpb24oKSwgd2hpY2ggcmV0dXJucyBEcmFn
T3BlcmF0aW9uQ29weSBvbiBpT1MKKyAgICAgICAgYW5kIERyYWdPcGVyYXRpb25Nb3ZlICh0aGUg
ZXhpc3RpbmcgYmVoYXZpb3IpIGVsc2V3aGVyZS4gZGVmYXVsdE9wZXJhdGlvbkZvckRyYWcgdGhl
biBtYXBzIGEgZHJhZyBzb3VyY2UKKyAgICAgICAgb3BlcmF0aW9uIG1hc2sgb2YgRHJhZ09wZXJh
dGlvbkdlbmVyaWMgdG8gcGxhdGZvcm1HZW5lcmljRHJhZ09wZXJhdGlvbigpLgorCisgICAgICAg
IFRlc3RzOiAgRGF0YUludGVyYWN0aW9uVGVzdHMuRXh0ZXJuYWxTb3VyY2VIVE1MVG9VcGxvYWRB
cmVhCisgICAgICAgICAgICAgICAgRGF0YUludGVyYWN0aW9uVGVzdHMuRXh0ZXJuYWxTb3VyY2VJ
bWFnZUFuZEhUTUxUb1VwbG9hZEFyZWEKKyAgICAgICAgICAgICAgICBEYXRhSW50ZXJhY3Rpb25U
ZXN0cy5FeHRlcm5hbFNvdXJjZU1vdmVPcGVyYXRpb25Ob3RBbGxvd2VkCisKKyAgICAgICAgKiBw
YWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
OjpwbGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1
bHRPcGVyYXRpb25Gb3JEcmFnKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmg6Cisg
ICAgICAgICogcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ29udHJvbGxlcjo6cGxhdGZvcm1HZW5lcmljRHJhZ09wZXJhdGlvbik6CisKIDIwMTct
MDctMDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQVZQbGF5
ZXIgY2FuIGNvbnRpbnVlIHRvIGJlIGFjdGl2ZSBhZnRlciByZWxlYXNlZCBieSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYwMGFmZTlmOGM1NTY3ODE5
NDNhYWM5MDA4ZDFlOWQ3ZWY1NGE3NzIuLjBiOTM3MmVmNTJmOWUwZDAwMGNlNzJlN2E2NWFkOTg2
YjkzMmRkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNy0wNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIERuRF0gRm9y
IGNyb3NzLWFwcCBkcmFncywgJ2Ryb3AnIGV2ZW50IGhhbmRsZXJzIGFyZSBuZXZlciBpbnZva2Vk
IGlmIGRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0IGlzIG5vdCBzZXQgd2hpbGUgZHJhZ2dpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDIxOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzIwODMxNzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlv
c3VrZSBOaXdhLgorCisgICAgICAgIFR3ZWFrIHNvbWUgdGVzdGluZyBTUEkgdG8gcmV0dXJuIGEg
ZHJvcCBvcGVyYXRpb24gZmxhZyBpbnN0ZWFkIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBkcm9wIG9w
ZXJhdGlvbiB3YXMgbm90CisgICAgICAgIFVJRHJvcE9wZXJhdGlvbkNhbmNlbC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaW11
bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6XSk6CisKIDIwMTctMDctMDcgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyMTkyMzgsIHIyMTkyMzksIGFuZCByMjE5MjQxLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcAppbmRleCBkNzNkMzg0YzYxMzM2NTZlNzgxNWM5NzQ5MWJiZTM4MDM4
ZGQ1NDAzLi4xMWIwMzZjYzdhNjcwMDNmNjU3Y2RkOTJmYWU0M2Y3Y2JjYWIzYzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTg0LDYgKzE4NCwxNSBAQCBzdGF0
aWMgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEo
Y29uc3QgRHJhZ0RhdGEmIGRyYQogICAgIHJldHVybiBudWxscHRyOwogfQogCisjaWYgIVBMQVRG
T1JNKElPUykKKworRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6cGxhdGZvcm1HZW5lcmlj
RHJhZ09wZXJhdGlvbigpCit7CisgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Nb3ZlOworfQorCisj
ZW5kaWYKKwogYm9vbCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0lzTW92ZShGcmFtZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAgICAgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgdmlzaWJsZVNlbGVjdGlvbiA9IHNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKQEAg
LTY2Niw4ICs2NzUsMTAgQEAgc3RhdGljIERyYWdPcGVyYXRpb24gZGVmYXVsdE9wZXJhdGlvbkZv
ckRyYWcoRHJhZ09wZXJhdGlvbiBzcmNPcE1hc2spCiAgICAgICAgIHJldHVybiBEcmFnT3BlcmF0
aW9uQ29weTsKICAgICBpZiAoc3JjT3BNYXNrID09IERyYWdPcGVyYXRpb25Ob25lKQogICAgICAg
ICByZXR1cm4gRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgaWYgKHNyY09wTWFzayAmIERyYWdPcGVy
YXRpb25Nb3ZlIHx8IHNyY09wTWFzayAmIERyYWdPcGVyYXRpb25HZW5lcmljKQorICAgIGlmIChz
cmNPcE1hc2sgJiBEcmFnT3BlcmF0aW9uTW92ZSkKICAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRp
b25Nb3ZlOworICAgIGlmIChzcmNPcE1hc2sgJiBEcmFnT3BlcmF0aW9uR2VuZXJpYykKKyAgICAg
ICAgcmV0dXJuIERyYWdDb250cm9sbGVyOjpwbGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKCk7
CiAgICAgaWYgKHNyY09wTWFzayAmIERyYWdPcGVyYXRpb25Db3B5KQogICAgICAgICByZXR1cm4g
RHJhZ09wZXJhdGlvbkNvcHk7CiAgICAgaWYgKHNyY09wTWFzayAmIERyYWdPcGVyYXRpb25MaW5r
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IDJiMGJlY2QzYTNiZWI5Zjdm
YjcwMzlmZTE5ZWVjMjVhMjhkOWFkMjguLmZiOTAxZjNmMWQ1YzI2NzlmMDQ2MGU3ZTc4NjA3MTIx
Njc0MmY3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKQEAgLTU1LDYgKzU1
LDcgQEAgc3RydWN0IERyYWdTdGF0ZTsKICAgICAgICAgfkRyYWdDb250cm9sbGVyKCk7CiAKICAg
ICAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxEcmFnQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2Um
LCBEcmFnQ2xpZW50Jik7CisgICAgICAgIHN0YXRpYyBEcmFnT3BlcmF0aW9uIHBsYXRmb3JtR2Vu
ZXJpY0RyYWdPcGVyYXRpb24oKTsKIAogICAgICAgICBEcmFnQ2xpZW50JiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX2NsaWVudDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9EcmFnQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdD
b250cm9sbGVyTWFjLm1tCmluZGV4IGM0NmZjOGYzZWYzYmJhNzZkNDhkZWE2NDEwNmYxZWMwYWNl
ZTUzOGYuLmFkZDhiNzA2NjgwMDRjNzllZjA4YzY0NzY3ZmZiMGQ4MzcwZTkwYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCkBAIC0xMDYsNiArMTA2
LDEzIEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNsZWFudXBBZnRlclN5c3RlbURyYWcoKQogCiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAKK0RyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xs
ZXI6OnBsYXRmb3JtR2VuZXJpY0RyYWdPcGVyYXRpb24oKQoreworICAgIC8vIE9uIGlPUywgVUlL
aXQgc2tpcHMgdGhlIC1wZXJmb3JtRHJvcCBpbnZvY2F0aW9uIGFsdG9nZXRoZXIgaWYgTU9WRSBp
cyBmb3JiaWRkZW4uCisgICAgLy8gVGh1cywgaWYgTU9WRSBpcyBub3QgYWxsb3dlZCBpbiB0aGUg
ZHJhZyBzb3VyY2Ugb3BlcmF0aW9uIG1hc2ssIGZhbGwgYmFjayB0byBvbmx5IG90aGVyIGFsbG93
YWJsZSBhY3Rpb24sIENPUFkuCisgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Db3B5OworfQorCiB2
b2lkIERyYWdDb250cm9sbGVyOjp1cGRhdGVTdXBwb3J0ZWRUeXBlSWRlbnRpZmllcnNGb3JEcmFn
SGFuZGxpbmdNZXRob2QoRHJhZ0hhbmRsaW5nTWV0aG9kIGRyYWdIYW5kbGluZ01ldGhvZCwgY29u
c3QgRHJhZ0RhdGEmIGRyYWdEYXRhKSBjb25zdAogewogICAgIFZlY3RvcjxTdHJpbmc+IHN1cHBv
cnRlZFR5cGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCBjOWFjYWY5NjhkMzYyYzBiNDY0ZDlhNmY0NjRhNjNiZjMwNWVhMzc2Li4x
OGE0M2E4YTAwMzVmZTI3MmYyMmQ4NTQ3MGU5M2UzZmExMDUwN2E0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTYyOCwxMiArNTYy
OCwxMiBAQCAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVudGVyZWQ6KGlkKWluZm8K
ICNlbmRpZgogfQogCi0tIChCT09MKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6KGlk
KWluZm8KKy0gKE5TVUludGVnZXIpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDooaWQp
aW5mbwogewogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHJldHVybiBbX2NvbnRl
bnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6aW5mb107CiAjZWxzZQotICAg
IHJldHVybiBOTzsKKyAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDdk
MmVjNWJkMzFhNGRjZDFjMGU4MTI1ZGZhOGEyNzZmOTEzZTg0YWYuLjliZTlmMGE0Zjc5MDUxZjI2
NDgyODEzNDgxZDZhZmQwNjVhNzE5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zNTIsNyArMzUyLDcgQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogLSAo
TlNEaWN0aW9uYXJ5ICopX3Byb3BlcnRpZXNPZkxheWVyV2l0aElEOih1bnNpZ25lZCBsb25nIGxv
bmcpbGF5ZXJJRCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQp
X3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJlZDooaWQpaW5mbyBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7Ci0tIChCT09MKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0
ZWQ6KGlkKWluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNVSW50
ZWdlcilfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25VcGRhdGVkOihpZClpbmZvIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9u
UGVyZm9ybU9wZXJhdGlvbjooaWQpaW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJB
KSk7CiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOihpZClpbmZvIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVy
YWN0aW9uU2Vzc2lvbkRpZEVuZDooaWQpc2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19J
T1NfVEJBKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCAzMjc0MjM2OGE4MDA5OWViNzU3MTY0ZWQ4Njg4
MDQ1YTljMGE3OGYyLi5iMjI4MDM2Njc2ZmIzMDdkNWU5MGQ0OGM0NzljNWU5ZGU3YWE0NDljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKQEAgLTM0Miw3ICszNDIsNyBAQCBGT1JfRUFDSF9XS0NPTlRFTlRWSUVX
X0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZv
aWQpX2RpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdDooQ0dSZWN0KXByZXZpb3VzUmVj
dCBjdXJyZW50UmVjdDooQ0dSZWN0KXJlY3Q7CiAKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVy
YWN0aW9uRW50ZXJlZDooaWQpaW5mbzsKLS0gKEJPT0wpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9u
VXBkYXRlZDooaWQpaW5mbzsKKy0gKE5TVUludGVnZXIpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9u
VXBkYXRlZDooaWQpaW5mbzsKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uUGVyZm9y
bU9wZXJhdGlvbjooaWQpaW5mbzsKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW5k
ZWQ6KGlkKWluZm87CiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblNlc3Npb25EaWRF
bmQ6KGlkKXNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDdkOTU4MWM4MTJlY2NmZjVhMmUw
ZTZlZGQzMjFlNmU0Y2I1ZDQ0NjIuLmU1MzQ2NWVkMmZmZTZkZDNmM2ZhMTFiMjljZWJhZTZiOTRi
OGI1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00ODU4LDkgKzQ4NTgsOSBAQCAtICh2b2lkKV9z
aW11bGF0ZURhdGFJbnRlcmFjdGlvbkVudGVyZWQ6KGlkKXNlc3Npb24KICAgICBbc2VsZiBkcm9w
SW50ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24uZ2V0KCkgc2Vzc2lvbkRpZEVudGVyOnNlc3Npb25d
OwogfQogCi0tIChCT09MKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6KGlkKXNlc3Np
b24KKy0gKE5TVUludGVnZXIpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDooaWQpc2Vz
c2lvbgogewotICAgIHJldHVybiBbc2VsZiBkcm9wSW50ZXJhY3Rpb246X2RhdGFPcGVyYXRpb24u
Z2V0KCkgc2Vzc2lvbkRpZFVwZGF0ZTpzZXNzaW9uXS5vcGVyYXRpb24gIT0gVUlEcm9wT3BlcmF0
aW9uQ2FuY2VsOworICAgIHJldHVybiBbc2VsZiBkcm9wSW50ZXJhY3Rpb246X2RhdGFPcGVyYXRp
b24uZ2V0KCkgc2Vzc2lvbkRpZFVwZGF0ZTpzZXNzaW9uXS5vcGVyYXRpb247CiB9CiAKIC0gKHZv
aWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW5kZWQ6KGlkKXNlc3Npb24KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMTc1NGUxZDZiNGFmYjk3
YzdhYWU0ODFmNWM5MzZjMjM1MDVlZjI1Li44M2YxMjQ0MjI1MTIyNGIwZWNhMDA5MGQ2NmVkMzY3
MGQwNTRkY2M0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDctMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBEbkRdIEZvciBjcm9zcy1hcHAgZHJhZ3Ms
ICdkcm9wJyBldmVudCBoYW5kbGVycyBhcmUgbmV2ZXIgaW52b2tlZCBpZiBkYXRhVHJhbnNmZXIu
ZHJvcEVmZmVjdCBpcyBub3Qgc2V0IHdoaWxlIGRyYWdnaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQyMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMyMDgzMTc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAg
ICAgICBBZGQgcGx1bWJpbmcgYW5kIHN1cHBvcnQgdG8gbW9jayB0aGUgdmFsdWUgb2YgLWFsbG93
c01vdmVPcGVyYXRpb24gb24gdGhlIHNpbXVsYXRlZCBVSURyYWdEcm9wU2Vzc2lvbiBvYmplY3Rz
LgorICAgICAgICBTZXR0aW5nIHRoZSBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IncyBzaG91bGRB
bGxvd01vdmVPcGVyYXRpb24gcHJvcGVydHkgdG8gTk8gc2ltdWxhdGVzIGEgZHJhZyBvcGVyYXRp
b24gY29taW5nCisgICAgICAgIGluIGZyb20gYW5vdGhlciBhcHAgb3V0LW9mLXByb2Nlc3MsIGZv
ciB3aGljaCBtb3ZlIG9wZXJhdGlvbnMgd29uJ3QgY2F1c2UgYSBkcm9wIHRvIGJlIHBlcmZvcm1l
ZCBpbiB0aGUgZmlyc3QKKyAgICAgICAgcGxhY2UuCisKKyAgICAgICAgQWxzbyB0d2Vha3MgMiBl
eGlzdGluZyB1bml0IHRlc3RzIHJlZ2FyZGluZyBmaWxlIHVwbG9hZHMgdmlhIEphdmFTY3JpcHQg
dG8gc2ltdWxhdGUgaXRlbXMgY29taW5nIGluIGZyb20gYQorICAgICAgICBkaWZmZXJlbnQgYXBw
bGljYXRpb24sIGFuZCBhZGRzIGEgbmV3IHRlc3QgdG8gY2hlY2sgdGhhdCBpZiBhIGRyb3AgYXJl
YSBzcGVjaWZpY2FsbHkgcmVxdWVzdHMgYSBNT1ZFIG9wZXJhdGlvbiwKKyAgICAgICAgbm8gYWN0
aW9uIGlzIHRha2VuIHdoZW4gZHJvcHBpbmcuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9maWxlLXVwbG9hZGluZy5odG1sOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0
aW9uU2ltdWxhdG9yLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0
aW9uU2ltdWxhdG9yLm1tOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9uIGluaXRXaXRo
SXRlbXM6bG9jYXRpb246d2luZG93OmFsbG93TW92ZTpdKToKKyAgICAgICAgKC1bTW9ja0RyYWdE
cm9wU2Vzc2lvbiBhbGxvd3NNb3ZlT3BlcmF0aW9uXSk6CisgICAgICAgICgtW01vY2tEYXRhT3Bl
cmF0aW9uU2Vzc2lvbiBpbml0V2l0aFByb3ZpZGVyczpsb2NhdGlvbjp3aW5kb3c6YWxsb3dNb3Zl
Ol0pOgorICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiBpbml0V2l0aFdpbmRv
dzphbGxvd01vdmU6XSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBpbml0
V2l0aFdlYlZpZXc6XSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBydW5G
cm9tOnRvOl0pOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgX2FkdmFuY2VQ
cm9ncmVzc10pOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9uIGluaXRXaXRoSXRlbXM6
bG9jYXRpb246d2luZG93Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlv
blNlc3Npb24gaW5pdFdpdGhQcm92aWRlcnM6bG9jYXRpb246d2luZG93Ol0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiBpbml0V2l0aFdpbmRvdzpdKTog
RGVsZXRlZC4KKwogMjAxNy0wNy0wNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxOTIzOCwgcjIxOTIz
OSwgYW5kIHIyMTkyNDEuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9maWxlLXVwbG9hZGluZy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvZmlsZS11cGxvYWRpbmcuaHRtbAppbmRleCA2Nzc0OTU4NzEzMGY3OWRl
YzBiY2ZiM2M2YmYzMDA4NWVlM2Y0ODgzLi42ZjgwZDJhYzRmZTQxNDRhMzU0M2RjYTdjZjI1N2Rj
ZjI0YTRhZGY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9maWxlLXVwbG9hZGluZy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2ZpbGUtdXBsb2FkaW5nLmh0bWwKQEAgLTMxLDggKzMxLDE4IEBACiAgICAg
ICAgIHNlbmRVcGxvYWRlZEZpbGVUeXBlc1RvQXBwKGlucHV0LmZpbGVzKTsKICAgICB9KTsKIAot
ICAgIHVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBldmVudCA9PiBldmVudC5w
cmV2ZW50RGVmYXVsdCgpKTsKLSAgICB1cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIi
LCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTsKKyAgICB1cGxvYWQuYWRkRXZlbnRM
aXN0ZW5lcigiZHJhZ2VudGVyIiwgZXZlbnQgPT4geworICAgICAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOworICAgICAgICBpZiAodXBsb2FkLmRyb3BFZmZlY3QpCisgICAgICAgICAgICBldmVu
dC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9IHVwbG9hZC5kcm9wRWZmZWN0OworICAgIH0pOwor
CisgICAgdXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZXZlbnQgPT4geworICAg
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBpZiAodXBsb2FkLmRyb3BFZmZl
Y3QpCisgICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9IHVwbG9hZC5k
cm9wRWZmZWN0OworICAgIH0pOworCiAgICAgdXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImRyb3Ai
LCBldmVudCA9PiB7CiAgICAgICAgIHNlbmRVcGxvYWRlZEZpbGVUeXBlc1RvQXBwKGV2ZW50LmRh
dGFUcmFuc2Zlci5maWxlcyk7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3Rz
Lm1tCmluZGV4IGMxODM3MmNkNTljZGE0MmMwMjIyZDZiMjM0Njc1NDE5Y2Y5ZDcwODEuLmFhZmEy
MzNjMmEyZDIyYjQ3OTUzNDhmNzYyYjk0YmNlOTJiNTVkNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCkBAIC00OTYs
MTQgKzQ5NiwxNSBAQCBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBFeHRlcm5hbFNvdXJjZUlt
YWdlVG9GaWxlSW5wdXQpCiAKIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIEV4dGVybmFsU291
cmNlSFRNTFRvVXBsb2FkQXJlYSkKIHsKLSAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUw
MCldKTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxl
LXVwbG9hZGluZyJdOwogCi0gICAgUmV0YWluUHRyPFVJSXRlbVByb3ZpZGVyPiBzaW11bGF0ZWRI
VE1MSXRlbVByb3ZpZGVyID0gYWRvcHROUyhbW1VJSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBzaW11bGF0ZWRIVE1MSXRlbVByb3ZpZGVyID0gYWRvcHROUyhbW1VJSXRlbVBy
b3ZpZGVyIGFsbG9jXSBpbml0XSk7CiAgICAgTlNEYXRhICpodG1sRGF0YSA9IFtAIjxib2R5IGNv
bnRlbnRlZGl0YWJsZT48L2JvZHk+IiBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNv
ZGluZ107CiAgICAgW3NpbXVsYXRlZEhUTUxJdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVz
ZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjooTlNTdHJpbmcgKilrVVRUeXBlSFRNTCB3aXRoRGF0
YTpodG1sRGF0YV07CiAKLSAgICBSZXRhaW5QdHI8RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yPiBk
YXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxh
dG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIGF1dG8gZGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yID0gYWRvcHROUyhbW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRv
ciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKKyAgICBbZGF0YUludGVy
YWN0aW9uU2ltdWxhdG9yIHNldFNob3VsZEFsbG93TW92ZU9wZXJhdGlvbjpOT107CiAgICAgW2Rh
dGFJbnRlcmFjdGlvblNpbXVsYXRvciBzZXRFeHRlcm5hbEl0ZW1Qcm92aWRlcnM6QFsgc2ltdWxh
dGVkSFRNTEl0ZW1Qcm92aWRlci5nZXQoKSBdXTsKICAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxh
dG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMjAwLCAzMDApIHRvOkNHUG9pbnRNYWtlKDEwMCwgMzAw
KV07CiAKQEAgLTUxMSw2ICs1MTIsMjQgQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgRXh0
ZXJuYWxTb3VyY2VIVE1MVG9VcGxvYWRBcmVhKQogICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC9o
dG1sIiwgb3V0cHV0VmFsdWUuVVRGOFN0cmluZyk7CiB9CiAKK1RFU1QoRGF0YUludGVyYWN0aW9u
VGVzdHMsIEV4dGVybmFsU291cmNlTW92ZU9wZXJhdGlvbk5vdEFsbG93ZWQpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxlLXVwbG9hZGluZyJdOworICAgIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ1cGxvYWQuZHJvcEVmZmVjdCA9ICdtb3ZlJyJdOwor
CisgICAgYXV0byBzaW11bGF0ZWRIVE1MSXRlbVByb3ZpZGVyID0gYWRvcHROUyhbW1VJSXRlbVBy
b3ZpZGVyIGFsbG9jXSBpbml0XSk7CisgICAgTlNEYXRhICpodG1sRGF0YSA9IFtAIjxib2R5IGNv
bnRlbnRlZGl0YWJsZT48L2JvZHk+IiBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNv
ZGluZ107CisgICAgW3NpbXVsYXRlZEhUTUxJdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVz
ZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjooTlNTdHJpbmcgKilrVVRUeXBlSFRNTCB3aXRoRGF0
YTpodG1sRGF0YV07CisKKyAgICBhdXRvIGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9IGFkb3B0
TlMoW1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJW
aWV3LmdldCgpXSk7CisgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBzZXRTaG91bGRBbGxv
d01vdmVPcGVyYXRpb246Tk9dOworICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2V0RXh0
ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIHNpbXVsYXRlZEhUTUxJdGVtUHJvdmlkZXIuZ2V0KCkgXV07
CisgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDIwMCwg
MzAwKSB0bzpDR1BvaW50TWFrZSgxMDAsIDMwMCldOworCisgICAgRVhQRUNUX1dLX1NUUkVRKCIi
LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAib3V0cHV0LnZhbHVlIl0p
OworfQorCiBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBFeHRlcm5hbFNvdXJjZVpJUEFyY2hp
dmVBbmRVUkxUb1NpbmdsZUZpbGVJbnB1dCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMy
MCwgNTAwKV0pOwpAQCAtNTkxLDIyICs2MTAsMjMgQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0
cywgRXh0ZXJuYWxTb3VyY2VJbWFnZUFuZEhUTUxUb011bHRpcGxlRmlsZUlucHV0KQogCiBURVNU
KERhdGFJbnRlcmFjdGlvblRlc3RzLCBFeHRlcm5hbFNvdXJjZUltYWdlQW5kSFRNTFRvVXBsb2Fk
QXJlYSkKIHsKLSAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIw
LCA1MDApXSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxlLXVwbG9hZGluZyJdOwog
Ci0gICAgUmV0YWluUHRyPFVJSXRlbVByb3ZpZGVyPiBzaW11bGF0ZWRJbWFnZUl0ZW1Qcm92aWRl
ciA9IGFkb3B0TlMoW1tVSUl0ZW1Qcm92aWRlciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gc2lt
dWxhdGVkSW1hZ2VJdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbVUlJdGVtUHJvdmlkZXIgYWxsb2Nd
IGluaXRdKTsKICAgICBOU0RhdGEgKmltYWdlRGF0YSA9IFVJSW1hZ2VKUEVHUmVwcmVzZW50YXRp
b24odGVzdEljb25JbWFnZSgpLCAwLjUpOwogICAgIFtzaW11bGF0ZWRJbWFnZUl0ZW1Qcm92aWRl
ciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihOU1N0cmluZyAq
KWtVVFR5cGVKUEVHIHdpdGhEYXRhOmltYWdlRGF0YV07CiAKLSAgICBSZXRhaW5QdHI8VUlJdGVt
UHJvdmlkZXI+IGZpcnN0U2ltdWxhdGVkSFRNTEl0ZW1Qcm92aWRlciA9IGFkb3B0TlMoW1tVSUl0
ZW1Qcm92aWRlciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZmlyc3RTaW11bGF0ZWRIVE1MSXRl
bVByb3ZpZGVyID0gYWRvcHROUyhbW1VJSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7CiAgICAg
TlNEYXRhICpmaXJzdEhUTUxEYXRhID0gW0AiPGJvZHkgY29udGVudGVkaXRhYmxlPjwvYm9keT4i
IGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKICAgICBbZmlyc3RTaW11
bGF0ZWRIVE1MSXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlk
ZW50aWZpZXI6KE5TU3RyaW5nICopa1VUVHlwZUhUTUwgd2l0aERhdGE6Zmlyc3RIVE1MRGF0YV07
CiAKLSAgICBSZXRhaW5QdHI8VUlJdGVtUHJvdmlkZXI+IHNlY29uZFNpbXVsYXRlZEhUTUxJdGVt
UHJvdmlkZXIgPSBhZG9wdE5TKFtbVUlJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKKyAgICBh
dXRvIHNlY29uZFNpbXVsYXRlZEhUTUxJdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbVUlJdGVtUHJv
dmlkZXIgYWxsb2NdIGluaXRdKTsKICAgICBOU0RhdGEgKnNlY29uZEhUTUxEYXRhID0gW0AiPGh0
bWw+PGJvZHk+aGVsbG8gd29ybGQ8L2JvZHk+PC9odG1sPiIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNV
VEY4U3RyaW5nRW5jb2RpbmddOwogICAgIFtzZWNvbmRTaW11bGF0ZWRIVE1MSXRlbVByb3ZpZGVy
IHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICop
a1VUVHlwZUhUTUwgd2l0aERhdGE6c2Vjb25kSFRNTERhdGFdOwogCi0gICAgUmV0YWluUHRyPERh
dGFJbnRlcmFjdGlvblNpbXVsYXRvcj4gZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yID0gYWRvcHRO
UyhbW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZp
ZXcuZ2V0KCldKTsKKyAgICBhdXRvIGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9IGFkb3B0TlMo
W1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3
LmdldCgpXSk7CisgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBzZXRTaG91bGRBbGxvd01v
dmVPcGVyYXRpb246Tk9dOwogICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2V0RXh0ZXJu
YWxJdGVtUHJvdmlkZXJzOkBbIHNpbXVsYXRlZEltYWdlSXRlbVByb3ZpZGVyLmdldCgpLCBmaXJz
dFNpbXVsYXRlZEhUTUxJdGVtUHJvdmlkZXIuZ2V0KCksIHNlY29uZFNpbXVsYXRlZEhUTUxJdGVt
UHJvdmlkZXIuZ2V0KCkgXV07CiAgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBydW5Gcm9t
OkNHUG9pbnRNYWtlKDIwMCwgMzAwKSB0bzpDR1BvaW50TWFrZSgxMDAsIDMwMCldOwogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Iu
aCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCmlu
ZGV4IGJhMDExMTdhNTg1MGUxM2FkM2YwNDk1MGZhOWMwMmMyZDhmODI2MGUuLjE3ZGU3YjkxN2I0
YmYwODU2YmEzM2M5ODlmMjFlMGVjZGE4ZjA2NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCkBAIC03NSw2ICs3NSw3IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIERhdGFJbnRlcmFjdGlvblBoYXNlKSB7CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0ZvY3VzVG9TdGFydElucHV0U2Vzc2lvbjsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3VsZEVuc3VyZVVJQXBwbGljYXRpb247CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBzaG91bGRBbGxvd01vdmVPcGVyYXRpb247CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQmxvY2tQdHI8Qk9PTChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKT4g
c2hvd0N1c3RvbUFjdGlvblNoZWV0QmxvY2s7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQmxvY2tQ
dHI8TlNBcnJheSAqKFVJSXRlbVByb3ZpZGVyICosIE5TQXJyYXkgKiwgTlNEaWN0aW9uYXJ5ICop
PiBjb252ZXJ0SXRlbVByb3ZpZGVyc0Jsb2NrOwogQHByb3BlcnR5IChub25hdG9taWMpIEJsb2Nr
UHRyPE5TQXJyYXkgKihpZCA8VUlEcm9wU2Vzc2lvbj4pPiBvdmVycmlkZVBlcmZvcm1Ecm9wQmxv
Y2s7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11
bGF0b3IubW0KaW5kZXggZjUxMzVjZWU2MzZiYmRhZWMyMDcyY2UzMzQyZDFhNDU1OGMwYTE3Ny4u
NDhhYjhlMDdhMDZmMjhkZGZmMjNmZmJkNTExODMwYmRlMTA1ODA4MyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQpAQCAtNTIs
MjMgKzUyLDI1IEBAIEBwcml2YXRlCiAgICAgUmV0YWluUHRyPFVJV2luZG93PiBfd2luZG93Owog
fQogQHByb3BlcnR5IChub25hdG9taWMpIENHUG9pbnQgbW9ja0xvY2F0aW9uSW5XaW5kb3c7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd01vdmU7CiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBNb2NrRHJhZ0Ryb3BTZXNzaW9uCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEl0ZW1z
OihOU0FycmF5IDxVSURyYWdJdGVtICo+KilpdGVtcyBsb2NhdGlvbjooQ0dQb2ludClsb2NhdGlv
bkluV2luZG93IHdpbmRvdzooVUlXaW5kb3cgKil3aW5kb3cKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aEl0ZW1zOihOU0FycmF5IDxVSURyYWdJdGVtICo+KilpdGVtcyBsb2NhdGlvbjooQ0dQb2lu
dClsb2NhdGlvbkluV2luZG93IHdpbmRvdzooVUlXaW5kb3cgKil3aW5kb3cgYWxsb3dNb3ZlOihC
T09MKWFsbG93TW92ZQogewogICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKSB7CiAgICAgICAg
IF9tb2NrSXRlbXMgPSBpdGVtczsKICAgICAgICAgX21vY2tMb2NhdGlvbkluV2luZG93ID0gbG9j
YXRpb25JbldpbmRvdzsKICAgICAgICAgX3dpbmRvdyA9IHdpbmRvdzsKKyAgICAgICAgX2FsbG93
TW92ZSA9IGFsbG93TW92ZTsKICAgICB9CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKEJPT0wp
YWxsb3dzTW92ZU9wZXJhdGlvbgogewotICAgIHJldHVybiBZRVM7CisgICAgcmV0dXJuIF9hbGxv
d01vdmU7CiB9CiAKIC0gKEJPT0wpaXNSZXN0cmljdGVkVG9EcmFnZ2luZ0FwcGxpY2F0aW9uCkBA
IC0xMzgsMTMgKzE0MCwxMyBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBNb2NrRGF0YU9wZXJh
dGlvblNlc3Npb24KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUHJvdmlkZXJzOihOU0FycmF5
PFVJSXRlbVByb3ZpZGVyICo+ICopcHJvdmlkZXJzIGxvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9u
SW5XaW5kb3cgd2luZG93OihVSVdpbmRvdyAqKXdpbmRvdworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoUHJvdmlkZXJzOihOU0FycmF5PFVJSXRlbVByb3ZpZGVyICo+ICopcHJvdmlkZXJzIGxvY2F0
aW9uOihDR1BvaW50KWxvY2F0aW9uSW5XaW5kb3cgd2luZG93OihVSVdpbmRvdyAqKXdpbmRvdyBh
bGxvd01vdmU6KEJPT0wpYWxsb3dNb3ZlCiB7CiAgICAgYXV0byBpdGVtcyA9IGFkb3B0TlMoW1tO
U011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwogICAgIGZvciAoVUlJdGVtUHJvdmlkZXIgKml0
ZW1Qcm92aWRlciBpbiBwcm92aWRlcnMpCiAgICAgICAgIFtpdGVtcyBhZGRPYmplY3Q6W1tbVUlE
cmFnSXRlbSBhbGxvY10gaW5pdFdpdGhJdGVtUHJvdmlkZXI6aXRlbVByb3ZpZGVyXSBhdXRvcmVs
ZWFzZV1dOwogCi0gICAgcmV0dXJuIFtzdXBlciBpbml0V2l0aEl0ZW1zOml0ZW1zLmdldCgpIGxv
Y2F0aW9uOmxvY2F0aW9uSW5XaW5kb3cgd2luZG93OndpbmRvd107CisgICAgcmV0dXJuIFtzdXBl
ciBpbml0V2l0aEl0ZW1zOml0ZW1zLmdldCgpIGxvY2F0aW9uOmxvY2F0aW9uSW5XaW5kb3cgd2lu
ZG93OndpbmRvdyBhbGxvd01vdmU6YWxsb3dNb3ZlXTsKIH0KIAogLSAoVUlEcmFnZ2luZ1Nlc3Np
b24gKilzZXNzaW9uCkBAIC0yMDgsOSArMjEwLDkgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
TW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2lu
ZG93OihVSVdpbmRvdyAqKXdpbmRvdworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2luZG93OihV
SVdpbmRvdyAqKXdpbmRvdyBhbGxvd01vdmU6KEJPT0wpYWxsb3dNb3ZlCiB7Ci0gICAgcmV0dXJu
IFtzdXBlciBpbml0V2l0aEl0ZW1zOkBbIF0gbG9jYXRpb246Q0dQb2ludFplcm8gd2luZG93Ondp
bmRvd107CisgICAgcmV0dXJuIFtzdXBlciBpbml0V2l0aEl0ZW1zOkBbIF0gbG9jYXRpb246Q0dQ
b2ludFplcm8gd2luZG93OndpbmRvdyBhbGxvd01vdmU6YWxsb3dNb3ZlXTsKIH0KIAogLSAoTlNV
SW50ZWdlcilsb2NhbE9wZXJhdGlvbk1hc2sKQEAgLTI2Myw2ICsyNjUsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhXZWJWaWV3OihUZXN0V0tXZWJWaWV3ICopd2ViVmlldwogICAgIGlmIChz
ZWxmID0gW3N1cGVyIGluaXRdKSB7CiAgICAgICAgIF93ZWJWaWV3ID0gd2ViVmlldzsKICAgICAg
ICAgX3Nob3VsZEVuc3VyZVVJQXBwbGljYXRpb24gPSBOTzsKKyAgICAgICAgX3Nob3VsZEFsbG93
TW92ZU9wZXJhdGlvbiA9IFlFUzsKICAgICAgICAgX2lzRG9uZVdhaXRpbmdGb3JJbnB1dFNlc3Np
b24gPSB0cnVlOwogICAgICAgICBbX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpzZWxmXTsKICAgICAg
ICAgW193ZWJWaWV3IF9zZXRJbnB1dERlbGVnYXRlOnNlbGZdOwpAQCAtMzMxLDExICszMzQsMTEg
QEAgLSAodm9pZClydW5Gcm9tOihDR1BvaW50KXN0YXJ0TG9jYXRpb24gdG86KENHUG9pbnQpZW5k
TG9jYXRpb24KICAgICBfZW5kTG9jYXRpb24gPSBlbmRMb2NhdGlvbjsKIAogICAgIGlmIChzZWxm
LmV4dGVybmFsSXRlbVByb3ZpZGVycy5jb3VudCkgewotICAgICAgICBfZGF0YU9wZXJhdGlvblNl
c3Npb24gPSBhZG9wdE5TKFtbTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGFsbG9jXSBpbml0V2l0
aFByb3ZpZGVyczpzZWxmLmV4dGVybmFsSXRlbVByb3ZpZGVycyBsb2NhdGlvbjpfc3RhcnRMb2Nh
dGlvbiB3aW5kb3c6W193ZWJWaWV3IHdpbmRvd11dKTsKKyAgICAgICAgX2RhdGFPcGVyYXRpb25T
ZXNzaW9uID0gYWRvcHROUyhbW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBhbGxvY10gaW5pdFdp
dGhQcm92aWRlcnM6c2VsZi5leHRlcm5hbEl0ZW1Qcm92aWRlcnMgbG9jYXRpb246X3N0YXJ0TG9j
YXRpb24gd2luZG93Oltfd2ViVmlldyB3aW5kb3ddIGFsbG93TW92ZTpzZWxmLnNob3VsZEFsbG93
TW92ZU9wZXJhdGlvbl0pOwogICAgICAgICBfcGhhc2UgPSBEYXRhSW50ZXJhY3Rpb25CZWdhbjsK
ICAgICAgICAgW3NlbGYgX2FkdmFuY2VQcm9ncmVzc107CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
X2RhdGFJbnRlcmFjdGlvblNlc3Npb24gPSBhZG9wdE5TKFtbTW9ja0RhdGFJbnRlcmFjdGlvblNl
c3Npb24gYWxsb2NdIGluaXRXaXRoV2luZG93Oltfd2ViVmlldyB3aW5kb3ddXSk7CisgICAgICAg
IF9kYXRhSW50ZXJhY3Rpb25TZXNzaW9uID0gYWRvcHROUyhbW01vY2tEYXRhSW50ZXJhY3Rpb25T
ZXNzaW9uIGFsbG9jXSBpbml0V2l0aFdpbmRvdzpbX3dlYlZpZXcgd2luZG93XSBhbGxvd01vdmU6
c2VsZi5zaG91bGRBbGxvd01vdmVPcGVyYXRpb25dKTsKICAgICAgICAgW19kYXRhSW50ZXJhY3Rp
b25TZXNzaW9uIHNldE1vY2tMb2NhdGlvbkluV2luZG93Ol9zdGFydExvY2F0aW9uXTsKICAgICAg
ICAgW193ZWJWaWV3IF9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOl9k
YXRhSW50ZXJhY3Rpb25TZXNzaW9uLmdldCgpIGNvbXBsZXRpb246XigpIHsKICAgICAgICAgICAg
IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvciAqd2Vha1NlbGYgPSBzdHJvbmdTZWxmLmdldCgpOwpA
QCAtNDA0LDcgKzQwNyw3IEBAIC0gKHZvaWQpX2FkdmFuY2VQcm9ncmVzcwogICAgICAgICBmb3Ig
KFVJRHJhZ0l0ZW0gKml0ZW0gaW4gaXRlbXMpCiAgICAgICAgICAgICBbaXRlbVByb3ZpZGVycyBh
ZGRPYmplY3Q6aXRlbS5pdGVtUHJvdmlkZXJdOwogCi0gICAgICAgIF9kYXRhT3BlcmF0aW9uU2Vz
c2lvbiA9IGFkb3B0TlMoW1tNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gYWxsb2NdIGluaXRXaXRo
UHJvdmlkZXJzOml0ZW1Qcm92aWRlcnMgbG9jYXRpb246c2VsZi5fY3VycmVudExvY2F0aW9uIHdp
bmRvdzpbX3dlYlZpZXcgd2luZG93XV0pOworICAgICAgICBfZGF0YU9wZXJhdGlvblNlc3Npb24g
PSBhZG9wdE5TKFtbTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGFsbG9jXSBpbml0V2l0aFByb3Zp
ZGVyczppdGVtUHJvdmlkZXJzIGxvY2F0aW9uOnNlbGYuX2N1cnJlbnRMb2NhdGlvbiB3aW5kb3c6
W193ZWJWaWV3IHdpbmRvd10gYWxsb3dNb3ZlOnNlbGYuc2hvdWxkQWxsb3dNb3ZlT3BlcmF0aW9u
XSk7CiAgICAgICAgIFtfZGF0YUludGVyYWN0aW9uU2Vzc2lvbiBzZXRJdGVtczppdGVtc107CiAg
ICAgICAgIF9zb3VyY2VJdGVtUHJvdmlkZXJzID0gaXRlbVByb3ZpZGVyczsKICAgICAgICAgaWYg
KHNlbGYuc2hvd0N1c3RvbUFjdGlvblNoZWV0QmxvY2spIHsKQEAgLTQyOCw5ICs0MzEsMTEgQEAg
LSAodm9pZClfYWR2YW5jZVByb2dyZXNzCiAgICAgICAgIFtfd2ViVmlldyBfc2ltdWxhdGVEYXRh
SW50ZXJhY3Rpb25FbnRlcmVkOl9kYXRhT3BlcmF0aW9uU2Vzc2lvbi5nZXQoKV07CiAgICAgICAg
IF9waGFzZSA9IERhdGFJbnRlcmFjdGlvbkVudGVyZWQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgRGF0YUludGVyYWN0aW9uRW50ZXJlZDoKLSAgICAgICAgX3Nob3VsZFBlcmZvcm1PcGVyYXRp
b24gPSBbX3dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDpfZGF0YU9wZXJh
dGlvblNlc3Npb24uZ2V0KCldOworICAgIGNhc2UgRGF0YUludGVyYWN0aW9uRW50ZXJlZDogewor
ICAgICAgICBhdXRvIG9wZXJhdGlvbiA9IHN0YXRpY19jYXN0PFVJRHJvcE9wZXJhdGlvbj4oW193
ZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6X2RhdGFPcGVyYXRpb25TZXNz
aW9uLmdldCgpXSk7CisgICAgICAgIF9zaG91bGRQZXJmb3JtT3BlcmF0aW9uID0gb3BlcmF0aW9u
ID09IFVJRHJvcE9wZXJhdGlvbkNvcHkgfHwgKFtfZGF0YU9wZXJhdGlvblNlc3Npb24gYWxsb3dz
TW92ZU9wZXJhdGlvbl0gJiYgb3BlcmF0aW9uICE9IFVJRHJvcE9wZXJhdGlvbkNhbmNlbCk7CiAg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>