テンプレート処理中にエラーが発生しました。
The following has evaluated to null or missing:
==> bankercode  [in template "10153#10191#6524591" at line 42, column 6]

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if bankercode?starts_with("amp") && ...  [in template "10153#10191#6524591" at line 42, column 1]
----
1<#assign utilServ = (serviceLocator.findService("com.elan.crc.utilites.service.CRCRemoteServiceService"))! /> 
2<#assign url404 = '/error/404.html' > 
3<#assign oadURL = propsUtil.get('elan.oad.url') > 
4<#assign url = themeDisplay.getURLCurrent() > 
5<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))> 
6 
7<#if qstringmap["ecid"]?has_content> 
8    <#assign ecidExt="&ecid="+qstringmap["ecid"]?first> 
9<#else> 
10    <#assign ecidExt=""> 
11</#if> 
12 
13<#if qstringmap["bankercode"]?has_content> 
14    <#assign bankercode= qstringmap["bankercode"]?first> 
15 
16    <#assign fiData= utilServ.makeCall('crcDDCBankerAssistedApp','0&'+bankercode)> 
17    <#if fiData?first?has_content> 
18        <#assign fi = fiData?first> 
19        <#if ((fi.projectId == "12") || (fi.projectId == "13") || (fi.projectId == "14"))> 
20            <#assign subbu_special = fi.offerId> 
21        </#if> 
22    </#if>  
23 
24    <#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bankercode)> 
25    <#list bData as b>         
26      <#assign rLC = b.reallocationcode > 
27      <#assign lc = b.locationcode > 
28      <#assign mappedLC = b.mappedLocationCode > 
29    </#list>     
30<#else> 
31    <script> 
32        console.log("MainProductBcode missing"); 
33        //location.href = '${url404}'; 
34    </script> 
35</#if> 
36 
37<#if url?contains('11t1')> 
38    <#assign tier = '11t1'> 
39<#elseif url?contains('11t2')> 
40    <#assign tier = '11t2'> 
41</#if> 
42<#if bankercode?starts_with("amp") && (url?contains("11t1m"))> 
43    <#assign ameriprise = true> 
44<#else> 
45    <#assign ameriprise = false> 
46</#if> 
47<#if ameriprise> 
48    <#assign tier = '11t1m'> 
49</#if> 
50<#assign environment = url?replace('/${tier}.*','','r')> 
51 
52 
53<#if mappedLC?has_content && !ameriprise> 
54    <#assign lc = mappedLC > 
55</#if> 
56 
57<#if lc?has_content> 
58    <#assign prefix = "00000" > 
59    <#assign lcWithPrefix = prefix + lc > 
60    <#assign withPrefixLength = lcWithPrefix?length > 
61    <#assign startHere = withPrefixLength - 5> 
62    <#assign lc = lcWithPrefix?substring(startHere)> 
63    <#assign clientProfileService = (serviceLocator.findService("com.elan.crc.user.service.CrcClientProfileLocalService"))! /> 
64    <#assign clientProfileList = clientProfileService.findByLocationCode(lc)> 
65 
66    <#assign clientProfile = clientProfileList?first> 
67    <#assign partnerName = clientProfile.getMarketingNameLong()> 
68    <#assign logoFileName = clientProfile.getLogoBFormat1()?replace(".", "-")?replace("-([^-]*)$", ".$1", "r")?lower_case> 
69    <#assign cdnLogoUrl = propsUtil.get('rackspace.cdn.web.url')> 
70    <#assign pbu = clientProfile.getPbu()> 
71    <#assign subbu = clientProfile.getSUBBRANDBUNBR()> 
72    <script> 
73        console.log('pbu', '${pbu!''}'); 
74        console.log('subbu', '${subbu!''}'); 
75    </script>       
76    <#assign optoutData = utilServ.makeCall('crc_DDCSAAOptOut',pbu+'&'+subbu)> 
77    <#if (optoutData?size == 0)> 
78        <#if (subbu_special?has_content)> 
79            <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu_special)>  
80            <script> 
81                console.log('new subbu', '${subbu_special!''}'); 
82            </script>  
83        <#else> 
84            <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu)>  
85        </#if> 
86 
87        <#if (fiCardsData?size > 0)> 
88            <#assign temp = []> 
89            <#assign offerTypeList = []>        
90            <#assign index = 0> 
91            <#list fiCardsData as fib> 
92                <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>  
93                    <#assign offerTypeList = offerTypeList + [fib.offerType]>                   
94                    <#assign temp = temp + fiCardsData[index..index]>  
95                </#if>  
96                <#assign index = index + 1> 
97            </#list>  
98            <#assign fiCardsData = temp> 
99            <#if !(fiCardsData?size > 0)>  
100                <script> 
101                    console.log("empty card/offerType List"); 
102                    //location.href = '${url404}'; 
103                </script> 
104            </#if> 
105            <#if ameriprise> 
106                <#assign lc_used = mappedLC>  
107            <#else> 
108                <#assign lc_used = lc>  
109            </#if>             
110            <div class="content-container content-container-main" title="${partnerName!''}"> 
111                <header class="jn-header"> 
112                    <div>  
113                        <a href="${environment}/${tier}/index?bankercode=${bankercode}&ecdma-lc=${lc_used}${ecidExt}"><< Back to Overview</a> 
114                    </div>  
115                    <div>  
116                        <#if url?contains("11t2")> 
117                            <img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''}"> 
118                        </#if> 
119                        <div class="styled-select slate"> 
120                            <select> 
121                                <#list fiCardsData as fib> 
122                                    <#if ameriprise> 
123                                        <#if (fib.offerType=="101")> 
124                                            <#assign productURL="premier-visa-signature"> 
125                                            <#assign productName="Ameriprise Premier Visa Signature"> 
126                                        <#elseif (fib.offerType=="103")>      
127                                            <#assign productURL = "visa-signature"> 
128                                            <#assign productName = "Ameriprise Visa Signature">                              
129                                        </#if> 
130                                    <#else> 
131                                        <#if (fib.offerType=="108" || fib.offerType=="109")> 
132                                            <#assign productURL="consumer-platinum2103"> 
133                                            <#assign productName="Platinum Card"> 
134                                        <#elseif (fib.offerType=="104")> 
135                                            <#assign productURL = "max-cash"> 
136                                            <#assign productName = "Max Cash Preferred Card"> 
137                                        <#elseif (fib.offerType=="101" || fib.offerType=="103")> 
138                                            <#assign productURL = "real-rewards"> 
139                                            <#assign productName = "Real Rewards Card"> 
140                                        <#elseif fib.offerType == "115"> 
141                                            <#assign productURL = "secured"> 
142                                            <#assign productName = "Secured Card" > 
143                                        <#elseif fib.offerType == "144"> 
144                                            <#assign productURL = "smart-business-rewards"> 
145                                            <#assign productName = "Smart Business Rewards Card" >                                             
146                                        <#elseif fib.offerType == "128"> 
147                                            <#assign productURL = "business-cashback"> 
148                                            <#assign productName = "Business Cash Card" > 
149                                        <#elseif fib.offerType == "143"> 
150                                            <#assign productURL = "business-real-rewards"> 
151                                            <#assign productName = "Business Real Rewards Card" > 
152                                        <#elseif fib.offerType == "121"> 
153                                            <#assign productURL = "business-platinum2103"> 
154                                            <#assign productName = "Business Card" > 
155                                        </#if> 
156                                    </#if> 
157                                    <#if url?matches(".*/${productURL}.*")> 
158                                        <option value="${environment}/${tier}/${productURL}?bankercode=${bankercode}&ecdma-lc=${lc_used}${ecidExt}" selected="selected">${productName}</option>                                             
159                                    <#else> 
160                                        <option value="${environment}/${tier}/${productURL}?bankercode=${bankercode}&ecdma-lc=${lc_used}${ecidExt}">${productName}</option> 
161                                    </#if> 
162                                     
163                                </#list> 
164                            </select> 
165                        </div> 
166                    </div>  
167                </header> 
168            </div>  
169            <script> 
170                var page = location.pathname.split('/')[location.pathname.split('/').length-1]; 
171                var partnerName = "${partnerName!0}"; 
172                var metaDesc = ""; 
173                switch (page) { 
174                    case "consumer-platinum2103": 
175                        document.title = "The purchasing power of Zero | "+partnerName+" Platinum Card"; 
176                        metaDesc = "Apply Today for a "+partnerName+" Credit Card. Limited Time Offer. 0% Intro APR on Purchases and Balance Transfers for 20 Billing Cycles Consolidate your Balances with the "+partnerName+" Intro APR Card."; 
177                        break; 
178                    case "max-cash": 
179                        document.title = "Earn a $150 Bonus and 5% cash back | "+partnerName+" Max Cash Preferred Card"; 
180                        metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn a $150 Bonus and 5% cash back on the two categories you select"; 
181                        break; 
182                    case "real-rewards": 
183                        document.title = "Sign up and earn bonus points | "+partnerName+" Real Rewards Card"; 
184                        metaDesc = "Apply Today for a "+partnerName+" Credit Card. Take home 2,500 bonus points after your first purchase."; 
185                        break; 
186                    case "secured": 
187                        document.title = "Strengthen your finances | "+partnerName+" Secured Card"; 
188                        metaDesc = "Apply Today for a "+partnerName+" Credit Card. Use this card as a solid foundation to build your credit."; 
189                        break; 
190                    case "smart-business-rewards": 
191                        document.title = "2X rewards in your top 2 spend categories | "+partnerName+" Business Smart Business Rewards Card"; 
192                        metaDesc = "Apply Today for a "+partnerName+" Credit Card. More choices. More value for your business. Earn a $200 Bonus and 2x Rewards on your top 2 spend categories each month with the "+partnerName+" Credit Card."; 
193                        break; 
194                    case "business-cashback": 
195                        document.title = "Flexible rewards for your business | "+partnerName+" Business Cash Card"; 
196                        metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn Cash back on common business expenses."; 
197                        break; 
198                    case "business-real-rewards": 
199                        document.title = "Earn up to 3X points with no caps | "+partnerName+" Business Real Rewards Card"; 
200                        metaDesc = "Apply Today for a "+partnerName+" Credit Card. Get more rewards in the categories you spend the most on." ; 
201                        break; 
202                    case "business-platinum2103": 
203                        document.title = "Pay down your other credit card balances faster | "+partnerName+" Business Card"; 
204                        metaDesc = "Apply Today for a "+partnerName+" Business Card. 0% Intro APR on Purchases and Balance Transfers for 15 Billing Cycles"; 
205                        break; 
206                    case "premier-visa-signature": 
207                        document.title = "Exclusively for Ameriprise clients | Ameriprise® Premier Visa Signature® Card"; 
208                        metaDesc = "Apply Today for an Ameriprise Financial Credit Card. Earn Rewards Points worth $375 cash value when deposited into an eligible account after spending $3,000 in eligible net purchases within the first 90 days of account opening."; 
209                        break; 
210                    case "visa-signature": 
211                        document.title = "Exclusively for Ameriprise clients | Ameriprise® Visa Signature® Card"; 
212                        metaDesc = "Apply Today for an Ameriprise Financial Credit Card. Earn Rewards Points worth $250 cash value when deposited into an eligible Ameriprise account after spending $2,000 in eligible net purchases within the first 90 days of account opening."; 
213                        break;                                                                                                 
214
215                if (metaDesc.length > 0) { 
216                    var m = document.createElement('meta');  
217                    m.name = 'description';  
218                    m.content = metaDesc;  
219                    document.head.appendChild(m); 
220
221 
222                AUI().ready(function () { 
223                    jQuery('.styled-select select').change(function () { 
224                        location.href = this.value; 
225                    }); 
226                }); 
227            </script> 
228         
229        <#else> 
230            <script> 
231                console.log("FI Cards Data empty"); 
232                //location.href = '${url404}'; 
233            </script> 
234        </#if>   
235    <#else> 
236        <script> 
237            console.log("FI opt out"); 
238            //location.href = '${url404}'; 
239        </script> 
240    </#if>  
241<#else> 
242    <script> 
243        console.log("location code empty"); 
244        //location.href = '${url404}'; 
245    </script> 
246</#if> 
テンプレート処理中にエラーが発生しました。
The following has evaluated to null or missing:
==> bCode  [in template "10153#10191#6716946" at line 72, column 6]

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if bCode?starts_with("amp") && (url?...  [in template "10153#10191#6716946" at line 72, column 1]
----
1<#assign url = themeDisplay.getURLCurrent() > 
2<#assign oadURL = propsUtil.get('elan.oad.url') > 
3<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))> 
4<#assign url404 = '/error/404.html' > 
5<#assign utilServ = (serviceLocator.findService("com.elan.crc.utilites.service.CRCRemoteServiceService"))! /> 
6<#assign environment = url?replace('/11t1.*','','r')> 
7<#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' > 
8 
9<#--  check bankercode validity  --> 
10 
11<#if qstringmap["bankercode"]?has_content> 
12    <#assign bCode= qstringmap["bankercode"]?first> 
13 
14    <#assign fiData= utilServ.makeCall('crcDDCBankerAssistedApp','0&'+bCode)> 
15    <#if fiData?first?has_content> 
16        <#assign fi = fiData?first> 
17        <#if (fi.projectId == "12" || fi.projectId == "13" || fi.projectId == "14")> 
18            <#assign subbu_special = fi.offerId> 
19        </#if> 
20    </#if>       
21    <#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bCode)> 
22    <#list bData as b> 
23      <#assign lc = b.locationcode > 
24      <#assign bName = b.branch > 
25      <#assign bPhone = b.businessphone > 
26      <#assign boeid = b.oeid > 
27      <#assign fName = b.firstname?trim> 
28      <#assign lName = b.lastname?trim> 
29      <#assign rlc = b.reallocationcode > 
30      <#assign mappedLC = b.mappedLocationCode > 
31    </#list> 
32    <script> 
33        console.groupCollapsed("fi data from service call 'crcDDCBankerAssistedAppDetail'"); 
34            console.log('%clc: ', 'font-weight: bold; color: red;', '${lc}'); 
35            console.log('bName:  ','${bName}') 
36            console.log('bPhone:  ','${bPhone}') 
37            console.log('boeid','${boeid}') 
38            console.log('fName:  ','${fName}') 
39            console.log('lName:  ','${lName}') 
40            console.log('rlc: ','${rlc}') 
41            console.log('mappedLC:  ','${mappedLC}') 
42        console.groupEnd();      
43    </script> 
44    <#if qstringmap["ecdma-lc"]?has_content> 
45        <#assign lc_url= qstringmap["ecdma-lc"]?first> 
46    </#if> 
47    <script> 
48        console.log('%clc from URL: ', 'font-weight: bold; color: green;', '${lc_url}'); 
49    </script> 
50   
51<#else> 
52    <script> 
53        console.log("MainProductBcode missing"); 
54        //location.href = '${url404}'; 
55    </script> 
56</#if> 
57 
58<#assign text_to_apply_source = "vanity url" > 
59<#if qstringmap["sms"]?has_content> 
60    <#assign sms = 1 > 
61    <#assign text_to_apply_source = "sms" > 
62</#if> 
63<#if qstringmap["qrCode"]?has_content> 
64    <#assign text_to_apply_source = "qr code" > 
65</#if> 
66<#assign campaignId = "" > 
67<#assign ecidExt=""> 
68<#if qstringmap["ecid"]?has_content> 
69    <#assign campaignId = qstringmap["ecid"]?first > 
70    <#assign ecidExt="&ecid="+qstringmap["ecid"]?first> 
71</#if> 
72<#if bCode?starts_with("amp") && (url?contains("11t1m"))> 
73    <#assign ameriprise = true> 
74<#else> 
75    <#assign ameriprise = false> 
76</#if> 
77<#if mappedLC?has_content && !ameriprise> 
78<#assign lc = mappedLC > 
79</#if> 
80 
81<#if lc?has_content> 
82 
83    <#assign firstNameLength = fName?length > 
84    <#assign lastNameLength = lName?length > 
85    <#if firstNameLength + lastNameLength &gt; 19 > 
86        <#if lastNameLength &gt; 18 > 
87            <#assign bLName = lName?substring(0,18)> 
88        <#else> 
89            <#assign bLName = lName> 
90        </#if> 
91        <#assign maxFirstName = 19 - bLName?length > 
92        <#if firstNameLength &gt; maxFirstName > 
93            <#assign bFName = fName?substring(0,maxFirstName)> 
94        <#else> 
95            <#assign bFName = fName> 
96        </#if> 
97    <#else> 
98        <#assign bFName = fName > 
99        <#assign bLName = lName > 
100    </#if> 
101       
102 
103    <#assign prefix = "00000" > 
104    <#assign lcWithPrefix = prefix + lc > 
105    <#assign withPrefixLength = lcWithPrefix?length > 
106    <#assign startHere = withPrefixLength - 5> 
107    <#assign lc = lcWithPrefix?substring(startHere)> 
108 
109    <#assign clientProfileService = (serviceLocator.findService("com.elan.crc.user.service.CrcClientProfileLocalService"))! /> 
110    <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>     
111 
112    <#if clientProfileList?first?has_content> 
113        <#assign clientProfile = clientProfileList?first> 
114        <#assign partnerName = clientProfile.getMarketingNameLong()> 
115        <#assign pbu = clientProfile.getPbu()> 
116        <#assign subbu = clientProfile.getSUBBRANDBUNBR()> 
117         
118        <#assign optoutData = utilServ.makeCall('crc_DDCSAAOptOut',pbu+'&'+subbu)> 
119        <#if (optoutData?size == 0)>                 
120            <#assign clientDataService = (serviceLocator.findService("com.elan.crc.user.service.CrcPbuLocalService"))! /> 
121            <#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)> 
122            <#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()> 
123            <#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*")>             
124                <#assign partnerUrl = 'https://' + partnerUrl> 
125            </#if>            
126            <#assign clientdata = utilServ.makeCall('crcDDCTier1Customizations','0&'+pbu+'&'+subbu+'&11')> 
127            <#if (clientdata?size > 0)> 
128                <#assign logoFileName = clientProfile.getLogoBFormat1()?replace(".", "-")?replace("-([^-]*)$", ".$1", "r")?lower_case> 
129                <#assign cdnLogoUrl = propsUtil.get('rackspace.cdn.web.url')> 
130                <#list clientdata as data> 
131                    <#assign billingCycle=data.BillingCycles> 
132                </#list> 
133                <#if pbu == "0864054"> 
134                    <#assign override = "berkshire"> 
135                <#else> 
136                    <#assign override = " "> 
137                </#if> 
138              
139                <#--  this one should be delete for prod  --> 
140                     
141                        <#assign cdnLogoUrl = "https://4f61efb10f32ceb57895-3733e103896f37259213d6ad72acbe68.ssl.cf2.rackcdn.com">   
142                        <#assign logoFileName = pbu + "-" + subbu + ".png"> 
143                     
144                <#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')> 
145                <#assign pageClass = secondaryBackgroundImage.cardType.getData()> 
146                 
147                <#if (subbu_special?has_content)> 
148                    <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu_special)>  
149                <#else> 
150                    <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu)>  
151                </#if> 
152 
153 
154                <#assign temp = []> 
155                <#assign offerTypeList = []>      
156                <#assign index = 0> 
157                <#list fiCardsData as fib> 
158                    <#if !(offerTypeList?seq_contains(fib.offerType))>  
159                        <#assign offerTypeList = offerTypeList + [fib.offerType]>                   
160                        <#assign temp = temp + fiCardsData[index..index]>  
161                    </#if>  
162                    <#assign index = index + 1>                
163                </#list>  
164                <#assign fiCardsData = temp> 
165                <#if (fiCardsData?size > 0)>   
166                    <#if (subbu_special?has_content)> 
167                        <#assign lc_used = fiCardsData?first.WebLocationCode>   
168                    <#else> 
169                        <#if ameriprise> 
170                            <#assign lc_used = lc_url>  
171                        <#else> 
172                            <#assign lc_used = mappedLC> 
173                        </#if> 
174                    </#if> 
175 
176                    <#list fiCardsData as fib> 
177                        <#if ameriprise> 
178                            <#if (fib.offerType=="101")> 
179                                <#assign productURL="premier-visa-signature"> 
180                                <#assign productName="Premier Visa Signature"> 
181                                <#assign productClass="ameriprise-premier-visa-signature"> 
182                            <#elseif (fib.offerType=="103")>      
183                                <#assign productURL = "visa-signature"> 
184                                <#assign productName = "Visa Signature">   
185                                <#assign productClass="ameriprise-visa-signature">                            
186                            </#if> 
187                        <#else>                     
188                            <#if (fib.offerType=="108") || (fib.offerType=="109")> 
189                                <#assign productURL="consumer-platinum"> 
190                                <#assign productName="Platinum"> 
191                            <#elseif (fib.offerType=="104")>    
192                                <#assign productURL = "max-cash"> 
193                                <#assign productName="Max Cash Preferred">                              
194                            <#elseif (fib.offerType=="101") || (fib.offerType=="103")> 
195                                <#assign productURL = "real-rewards"> 
196                                <#assign productName="Real Rewards"> 
197                            <#elseif fib.offerType == "115"> 
198                                <#assign productURL = "secured"> 
199                                <#assign productName="Secured"> 
200                            <#elseif fib.offerType == "144"> 
201                                <#assign productURL = "smart-business-rewards"> 
202                                <#assign productName="Smart Business Rewards">                                 
203                            <#elseif fib.offerType == "128"> 
204                                <#assign productURL = "business-cashback"> 
205                                <#assign productName="Business Cash"> 
206                            <#elseif fib.offerType == "143"> 
207                                <#assign productURL = "business-real-rewards"> 
208                                <#assign productName="Business Real Rewards"> 
209                            <#elseif fib.offerType == "121"> 
210                                <#assign productURL = "business-platinum2103"> 
211                                <#assign productName="Business"> 
212                            </#if>  
213                        </#if>                    
214                        <#assign cardArtImage = cdnCardArtUrl + "/" + fib.filename + ".png"> 
215                        <#assign cardArtImageAlt = cdnCardArtUrl + "/"+fib.filename+".jpg">   
216                        <#assign newSourceCode = fib.sourceCode>  
217                        <#assign newOfferId = fib.offerId>  
218                        <#if url?matches(".*/${productURL}.*")> 
219                            <#assign sdata = utilServ.makeCall('crcDDCGetSchumerBox', newOfferId + '&' + newSourceCode)> 
220                            <#if (sdata?size > 0)>   
221                                <#if (productURL=="platinum" && !ameriprise)> 
222                                    <#assign apr = "">                         
223                                    <#list sdata as d> 
224                                        <#if (d.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases") && (d.scrapedValue?has_content))> 
225                                            <#assign apr = d.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")> 
226                                            <script> 
227                                                console.log("scraped data exists"); 
228                                                console.log("APR", '${apr}') 
229                                            </script> 
230                                            <#break> 
231                                        </#if> 
232                                    </#list> 
233                                    <script> 
234                                            $(document).ready(function () { 
235                                                var aprText = "${apr}"; 
236                                                if (aprText) { 
237                                                    var matches= aprText.match(/\d+(\.\d+)?%?/g); 
238                                                    var billing_cycle = ""; 
239                                                    var apr_min = ""; 
240                                                    var apr_max = ""; 
241                                                    if (aprText.indexOf("Platinum:") != -1) { 
242                                                        billing_cycle = matches[1]; 
243                                                        apr_min = matches[2]; 
244                                                        apr_max = matches[3]; 
245
246                                                    if (billing_cycle) { 
247                                                        $(".scraped-billing-cycle").html(billing_cycle); 
248
249                                                    if (apr_min) { 
250                                                        $(".scraped-apr-min").html(apr_min); 
251
252                                                    if (apr_max) { 
253                                                        $('.scraped-apr-max').html(apr_max); 
254
255
256                                            }); 
257                                    </script> 
258                                     
259                                </#if>                                 
260                            <#else>     
261                                <script> 
262                                    console.log("scraped data missing"); 
263                                </script> 
264                            </#if>   
265                            <#if ameriprise> 
266                                <#assign card_art_alt =  partnerName + " " + productName + " " + " Card"> 
267                                <#assign rollover_text =  partnerName + " " + productName + " " + "Card"> 
268                            <#else> 
269                                <#assign card_art_alt = partnerName> 
270                                <#assign rollover_text =  partnerName + " " + productName + " " + " Credit Card"> 
271                                <#assign card_text = productName + " Card"> 
272                            </#if> 
273                            <div class="hero-container ${pageClass} ${productClass!''}" title="${rollover_text!''}"> 
274                                <div class="hero-main"> 
275                                    <div class="hero-main-logo" title="${partnerName!''}"> 
276                                        <#if partnerUrl?has_content> 
277                                            <a href="${partnerUrl!''}" title="${partnerName!''}"><img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''}"></a> 
278                                        <#else> 
279                                            <a title="${partnerName!''}"><img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''}"></a> 
280                                        </#if> 
281                                        <div class="hero-main-logo-homelink">  
282                                            <#if ameriprise> 
283                                                <a href="${environment}/11t1m/index?bankercode=${bCode}&ecdma-lc=${lc_used}${ecidExt}">Back to Overview</a> 
284                                            <#else> 
285                                                <a href="${environment}/11t1/index?bankercode=${bCode}&ecdma-lc=${lc}${ecidExt}">Back to Overview</a> 
286                                            </#if> 
287                                        </div>  
288                                    </div> 
289                                    <div class="hero-main-container"> 
290                                        <div class="hero-main-offer bg-color-white"> 
291                                            <div class="offer-header bg-color-black text-color-white text-bold">${primaryHeadlineText.getData()}</div> 
292                                            <div class="offer-detail"> 
293                                                <div class="offer-detail-head">${primaryHeadlineFeature.getData()}</div> 
294                                                <div class="offer-detail-text text-color-default"> 
295                                                    ${primaryHeadlineFeatureTop.getData()} 
296                                                    ${primaryHeadlineFeatureBottom.getData()} 
297                                                </div> 
298                                                <div class="offer-detail-cardArt"> 
299                                                        <img src="${cardArtImage!''}" alt="${card_art_alt!''}" title="${card_art_alt!''}" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'"> 
300                                                        <p>${card_text!''}</p> 
301                                                </div> 
302                                                <#if (fiCardsData?size > 0)>  
303                                                     
304                                                    <form class="form1" action='${oadURL}?locationCode=${lc_used}&amp;offerId=${newOfferId}&amp;preparerType=customer&amp;sourceCode=${newSourceCode}' method="post" id="BAAForm"> 
305                                                        <label for="appDataBAA" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label> 
306                                                        <textarea rows="20" cols="100" name="applicationData" id="appDataBAA" style="display:none;"></textarea> 
307                                                        <input type="submit" data-button-name="cta-button-top" title="Apply Now for ${rollover_text!'Credit Card'}" class="jn-button apply-button text-bold button-bg-color-custom text-color-white" value="${ctaText.getData()}" disabled /> 
308                                                    </form> 
309                                                <#else> 
310                                                    <form class="form2" action='${oadURL}?locationCode=${lc_used}&amp;offerId=${offerId}&amp;preparerType=customer&amp;sourceCode=${sourceCode}' method="post" id="BAAForm"> 
311                                                        <label for="appDataBAA" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label> 
312                                                        <textarea rows="20" cols="100" name="applicationData" id="appDataBAA" style="display:none;"></textarea> 
313                                                        <input type="submit" data-button-name="cta-button-top" title="Apply Now for ${rollover_text!'Credit Card'}" class="jn-button apply-button text-bold button-bg-color-custom text-color-white" value="${ctaText.getData()}" disabled /> 
314                                                    </form> 
315                                                </#if> 
316                                            </div> 
317                                        </div> 
318                                    </div> 
319                                </div> 
320                                <div class="hero-primary-benefits bg-color-black-half-transparent text-color-white"> 
321                                    <#if secondaryFeatureText.getData() != ""> 
322                                        <#foreach item in secondaryFeatureText.getSiblings()> 
323                                            <div class="primary-benefit"> 
324                                                <div class="primary-benefit-wrapper text-color-white"> 
325                                                    ${item.getData()} 
326                                                </div> 
327                                            </div> 
328                                        </#foreach> 
329                                    </#if> 
330                                </div> 
331                            </div> 
332                            <div class="standard-content-container" title="${rollover_text!''}"> 
333                                <h2 class="learnmore text-color-custom text-bold" onclick="learnmore(event)"> 
334                                    LEARN MORE 
335                                    <svg viewBox="0 0 150 100" width="45" height="30"> 
336                                        <polyline points="40 40 80 80 120 38" stroke-width="20" 
337                                            stroke-linecap="butt" fill="none" stroke-linejoin="miter"/> 
338                                    </svg> 
339                                </h2> 
340                                <h2 class="text-bold" id="more">${secondaryHeadlineText.getData()}</h2> 
341                                <div class="secondary-benefits"> 
342                                    <div class="option"> 
343                                        ${additionalInfoGroupA.getData()} 
344                                        <#if pbu != "0892445"> 
345                                            <#if (sdata?size > 0)> 
346                                                <div> 
347 
348                                                    <#if (fib.offerType == "104") > 
349                                                         
350                                                        <#list sdata as d> 
351                                                            <#if (d.scrapedLabel?contains("Annual Percentage Rate") && (d.scrapedValue?has_content))>  
352                                                                             
353                                                                <h3 class="text-color-custom"><strong>APR<sup>*</sup> for Purchases:</strong></h3> 
354                                                                        <p>${d.scrapedValue} <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}"  class="text-color-default" target="_blank">Terms & Conditions</a> 
355                                                                        </p> 
356                                                                    <#break> 
357                                                            </#if> 
358                                                        </#list> 
359                                                        <#list sdata as d> 
360                                                            <#if (d.scrapedLabel?contains("APR for Balance Transfers") && (d.scrapedValue?has_content))>  
361                                                                             
362                                                                <h3 class="text-color-custom"><strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers</strong></h3> 
363                                                                        <p>${d.scrapedValue} <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}"  class="text-color-default" target="_blank">Terms & Conditions</a> 
364                                                                        </p> 
365                                                                     
366                                                                    <#break> 
367                                                            </#if> 
368                                                        </#list> 
369                                                    <#else> 
370 
371                                                        <#if (fib.offerType == "115" || fib.offerType == "123")> 
372                                                            <h3 class="text-color-custom"><strong>APR for Purchases and Balance Transfers</strong></h3> 
373                                                        <#elseif (fib.offerType=="128" || fib.offerType=="143")> 
374                                                            <h3 class="text-color-custom"><strong>Annual Fee</strong></h3> 
375                                                        <#else> 
376                                                            <h3 class="text-color-custom"><strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers</strong></h3> 
377                                                        </#if> 
378                                                        <#list sdata as d> 
379                                                            <#if (fib.offerType=="128" || fib.offerType=="143") > 
380                                                                <#if (d.scrapedLabel?contains("Annual Membership Fee") && (d.scrapedValue?has_content))> 
381                                                                    <#if (fiCardsData?size > 0)>  
382                                                                        <p>${d.scrapedValue} <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}" 
383                                                                                class="text-color-default" target="_blank">Terms & Conditions</a> 
384                                                                        </p> 
385                                                                                 
386                                                                    <#else> 
387                                                                        <p>${d.scrapedValue} <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}" 
388                                                                                    class="text-color-default" target="_blank">Terms & Conditions</a> 
389                                                                        </p> 
390                                                                    </#if> 
391                                                                    <#break> 
392                                                                </#if> 
393 
394                                                            <#else> 
395                                                                <#if (d.scrapedLabel?contains("Annual Percentage Rate") && (d.scrapedValue?has_content))>  
396                                                                             
397                                                                    <#if (fiCardsData?size > 0)>      
398                                                                        <p>${d.scrapedValue} <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}" target="_blank">Terms & Conditions</a> 
399                                                                        </p> 
400                                                                    <#else> 
401                                                                        <p>${d.scrapedValue} <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}"  class="text-color-default" target="_blank">Terms & Conditions</a> 
402                                                                        </p> 
403                                                                    </#if> 
404                                                                    <#break> 
405                                                                </#if> 
406                                                            </#if> 
407                                                        </#list> 
408 
409                                                    </#if> 
410                                                </div> 
411                                            </#if> 
412                                        </#if> 
413                                    </div> 
414                                    <div class="option"> 
415                                        ${additionalInfoGroupB.getData()}  
416                                        <#if pbu != "0892445"> 
417                                            <div> 
418                                                <#if (fiCardsData?size > 0)> 
419                                                    <#if (sdata?size > 0)> 
420                                                        <#if (fib.offerType=="128" || fib.offerType=="143")> 
421                                                            <h3 class="text-color-custom"><strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers</strong></h3> 
422                                                        <#else> 
423                                                            <h3 class="text-color-custom"><strong>Annual Fee</strong></h3> 
424                                                        </#if> 
425                                                        <#list sdata as d> 
426                                                            <#if (fib.offerType=="128" || fib.offerType=="143")> 
427                                                                <#if (d.scrapedLabel?contains("Annual Percentage Rate") && (d.scrapedValue?has_content))>  
428                                                                     
429                                                                    <#if (fiCardsData?size > 0)>   
430                                                                        <p>${d.scrapedValue} <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}" 
431                                                                            class="text-color-default" target="_blank">Terms & Conditions</a> 
432                                                                        </p> 
433                                                                    <#else> 
434                                                                        <p>${d.scrapedValue} <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}" 
435                                                                            class="text-color-default" target="_blank">Terms & Conditions</a> 
436                                                                        </p> 
437                                                                    </#if> 
438                                                                    <#break> 
439                                                                </#if> 
440                                                            <#else> 
441                                                                <#if (d.scrapedLabel?contains("Annual Membership Fee") && (d.scrapedValue?has_content))> 
442                                                                     
443                                                                    <#if (fiCardsData?size > 0)>  
444                                                                    <p> 
445                                                                        <#if (fib.offerType == "123")> 
446                                                                        Annual Fee: ${d.scrapedValue} 
447                                                                        <#else> 
448                                                                        ${d.scrapedValue}  
449                                                                        </#if> 
450                                                                        <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}" target="_blank">Terms & Conditions</a> 
451                                                                    </p> 
452                                                                    <#else> 
453                                                                    <p> 
454                                                                        <#if (fib.offerType == "123")> 
455                                                                        Annual Fee: ${d.scrapedValue} 
456                                                                        <#else> 
457                                                                        ${d.scrapedValue}  
458                                                                        </#if> 
459                                                                        <a href="${oadURL_TC}?step=display&amp;offerId=${newOfferId}&amp;locationCode=${lc_used}" class="text-color-default" target="_blank">Terms & Conditions</a> 
460                                                                    </p> 
461                                                                    </#if> 
462                                                                    <#break> 
463                                                                </#if> 
464                                                            </#if> 
465                                                        </#list> 
466                                                    </#if> 
467                                                </#if> 
468                                            </div> 
469                                        </#if> 
470                                    </div> 
471                                </div> 
472                            </div> 
473                            <div class="banner-wrapper" title="${rollover_text!''}"> 
474                                <div class="banner bg-color-custom ${override}"> 
475                                    <div class="banner-cardArt"> 
476                                            <img src="${cardArtImage!''}" alt="${card_art_alt!''}" title="${card_art_alt!''}" srcset="" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'"> 
477                                    </div> 
478                                    <div class="banner-cta"> 
479                                        <div class="banner-cta-text text-color-white text-bold"> 
480                                            ${optionalCtaFeatureText.getData()} 
481                                        </div> 
482                                        <a id="oadSecButton" data-button-name="cta-button-bottom" title="Apply Now for ${rollover_text!'Credit Card'}" class="jn-button banner-cta-apply-button text-bold button-bg-color-white text-color-custom">${optionalCtaText.getData()}</a> 
483                                    </div> 
484                                </div> 
485                            </div>     
486                 
487 
488                        </#if> 
489                    </#list>                         
490 
491                    <script> 
492                            var reportingData = window.reportingData || {}; 
493                        document.addEventListener('DOMContentLoaded', function() { 
494                            console.log('inside ready'); 
495                            var page = location.pathname.split('/')[location.pathname.split('/').length-1]; 
496                            var hostName = location.hostname; 
497                         
498                            function getDomainFromHostname(hostname) { 
499                                var parts = hostname.split('.'); 
500                                return parts.length === 3 ? parts[1] : parts[0]; 
501
502                            var domain = getDomainFromHostname(hostName); 
503                            var partnerName = "${partnerName!''}"; 
504 
505                            var ameriprise = '${ameriprise?string("yes", "no")}'; 
506                            var locationCode = "${rlc!lc}"; 
507                            var eidAmp = ""; 
508                            if (ameriprise == "yes") { 
509                                var bankercode_amp = '${bCode}'; 
510                                eidAmp = bankercode_amp.substring(3); 
511                                locationCode =""; 
512                            }                             
513 
514                            $('.jn-button').removeAttr('disabled'); 
515                            $('.jn-button').removeClass('jn-disabled'); 
516                            jQuery('#oadSecButton').on('click', function(e) { 
517                                jQuery('#BAAForm').submit(); 
518                            }); 
519                             
520                            jQuery('#BAAForm').on('submit', function(e){ 
521                                e.preventDefault(); 
522                                console.log('in custom submit'); 
523                                var xmlData; 
524                                if(ameriprise == "yes") { 
525                                    xmlData = '<?xml version="1.0"?>'+ 
526                                        "<prefillData>"+  
527                                        "<versionNumber>1.0</versionNumber>"+  
528                                        "<applicationData>"+  
529                                        "<referral>" +  
530                                        "<employeeId>" + eidAmp + "</employeeId>" + 
531                                        "<storeNumber>"+"${bName!'0'}"+"</storeNumber>"+ 
532                                        "<divisionNumber></divisionNumber>"+ 
533                                        "</referral>" +  
534                                        "<bankerInformation>"+  
535                                        "<locationCode>" + locationCode + "</locationCode>"+ 
536                                        "<originatingBranchNumber>"+"${bName!'0'}"+"</originatingBranchNumber>"+ 
537                                        "<employeeID>${boeid!0}</employeeID>"+ 
538                                        "<name>" + 
539                                        "<first>${bFName!'0'}</first>" + 
540                                        "<last>${bLName!'0'}</last>" + 
541                                        "</name>"+ 
542                                        "<phone>"+ 
543                                        "<areaCode>"+areaCode+"</areaCode>"+  
544                                        "<exchange>"+exchangeCode+"</exchange>"+ 
545                                        "<number>"+num+"</number>"+  
546                                        "</phone>"+  
547                                        "</bankerInformation>"+  
548                                        "</applicationData>"+  
549                                        "</prefillData>" 
550                                } else { 
551                                    xmlData = '<?xml version="1.0"?>'+ 
552                                        "<prefillData>"+  
553                                        "<versionNumber>1.0</versionNumber>"+  
554                                        "<applicationData>"+  
555                                        "<bankerInformation>"+  
556                                        "<locationCode>" + locationCode + "</locationCode>"+ 
557                                        "<originatingBranchNumber>"+"${bName!'0'}"+"</originatingBranchNumber>"+ 
558                                        "<employeeID>${boeid!0}</employeeID>"+ 
559                                        "<name>" + 
560                                        "<first>${bFName!'0'}</first>" + 
561                                        "<last>${bLName!'0'}</last>" + 
562                                        "</name>"+ 
563                                        "<phone>"+ 
564                                        "<areaCode>"+areaCode+"</areaCode>"+  
565                                        "<exchange>"+exchangeCode+"</exchange>"+ 
566                                        "<number>"+num+"</number>"+  
567                                        "</phone>"+  
568                                        "</bankerInformation>"+  
569                                        "</applicationData>"+  
570                                        "</prefillData>" 
571                                }                                 
572                                jQuery('#appDataBAA').val(xmlData); 
573                                var buttonName = jQuery('.jn-button').data('button-name'); 
574                                /* SiteCatalyst  onClick tracking */ 
575                                reportingData.apply_button = buttonName; 
576                                AUI().ready(function() { 
577                                    if (window.publisherFW) { 
578                                        window.publisherFW.publishEvent("onClick", reportingData); 
579
580                                }); 
581 
582                                this.submit(); 
583                            }); 
584                            var regex = /\d+/g; 
585                            var bdNumber = "${bPhone!''}"; 
586                            var phoneNum = bdNumber.match(regex); 
587                            var areaCode = ""; 
588                            var exchangeCode = ""; 
589                            var num = ""; 
590                            if(phoneNum != null) { 
591                                phoneNum = phoneNum.join(""); 
592                                areaCode = phoneNum.substring(0,3); 
593                                exchangeCode = phoneNum.substring(3,6); 
594                                num = phoneNum.substring(6,10); 
595
596                            var product = ""; 
597                            switch(page) { 
598                                case "consumer-platinum2103": 
599                                    product="Platinum Card" 
600                                    break; 
601                                case "real-rewards": 
602                                    product="Real Rewards Card" 
603                                    break; 
604                                case "secured": 
605                                    product="Secured Card" 
606                                    break; 
607                                case "business-cashback": 
608                                    product="Business Cash Card" 
609                                    break; 
610                                case "business-real-rewards": 
611                                    product="Business Real Rewards Card" 
612                                    break; 
613                                case "business-rewards-plus": 
614                                    product="Business Rewards PLUS Card" 
615                                    break; 
616                                case "premier-visa-signature": 
617                                    product="Premier Visa Signature Card" 
618                                    break; 
619                                case "business-platinum2103": 
620                                    product="Business" 
621                                    break; 
622                                case "visa-signature": 
623                                    product="Visa Signature Card" 
624                                    break;                                     
625                                default:   
626                                    product = "All Cards";                           
627                            }                                  
628                                 
629                            /* update SiteCatalyst data object */ 
630                            reportingData.current_page = "microsite:${partnerName}:" + domain + ':' + page.replace('-',' '); 
631                            reportingData.location_code = '${rlc!0}'; 
632                            reportingData.product = product; 
633                            reportingData.site_section = 'credit cards'; 
634                            reportingData.platform = 'microsite'; 
635                            reportingData.partner_name = "${partnerName}"; 
636                            reportingData.Banker_id = '${boeid}'; 
637                            reportingData.Banker_code = '${bCode}'; 
638                            reportingData.visitor_type = 'prospect'; 
639                            reportingData.text_to_apply_source = '${text_to_apply_source}'; 
640                            reportingData.page_type = 'product';  
641                            reportingData.campaign_id = '${campaignId}';  
642 
643                                 
644                            }); 
645                    </script> 
646                    <script async> 
647                        function learnmore(e) { 
648                            e.preventDefault(); 
649                            var element = document.getElementById("more"); 
650                            element.scrollIntoView({behavior: 'smooth'}); 
651
652                    </script>                     
653                <#else> 
654                    <script> 
655                        console.log("FI Cards Data empty"); 
656                        //location.href = '${url404}'; 
657                    </script> 
658                </#if>   
659            <#else> 
660                <script> 
661                    console.log("not Tier1 Fi"); 
662                    //location.href = '${url404}'; 
663                </script> 
664            </#if>                   
665        <#else> 
666            <script> 
667                console.log("Fi opt-out"); 
668                //location.href = '${url404}'; 
669            </script> 
670        </#if>        
671    <#else> 
672        <script> 
673            console.log("client profile empty"); 
674            //location.href = '${url404}'; 
675        </script> 
676    </#if>   
677</#if> 
テンプレート処理中にエラーが発生しました。
The following has evaluated to null or missing:
==> qstringmap["bankercode"]  [in template "10153#10191#7973976" at line 5, column 17]

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign bCode = qstringmap["bankercod...  [in template "10153#10191#7973976" at line 5, column 1]
----
1<#assign url = themeDisplay.getURLCurrent() > 
2<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))> 
3<#assign utilServ = (serviceLocator.findService("com.elan.crc.utilites.service.CRCRemoteServiceService"))! /> 
4 
5<#assign bCode= qstringmap["bankercode"]?first> 
6<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetailSql','0&'+bCode)> 
7<#list bData as b>      
8    <#assign lc = b.locationcode > 
9    <#assign rLC = b.reallocationcode > 
10    <#assign mappedLC = b.mappedLocationCode > 
11</#list>  
12<#if mappedLC?has_content && !(url?contains("11t1m"))> 
13    <#assign lc = mappedLC > 
14</#if> 
15<#if lc?has_content> 
16    <#assign prefix = "00000" > 
17    <#assign lcWithPrefix = prefix + lc > 
18    <#assign withPrefixLength = lcWithPrefix?length > 
19    <#assign startHere = withPrefixLength - 5> 
20    <#assign lc = lcWithPrefix?substring(startHere)> 
21    <#assign clientProfileService = (serviceLocator.findService("com.elan.crc.user.service.CrcClientProfileLocalService"))! /> 
22    <#assign clientProfileList = clientProfileService.findByLocationCode(lc)> 
23 
24    <#assign clientProfile = clientProfileList?first>  
25    <#assign partnerName=clientProfile.getMarketingNameLong()> 
26</#if> 
27 
28<div class="content-container" title="${partnerName!''} - Disclaimer"> 
29    <div class="jn-disclaimer tier3-disclaimer-${class.getData()}"> 
30        ${content.getData()} 
31    </div> 
32</div> 
テンプレート処理中にエラーが発生しました。
The following has evaluated to null or missing:
==> qstringmap["bankercode"]  [in template "10153#10191#6590291" at line 6, column 17]

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign bCode = qstringmap["bankercod...  [in template "10153#10191#6590291" at line 6, column 1]
----
1<#assign url = themeDisplay.getURLCurrent() > 
2<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))> 
3<#assign utilServ = (serviceLocator.findService("com.elan.crc.utilites.service.CRCRemoteServiceService"))! /> 
4<#assign url404 = '/error/404.html'> 
5 
6<#assign bCode= qstringmap["bankercode"]?first> 
7<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bCode)> 
8<#list bData as b>      
9    <#assign lc = b.locationcode > 
10    <#assign rLC = b.reallocationcode > 
11    <#assign mappedLC = b.mappedLocationCode > 
12</#list>  
13 
14<#if bCode?starts_with("amp") && (url?contains("11t1m"))> 
15    <#assign ameriprise = true> 
16<#else> 
17    <#assign ameriprise = false> 
18</#if> 
19<#if mappedLC?has_content && !ameriprise> 
20    <#assign lc = mappedLC > 
21</#if> 
22 
23<#if lc?has_content> 
24 
25    <#assign prefix = "00000" > 
26    <#assign lcWithPrefix = prefix + lc > 
27    <#assign withPrefixLength = lcWithPrefix?length > 
28    <#assign startHere = withPrefixLength - 5> 
29    <#assign lc = lcWithPrefix?substring(startHere)> 
30   <#assign clientProfileService = (serviceLocator.findService("com.elan.crc.user.service.CrcClientProfileLocalService"))! /> 
31    <#assign clientProfileList = clientProfileService.findByLocationCode(lc)> 
32 
33    <#assign clientProfile = clientProfileList?first> 
34    <#assign pbu = clientProfile.getPbu()> 
35    <#assign subbu = clientProfile.getSUBBRANDBUNBR()>   
36    <#assign partnerName=clientProfile.getMarketingNameLong()> 
37   <#assign clientDataService = (serviceLocator.findService("com.elan.crc.user.service.CrcPbuLocalService"))! /> 
38    <#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)> 
39    <#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()> 
40    <#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*") && !partnerUrl?matches(r"(?i)^https?\:&#x2F;&#x2F;.*")> 
41        <#-- add protocal if missing  --> 
42        <#assign partnerUrl = 'https://' + partnerUrl> 
43    </#if> 
44    <footer class="footer bg-color-black text-color-white"> 
45        ${footerContent.getData()} 
46    </footer> 
47 
48    <!-- BEGIN CALIFORNIA OPT-OUT MODAL STYLE AND MARKUP --> 
49        <script src="https://unpkg.com/micromodal/dist/micromodal.min.js"></script> 
50        <style> 
51            #opt-out-button, 
52            .modal__btn.learn-more { 
53                background: #0C2074; 
54                border: 1px solid #0C2074; 
55                color: white; 
56                text-transform: uppercase; 
57                text-decoration: none; 
58                font-size: 16px; 
59                padding: 0.5rem 2rem; 
60                display: inline-block; 
61                border-radius: 0; 
62
63            #opt-out-button:hover, 
64            .modal__btn.learn-more:hover { 
65                color: white; 
66                border-color: #2C76AF !important; 
67                background-color: #2C76AF !important; 
68
69            .modal__btn.learn-more { 
70                background: white; 
71                border: 1px solid #0C2074; 
72                color: #0C2074; 
73
74            #opt-out-button[disabled="true"] { 
75                background-color: rgba(0,0,0,.15); 
76                color: rgba(0,0,0,.45); 
77                border-color: rgba(0,0,0,.25); 
78
79            #opt-out-button:hover[disabled="true"] { 
80                background-color: rgba(0,0,0,.15) !important; 
81                color: rgba(0,0,0,.45) !important; 
82                border-color: rgba(0,0,0,.25) !important; 
83
84            #opt-out-button:focus { 
85                outline-style: solid; 
86                outline-color: white; 
87                outline-offset: -3px; 
88                outline-width: 1px; 
89
90            .opt-out-link svg { 
91                width: 30px; 
92                height: 14px; 
93                width: auto; 
94                vertical-align: middle; 
95
96            .modal__overlay { 
97                position: fixed; 
98                top: 0; 
99                left: 0; 
100                right: 0; 
101                bottom: 0; 
102                background: rgba(0,0,0,0.6); 
103                display: flex; 
104                justify-content: center; 
105                align-items: center; 
106
107 
108            .modal__container { 
109                background-color: #fff; 
110                padding: 30px; 
111                max-width: 500px; 
112                max-height: 100vh; 
113                border-radius: 4px; 
114                overflow-y: auto; 
115                box-sizing: border-box; 
116
117 
118            .modal__header { 
119                display: flex; 
120                justify-content: space-between; 
121                align-items: center; 
122
123 
124            .modal__title { 
125                margin-top: 0; 
126                margin-bottom: 0; 
127                font-weight: 600; 
128                font-size: 20px; 
129                line-height: 1.25; 
130                color: #00449e; 
131                box-sizing: border-box; 
132
133 
134            .modal__close { 
135                background: transparent; 
136                border: 1px solid white; 
137                padding: 4px 8px; 
138
139            .modal__close:hover { 
140                border: 1px solid black; 
141
142 
143            .modal__header .modal__close:before { content: "\2715"; } 
144 
145            .modal__content { 
146                margin-top: 2rem; 
147                margin-bottom: 2rem; 
148                line-height: 1.5; 
149
150 
151            @keyframes mmfadeIn { 
152                from { opacity: 0; } 
153                to { opacity: 1; } 
154
155 
156            @keyframes mmfadeOut { 
157                from { opacity: 1; } 
158                to { opacity: 0; } 
159
160 
161            @keyframes mmslideIn { 
162                from { transform: translateY(15%); } 
163                to { transform: translateY(0); } 
164
165 
166            @keyframes mmslideOut { 
167                from { transform: translateY(0); } 
168                to { transform: translateY(-10%); } 
169
170 
171            .micromodal-slide { 
172                display: none; 
173
174 
175            .micromodal-slide.is-open { 
176                display: block; 
177
178 
179            .micromodal-slide[aria-hidden="false"] .modal__overlay { 
180                animation: mmfadeIn .3s cubic-bezier(0.0, 0.0, 0.2, 1); 
181
182 
183            .micromodal-slide[aria-hidden="false"] .modal__container { 
184                animation: mmslideIn .3s cubic-bezier(0, 0, .2, 1); 
185
186 
187            .micromodal-slide[aria-hidden="true"] .modal__overlay { 
188                animation: mmfadeOut .3s cubic-bezier(0.0, 0.0, 0.2, 1); 
189
190 
191            .micromodal-slide[aria-hidden="true"] .modal__container { 
192                animation: mmslideOut .3s cubic-bezier(0, 0, .2, 1); 
193
194 
195            .micromodal-slide .modal__container, 
196            .micromodal-slide .modal__overlay { 
197                will-change: transform; 
198
199        </style> 
200 
201        <div class="modal micromodal-slide" id="modal-1" aria-hidden="true"> 
202        <div class="modal__overlay" tabindex="-1" data-micromodal-close> 
203            <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-1-title"> 
204            <header class="modal__header"> 
205                <h2 class="modal__title" id="modal-1-title"> 
206                Your California privacy choices 
207                </h2> 
208                <button class="modal__close" aria-label="Close modal" data-micromodal-close></button> 
209            </header> 
210            <div class="modal__content" id="modal-1-content"> 
211                <div id="message-no-cookie"> 
212                    <p> 
213                    We use technologies, such as cookies, that gather information on our website. That information is used for a variety of purposes, such as to understand how visitors interact with our websites, or to serve advertisements on our websites or on other websites. The use of technologies, such as cookies, constitutes a ‘share’ or ‘sale’ of personal information under the California Privacy Rights Act. You can stop the use of certain third-party tracking technologies that are not considered our service providers by clicking on “Opt-Out” below or by broadcasting the global privacy control signal.</p> 
214                     
215        <p>&nbsp;</p> 
216 
217        <p>Note that due to technological limitations, if you visit our website from a different computer or device, or clear cookies on your browser that store your preferences, you will need to return to this screen to opt-out and/or rebroadcast the signal. You can find a description of the types of tracking technologies, and your options with respect to those technologies, by clicking “Learn more” below.</p> 
218            </div> 
219            <div id="message-with-cookie"> 
220                <p>You have successfully opted-out.</p> 
221            </div> 
222            </div> 
223            <div class="modal__footer"> 
224                <a href="https://login.elancreditcard.com/onlineCard/publicPrivacyPolicy.do?phase=privacyPolicy" target="_blank" class="modal__btn learn-more" aria-label="Learn more">Learn More</a> 
225                <button id="opt-out-button" class="modal__btn modal__btn-primary" aria-label="Opt Out and Close modal" onclick="window.californiaOptOut()">Opt Out</button> 
226            </div> 
227            </div> 
228        </div> 
229        </div> 
230    <!-- END CALIFORNIA OPT-OUT MODAL STYLE AND MARKUP --> 
231    <script> 
232        const fdicNode = document.querySelector('.footer .fdic') 
233    </script> 
234    <#if url?contains("11t1m")> 
235        <script>                 
236            document.querySelector('.footer .copyright').classList.add("ecdma-footer-client-name-copyright"); 
237            fdicNode.innerHTML='<a class="text-color-white" href="https://login.elancreditcard.com/onlineCard/publicPrivacyPolicy.do?phase=privacyPolicy" target="_blank">Privacy and Security</a>'; 
238        </script> 
239    <#else> 
240        <script>                 
241            document.querySelector('.footer .copyright').classList.add("ecdma-footer-client-name-copyright"); 
242            document.querySelector('.footer .fdic').innerHTML='<a class="text-color-white" href="https://login.elancreditcard.com/onlineCard/publicPrivacyPolicy.do?phase=privacyPolicy" target="_blank">Privacy and Security</a>'; 
243            var newNode = document.createElement("div");  
244             newNode.classList.add("member-agreement"); 
245            newNode.innerHTML='<a class="text-color-white" href="https://online1.elancard.com/oad/cmas.controller?locationCode=${lc!0}&preparerType=customer&isNewRequest=false" target="_blank">Cardmember Agreements</a>'; 
246            var parent = fdicNode.parentNode; 
247            parent.insertBefore(newNode, fdicNode); 
248        </script> 
249    </#if> 
250 
251    <#if partnerUrl?has_content> 
252        <script> 
253            document.querySelector('.copyright .homelink').innerHTML="<a class='text-color-white' href='${partnerUrl!''}' title='${partnerName!''}' target='_blank'>Home</a>"; 
254        </script> 
255    </#if> 
256    <script> 
257    /* BEGIN CALIFORNIA OPT-OUT MODAL TRIGGER */ 
258    fdicNode.insertAdjacentHTML('afterend', '<div style="display: inline-block; margin-left: 100px;"><a href="javascript:void(0);" class="opt-out-link text-color-white" data-micromodal-trigger="modal-1">Your California privacy choices <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve"><path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" fill-rule="evenodd" clip-rule="evenodd" fill="#fff"/><path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" fill-rule="evenodd" clip-rule="evenodd" fill="#06f"/><path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" fill="#fff"/><path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" fill="#06f"/></svg></a></div>'); 
259    /* END CALIFORNIA OPT-OUT MODAL TRIGGER */ 
260    </script> 
261    <!-- BEGIN CALIFORNIA OPT-OUT MODAL LOGIC --> 
262    <script> 
263        window.getCookieDomain = function() { 
264            var hostname = window.location.hostname.split("."); 
265            return hostname && hostname.slice(hostname.length - 2).join("."); 
266
267        window.setToOptOut = function() { 
268            if (window.getCookie('privacy_optout')) { 
269                    document.getElementById('message-no-cookie').style.display = 'none'; 
270                    document.getElementById('message-with-cookie').style.display = 'block'; 
271                    document.getElementById('opt-out-button').setAttribute('disabled', true) 
272                } else { 
273                    document.getElementById('message-no-cookie').style.display = 'block'; 
274                    document.getElementById('message-with-cookie').style.display = 'none'; 
275
276
277        window.getCookie = function(name) { 
278            var value = '; ' + document.cookie; 
279            var parts = value.split('; ' + name + '='); 
280            if (parts.length === 2) return parts.pop().split(';').shift(); 
281
282        window.californiaOptOut = function() { 
283            if (!window.getCookie('privacy_optout')) { 
284                document.cookie = 'privacy_optout=1; path=/; domain=' + window.getCookieDomain() + '; expires=Thu, 31 Dec 2099 00:00:00 GMT;'; 
285                try { 
286                if (window.CustomEvent) { 
287                    window.dispatchEvent(new CustomEvent('privacy_optout')); 
288                } else { 
289                    var privacyOptoutEvent = document.createEvent('Event'); 
290                    privacyOptoutEvent.initEvent('privacy_optout', true, true); 
291                    window.dispatchEvent(privacyOptoutEvent); 
292
293                window.setToOptOut(); 
294                } catch (err) { 
295                console.error(err); 
296
297
298
299        MicroModal.init({ 
300            onShow: window.setToOptOut 
301        }); 
302        AUI().ready(function() { 
303            // user browser setting for Global Privacy Control to opt out of sharing information with third parties 
304            const isBrowserGpcOptOut = navigator.globalPrivacyControl; 
305            if(isBrowserGpcOptOut === true) { 
306            window.californiaOptOut(); 
307
308        }); 
309    </script> 
310    <!-- END CALIFORNIA OPT-OUT MODAL LOGIC --> 
311</#if>