Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> cmsEntity.getLocalizedField(profile, "/entity/fields/title")  [in template "20116#20152#259373" at line 10, column 25]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign productTitle = cmsEntity.getL...  [in template "20116#20152#259373" at line 10, column 1]
----
1<#include "${templatesPath}/227222">  
2 
3<#if cmsEntity?has_content> 
4 
5<#assign mainImage = "" > 
6<#if cmsEntity.getLocalizedField(profile, "/entity/assets/mainImage")?has_content> 
7    <#assign mainImage = cmsEntity.getLocalizedField(profile, "/entity/assets/mainImage") > 
8</#if> 
9 
10<#assign productTitle = cmsEntity.getLocalizedField(profile, "/entity/fields/title")> 
11<#assign products = [] > 
12<#if cmsEntity.getField(profile, "/entity/relationships/bundles")?has_content> 
13    <#assign bundles = cmsEntity.getField(profile, "/entity/relationships/bundles") > 
14    <#assign products = cmsBundleService.getProductsInBundle(profile, bundles.get(0).id)> 
15</#if> 
16 
17<#assign mobileImg = ""> 
18<#if  cmsEntity.getLocalizedField(profile, "/entity/assets/mobileMainImage")?has_content> 
19    <#assign mobileMainImage = cmsEntity.getLocalizedField(profile, "/entity/assets/mobileMainImage") > 
20    <#if mobileMainImage.url?has_content> 
21        <#assign mobileImg = mobileMainImage.url> 
22    </#if> 
23</#if> 
24 
25<#assign portalUrl = themeDisplay.getPortalURL() > 
26<#assign currentURL = portalUrl + themeDisplay.getURLCurrent()  > 
27<@appendHTMLMetas currentURL cmsEntity /> 
28 
29<div class="main-image-container"> 
30 
31<div class="parallax-window" data-parallax="scroll"></div> 
32 
33<#if cmsEntity.getField(profile, "/entity/fields/summary")?has_content > 
34    <#assign summary = cmsContentFormatterService.getMarkdown(cmsEntity.getLocalizedField(profile, "/entity/fields/summary"))> 
35</#if> 
36 
37 
38    <@sectionHeader title="${title}" menuTitle="${menuTitle}" cssClasses="background" id="solutions-main-image"/>  
39    <div class="gradient-layer-black-left"></div> 
40 
41    <div class="bg-content">  
42        <div class="first-section">  
43            <h1 class="product-page-heading text-light">${productTitle}</h1> 
44            <div class="row justify-content-between"> 
45                <div class="col-12 col-md-7 article-content"> 
46                    <#if summary?has_content> 
47                        <div class="product-page-intro text-light">${summary}</div>             
48                    </#if> 
49                     
50                     
51                    <#if cmsEntity.getField(profile, "/entity/relationships/bundleSpecifications/properties/shortTermMaxSpl")?has_content > 
52                        <#assign spl = cmsEntity.getField(profile, "/entity/relationships/bundleSpecifications/properties/shortTermMaxSpl") > 
53                        <div class="row text-white mb-4">  
54                            <div class="col-12 col-xl-6">  
55                                <div class="media product-page-media">  
56                                    <@imageThumbnail src="${getProductSpecificationIconUrl('SPL_white')}" id="" cssClasses="mr-3" thumbnail="techSpecIcon"/> 
57                                    <div class="media-body"> <p class="mt-0 text-bolder"><@liferay.language key="spl"/></p> <p class="small">${spl} dB</p></div> 
58                                </div>  
59                            </div> 
60                    </#if> 
61 
62                    <#assign  
63                        frequencyResponseAccuracy = "" 
64                        frequencyResponseLowCutoff = "" 
65                        frequencyResponseHighCutoff = "" 
66
67                     
68                    <#if cmsEntity.getField(profile, "/entity/relationships/bundleSpecifications/properties/frequencyResponseAccuracy")?has_content >  
69                        <#assign frequencyResponseAccuracy = cmsEntity.getField(profile, "/entity/relationships/bundleSpecifications/properties/frequencyResponseAccuracy")> 
70                    </#if> 
71                    <#if cmsEntity.getField(profile, "/entity/relationships/bundleSpecifications/properties/frequencyResponseLowCutoff")?has_content >  
72                        <#assign frequencyResponseLowCutoff = cmsEntity.getField(profile, "/entity/relationships/bundleSpecifications/properties/frequencyResponseLowCutoff")> 
73                    </#if> 
74                    <#if cmsEntity.getField(profile, "/entity/relationships/bundleSpecifications/properties/frequencyResponseHighCutoff")?has_content >  
75                        <#assign frequencyResponseHighCutoff = cmsEntity.getField(profile, "/entity/relationships/bundleSpecifications/properties/frequencyResponseHighCutoff")> 
76                    </#if>                             
77 
78                    <#if frequencyResponseAccuracy?has_content && frequencyResponseLowCutoff?has_content && frequencyResponseHighCutoff?has_content> 
79                            <div class="col-12 col-xl-6">  
80                                <div class="media product-page-media">  
81                                    <@imageThumbnail src="${getProductSpecificationIconUrl('AccuracyOfFrequencyResponse_white')}" id="" cssClasses="mr-3" thumbnail="techSpecIcon"/> 
82                                    <div class="media-body">  
83                                        <p class="mt-0 text-bolder"><@liferay.language key="accuracy-of-frequency-response"/></p>  
84                                        <p class="small"> 
85                                            ${frequencyResponseLowCutoff} Hz -  
86                                            ${frequencyResponseHighCutoff/1000} kHz   
87                                            &#xB1;${frequencyResponseAccuracy} dB </p> 
88                                    </div> 
89                                </div>  
90                            </div>  
91                        </div> 
92                    </#if> 
93 
94                    <hr class="bg-white"> 
95                     
96                    <#if products?has_content> 
97                        <p class="mt-4 text-bolder text-light"><@liferay.language key="products-in-this-solution"/></p> 
98                        <#list products as product> 
99                            <#assign i = product?index> 
100                            <#assign quantity = bundles.get(0).relationships.productEntries.get(i).properties.quantity> 
101                            <#assign image = product.getLocalizedField(profile, "/entity/assets/listingImage")> 
102                            <#assign alt = ""> 
103                             
104                            <#assign listingImageRel =  product.getLocalizedField(profile, "/entity/relationships/listingImage/locales")!"" > 
105                             
106                            <#if listingImageRel?has_content && !listingImageRel.properties.isNull("altText")> 
107                                 <#assign alt = localizeField(listingImageRel.properties.altText, profile.getCMSLangCode())> 
108                            </#if> 
109                             
110                            <#assign name = product.getLocalizedField(profile, "/entity/fields/title")> 
111                             
112                            <div class="solution-products"> 
113                                 
114                                <div class="media"> 
115                                    <div class="media-img mr-2"> 
116                                        <img alt="${alt}" src="${image.url}?w=70&fm=png&fl=png8"> 
117                                    </div> 
118                                    <div class="media-body align-self-center"> 
119                                        <span class="h2 text-bold text-light">  
120                                            ${quantity} 
121                                        </span> 
122                                        <span class="text-light"> × </span> 
123                                        <span class="text-bold text-light">${name}</span> 
124                                    </div> 
125                                </div> 
126                            </div> 
127                        </#list> 
128                    </#if> 
129                </div>  
130            </div>  
131        </div>  
132    </div> 
133     
134    <@sectionFooter/>  
135 
136    <@printSubmenu /> 
137 
138    <#if mainImage?has_content && mainImage.url?has_content> 
139        <@parallaxBackground url="${mainImage.url}?w=1250&fm=jpg&q=85" speed="0.4" mobileUrl="${mobileImg}"/> 
140    </#if> 
141 
142</div> 
143     
144    <style> 
145    .solution-products >span{ 
146       vertical-align: middle; 
147
148 
149    .background { 
150            background: none; 
151
152 
153    .bg-content { 
154        position: relative; 
155        min-height: 90vh; 
156
157     
158.background { 
159    position: relative; 
160}  
161 
162@media (min-width: 992px) { 
163    .background { 
164        min-height: calc(100vh - 80px); 
165
166
167 
168    /* 
169    .has-control-menu .background {  
170        height: calc(100vh - 56px - 50px + 500px);  
171
172    */ 
173 
174    .solution-products .media-img { 
175        text-align: center; 
176
177 
178    .solution-products .media-body span { 
179        vertical-align: middle; 
180
181 
182    /* yliajaa olemassaolevan */ 
183    #mainImage .container-padding hr { 
184        margin: 1rem auto; 
185        border: 1px solid black; 
186
187 
188    .text-link { 
189        cursor: pointer; 
190
191 
192    @media (min-width: 992px){ 
193        .first-section .row { 
194            width: 100% !important; 
195
196
197 
198    @media (min-width: 992px) { 
199        .first-section > .row, .first-section .product-page-heading { 
200            width: 50%; 
201
202
203     
204    </style> 
205 
206</#if> 

G One

SPL

96 dB

Respuesta en frecuencia

67 Hz - 25 kHz (-6dB)

Dimensiones

H 195 x W 121 x D 115 mm, with Iso-Pod™ (ver en pulgadas)

F One

SPL

100 dB

Respuesta en frecuencia

35 Hz - 85 Hz (-6dB)

Dimensiones

H 251 x W 305 x D 305 mm, (ver en pulgadas)

Active Crossovers

Directivity Control Waveguide (DCW™) Technology

Intelligent Signal Sensing (ISS™) Technology

Iso-Pod™ Stand

Minimum Diffraction Enclosure (MDE™) Technology

Optimised Amplifiers

Protection Circuitry

Reflex Port Design

Room Response Compensation

Versatile Mountings

Bass Management System

Encuentra tu representante

Introduce tu ciudad para encontrar el representante más cercano

Filters
X Filters
All
Monitores de estudio
Audio para casa
Instalación AV
Servicio técnico
Sala de demostración
Centro de experiencia
SAM Certified
Smart IP Certified
País
Se ha producido un error al procesar la plantilla.
An error has occurred when reading existing sub-variable "iterator"; see cause exception! The type of the containing value was: extended_hash+string (org.json.JSONObject wrapped into f.e.b.StringModel)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #list faqs.iterator() as faq  [in template "20116#20152#284632" at line 154, column 21]
----
1<#if cmsEntity?has_content> 
2 
3<#include "${templatesPath}/227222" />  
4<#assign siteDefaultLocale = portalUtil.getSiteDefaultLocale(groupId)?string?replace("_","-") > 
5<#assign reviewsPath = "/entity/relationships/reviews/"+profile.getCMSLangCode()+"/references" > 
6<#assign documentPath = "/entity/relationships/documents/"+profile.getCMSLangCode()+"/references" > 
7 
8<#assign products = [] > 
9<#if cmsEntity.getField(profile, "/entity/relationships/bundles")?has_content> 
10    <#assign bundles = cmsEntity.getField(profile, "/entity/relationships/bundles") > 
11    <#assign id = bundles.get(0).id> 
12    <#assign products = cmsBundleService.getProductsInBundle(profile, id)> 
13</#if> 
14 
15    <#list products as product> 
16        <#if product.getField(profile, "/entity/relationships/documents")?has_content> 
17            <#assign documents = product.getField(profile, "/entity/relationships/documents") > 
18        </#if> 
19        <#if product.getField(profile, reviewsPath)?has_content> 
20            <#assign reviews = product.getField(profile, reviewsPath) > 
21        </#if> 
22        <#if product.getField(profile, "/entity/relationships/faqs")?has_content> 
23            <#assign faqs = product.getField(profile, "/entity/relationships/faqs") > 
24            <#if groupField(product,"/entity/relationships/faqs", groupId)?has_content> 
25                <#assign faqs = groupField(product,"/entity/relationships/faqs", groupId).references > 
26            </#if>           
27        </#if> 
28         
29    </#list> 
30 
31<#if documents?has_content || reviews?has_content || faqs?has_content> 
32 
33<@sectionHeader title="${title}" menuTitle="${menuTitle}" cssClasses="bg-blue-darker product-page-downloads" id="section-downloads"/> 
34    <#assign reviewColContent = "" /> 
35    <#assign downloadColContent = "" /> 
36    <#assign documentColContent = "" /> 
37    <#assign documentType = ""> 
38<#list products as product> 
39    <#assign documentsDocumentTypes = ["operating manual", "guide", "other manual", "brochure", "catalogue", "datasheet", "software release note"]> 
40    <#assign downloadsDocumentTypes = ["line drawing","simulation file", "test signal", "software realese note", "certificate", "technical paper", "article or publication"]> 
41    <#assign reviewsDocumentTypes = ["review"]> 
42 
43    <#if product.getField(profile, "/entity/relationships/documents")?has_content> 
44        <#assign documents = product.getField(profile, documentPath) > 
45    </#if> 
46    <#if product.getField(profile, reviewsPath)?has_content> 
47        <#assign reviews = product.getField(profile, reviewsPath) > 
48    </#if> 
49    <#if product.getField(profile, "/entity/relationships/faqs")?has_content> 
50        <#assign faqs = product.getField(profile, "/entity/relationships/faqs") > 
51    </#if> 
52 
53<#if product.getField(profile, "/entity/relationships/documents")?has_content> 
54    <#list documents.iterator() as document> 
55 
56        <#if !document.properties.isNull("documentTypeKey")> 
57            <#assign documentType = localizeField(document.properties.documentTypeKey)?lower_case> 
58        <#elseif !document.properties.isNull("documentType")> 
59            <#assign documentType = localizeField(document.properties.documentType)?lower_case> 
60        </#if> 
61        <#if !document.assets.file.isNull("mediaType")> 
62            <#assign mediaType = document.assets.file.mediaType?replace(".","/")> 
63        </#if> 
64     
65 
66        <#if downloadsDocumentTypes?seq_contains(documentType)> 
67            <#assign downloadColContent> 
68                ${downloadColContent} 
69                <a href="${document.assets['file'].url}" target="_blank" rel="noopener noreferrer" class="type-${documentType?replace(" ", "-")}"> 
70                    <#if mediaType?keep_after_last("/") = "pdf"> 
71                        <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="pdf" icon="pdf-green"/></span></span> 
72                    <#else> 
73                        <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="" icon="download-green"/></span></span> 
74                    </#if> 
75                </a> 
76            </#assign> 
77 
78        <#elseif documentsDocumentTypes?seq_contains(documentType)> 
79        <#if !documentColContent?contains(document.assets['file'].url)> 
80            <#assign documentColContent> 
81                ${documentColContent} 
82                <a href="${document.assets['file'].url}" target="_blank" rel="noopener noreferrer" class="type-${documentType?replace(" ", "-")}"> 
83                    <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="pdf" icon="pdf-green"/></span></span> 
84                </a> 
85            </#assign> 
86        </#if> 
87        </#if> 
88     
89    </#list> 
90</#if> 
91<#if product.getField(profile, reviewsPath)?has_content> 
92    <#if reviews?has_content> 
93        <#list reviews.iterator() as review> 
94            <#assign id = review.id> 
95            <#assign reviewColContent> 
96                ${reviewColContent} 
97                <#if !review.properties.isNull("url")> 
98                    <a href="${review.properties.url}" target="_blank" rel="noopener noreferrer" class="type-review"> 
99                        <span class="text-bolder">${review.properties.heading}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="" icon="external-green"/></span></span> 
100                    </a>  
101                <#else> 
102                    <a href="#/" onClick="openDocumentReviewPopup('${id}')" class="type-review"> 
103                        <span class="text-bolder"> 
104                            ${review.properties.heading} 
105                        </span> 
106                    </a> 
107                </#if> 
108            </#assign> 
109        </#list> 
110    </#if> 
111    </#if> 
112</#list> 
113 
114        <div class="row bg-white table-row-padding"> 
115         
116            <div class="col-lg-4"> 
117                <#if documentColContent?has_content> 
118                    <h3><@liferay.language key="documents"/></h3> 
119                     ${documentColContent} 
120                </#if> 
121                 
122            </div> 
123             
124            <div class="col-lg-4"> 
125                <#if downloadColContent?has_content> 
126                    <h3><@liferay.language key="downloads"/></h3> 
127                    ${downloadColContent} 
128                </#if> 
129            </div> 
130 
131 
132            <div class="col-lg-4"> 
133                <#if reviewColContent?has_content> 
134                    <h3><@liferay.language key="reviews"/></h3> 
135                    ${reviewColContent} 
136                </#if> 
137            </div> 
138             
139        </div> 
140     
141        <#assign faqCounter = 0 > 
142        <#assign showFAQCount = 3 > 
143         
144        <#list products as product> 
145         <#if product.getField(profile, "/entity/relationships/faqs")?has_content> 
146            <#assign faqs = product.getField(profile, "/entity/relationships/faqs") > 
147            <#if groupField(product,"/entity/relationships/faqs", groupId)?has_content> 
148                <#assign faqs = groupField(product,"/entity/relationships/faqs", groupId).references > 
149            </#if>            
150         
151         
152             
153 
154                    <#list faqs.iterator() as faq> 
155                    <#assign id = faq.id> 
156 
157                    <#if faqCounter == 0> 
158                        <div id="faqs" class="row bg-white table-row-padding"> 
159                            <div class="col-lg-7"> 
160                                <h3><@liferay.language key="faq"/></h3> 
161                    </#if> 
162 
163                        <div class="faq_element <#if faqCounter gte showFAQCount>hidden</#if> "> 
164                            <div class="faq_element_question col-lg-12" onclick="faqShowAnswer('${id}');"> 
165 
166                                <i class="icon-plus-sign" id="faq-plus-${id}"></i> 
167                                <i class="icon-minus-sign" id="faq-minus-${id}" style="display: none;"></i> 
168 
169                                <#assign question = faq.properties.question > 
170                                <a href="#faq_element_answer" class="ml-4"><h4 class="text-bolder">${question}</h4></a> 
171                            </div> 
172                            <div class="faq_element_answer ml-4" id="faq-element-answer-${id}"> 
173                                <#assign answer = cmsContentFormatterService.getMarkdown(faq.properties.answer)> 
174                                ${answer?replace('h1>|h2>', 'h5>', 'r')?replace('h3>', 'h6>')} 
175                            </div> 
176                        </div> 
177                        <#assign faqCounter = faqCounter + 1 > 
178                    </#list> 
179 
180            <#if faqCounter == (showFAQCount - 1)>    
181                </div>  
182                </div> 
183            </#if> 
184 
185            </#if> 
186        </#list> 
187        <#if faqCounter gt showFAQCount> 
188            <a href="#" onclick="$('#faqs .hidden').removeClass('hidden'); $(this).hide();return false;"><@liferay.language key="show-more"/></a> 
189        </#if> 
190<@sectionFooter/> 
191 
192 
193<#-- Popup --> 
194<div id="theme-popupDocumentReview" class="popup"> 
195<#list products as product> 
196<#if product.getField(profile, reviewsPath)?has_content> 
197<#assign reviews = product.getField(profile, reviewsPath) > 
198    <#list reviews.iterator() as review> 
199        <#assign id = review.id> 
200        
201            <#if review?index == 0 && product?index == 0> 
202                <div class="close-button-container"> 
203                    <button class="close" onClick="closeDocumentReviewPopup('${id}')" id="closeButtonDocumentReview-${id}"></button> 
204                </div> 
205 
206                <div class="panel popup-content" id="popupContentDocumentReview"> 
207                    <div class="panel-body"> 
208            </#if> 
209 
210                        <div class="documentReviewContent" id="documentReviewContent-${id}"> 
211                            <div class="h1" class="section-heading text-bolder">${review.properties.heading}</div> 
212                            <#if !review.properties.isNull("summary")> 
213                                <#assign summary = cmsContentFormatterService.getMarkdown(review.properties.summary)> 
214                                ${summary}  
215                            </#if> 
216                         
217                            <#if !review.properties.isNull("content")>  
218                                <#assign content = cmsContentFormatterService.getMarkdown(localizeField(review.properties.content, profile.getCMSLangCode()))> 
219                                ${content}  
220                            </#if> 
221                        </div> 
222 
223            <#if review?index == (review?size - 1)> 
224                    </div> 
225                </div> 
226            </#if> 
227             
228    </#list> 
229    </#if> 
230    </#list> 
231</div> 
232 
233 
234<style> 
235    .hidden { 
236        display: none; 
237
238    .faq_element i { 
239        float: left; 
240        line-height: 1.5em; 
241        color: #007a53; 
242
243 
244    .documentReviewContent { 
245    display:none; 
246
247 
248.documentReview-close-button { 
249    display: none; 
250
251 
252</style> 
253 
254<script> 
255function faqShowAnswer(id){ 
256 
257    var wasHidden = $("#faq-element-answer-"+id).is(":hidden"); 
258 
259    // Close all  
260    $("#faqs .faq_element_answer").hide(); 
261    $("#faqs .icon-plus-sign").show(); 
262    $("#faqs .icon-minus-sign").hide(); 
263 
264    if (wasHidden) { 
265        var answer = $("#faq-element-answer-"+id); 
266        $("#faq-plus-"+id).hide(); 
267        $("#faq-minus-"+id).show(); 
268        answer.show(); 
269        console.log(answer.parent().find(".faq_element_question")); 
270        if(!inViewport(answer.parent().find(".faq_element_question").first())) { 
271             
272            var scrollFix = 10; // some margin 
273            var questionPos = answer.parent().find(".faq_element_question").first().offset().top; 
274             
275            // ControlBar 
276            if ($("#ControlMenu").is(":visible")) { 
277                scrollFix += $("#ControlMenu").height(); 
278
279 
280            // subnavi  
281            if ($("#submenu-links").is(":visible")) { 
282                scrollFix += $("#submenu-links").height(); 
283            }  
284             
285            var scrollTo = questionPos - scrollFix; 
286             
287            $('html, body').animate({ 
288                scrollTop: (scrollTo-1) 
289            },500, function(){ 
290                setTimeout(function() { 
291                    $('html, body').scrollTop(scrollTo); 
292                }, 200); 
293            }); 
294
295 
296
297}; 
298 
299function openDocumentReviewPopup(reviewId) { 
300    openPopup("DocumentReview"); 
301    $('#documentReviewContent-'+reviewId).show(); 
302 
303    //update: 
304    $('.close').attr('id','closeButtonDocumentReview-'+reviewId); 
305    $('.close').attr('onclick', 'closeDocumentReviewPopup("' + reviewId + '")'); 
306    $('#closeButtonDocumentReview-'+reviewId).show(); 
307
308 
309function closeDocumentReviewPopup(reviewId) { 
310    closePopup("DocumentReview"); 
311    $('#documentReviewContent-'+reviewId).hide(); 
312 
313    //update: 
314    $('#closeButtonDocumentReview-'+reviewId).hide(); 
315
316 
317// close popup when clicking outside of the element 
318function closeSolutionDownloadsPopup(e) { 
319    if(!$('#popupContent'+"DocumentReview").is(e.target) &&  
320        $('#popupContent'+"DocumentReview").has(e.target).length == 0 &&  
321        $(e.target).attr('class') != 'close' && 
322        $('#theme-popup'+"DocumentReview").css("display") == "block"){ 
323        closePopup("DocumentReview"); 
324        $('div[id^=documentReviewContent-]').hide(); 
325
326}; 
327 
328$(document).on({ 
329    "mouseup": function (e) { closeSolutionDownloadsPopup(e); }, 
330    "touchstart": function (e) { closeSolutionDownloadsPopup(e); } 
331}); 
332 
333function inViewport(el) { 
334    var elementTop = el.offset().top; 
335    var elementBottom = elementTop + el.outerHeight(); 
336 
337    var viewportTop = $(window).scrollTop(); 
338    var viewportBottom = viewportTop + $(window).height(); 
339 
340    return elementBottom > viewportTop && elementTop < viewportBottom; 
341
342</script> 
343</#if> 
344 
345</#if>