<?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>103068</bug_id>
          
          <creation_ts>2012-11-22 07:09:28 -0800</creation_ts>
          <short_desc>Viewport CSS rules should not clamp values like Viewport META</short_desc>
          <delta_ts>2012-11-26 08:23:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>95959</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Marcos P. Santos">tmpsantos</reporter>
          <assigned_to name="Thiago Marcos P. Santos">tmpsantos</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>joepeck</cc>
    
    <cc>kenneth</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>773935</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-22 07:09:28 -0800</bug_when>
    <thetext>Currently we are clamping values like width and height following the rules for META tags (1px - 10000px) which are not valid for @viewport.

http://dev.w3.org/csswg/css-device-adapt/#translation-into-atviewport-descriptors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774458</commentid>
    <comment_count>1</comment_count>
      <attachid>175784</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-23 04:58:38 -0800</bug_when>
    <thetext>Created attachment 175784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774462</commentid>
    <comment_count>2</comment_count>
      <attachid>175784</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-23 05:04:37 -0800</bug_when>
    <thetext>Comment on attachment 175784
Patch

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

&gt; Source/WebCore/dom/ViewportArguments.cpp:186
&gt; +    } else {
&gt; +        // Clamp values to a valid range, but not for @viewport since is
&gt; +        // not mandated by the specification.
&gt; +        resultWidth = clampLengthValue(resultWidth);
&gt; +        resultHeight = clampLengthValue(resultHeight);
&gt; +        resultZoom = clampScaleValue(resultZoom);
&gt; +        resultMinZoom = clampScaleValue(resultMinZoom);
&gt; +        resultMaxZoom = clampScaleValue(resultMaxZoom);
&gt;      }

I think an if would be nicer, we probably dont want to clam implicit viewport either

if (type != ViewportArguments::CSSDeviceAdaptation &amp;&amp; type != ViewportArguments::Implicit) or maybe the other way around. Make it explicit what we are clamping.

&gt; Source/WebCore/dom/ViewportArguments.cpp:240
&gt; +    } else {
&gt; +        // Extend width and height to fill the visual viewport for the resolved initial-scale.
&gt; +        resultWidth = max&lt;float&gt;(resultWidth, initialViewportSize.width() / result.initialScale);
&gt; +        resultHeight = max&lt;float&gt;(resultHeight, initialViewportSize.height() / result.initialScale);
&gt; +    }

I think this should probably only happen for viewport meta, not the old legacy meta tags which dont support scale anyway</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775475</commentid>
    <comment_count>3</comment_count>
      <attachid>176001</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-26 07:46:44 -0800</bug_when>
    <thetext>Created attachment 176001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775496</commentid>
    <comment_count>4</comment_count>
      <attachid>176001</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 08:23:18 -0800</bug_when>
    <thetext>Comment on attachment 176001
Patch

Clearing flags on attachment: 176001

Committed r135728: &lt;http://trac.webkit.org/changeset/135728&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775497</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 08:23:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175784</attachid>
            <date>2012-11-23 04:58:38 -0800</date>
            <delta_ts>2012-11-26 07:46:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103068-20121123150032.patch</filename>
            <type>text/plain</type>
            <size>21167</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVmN2QzNjkxZWQ1NGVl
MGI1Nzc4YWNmOTlhNzJlYzMxMTViMmZmZC4uOGU3YTc4MDdiODM4ZDAwMjlhODRmYjdiY2QyNGVj
NjQxN2I4ODFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEyLTExLTIzICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCisgICAgICAg
IFZpZXdwb3J0IENTUyBydWxlcyBzaG91bGQgbm90IGNsYW1wIHZhbHVlcyBsaWtlIFZpZXdwb3J0
IE1FVEEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MzA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENT
UyBEZXZpY2UgQWRhcHRpb24gZG9lcyBub3QgY2xhbXAgdGhlIGxlbmd0aCBhbmQgem9vbSB2YWx1
ZXMgdGhlCisgICAgICAgIHNhbWUgd2F5IGFzIHRoZSBWaWV3cG9ydCBNRVRBLiBJbiBmYWN0LCB0
aGV5IGFyZSBub3QgY2xhbXBlZCBhdCBhbGwsCisgICAgICAgIGJ1dCBpbnN0ZWFkLCB3ZSBqdXN0
IG1ha2Ugc3VyZSB0aGF0IGxlbmd0aCB2YWx1ZXMgYXJlIGF0IGxlYXN0IDFweC4KKworICAgICAg
ICBUZXN0czogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxOC54aHRtbAorICAg
ICAgICAgICAgICAgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxOS54aHRtbAor
ICAgICAgICAgICAgICAgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyMy54aHRt
bAorICAgICAgICAgICAgICAgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyNC54
aHRtbAorCisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpyZXNvbHZlKToKKworMjAxMi0xMS0yMyAgVGhpYWdv
IE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKwogICAgICAgICBF
eHBvc2UgRE9NIGludGVyZmFjZSBmb3IgQ1NTIERldmljZSBBZGFwdGF0aW9uCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTk2NgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcAppbmRleCBlMWFkZTYzZDExZGI1YzZkZWMyN2Rk
YTU3NDA5NzYwZGIwNDcyNmYyLi43MDc5NTZmZTM0Njk4NmQ5NmU3MDk0YzRkNGRhMDg2N2QyZjgz
Njc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTE3NSwx
NSArMTc1LDE2IEBAIFZpZXdwb3J0QXR0cmlidXRlcyBWaWV3cG9ydEFyZ3VtZW50czo6cmVzb2x2
ZShjb25zdCBGbG9hdFNpemUmIGluaXRpYWxWaWV3cG9ydFNpCiAgICAgICAgICAgICByZXN1bHRX
aWR0aCA9IGNvbXBhcmVJZ25vcmluZ0F1dG8ocmVzdWx0V2lkdGgsIGRldmljZVNpemUud2lkdGgo
KSAvIGNvbXBhcmVJZ25vcmluZ0F1dG8ocmVzdWx0Wm9vbSwgcmVzdWx0TWF4Wm9vbSwgbWluKSwg
bWF4KTsKICAgICAgICAgICAgIHJlc3VsdEhlaWdodCA9IGNvbXBhcmVJZ25vcmluZ0F1dG8ocmVz
dWx0SGVpZ2h0LCBkZXZpY2VTaXplLmhlaWdodCgpIC8gY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1
bHRab29tLCByZXN1bHRNYXhab29tLCBtaW4pLCBtYXgpOwogICAgICAgICB9CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gQ2xhbXAgdmFsdWVzIHRvIGEgdmFsaWQgcmFuZ2UsIGJ1dCBub3QgZm9y
IEB2aWV3cG9ydCBzaW5jZSBpcworICAgICAgICAvLyBub3QgbWFuZGF0ZWQgYnkgdGhlIHNwZWNp
ZmljYXRpb24uCisgICAgICAgIHJlc3VsdFdpZHRoID0gY2xhbXBMZW5ndGhWYWx1ZShyZXN1bHRX
aWR0aCk7CisgICAgICAgIHJlc3VsdEhlaWdodCA9IGNsYW1wTGVuZ3RoVmFsdWUocmVzdWx0SGVp
Z2h0KTsKKyAgICAgICAgcmVzdWx0Wm9vbSA9IGNsYW1wU2NhbGVWYWx1ZShyZXN1bHRab29tKTsK
KyAgICAgICAgcmVzdWx0TWluWm9vbSA9IGNsYW1wU2NhbGVWYWx1ZShyZXN1bHRNaW5ab29tKTsK
KyAgICAgICAgcmVzdWx0TWF4Wm9vbSA9IGNsYW1wU2NhbGVWYWx1ZShyZXN1bHRNYXhab29tKTsK
ICAgICB9CiAKLSAgICAvLyBDbGFtcCB2YWx1ZXMgdG8gdmFsaWQgcmFuZ2UuCi0gICAgcmVzdWx0
V2lkdGggPSBjbGFtcExlbmd0aFZhbHVlKHJlc3VsdFdpZHRoKTsKLSAgICByZXN1bHRIZWlnaHQg
PSBjbGFtcExlbmd0aFZhbHVlKHJlc3VsdEhlaWdodCk7Ci0gICAgcmVzdWx0Wm9vbSA9IGNsYW1w
U2NhbGVWYWx1ZShyZXN1bHRab29tKTsKLSAgICByZXN1bHRNaW5ab29tID0gY2xhbXBTY2FsZVZh
bHVlKHJlc3VsdE1pblpvb20pOwotICAgIHJlc3VsdE1heFpvb20gPSBjbGFtcFNjYWxlVmFsdWUo
cmVzdWx0TWF4Wm9vbSk7Ci0KICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzdWx0OwogICAgIHJl
c3VsdC5vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOwogCkBAIC0yMjksOSArMjMwLDE1IEBAIFZp
ZXdwb3J0QXR0cmlidXRlcyBWaWV3cG9ydEFyZ3VtZW50czo6cmVzb2x2ZShjb25zdCBGbG9hdFNp
emUmIGluaXRpYWxWaWV3cG9ydFNpCiAgICAgaWYgKHJlc3VsdEhlaWdodCA9PSBWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVBdXRvKQogICAgICAgICByZXN1bHRIZWlnaHQgPSByZXN1bHRXaWR0aCAq
IChpbml0aWFsVmlld3BvcnRTaXplLmhlaWdodCgpIC8gaW5pdGlhbFZpZXdwb3J0U2l6ZS53aWR0
aCgpKTsKIAotICAgIC8vIEV4dGVuZCB3aWR0aCBhbmQgaGVpZ2h0IHRvIGZpbGwgdGhlIHZpc3Vh
bCB2aWV3cG9ydCBmb3IgdGhlIHJlc29sdmVkIGluaXRpYWwtc2NhbGUuCi0gICAgcmVzdWx0V2lk
dGggPSBtYXg8ZmxvYXQ+KHJlc3VsdFdpZHRoLCBpbml0aWFsVmlld3BvcnRTaXplLndpZHRoKCkg
LyByZXN1bHQuaW5pdGlhbFNjYWxlKTsKLSAgICByZXN1bHRIZWlnaHQgPSBtYXg8ZmxvYXQ+KHJl
c3VsdEhlaWdodCwgaW5pdGlhbFZpZXdwb3J0U2l6ZS5oZWlnaHQoKSAvIHJlc3VsdC5pbml0aWFs
U2NhbGUpOworICAgIGlmICh0eXBlID09IFZpZXdwb3J0QXJndW1lbnRzOjpDU1NEZXZpY2VBZGFw
dGF0aW9uKSB7CisgICAgICAgIHJlc3VsdFdpZHRoID0gbWF4PGZsb2F0PigxLCByZXN1bHRXaWR0
aCk7CisgICAgICAgIHJlc3VsdEhlaWdodCA9IG1heDxmbG9hdD4oMSwgcmVzdWx0SGVpZ2h0KTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBFeHRlbmQgd2lkdGggYW5kIGhlaWdodCB0byBmaWxs
IHRoZSB2aXN1YWwgdmlld3BvcnQgZm9yIHRoZSByZXNvbHZlZCBpbml0aWFsLXNjYWxlLgorICAg
ICAgICByZXN1bHRXaWR0aCA9IG1heDxmbG9hdD4ocmVzdWx0V2lkdGgsIGluaXRpYWxWaWV3cG9y
dFNpemUud2lkdGgoKSAvIHJlc3VsdC5pbml0aWFsU2NhbGUpOworICAgICAgICByZXN1bHRIZWln
aHQgPSBtYXg8ZmxvYXQ+KHJlc3VsdEhlaWdodCwgaW5pdGlhbFZpZXdwb3J0U2l6ZS5oZWlnaHQo
KSAvIHJlc3VsdC5pbml0aWFsU2NhbGUpOworICAgIH0KKwogICAgIHJlc3VsdC5sYXlvdXRTaXpl
LnNldFdpZHRoKHJlc3VsdFdpZHRoKTsKICAgICByZXN1bHQubGF5b3V0U2l6ZS5zZXRIZWlnaHQo
cmVzdWx0SGVpZ2h0KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk4NmU3N2ZlNmZjNWY5NmZjMjRjNzRlMjRiYWNhNWYy
NTljNzM4ZGMuLmFiYzVhNmZhOTYyYjNjYmQ3MDZlYzI4NjU0MDJiYzJjZGFkZTRjOTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMS0yMyAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0
aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKworICAgICAgICBWaWV3cG9ydCBDU1MgcnVsZXMgc2hv
dWxkIG5vdCBjbGFtcCB2YWx1ZXMgbGlrZSBWaWV3cG9ydCBNRVRBCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwNjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBvcnRlZCBPcGVyYSB0ZXN0cyB0aGF0
IG1ha2VzIHN1cmUgd2UgYXJlIGRvaW5nIHRoZSBjbGFtcGluZyByaWdodC4KKworICAgICAgICAq
IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTgtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE4LnhodG1s
OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE5
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEv
Y29uc3RyYWluLTAxOS54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY29uc3RyYWluLTAyMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjMueGh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDI0LnhodG1s
OiBBZGRlZC4KKwogMjAxMi0xMS0yMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbnMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDE4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMTgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZTliNWJmOWY0NDViZmMxMWMz
MjZjZjY5OWNkODY1Y2EyM2JmYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gU21hbGwgbm9u
LWF1dG8gaGVpZ2h0IG5vdCBhZmZlY3Rpbmcgd2lkdGguIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE4LnhodG1sIGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxOC54aHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ODBjOTFkMzhiMDVlMmE4MTllY2JkMTdkMGEyNjViNmY2NTVkZTRjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAx
OC54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5k
dGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFk
PgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIFNtYWxsIG5vbi1h
dXRvIGhlaWdodCBub3QgYWZmZWN0aW5nIHdpZHRoLjwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20i
Lz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2
aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdz
IiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJOb24tYXV0byBoZWlnaHQgZG9lcyBub3QgYWZmZWN0IHdpZHRoIGlmIHpvb20gaXMg
YXV0by4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+Cisg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9
CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAg
ICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdw
b3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8K
KyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1
dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTog
YXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAg
cmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBA
LXdlYmtpdC12aWV3cG9ydCB7IGhlaWdodDogMXB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQg
Zm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAg
Zm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJh
c2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50
IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBm
b250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0
OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBTbWFsbCBub24tYXV0byBoZWlnaHQgbm90IGFmZmVj
dGluZyB3aWR0aC4iKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAgdmFy
IHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8q
IERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRl
c3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyogSW5p
dGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkg
dGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmpl
Y3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0
aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3Bv
cnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4g
Ki8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAg
IHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3
cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZv
bnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRo
ZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZh
bHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRo
ZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0
aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAg
ICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lk
dGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1
bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsSGVpZ2h0LCAx
KTsgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgdmlld3BvcnQuaW5pdGlhbFdp
ZHRoKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLwor
ICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7
CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVz
dCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMTktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxNWJmODhiZDk3NGZmMWYz
MWY5ZWE0NzJkNjFjMmY0ZDIxODk4ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gQXV0byB3
aWR0aCBmcm9tIGhlaWdodCBhbmQgbm9uLWF1dG8gem9vbS4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTkueGh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE5LnhodG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNmNTUyMGRmNjkwNDkwZTEwNzBlYjVlNmQ3Yjk3YTYzYmU1YjgxYmEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDE5LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0
LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhl
YWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gQXV0byB3aWR0
aCBmcm9tIGhlaWdodCBhbmQgbm9uLWF1dG8gem9vbS48L3RpdGxlPgorICA8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29t
Ii8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRl
dmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFn
cyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIg
Y29udGVudD0iTm9uLWF1dG8gaGVpZ2h0IGFmZmVjdHMgd2lkdGggaWYgem9vbSBpcyBub3QgYXV0
by4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9Cisg
ICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNs
b2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0
IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAg
IEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87
CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0
bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVz
b2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdl
YmtpdC12aWV3cG9ydCB7IGhlaWdodDogMTAwMDBweDsgem9vbTogMTAwJSB9CisgICAvKiBTZXQg
cm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGlu
aXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2
aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhl
IHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9
CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190
ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gQXV0byB3aWR0aCBmcm9tIGhl
aWdodCBhbmQgbm9uLWF1dG8gem9vbS4iKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigp
eworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgx
KTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZp
ZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOwor
CisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRv
IGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9y
dCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXpl
IGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGlu
aXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisg
ICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNl
dFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdo
dDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVz
dEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0
IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5k
aXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2
YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVs
bS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNl
dEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2lu
ZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAg
dGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0
dWFsSGVpZ2h0LCAxMDAwMCk7IGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgsIE1h
dGguZmxvb3IoMTAwMDAqdmlld3BvcnQuaW5pdGlhbFdpZHRoL3ZpZXdwb3J0LmluaXRpYWxIZWln
aHQpKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLwor
ICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7
CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVz
dCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDIzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMjMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmNjBkZTdiZWE3MzAzMDU3
ZWE4MTcxMDY2YjUzNjJlMjAyMTEzOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gdXNlZCB3
aWR0aCBpcyBwb3NpdGl2ZS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjMueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Rldmlj
ZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIzLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkNTVlOGI4YzFj
NmRiNDQzMmViNjg5ZmJkNzlmYThiMjY5NGIyM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIzLnhodG1sCkBAIC0wLDAg
KzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZ
UEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1Mg
VGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gdXNlZCB3aWR0aCBpcyBwb3NpdGl2ZS48L3Rp
dGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0i
bWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDov
L3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIv
PgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+Cisg
IDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iV2hlbiBjb25zdHJhaW5lZCB3aWR0aCBpcyBs
b3dlciB0aGFuIDAuNXB4LCByb3VuZGluZyB3b3VsZCBtYWtlIGl0IDBweC4gTWFrZSBzdXJlIHRo
ZSB1c2VkIHdpZHRoIGlzIHRoZW4gc2V0IHRvIDFweC4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgor
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RB
VEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRo
OiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6
IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0
byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3
aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4t
em9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207Cisg
ICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+
PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBm
b3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiAwLjAx
ZW0gfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZl
cmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0n
IGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZv
bnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZv
bnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwv
c3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZh
ciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHVz
ZWQgd2lkdGggaXMgcG9zaXRpdmUuIik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsK
KworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7
CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3
cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKwor
ICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBi
ZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQg
PSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBh
cyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0
aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAg
ICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRX
aWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7
CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RF
bG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBj
b250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlz
YWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFs
dWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0u
b2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRI
ZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRv
dy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRl
c3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVh
bFdpZHRoLCAxKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRz
LiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1
ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJi
bG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBp
ZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9j
b25zdHJhaW4tMDI0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2NvbnN0cmFpbi0wMjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwOTYyM2Y0MmJm
ZTdjNzhiZWUyOTkwYmIzZDk3MjQ3ZmY0YmE1ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDI0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0g
dXNlZCBoZWlnaHQgaXMgcG9zaXRpdmUuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDI0LnhodG1sIGIvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyNC54aHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MGYw
OTVhYTU3MzFjNjM0Y2U2Yjg1YTNkNDUwNGM1YzljNGIyODg2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyNC54aHRtbApA
QCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgor
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0
bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHVzZWQgaGVpZ2h0IGlzIHBvc2l0
aXZlLjwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVu
IiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJv
Y2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRv
bSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJXaGVuIGNvbnN0cmFpbmVkIGhl
aWdodCBpcyBsb3dlciB0aGFuIDAuNXB4LCByb3VuZGluZyB3b3VsZCBtYWtlIGl0IDBweC4gTWFr
ZSBzdXJlIHRoZSB1c2VkIGhlaWdodCBpcyB0aGVuIHNldCB0byAxcHguIi8+CisgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rl
c3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVt
OyBkaXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlh
bCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9y
dCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87
CisgICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29t
OiB6b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87Cisg
ICB9CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisg
ICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBo
ZWlnaHQ6IDAuMDFlbSB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21l
dGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtl
IHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAg
IGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisg
ICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07
IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NE
QVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0
cmFpbmVkIC0gdXNlZCBoZWlnaHQgaXMgcG9zaXRpdmUuIik7CisgICB3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hl
ZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFp
bnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVk
ID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0
IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2
YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhl
IHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0
ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJp
ZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3
cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVz
dEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5v
ZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRl
ZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxl
c2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0
eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwg
dmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0
aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVz
dEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxX
aWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVz
LiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZp
ZXdwb3J0LmFjdHVhbEhlaWdodCwgMSk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hv
dyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5k
aXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxl
LmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJv
ZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+
CisgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176001</attachid>
            <date>2012-11-26 07:46:44 -0800</date>
            <delta_ts>2012-11-26 08:23:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103068-20121126174837.patch</filename>
            <type>text/plain</type>
            <size>21229</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY1YmY3MDkxMDE3Nzg5
OWJlZjlhNmQzNjU5ZDAwMjg0ZmIxZDViMC4uNDNmODFhMTliNDgwZmI3MGE1YjcxZDNlMzYzMDYy
YWU0OTJiMjViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTIzICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAg
IFZpZXdwb3J0IENTUyBydWxlcyBzaG91bGQgbm90IGNsYW1wIHZhbHVlcyBsaWtlIFZpZXdwb3J0
IE1FVEEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MzA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENT
UyBEZXZpY2UgQWRhcHRpb24gZG9lcyBub3QgY2xhbXAgdGhlIGxlbmd0aCBhbmQgem9vbSB2YWx1
ZXMgdGhlCisgICAgICAgIHNhbWUgd2F5IGFzIHRoZSBWaWV3cG9ydCBNRVRBLiBJbiBmYWN0LCB0
aGV5IGFyZSBub3QgY2xhbXBlZCBhdCBhbGwsCisgICAgICAgIGJ1dCBpbnN0ZWFkLCB3ZSBqdXN0
IG1ha2Ugc3VyZSB0aGF0IGxlbmd0aCB2YWx1ZXMgYXJlIGF0IGxlYXN0IDFweC4KKworICAgICAg
ICBUZXN0czogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxOC54aHRtbAorICAg
ICAgICAgICAgICAgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxOS54aHRtbAor
ICAgICAgICAgICAgICAgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyMy54aHRt
bAorICAgICAgICAgICAgICAgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyNC54
aHRtbAorCisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpyZXNvbHZlKToKKwogMjAxMi0xMS0yNiAgQW5kcmV5
IEFkYWlraW4gIDxhYW5kcmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBbV2ViR0xdIFNhdmUgV2ViR0wgZXh0ZW5zaW9ucyBhbmQgcmVzdG9yZSBvbiByZXBsYXkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGUxYWRlNjNkMTFkYjVj
NmRlYzI3ZGRhNTc0MDk3NjBkYjA0NzI2ZjIuLmVhZTY4MjBhOWU3MTllMjg1Y2Q3YWY4M2JmNDE1
MDc4NjFmZjFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3Vt
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcApA
QCAtMTc1LDE0ICsxNzUsMjAgQEAgVmlld3BvcnRBdHRyaWJ1dGVzIFZpZXdwb3J0QXJndW1lbnRz
OjpyZXNvbHZlKGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZpZXdwb3J0U2kKICAgICAgICAgICAg
IHJlc3VsdFdpZHRoID0gY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRXaWR0aCwgZGV2aWNlU2l6
ZS53aWR0aCgpIC8gY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRab29tLCByZXN1bHRNYXhab29t
LCBtaW4pLCBtYXgpOwogICAgICAgICAgICAgcmVzdWx0SGVpZ2h0ID0gY29tcGFyZUlnbm9yaW5n
QXV0byhyZXN1bHRIZWlnaHQsIGRldmljZVNpemUuaGVpZ2h0KCkgLyBjb21wYXJlSWdub3JpbmdB
dXRvKHJlc3VsdFpvb20sIHJlc3VsdE1heFpvb20sIG1pbiksIG1heCk7CiAgICAgICAgIH0KKwor
ICAgICAgICByZXN1bHRXaWR0aCA9IG1heDxmbG9hdD4oMSwgcmVzdWx0V2lkdGgpOworICAgICAg
ICByZXN1bHRIZWlnaHQgPSBtYXg8ZmxvYXQ+KDEsIHJlc3VsdEhlaWdodCk7CiAgICAgfQogCi0g
ICAgLy8gQ2xhbXAgdmFsdWVzIHRvIHZhbGlkIHJhbmdlLgotICAgIHJlc3VsdFdpZHRoID0gY2xh
bXBMZW5ndGhWYWx1ZShyZXN1bHRXaWR0aCk7Ci0gICAgcmVzdWx0SGVpZ2h0ID0gY2xhbXBMZW5n
dGhWYWx1ZShyZXN1bHRIZWlnaHQpOwotICAgIHJlc3VsdFpvb20gPSBjbGFtcFNjYWxlVmFsdWUo
cmVzdWx0Wm9vbSk7Ci0gICAgcmVzdWx0TWluWm9vbSA9IGNsYW1wU2NhbGVWYWx1ZShyZXN1bHRN
aW5ab29tKTsKLSAgICByZXN1bHRNYXhab29tID0gY2xhbXBTY2FsZVZhbHVlKHJlc3VsdE1heFpv
b20pOworICAgIGlmICh0eXBlICE9IFZpZXdwb3J0QXJndW1lbnRzOjpDU1NEZXZpY2VBZGFwdGF0
aW9uICYmIHR5cGUgIT0gVmlld3BvcnRBcmd1bWVudHM6OkltcGxpY2l0KSB7CisgICAgICAgIC8v
IENsYW1wIHZhbHVlcyB0byBhIHZhbGlkIHJhbmdlLCBidXQgbm90IGZvciBAdmlld3BvcnQgc2lu
Y2UgaXMKKyAgICAgICAgLy8gbm90IG1hbmRhdGVkIGJ5IHRoZSBzcGVjaWZpY2F0aW9uLgorICAg
ICAgICByZXN1bHRXaWR0aCA9IGNsYW1wTGVuZ3RoVmFsdWUocmVzdWx0V2lkdGgpOworICAgICAg
ICByZXN1bHRIZWlnaHQgPSBjbGFtcExlbmd0aFZhbHVlKHJlc3VsdEhlaWdodCk7CisgICAgICAg
IHJlc3VsdFpvb20gPSBjbGFtcFNjYWxlVmFsdWUocmVzdWx0Wm9vbSk7CisgICAgICAgIHJlc3Vs
dE1pblpvb20gPSBjbGFtcFNjYWxlVmFsdWUocmVzdWx0TWluWm9vbSk7CisgICAgICAgIHJlc3Vs
dE1heFpvb20gPSBjbGFtcFNjYWxlVmFsdWUocmVzdWx0TWF4Wm9vbSk7CisgICAgfQogCiAgICAg
Vmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdDsKICAgICByZXN1bHQub3JpZW50YXRpb24gPSBvcmll
bnRhdGlvbjsKQEAgLTIyOSw5ICsyMzUsMTIgQEAgVmlld3BvcnRBdHRyaWJ1dGVzIFZpZXdwb3J0
QXJndW1lbnRzOjpyZXNvbHZlKGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZpZXdwb3J0U2kKICAg
ICBpZiAocmVzdWx0SGVpZ2h0ID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCiAgICAg
ICAgIHJlc3VsdEhlaWdodCA9IHJlc3VsdFdpZHRoICogKGluaXRpYWxWaWV3cG9ydFNpemUuaGVp
Z2h0KCkgLyBpbml0aWFsVmlld3BvcnRTaXplLndpZHRoKCkpOwogCi0gICAgLy8gRXh0ZW5kIHdp
ZHRoIGFuZCBoZWlnaHQgdG8gZmlsbCB0aGUgdmlzdWFsIHZpZXdwb3J0IGZvciB0aGUgcmVzb2x2
ZWQgaW5pdGlhbC1zY2FsZS4KLSAgICByZXN1bHRXaWR0aCA9IG1heDxmbG9hdD4ocmVzdWx0V2lk
dGgsIGluaXRpYWxWaWV3cG9ydFNpemUud2lkdGgoKSAvIHJlc3VsdC5pbml0aWFsU2NhbGUpOwot
ICAgIHJlc3VsdEhlaWdodCA9IG1heDxmbG9hdD4ocmVzdWx0SGVpZ2h0LCBpbml0aWFsVmlld3Bv
cnRTaXplLmhlaWdodCgpIC8gcmVzdWx0LmluaXRpYWxTY2FsZSk7CisgICAgaWYgKHR5cGUgPT0g
Vmlld3BvcnRBcmd1bWVudHM6OlZpZXdwb3J0TWV0YSkgeworICAgICAgICAvLyBFeHRlbmQgd2lk
dGggYW5kIGhlaWdodCB0byBmaWxsIHRoZSB2aXN1YWwgdmlld3BvcnQgZm9yIHRoZSByZXNvbHZl
ZCBpbml0aWFsLXNjYWxlLgorICAgICAgICByZXN1bHRXaWR0aCA9IG1heDxmbG9hdD4ocmVzdWx0
V2lkdGgsIGluaXRpYWxWaWV3cG9ydFNpemUud2lkdGgoKSAvIHJlc3VsdC5pbml0aWFsU2NhbGUp
OworICAgICAgICByZXN1bHRIZWlnaHQgPSBtYXg8ZmxvYXQ+KHJlc3VsdEhlaWdodCwgaW5pdGlh
bFZpZXdwb3J0U2l6ZS5oZWlnaHQoKSAvIHJlc3VsdC5pbml0aWFsU2NhbGUpOworICAgIH0KKwog
ICAgIHJlc3VsdC5sYXlvdXRTaXplLnNldFdpZHRoKHJlc3VsdFdpZHRoKTsKICAgICByZXN1bHQu
bGF5b3V0U2l6ZS5zZXRIZWlnaHQocmVzdWx0SGVpZ2h0KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMzOTgyMzUxNGNi
MTZlNDkxNTM0NjQ1ZmMxZTYxZmM2Y2EwOTdjN2EuLmUyYzAwMTY3MzQ0NDI5Mjc0ODYyNjAyN2Fk
N2VjNzdjNGQ4N2IyM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMS0yMyAgVGhpYWdv
IE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKworICAgICAgICBW
aWV3cG9ydCBDU1MgcnVsZXMgc2hvdWxkIG5vdCBjbGFtcCB2YWx1ZXMgbGlrZSBWaWV3cG9ydCBN
RVRBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMw
NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBv
cnRlZCBPcGVyYSB0ZXN0cyB0aGF0IG1ha2VzIHN1cmUgd2UgYXJlIGRvaW5nIHRoZSBjbGFtcGlu
ZyByaWdodC4KKworICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MTgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDE4LnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jb25zdHJhaW4tMDE5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxOS54aHRtbDogQWRkZWQuCisgICAgICAg
ICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyMy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjMueGh0
bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDI0LnhodG1sOiBBZGRlZC4KKwogMjAxMi0xMS0yNiAgRXVnZW5lIEtseXVj
aG5pa292ICA8ZXVzdGFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBI
ZWFwUHJvZmlsZXI6IHJlbW92ZSBzbmFwc2hvdFZpZXcgcmVmZXJlbmNlIGZyb20gZGF0YS1ncmlk
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMTgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRlOWI1YmY5ZjQ0NWJm
YzExYzMyNmNmNjk5Y2Q4NjVjYTIzYmZhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTgtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBTbWFs
bCBub24tYXV0byBoZWlnaHQgbm90IGFmZmVjdGluZyB3aWR0aC4gCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTgueGh0bWwgYi9M
YXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE4LnhodG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg4MGM5MWQzOGIwNWUyYTgxOWVjYmQxN2QwYTI2NWI2ZjY1NWRlNGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDE4LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3Ry
aWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cisg
PGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gU21hbGwg
bm9uLWF1dG8gaGVpZ2h0IG5vdCBhZmZlY3Rpbmcgd2lkdGguPC90aXRsZT4KKyAgPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJh
LmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nz
cy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0i
ZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3Nl
cnQiIGNvbnRlbnQ9Ik5vbi1hdXRvIGhlaWdodCBkb2VzIG5vdCBhZmZlY3Qgd2lkdGggaWYgem9v
bSBpcyBhdXRvLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
Lz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46
IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsg
fQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQg
dmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0
LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdo
dDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16
b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsK
KyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8K
KyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgaGVpZ2h0OiAxcHggfQorICAgLyogU2V0IHJvb3QgZWxl
bWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisg
ICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQg
aXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVs
ZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9k
eSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NT
IFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIFNtYWxsIG5vbi1hdXRvIGhlaWdodCBub3Qg
YWZmZWN0aW5nIHdpZHRoLiIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAg
ICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisg
ICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQg
dG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAv
KiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNl
ZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3
IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhl
IGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2
aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0
ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7
CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAg
IHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAi
IikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFp
bnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVk
ID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBm
b3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNl
dFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0
OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5u
ZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0
ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxIZWln
aHQsIDEpOyBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCB2aWV3cG9ydC5pbml0
aWFsV2lkdGgpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMu
ICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVl
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJs
b2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlk
PSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMTktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY29uc3RyYWluLTAxOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTE1YmY4OGJkOTc0
ZmYxZjMxZjllYTQ3MmQ2MWMyZjRkMjE4OTg4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBB
dXRvIHdpZHRoIGZyb20gaGVpZ2h0IGFuZCBub24tYXV0byB6b29tLiAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxOS54aHRtbCBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTkueGh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2Y1NTIwZGY2OTA0OTBlMTA3MGViNWU2ZDdiOTdhNjNiZTViODFiYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMTkueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1z
dHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBBdXRv
IHdpZHRoIGZyb20gaGVpZ2h0IGFuZCBub24tYXV0byB6b29tLjwvdGl0bGU+CisgIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVy
YS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9j
c3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9
ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNz
ZXJ0IiBjb250ZW50PSJOb24tYXV0byBoZWlnaHQgYWZmZWN0cyB3aWR0aCBpZiB6b29tIGlzIG5v
dCBhdXRvLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4K
KyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7
IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQor
ICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmll
d3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAq
LworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDog
YXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29t
OiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAg
ICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAg
IEAtd2Via2l0LXZpZXdwb3J0IHsgaGVpZ2h0OiAxMDAwMHB4OyB6b29tOiAxMDAlIH0KKyAgIC8q
IFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0
aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBm
b3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5v
dCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJy
ZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFz
eW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBBdXRvIHdpZHRoIGZy
b20gaGVpZ2h0IGFuZCBub24tYXV0byB6b29tLiIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5p
dGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRo
ZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRy
dWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1
ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZp
ZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1l
IHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVs
bSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0
aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQg
dG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0u
b2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0
SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHls
ZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0
IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNo
ZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdw
b3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0
ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0u
b2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGgg
LyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8K
KyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9y
dC5hY3R1YWxIZWlnaHQsIDEwMDAwKTsgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0
aCwgTWF0aC5mbG9vcigxMDAwMCp2aWV3cG9ydC5pbml0aWFsV2lkdGgvdmlld3BvcnQuaW5pdGlh
bEhlaWdodCkpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMu
ICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVl
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJs
b2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlk
PSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY29uc3RyYWluLTAyMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY2MGRlN2JlYTcz
MDMwNTdlYTgxNzEwNjZiNTM2MmUyMDIxMTM4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB1
c2VkIHdpZHRoIGlzIHBvc2l0aXZlLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyMy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjMueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q1NWU4
YjhjMWM2ZGI0NDMyZWI2ODlmYmQ3OWZhOGIyNjk0YjIzYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjMueGh0bWwKQEAg
LTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwh
RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxl
PkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB1c2VkIHdpZHRoIGlzIHBvc2l0aXZl
LjwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBo
cmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2Vk
dXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIg
Lz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJXaGVuIGNvbnN0cmFpbmVkIHdpZHRo
IGlzIGxvd2VyIHRoYW4gMC41cHgsIHJvdW5kaW5nIHdvdWxkIG1ha2UgaXQgMHB4LiBNYWtlIHN1
cmUgdGhlIHVzZWQgd2lkdGggaXMgdGhlbiBzZXQgdG8gMXB4LiIvPgorICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48
IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsg
d2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlz
cGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFs
dWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgewor
ICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAg
IG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9v
bTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQor
ICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyog
Q1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6
IDAuMDFlbSB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcg
ZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUg
J3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRp
YWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1s
IHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAg
XV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWwor
ICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVk
IC0gdXNlZCB3aWR0aCBpcyBwb3NpdGl2ZS4iKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRl
bSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUg
QHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVl
OworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVz
IHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3
cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBz
aXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhl
IGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRv
CisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9m
ZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhl
aWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUo
dGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0
aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVl
dC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9y
dCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVz
dEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9m
ZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8g
d2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisg
ICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQu
YWN0dWFsV2lkdGgsIDEpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJl
c3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQg
PSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5
ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8
ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAyNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA5NjIz
ZjQyYmZlN2M3OGJlZTI5OTBiYjNkOTcyNDdmZjRiYTVkOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWlu
ZWQgLSB1c2VkIGhlaWdodCBpcyBwb3NpdGl2ZS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjQueGh0bWwgYi9MYXlvdXRUZXN0
cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDI0LnhodG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgwZjA5NWFhNTczMWM2MzRjZTZiODVhM2Q0NTA0YzVjOWM0YjI4ODYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDI0Lnho
dG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04
Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+
Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+Cisg
IDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gdXNlZCBoZWlnaHQgaXMg
cG9zaXRpdmUuPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxl
c3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFpbmlu
Zy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3Jv
bGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IldoZW4gY29uc3RyYWlu
ZWQgaGVpZ2h0IGlzIGxvd2VyIHRoYW4gMC41cHgsIHJvdW5kaW5nIHdvdWxkIG1ha2UgaXQgMHB4
LiBNYWtlIHN1cmUgdGhlIHVzZWQgaGVpZ2h0IGlzIHRoZW4gc2V0IHRvIDFweC4iLz4KKyAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5
LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5n
OiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBp
bml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZp
ZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTog
YXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2Vy
LXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0
bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFU
QVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9y
dCB7IGhlaWdodDogMC4wMWVtIH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRv
IHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRv
IG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQor
ICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4g
Ki8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAu
NXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQg
Y29uc3RyYWluZWQgLSB1c2VkIGhlaWdodCBpcyBwb3NpdGl2ZS4iKTsKKyAgIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5
bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBj
b250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlz
YWJsZWQgPSB0cnVlOworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmll
d3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLwor
ICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0
aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAg
dmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyog
UmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUg
QHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGgg
PSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0
RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENv
bXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUg
c3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0
ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFj
dHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVh
bFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQg
PSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5p
dGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2
YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVh
bHModmlld3BvcnQuYWN0dWFsSGVpZ2h0LCAxKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVk
LiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNo
ZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIiku
c3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4K
KyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8
L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>