<?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>69189</bug_id>
          
          <creation_ts>2011-09-30 16:55:54 -0700</creation_ts>
          <short_desc>Add support for eventSender.mouseScrollBy in WTR</short_desc>
          <delta_ts>2011-09-30 17:15:44 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>476417</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-30 16:55:54 -0700</bug_when>
    <thetext>Add support for eventSender.mouseScrollBy in WTR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476418</commentid>
    <comment_count>1</comment_count>
      <attachid>109373</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-30 17:00:02 -0700</bug_when>
    <thetext>Created attachment 109373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476420</commentid>
    <comment_count>2</comment_count>
      <attachid>109374</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-30 17:04:07 -0700</bug_when>
    <thetext>Created attachment 109374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476430</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-30 17:15:44 -0700</bug_when>
    <thetext>Committed r96439: &lt;http://trac.webkit.org/changeset/96439&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109373</attachid>
            <date>2011-09-30 17:00:02 -0700</date>
            <delta_ts>2011-09-30 17:04:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69189-20110930170000.patch</filename>
            <type>text/plain</type>
            <size>17193</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2NDM4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDktMzAgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeSBpbiBXVFIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5MTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OndoZWVs
RXZlbnRTeW5jRm9yVGVzdGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgQWRkIHN5bmMgdmVyc2lvbiBvZiB3aGVlbCBldmVudCBoYW5kbGluZyBmb3IgdXNl
IGluIHRlc3RpbmcuCisKIDIwMTEtMDktMzAgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxo
byAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIEFkZCBtaXNz
aW5nIGluY2x1ZGUgZm9yIFFNaW1lRGF0YQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDk2NDMzKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2OSw3ICs4NjksMTMg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29ucwogICAgIG1fY3VycmVu
dGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMuYXBwZW5kKGV2ZW50KTsKIAogICAgIHByb2Nlc3MoKS0+
cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwotICAgIHByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6V2hlZWxFdmVudChldmVudCksIG1fcGFnZUlEKTsKKworICAgIGlmICht
X3Nob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KSB7CisgICAgICAgIGJvb2wgaGFuZGxlZCA9
IGZhbHNlOworICAgICAgICBwcm9jZXNzKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpX
aGVlbEV2ZW50U3luY0ZvclRlc3RpbmcoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6V2hlZWxF
dmVudFN5bmNGb3JUZXN0aW5nOjpSZXBseShoYW5kbGVkKSwgbV9wYWdlSUQpOworICAgICAgICBk
aWRSZWNlaXZlRXZlbnQoZXZlbnQudHlwZSgpLCBoYW5kbGVkKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpXaGVlbEV2ZW50KGV2ZW50KSwg
bV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudChj
b25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiBldmVudCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDk2NDMzKQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTMyLDYgKzExMzIsMjAgQEAgdm9pZCBXZWJQYWdlOjp3aGVlbEV2ZW50KGNvbnN0
IFdlYldoZWVsRQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZUV2
ZW50KHN0YXRpY19jYXN0PHVpbnQzMl90Pih3aGVlbEV2ZW50LnR5cGUoKSksIGhhbmRsZWQpKTsK
IH0KIAordm9pZCBXZWJQYWdlOjp3aGVlbEV2ZW50U3luY0ZvclRlc3RpbmcoY29uc3QgV2ViV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCwgYm9vbCYgaGFuZGxlZCkKK3sKKyAgICBDdXJyZW50RXZlbnQg
Y3VycmVudEV2ZW50KHdoZWVsRXZlbnQpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICh3
aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuIHx8
IHdoZWVsRXZlbnQucGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuKQorICAgICAg
ICBtX2RyYXdpbmdBcmVhLT5kaXNhYmxlRGlzcGxheVRocm90dGxpbmcoKTsKKyAgICBlbHNlIGlm
ICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVk
IHx8IHdoZWVsRXZlbnQucGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVkKQorICAg
ICAgICBtX2RyYXdpbmdBcmVhLT5lbmFibGVEaXNwbGF5VGhyb3R0bGluZygpOworI2VuZGlmCisK
KyAgICBoYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBtX3BhZ2UuZ2V0KCkp
OworfQorCiBzdGF0aWMgYm9vbCBoYW5kbGVLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50
JiBrZXlib2FyZEV2ZW50LCBQYWdlKiBwYWdlKQogewogICAgIGlmICghcGFnZS0+bWFpbkZyYW1l
KCktPnZpZXcoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAkocmV2aXNpb24gOTY0MzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00ODksNiArNDg5LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIG1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYpOwogICAgIHZvaWQg
bW91c2VFdmVudFN5bmNGb3JUZXN0aW5nKGNvbnN0IFdlYk1vdXNlRXZlbnQmLCBib29sJik7CiAg
ICAgdm9pZCB3aGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKKyAgICB2b2lkIHdoZWVs
RXZlbnRTeW5jRm9yVGVzdGluZyhjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCYpOwogICAgIHZv
aWQga2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOwogICAgIHZvaWQga2V5RXZlbnRT
eW5jRm9yVGVzdGluZyhjb25zdCBXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCYpOwogI2lmIEVOQUJM
RShHRVNUVVJFX0VWRU5UUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiA5NjQzMykKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIE1v
dXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KQogICAgIE1vdXNlRXZlbnRTeW5j
Rm9yVGVzdGluZyhXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpIC0+IChib29sIGhhbmRsZWQp
CiAgICAgV2hlZWxFdmVudChXZWJLaXQ6OldlYldoZWVsRXZlbnQgZXZlbnQpCisgICAgV2hlZWxF
dmVudFN5bmNGb3JUZXN0aW5nKFdlYktpdDo6V2ViV2hlZWxFdmVudCBldmVudCkgLT4gKGJvb2wg
aGFuZGxlZCkKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgR2VzdHVyZUV2ZW50KFdl
YktpdDo6V2ViR2VzdHVyZUV2ZW50IGV2ZW50KQogI2VuZGlmCkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjQzOCkKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDExLTA5LTMw
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnkgaW4gV1RSCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE4OQorCisgICAgICAgIEFkZCBpbXBsZW1lbnRh
dGlvbiBvZiBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5IGZvciB0aGUgbWFjLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9FdmVudFNlbmRlclByb3h5Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjprZXlEb3duKToKKyAgICAg
ICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VTY3JvbGxCeSk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJv
bUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNl
bmRlclByb3h5Lm1tOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5KToKKwogMjAxMS0wOS0zMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBmYXN0L2Zvcm1zL3RleHQtY29udHJvbC1pbnRyaW5zaWMtd2lkdGhzLmh0
bWwgZmFpbHMgb24gTWFjIGlmIFdvcmQvT2ZmaWNlIGZvbnRzIGFyZSBpbnN0YWxsZWQKSW5kZXg6
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCShyZXZpc2lvbiA5NjQz
MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlRG93bih1bnNp
Z25lZCBidXR0b24sIFdLRXZlbnRNb2RpZmllcnMpOwogICAgIHZvaWQgbW91c2VVcCh1bnNpZ25l
ZCBidXR0b24sIFdLRXZlbnRNb2RpZmllcnMpOwogICAgIHZvaWQgbW91c2VNb3ZlVG8oZG91Ymxl
IHgsIGRvdWJsZSB5KTsKKyAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKKwog
ICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CiAKICAgICB2b2lkIGtleURv
d24oV0tTdHJpbmdSZWYga2V5LCBXS0V2ZW50TW9kaWZpZXJzLCB1bnNpZ25lZCBsb2NhdGlvbik7
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2aXNp
b24gOTY0MzMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTc0LDYgKzU3NCwyMCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+
IFRlc3RDb250cm9sbGVyOjpkCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCisg
ICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VOYW1lLCAi
TW91c2VTY3JvbGxCeSIpKSB7CisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
eEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7CisgICAg
ICAgICAgICBkb3VibGUgeCA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVS
ZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB4S2V5
LmdldCgpKSkpOworCisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geUtleSA9
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlkiKSk7CisgICAgICAgICAg
ICBkb3VibGUgeSA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdL
RGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB5S2V5LmdldCgp
KSkpOworCisgICAgICAgICAgICAvLyBGb3J3YXJkIHRvIFdlYlByb2Nlc3MKKyAgICAgICAgICAg
IFdLUGFnZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5XZWJWaWV3KCktPnBh
Z2UoKSwgdHJ1ZSk7CisgICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPm1vdXNlU2Nyb2xs
QnkoeCwgeSk7CisgICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25v
dXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICB9CisKICAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
c3ViTWVzc2FnZU5hbWUsICJMZWFwRm9yd2FyZCIpKSB7CiAgICAgICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gdGltZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlRpbWVJbk1pbGxpc2Vjb25kcyIpKTsKICAgICAgICAgICAgIHVuc2lnbmVkIHRpbWUg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJ
bnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnks
IHRpbWVLZXkuZ2V0KCkpKSkpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3Bw
CShyZXZpc2lvbiA5NjQzMykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNyw2ICsy
MTcsNTMgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpsZWFwRm9yd2FyZAogI2VuZGlm
CiB9CiAKK3ZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6a2V5RG93bihKU1N0cmluZ1JlZiBr
ZXksIEpTVmFsdWVSZWYgbW9kaWZpZXJBcnJheSwgaW50IGxvY2F0aW9uKQoreworICAgIFdLQnVu
ZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgp
OworICAgIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUo
cGFnZSk7CisgICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNj
cmlwdENvbnRleHQoZnJhbWUpOworICAgIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzID0gcGFy
c2VNb2RpZmllckFycmF5KGNvbnRleHQsIG1vZGlmaWVyQXJyYXkpOworCisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOworICAgIFdLUmV0YWluUHRyPFdL
TXV0YWJsZURpY3Rpb25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkoQWRvcHRXSywgV0tN
dXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBzdWJNZXNzYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJT
dWJNZXNzYWdlIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFt
ZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5RG93biIpKTsKKyAg
ICBXS0RpY3Rpb25hcnlBZGRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHN1Yk1l
c3NhZ2VLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsKKworICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBrZXlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJLZXkiKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShFdmVudFNlbmRlck1lc3NhZ2VC
b2R5LmdldCgpLCBrZXlLZXkuZ2V0KCksIHRvV0soa2V5KS5nZXQoKSk7CisKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gbW9kaWZpZXJzS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiTW9kaWZpZXJzIikpOworICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVm
PiBtb2RpZmllcnNSZWYgPSBXS1VJbnQ2NENyZWF0ZShtb2RpZmllcnMpOworICAgIFdLRGljdGlv
bmFyeUFkZEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgbW9kaWZpZXJzS2V5Lmdl
dCgpLCBtb2RpZmllcnNSZWYuZ2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGxvY2F0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTG9j
YXRpb24iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IGxvY2F0aW9uUmVmID0gV0tV
SW50NjRDcmVhdGUobG9jYXRpb24pOworICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oRXZlbnRTZW5k
ZXJNZXNzYWdlQm9keS5nZXQoKSwgbG9jYXRpb25LZXkuZ2V0KCksIGxvY2F0aW9uUmVmLmdldCgp
KTsKKworICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2Vu
ZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworfQorCit2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xs
ZXI6Om1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KQoreworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBFdmVudFNlbmRlck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJFdmVudFNlbmRlciIpKTsKKyAgICBXS1JldGFpblB0cjxXS011dGFibGVE
aWN0aW9uYXJ5UmVmPiBFdmVudFNlbmRlck1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLTXV0YWJsZURp
Y3Rpb25hcnlDcmVhdGUoKSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3ViTWVz
c2FnZUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3ViTWVzc2Fn
ZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3ViTWVzc2FnZU5hbWUoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk1vdXNlU2Nyb2xsQnkiKSk7CisgICAg
V0tEaWN0aW9uYXJ5QWRkSXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBzdWJNZXNz
YWdlS2V5LmdldCgpLCBzdWJNZXNzYWdlTmFtZS5nZXQoKSk7CisKKyAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4geEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IlgiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tEb3VibGVSZWY+IHhSZWYgPSBXS0RvdWJsZUNyZWF0
ZSh4KTsKKyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0
KCksIHhLZXkuZ2V0KCksIHhSZWYuZ2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOwor
ICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiB5UmVmID0gV0tEb3VibGVDcmVhdGUoeSk7Cisg
ICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCB5S2V5
LmdldCgpLCB5UmVmLmdldCgpKTsKKworICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5h
bWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworfQogCiAjaWZkZWYg
VVNFX1dFQlBST0NFU1NfRVZFTlRfU0lNVUxBVElPTgogdm9pZCBFdmVudFNlbmRpbmdDb250cm9s
bGVyOjp1cGRhdGVDbGlja0NvdW50KFdLRXZlbnRNb3VzZUJ1dHRvbiBidXR0b24pCkBAIC0yODMs
MzIgKzMzMCw0IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bWFrZVdpbmRvd08KICAg
ICBzZXRQcm9wZXJ0eShjb250ZXh0LCB3aW5kb3dPYmplY3QsICJldmVudFNlbmRlciIsIHRoaXMs
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUsIGV4Y2VwdGlvbik7CiB9CiAKLXZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6a2V5
RG93bihKU1N0cmluZ1JlZiBrZXksIEpTVmFsdWVSZWYgbW9kaWZpZXJBcnJheSwgaW50IGxvY2F0
aW9uKQotewotICAgIFdLQnVuZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLnBhZ2UoKS0+cGFnZSgpOwotICAgIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUgPSBXS0J1bmRs
ZVBhZ2VHZXRNYWluRnJhbWUocGFnZSk7Ci0gICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1
bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQoZnJhbWUpOwotICAgIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzID0gcGFyc2VNb2RpZmllckFycmF5KGNvbnRleHQsIG1vZGlmaWVyQXJyYXkp
OwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUo
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwot
ICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2Fn
ZUJvZHkoQWRvcHRXSywgV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKLQotICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTdWJNZXNzYWdlIikpOwotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiS2V5RG93biIpKTsKLSAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKEV2ZW50U2VuZGVyTWVzc2Fn
ZUJvZHkuZ2V0KCksIHN1Yk1lc3NhZ2VLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsK
LQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXlLZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJLZXkiKSk7Ci0gICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShF
dmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBrZXlLZXkuZ2V0KCksIHRvV0soa2V5KS5nZXQo
KSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbW9kaWZpZXJzS2V5ID0gYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9kaWZpZXJzIikpOwotICAgIFdLUmV0
YWluUHRyPFdLVUludDY0UmVmPiBtb2RpZmllcnNSZWYgPSBXS1VJbnQ2NENyZWF0ZShtb2RpZmll
cnMpOwotICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQo
KSwgbW9kaWZpZXJzS2V5LmdldCgpLCBtb2RpZmllcnNSZWYuZ2V0KCkpOwotCi0gICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IGxvY2F0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiTG9jYXRpb24iKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+
IGxvY2F0aW9uUmVmID0gV0tVSW50NjRDcmVhdGUobG9jYXRpb24pOwotICAgIFdLRGljdGlvbmFy
eUFkZEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgbG9jYXRpb25LZXkuZ2V0KCks
IGxvY2F0aW9uUmVmLmdldCgpKTsKLQotICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5h
bWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXVFIKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
RXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCShyZXZpc2lvbiA5
NjQzMykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5k
aW5nQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG1vdXNlRG93bihpbnQgYnV0dG9uLCBKU1ZhbHVlUmVmIG1vZGlmaWVyQXJyYXkp
OwogICAgIHZvaWQgbW91c2VVcChpbnQgYnV0dG9uLCBKU1ZhbHVlUmVmIG1vZGlmaWVyQXJyYXkp
OwogICAgIHZvaWQgbW91c2VNb3ZlVG8oaW50IHgsIGludCB5KTsKKyAgICB2b2lkIG1vdXNlU2Ny
b2xsQnkoaW50IHgsIGludCB5KTsKICAgICB2b2lkIGxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29u
ZHMpOwogCiAgICAgdm9pZCBrZXlEb3duKEpTU3RyaW5nUmVmIGtleSwgSlNWYWx1ZVJlZiBtb2Rp
ZmllckFycmF5LCBpbnQgbG9jYXRpb24pOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCShyZXZpc2lvbiA5NjQzMykKKysrIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAgbW9kdWxlIFdUUiB7CiAgICAg
ICAgIHZvaWQgbW91c2VEb3duKGluIGxvbmcgYnV0dG9uTnVtYmVyLCBpbiBvYmplY3QgbW9kaWZp
ZXJBcnJheSk7CiAgICAgICAgIHZvaWQgbW91c2VVcChpbiBsb25nIGJ1dHRvbk51bWJlciwgaW4g
b2JqZWN0IG1vZGlmaWVyQXJyYXkpOwogICAgICAgICB2b2lkIG1vdXNlTW92ZVRvKGluIGxvbmcg
eCwgaW4gbG9uZyB5KTsKKyAgICAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGluIGxvbmcgeCwgaW4g
bG9uZyB5KTsKKwogICAgICAgICB2b2lkIGxlYXBGb3J3YXJkKGluIGxvbmcgbWlsbGlzZWNvbmRz
KTsKIAogICAgICAgICB2b2lkIGtleURvd24oaW4gRE9NU3RyaW5nIGtleSwgaW4gb2JqZWN0IG1v
ZGlmaWVyQXJyYXksIGluIGxvbmcgbG9jYXRpb24pOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCShyZXZpc2lvbiA5NjQzMykKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDkgKzI3LDEwIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkV2ZW50
U2VuZGVyUHJveHkuaCIKIAotI2ltcG9ydCAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW1wb3J0ICJQ
bGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2ltcG9ydCAi
VGVzdENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JldGFpblB0ci5oPgog
I2ltcG9ydCA8V2ViS2l0Mi9XS1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RSIHsKQEAgLTM1MSw0
ICszNTIsMjEgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUgogICAg
IFtbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBmaXJz
dFJlc3BvbmRlcl0ga2V5VXA6ZXZlbnRdOwogfQogCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KQoreworICAgIFJldGFpblB0cjxDR0V2ZW50UmVmPiBj
Z1Njcm9sbEV2ZW50KEFkb3B0Q0YsIENHRXZlbnRDcmVhdGVTY3JvbGxXaGVlbEV2ZW50KDAsIGtD
R1Njcm9sbEV2ZW50VW5pdExpbmUsIDIsIHksIHgpKTsKKworICAgIC8vIENHRXZlbnQgbG9jYXRp
b25zIGFyZSBpbiBnbG9iYWwgZGlzcGxheSBjb29yZGluYXRlcy4KKyAgICBDR1BvaW50IGxhc3RH
bG9iYWxNb3VzZVBvc2l0aW9uID0geworICAgICAgICBtX3Bvc2l0aW9uLngsCisgICAgICAgIFtb
TlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gbV9wb3NpdGlvbi55Cisg
ICAgfTsKKyAgICBDR0V2ZW50U2V0TG9jYXRpb24oY2dTY3JvbGxFdmVudC5nZXQoKSwgbGFzdEds
b2JhbE1vdXNlUG9zaXRpb24pOworCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBldmVu
dFdpdGhDR0V2ZW50OmNnU2Nyb2xsRXZlbnQuZ2V0KCldOworICAgIE5TVmlldyAqdGFyZ2V0Vmll
dyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSBoaXRU
ZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV07CisgICAgaWYgKHRhcmdldFZpZXcpCisgICAg
ICAgIFt0YXJnZXRWaWV3IHNjcm9sbFdoZWVsOmV2ZW50XTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V1RSCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjQzOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTMwICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnkgaW4gV1RSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02OTE4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkOgorICAgICAgICBSZW1vdmVzIHRl
c3RzIHRoYXQgdXNlZCBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5LgorCiAyMDExLTA5LTMwICBK
b2hubnkgRGluZyAgPGpuZEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3VwcG9ydCAtd2Via2l0
LXRhcC1oaWdobGlnaHQtY29sb3IgaW4gV2ViQ29yZSB3aGVuIGVuYWJsaW5nIHRvdWNoIGV2ZW50
cyBzdXBwb3J0LiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQJKHJldmlz
aW9uIDk2NDMzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDcsMTQgKzE0NywxMSBAQCBmYXN0L2V2ZW50cy9tb3VzZXVwLWZyb20t
YnV0dG9uMi5odG1sCiBmYXN0L2V2ZW50cy9ub2RlLWV2ZW50LWFuY2hvci1sb2NrLmh0bWwKIGZh
c3QvZXZlbnRzL29uZHJhZ2VudGVyLmh0bWwKIGZhc3QvZXZlbnRzL29wZW4td2luZG93LWZyb20t
YW5vdGhlci1mcmFtZS5odG1sCi1mYXN0L2V2ZW50cy9wbGF0Zm9ybS13aGVlbGV2ZW50LWluLXNj
cm9sbGluZy1kaXYuaHRtbAogZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctY2xpY2staW4taWZy
YW1lLmh0bWwKIGZhc3QvZXZlbnRzL3BvcHVwLXdoZW4tc2VsZWN0LWNoYW5nZS5odG1sCiBmYXN0
L2V2ZW50cy9wcmV2ZW50LWRyYWctdG8tbmF2aWdhdGUuaHRtbAotZmFzdC9ldmVudHMvcmVtb3Zl
LWNoaWxkLW9uc2Nyb2xsLmh0bWwKIGZhc3QvZXZlbnRzL3JpZ2h0LWNsaWNrLWZvY3VzLmh0bWwK
IGZhc3QvZXZlbnRzL3Njcm9sbC1hZnRlci1jbGljay1vbi10YWItaW5kZXguaHRtbAotZmFzdC9l
dmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwKIGZh
c3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWRyYWcuaHRtbAogZmFzdC9ldmVudHMvc2VsZWN0c3Rh
cnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmlnaHQtY2xpY2suaHRtbAogZmFzdC9ldmVudHMvc3Rh
bmRhbG9uZS1pbWFnZS1kcmFnLXRvLWVkaXRhYmxlLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109374</attachid>
            <date>2011-09-30 17:04:07 -0700</date>
            <delta_ts>2011-09-30 17:08:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69189-20110930170406.patch</filename>
            <type>text/plain</type>
            <size>17728</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2NDM4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDktMzAgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeSBpbiBXVFIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5MTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OndoZWVs
RXZlbnRTeW5jRm9yVGVzdGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgQWRkIHN5bmMgdmVyc2lvbiBvZiB3aGVlbCBldmVudCBoYW5kbGluZyBmb3IgdXNl
IGluIHRlc3RpbmcuCisKIDIwMTEtMDktMzAgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxo
byAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIEFkZCBtaXNz
aW5nIGluY2x1ZGUgZm9yIFFNaW1lRGF0YQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDk2NDMzKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2OSw3ICs4NjksMTMg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29ucwogICAgIG1fY3VycmVu
dGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMuYXBwZW5kKGV2ZW50KTsKIAogICAgIHByb2Nlc3MoKS0+
cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwotICAgIHByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6V2hlZWxFdmVudChldmVudCksIG1fcGFnZUlEKTsKKworICAgIGlmICht
X3Nob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KSB7CisgICAgICAgIGJvb2wgaGFuZGxlZCA9
IGZhbHNlOworICAgICAgICBwcm9jZXNzKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpX
aGVlbEV2ZW50U3luY0ZvclRlc3RpbmcoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6V2hlZWxF
dmVudFN5bmNGb3JUZXN0aW5nOjpSZXBseShoYW5kbGVkKSwgbV9wYWdlSUQpOworICAgICAgICBk
aWRSZWNlaXZlRXZlbnQoZXZlbnQudHlwZSgpLCBoYW5kbGVkKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpXaGVlbEV2ZW50KGV2ZW50KSwg
bV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudChj
b25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiBldmVudCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDk2NDMzKQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTMyLDYgKzExMzIsMjAgQEAgdm9pZCBXZWJQYWdlOjp3aGVlbEV2ZW50KGNvbnN0
IFdlYldoZWVsRQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZUV2
ZW50KHN0YXRpY19jYXN0PHVpbnQzMl90Pih3aGVlbEV2ZW50LnR5cGUoKSksIGhhbmRsZWQpKTsK
IH0KIAordm9pZCBXZWJQYWdlOjp3aGVlbEV2ZW50U3luY0ZvclRlc3RpbmcoY29uc3QgV2ViV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCwgYm9vbCYgaGFuZGxlZCkKK3sKKyAgICBDdXJyZW50RXZlbnQg
Y3VycmVudEV2ZW50KHdoZWVsRXZlbnQpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICh3
aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuIHx8
IHdoZWVsRXZlbnQucGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuKQorICAgICAg
ICBtX2RyYXdpbmdBcmVhLT5kaXNhYmxlRGlzcGxheVRocm90dGxpbmcoKTsKKyAgICBlbHNlIGlm
ICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVk
IHx8IHdoZWVsRXZlbnQucGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVkKQorICAg
ICAgICBtX2RyYXdpbmdBcmVhLT5lbmFibGVEaXNwbGF5VGhyb3R0bGluZygpOworI2VuZGlmCisK
KyAgICBoYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBtX3BhZ2UuZ2V0KCkp
OworfQorCiBzdGF0aWMgYm9vbCBoYW5kbGVLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50
JiBrZXlib2FyZEV2ZW50LCBQYWdlKiBwYWdlKQogewogICAgIGlmICghcGFnZS0+bWFpbkZyYW1l
KCktPnZpZXcoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAkocmV2aXNpb24gOTY0MzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00ODksNiArNDg5LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIG1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYpOwogICAgIHZvaWQg
bW91c2VFdmVudFN5bmNGb3JUZXN0aW5nKGNvbnN0IFdlYk1vdXNlRXZlbnQmLCBib29sJik7CiAg
ICAgdm9pZCB3aGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKKyAgICB2b2lkIHdoZWVs
RXZlbnRTeW5jRm9yVGVzdGluZyhjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCYpOwogICAgIHZv
aWQga2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOwogICAgIHZvaWQga2V5RXZlbnRT
eW5jRm9yVGVzdGluZyhjb25zdCBXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCYpOwogI2lmIEVOQUJM
RShHRVNUVVJFX0VWRU5UUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiA5NjQzMykKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIE1v
dXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KQogICAgIE1vdXNlRXZlbnRTeW5j
Rm9yVGVzdGluZyhXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpIC0+IChib29sIGhhbmRsZWQp
CiAgICAgV2hlZWxFdmVudChXZWJLaXQ6OldlYldoZWVsRXZlbnQgZXZlbnQpCisgICAgV2hlZWxF
dmVudFN5bmNGb3JUZXN0aW5nKFdlYktpdDo6V2ViV2hlZWxFdmVudCBldmVudCkgLT4gKGJvb2wg
aGFuZGxlZCkKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgR2VzdHVyZUV2ZW50KFdl
YktpdDo6V2ViR2VzdHVyZUV2ZW50IGV2ZW50KQogI2VuZGlmCkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjQzOCkKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDExLTA5LTMw
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnkgaW4gV1RSCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE4OQorCisgICAgICAgIEFkZCBpbXBsZW1lbnRh
dGlvbiBvZiBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5IGZvciB0aGUgbWFjLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9FdmVudFNlbmRlclByb3h5Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjprZXlEb3duKToKKyAgICAg
ICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VTY3JvbGxCeSk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJv
bUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNl
bmRlclByb3h5Lm1tOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5KToKKwogMjAxMS0wOS0zMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBmYXN0L2Zvcm1zL3RleHQtY29udHJvbC1pbnRyaW5zaWMtd2lkdGhzLmh0
bWwgZmFpbHMgb24gTWFjIGlmIFdvcmQvT2ZmaWNlIGZvbnRzIGFyZSBpbnN0YWxsZWQKSW5kZXg6
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCShyZXZpc2lvbiA5NjQz
MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlRG93bih1bnNp
Z25lZCBidXR0b24sIFdLRXZlbnRNb2RpZmllcnMpOwogICAgIHZvaWQgbW91c2VVcCh1bnNpZ25l
ZCBidXR0b24sIFdLRXZlbnRNb2RpZmllcnMpOwogICAgIHZvaWQgbW91c2VNb3ZlVG8oZG91Ymxl
IHgsIGRvdWJsZSB5KTsKKyAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKKwog
ICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CiAKICAgICB2b2lkIGtleURv
d24oV0tTdHJpbmdSZWYga2V5LCBXS0V2ZW50TW9kaWZpZXJzLCB1bnNpZ25lZCBsb2NhdGlvbik7
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2aXNp
b24gOTY0MzMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTc0LDYgKzU3NCwyMCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+
IFRlc3RDb250cm9sbGVyOjpkCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCisg
ICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VOYW1lLCAi
TW91c2VTY3JvbGxCeSIpKSB7CisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
eEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7CisgICAg
ICAgICAgICBkb3VibGUgeCA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVS
ZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB4S2V5
LmdldCgpKSkpOworCisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geUtleSA9
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlkiKSk7CisgICAgICAgICAg
ICBkb3VibGUgeSA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdL
RGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB5S2V5LmdldCgp
KSkpOworCisgICAgICAgICAgICAvLyBGb3J3YXJkIHRvIFdlYlByb2Nlc3MKKyAgICAgICAgICAg
IFdLUGFnZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5XZWJWaWV3KCktPnBh
Z2UoKSwgdHJ1ZSk7CisgICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPm1vdXNlU2Nyb2xs
QnkoeCwgeSk7CisgICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25v
dXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICB9CisKICAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
c3ViTWVzc2FnZU5hbWUsICJMZWFwRm9yd2FyZCIpKSB7CiAgICAgICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gdGltZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlRpbWVJbk1pbGxpc2Vjb25kcyIpKTsKICAgICAgICAgICAgIHVuc2lnbmVkIHRpbWUg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJ
bnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnks
IHRpbWVLZXkuZ2V0KCkpKSkpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3Bw
CShyZXZpc2lvbiA5NjQzMykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNyw2ICsy
MTcsNTMgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpsZWFwRm9yd2FyZAogI2VuZGlm
CiB9CiAKK3ZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6a2V5RG93bihKU1N0cmluZ1JlZiBr
ZXksIEpTVmFsdWVSZWYgbW9kaWZpZXJBcnJheSwgaW50IGxvY2F0aW9uKQoreworICAgIFdLQnVu
ZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgp
OworICAgIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUo
cGFnZSk7CisgICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNj
cmlwdENvbnRleHQoZnJhbWUpOworICAgIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzID0gcGFy
c2VNb2RpZmllckFycmF5KGNvbnRleHQsIG1vZGlmaWVyQXJyYXkpOworCisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOworICAgIFdLUmV0YWluUHRyPFdL
TXV0YWJsZURpY3Rpb25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkoQWRvcHRXSywgV0tN
dXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBzdWJNZXNzYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJT
dWJNZXNzYWdlIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFt
ZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5RG93biIpKTsKKyAg
ICBXS0RpY3Rpb25hcnlBZGRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHN1Yk1l
c3NhZ2VLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsKKworICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBrZXlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJLZXkiKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShFdmVudFNlbmRlck1lc3NhZ2VC
b2R5LmdldCgpLCBrZXlLZXkuZ2V0KCksIHRvV0soa2V5KS5nZXQoKSk7CisKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gbW9kaWZpZXJzS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiTW9kaWZpZXJzIikpOworICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVm
PiBtb2RpZmllcnNSZWYgPSBXS1VJbnQ2NENyZWF0ZShtb2RpZmllcnMpOworICAgIFdLRGljdGlv
bmFyeUFkZEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgbW9kaWZpZXJzS2V5Lmdl
dCgpLCBtb2RpZmllcnNSZWYuZ2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGxvY2F0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTG9j
YXRpb24iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IGxvY2F0aW9uUmVmID0gV0tV
SW50NjRDcmVhdGUobG9jYXRpb24pOworICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oRXZlbnRTZW5k
ZXJNZXNzYWdlQm9keS5nZXQoKSwgbG9jYXRpb25LZXkuZ2V0KCksIGxvY2F0aW9uUmVmLmdldCgp
KTsKKworICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2Vu
ZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworfQorCit2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xs
ZXI6Om1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KQoreworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBFdmVudFNlbmRlck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJFdmVudFNlbmRlciIpKTsKKyAgICBXS1JldGFpblB0cjxXS011dGFibGVE
aWN0aW9uYXJ5UmVmPiBFdmVudFNlbmRlck1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLTXV0YWJsZURp
Y3Rpb25hcnlDcmVhdGUoKSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3ViTWVz
c2FnZUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3ViTWVzc2Fn
ZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3ViTWVzc2FnZU5hbWUoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk1vdXNlU2Nyb2xsQnkiKSk7CisgICAg
V0tEaWN0aW9uYXJ5QWRkSXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBzdWJNZXNz
YWdlS2V5LmdldCgpLCBzdWJNZXNzYWdlTmFtZS5nZXQoKSk7CisKKyAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4geEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IlgiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tEb3VibGVSZWY+IHhSZWYgPSBXS0RvdWJsZUNyZWF0
ZSh4KTsKKyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0
KCksIHhLZXkuZ2V0KCksIHhSZWYuZ2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOwor
ICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiB5UmVmID0gV0tEb3VibGVDcmVhdGUoeSk7Cisg
ICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCB5S2V5
LmdldCgpLCB5UmVmLmdldCgpKTsKKworICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5h
bWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworfQogCiAjaWZkZWYg
VVNFX1dFQlBST0NFU1NfRVZFTlRfU0lNVUxBVElPTgogdm9pZCBFdmVudFNlbmRpbmdDb250cm9s
bGVyOjp1cGRhdGVDbGlja0NvdW50KFdLRXZlbnRNb3VzZUJ1dHRvbiBidXR0b24pCkBAIC0yODMs
MzIgKzMzMCw0IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bWFrZVdpbmRvd08KICAg
ICBzZXRQcm9wZXJ0eShjb250ZXh0LCB3aW5kb3dPYmplY3QsICJldmVudFNlbmRlciIsIHRoaXMs
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUsIGV4Y2VwdGlvbik7CiB9CiAKLXZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6a2V5
RG93bihKU1N0cmluZ1JlZiBrZXksIEpTVmFsdWVSZWYgbW9kaWZpZXJBcnJheSwgaW50IGxvY2F0
aW9uKQotewotICAgIFdLQnVuZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLnBhZ2UoKS0+cGFnZSgpOwotICAgIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUgPSBXS0J1bmRs
ZVBhZ2VHZXRNYWluRnJhbWUocGFnZSk7Ci0gICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1
bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQoZnJhbWUpOwotICAgIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzID0gcGFyc2VNb2RpZmllckFycmF5KGNvbnRleHQsIG1vZGlmaWVyQXJyYXkp
OwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUo
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwot
ICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2Fn
ZUJvZHkoQWRvcHRXSywgV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKLQotICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTdWJNZXNzYWdlIikpOwotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiS2V5RG93biIpKTsKLSAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKEV2ZW50U2VuZGVyTWVzc2Fn
ZUJvZHkuZ2V0KCksIHN1Yk1lc3NhZ2VLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsK
LQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXlLZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJLZXkiKSk7Ci0gICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShF
dmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBrZXlLZXkuZ2V0KCksIHRvV0soa2V5KS5nZXQo
KSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbW9kaWZpZXJzS2V5ID0gYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9kaWZpZXJzIikpOwotICAgIFdLUmV0
YWluUHRyPFdLVUludDY0UmVmPiBtb2RpZmllcnNSZWYgPSBXS1VJbnQ2NENyZWF0ZShtb2RpZmll
cnMpOwotICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQo
KSwgbW9kaWZpZXJzS2V5LmdldCgpLCBtb2RpZmllcnNSZWYuZ2V0KCkpOwotCi0gICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IGxvY2F0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiTG9jYXRpb24iKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+
IGxvY2F0aW9uUmVmID0gV0tVSW50NjRDcmVhdGUobG9jYXRpb24pOwotICAgIFdLRGljdGlvbmFy
eUFkZEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgbG9jYXRpb25LZXkuZ2V0KCks
IGxvY2F0aW9uUmVmLmdldCgpKTsKLQotICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5h
bWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXVFIKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
RXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCShyZXZpc2lvbiA5
NjQzMykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5k
aW5nQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG1vdXNlRG93bihpbnQgYnV0dG9uLCBKU1ZhbHVlUmVmIG1vZGlmaWVyQXJyYXkp
OwogICAgIHZvaWQgbW91c2VVcChpbnQgYnV0dG9uLCBKU1ZhbHVlUmVmIG1vZGlmaWVyQXJyYXkp
OwogICAgIHZvaWQgbW91c2VNb3ZlVG8oaW50IHgsIGludCB5KTsKKyAgICB2b2lkIG1vdXNlU2Ny
b2xsQnkoaW50IHgsIGludCB5KTsKICAgICB2b2lkIGxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29u
ZHMpOwogCiAgICAgdm9pZCBrZXlEb3duKEpTU3RyaW5nUmVmIGtleSwgSlNWYWx1ZVJlZiBtb2Rp
ZmllckFycmF5LCBpbnQgbG9jYXRpb24pOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCShyZXZpc2lvbiA5NjQzMykKKysrIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAgbW9kdWxlIFdUUiB7CiAgICAg
ICAgIHZvaWQgbW91c2VEb3duKGluIGxvbmcgYnV0dG9uTnVtYmVyLCBpbiBvYmplY3QgbW9kaWZp
ZXJBcnJheSk7CiAgICAgICAgIHZvaWQgbW91c2VVcChpbiBsb25nIGJ1dHRvbk51bWJlciwgaW4g
b2JqZWN0IG1vZGlmaWVyQXJyYXkpOwogICAgICAgICB2b2lkIG1vdXNlTW92ZVRvKGluIGxvbmcg
eCwgaW4gbG9uZyB5KTsKKyAgICAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGluIGxvbmcgeCwgaW4g
bG9uZyB5KTsKKwogICAgICAgICB2b2lkIGxlYXBGb3J3YXJkKGluIGxvbmcgbWlsbGlzZWNvbmRz
KTsKIAogICAgICAgICB2b2lkIGtleURvd24oaW4gRE9NU3RyaW5nIGtleSwgaW4gb2JqZWN0IG1v
ZGlmaWVyQXJyYXksIGluIGxvbmcgbG9jYXRpb24pOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCShyZXZpc2lvbiA5NjQzMykKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDkgKzI3LDEwIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkV2ZW50
U2VuZGVyUHJveHkuaCIKIAotI2ltcG9ydCAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW1wb3J0ICJQ
bGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2ltcG9ydCAi
VGVzdENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JldGFpblB0ci5oPgog
I2ltcG9ydCA8V2ViS2l0Mi9XS1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RSIHsKQEAgLTM1MSw0
ICszNTIsMjEgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUgogICAg
IFtbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBmaXJz
dFJlc3BvbmRlcl0ga2V5VXA6ZXZlbnRdOwogfQogCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KQoreworICAgIFJldGFpblB0cjxDR0V2ZW50UmVmPiBj
Z1Njcm9sbEV2ZW50KEFkb3B0Q0YsIENHRXZlbnRDcmVhdGVTY3JvbGxXaGVlbEV2ZW50KDAsIGtD
R1Njcm9sbEV2ZW50VW5pdExpbmUsIDIsIHksIHgpKTsKKworICAgIC8vIENHRXZlbnQgbG9jYXRp
b25zIGFyZSBpbiBnbG9iYWwgZGlzcGxheSBjb29yZGluYXRlcy4KKyAgICBDR1BvaW50IGxhc3RH
bG9iYWxNb3VzZVBvc2l0aW9uID0geworICAgICAgICBtX3Bvc2l0aW9uLngsCisgICAgICAgIFtb
TlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gbV9wb3NpdGlvbi55Cisg
ICAgfTsKKyAgICBDR0V2ZW50U2V0TG9jYXRpb24oY2dTY3JvbGxFdmVudC5nZXQoKSwgbGFzdEds
b2JhbE1vdXNlUG9zaXRpb24pOworCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBldmVu
dFdpdGhDR0V2ZW50OmNnU2Nyb2xsRXZlbnQuZ2V0KCldOworICAgIE5TVmlldyAqdGFyZ2V0Vmll
dyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSBoaXRU
ZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV07CisgICAgaWYgKHRhcmdldFZpZXcpCisgICAg
ICAgIFt0YXJnZXRWaWV3IHNjcm9sbFdoZWVsOmV2ZW50XTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V1RSCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3F0L0V2ZW50U2VuZGVyUHJveHlRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9FdmVudFNlbmRlclBy
b3h5UXQuY3BwCShyZXZpc2lvbiA5NjQzMykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQv
RXZlbnRTZW5kZXJQcm94eVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk1LDYgKzI5NSwxMSBA
QCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsCiAgICAgc2VuZE9yUXVl
dWVFdmVudChldmVudCk7CiB9CiAKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxC
eShpbnQsIGludCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKIHZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQoaW50IG1zKQogewogICAgIGV2ZW50UXVldWVb
ZW5kT2ZRdWV1ZV0ubV9kZWxheSA9IG1zOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTY0MzgpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAx
MS0wOS0zMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5IGluIFdUUgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvU2tpcHBl
ZDoKKyAgICAgICAgUmVtb3ZlcyB0ZXN0cyB0aGF0IHVzZWQgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeS4KKwogMjAxMS0wOS0zMCAgSm9obm55IERpbmcgIDxqbmRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFN1cHBvcnQgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIGluIFdlYkNvcmUgd2hl
biBlbmFibGluZyB0b3VjaCBldmVudHMgc3VwcG9ydC4gCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9Ta2lwcGVkCShyZXZpc2lvbiA5NjQzMykKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDE0ICsxNDcsMTEgQEAgZmFz
dC9ldmVudHMvbW91c2V1cC1mcm9tLWJ1dHRvbjIuaHRtbAogZmFzdC9ldmVudHMvbm9kZS1ldmVu
dC1hbmNob3ItbG9jay5odG1sCiBmYXN0L2V2ZW50cy9vbmRyYWdlbnRlci5odG1sCiBmYXN0L2V2
ZW50cy9vcGVuLXdpbmRvdy1mcm9tLWFub3RoZXItZnJhbWUuaHRtbAotZmFzdC9ldmVudHMvcGxh
dGZvcm0td2hlZWxldmVudC1pbi1zY3JvbGxpbmctZGl2Lmh0bWwKIGZhc3QvZXZlbnRzL3BvcHVw
LWJsb2NraW5nLWNsaWNrLWluLWlmcmFtZS5odG1sCiBmYXN0L2V2ZW50cy9wb3B1cC13aGVuLXNl
bGVjdC1jaGFuZ2UuaHRtbAogZmFzdC9ldmVudHMvcHJldmVudC1kcmFnLXRvLW5hdmlnYXRlLmh0
bWwKLWZhc3QvZXZlbnRzL3JlbW92ZS1jaGlsZC1vbnNjcm9sbC5odG1sCiBmYXN0L2V2ZW50cy9y
aWdodC1jbGljay1mb2N1cy5odG1sCiBmYXN0L2V2ZW50cy9zY3JvbGwtYWZ0ZXItY2xpY2stb24t
dGFiLWluZGV4Lmh0bWwKLWZhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92
ZXJmbG93LWhpZGRlbi5odG1sCiBmYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1kcmFnLmh0bWwK
IGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNr
Lmh0bWwKIGZhc3QvZXZlbnRzL3N0YW5kYWxvbmUtaW1hZ2UtZHJhZy10by1lZGl0YWJsZS5odG1s
Cg==
</data>
<flag name="review"
          id="106609"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>