Download the GoTyme Bank app


Switch to a beautiful banking experience today.

 

Personal
Business
  • Help
    • FAQs
    • Help & Support
  • Search
Logo
  • Bank Account
    • Current Account
  • Save & Invest
    • GoalSave
    • Fixed Deposit
  • Move Money
    • Instant Payments
    • Send Money Vouchers
    • Tills
    • ATM
    • DebiCheck
    • USSD
  • Service
    • Contact Us
    • Kiosk Locator
  • Shop
    • VAS
    • Mobile Wallets
      • Virtual Card
      • Apple Pay
    • MoreTyme
  • Credit
    • Personal Loans
    • GrantAdvance
  • Media
    • Money Skills
    • Newsroom
  • Help
    • FAQs
    • Help & Support
  • Search
    Download the App
Download the App

Money Skills

Gotyme Logo

Connect with us

Johannesburg (Head Office)

0860 999 119

Ground Floor, 30 Jellicoe Avenue, Rosebank 2196

Cape Town

0861 171 717

4th Floor, The Palms, 145 Sir Lowry Road, Woodstock, Cape Town, 7915

Credit

Credit

Personal Loans
Grant Advance

Company

Company

About Us
Money Skills
Newsroom
Awards

Resources

Resources

Security Centre

Transparency

Transparency

NCR Language Policy
Disclosures
PAIA Manual
Code of Ethics
Conflict of Interest
Code of Banking Practice

Legal

Legal

Privacy Policy
Cookie Policy
Competition Terms and Conditions
Terms & Conditions

Connect with GoTyme Bank

Download the GoTyme Bank App

Show error
$FreeMarker template error:
Template inclusion failed (for parameter value "/templates/web/components/icons/dl-apple-store-black.ftl"):
Template not found for name "templates/web/components/icons/dl-apple-store-black.ftl".
The name was interpreted by this TemplateLoader: MultiTemplateLoader(loader1 = org.craftercms.engine.freemarker.CrafterFreeMarkerTemplateLoader@3af62f3c, loader2 = FileTemplateLoader(baseDir="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF", canonicalBasePath="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF/"), loader3 = ClassTemplateLoader(resourceLoaderClass=org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer, basePackagePath="" /* relatively to resourceLoaderClass pkg */)).
(Before that, the name was possibly changed by this lookup strategy: org.craftercms.engine.view.freemarker.SiteAwareTemplateLookupStrategy@12c8b2cc.)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #include "/templates/web/components/i...  [in template "templates/web/components/download-link.ftl" at line 4, column 5]
	~ Reached through: #nested  [in template "templates/system/common/ice.ftl" in macro "a" at line 97, column 153]
	~ Reached through: #nested  [in template "templates/system/common/ice.ftl" in macro "tag" at line 47, column 18]
	~ Reached through: @tag $tag="a" $model=$model $field=$f...  [in template "templates/system/common/ice.ftl" in macro "a" at line 97, column 3]
	- Reached through: @crafter.a href="${contentModel.downl...  [in template "templates/web/components/download-link.ftl" at line 3, column 1]
----

Java stack trace (for programmers):
----
freemarker.core._MiscTemplateException: [... Exception message was already printed; see it above ...]
	at freemarker.core.Include.accept(Include.java:164)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:365)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:298)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:252)
	at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:181)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)
	at org.craftercms.engine.view.UserAgentAwareCrafterPageView.renderActualView(UserAgentAwareCrafterPageView.java:56)
	at org.craftercms.engine.view.CrafterPageView.renderMergedOutputModel(CrafterPageView.java:160)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1432)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1168)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1106)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.HttpHeadersRewriteFilter.doFilterInternal(HttpHeadersRewriteFilter.java:87)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:107)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.commons.web.AddResponseHeaderFilter.doFilterInternal(AddResponseHeaderFilter.java:62)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.scripting.impl.ScriptFilterChainImpl.doFilter(ScriptFilterChainImpl.java:89)
	at jakarta.servlet.FilterChain$doFilter.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:176)
	at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:24)
	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:159)
	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:174)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:178)
	at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
	at SecurityHeadersFilter.run(SecurityHeadersFilter.groovy:32)
	at org.craftercms.engine.scripting.impl.GroovyScript.execute(GroovyScript.java:68)
	at org.craftercms.engine.scripting.impl.ScriptFilterChainImpl.doFilter(ScriptFilterChainImpl.java:79)
	at org.craftercms.engine.scripting.impl.ScriptFilter.doFilter(ScriptFilter.java:106)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
	at org.craftercms.engine.util.spring.security.ForbiddenUrlsFilter.doFilter(ForbiddenUrlsFilter.java:57)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:117)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:145)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
	at org.craftercms.engine.url.rewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:65)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.util.spring.security.NoopFilter.doFilter(NoopFilter.java:28)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:53)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.SiteContextResolvingFilter.doFilter(SiteContextResolvingFilter.java:77)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.commons.http.RequestContextBindingFilter.doFilter(RequestContextBindingFilter.java:78)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:70)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.security.web.header.HeaderWriterFilter.doHeadersBefore(HeaderWriterFilter.java:82)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:72)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:173)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:535)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:86)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:782)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:71)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:348)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:71)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1307)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:2032)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:74)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:976)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:494)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:80)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: freemarker.template.TemplateNotFoundException: Template not found for name "templates/web/components/icons/dl-apple-store-black.ftl".
The name was interpreted by this TemplateLoader: MultiTemplateLoader(loader1 = org.craftercms.engine.freemarker.CrafterFreeMarkerTemplateLoader@3af62f3c, loader2 = FileTemplateLoader(baseDir="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF", canonicalBasePath="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF/"), loader3 = ClassTemplateLoader(resourceLoaderClass=org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer, basePackagePath="" /* relatively to resourceLoaderClass pkg */)).
(Before that, the name was possibly changed by this lookup strategy: org.craftercms.engine.view.freemarker.SiteAwareTemplateLookupStrategy@12c8b2cc.)
	at freemarker.template.Configuration.getTemplate(Configuration.java:3026)
	at org.craftercms.engine.util.freemarker.CrafterCacheAwareConfiguration.lambda$getTemplate$0(CrafterCacheAwareConfiguration.java:52)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.loadAndPutInCache(DefaultCacheTemplate.java:104)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.getObject(DefaultCacheTemplate.java:78)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.getObject(DefaultCacheTemplate.java:68)
	at org.craftercms.engine.service.context.SiteContext.getFromCache(SiteContext.java:590)
	at org.craftercms.engine.service.context.SiteContext.getFromCurrentCache(SiteContext.java:141)
	at org.craftercms.engine.util.freemarker.CrafterCacheAwareConfiguration.getTemplate(CrafterCacheAwareConfiguration.java:50)
	at freemarker.core.Environment.getTemplateForInclusion(Environment.java:3097)
	at freemarker.core.Include.accept(Include.java:162)
	... 501 more
Show error
$FreeMarker template error:
Template inclusion failed (for parameter value "/templates/web/components/icons/dl-google-play-black.ftl"):
Template not found for name "templates/web/components/icons/dl-google-play-black.ftl".
The name was interpreted by this TemplateLoader: MultiTemplateLoader(loader1 = org.craftercms.engine.freemarker.CrafterFreeMarkerTemplateLoader@3af62f3c, loader2 = FileTemplateLoader(baseDir="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF", canonicalBasePath="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF/"), loader3 = ClassTemplateLoader(resourceLoaderClass=org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer, basePackagePath="" /* relatively to resourceLoaderClass pkg */)).
(Before that, the name was possibly changed by this lookup strategy: org.craftercms.engine.view.freemarker.SiteAwareTemplateLookupStrategy@12c8b2cc.)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #include "/templates/web/components/i...  [in template "templates/web/components/download-link.ftl" at line 4, column 5]
	~ Reached through: #nested  [in template "templates/system/common/ice.ftl" in macro "a" at line 97, column 153]
	~ Reached through: #nested  [in template "templates/system/common/ice.ftl" in macro "tag" at line 47, column 18]
	~ Reached through: @tag $tag="a" $model=$model $field=$f...  [in template "templates/system/common/ice.ftl" in macro "a" at line 97, column 3]
	- Reached through: @crafter.a href="${contentModel.downl...  [in template "templates/web/components/download-link.ftl" at line 3, column 1]
----

Java stack trace (for programmers):
----
freemarker.core._MiscTemplateException: [... Exception message was already printed; see it above ...]
	at freemarker.core.Include.accept(Include.java:164)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:365)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:298)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:252)
	at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:181)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)
	at org.craftercms.engine.view.UserAgentAwareCrafterPageView.renderActualView(UserAgentAwareCrafterPageView.java:56)
	at org.craftercms.engine.view.CrafterPageView.renderMergedOutputModel(CrafterPageView.java:160)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1432)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1168)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1106)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.HttpHeadersRewriteFilter.doFilterInternal(HttpHeadersRewriteFilter.java:87)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:107)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.commons.web.AddResponseHeaderFilter.doFilterInternal(AddResponseHeaderFilter.java:62)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.scripting.impl.ScriptFilterChainImpl.doFilter(ScriptFilterChainImpl.java:89)
	at jakarta.servlet.FilterChain$doFilter.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:176)
	at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:24)
	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:159)
	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:174)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:178)
	at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
	at SecurityHeadersFilter.run(SecurityHeadersFilter.groovy:32)
	at org.craftercms.engine.scripting.impl.GroovyScript.execute(GroovyScript.java:68)
	at org.craftercms.engine.scripting.impl.ScriptFilterChainImpl.doFilter(ScriptFilterChainImpl.java:79)
	at org.craftercms.engine.scripting.impl.ScriptFilter.doFilter(ScriptFilter.java:106)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
	at org.craftercms.engine.util.spring.security.ForbiddenUrlsFilter.doFilter(ForbiddenUrlsFilter.java:57)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:117)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:145)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
	at org.craftercms.engine.url.rewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:65)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.util.spring.security.NoopFilter.doFilter(NoopFilter.java:28)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:53)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.SiteContextResolvingFilter.doFilter(SiteContextResolvingFilter.java:77)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.commons.http.RequestContextBindingFilter.doFilter(RequestContextBindingFilter.java:78)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:70)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.security.web.header.HeaderWriterFilter.doHeadersBefore(HeaderWriterFilter.java:82)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:72)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:173)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:535)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:86)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:782)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:71)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:348)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:71)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1307)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:2032)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:74)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:976)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:494)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:80)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: freemarker.template.TemplateNotFoundException: Template not found for name "templates/web/components/icons/dl-google-play-black.ftl".
The name was interpreted by this TemplateLoader: MultiTemplateLoader(loader1 = org.craftercms.engine.freemarker.CrafterFreeMarkerTemplateLoader@3af62f3c, loader2 = FileTemplateLoader(baseDir="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF", canonicalBasePath="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF/"), loader3 = ClassTemplateLoader(resourceLoaderClass=org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer, basePackagePath="" /* relatively to resourceLoaderClass pkg */)).
(Before that, the name was possibly changed by this lookup strategy: org.craftercms.engine.view.freemarker.SiteAwareTemplateLookupStrategy@12c8b2cc.)
	at freemarker.template.Configuration.getTemplate(Configuration.java:3026)
	at org.craftercms.engine.util.freemarker.CrafterCacheAwareConfiguration.lambda$getTemplate$0(CrafterCacheAwareConfiguration.java:52)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.loadAndPutInCache(DefaultCacheTemplate.java:104)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.getObject(DefaultCacheTemplate.java:78)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.getObject(DefaultCacheTemplate.java:68)
	at org.craftercms.engine.service.context.SiteContext.getFromCache(SiteContext.java:590)
	at org.craftercms.engine.service.context.SiteContext.getFromCurrentCache(SiteContext.java:141)
	at org.craftercms.engine.util.freemarker.CrafterCacheAwareConfiguration.getTemplate(CrafterCacheAwareConfiguration.java:50)
	at freemarker.core.Environment.getTemplateForInclusion(Environment.java:3097)
	at freemarker.core.Include.accept(Include.java:162)
	... 501 more
Show error
$FreeMarker template error:
Template inclusion failed (for parameter value "/templates/web/components/icons/dl-app-gallery-black.ftl"):
Template not found for name "templates/web/components/icons/dl-app-gallery-black.ftl".
The name was interpreted by this TemplateLoader: MultiTemplateLoader(loader1 = org.craftercms.engine.freemarker.CrafterFreeMarkerTemplateLoader@3af62f3c, loader2 = FileTemplateLoader(baseDir="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF", canonicalBasePath="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF/"), loader3 = ClassTemplateLoader(resourceLoaderClass=org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer, basePackagePath="" /* relatively to resourceLoaderClass pkg */)).
(Before that, the name was possibly changed by this lookup strategy: org.craftercms.engine.view.freemarker.SiteAwareTemplateLookupStrategy@12c8b2cc.)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #include "/templates/web/components/i...  [in template "templates/web/components/download-link.ftl" at line 4, column 5]
	~ Reached through: #nested  [in template "templates/system/common/ice.ftl" in macro "a" at line 97, column 153]
	~ Reached through: #nested  [in template "templates/system/common/ice.ftl" in macro "tag" at line 47, column 18]
	~ Reached through: @tag $tag="a" $model=$model $field=$f...  [in template "templates/system/common/ice.ftl" in macro "a" at line 97, column 3]
	- Reached through: @crafter.a href="${contentModel.downl...  [in template "templates/web/components/download-link.ftl" at line 3, column 1]
----

Java stack trace (for programmers):
----
freemarker.core._MiscTemplateException: [... Exception message was already printed; see it above ...]
	at freemarker.core.Include.accept(Include.java:164)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:386)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeNestedContent(Environment.java:630)
	at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.visit(Environment.java:407)
	at freemarker.core.BlockAssignment.accept(BlockAssignment.java:55)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:380)
	at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:886)
	at freemarker.core.Environment.invokeMacro(Environment.java:822)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.craftercms.engine.freemarker.RenderComponentDirective.processComponentTemplate(RenderComponentDirective.java:293)
	at org.craftercms.engine.freemarker.RenderComponentDirective.execute(RenderComponentDirective.java:124)
	at freemarker.core.Environment.visit(Environment.java:461)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
	at freemarker.core.Environment.visit(Environment.java:344)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.visit(Environment.java:350)
	at freemarker.core.Environment.process(Environment.java:323)
	at freemarker.template.Template.process(Template.java:383)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:365)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:298)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:252)
	at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:181)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)
	at org.craftercms.engine.view.UserAgentAwareCrafterPageView.renderActualView(UserAgentAwareCrafterPageView.java:56)
	at org.craftercms.engine.view.CrafterPageView.renderMergedOutputModel(CrafterPageView.java:160)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1432)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1168)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1106)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.HttpHeadersRewriteFilter.doFilterInternal(HttpHeadersRewriteFilter.java:87)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:107)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.commons.web.AddResponseHeaderFilter.doFilterInternal(AddResponseHeaderFilter.java:62)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.scripting.impl.ScriptFilterChainImpl.doFilter(ScriptFilterChainImpl.java:89)
	at jakarta.servlet.FilterChain$doFilter.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:176)
	at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:24)
	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:159)
	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:174)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:178)
	at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
	at SecurityHeadersFilter.run(SecurityHeadersFilter.groovy:32)
	at org.craftercms.engine.scripting.impl.GroovyScript.execute(GroovyScript.java:68)
	at org.craftercms.engine.scripting.impl.ScriptFilterChainImpl.doFilter(ScriptFilterChainImpl.java:79)
	at org.craftercms.engine.scripting.impl.ScriptFilter.doFilter(ScriptFilter.java:106)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
	at org.craftercms.engine.util.spring.security.ForbiddenUrlsFilter.doFilter(ForbiddenUrlsFilter.java:57)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:117)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:145)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
	at org.craftercms.engine.url.rewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:65)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.util.spring.security.NoopFilter.doFilter(NoopFilter.java:28)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:53)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.engine.servlet.filter.SiteContextResolvingFilter.doFilter(SiteContextResolvingFilter.java:77)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.craftercms.commons.http.RequestContextBindingFilter.doFilter(RequestContextBindingFilter.java:78)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:70)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.security.web.header.HeaderWriterFilter.doHeadersBefore(HeaderWriterFilter.java:82)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:72)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:173)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:535)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:86)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:782)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:71)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:348)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:71)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1307)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:2032)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:74)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:976)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:494)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:80)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: freemarker.template.TemplateNotFoundException: Template not found for name "templates/web/components/icons/dl-app-gallery-black.ftl".
The name was interpreted by this TemplateLoader: MultiTemplateLoader(loader1 = org.craftercms.engine.freemarker.CrafterFreeMarkerTemplateLoader@3af62f3c, loader2 = FileTemplateLoader(baseDir="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF", canonicalBasePath="/opt/apache-tomcat-10.1.30/webapps/ROOT/WEB-INF/"), loader3 = ClassTemplateLoader(resourceLoaderClass=org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer, basePackagePath="" /* relatively to resourceLoaderClass pkg */)).
(Before that, the name was possibly changed by this lookup strategy: org.craftercms.engine.view.freemarker.SiteAwareTemplateLookupStrategy@12c8b2cc.)
	at freemarker.template.Configuration.getTemplate(Configuration.java:3026)
	at org.craftercms.engine.util.freemarker.CrafterCacheAwareConfiguration.lambda$getTemplate$0(CrafterCacheAwareConfiguration.java:52)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.loadAndPutInCache(DefaultCacheTemplate.java:104)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.getObject(DefaultCacheTemplate.java:78)
	at org.craftercms.core.util.cache.impl.DefaultCacheTemplate.getObject(DefaultCacheTemplate.java:68)
	at org.craftercms.engine.service.context.SiteContext.getFromCache(SiteContext.java:590)
	at org.craftercms.engine.service.context.SiteContext.getFromCurrentCache(SiteContext.java:141)
	at org.craftercms.engine.util.freemarker.CrafterCacheAwareConfiguration.getTemplate(CrafterCacheAwareConfiguration.java:50)
	at freemarker.core.Environment.getTemplateForInclusion(Environment.java:3097)
	at freemarker.core.Include.accept(Include.java:162)
	... 501 more

GoTyme Bank Limited Reg no: 2015/231510/06
© 2026 GoTyme Bank. All rights reserved.

GoTyme Bank is an authorised financial services provider 
(FSP 49140) and registered credit provider (NCRCP 10774). 
Deposits are insured by the Corporation for Deposit Insurance up to R100,000 per depositor in the unlikely event of the bank’s insolvency.

For any concerns, please contact us through our in-app chat, by email (service@gotyme.co.za), by dialing our customer care centre (0860 999 119 / +27 11 327 6244), or through our valid social media accounts