img_cabecera_sanPedroRegalado

San Pedro Regalado 

Breadcrumb

Breadcrumbs

Valladolid is culture / San Pedro Regalado

Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> diaEventoIni  [in template "20116#20160#351159" at line 688, column 74]

----
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: ${diaEventoIni}  [in template "20116#20160#351159" at line 688, column 72]
----
1<#-- ESTILOS EN EL TEMA 
2 
3<style type="text/css"> 
4 
5	.pln_calendario{ 
6		position: relative; 
7
8 
9------------------------------------- Cabecera evento ------------------------------------- 
10	 
11	.pln_calendario .cabecera{ 
12		overflow: hidden; 
13		margin-bottom: 10px; 
14
15 
16	--------------- Estilo fechas --------------- 
17	.pln_calendario .cabecera .fechas{ 
18		position: relative; 
19		width: 85px; 
20		padding-bottom: 185px; 
21		float: left; 
22		color: white; 
23
24	 
25	.pln_calendario .cabecera .fechas .fechaIniBackground{ 
26		position: absolute; 
27		top: 0; left: 0; 
28		width: 100%; height: 56%; 
29		border-left: 85px solid black; 
30		border-bottom: 31px solid transparent; 
31		z-index:-1; 
32
33	 
34	.pln_calendario .cabecera .fechas .fechaFinBackground{ 
35		position: absolute; 
36		bottom: 0; left: 0; 
37		width: 100%; height: 56%; 
38		border-right: 85px solid black; 
39		border-top: 31px solid transparent; 
40		z-index:-1; 
41
42 
43	.pln_calendario .cabecera .fechas .fechaIni{ 
44		position: absolute; 
45		top: 0; left: 0; 
46		width: 100%; height: 100%; 
47
48	 
49	.pln_calendario .cabecera .fechas .fechaFin{ 
50		position: absolute; 
51		top: 0; left: 0; 
52		width: 100%; height: 100%; 
53
54	 
55	.pln_calendario .cabecera .fechas .dia{ 
56		font-size: 56px !important; 
57		font-weight: 700; 
58		display: block; 
59		text-align: center; 
60
61	 
62	.pln_calendario .cabecera .fechas .mes{ 
63		position: absolute;	 
64		display: block; 
65		font-size: 22px !important; 
66		text-transform: uppercase; 
67	}	 
68					 
69	.pln_calendario .cabecera .fechas .fechaIni span{ 
70		position: relative; 
71		top: -5%; 
72
73	.pln_calendario .cabecera .fechas .fechaIni p{ 
74		top: 28%; left: 25%; 
75
76	 
77	.pln_calendario .cabecera .fechas .fechaFin span{ 
78		position: relative; 
79		top: 47%; 
80
81	.pln_calendario .cabecera .fechas .fechaFin p{ 
82		top: 81%; left: 25%; 
83
84		 
85	.pln_calendario .cabecera #soloFecha{ 
86		padding-bottom: 112px; 
87
88	.pln_calendario .cabecera #soloFechaIniBackground{ 
89		height: 100%; 
90		border-left: none; 
91		border-bottom: none; 
92		background-color: black; 
93
94	.pln_calendario .cabecera #soloMes{ 
95		top: 53%; 
96
97	--------------- Fin fechas --------------- 
98	 
99	 
100	.pln_calendario .cabecera .tituloContainer{ 
101		position: relative; 
102		margin-bottom: 2%; 
103
104	 
105	.pln_calendario .cabecera .tituloContainer .tituloText{ 
106		line-height: 120%; 
107		font-size: 3.5vw !important; 
108		font-weight: 800; 
109		color: black; 
110		margin-left: 100px; 
111		text-align: left; 
112
113 
114------------------------------------- Segundo contenedor ------------------------------------- 
115	 
116	.pln_calendario .segundoCont{ 
117		position: relative; 
118		min-height: 290px; 
119
120	 
121	.pln_calendario .segundoCont .imagenTexto{ 
122		 
123		margin-bottom: 25px; 
124
125	 
126	.pln_calendario .segundoCont .imagenTexto .imgContainer{ 
127		position: relative; 
128		display: inline-block; 
129		width: 55%; 
130		float: left; 
131		text-align: center; 
132		margin-left: 60px; 
133		margin-right:1%; 
134		margin-bottom:1%; 
135
136 
137	.pln_calendario .segundoCont .imagenTexto .imgContainer .imgEvento{ 
138		position: relative; 
139		max-height: 40vw; 
140
141	 
142	.pln_calendario .segundoCont .imagenTexto .descripCorta{ 
143		position: relative; 
144		 
145
146	 
147	.pln_calendario .segundoCont .imagenTexto span.descripCorta { 
148		font-size: 14pt !important; 
149		 
150
151 
152	 
153	--------------- Estilo apartado redes sociales --------------- 
154	.pln_calendario .segundoCont #redes_noticia{ 
155		position: absolute; 
156		top: 0; 
157		z-index: 1; 
158
159	 
160	.pln_calendario .segundoCont #redes_noticia ul{ 
161		list-style-type: none; 
162		padding: 0 !important; 
163		overflow: auto; 
164
165	 
166	.pln_calendario .segundoCont #redes_noticia ul li{ 
167		display: block; 
168		width: 50px; height: 50px; 
169		margin: 5px 5px 5px 0; 
170		padding: 0 !important; 
171		padding-top: 6px !important; 
172		background-color: black; 
173		text-align: center; 
174
175	 
176	.pln_calendario .segundoCont #redes_noticia ul li a{ 
177		text-decoration: none; 
178
179	 
180	.pln_calendario .segundoCont #redes_noticia ul li span{ 
181		font-size: 40px; 
182		color: white; 
183
184	 
185	.pln_calendario .segundoCont #redes_noticia ul li .icon-google_plus{ 
186		font-size: 35px !important; 
187
188		 
189	 
190------------------------------------ Cuerpo evento ------------------------------------- 
191	 
192	.pln_calendario .cuerpoEvento{ 
193		position: relative; 
194		clear: right; 
195
196	 
197	.pln_calendario .cuerpoEvento .direccion span{ 
198		font-size: 1.5vw !important; 
199
200	 
201	.pln_calendario .cuerpoEvento .direccion p{ 
202		display: inline; 
203		font-size: 1.5vw !important; 
204
205	 
206	.pln_calendario .cuerpoEvento .mapContDesple{ 
207		position: relative; 
208		padding-bottom: 17%; 
209		width: auto; 
210		margin-bottom: 3%; margin-top: 1%; 
211
212	 
213	.pln_calendario .cuerpoEvento .mapContDesple .map{ 
214		position: absolute; 
215		display: block; 
216		margin: auto; 
217		border: 0; 
218		width: 100%; 
219		height: 100%; 
220
221	 
222	.pln_calendario .cuerpoEvento .enlace{ 
223		margin-bottom: 3%; 
224
225	 
226	.pln_calendario .cuerpoEvento .enlace a{ 
227		color: #FFFFFF; 
228		text-decoration: none; 
229
230	 
231	.pln_calendario .cuerpoEvento .enlace p{ 
232		display: inline; 
233		border: 2px solid black; 
234		padding: 1%; 
235		font-size: 1.5vw !important; 
236		font-weight: 600; 
237		color: black; 
238
239		 
240	.pln_calendario .cuerpoEvento .enlaceVenta{ 
241		margin-bottom: 3%; 
242
243	 
244	.pln_calendario .cuerpoEvento .enlaceVenta a{ 
245		color: #FFFFFF; 
246		text-decoration: none; 
247
248	 
249	.pln_calendario .cuerpoEvento .enlaceVenta p{ 
250		display: inline; 
251		border: 2px solid black; 
252		padding: 1%; 
253		font-size: 1.5vw !important; 
254		font-weight: 600; 
255		color: black; 
256
257		 
258	.linkCalendar{ 
259		position: relative; 
260		padding: 1%; 
261		 
262		background: rgb(185,65,85); /* For browsers that do not support gradients */ 
263		background: -webkit-linear-gradient(90deg, rgb(169,66,118), rgb(198,64,57)); /* For Safari 5.1 to 6.0 */ 
264		background: -o-linear-gradient(90deg, rgb(169,66,118), rgb(198,64,57)); /* For Opera 11.1 to 12.0 */ 
265		background: -moz-linear-gradient(90deg, rgb(169,66,118), rgb(198,64,57)); /* For Firefox 3.6 to 15 */ 
266		background: linear-gradient(90deg, rgb(169,66,118), rgb(198,64,57)); /* Standard syntax */ 
267
268	 
269	.linkCalendar a{ 
270		text-decoration: none; 
271		color: white; 
272
273	 
274	.linkCalendar span{ 
275		font-size: 2.5vw !important; 
276
277	 
278	.linkCalendar p{ 
279		display: inline; 
280		margin-left: 1%; 
281		font-size: 2vw !important; 
282		font-weight: 700; 
283
284	 
285	 
286	------------------------------------- Comportamiento hover ------------------------------------- 
287 
288	.pln_calendario .cuerpoEvento .enlace p:hover{ 
289		background-color: black; 
290		color: white; 
291
292	 
293	.pln_calendario .cuerpoEvento .enlaceVenta p:hover{ 
294		background-color: black; 
295		color: white; 
296
297	 
298	 
299	 
300------------------------------------- Comportamiento responsivo ------------------------------------- 
301	 
302	@media only screen and (max-width: 1200px) { 
303		.pln_calendario .cuerpoEvento .direccion p, .pln_calendario .cuerpoEvento .direccion span, .pln_calendario .cuerpoEvento .enlaceVenta p{ 
304			font-size: 18px !important; 
305
306		 
307		.linkCalendar p, .linkCalendar span { 
308			font-size: 24px !important; 
309
310
311	 
312	@media only screen and (max-width: 991px) { 
313		.pln_calendario .segundoCont .imagenTexto .descripCorta p{ 
314			font-size: 20px !important; 
315
316
317	 
318	 
319	@media only screen and (max-width: 767px) { 
320		.pln_calendario .cabecera{ 
321			margin-bottom: 0; 
322			min-height: 0; 
323
324		.pln_calendario .cabecera .fechas{ 
325			width: 55px; 
326			padding-bottom: 130px; 
327			margin-bottom:8px; 
328
329		.pln_calendario .cabecera .fechas .dia{ 
330			font-size: 25pt !important; 
331
332		.pln_calendario .cabecera .fechas .mes{ 
333			font-size: 13pt !important; 
334
335		.pln_calendario .cabecera .fechas .fechaIniBackground{ 
336			border-left: 55px solid black; 
337			border-bottom: 22px solid transparent;		 
338
339		.pln_calendario .cabecera .fechas .fechaFinBackground{ 
340			border-right: 55px solid black; 
341			border-top: 22px solid transparent; 
342		}				 
343		.pln_calendario .cabecera .fechas .fechaIni p { 
344			top: 25%; left: 18%; 
345
346		.pln_calendario .cabecera .fechas .fechaFin p{ 
347			top: 78%; left: 22%; 
348
349			 
350		.pln_calendario .cabecera #soloFecha{ 
351			padding-bottom: 72px; 
352
353					 
354		.pln_calendario .cabecera .tituloContainer .tituloText{ 
355			font-size: 25pt !important; 
356			margin-left: 68px; 
357		}		 
358		 
359		.pln_calendario .segundoCont .imagenTexto{ 
360			display: block; 
361			margin-bottom: 0; 
362		}		 
363		.pln_calendario .segundoCont .imagenTexto .imgContainer{ 
364			display: block; 
365			float: none; 
366			width: 100%; 
367			margin-left: 0; 
368			padding-left: 0; 
369			min-height: 0; 
370			margin-right:3%; 
371
372		.pln_calendario .segundoCont .imagenTexto .imgContainer .imgEvento{ 
373			max-height: 80vw; 
374
375		.pln_calendario span.descripCorta { 
376			position: relative; 
377			font-weight: 700; 
378			font-size: 14pt !important; 
379			margin-top: 20px; 
380
381				 
382		.pln_calendario .cuerpoEvento .direccion span{ 
383			font-size: 18pt !important; 
384
385		.pln_calendario .cuerpoEvento .direccion p{ 
386			font-size: 14pt !important; 
387
388	 
389		.pln_calendario .cuerpoEvento .mapContDesple { 
390			padding-bottom: 40%; 
391
392		 
393		.pln_calendario .cuerpoEvento .enlace p { 
394			font-size: 10pt !important; 
395		}		 
396		.pln_calendario .cuerpoEvento .enlaceVenta p { 
397			font-size: 10pt !important; 
398
399		 
400		.linkCalendar a{ 
401			text-decoration: none; 
402
403		 
404		.linkCalendar span { 
405			font-size: 16pt !important; 
406
407		.linkCalendar p { 
408			font-size: 14pt !important; 
409
410		 
411
412	 
413	 
414	@media only screen and (max-width: 476px) {	 
415		.pln_calendario .cabecera .tituloContainer .tituloText { 
416			word-wrap: break-word; 
417
418		.pln_calendario .segundoCont .imagenTexto .imgContainer .imgEvento{ 
419			max-width: 100%; 
420			max-height: inherit; 
421
422
423 
424	 
425	@media only screen and (max-width: 767px) {				 
426		.pln_calendario .segundoCont #redes_noticia{ 
427			position: relative; 
428			top: 0; 
429		}	 
430		.pln_calendario .segundoCont #redes_noticia ul{ 
431			margin-top: 20px; 
432
433		.pln_calendario .segundoCont #redes_noticia ul li{ 
434			float: left; 
435			width: 40px; height: 40px; 
436
437		.pln_calendario .segundoCont #redes_noticia ul li span { 
438			font-size: 30px; 
439
440		.pln_calendario .segundoCont #redes_noticia ul li .icon-google_plus{ 
441			font-size: 28px !important; 
442
443
444	 
445	 
446	.pln_calendario .segundoCont #redes_noticia .enlaceVenta{ 
447		background: rgb(185,65,85) !important; /* For browsers that do not support gradients */ 
448		background: -webkit-linear-gradient(90deg, rgb(169,66,118), rgb(198,64,57)) !important; /* For Safari 5.1 to 6.0 */ 
449		background: -o-linear-gradient(90deg, rgb(169,66,118), #rgb(198,64,57)) !important; /* For Opera 11.1 to 12.0 */ 
450		background: -moz-linear-gradient(90deg, rgb(169,66,118), rgb(198,64,57)) !important; /* For Firefox 3.6 to 15 */ 
451		background: linear-gradient(90deg, rgb(169,66,118), rgb(198,64,57)) !important; /* Standard syntax */ 
452
453	 
454	.pln_calendario .segundoCont #redes_noticia .enlaceVenta span{ 
455		color: white; 
456
457	 
458	 
459	@media only print { 
460	 
461		*{ 
462		overflow:hidden; 
463
464	 
465		.segundoCont .imagenTexto{ 
466		display:block; 
467
468		.displayEventContainer .cabecera{ 
469			margin-bottom: 0; 
470			min-height: 0; 
471
472		.cabecera .fechas{ 
473			width: 55px; 
474			padding-bottom: 130px; 
475			margin-bottom:8px; 
476			color:white !important; 
477			 
478
479		 
480		.cabecera .fechas .dia{ 
481			font-size: 25pt !important; 
482			color:white !important; 
483
484		.cabecera .fechas .mes{ 
485			font-size: 13pt !important; 
486			color:white !important; 
487
488		.cabecera .fechas .fechaIniBackground{ 
489			border-left: 55px solid black; 
490			border-bottom: 22px solid transparent;		 
491
492		.cabecera .fechas .fechaFinBackground{ 
493			border-right: 55px solid black; 
494			border-top: 22px solid transparent; 
495		}				 
496		.cabecera .fechas .fechaIni p { 
497			top: 25%; left: 18%; 
498
499		.cabecera .fechas .fechaFin p{ 
500			top: 78%; left: 22%; 
501
502			 
503		.cabecera #soloFecha{ 
504			padding-bottom: 72px; 
505
506					 
507		.cabecera .tituloContainer .tituloText{ 
508			font-size: 25pt !important; 
509			margin-left: 68px; 
510		}		 
511		 
512		.segundoCont .imagenTexto{ 
513			display: block; 
514			margin-bottom: 0; 
515		}		 
516		.segundoCont .imagenTexto .imgContainer{ 
517			display: block; 
518			float: none; 
519			width: 100%; 
520			margin-left: 0; 
521			padding-left: 0; 
522			min-height: 0; 
523
524		.segundoCont .imagenTexto .imgContainer .imgEvento{ 
525			max-height: 80vw; 
526
527		.segundoCont .imagenTexto .descripCorta { 
528			position: relative; 
529			width: 100%; 
530			margin-top: 20px; 
531
532				 
533		.cuerpoEvento .direccion span{ 
534			font-size: 18pt !important; 
535
536		.cuerpoEvento .direccion p{ 
537			font-size: 14pt !important; 
538
539	 
540		.cuerpoEvento .mapContDesple { 
541			padding-bottom: 40%; 
542
543		 
544		.cuerpoEvento { 
545			font-size: 10pt !important; 
546		}		 
547		.cuerpoEvento { 
548			font-size: 10pt !important; 
549
550		 
551		.linkCalendar{ 
552		display:none; 
553
554		 
555		#redes_noticia{ 
556		display:none; 
557
558		.enlace .enlaceVenta{ 
559		display:none; 
560
561
562	 
563</style> 
564 
565<style> 
566 
567	.pln_calendario .cuerpoEvento .docDescarga { 
568		margin-bottom: 3%; 
569
570	.pln_calendario .cuerpoEvento .docDescarga a { 
571		color: #fff; 
572		text-decoration: none; 
573
574	.pln_calendario .cuerpoEvento .docDescarga span { 
575		display: inline-block; 
576		border: 2px solid black; 
577		padding: 1%; 
578		font-size: 1.5vw !important; 
579		font-weight: 600; 
580		color: black; 
581
582	.pln_calendario .cuerpoEvento .docDescarga span:hover { 
583		background-color: black; 
584		color: white; 
585
586	 
587	 
588</style> 
589 
590--> 
591 
592<style type="text/css"> 
593 
594	.pln_calendario.adt_calendario_detalle_nomap .cabecera .fechas { 
595		margin-bottom: 240px; 
596		margin-right: 10px; 
597
598		 
599	.pln_calendario.adt_calendario_detalle_nomap .segundoCont #redes_noticia { 
600		top:185px 
601	}	 
602 
603	.pln_calendario.adt_calendario_detalle_nomap .segundoCont .imagenTexto { 
604		text-align: justify; 
605	}	 
606	 
607	 
608	@media only screen and (max-width: 767px) { 
609		.pln_calendario.adt_calendario_detalle_nomap .segundoCont #redes_noticia { 
610		    position: absolute; 
611		    width: 55px;	 
612
613	}				 
614	 
615</style> 
616 
617	<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
618	 
619	<#assign url=portalUtil.getCurrentCompleteURL(request)> 
620	 
621	<#assign irACalendarioDeEventos = journalArticleLocalService.getLatestArticle(90353).getDescription(locale)/> 
622 
623 
624 
625	<#if entries?has_content> 
626		<#list entries as curEntry> 
627			<#-- If we have a list use only the last one --> 
628			<#assign entry = curEntry> 
629		</#list> 
630	</#if> 
631 
632	<#assign classPK = entry.getClassPK()> 
633	<#assign articulo = journalArticleLocalService.getLatestArticle(classPK)> 
634	<#assign document = saxReaderUtil.read(articulo.getContentByLocale('${themeDisplay.getLocale()}'))> 
635	<#assign rootElement = document.getRootElement()> 
636	 
637	 
638	<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='FechaInicio']")> 
639	<#assign FechaInicio_Data = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim> 
640	 
641	<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='FechaFin']")> 
642	<#assign FechaFin_Data = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim> 
643	 
644	<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titulo']")> 
645	<#assign Titulo_Data = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim> 
646 
647	<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Descripcion']")> 
648	<#assign Descripcion_Data = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim> 
649 
650	<#if validator.isNotNull(FechaInicio_Data)> 
651		<#assign FechaInicio_DateObj = dateUtil.parseDate("yyyy-MM-dd", FechaInicio_Data, locale)> 
652		 
653		<#assign diaEventoIni = FechaInicio_DateObj?string["dd"]?number> 
654		<#assign mesEventoNombreIni = dateUtil.getDate(FechaInicio_DateObj, "MMM", locale)> 
655	</#if> 
656 
657	<#if validator.isNotNull(FechaFin_Data) > 
658		<#assign FechaFin_DateObj = dateUtil.parseDate("yyyy-MM-dd", FechaFin_Data, locale)> 
659 
660		<#assign diaEventoFin = FechaFin_DateObj?string["dd"]?number> 
661		<#assign mesEventoNombreFin = dateUtil.getDate(FechaFin_DateObj, "MMM", locale)> 
662	</#if> 
663	 
664	 
665	 
666	<div class="pln_calendario adt_calendario_detalle_nomap"> 
667		<div class="cabecera"> 
668			 
669			<#if FechaFin_Data != FechaInicio_Data> 
670			<div class="fechas"> 
671				<div class="fechaIniBackground"></div> 
672				<div class="fechaIni"> 
673					<span class="dia">${diaEventoIni}</span> 
674					<p class="mes">${mesEventoNombreIni}</p> 
675				</div> 
676				 
677				<div class="fechaFinBackground"></div> 
678				<div class="fechaFin"> 
679					<span class="dia">${diaEventoFin}</span> 
680					<p class="mes">${mesEventoNombreFin}</p> 
681				</div>		 
682			</div> 
683			 
684			<#else> 
685			<div class="fechas" id="soloFecha"> 
686				<div class="fechaIniBackground" id="soloFechaIniBackground"></div> 
687				<div class="fechaIni" id="soloFechaIni"> 
688					<span class="dia" id="soloDia">${diaEventoIni}</span> 
689					<p class="mes" id="soloMes">${mesEventoNombreIni}</p> 
690				</div> 
691			</div>	 
692			</#if>		 
693 
694			<div class="segundoCont"> 
695				 
696				<div class="imagenTexto"> 
697					<#if validator.isNotNull(Descripcion_Data) > 
698					<span class="descripCorta"> 
699						${Descripcion_Data} 
700					</span> 
701					</#if> 
702				</div> 
703						 
704				<div id="redes_noticia"> 
705					<ul>     
706						<li><a class="i_facebook" data-href='${url}' href="https://www.facebook.com/sharer/sharer.php?u=${url}&amp;src=sdkpreparse" title="Compartir en Facebook" target="_blank"> <span class="icon-facebook"></span> </a></li> 
707						<li><a class="i_linkedin" href="http://www.linkedin.com/shareArticle?url=${url}" title="Compartir en Linkedin" target="_blank"> <span class="icon-linkedin"></span> </a></li> 
708						<li><a class="i_twitter" href="https://twitter.com/share" title="Compartir en Twitter" target="_blank"> <span class="icon-twitter"></span> </a></li> 
709					</ul> 
710				</div>   		 
711			 
712			</div> 
713			 
714		</div> 
715		 
716		 
717	</div> 
718	 
719	<div class="linkCalendar"> 
720		<a href="/calendario-de-eventos"> 
721			<span class="icon-calendar"></span> 
722			<p>${irACalendarioDeEventos}</p> 
723		</a> 
724	</div> 

InfoAgenda Portlet

0results
1 of 0

  • Child

Asset Publisher

Portada del documento Bases del concurso de pintura rápida San Pedro Regalado
Bases del concurso de pintura rápida San Pedro Regalado
Descargar el documento Bases del concurso de pintura rápida San Pedro Regalado

Navigation Menu

http://www.info.valladolid.es/en/san-pedro-regalado

san pedro regalado

Navigation Menu

http://www.info.valladolid.es/en/san-pedro-regalado

san pedro regalado

Asset Publisher

LOCATION

Asset Publisher