|
|
Chromium Code Reviews|
Created:
4 years, 6 months ago by apacible Modified:
4 years, 6 months ago CC:
chromium-reviews, dbeam+watch-polymer_chromium.org, apacible+watch_chromium.org, michaelpg+watch-polymer_chromium.org, michaelpg+watch-md-ui_chromium.org, arv+watch_chromium.org, oshima+watch_chromium.org, hcarmona Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
Description[Md Feedback] Add initial content/strings to feedback-container element.
Changes include:
- Create feedback-container custom Polymer element with initial contents/strings and very minimal styling.
- String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified.
- Add newly used resources to polymer_resources.grdp.
WebUI interaction/functionality implemented later.
BUG=615535, 606844
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation
Committed: https://crrev.com/20deb53f9df11c8a5967f34ac07d911138f0a153
Cr-Commit-Position: refs/heads/master@{#399296}
Patch Set 1 : #
Total comments: 6
Patch Set 2 : Changes per dbeam@'s comments. Rebase. #
Total comments: 16
Patch Set 3 : Changes per dbeam@'s comments. #
Total comments: 6
Patch Set 4 : Rebase. #Patch Set 5 : Changes per dbeam@'s comments. #
Total comments: 2
Patch Set 6 : Changes per hcarmona@'s comments. #
Messages
Total messages: 39 (19 generated)
Description was changed from ========== initial webui changes BUG= ========== to ========== initial webui changes BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== initial webui changes BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ========== to ========== Changes include: - Create feedback-container custom Polymer element with initial contents. - String localization. - Run script to add some Polymer elements to polymer_resources.grdp. Interactions with the WebUI will be implemented later. BUG=615535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ==========
Patchset #1 (id:1) has been deleted
Description was changed from ========== Changes include: - Create feedback-container custom Polymer element with initial contents. - String localization. - Run script to add some Polymer elements to polymer_resources.grdp. Interactions with the WebUI will be implemented later. BUG=615535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ========== to ========== Changes include: - Create feedback-container custom Polymer element with initial contents, minimal styling. - Add string localization. - Add closure compiler checker. - Add newly used resources to polymer_resources.grdp. (picked up placement change for paper-icon-button as well from running script) Interactions with the WebUI will be implemented later. BUG=615535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== Changes include: - Create feedback-container custom Polymer element with initial contents, minimal styling. - Add string localization. - Add closure compiler checker. - Add newly used resources to polymer_resources.grdp. (picked up placement change for paper-icon-button as well from running script) Interactions with the WebUI will be implemented later. BUG=615535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ========== to ========== Changes include: - Create feedback-container custom Polymer element with initial contents, minimal styling. - Add string localization. - Add newly used resources to polymer_resources.grdp. (picked up placement change for paper-icon-button as well from running script) Interactions with the WebUI will be implemented later. BUG=615535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== Changes include: - Create feedback-container custom Polymer element with initial contents, minimal styling. - Add string localization. - Add newly used resources to polymer_resources.grdp. (picked up placement change for paper-icon-button as well from running script) Interactions with the WebUI will be implemented later. BUG=615535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ========== to ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. (picked up placement change for paper-icon-button as well from running script) WebUI interaction/functionality implemented later. BUG=615535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ==========
apacible@chromium.org changed reviewers: + dbeam@chromium.org
PTAL, thanks! Should I add a compiled_resources2.gyp file since I included I18nBehavior (IWYU), even though it's just used in the HTML? Will write tests when interacting with the WebUI actually do things.
Friendly ping
Description was changed from ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. (picked up placement change for paper-icon-button as well from running script) WebUI interaction/functionality implemented later. BUG=615535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ========== to ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. (picked up placement change for paper-icon-button as well from running script) WebUI interaction/functionality implemented later. BUG=615535, 606844 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ==========
i would highly recommend using $i18n{} instead of i18n-content, as this does the
processing before reaching the renderer in C++ (instead of after being sent to
the renderer in JS)
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource...
File chrome/browser/resources/md_feedback/feedback.css (right):
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource...
chrome/browser/resources/md_feedback/feedback.css:6: font-family: Roboto;
can you use text_defaults_md.css instead?
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource...
File chrome/browser/resources/md_feedback/feedback.html (right):
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource...
chrome/browser/resources/md_feedback/feedback.html:2: <html
i18n-values="dir:textdirection;lang:language">
nit: consider <html dir="${textdirection}" lang="${language}"> instead
Patchset #2 (id:40001) has been deleted
On 2016/06/08 00:29:51, Dan Beam wrote:
> i would highly recommend using $i18n{} instead of i18n-content, as this does
the
> processing before reaching the renderer in C++ (instead of after being sent to
> the renderer in JS)
Done.
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource...
File chrome/browser/resources/md_feedback/feedback.css (right):
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource...
chrome/browser/resources/md_feedback/feedback.css:6: font-family: Roboto;
On 2016/06/08 00:29:51, Dan Beam wrote:
> can you use text_defaults_md.css instead?
Done.
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource...
File chrome/browser/resources/md_feedback/feedback.html (right):
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource...
chrome/browser/resources/md_feedback/feedback.html:2: <html
i18n-values="dir:textdirection;lang:language">
On 2016/06/08 00:29:51, Dan Beam wrote:
> nit: consider <html dir="${textdirection}" lang="${language}"> instead
Is this different from $i18n{textdirection}? I looked for some other usages of
this but didn't find any.
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback.html (right): https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback.html:2: <html i18n-values="dir:textdirection;lang:language"> On 2016/06/09 18:41:04, apacible wrote: > On 2016/06/08 00:29:51, Dan Beam wrote: > > nit: consider <html dir="${textdirection}" lang="${language}"> instead > > Is this different from $i18n{textdirection}? I looked for some other usages of > this but didn't find any. sorry, I meant $i18n{textdirection}, you're right
what's up with the polymer_resources.grdp changes? are those intentional? i know hcarmona@ was thinking of changing that recently: maybe you hit a merge conflict? https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback.html (right): https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback.html:8: <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> fwiw: text_defaults_md.css already imports roboto.css for you: https://cs.chromium.org/chromium/src/ui/webui/resources/css/text_defaults_md.... https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback.html:15: <link rel="import" href="chrome://resources/html/i18n_template.html"> do you need i18n_template.html now? I don't think you're using i18n-* attributes any more... https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback_container.html (right): https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:2: <link rel="import" href="chrome://resources/html/i18n_behavior.html"> do you still need this? https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:14: </paper-textarea> this probably fits in one line now? https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:27: <script src="feedback_container.js"></script> nit: indent 2 more spaces https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback_container.js (right): https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.js:8: Polymer({ this doesn't really do much yet, and you don't actually use i18n() any more so maybe keep this normal DOM until you *need* shadow DOM / Polymer (these things aren't free) https://codereview.chromium.org/2039593002/diff/60001/ui/webui/resources/poly... File ui/webui/resources/polymer_resources.grdp (right): https://codereview.chromium.org/2039593002/diff/60001/ui/webui/resources/poly... ui/webui/resources/polymer_resources.grdp:508: type="chrome_html" /> hmmm, are you using our tools/polymer/ scripts to generate this output?
hcarmona@chromium.org changed reviewers: + hcarmona@chromium.org
https://codereview.chromium.org/2039593002/diff/60001/ui/webui/resources/poly... File ui/webui/resources/polymer_resources.grdp (right): https://codereview.chromium.org/2039593002/diff/60001/ui/webui/resources/poly... ui/webui/resources/polymer_resources.grdp:508: type="chrome_html" /> On 2016/06/09 19:03:39, Dan Beam wrote: > hmmm, are you using our tools/polymer/ scripts to generate this output? My change hasn't landed yet, but I have the same change using the tool to make my update.
https://codereview.chromium.org/2039593002/diff/60001/ui/webui/resources/poly... File ui/webui/resources/polymer_resources.grdp (right): https://codereview.chromium.org/2039593002/diff/60001/ui/webui/resources/poly... ui/webui/resources/polymer_resources.grdp:508: type="chrome_html" /> On 2016/06/09 19:07:05, Hector Carmona wrote: > On 2016/06/09 19:03:39, Dan Beam wrote: > > hmmm, are you using our tools/polymer/ scripts to generate this output? > > My change hasn't landed yet, but I have the same change using the tool > to make my update. I goofed somewhere with branches; these are for another change (using an input textarea). These changes will be removed in the next patchset.
https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback.html (right): https://codereview.chromium.org/2039593002/diff/20001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback.html:2: <html i18n-values="dir:textdirection;lang:language"> On 2016/06/09 18:57:47, Dan Beam wrote: > On 2016/06/09 18:41:04, apacible wrote: > > On 2016/06/08 00:29:51, Dan Beam wrote: > > > nit: consider <html dir="${textdirection}" lang="${language}"> instead > > > > Is this different from $i18n{textdirection}? I looked for some other usages of > > this but didn't find any. > > sorry, I meant $i18n{textdirection}, you're right Done. https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback.html (right): https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback.html:8: <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> On 2016/06/09 19:03:39, Dan Beam wrote: > fwiw: text_defaults_md.css already imports roboto.css for you: > https://cs.chromium.org/chromium/src/ui/webui/resources/css/text_defaults_md.... Done. https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback.html:15: <link rel="import" href="chrome://resources/html/i18n_template.html"> On 2016/06/09 19:03:39, Dan Beam wrote: > do you need i18n_template.html now? I don't think you're using i18n-* > attributes any more... Done. https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback_container.html (right): https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:2: <link rel="import" href="chrome://resources/html/i18n_behavior.html"> On 2016/06/09 19:03:39, Dan Beam wrote: > do you still need this? Done. https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:14: </paper-textarea> On 2016/06/09 19:03:39, Dan Beam wrote: > this probably fits in one line now? Done. https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:27: <script src="feedback_container.js"></script> On 2016/06/09 19:03:39, Dan Beam wrote: > nit: indent 2 more spaces Done. https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback_container.js (right): https://codereview.chromium.org/2039593002/diff/60001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.js:8: Polymer({ On 2016/06/09 19:03:39, Dan Beam wrote: > this doesn't really do much yet, and you don't actually use i18n() any more so > maybe keep this normal DOM until you *need* shadow DOM / Polymer (these things > aren't free) There are some feedback components that I plan to use dom-if on within this element, which is why I started with Polymer here. I have a plan/schedule on when to add which components, so would prefer to keep as is. Let me know if you feel strongly otherwise. https://codereview.chromium.org/2039593002/diff/60001/ui/webui/resources/poly... File ui/webui/resources/polymer_resources.grdp (right): https://codereview.chromium.org/2039593002/diff/60001/ui/webui/resources/poly... ui/webui/resources/polymer_resources.grdp:508: type="chrome_html" /> On 2016/06/09 20:23:48, apacible wrote: > On 2016/06/09 19:07:05, Hector Carmona wrote: > > On 2016/06/09 19:03:39, Dan Beam wrote: > > > hmmm, are you using our tools/polymer/ scripts to generate this output? > > > > My change hasn't landed yet, but I have the same change using the tool > > to make my update. > > I goofed somewhere with branches; these are for another change (using an input > textarea). These changes will be removed in the next patchset. Wait, got confused from the multiple webui-related changes I have locally. I reran the tools/polymer/ scripts to generate the file changes here. I needed the new paper-textarea and iron-autogrow-textarea for <paper-textarea> in feedback-container.html. The paper-icon-button was automatically moved (see CL description).
lgtm w/request + question https://codereview.chromium.org/2039593002/diff/80001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback_container.html (right): https://codereview.chromium.org/2039593002/diff/80001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:6: <link rel="import" type="css" href="feedback_container.css"> note: this syntax (link type=css) is deprecated. can you just put the <style> inline in the HTML? https://codereview.chromium.org/2039593002/diff/80001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:18: <span>$i18n{cancelButton}</span> why are you wrapping with a <span>?
https://codereview.chromium.org/2039593002/diff/80001/ui/webui/resources/poly... File ui/webui/resources/polymer_resources.grdp (right): https://codereview.chromium.org/2039593002/diff/80001/ui/webui/resources/poly... ui/webui/resources/polymer_resources.grdp:506: <structure name="IDR_POLYMER_1_0_PAPER_ICON_BUTTON_PAPER_ICON_BUTTON_HTML" also, can you manually revert this and/or set your LC_ALL=C environment variable? i don't really get how this is being incorrectly sorted, but obviously HTML comes before LIGHT_HTML
Description was changed from ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. (picked up placement change for paper-icon-button as well from running script) WebUI interaction/functionality implemented later. BUG=615535, 606844 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ========== to ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. WebUI interaction/functionality implemented later. BUG=615535, 606844 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ==========
https://codereview.chromium.org/2039593002/diff/80001/chrome/browser/resource... File chrome/browser/resources/md_feedback/feedback_container.html (right): https://codereview.chromium.org/2039593002/diff/80001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:6: <link rel="import" type="css" href="feedback_container.css"> On 2016/06/09 22:50:53, Dan Beam wrote: > note: this syntax (link type=css) is deprecated. Noted. > can you just put the <style> inline in the HTML? Done. https://codereview.chromium.org/2039593002/diff/80001/chrome/browser/resource... chrome/browser/resources/md_feedback/feedback_container.html:18: <span>$i18n{cancelButton}</span> On 2016/06/09 22:50:53, Dan Beam wrote: > why are you wrapping with a <span>? Removed. https://codereview.chromium.org/2039593002/diff/80001/ui/webui/resources/poly... File ui/webui/resources/polymer_resources.grdp (right): https://codereview.chromium.org/2039593002/diff/80001/ui/webui/resources/poly... ui/webui/resources/polymer_resources.grdp:506: <structure name="IDR_POLYMER_1_0_PAPER_ICON_BUTTON_PAPER_ICON_BUTTON_HTML" On 2016/06/09 22:52:19, Dan Beam wrote: > also, can you manually revert this and/or set your LC_ALL=C environment > variable? i don't really get how this is being incorrectly sorted, but > obviously HTML comes before LIGHT_HTML Done.
Patchset #5 (id:120001) has been deleted
The CQ bit was checked by apacible@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from dbeam@chromium.org Link to the patchset: https://codereview.chromium.org/2039593002/#ps140001 (title: "Changes per dbeam@'s comments.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2039593002/140001
https://codereview.chromium.org/2039593002/diff/140001/chrome/browser/resourc... File chrome/browser/resources/md_feedback/feedback_container.css (right): https://codereview.chromium.org/2039593002/diff/140001/chrome/browser/resourc... chrome/browser/resources/md_feedback/feedback_container.css:1: /* Copyright 2016 The Chromium Authors. All rights reserved. This file is no longer being used and can be deleted.
The CQ bit was unchecked by apacible@chromium.org
https://codereview.chromium.org/2039593002/diff/140001/chrome/browser/resourc... File chrome/browser/resources/md_feedback/feedback_container.css (right): https://codereview.chromium.org/2039593002/diff/140001/chrome/browser/resourc... chrome/browser/resources/md_feedback/feedback_container.css:1: /* Copyright 2016 The Chromium Authors. All rights reserved. On 2016/06/10 20:32:02, Hector Carmona wrote: > This file is no longer being used and can be deleted. Done.
The CQ bit was checked by apacible@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from dbeam@chromium.org Link to the patchset: https://codereview.chromium.org/2039593002/#ps160001 (title: "Changes per hcarmona@'s comments.")
lgtm
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2039593002/160001
Message was sent while issue was closed.
Description was changed from ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. WebUI interaction/functionality implemented later. BUG=615535, 606844 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ========== to ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. WebUI interaction/functionality implemented later. BUG=615535, 606844 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ==========
Message was sent while issue was closed.
Committed patchset #6 (id:160001)
Message was sent while issue was closed.
CQ bit was unchecked
Message was sent while issue was closed.
Description was changed from ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. WebUI interaction/functionality implemented later. BUG=615535, 606844 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation ========== to ========== [Md Feedback] Add initial content/strings to feedback-container element. Changes include: - Create feedback-container custom Polymer element with initial contents/strings and very minimal styling. - String localization. The strings are primarily duplicates of the existing feedback, which avoids messiness if/when one set of strings are modified. - Add newly used resources to polymer_resources.grdp. WebUI interaction/functionality implemented later. BUG=615535, 606844 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation Committed: https://crrev.com/20deb53f9df11c8a5967f34ac07d911138f0a153 Cr-Commit-Position: refs/heads/master@{#399296} ==========
Message was sent while issue was closed.
Patchset 6 (id:??) landed as https://crrev.com/20deb53f9df11c8a5967f34ac07d911138f0a153 Cr-Commit-Position: refs/heads/master@{#399296} |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
