<?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>193398</bug_id>
          
          <creation_ts>2019-01-14 08:01:04 -0800</creation_ts>
          <short_desc>[iOS] Expose SPI to access the current sentence boundary and selection state</short_desc>
          <delta_ts>2019-01-14 12:10:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>dino</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1494155</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-14 08:01:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/45893108&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494160</commentid>
    <comment_count>1</comment_count>
      <attachid>359038</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-14 08:27:51 -0800</bug_when>
    <thetext>Created attachment 359038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494242</commentid>
    <comment_count>2</comment_count>
      <attachid>359038</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-14 12:10:04 -0800</bug_when>
    <thetext>Comment on attachment 359038
Patch

Clearing flags on attachment: 359038

Committed r239931: &lt;https://trac.webkit.org/changeset/239931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494243</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-14 12:10:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359038</attachid>
            <date>2019-01-14 08:27:51 -0800</date>
            <delta_ts>2019-01-14 12:10:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193398-20190114082751.patch</filename>
            <type>text/plain</type>
            <size>17001</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNjFlNTZlY2JhYzJkZjc5
N2I4MDFjZWJmNWExY2MyOWYyYzE3NzguLjQ3YmI1ZGVlZWZjZDc0MDAxNzVkYzYyYjYxNGRhZTlh
ZmZkODhkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMDEtMTQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRXhwb3NlIFNQ
SSB0byBhY2Nlc3MgdGhlIGN1cnJlbnQgc2VudGVuY2UgYm91bmRhcnkgYW5kIHNlbGVjdGlvbiBz
dGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkz
Mzk4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg5MzEwOD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgU1BJIG9uIFdLV2ViVmlldyBm
b3IgaW50ZXJuYWwgY2xpZW50cyB0byBncmFiIGluZm9ybWF0aW9uIGFib3V0IGF0dHJpYnV0ZXMg
YXQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uOyBzbworICAgICAgICBmYXIsIHRoaXMgb25seSBpbmNs
dWRlcyB3aGV0aGVyIHRoZSBzZWxlY3Rpb24gaXMgYSBjYXJldCBvciBhIHJhbmdlLCBhbmQgd2hl
dGhlciBvciBub3QgdGhlIHN0YXJ0IG9mIHRoZQorICAgICAgICBzZWxlY3Rpb24gaXMgYXQgdGhl
IHN0YXJ0IG9mIGEgbmV3IHNlbnRlbmNlLgorCisgICAgICAgIFRlc3Q6IEVkaXRvclN0YXRlVGVz
dHMuT2JzZXJ2ZVNlbGVjdGlvbkF0dHJpYnV0ZUNoYW5nZXMKKworICAgICAgICAqIFNoYXJlZC9F
ZGl0b3JTdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvclN0YXRlOjpQb3N0TGF5b3V0
RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yU3RhdGU6OlBvc3RM
YXlvdXREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5oOgorCisg
ICAgICAgIEFkZCBhIG5ldyBiaXQgaW4gRWRpdG9yU3RhdGUgb24gaU9TIHRvIGNvbXB1dGUgd2hl
dGhlciBvciBub3QgdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3Rpb24gaXMgYXQgdGhlIHN0YXJ0IG9m
IGEKKyAgICAgICAgbmV3IHNlbnRlbmNlLiBUaGlzIGlzIGNvbXB1dGVkIGFuZCBzZXQgd2hlbiBz
ZW5kaW5nIHBvc3QtbGF5b3V0IGRhdGEgaW4gYFdlYlBhZ2VJT1MubW1gLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChzZWxlY3Rpb25BdHRy
aWJ1dGVzKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRDaGFuZ2VFZGl0b3JTdGF0ZV0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3NlbGVjdGlvbkF0dHJpYnV0ZXNdKToKKworICAgICAgICBN
YWtlIHRoZSBuZXcgU1BJIHByb3BlcnR5IHN1cHBvcnQgS1ZPIGJ5IGludm9raW5nIGAtd2lsbENo
YW5nZVZhbHVlRm9yS2V5OmAgYW5kIGAtZGlkQ2hhbmdlVmFsdWVGb3JLZXk6YAorICAgICAgICB3
aGVuZXZlciB0aGUgc2VsZWN0aW9uIGF0dHJpYnV0ZXMgY2hhbmdlLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpw
bGF0Zm9ybUVkaXRvclN0YXRlIGNvbnN0KToKKwogMjAxOS0wMS0xMSAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBDb21waWxlIG91dCBXZWIgQVBJIFN0YXRp
c3RpY3MgQ29sbGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRWRpdG9y
U3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCmluZGV4IDg5
NmMwM2JlZGUxYTJjMzlkOWM1MzI4MTQ3NzllYWRiMDZjZjdhZGQuLjIyYjhiMTQ3OTE5OThhMTUx
NWU0NmFhMDhhZGViMmFkODM3MTk3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VkaXRvclN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0b3JTdGF0ZS5j
cHAKQEAgLTEzMiw2ICsxMzIsNyBAQCB2b2lkIEVkaXRvclN0YXRlOjpQb3N0TGF5b3V0RGF0YTo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGhhc1Bs
YWluVGV4dDsKICAgICBlbmNvZGVyIDw8IGVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBw
ZWQ7CiAgICAgZW5jb2RlciA8PCBjYXJldENvbG9yOworICAgIGVuY29kZXIgPDwgYXRTdGFydE9m
U2VudGVuY2U7CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgZW5jb2RlciA8PCBjYW5k
aWRhdGVSZXF1ZXN0U3RhcnRQb3NpdGlvbjsKQEAgLTE5MSw2ICsxOTIsOCBAQCBib29sIEVkaXRv
clN0YXRlOjpQb3N0TGF5b3V0RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUG9z
dExheW91dERhdGEmCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5jYXJldENvbG9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LmF0U3RhcnRPZlNlbnRlbmNlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmNhbmRpZGF0ZVJlcXVlc3RTdGFydFBvc2l0aW9uKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
ZGl0b3JTdGF0ZS5oCmluZGV4IDBjYzI1Y2Q4MTI3ZTlkN2FkM2VlNjk0ZDFkMjBmNDgyN2ZjYWEz
ODcuLjVlZTQxMDVmZjc5Yzk2ODhhOGNmY2QzMjFkNjNkMTdiZDgwMDE3YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvRWRpdG9yU3RhdGUuaApAQCAtMTA5LDYgKzEwOSw3IEBAIHN0cnVjdCBFZGl0b3JTdGF0
ZSB7CiAgICAgICAgIGJvb2wgaGFzUGxhaW5UZXh0IHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBl
bGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkIHsgZmFsc2UgfTsKICAgICAgICAgV2Vi
Q29yZTo6Q29sb3IgY2FyZXRDb2xvcjsKKyAgICAgICAgYm9vbCBhdFN0YXJ0T2ZTZW50ZW5jZSB7
IGZhbHNlIH07CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHVpbnQ2NF90IGNh
bmRpZGF0ZVJlcXVlc3RTdGFydFBvc2l0aW9uIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMTE2MzNjNmI0ZDAyZmVmN2NhYjBk
NmEyN2VlYjM4MGMyOWY1ZjIzMC4uMDc0Y2RkZmQyNzg0ZTg2OTEyOGQwMjBiZWQ1OTIxM2ExY2Jk
ZGU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCkBAIC0zNzcsNiArMzc3LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViVmlldyB7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF9pbXBsOwogICAgIFJldGFpblB0
cjxXS1RleHRGaW5kZXJDbGllbnQ+IF90ZXh0RmluZGVyQ2xpZW50OwogI2VuZGlmCisgICAgX1dL
U2VsZWN0aW9uQXR0cmlidXRlcyBfc2VsZWN0aW9uQXR0cmlidXRlczsKICAgICBDR0Zsb2F0IF9t
aW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGg7CiB9CiAKQEAgLTEyNjcsMTcgKzEyNjgsNTEgQEAg
c3RhdGljIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeVJlcHJlc2VudGF0aW9uRm9yRWRpdG9yU3Rh
dGUoY29uc3QgV2ViS2l0OjpFZGl0b3IKICAgICB9OwogfQogCitzdGF0aWMgX1dLU2VsZWN0aW9u
QXR0cmlidXRlcyBzZWxlY3Rpb25BdHRyaWJ1dGVzKGNvbnN0IFdlYktpdDo6RWRpdG9yU3RhdGUm
IGVkaXRvclN0YXRlLCBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVzIHByZXZpb3VzQXR0cmlidXRlcykK
K3sKKyAgICBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBfV0tTZWxlY3Rpb25B
dHRyaWJ1dGVOb1NlbGVjdGlvbjsKKyAgICBpZiAoZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNOb25l
KQorICAgICAgICByZXR1cm4gYXR0cmlidXRlczsKKworICAgIGlmIChlZGl0b3JTdGF0ZS5zZWxl
Y3Rpb25Jc1JhbmdlKQorICAgICAgICBhdHRyaWJ1dGVzIHw9IF9XS1NlbGVjdGlvbkF0dHJpYnV0
ZUlzUmFuZ2U7CisgICAgZWxzZQorICAgICAgICBhdHRyaWJ1dGVzIHw9IF9XS1NlbGVjdGlvbkF0
dHJpYnV0ZUlzQ2FyZXQ7CisKKyAgICBpZiAoIWVkaXRvclN0YXRlLmlzTWlzc2luZ1Bvc3RMYXlv
dXREYXRhKSB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgaWYgKGVkaXRvclN0
YXRlLnBvc3RMYXlvdXREYXRhKCkuYXRTdGFydE9mU2VudGVuY2UpCisgICAgICAgICAgICBhdHRy
aWJ1dGVzIHw9IF9XS1NlbGVjdGlvbkF0dHJpYnV0ZUF0U3RhcnRPZlNlbnRlbmNlOworI2VuZGlm
CisgICAgfSBlbHNlIGlmIChwcmV2aW91c0F0dHJpYnV0ZXMgJiBfV0tTZWxlY3Rpb25BdHRyaWJ1
dGVBdFN0YXJ0T2ZTZW50ZW5jZSkKKyAgICAgICAgYXR0cmlidXRlcyB8PSBfV0tTZWxlY3Rpb25B
dHRyaWJ1dGVBdFN0YXJ0T2ZTZW50ZW5jZTsKKworICAgIHJldHVybiBhdHRyaWJ1dGVzOworfQor
CiAtICh2b2lkKV9kaWRDaGFuZ2VFZGl0b3JTdGF0ZQogewotICAgIGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPiB1aURlbGVnYXRlID0gKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilzZWxmLlVJRGVs
ZWdhdGU7CisgICAgYXV0byBuZXdTZWxlY3Rpb25BdHRyaWJ1dGVzID0gc2VsZWN0aW9uQXR0cmli
dXRlcyhfcGFnZS0+ZWRpdG9yU3RhdGUoKSwgX3NlbGVjdGlvbkF0dHJpYnV0ZXMpOworICAgIGlm
IChfc2VsZWN0aW9uQXR0cmlidXRlcyAhPSBuZXdTZWxlY3Rpb25BdHRyaWJ1dGVzKSB7CisgICAg
ICAgIE5TU3RyaW5nICpzZWxlY3Rpb25BdHRyaWJ1dGVzS2V5ID0gTlNTdHJpbmdGcm9tU2VsZWN0
b3IoQHNlbGVjdG9yKF9zZWxlY3Rpb25BdHRyaWJ1dGVzKSk7CisgICAgICAgIFtzZWxmIHdpbGxD
aGFuZ2VWYWx1ZUZvcktleTpzZWxlY3Rpb25BdHRyaWJ1dGVzS2V5XTsKKyAgICAgICAgX3NlbGVj
dGlvbkF0dHJpYnV0ZXMgPSBuZXdTZWxlY3Rpb25BdHRyaWJ1dGVzOworICAgICAgICBbc2VsZiBk
aWRDaGFuZ2VWYWx1ZUZvcktleTpzZWxlY3Rpb25BdHRyaWJ1dGVzS2V5XTsKKyAgICB9CiAKICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGVpdGhlciByZW5hbWUgLV93ZWJWaWV3OmVkaXRvclN0YXRl
RGlkQ2hhbmdlOiB0byBjbGFyaWZ5IHRoYXQgaXQncyBvbmx5IGludGVuZGVkIGZvciB1c2Ugd2hl
biB0ZXN0aW5nLAogICAgIC8vIG9yIHJlbW92ZSBpdCBlbnRpcmVseSBhbmQgdXNlIC1fd2ViVmll
dzpkaWRDaGFuZ2VGb250QXR0cmlidXRlczogaW5zdGVhZCBvbmNlIHRleHQgYWxpZ25tZW50IGlz
IHN1cHBvcnRlZCBpbiB0aGUgc2V0IG9mCiAgICAgLy8gZm9udCBhdHRyaWJ1dGVzLgorICAgIGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPilzZWxmLlVJRGVsZWdhdGU7CiAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZWRpdG9yU3RhdGVEaWRDaGFuZ2U6KV0pCiAgICAgICAg
IFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZWRpdG9yU3RhdGVEaWRDaGFuZ2U6ZGljdGlvbmFy
eVJlcHJlc2VudGF0aW9uRm9yRWRpdG9yU3RhdGUoX3BhZ2UtPmVkaXRvclN0YXRlKCkpXTsKIH0K
IAorLSAoX1dLU2VsZWN0aW9uQXR0cmlidXRlcylfc2VsZWN0aW9uQXR0cmlidXRlcworeworICAg
IHJldHVybiBfc2VsZWN0aW9uQXR0cmlidXRlczsKK30KKwogLSAodm9pZClfc2hvd1NhZmVCcm93
c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dzaW5nV2FybmluZyYpd2FybmluZyBj
b21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6
Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAg
X3NhZmVCcm93c2luZ1dhcm5pbmcgPSBhZG9wdE5TKFtbV0tTYWZlQnJvd3NpbmdXYXJuaW5nIGFs
bG9jXSBpbml0V2l0aEZyYW1lOnNlbGYuYm91bmRzIHNhZmVCcm93c2luZ1dhcm5pbmc6d2Fybmlu
ZyBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+KHNl
bGYpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0
byYmIHJlc3VsdCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCAyOWFlNzkzNWMzNWUwMzAyY2VhZDUw
YzljZmI2M2U1MDViOTA5MDE0Li4yNmMwYzM0NjAwMmY1OGQ0NjQ5Y2RhZDJjOTJkNDhkMzc3YmVj
ZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKQEAgLTYzLDYgKzYzLDEzIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJ
bnRlZ2VyLCBfV0tDYXB0dXJlRGV2aWNlcykgewogICAgIF9XS0NhcHR1cmVEZXZpY2VEaXNwbGF5
ID0gMSA8PCAyLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CiAKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVz
KSB7CisgICAgX1dLU2VsZWN0aW9uQXR0cmlidXRlTm9TZWxlY3Rpb24gPSAwLAorICAgIF9XS1Nl
bGVjdGlvbkF0dHJpYnV0ZUlzQ2FyZXQgPSAxIDw8IDAsCisgICAgX1dLU2VsZWN0aW9uQXR0cmli
dXRlSXNSYW5nZSA9IDEgPDwgMSwKKyAgICBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVBdFN0YXJ0T2ZT
ZW50ZW5jZSA9IDEgPDwgMiwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAKIHR5cGVkZWYgTlNf
RU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnSW50ZXJhY3Rpb25Qb2xpY3kpIHsKQEAgLTIyMCw2ICsy
MjcsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0g
KElCQWN0aW9uKV90YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246KGlkKXNlbmRlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3Bl
cnR5IChjbGFzcywgbm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFN0cmluZ0ZvckZpbmQ6KSBO
U1N0cmluZyAqX3N0cmluZ0ZvckZpbmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9X
S1NlbGVjdGlvbkF0dHJpYnV0ZXMgX3NlbGVjdGlvbkF0dHJpYnV0ZXMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1Nf
SVBIT05FCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggMDk0N2YwNmY0NWRlNjZlNWRlODQxMjA3MjYzZGI3ZDYyZTJlNTU5
NC4uYzc0YTYzNmIwYTMyZTk1YWE3OWI2Y2UxMjRiYjM5NzMxM2M3ZTUwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI0
MCw2ICsyNDAsNyBAQCB2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRWRpdG9yU3RhdGUoRnJhbWUmIGZy
YW1lLCBFZGl0b3JTdGF0ZSYgcmVzdWx0LCBJbmNsdWRlUG9zdAogICAgICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGRpc2FsbG93IHJlcGxhY2Ugd2hlbiB0aGUgc3RyaW5nIGNvbnRhaW5zIG9ubHkg
Q0ogY2hhcmFjdGVycy4KICAgICAgICAgcG9zdExheW91dERhdGEuaXNSZXBsYWNlQWxsb3dlZCA9
IHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSAmJiAhcmVzdWx0LmlzSW5QYXNzd29yZEZpZWxkICYm
ICFzZWxlY3RlZFRleHQuaXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxpc0hUTUxTcGFjZT4oKTsKICAg
ICB9CisgICAgcG9zdExheW91dERhdGEuYXRTdGFydE9mU2VudGVuY2UgPSBmcmFtZS5zZWxlY3Rp
b24oKS5zZWxlY3Rpb25BdFNlbnRlbmNlU3RhcnQoKTsKICAgICBwb3N0TGF5b3V0RGF0YS5pbnNp
ZGVGaXhlZFBvc2l0aW9uID0gc3RhcnROb2RlSXNJbnNpZGVGaXhlZFBvc2l0aW9uIHx8IGVuZE5v
ZGVJc0luc2lkZUZpeGVkUG9zaXRpb247CiAgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsK
ICAgICAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgJiYgbV9mb2N1c2VkRWxlbWVudC0+cmVuZGVy
ZXIoKSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDI1MjIzOWY1MjczYzQ2NTIxMzJhMjM2NmEwMTZkMmJlMTVhNmVmZWQuLjE2YWYwNzhlYTA4
NGFiMTlhNDcyNDgwNzJjY2QyNjkyNDQzMThmNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOS0wMS0xNCAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFeHBv
c2UgU1BJIHRvIGFjY2VzcyB0aGUgY3VycmVudCBzZW50ZW5jZSBib3VuZGFyeSBhbmQgc2VsZWN0
aW9uIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTMzOTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1ODkzMTA4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byB2
ZXJpZnkgdGhhdCBhbiBTUEkgY2xpZW50IGNhbiBvYnNlcnZlIGNoYW5nZXMgaW4gdGhlIGBAIl9z
ZWxlY3Rpb25BdHRyaWJ1dGVzImAga2V5IHBhdGggb24KKyAgICAgICAgV0tXZWJWaWV3LCBhbmQg
dGhhdCBpbnNlcnRpbmcgdGV4dCwgZGVsZXRpbmcsIGFuZCBjaGFuZ2luZyB0aGUgc2VsZWN0aW9u
IGNhdXNlIHNlbGVjdGlvbiBhdHRyaWJ1dGVzIHRvIGNoYW5nZSBhcworICAgICAgICBleHBlY3Rl
ZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvRWRpdGluZ1Rlc3RIYXJuZXNzLmg6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9FZGl0aW5nVGVzdEhhcm5lc3MubW06CisgICAgICAgICgtW0Vk
aXRpbmdUZXN0SGFybmVzcyBtb3ZlQmFja3dhcmRdKToKKyAgICAgICAgKC1bRWRpdGluZ1Rlc3RI
YXJuZXNzIG1vdmVGb3J3YXJkXSk6CisgICAgICAgICgtW0VkaXRpbmdUZXN0SGFybmVzcyBtb3Zl
Rm9yd2FyZEFuZEV4cGVjdEVkaXRvclN0YXRlV2l0aDpdKToKKworICAgICAgICBBZGQgYSBjb3Vw
bGUgb2YgbmV3IGhlbHBlciBtZXRob2RzIG9uIEVkaXRpbmdUZXN0SGFybmVzcy4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRWRpdG9yU3RhdGVUZXN0cy5tbToK
KyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlT2JzZXJ2ZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgor
ICAgICAgICAoLVtTZWxlY3Rpb25DaGFuZ2VPYnNlcnZlciB3ZWJWaWV3XSk6CisgICAgICAgICgt
W1NlbGVjdGlvbkNoYW5nZU9ic2VydmVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6
Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZU9ic2VydmVyIGN1
cnJlbnRTZWxlY3Rpb25BdHRyaWJ1dGVzXSk6CisKIDIwMTktMDEtMTEgIEpvaG4gV2lsYW5kZXIg
IDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ29tcGlsZSBvdXQgV2ViIEFQSSBTdGF0
aXN0aWNzIENvbGxlY3Rpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvRWRpdGlu
Z1Rlc3RIYXJuZXNzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL0VkaXRpbmdUZXN0SGFybmVzcy5o
CmluZGV4IDI5YWYzMjE2MWM3NTMwZjI2ZWI2MWFiMTczMzMxN2MxZDFkMTNkZTcuLjJmMDVkOWU3
ZGMzMWRkZGQ3ZDY2ZThkYzc0Yzg4OGI1ZmQyZDBmNmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvRWRpdGluZ1Rlc3RIYXJuZXNzLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9F
ZGl0aW5nVGVzdEhhcm5lc3MuaApAQCAtNDYsNiArNDYsOCBAQAogLSAodm9pZClpbnNlcnRIVE1M
OihOU1N0cmluZyAqKWh0bWw7CiAtICh2b2lkKXNlbGVjdEFsbDsKIC0gKHZvaWQpZGVsZXRlQmFj
a3dhcmRzOworLSAodm9pZCltb3ZlQmFja3dhcmQ7CistICh2b2lkKW1vdmVGb3J3YXJkOwogLSAo
dm9pZClpbnNlcnRQYXJhZ3JhcGhBbmRFeHBlY3RFZGl0b3JTdGF0ZVdpdGg6KE5TRGljdGlvbmFy
eTxOU1N0cmluZyAqLCBpZD4gKillbnRyaWVzOwogLSAodm9pZClpbnNlcnRUZXh0OihOU1N0cmlu
ZyAqKXRleHQgYW5kRXhwZWN0RWRpdG9yU3RhdGVXaXRoOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcg
KiwgaWQ+ICopZW50cmllczsKIC0gKHZvaWQpaW5zZXJ0SFRNTDooTlNTdHJpbmcgKilodG1sIGFu
ZEV4cGVjdEVkaXRvclN0YXRlV2l0aDooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWVu
dHJpZXM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0VkaXRpbmdUZXN0SGFybmVz
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvRWRpdGluZ1Rlc3RIYXJuZXNzLm1tCmluZGV4IDky
YjFiOWVlYWU4NWJlYWI5ZWQ4NTlmNzJiZmRjZTJjZTYwOTMwNGMuLjBkYzUyNzdhZjBmMjdlOTNl
NDc1YTFmY2U4MTZmOTEyYzBkNTJjZTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
RWRpdGluZ1Rlc3RIYXJuZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvRWRpdGluZ1Rl
c3RIYXJuZXNzLm1tCkBAIC05Miw2ICs5MiwxNiBAQCAtICh2b2lkKWRlbGV0ZUJhY2t3YXJkcwog
ICAgIFtzZWxmIGRlbGV0ZUJhY2t3YXJkQW5kRXhwZWN0RWRpdG9yU3RhdGVXaXRoOm5pbF07CiB9
CiAKKy0gKHZvaWQpbW92ZUJhY2t3YXJkCit7CisgICAgW3NlbGYgbW92ZUJhY2t3YXJkQW5kRXhw
ZWN0RWRpdG9yU3RhdGVXaXRoOm5pbF07Cit9CisKKy0gKHZvaWQpbW92ZUZvcndhcmQKK3sKKyAg
ICBbc2VsZiBtb3ZlRm9yd2FyZEFuZEV4cGVjdEVkaXRvclN0YXRlV2l0aDpuaWxdOworfQorCiAt
ICh2b2lkKWluc2VydFRleHQ6KE5TU3RyaW5nICopdGV4dCBhbmRFeHBlY3RFZGl0b3JTdGF0ZVdp
dGg6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKillbnRyaWVzCiB7CiAgICAgW3NlbGYg
X2V4ZWNDb21tYW5kOkAiSW5zZXJ0VGV4dCIgYXJndW1lbnQ6dGV4dCBleHBlY3RFbnRyaWVzOmVu
dHJpZXNdOwpAQCAtMTE3LDYgKzEyNywxMSBAQCAtICh2b2lkKW1vdmVXb3JkQmFja3dhcmRBbmRF
eHBlY3RFZGl0b3JTdGF0ZVdpdGg6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKgogICAg
IFtzZWxmIF9leGVjQ29tbWFuZDpAIk1vdmVXb3JkQmFja3dhcmQiIGFyZ3VtZW50Om5pbCBleHBl
Y3RFbnRyaWVzOmVudHJpZXNdOwogfQogCistICh2b2lkKW1vdmVGb3J3YXJkQW5kRXhwZWN0RWRp
dG9yU3RhdGVXaXRoOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopZW50cmllcworewor
ICAgIFtzZWxmIF9leGVjQ29tbWFuZDpAIk1vdmVGb3J3YXJkIiBhcmd1bWVudDpuaWwgZXhwZWN0
RW50cmllczplbnRyaWVzXTsKK30KKwogLSAodm9pZCl0b2dnbGVCb2xkCiB7CiAgICAgW3NlbGYg
X2V4ZWNDb21tYW5kOkAiVG9nZ2xlQm9sZCIgYXJndW1lbnQ6bmlsIGV4cGVjdEVudHJpZXM6bmls
XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRWRp
dG9yU3RhdGVUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RWRpdG9yU3RhdGVUZXN0cy5tbQppbmRleCAxNDZmOTUxNzUwOWYzYjE0MjJhYWYzYzRmNDE1MGU4
MDMyZTQ5MGNjLi5kNzg3ZGNkYTk5NTFhOTdiNTk1MWI4YWJjOWQ2ZGRiMzFjZjY3ZGM0IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0VkaXRvclN0YXRl
VGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FZGl0
b3JTdGF0ZVRlc3RzLm1tCkBAIC0zMSwxMiArMzEsNTkgQEAKICNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tX
ZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0IDxVSUtpdC9VSUtpdC5o
PgogI2VuZGlmCiAKK3N0YXRpYyB2b2lkKiBjb25zdCBTZWxlY3Rpb25BdHRyaWJ1dGVzT2JzZXJ2
YXRpb25Db250ZXh0ID0gKHZvaWQqKSZTZWxlY3Rpb25BdHRyaWJ1dGVzT2JzZXJ2YXRpb25Db250
ZXh0OworCitAaW50ZXJmYWNlIFNlbGVjdGlvbkNoYW5nZU9ic2VydmVyIDogTlNPYmplY3QKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXc6KFRlc3RXS1dlYlZpZXcgKil3ZWJWaWV3Owor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3Owor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVzIGN1
cnJlbnRTZWxlY3Rpb25BdHRyaWJ1dGVzOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gU2VsZWN0
aW9uQ2hhbmdlT2JzZXJ2ZXIgeworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiBfd2ViVmll
dzsKKyAgICBWZWN0b3I8X1dLU2VsZWN0aW9uQXR0cmlidXRlcz4gX29ic2VydmVkU2VsZWN0aW9u
QXR0cmlidXRlczsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlldzooVGVzdFdL
V2ViVmlldyAqKXdlYlZpZXcKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKworICAgIF93ZWJWaWV3ID0gd2ViVmlldzsKKyAgICBbX3dlYlZp
ZXcgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiX3NlbGVjdGlvbkF0dHJpYnV0ZXMiIG9w
dGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk9sZCB8IE5TS2V5VmFsdWVPYnNlcnZpbmdP
cHRpb25OZXcgY29udGV4dDpTZWxlY3Rpb25BdHRyaWJ1dGVzT2JzZXJ2YXRpb25Db250ZXh0XTsK
KyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoVGVzdFdLV2ViVmlldyAqKXdlYlZpZXcKK3sKKyAg
ICByZXR1cm4gX3dlYlZpZXcuZ2V0KCk7Cit9CisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0Rp
Y3Rpb25hcnk8TlNLZXlWYWx1ZUNoYW5nZUtleSwgaWQ+ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQg
Kiljb250ZXh0Cit7CisgICAgaWYgKGNvbnRleHQgPT0gU2VsZWN0aW9uQXR0cmlidXRlc09ic2Vy
dmF0aW9uQ29udGV4dCkgeworICAgICAgICBpZiAoIV9vYnNlcnZlZFNlbGVjdGlvbkF0dHJpYnV0
ZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgRVhQRUNUX0VRKF9vYnNlcnZlZFNlbGVjdGlvbkF0
dHJpYnV0ZXMubGFzdCgpLCBbY2hhbmdlW05TS2V5VmFsdWVDaGFuZ2VPbGRLZXldIHVuc2lnbmVk
SW50VmFsdWVdKTsKKyAgICAgICAgX29ic2VydmVkU2VsZWN0aW9uQXR0cmlidXRlcy5hcHBlbmQo
W2NoYW5nZVtOU0tleVZhbHVlQ2hhbmdlTmV3S2V5XSB1bnNpZ25lZEludFZhbHVlXSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgW3N1cGVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6a2V5
UGF0aCBvZk9iamVjdDpvYmplY3QgY2hhbmdlOmNoYW5nZSBjb250ZXh0OmNvbnRleHRdOworfQor
CistIChfV0tTZWxlY3Rpb25BdHRyaWJ1dGVzKWN1cnJlbnRTZWxlY3Rpb25BdHRyaWJ1dGVzCit7
CisgICAgcmV0dXJuIF9vYnNlcnZlZFNlbGVjdGlvbkF0dHJpYnV0ZXMuaXNFbXB0eSgpID8gX1dL
U2VsZWN0aW9uQXR0cmlidXRlTm9TZWxlY3Rpb24gOiBfb2JzZXJ2ZWRTZWxlY3Rpb25BdHRyaWJ1
dGVzLmxhc3QoKTsKK30KKworQGVuZAorCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIHN0
YXRpYyBSZXRhaW5QdHI8RWRpdGluZ1Rlc3RIYXJuZXNzPiBzZXRVcEVkaXRvclN0YXRlVGVzdEhh
cm5lc3MoKQpAQCAtMzEyLDcgKzM1OSw0NyBAQCBURVNUKEVkaXRvclN0YXRlVGVzdHMsIENhcmV0
Q29sb3JJbkNvbnRlbnRFZGl0YWJsZSkKICAgICBhdXRvIGNnUmVkQ29sb3IgPSBhZG9wdENGKENH
Q29sb3JDcmVhdGVDb3B5QnlNYXRjaGluZ1RvQ29sb3JTcGFjZShjb2xvclNwYWNlLmdldCgpLCBr
Q0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0LCByZWRDb2xvci5DR0NvbG9yLCBOVUxMKSk7CiAgICAg
RVhQRUNUX1RSVUUoQ0dDb2xvckVxdWFsVG9Db2xvcihjZ0luc2VydGlvblBvaW50Q29sb3IuZ2V0
KCksIGNnUmVkQ29sb3IuZ2V0KCkpKTsKIH0KLSNlbmRpZgorCitURVNUKEVkaXRvclN0YXRlVGVz
dHMsIE9ic2VydmVTZWxlY3Rpb25BdHRyaWJ1dGVDaGFuZ2VzKQoreworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgYXV0byBlZGl0b3IgPSBhZG9wdE5TKFtbRWRpdGlu
Z1Rlc3RIYXJuZXNzIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAg
IFt3ZWJWaWV3IF9zZXRFZGl0YWJsZTpZRVNdOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzpAIjxib2R5PjwvYm9keT4iXTsKKworICAgIGF1dG8gb2JzZXJ2ZXIgPSBh
ZG9wdE5TKFtbU2VsZWN0aW9uQ2hhbmdlT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3
ZWJWaWV3LmdldCgpXSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1
bWVudC5ib2R5LmZvY3VzKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgW3dlYlZpZXcg
d2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9FUShfV0tTZWxlY3Rp
b25BdHRyaWJ1dGVJc0NhcmV0IHwgX1dLU2VsZWN0aW9uQXR0cmlidXRlQXRTdGFydE9mU2VudGVu
Y2UsIFtvYnNlcnZlciBjdXJyZW50U2VsZWN0aW9uQXR0cmlidXRlc10pOworCisgICAgW2VkaXRv
ciBpbnNlcnRUZXh0OkAiSGVsbG8iXTsKKyAgICBFWFBFQ1RfRVEoX1dLU2VsZWN0aW9uQXR0cmli
dXRlSXNDYXJldCwgW29ic2VydmVyIGN1cnJlbnRTZWxlY3Rpb25BdHRyaWJ1dGVzXSk7CisKKyAg
ICBbZWRpdG9yIGluc2VydFRleHQ6QCIuIl07CisgICAgRVhQRUNUX0VRKF9XS1NlbGVjdGlvbkF0
dHJpYnV0ZUlzQ2FyZXQgfCBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVBdFN0YXJ0T2ZTZW50ZW5jZSwg
W29ic2VydmVyIGN1cnJlbnRTZWxlY3Rpb25BdHRyaWJ1dGVzXSk7CisKKyAgICBbZWRpdG9yIG1v
dmVCYWNrd2FyZF07CisgICAgRVhQRUNUX0VRKF9XS1NlbGVjdGlvbkF0dHJpYnV0ZUlzQ2FyZXQs
IFtvYnNlcnZlciBjdXJyZW50U2VsZWN0aW9uQXR0cmlidXRlc10pOworCisgICAgW2VkaXRvciBt
b3ZlRm9yd2FyZF07CisgICAgRVhQRUNUX0VRKF9XS1NlbGVjdGlvbkF0dHJpYnV0ZUlzQ2FyZXQg
fCBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVBdFN0YXJ0T2ZTZW50ZW5jZSwgW29ic2VydmVyIGN1cnJl
bnRTZWxlY3Rpb25BdHRyaWJ1dGVzXSk7CisKKyAgICBbZWRpdG9yIGRlbGV0ZUJhY2t3YXJkc107
CisgICAgRVhQRUNUX0VRKF9XS1NlbGVjdGlvbkF0dHJpYnV0ZUlzQ2FyZXQsIFtvYnNlcnZlciBj
dXJyZW50U2VsZWN0aW9uQXR0cmlidXRlc10pOworCisgICAgW2VkaXRvciBpbnNlcnRQYXJhZ3Jh
cGhdOworICAgIEVYUEVDVF9FUShfV0tTZWxlY3Rpb25BdHRyaWJ1dGVJc0NhcmV0IHwgX1dLU2Vs
ZWN0aW9uQXR0cmlidXRlQXRTdGFydE9mU2VudGVuY2UsIFtvYnNlcnZlciBjdXJyZW50U2VsZWN0
aW9uQXR0cmlidXRlc10pOworCisgICAgW2VkaXRvciBzZWxlY3RBbGxdOworICAgIEVYUEVDVF9F
UShfV0tTZWxlY3Rpb25BdHRyaWJ1dGVJc1JhbmdlIHwgX1dLU2VsZWN0aW9uQXR0cmlidXRlQXRT
dGFydE9mU2VudGVuY2UsIFtvYnNlcnZlciBjdXJyZW50U2VsZWN0aW9uQXR0cmlidXRlc10pOwor
CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkucmVtb3Zl
QWxsUmFuZ2VzKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgW3dlYlZpZXcgd2FpdEZv
ck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9FUShfV0tTZWxlY3Rpb25BdHRy
aWJ1dGVOb1NlbGVjdGlvbiwgW29ic2VydmVyIGN1cnJlbnRTZWxlY3Rpb25BdHRyaWJ1dGVzXSk7
Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>