<?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>143615</bug_id>
          
          <creation_ts>2015-04-10 12:32:36 -0700</creation_ts>
          <short_desc>[iOS] When entering optimized fullscreen, standard fullscreen view should exit.</short_desc>
          <delta_ts>2015-04-13 16:42:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>143680</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1084365</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-10 12:32:36 -0700</bug_when>
    <thetext>[iOS] When entering optimized fullscreen, standard fullscreen view should exit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084368</commentid>
    <comment_count>1</comment_count>
      <attachid>250527</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-10 12:46:48 -0700</bug_when>
    <thetext>Created attachment 250527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084370</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-10 12:49:34 -0700</bug_when>
    <thetext>Attachment 250527 did not pass style-queue:


ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:995:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:1209:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085001</commentid>
    <comment_count>3</comment_count>
      <attachid>250527</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-13 16:42:17 -0700</bug_when>
    <thetext>Comment on attachment 250527
Patch

Clearing flags on attachment: 250527

Committed r182766: &lt;http://trac.webkit.org/changeset/182766&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085002</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-13 16:42:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250527</attachid>
            <date>2015-04-10 12:46:48 -0700</date>
            <delta_ts>2015-04-13 16:42:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143615-20150410124556.patch</filename>
            <type>text/plain</type>
            <size>27814</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI3OGEwNjUwZTcyYjlk
NmMyNGEzMTAxMDg5OTVjNGYzYzdlM2I3OC4uZGE3NTI5YjlhYzNiNmEyZTM2Mzc3NzkxN2E4ZDVm
ZWE1NWQzNDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTA0LTEwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFdoZW4gZW50ZXJp
bmcgb3B0aW1pemVkIGZ1bGxzY3JlZW4sIHN0YW5kYXJkIGZ1bGxzY3JlZW4gdmlldyBzaG91bGQg
ZXhpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MzYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdo
ZW4gZW50ZXJpbmcgb3B0aW1pemVkIGZ1bGxzY3JlZW4gZnJvbSBzdGFuZGFyZCBmdWxsc2NyZWVu
LCB0aGUgb3JpZ2luYWwgZnVsbHNjcmVlbgorICAgICAgICB2aWV3IHNob3VsZCBhbmltYXRlIG91
dC4KKworICAgICAgICBUaGUgb3JpZ2luYWwgbWV0aG9kIGZvciBlbnRlcmluZyBvcHRpbWl6ZWQg
ZnVsbHNjcmVlbiBpcyBkZXByZWNhdGVkLCBzbyByZXBsYWNlIGl0IHdpdGgKKyAgICAgICAgdGhl
IG5ldyBtZXRob2QgKHdoaWNoIGRvZXNuJ3QgdGFrZSBjb21wbGV0aW9uIGJsb2NrcykgYW5kIHVz
ZSBkZWxlZ2F0ZSBtZXRob2RzIHRvIGRldGVjdAorICAgICAgICB3aGVuIHRoZSBhbmltYXRpb24g
dHJhbnNpdGlvbiBjb21wbGV0ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Lm1tOgorICAgICAgICAoYm9vbFN0cmluZyk6IEFkZGVkOyB1c2UgZm9yIGxvZ2dpbmcgYm9vbGVh
biBwYXJhbWV0ZXJzLgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgcGxheWVyVmll
d0NvbnRyb2xsZXJXaWxsU3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuOl0pOiBQYXNzIHRvIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRy
b2xsZXIgcGxheWVyVmlld0NvbnRyb2xsZXJEaWRTdGFydE9wdGltaXplZEZ1bGxzY3JlZW46XSk6
IERpdHRvLgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgcGxheWVyVmlld0NvbnRy
b2xsZXJXaWxsU3RvcE9wdGltaXplZEZ1bGxzY3JlZW46XSk6IERpdHRvLgorICAgICAgICAoLVtX
ZWJBVlBsYXllckNvbnRyb2xsZXIgcGxheWVyVmlld0NvbnRyb2xsZXJEaWRTdG9wT3B0aW1pemVk
RnVsbHNjcmVlbjpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBw
bGF5ZXJWaWV3Q29udHJvbGxlcldpbGxDYW5jZWxPcHRpbWl6ZWRGdWxsc2NyZWVuOl0pOiBEaXR0
by4KKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHBsYXllclZpZXdDb250cm9sbGVy
RGlkQ2FuY2VsT3B0aW1pemVkRnVsbHNjcmVlbjpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkFW
UGxheWVyQ29udHJvbGxlciBwbGF5ZXJWaWV3Q29udHJvbGxlcjpyZXN0b3JlVXNlckludGVyZmFj
ZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOiBEaXR0
by4KKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOl0p
OiBSZW1vdmUgdGhlIEtWTyByZWdpc3RyYXRpb247IG5vdyBoYW5kbGVkIGJ5IGFib3ZlIGRlbGVn
YXRlIG1ldGhvZHMuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwpOiBBZGQgbG9nZ2luZy4KKyAgICAgICAgKFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4pOiBEaXR0by4KKyAgICAg
ICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5PcHRp
bWl6ZWQpOiBVc2UgbmV3IC1zdGFydE9wdGltaXplZEZ1bGxzY3JlZW4gbWV0aG9kLgorICAgICAg
ICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlblN0YW5k
YXJkKTogQWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6ZXhpdEZ1bGxzY3JlZW5JbnRlcm5hbCk6IERpdHRvLgorICAgICAgICAoV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuSW50ZXJuYWwpOiBVc2Ug
aGFzTW9kZSgpICYgaXNNb2RlKCkgcmF0aGVyIHRoYW4gY2hlY2tpbmcgbV9tb2RlIGRpcmVjdGx5
LgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRl
QW5kRXhpdEZ1bGxzY3JlZW4pOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOiBDYWxsYmFjayBub3cgc3Rv
cmVkIG9uIHRoaXMgb2JqZWN0IHJhdGhlciB0aGFuIHRoZSBXZWJBVlBsYXllckNvbnRyb2xsZXIu
CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGlj
YWxseVNob3dWaWRlb09wdGltaXplZCk6IE1vdmVkLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6IEFkZGVkOyBz
dG9yZSB0aGUgcGFzc2VkIGNhbGxiYWNrLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OndpbGxTdGFydE9wdGltaXplZEZ1bGxzY3JlZW4pOiBFeGl0IG91dCBvZiBz
dGFuZGFyZCBmdWxsc2NyZWVuIG1vZGUgaWYgbmVjZXNzYXJ5LgorICAgICAgICAoV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0T3B0aW1pemVkRnVsbHNjcmVlbik6IE1v
dmVkIGZyb20gdGhlIHN0YXJ0IGxhbWJkYSBpbiBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKS4K
KyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RvcE9wdGlt
aXplZEZ1bGxzY3JlZW4pOiBDYWxsIHRoZSBtb2RlbCdzIHJlcXVlc3RFeGl0RnVsbHNjcmVlbigp
IG1ldGhvZC4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRT
dG9wT3B0aW1pemVkRnVsbHNjcmVlbik6IE1vdmVkIGZyb20gdGhlIHN0b3AgbGFtYmRhIGluIGVu
dGVyRnVsbHNjcmVlbk9wdGltaXplZCgpLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OndpbGxDYW5jZWxPcHRpbWl6ZWRGdWxsc2NyZWVuKTogQ2FsbCB0aGUgbW9k
ZWwncyByZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKSBtZXRob2QuCisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkQ2FuY2VsT3B0aW1pemVkRnVsbHNjcmVlbik6IE1v
dmVkIGZyb20gdGhlIHN0b3AgbGFtYmRhIGluIGVudGVyRnVsbHNjcmVlbk9wdGltaXplZCgpLgor
ICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JPcHRp
bWl6ZWRGdWxsc2NyZWVuU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcik6IE1vdmVkIGZyb20gLXBs
YXllclZpZXdDb250cm9sbGVyOnNob3VsZEV4aXRGdWxsU2NyZWVuV2l0aFJlYXNvbjouCisgICAg
ICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9kZSk6IEFkZGVkOyBD
YWxsIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCgpIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhck1vZGUpOiBEaXR0by4KKyAgICAgICAg
KC1bV2ViQVZWaWRlb0xheWVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdl
OmNvbnRleHQ6XSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6c2V0SXNPcHRpbWl6ZWQpOiBEZWxldGVkLgorCiAyMDE1LTA0LTA4ICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgR2l2ZSBlYWNoIGNhY2hl
IGdyb3VwIGEgc3RvcmFnZSBhbmQgdXNlIGl0IGluIHBsYWNlIG9mIHRoZSBzaW5nbGV0b24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCBiNzY0ZTA1MzBiZWNlZjlmNDczMmZlMjE4Y2Ji
OGVjNTkwNzk5MzNkLi41MDg4NGU5OGY2NWYzOTA5NDU3YTQxOTA2ZGIyODRhZWEzNzM2YjczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC00OSw2ICs0OSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBNKEZUUCkgXAogICAgIE0oRmlsZUFQSSkgXAogICAgIE0oRnJhbWVzKSBc
CisgICAgTShGdWxsc2NyZWVuKSBcCiAgICAgTShHYW1lcGFkKSBcCiAgICAgTShIaXN0b3J5KSBc
CiAgICAgTShJY29uRGF0YWJhc2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXgg
MTVlNTNkOGUyNDcyMmJjMDJiZWEyN2JhNDMyYTQyZjc1NzliYTEwMi4uODQ3M2Y2YjA0NDI0Yjk0
N2Q4Nzk1Yzc3MjdmOTg2MTAyYmVhNTJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgK
QEAgLTk2LDcgKzk2LDE1IEBAIHB1YmxpYzoKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KICAgICB2b2lkIHNl
dElzT3B0aW1pemVkKGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWF5QXV0b21hdGlj
YWxseVNob3dWaWRlb09wdGltaXplZCgpOwotICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCk7CisgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoc3RkOjpmdW5j
dGlvbjx2b2lkKGJvb2wpPiBjYWxsYmFjayk7CisKKyAgICB2b2lkIHdpbGxTdGFydE9wdGltaXpl
ZEZ1bGxzY3JlZW4oKTsKKyAgICB2b2lkIGRpZFN0YXJ0T3B0aW1pemVkRnVsbHNjcmVlbigpOwor
ICAgIHZvaWQgd2lsbFN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuKCk7CisgICAgdm9pZCBkaWRTdG9w
T3B0aW1pemVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgd2lsbENhbmNlbE9wdGltaXplZEZ1bGxz
Y3JlZW4oKTsKKyAgICB2b2lkIGRpZENhbmNlbE9wdGltaXplZEZ1bGxzY3JlZW4oKTsKKyAgICB2
b2lkIHByZXBhcmVGb3JPcHRpbWl6ZWRGdWxsc2NyZWVuU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxl
cih2b2lkICheKShCT09MKSk7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGJlZ2luU2Vzc2lvbigp
OwpAQCAtMTA2LDYgKzExNCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBleGl0RnVsbHNjcmVl
bkludGVybmFsKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCk7CiAgICAgdm9pZCBjbGVhbnVwRnVs
bHNjcmVlbkludGVybmFsKCk7CiAKKyAgICB2b2lkIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgdm9pZCBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVu
dDo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgYm9vbCBoYXNNb2RlKEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkgY29uc3QgeyByZXR1cm4gbV9tb2RlICYgbW9k
ZTsgfQorICAgIGJvb2wgaXNNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgbW9kZSkgY29uc3QgeyByZXR1cm4gbV9tb2RlID09IG1vZGU7IH0KKwogICAgIFJldGFpblB0
cjxXZWJBVlBsYXllckNvbnRyb2xsZXI+IG1fcGxheWVyQ29udHJvbGxlcjsKICAgICBSZXRhaW5Q
dHI8QVZQbGF5ZXJWaWV3Q29udHJvbGxlcj4gbV9wbGF5ZXJWaWV3Q29udHJvbGxlcjsKICAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gbV92aWRlb0xheWVyOwpAQCAtMTE5LDYgKzEzMiw3IEBAIHByb3Rl
Y3RlZDoKICAgICBSZXRhaW5QdHI8VUlWaWV3PiBtX3BhcmVudFZpZXc7CiAgICAgUmV0YWluUHRy
PFVJV2luZG93PiBtX3BhcmVudFdpbmRvdzsKICAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1fbW9kZTsKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IG1fcHJl
cGFyZVRvSW5saW5lQ2FsbGJhY2s7CiAgICAgYm9vbCBtX2V4aXRSZXF1ZXN0ZWQ7CiAgICAgYm9v
bCBtX2V4aXRDb21wbGV0ZWQ7CiAgICAgYm9vbCBtX2VudGVyUmVxdWVzdGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDNlZDZjY2I3YmI5MjA1YWViMTAyODg1Mjg2MTQzMzhh
MDMyMTg0NTYuLmFjMjQwZjk2Y2IwMjVjNjEyMGIxODk5NmM1NDk5NWU2NDA4M2FmYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTMxLDE1ICszMSwxNSBAQAogI2ltcG9ydCAi
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCIKIAogI2ltcG9ydCAiQVZLaXRTUEku
aCIKLSNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIkdlb21ldHJ5VXRpbGl0aWVzLmgiCisj
aW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1Mu
aCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKKyNpbXBvcnQgIldlYkNvcmVUaHJlYWRSdW4uaCIKICNpbXBvcnQgIldlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZUaW1lLmg+CiAjaW1wb3J0
IDxVSUtpdC9VSUtpdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3NJT1MuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTY1LDYgKzY1LDE0IEBAIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlWaWV3KQogU09GVF9MSU5L
X0NMQVNTKFVJS2l0LCBVSVZpZXdDb250cm9sbGVyKQogU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBV
SUNvbG9yKQogCisjaWYgIUxPR19ESVNBQkxFRAorc3RhdGljIGNvbnN0IGNoYXIqIGJvb2xTdHJp
bmcoYm9vbCB2YWwpCit7CisgICAgcmV0dXJuIHZhbCA/ICJ0cnVlIiA6ICJmYWxzZSI7Cit9Cisj
ZW5kaWYKKworCiBAY2xhc3MgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbjsKIAogQGludGVyZmFj
ZSBXZWJBVlBsYXllckNvbnRyb2xsZXIgOiBOU09iamVjdCA8QVZQbGF5ZXJWaWV3Q29udHJvbGxl
ckRlbGVnYXRlPgpAQCAtMTE1LDggKzEyMyw2IEBAIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlD
b2xvcikKIEBwcm9wZXJ0eSBBVlBsYXllckNvbnRyb2xsZXJFeHRlcm5hbFBsYXliYWNrVHlwZSBl
eHRlcm5hbFBsYXliYWNrVHlwZTsKIEBwcm9wZXJ0eSAocmV0YWluKSBOU1N0cmluZyAqZXh0ZXJu
YWxQbGF5YmFja0FpclBsYXlEZXZpY2VMb2NhbGl6ZWROYW1lOwogCi1AcHJvcGVydHkgKGNvcHkp
IHZvaWQgKF5leGl0T3B0aW1pemVkQ2FsbGJhY2spKEJPT0wgcmVzdG9yZWQpOwotCiAtIChCT09M
KXBsYXllclZpZXdDb250cm9sbGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmll
d0NvbnRyb2xsZXIgc2hvdWxkRXhpdEZ1bGxTY3JlZW5XaXRoUmVhc29uOihBVlBsYXllclZpZXdD
b250cm9sbGVyRXhpdEZ1bGxTY3JlZW5SZWFzb24pcmVhc29uOwogQGVuZAogCkBAIC0xODYsNiAr
MTkyLDQyIEBAIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlDb2xvcikKICAgICByZXR1cm4gc2Vs
Zi5wbGF5ZXJDb250cm9sbGVyUHJveHk7CiB9CiAKKy0gKHZvaWQpcGxheWVyVmlld0NvbnRyb2xs
ZXJXaWxsU3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuOihBVlBsYXllclZpZXdDb250cm9sbGVyICop
cGxheWVyVmlld0NvbnRyb2xsZXIKK3sKKyAgICBVTlVTRURfUEFSQU0ocGxheWVyVmlld0NvbnRy
b2xsZXIpOworICAgIHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+d2lsbFN0YXJ0T3B0aW1pemVk
RnVsbHNjcmVlbigpOworfQorCistICh2b2lkKXBsYXllclZpZXdDb250cm9sbGVyRGlkU3RhcnRP
cHRpbWl6ZWRGdWxsc2NyZWVuOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0Nv
bnRyb2xsZXIKK3sKKyAgICBVTlVTRURfUEFSQU0ocGxheWVyVmlld0NvbnRyb2xsZXIpOworICAg
IHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+ZGlkU3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuKCk7
Cit9CisKKy0gKHZvaWQpcGxheWVyVmlld0NvbnRyb2xsZXJXaWxsU3RvcE9wdGltaXplZEZ1bGxz
Y3JlZW46KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlcgorewor
ICAgIFVOVVNFRF9QQVJBTShwbGF5ZXJWaWV3Q29udHJvbGxlcik7CisgICAgc2VsZi5mdWxsc2Ny
ZWVuSW50ZXJmYWNlLT53aWxsU3RvcE9wdGltaXplZEZ1bGxzY3JlZW4oKTsKK30KKworLSAodm9p
ZClwbGF5ZXJWaWV3Q29udHJvbGxlckRpZFN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuOihBVlBsYXll
clZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRyb2xsZXIKK3sKKyAgICBVTlVTRURfUEFS
QU0ocGxheWVyVmlld0NvbnRyb2xsZXIpOworICAgIHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+
ZGlkU3RvcE9wdGltaXplZEZ1bGxzY3JlZW4oKTsKK30KKworLSAodm9pZClwbGF5ZXJWaWV3Q29u
dHJvbGxlcldpbGxDYW5jZWxPcHRpbWl6ZWRGdWxsc2NyZWVuOihBVlBsYXllclZpZXdDb250cm9s
bGVyICopcGxheWVyVmlld0NvbnRyb2xsZXIKK3sKKyAgICBVTlVTRURfUEFSQU0ocGxheWVyVmll
d0NvbnRyb2xsZXIpOworICAgIHNlbGYuZnVsbHNjcmVlbkludGVyZmFjZS0+d2lsbENhbmNlbE9w
dGltaXplZEZ1bGxzY3JlZW4oKTsKK30KKworLSAodm9pZClwbGF5ZXJWaWV3Q29udHJvbGxlckRp
ZENhbmNlbE9wdGltaXplZEZ1bGxzY3JlZW46KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5
ZXJWaWV3Q29udHJvbGxlcgoreworICAgIFVOVVNFRF9QQVJBTShwbGF5ZXJWaWV3Q29udHJvbGxl
cik7CisgICAgc2VsZi5mdWxsc2NyZWVuSW50ZXJmYWNlLT5kaWRDYW5jZWxPcHRpbWl6ZWRGdWxs
c2NyZWVuKCk7Cit9CisKIC0gKEJPT0wpcGxheWVyVmlld0NvbnRyb2xsZXI6KEFWUGxheWVyVmll
d0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciBzaG91bGRFeGl0RnVsbFNjcmVlbldp
dGhSZWFzb246KEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJlYXNvbilyZWFz
b24KIHsKICAgICBVTlVTRURfUEFSQU0ocGxheWVyVmlld0NvbnRyb2xsZXIpOwpAQCAtMjAzLDE2
ICsyNDUsNyBAQCBTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29sb3IpCiAtICh2b2lkKXBsYXll
clZpZXdDb250cm9sbGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRy
b2xsZXIgcmVzdG9yZVVzZXJJbnRlcmZhY2VGb3JPcHRpbWl6ZWRGdWxsc2NyZWVuU3RvcFdpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN0b3JlZCkpY29tcGxldGlvbkhhbmRs
ZXIKIHsKICAgICBVTlVTRURfUEFSQU0ocGxheWVyVmlld0NvbnRyb2xsZXIpOwotICAgIHNlbGYu
ZXhpdE9wdGltaXplZENhbGxiYWNrID0gY29tcGxldGlvbkhhbmRsZXI7Ci0gICAgc2VsZi5mdWxs
c2NyZWVuSW50ZXJmYWNlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKLX0KLQotLSAo
dm9pZClwbGF5ZXJWaWV3Q29udHJvbGxlcldpbGxDYW5jZWxPcHRpbWl6ZWRGdWxsc2NyZWVuOihB
VlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRyb2xsZXIKLXsKLSAgICBVTlVT
RURfUEFSQU0ocGxheWVyVmlld0NvbnRyb2xsZXIpOwotICAgIGlmICghc2VsZi5kZWxlZ2F0ZSkK
LSAgICAgICAgcmV0dXJuCi0gICAgc2VsZi5kZWxlZ2F0ZS0+cmVxdWVzdEV4aXRGdWxsc2NyZWVu
KCk7CisgICAgc2VsZi5mdWxsc2NyZWVuSW50ZXJmYWNlLT5wcmVwYXJlRm9yT3B0aW1pemVkRnVs
bHNjcmVlblN0b3BXaXRoQ29tcGxldGlvbkhhbmRsZXIoY29tcGxldGlvbkhhbmRsZXIpOwogfQog
CiAtICh2b2lkKXBsYXk6KGlkKXNlbmRlcgpAQCAtNTc1LDI5ICs2MDgsOSBAQCBTT0ZUX0xJTktf
Q0xBU1MoVUlLaXQsIFVJQ29sb3IpCiAKIC0gKHZvaWQpc2V0UGxheWVyVmlld0NvbnRyb2xsZXI6
KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlcgogewotICAgIE5T
U3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3Iob3B0
aW1pemVkRnVsbHNjcmVlbkFjdGl2ZSkpOwotCi0gICAgW19hdlBsYXllclZpZXdDb250cm9sbGVy
IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpwcm9wZXJ0eU5hbWVdOwogICAgIF9hdlBs
YXllclZpZXdDb250cm9sbGVyID0gcGxheWVyVmlld0NvbnRyb2xsZXI7Ci0gICAgW19hdlBsYXll
clZpZXdDb250cm9sbGVyIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpwcm9wZXJ0eU5hbWUg
b3B0aW9uczooTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyB8IE5TS2V5VmFsdWVPYnNlcnZp
bmdPcHRpb25PbGQpIGNvbnRleHQ6bmlsXTsKLX0KLQotLSAodm9pZClvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5T
RGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAotewotICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0KTsKLSAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKLQotICAgIE5TU3Ry
aW5nKiBwcm9wZXJ0eU5hbWUgPSBOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3Iob3B0aW1p
emVkRnVsbHNjcmVlbkFjdGl2ZSkpOwotCi0gICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmlu
Zzpwcm9wZXJ0eU5hbWVdICYmIGNoYW5nZVtOU0tleVZhbHVlQ2hhbmdlTmV3S2V5XSkgewotICAg
ICAgICBCT09MIG9sZEFjdGl2ZSA9IFtjaGFuZ2VbTlNLZXlWYWx1ZUNoYW5nZU9sZEtleV0gYm9v
bFZhbHVlXTsKLSAgICAgICAgQk9PTCBhY3RpdmUgPSBbY2hhbmdlW05TS2V5VmFsdWVDaGFuZ2VO
ZXdLZXldIGJvb2xWYWx1ZV07Ci0gICAgICAgIGlmIChvbGRBY3RpdmUgIT0gYWN0aXZlICYmIFtf
YXZQbGF5ZXJDb250cm9sbGVyIGZ1bGxzY3JlZW5JbnRlcmZhY2VdKQotICAgICAgICAgICAgW19h
dlBsYXllckNvbnRyb2xsZXIgZnVsbHNjcmVlbkludGVyZmFjZV0tPnNldElzT3B0aW1pemVkKGFj
dGl2ZSk7Ci0gICAgfQogfQogCi0KIC0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAq
KXZpZGVvU3VibGF5ZXIKIHsKICAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7CkBA
IC04ODcsNiArOTAwLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIKIAogdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwoUGxhdGZv
cm1MYXllciYgdmlkZW9MYXllciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbFJlY3Qs
IFVJVmlldyogcGFyZW50VmlldywgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSBtb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbikKIHsKKyAgICBMT0coRnVsbHNj
cmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW5J
bnRlcm5hbCglcCkiLCB0aGlzKTsKICAgICBVTlVTRURfUEFSQU0odmlkZW9MYXllcik7CiAgICAg
VU5VU0VEX1BBUkFNKG1vZGUpOwogCkBAIC05NDgsNiArOTYyLDggQEAgdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwoUGxhdGZvcm1M
YXllciYgdmkKIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJG
dWxsc2NyZWVuKCkKIHsKKyAgICBMT0coRnVsbHNjcmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7CisKICAgICBtX2V4aXRD
b21wbGV0ZWQgPSBmYWxzZTsKICAgICBtX2V4aXRSZXF1ZXN0ZWQgPSBmYWxzZTsKICAgICBtX2Vu
dGVyUmVxdWVzdGVkID0gdHJ1ZTsKQEAgLTk2OCw1MCArOTg0LDE3IEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbk9wdGltaXplZCgpCiB7CiAg
ICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRo
aXMpOwogCi0gICAgYXV0byBzdGFydENvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHN0cm9uZ1Ro
aXNdIChCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKikgewotICAgICAgICBbbV9wbGF5ZXJWaWV3Q29u
dHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsKLQotICAgICAgICBXZWJUaHJl
YWRSdW4oW3RoaXMsIHN0cm9uZ1RoaXMsIHN1Y2Nlc3NdIHsKLSAgICAgICAgICAgIFttX3dpbmRv
dyBzZXRIaWRkZW46WUVTXTsKLSAgICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlcikKLSAgICAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50
ZXJGdWxsc2NyZWVuKCk7Ci0KLSAgICAgICAgICAgIGlmICghc3VjY2VzcykgewotICAgICAgICAg
ICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAgICAgICAgICAgICAgICAgICBt
X3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfTsKLQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMjAwMTg2OTI+IEZpeCBBVktp
dCBkZXByZWNhdGlvbiB3YXJuaW5ncwotICAgIGF1dG8gc3RvcENvbXBsZXRpb25IYW5kbGVyID0g
W3RoaXMsIHN0cm9uZ1RoaXNdIChBVlBsYXllclZpZXdDb250cm9sbGVyT3B0aW1pemVkRnVsbHNj
cmVlblN0b3BSZWFzb24gcmVhc29uKSB7Ci0gICAgICAgIG1fZXhpdENvbXBsZXRlZCA9IHRydWU7
Ci0KLSAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyICYmIHJlYXNvbiA9PSBB
VlBsYXllclZpZXdDb250cm9sbGVyT3B0aW1pemVkRnVsbHNjcmVlblN0b3BSZWFzb25TdG9wcGVk
KQotICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZSgpOwotICAgICAgICBpZiAobV9leGl0UmVxdWVzdGVkKSB7Ci0gICAgICAg
ICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldEJhY2tncm91bmRDb2xvcjpbW2dldFVJQ29s
b3JDbGFzcygpIGNsZWFyQ29sb3JdIENHQ29sb3JdXTsKLSAgICAgICAgICAgIFtbbV9wbGF5ZXJW
aWV3Q29udHJvbGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29sb3JDbGFzcygp
IGNsZWFyQ29sb3JdXTsKLSAgICAgICAgICAgIFdlYlRocmVhZFJ1bihbdGhpcywgc3Ryb25nVGhp
c10gewotICAgICAgICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKLSAg
ICAgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEV4aXRGdWxs
c2NyZWVuKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAgICAgICAgICAgICAgIG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwtPnJlcXVlc3RFeGl0RnVsbHNjcmVlbigpOwotICAgICAgICB9Ci0gICAgfTsK
LQotICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHN0YXJ0T3B0aW1pemVkRnVsbHNjcmVlbldp
dGhTdGFydENvbXBsZXRpb25IYW5kbGVyOnN0YXJ0Q29tcGxldGlvbkhhbmRsZXIgc3RvcENvbXBs
ZXRpb25IYW5kbGVyOnN0b3BDb21wbGV0aW9uSGFuZGxlcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCVwKSIsIHRoaXMpOworICAgIFttX3Bs
YXllclZpZXdDb250cm9sbGVyIHN0YXJ0T3B0aW1pemVkRnVsbHNjcmVlbl07CiB9CiAKIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlblN0YW5kYXJk
KCkKIHsKKyAgICBMT0coRnVsbHNjcmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjplbnRlckZ1bGxzY3JlZW5TdGFuZGFyZCglcCkiLCB0aGlzKTsKICAgICBSZWZQdHI8V2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9uZ1RoaXModGhpcyk7Ci0gICAgW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVy
Olt0aGlzLCBzdHJvbmdUaGlzXSAoQk9PTCwgTlNFcnJvciopIHsKKyAgICBbbV9wbGF5ZXJWaWV3
Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6W3RoaXMsIHN0
cm9uZ1RoaXNdIChCT09MIHN1Y2NlZWRlZCwgTlNFcnJvciopIHsKKyAgICAgICAgVU5VU0VEX1BB
UkFNKHN1Y2NlZWRlZCk7CisgICAgICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlblN0YW5kYXJkIC0gbGFtYmRhKCVwKSAt
IHN1Y2NlZWRlZCglcykiLCB0aGlzLCBib29sU3RyaW5nKHN1Y2NlZWRlZCkpOwogICAgICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsKIAog
ICAgICAgICBXZWJUaHJlYWRSdW4oW3RoaXMsIHN0cm9uZ1RoaXNdIHsKQEAgLTEwNDEsNiArMTAy
NCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2Ny
ZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZpCiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuSW50ZXJuYWwoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgZmluYWxSZWN0KQogeworICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuSW50ZXJuYWwoJXApIiwgdGhpcyk7CiAg
ICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOk5PXTsK
ICAgICBpZiAobV92aWV3Q29udHJvbGxlcikKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgdmlld10uZnJhbWUgPSBbbV9wYXJlbnRWaWV3IGNvbnZlcnRSZWN0OmZpbmFsUmVjdCB0b1Zp
ZXc6bmlsXTsKQEAgLTEwNTIsMTYgKzEwMzYsMTYgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW5JbnRlcm5hbChjb25zdCBXZWJDb3JlOjpJbnQK
ICAgICBbW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gbGF5b3V0SWZOZWVkZWRdOwogCiAK
LSAgICBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVP
cHRpbWl6ZWQpIHsKKyAgICBpZiAoaXNNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGVPcHRpbWl6ZWQpKSB7CiAgICAgICAgIFttX3dpbmRvdyBzZXRIaWRkZW46Tk9dOwog
ICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1pemVkRnVsbHNjcmVlbl07
Ci0gICAgfSBlbHNlIGlmIChtX21vZGUgPT0gKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGVPcHRpbWl6ZWQgfCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
U3RhbmRhcmQpKSB7CisgICAgfSBlbHNlIGlmIChpc01vZGUoSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCB8IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGVTdGFuZGFyZCkpIHsKICAgICAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOk5PIGNvbXBsZXRpb25IYW5kbGVyOltzdHJv
bmdUaGlzXSAoQk9PTCwgTlNFcnJvciopIHsKICAgICAgICAgICAgIFtzdHJvbmdUaGlzLT5tX3dp
bmRvdyBzZXRIaWRkZW46Tk9dOwogICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fcGxheWVyVmll
d0NvbnRyb2xsZXIgc3RvcE9wdGltaXplZEZ1bGxzY3JlZW5dOwogICAgICAgICB9XTsKLSAgICB9
IGVsc2UgaWYgKG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
U3RhbmRhcmQpIHsKKyAgICB9IGVsc2UgaWYgKGlzTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpKSB7CiAgICAgICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ryb25nVGhpcyh0aGlzKTsKICAgICAgICAgW21fcGxheWVy
Vmlld0NvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6W3N0cm9u
Z1RoaXNdIChCT09MLCBOU0Vycm9yKikgewogICAgICAgICAgICAgc3Ryb25nVGhpcy0+bV9leGl0
Q29tcGxldGVkID0gdHJ1ZTsKQEAgLTEwOTksNiArMTA4Myw3IEBAIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKCkKIAogdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW5JbnRlcm5hbCgpCiB7
CisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
Y2xlYW51cEZ1bGxzY3JlZW5JbnRlcm5hbCglcCkiLCB0aGlzKTsKICAgICBpZiAobV93aW5kb3cp
IHsKICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOwogICAgICAgICBbbV93aW5kb3cg
c2V0Um9vdFZpZXdDb250cm9sbGVyOm5pbF07CkBAIC0xMTEyLDkgKzEwOTcsOSBAQCB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbkludGVybmFs
KCkKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtt
X3BsYXllclZpZXdDb250cm9sbGVyIHNldFBsYXllckNvbnRyb2xsZXI6bmlsXTsKICAgICAKLSAg
ICBpZiAobV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGlt
aXplZCkKKyAgICBpZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlT3B0aW1pemVkKSkKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgY2FuY2VsT3B0
aW1pemVkRnVsbHNjcmVlbl07Ci0gICAgaWYgKG1fbW9kZSAmIEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkKKyAgICBpZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVt
ZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpKQogICAgICAgICBbbV9wbGF5ZXJWaWV3
Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOk5PIGNvbXBsZXRpb25IYW5kbGVyOm5p
bF07CiAgICAgCiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHJlbW92ZUZyb21T
dXBlcnZpZXddOwpAQCAtMTE1Niw5ICsxMTQxLDExIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQogICAgIGlmICgh
bV9lbnRlclJlcXVlc3RlZCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmIChtX21vZGUg
JiBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgIGlm
IChoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQp
KQogICAgICAgICByZXR1cm47CiAgICAgCisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbiglcCki
LCB0aGlzKTsKKwogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4g
c3Ryb25nVGhpcyh0aGlzKTsKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBbc3Ryb25nVGhpc10gewogICAgICAgICBbc3Ryb25nVGhpcy0+bV93aW5kb3cgc2V0
SGlkZGVuOllFU107CkBAIC0xMTcyLDYyICsxMTU5LDE2OSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkKIAogdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCkKIHsKKyAgICBMT0co
RnVsbHNjcmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRv
UmV0dXJuVG9JbmxpbmUoJXApIC0gdmlzaWJsZSglcykiLCB0aGlzLCBib29sU3RyaW5nKHZpc2li
bGUpKTsKICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9u
Z1RoaXModGhpcyk7CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgW3N0cm9uZ1RoaXMsIHZpc2libGUsIGlubGluZVJlY3RdIHsKLSAgICAgICAgaWYgKHN0cm9u
Z1RoaXMtPm1fcGxheWVyQ29udHJvbGxlci5nZXQoKS5leGl0T3B0aW1pemVkQ2FsbGJhY2spIHsK
KyAgICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fcHJlcGFyZVRvSW5saW5lQ2FsbGJhY2spIHsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fdmlld0NvbnRyb2xsZXIp
CiAgICAgICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fcGxheWVyVmlld0NvbnRyb2xsZXIgdmll
d10uZnJhbWUgPSBbc3Ryb25nVGhpcy0+bV9wYXJlbnRWaWV3IGNvbnZlcnRSZWN0OmlubGluZVJl
Y3QgdG9WaWV3Om5pbF07CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgW3N0cm9u
Z1RoaXMtPm1fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBpbmxpbmVSZWN0Owot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBzdHJvbmdUaGlzLT5tX3BsYXllckNvbnRyb2xsZXIu
Z2V0KCkuZXhpdE9wdGltaXplZENhbGxiYWNrKHZpc2libGUpOworCisgICAgICAgICAgICBzdGQ6
OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IGNhbGxiYWNrID0gV1RGOjptb3ZlKHN0cm9uZ1RoaXMtPm1f
cHJlcGFyZVRvSW5saW5lQ2FsbGJhY2spOworICAgICAgICAgICAgY2FsbGJhY2sodmlzaWJsZSk7
CiAgICAgICAgIH0KICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6c2V0SXNPcHRpbWl6ZWQoYm9vbCBhY3RpdmUpCitib29sIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvT3B0aW1pemVkKCkK
IHsKLSAgICBpZiAobV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZVN0YW5kYXJkKSB7Ci0gICAgICAgIGlmICghYWN0aXZlKQotICAgICAgICAgICAgbV9tb2RlICY9
IH5IVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBtX21vZGUgfD0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxs
c2NyZWVuTW9kZU9wdGltaXplZDsKLSAgICB9CisgICAgcmV0dXJuIFttX3BsYXllckNvbnRyb2xs
ZXIgaXNQbGF5aW5nXSAmJiBtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkICYmIHdrSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKCk7Cit9
CiAKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKLSAgICAgICAgbV92aWRlb0Z1bGxz
Y3JlZW5Nb2RlbC0+ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKG1fZXhpdFJlcXVlc3RlZCA/IEhUTUxN
ZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lIDogbV9tb2RlKTsKK3ZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZShzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IGNhbGxiYWNrKQoreworICAgIG1fcHJlcGFyZVRv
SW5saW5lQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIpCisgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUoKTsKK30KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6d2lsbFN0YXJ0T3B0aW1pemVkRnVsbHNjcmVlbigpCit7CisgICAgTE9HKEZ1bGxzY3Jl
ZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0YXJ0T3B0aW1pemVk
RnVsbHNjcmVlbiglcCkiLCB0aGlzKTsKKyAgICBzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpOwogCi0gICAgaWYgKG1fbW9kZSA9PSBIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQorICAgIGlmICghaGFzTW9k
ZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBbbV93aW5kb3cgc2V0SGlkZGVuOm1fbW9kZSAmIEhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWRdOwotICAgIAotICAgIGlmIChtX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciAmJiB+bV9tb2RlICYgSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkKLSAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworICAgIFJlZlB0cjxXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ryb25nVGhpcyh0aGlzKTsKKyAgICBmdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmUoW3N0cm9uZ1RoaXNdKGJvb2wgdmlzaWJsZSkgeworICAgICAg
ICBMT0coRnVsbHNjcmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxs
U3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuIC0gbGFtYmRhKCVwKSAtIHZpc2libGUoJXMpIiwgc3Ry
b25nVGhpcy5nZXQoKSwgYm9vbFN0cmluZyh2aXNpYmxlKSk7CisKKyAgICAgICAgaWYgKCF2aXNp
YmxlKSB7CisgICAgICAgICAgICBbc3Ryb25nVGhpcy0+bV93aW5kb3cgc2V0SGlkZGVuOllFU107
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBbW3N0cm9uZ1RoaXMt
Pm1fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gbGF5b3V0SWZOZWVkZWRdOworCisgICAgICAg
IFtzdHJvbmdUaGlzLT5tX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5pbWF0
ZWQ6WUVTIGNvbXBsZXRpb25IYW5kbGVyOltzdHJvbmdUaGlzXSAoQk9PTCBjb21wbGV0ZWQsIE5T
RXJyb3IqKSB7CisgICAgICAgICAgICBpZiAoIWNvbXBsZXRlZCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBzdHJvbmdUaGlzLT5jbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVu
dDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKTsKKyAgICAgICAgICAgIFtzdHJvbmdUaGlz
LT5tX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKKyAgICAgICAgfV07CisgICAgfSk7Cit9CisKK3Zv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0T3B0aW1pemVkRnVs
bHNjcmVlbigpCit7CisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZGlkU3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuKCVwKSIsIHRoaXMpOworICAg
IFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOwor
CisgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlz
KHRoaXMpOworICAgIFdlYlRocmVhZFJ1bihbc3Ryb25nVGhpc10geworICAgICAgICBbc3Ryb25n
VGhpcy0+bV93aW5kb3cgc2V0SGlkZGVuOllFU107CisgICAgICAgIGlmIChzdHJvbmdUaGlzLT5t
X2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgICAgIHN0cm9uZ1RoaXMtPm1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFbnRlckZ1bGxzY3JlZW4oKTsKKyAgICB9KTsKK30K
Kwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BPcHRpbWl6
ZWRGdWxsc2NyZWVuKCkKK3sKKyAgICBMT0coRnVsbHNjcmVlbiwgIldlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Ojp3aWxsU3RvcE9wdGltaXplZEZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7
CisgICAgW21fd2luZG93IHNldEhpZGRlbjpOT107CisKKyAgICBSZWZQdHI8V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9uZ1RoaXModGhpcyk7CisgICAgV2ViVGhyZWFkUnVu
KFtzdHJvbmdUaGlzXSB7CisgICAgICAgIGlmIChzdHJvbmdUaGlzLT5tX3ZpZGVvRnVsbHNjcmVl
bk1vZGVsKQorICAgICAgICAgICAgc3Ryb25nVGhpcy0+bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+
cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CisgICAgfSk7Cit9CiAKLSAgICBpZiAoIW1fZXhpdFJl
cXVlc3RlZCB8fCBhY3RpdmUpCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpkaWRTdG9wT3B0aW1pemVkRnVsbHNjcmVlbigpCit7CisgICAgTE9HKEZ1bGxzY3JlZW4sICJX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkU3RvcE9wdGltaXplZEZ1bGxzY3Jl
ZW4oJXApIiwgdGhpcyk7CisgICAgaWYgKGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9leGl0Q29t
cGxldGVkID0gdHJ1ZTsKKwogICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0QmFja2dyb3Vu
ZENvbG9yOltbZ2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl0gQ0dDb2xvcl1dOwogICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29s
b3JDbGFzcygpIGNsZWFyQ29sb3JdXTsKLSAgICBXZWJUaHJlYWRSdW4oXnsKLSAgICAgICAgaWYg
KG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXItPmRpZEV4aXRGdWxsc2NyZWVuKCk7CisKKyAgICBSZWZQdHI8V2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9uZ1RoaXModGhpcyk7CisgICAgV2ViVGhyZWFk
UnVuKFtzdHJvbmdUaGlzXSB7CisgICAgICAgIHN0cm9uZ1RoaXMtPmNsZWFyTW9kZShIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKTsKKyAgICAgICAgW3N0cm9u
Z1RoaXMtPm1fd2luZG93IHNldEhpZGRlbjpZRVNdOworICAgICAgICBpZiAoc3Ryb25nVGhpcy0+
bV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICBzdHJvbmdUaGlzLT5tX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRXhpdEZ1bGxzY3JlZW4oKTsKICAgICB9KTsKIH0K
IAotYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxs
eVNob3dWaWRlb09wdGltaXplZCgpCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Ojp3aWxsQ2FuY2VsT3B0aW1pemVkRnVsbHNjcmVlbigpCiB7Ci0gICAgcmV0dXJuIFttX3Bs
YXllckNvbnRyb2xsZXIgaXNQbGF5aW5nXSAmJiBtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkICYmIHdrSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3Vw
cG9ydGVkKCk7CisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6d2lsbENhbmNlbE9wdGltaXplZEZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7CisgICAg
W21fd2luZG93IHNldEhpZGRlbjpOT107CisgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRC
YWNrZ3JvdW5kQ29sb3I6W1tnZXRVSUNvbG9yQ2xhc3MoKSBjbGVhckNvbG9yXSBDR0NvbG9yXV07
CisgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEJhY2tncm91bmRDb2xvcjpb
Z2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl1dOworCisgICAgUmVmUHRyPFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOworICAgIFdlYlRocmVhZFJ1
bihbc3Ryb25nVGhpc10geworICAgICAgICBpZiAoc3Ryb25nVGhpcy0+bV92aWRlb0Z1bGxzY3Jl
ZW5Nb2RlbCkKKyAgICAgICAgICAgIHN0cm9uZ1RoaXMtPm1fdmlkZW9GdWxsc2NyZWVuTW9kZWwt
PnJlcXVlc3RFeGl0RnVsbHNjcmVlbigpOworICAgIH0pOwogfQogCi12b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKQordm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkQ2FuY2VsT3B0aW1pemVkRnVs
bHNjcmVlbigpCiB7Ci0gICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAg
ICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KCk7CisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZGlkQ2FuY2VsT3B0aW1pemVkRnVsbHNjcmVlbiglcCkiLCB0aGlzKTsKKyAgICBpZiAoaGFz
TW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ+IHN0cm9uZ1RoaXModGhpcyk7CisgICAgV2ViVGhyZWFkUnVuKFtzdHJvbmdUaGlzXSB7Cisg
ICAgICAgIHN0cm9uZ1RoaXMtPmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlT3B0aW1pemVkKTsKKyAgICAgICAgW3N0cm9uZ1RoaXMtPm1fd2luZG93IHNldEhp
ZGRlbjpZRVNdOworICAgICAgICBpZiAoc3Ryb25nVGhpcy0+bV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIpCisgICAgICAgICAgICBzdHJvbmdUaGlzLT5tX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
ci0+ZGlkRXhpdEZ1bGxzY3JlZW4oKTsKKyAgICB9KTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0
aENvbXBsZXRpb25IYW5kbGVyKHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoQk9PTCByZXN0b3Jl
ZCkpCit7CisgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6cHJlcGFyZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5k
bGVyKCVwKSIsIHRoaXMpOworICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdD4gc3Ryb25nVGhpcyh0aGlzKTsKKyAgICBSZXRhaW5QdHI8aWQ+IHN0cm9uZ0NvbXBsZXRp
b25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXIgY29weV0pOworICAgIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZShbc3Ryb25nVGhpcywgc3Ryb25nQ29tcGxldGlvbkhhbmRs
ZXJdKGJvb2wgcmVzdG9yZWQpICB7CisgICAgICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JPcHRpbWl6ZWRGdWxsc2NyZWVuU3Rv
cFdpdGhDb21wbGV0aW9uSGFuZGxlciBsYW1iZGEoJXApIC0gcmVzdG9yZWQoJXMpIiwgc3Ryb25n
VGhpcy5nZXQoKSwgYm9vbFN0cmluZyhyZXN0b3JlZCkpOworICAgICAgICB2b2lkICheY29tcGxl
dGlvbkhhbmRsZXIpKEJPT0wgcmVzdG9yZWQpID0gc3Ryb25nQ29tcGxldGlvbkhhbmRsZXIuZ2V0
KCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3RvcmVkKTsKKyAgICB9KTsKK30KKwor
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9kZShIVE1MTWVkaWFF
bGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCit7CisgICAgSFRNTE1lZGlhRWxlbWVu
dDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBuZXdNb2RlID0gbV9tb2RlIHwgbW9kZTsKKyAgICBpZiAo
bV9tb2RlID09IG5ld01vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbW9kZSA9IG5ld01v
ZGU7CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAgIG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwtPmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChtX21vZGUpOworfQorCit2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVu
dDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQoreworICAgIEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUgbmV3TW9kZSA9IG1fbW9kZSAmIH5tb2RlOworICAgIGlmIChtX21v
ZGUgPT0gbmV3TW9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tb2RlID0gbmV3TW9kZTsK
KyAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKKyAgICAgICAgbV92aWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC0+ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKG1fbW9kZSk7Cit9CisKKwogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>