java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "bl"
	at java.net.URLDecoder.decode(URLDecoder.java:194)
	at com.duda.common.DudaCommonUtils.urlDecodeUTF8(DudaCommonUtils.java:343)
	at com.duda.engine.core.http.UrlDomainAsProxyTargetValidator.isValid(UrlDomainAsProxyTargetValidator.java:91)
	at com.duda.engine.site.mobile.MobileSiteFunctions.validateLiveUrlDomain(MobileSiteFunctions.java:143)
	at com.duda.engine.site.mobile.MobileSiteFunctions.validateResolvedDataSession(MobileSiteFunctions.java:126)
	at com.duda.runtime.RuntimeDataSessionBuilder.validateResolvedPage(RuntimeDataSessionBuilder.java:419)
	at com.duda.runtime.RuntimeDataSessionBuilder.finalyzeDataSession(RuntimeDataSessionBuilder.java:155)
	at com.duda.runtime.RuntimeDataSessionBuilder.buildByDomain(RuntimeDataSessionBuilder.java:138)
	at com.duda.runtime.RuntimeContextResolver.buildDataSessionByDomain(RuntimeContextResolver.java:122)
	at com.duda.runtime.RuntimeContextResolver.resolveInPROD(RuntimeContextResolver.java:71)
	at com.duda.runtime.RuntimeContextResolver.resolveRuntimeContext(RuntimeContextResolver.java:55)
	at com.duda.engine.product.resolve.DMProductResolver.resolveBySite(DMProductResolver.java:294)
	at com.duda.engine.product.resolve.DMProductResolver.resolveProduct(DMProductResolver.java:170)
	at com.duda.engine.product.resolve.DMProductResolver.resolve(DMProductResolver.java:106)
	at com.duda.webutil.DMInitialProcessingFilter.doFilter(DMInitialProcessingFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.duda.webutil.StaticResourcesFilter.doFilter(StaticResourcesFilter.java:124)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.duda.webutil.DMRuntimeMaintenanceFilter.doFilter(DMRuntimeMaintenanceFilter.java:41)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.duda.webutil.DMContextFilter.doFilter(DMContextFilter.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.duda.webutil.cors.DMCorsFilter.doFilter(DMCorsFilter.java:59)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.duda.webutil.ExceptionCatcherFilter.doFilter(ExceptionCatcherFilter.java:72)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.duda.mobile.DudaMobileEditorPathBlockingFilter.doFilter(DudaMobileEditorPathBlockingFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:367)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:639)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:885)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1688)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:750)
