I am trying to add SVG images to PowerPoint slides (version 20.2.0). Running locally, the SVG image is added to the presentation exactly as expected. However, when the same code runs on Azure app services, I always receive the same exception, which seems to be independent of .NET version. I’ve tried on .NET Core 3.1, .NET Core 2.1, and .NET Framework 4.7. All run as expected locally, but fail when deployed to an Azure app service.
I’ve also created projects that minimally reproduce the error (which I would be happy to share), but cannot determine what is different between our local environments and the Azure app service deploy. Any help would be greatly appreciated.
Here is the code:
ISvgImage svgImage = new SvgImage(svgBinary);
presentation.Images.AddImage(svgImage);
Here is the exception that only occurs on Azure app services:
System.Runtime.InteropServices.ExternalException (0x80004005): A generic error occurred in GDI+.
at System.Drawing.Imaging.Metafile…ctor(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type, String description)
at System.Drawing.Imaging.Metafile…ctor(Stream stream, IntPtr referenceHdc, Rectangle frameRect, MetafileFrameUnit frameUnit, EmfType type)
at � .�(Int32 �, Int32 �)
at � …ctor(� �, Int32 �, Int32 �)
at � .�(String �, � �, Int32 �, Int32 �)
at � .�(String �, Int32 �, Int32 �)
at � .�(String �)
at Aspose.Slides.ImageCollection.AddImage(ISvgImage svgImage)
at SimplePowerPointTest.Controllers.Test.Get() in C:\Git\tacklebox\API\SimplePowerPointTest\Controllers\Test.cs:line 24
at lambda_method(Closure , Object , Object[] )
at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
— End of stack trace from previous location where exception was thrown —
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
— End of stack trace from previous location where exception was thrown —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Insiten.Api.Middleware.ExceptionLogger.Invoke(HttpContext http) in C:\Git\tacklebox\API\Insiten.Api\Middleware\ExceptionLogger.cs:line 27
In case the question may be of binary data, here is an example in base64:
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDU3LjVwdCIgaGVpZ2h0PSIzMDcuNXB0Ij4NCiA8ZyBpZD0iU0ZpeFRpdGxlIiAvPg0KIDxnIGlkPSJTQ29udGVudCI+DQogIDxnIHRyYW5zZm9ybT0ic2NhbGUoMS4zMzMzMykiPg0KICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICA8Zz4NCiAgICAgPHBhdGggZD0iTTAsMCBMNDU2Ljc1LDAgTDQ1Ni43NSwzMDYuNzUgTDAsMzA2Ljc1IFogIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMCIgZmlsbD0iI0ZGRkZGRiIgZmlsbC1vcGFjaXR5PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiIC8+DQogICAgIDxnPg0KICAgICAgPGRlZnM+DQogICAgICAgPGNsaXBQYXRoIGlkPSJDTElQMCI+DQogICAgICAgIDxwYXRoIGQ9Ik01NS41LDE0LjI1IEw0MTguNSwxNC4yNSBMNDE4LjUsMjE0LjUgTDU1LjUsMjE0LjUgWiAiIC8+DQogICAgICAgPC9jbGlwUGF0aD4NCiAgICAgIDwvZGVmcz4NCiAgICAgIDxnIGNsaXAtcGF0aD0idXJsKCNDTElQMCkiPg0KICAgICAgIDxwYXRoIGQ9Ik04MS42NzM0MDg1MDgsNTMuNzczMzQ5NzYyIEwxMDQuODkxMTI4NTQsNTMuNzczMzQ5NzYyIEwxMDQuODkxMTI4NTQsMjEzLjc1IEw4MS42NzM0MDg1MDgsMjEzLjc1IFogIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMCIgZmlsbD0iIzQ0NzJDNCIgZmlsbC1vcGFjaXR5PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiIC8+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGc+DQogICAgICA8ZGVmcz4NCiAgICAgICA8Y2xpcFBhdGggaWQ9IkNMSVAxIj4NCiAgICAgICAgPHBhdGggZD0iTTU1LjUsMTQuMjUgTDQxOC41LDE0LjI1IEw0MTguNSwyMTQuNSBMNTUuNSwyMTQuNSBaICIgLz4NCiAgICAgICA8L2NsaXBQYXRoPg0KICAgICAgPC9kZWZzPg0KICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI0NMSVAxKSI+DQogICAgICAgPHBhdGggZD0iTTIwMi4xNzM0MDA4NzksNDYuODYxMTc1NTM3IEwyMjUuMzkxMTEzMjgxLDQ2Ljg2MTE3NTUzNyBMMjI1LjM5MTExMzI4MSwyMTMuNzUgTDIwMi4xNzM0MDA4NzksMjEzLjc1IFogIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMCIgZmlsbD0iIzQ0NzJDNCIgZmlsbC1vcGFjaXR5PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiIC8+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGc+DQogICAgICA8ZGVmcz4NCiAgICAgICA8Y2xpcFBhdGggaWQ9IkNMSVAyIj4NCiAgICAgICAgPHBhdGggZD0iTTU1LjUsMTQuMjUgTDQxOC41LDE0LjI1IEw0MTguNSwyMTQuNSBMNTUuNSwyMTQuNSBaICIgLz4NCiAgICAgICA8L2NsaXBQYXRoPg0KICAgICAgPC9kZWZzPg0KICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI0NMSVAyKSI+DQogICAgICAgPHBhdGggZD0iTTMyMi42NzM0MzEzOTYsMzUuNzU4MzM1MTE0IEwzNDUuODkxMTEzMjgxLDM1Ljc1ODMzNTExNCBMMzQ1Ljg5MTExMzI4MSwyMTMuNzUgTDMyMi42NzM0MzEzOTYsMjEzLjc1IFogIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMCIgZmlsbD0iIzQ0NzJDNCIgZmlsbC1vcGFjaXR5PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiIC8+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGc+DQogICAgICA8ZGVmcz4NCiAgICAgICA8Y2xpcFBhdGggaWQ9IkNMSVAzIj4NCiAgICAgICAgPHBhdGggZD0iTTU1LjUsMTQuMjUgTDQxOC41LDE0LjI1IEw0MTguNSwyMTQuNSBMNTUuNSwyMTQuNSBaICIgLz4NCiAgICAgICA8L2NsaXBQYXRoPg0KICAgICAgPC9kZWZzPg0KICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI0NMSVAzKSI+DQogICAgICAgPHBhdGggZD0iTTEwNC44OTExNDM3OTksMTE4LjcwOTIxMzI1NyBMMTI4LjEwODg1NjIwMSwxMTguNzA5MjEzMjU3IEwxMjguMTA4ODU2MjAxLDIxMy43NSBMMTA0Ljg5MTE0Mzc5OSwyMTMuNzUgWiAiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIwIiBmaWxsPSIjRUQ3RDMxIiBmaWxsLW9wYWNpdHk9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSIgLz4NCiAgICAgIDwvZz4NCiAgICAgPC9nPg0KICAgICA8Zz4NCiAgICAgIDxkZWZzPg0KICAgICAgIDxjbGlwUGF0aCBpZD0iQ0xJUDQiPg0KICAgICAgICA8cGF0aCBkPSJNNTUuNSwxNC4yNSBMNDE4LjUsMTQuMjUgTDQxOC41LDIxNC41IEw1NS41LDIxNC41IFogIiAvPg0KICAgICAgIDwvY2xpcFBhdGg+DQogICAgICA8L2RlZnM+DQogICAgICA8ZyBjbGlwLXBhdGg9InVybCgjQ0xJUDQpIj4NCiAgICAgICA8cGF0aCBkPSJNMjI1LjM5MTE0Mzc5OSwxMTMuMzc0MzI4NjEzIEwyNDguNjA4ODQwOTQyLDExMy4zNzQzMjg2MTMgTDI0OC42MDg4NDA5NDIsMjEzLjc1IEwyMjUuMzkxMTQzNzk5LDIxMy43NSBaICIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjAiIGZpbGw9IiNFRDdEMzEiIGZpbGwtb3BhY2l0eT0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIiAvPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnPg0KICAgICAgPGRlZnM+DQogICAgICAgPGNsaXBQYXRoIGlkPSJDTElQNSI+DQogICAgICAgIDxwYXRoIGQ9Ik01NS41LDE0LjI1IEw0MTguNSwxNC4yNSBMNDE4LjUsMjE0LjUgTDU1LjUsMjE0LjUgWiAiIC8+DQogICAgICAgPC9jbGlwUGF0aD4NCiAgICAgIDwvZGVmcz4NCiAgICAgIDxnIGNsaXAtcGF0aD0idXJsKCNDTElQNSkiPg0KICAgICAgIDxwYXRoIGQ9Ik0zNDUuODkxMTQzNzk5LDEwNS45ODMzMzc0MDIgTDM2OS4xMDg4NTYyMDEsMTA1Ljk4MzMzNzQwMiBMMzY5LjEwODg1NjIwMSwyMTMuNzUgTDM0NS44OTExNDM3OTksMjEzLjc1IFogIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMCIgZmlsbD0iI0VEN0QzMSIgZmlsbC1vcGFjaXR5PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiIC8+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGc+DQogICAgICA8ZGVmcz4NCiAgICAgICA8Y2xpcFBhdGggaWQ9IkNMSVA2Ij4NCiAgICAgICAgPHBhdGggZD0iTTU1LjUsMTQuMjUgTDQxOC41LDE0LjI1IEw0MTguNSwyMTQuNSBMNTUuNSwyMTQuNSBaICIgLz4NCiAgICAgICA8L2NsaXBQYXRoPg0KICAgICAgPC9kZWZzPg0KICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI0NMSVA2KSI+DQogICAgICAgPHBhdGggZD0iTTEyOC4xMDg4NTYyMDEsMTU3LjgxNDM2MTU3MiBMMTUxLjMyNjU2ODYwNCwxNTcuODE0MzYxNTcyIEwxNTEuMzI2NTY4NjA0LDIxMy43NDk5Njk0ODIgTDEyOC4xMDg4NTYyMDEsMjEzLjc0OTk2OTQ4MiBaICIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjAiIGZpbGw9IiNBNUE1QTUiIGZpbGwtb3BhY2l0eT0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIiAvPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnPg0KICAgICAgPGRlZnM+DQogICAgICAgPGNsaXBQYXRoIGlkPSJDTElQNyI+DQogICAgICAgIDxwYXRoIGQ9Ik01NS41LDE0LjI1IEw0MTguNSwxNC4yNSBMNDE4LjUsMjE0LjUgTDU1LjUsMjE0LjUgWiAiIC8+DQogICAgICAgPC9jbGlwUGF0aD4NCiAgICAgIDwvZGVmcz4NCiAgICAgIDxnIGNsaXAtcGF0aD0idXJsKCNDTElQNykiPg0KICAgICAgIDxwYXRoIGQ9Ik0yNDguNjA4ODU2MjAxLDE1NS40MTI5MDI4MzIgTDI3MS44MjY1Njg2MDQsMTU1LjQxMjkwMjgzMiBMMjcxLjgyNjU2ODYwNCwyMTMuNzUgTDI0OC42MDg4NTYyMDEsMjEzLjc1IFogIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMCIgZmlsbD0iI0E1QTVBNSIgZmlsbC1vcGFjaXR5PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiIC8+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGc+DQogICAgICA8ZGVmcz4NCiAgICAgICA8Y2xpcFBhdGggaWQ9IkNMSVA4Ij4NCiAgICAgICAgPHBhdGggZD0iTTU1LjUsMTQuMjUgTDQxOC41LDE0LjI1IEw0MTguNSwyMTQuNSBMNTUuNSwyMTQuNSBaICIgLz4NCiAgICAgICA8L2NsaXBQYXRoPg0KICAgICAgPC9kZWZzPg0KICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI0NMSVA4KSI+DQogICAgICAgPHBhdGggZD0iTTM2OS4xMDg4ODY3MTksMTUzLjI3MzU5MDA4OCBMMzkyLjMyNjU5OTEyMSwxNTMuMjczNTkwMDg4IEwzOTIuMzI2NTk5MTIxLDIxMy43NDk5Njk0ODIgTDM2OS4xMDg4ODY3MTksMjEzLjc0OTk2OTQ4MiBaICIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjAiIGZpbGw9IiNBNUE1QTUiIGZpbGwtb3BhY2l0eT0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIiAvPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxwYXRoIGQ9Ik01Ni4yNSwyMTMuNzUgTDQxNy43NSwyMTMuNzUgIiBzdHJva2U9IiNEOUQ5RDkiIHN0cm9rZS1vcGFjaXR5PSIxIiBzdHJva2Utd2lkdGg9IjAuNzUiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBmaWxsPSJub25lIiB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiIC8+DQogICAgIDxnPg0KICAgICAgPGRlZnM+DQogICAgICAgPGNsaXBQYXRoIGlkPSJDTElQOSI+DQogICAgICAgIDxwYXRoIGQ9Ik01Ni4yNSwxNSBMNDE3Ljc1LDE1IEw0MTcuNzUsMjEzLjc1IEw1Ni4yNSwyMTMuNzUgWiAiIC8+DQogICAgICAgPC9jbGlwUGF0aD4NCiAgICAgIDwvZGVmcz4NCiAgICAgIDxnIGNsaXAtcGF0aD0idXJsKCNDTElQOSkiPg0KICAgICAgIDxwYXRoIGQ9Ik0xMTYuNTAwMDA3NjI5LDQ1LjA3MDQwMDIzOCBMMjM3LDQyLjk4MDQ5MTYzOCBMMzU3LjUsNDEuODQyODc2NDM0ICIgc3Ryb2tlPSIjRkZDMDAwIiBzdHJva2Utb3BhY2l0eT0iMSIgc3Ryb2tlLXdpZHRoPSIyLjI1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSIgLz4NCiAgICAgIDwvZz4NCiAgICAgPC9nPg0KICAgICA8Zz4NCiAgICAgIDxkZWZzPg0KICAgICAgIDxjbGlwUGF0aCBpZD0iQ0xJUDEwIj4NCiAgICAgICAgPHBhdGggZD0iTTU2LjI1LDE1IEw0MTcuNzUsMTUgTDQxNy43NSwyMTMuNzUgTDU2LjI1LDIxMy43NSBaICIgLz4NCiAgICAgICA8L2NsaXBQYXRoPg0KICAgICAgPC9kZWZzPg0KICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI0NMSVAxMCkiPg0KICAgICAgIDxwYXRoIGQ9Ik0xMTYuNTAwMDA3NjI5LDExNC40NzQ3NDY3MDQgTDIzNywxMTQuNTAwODU0NDkyIEwzNTcuNSwxMTcuMjc5Mjk2ODc1ICIgc3Ryb2tlPSIjNUI5QkQ1IiBzdHJva2Utb3BhY2l0eT0iMSIgc3Ryb2tlLXdpZHRoPSIyLjI1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSIgLz4NCiAgICAgIDwvZz4NCiAgICAgPC9nPg0KICAgICA8ZyAvPg0KICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiPg0KICAgICAgPGc+DQogICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwxMDQuMzM1OTI5ODcsMjM1LjY0ODQzNzUpIj4NCiAgICAgICAgPHRleHQgeD0iMCIgeT0iLTMiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjEyIiBmaWxsPSIjNTk1OTU5Ij4yMDE4PC90ZXh0Pg0KICAgICAgIDwvZz4NCiAgICAgIDwvZz4NCiAgICAgPC9nPg0KICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiPg0KICAgICAgPGc+DQogICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwyMjQuODM1OTM3NSwyMzUuNjQ4NDM3NSkiPg0KICAgICAgICA8dGV4dCB4PSIwIiB5PSItMyIgZm9udC1mYW1pbHk9IkNhbGlicmkiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiM1OTU5NTkiPjIwMTk8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICA8Zz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDM0NS4zMzU5Mzc1LDIzNS42NDg0Mzc1KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0zIiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMiIgZmlsbD0iIzU5NTk1OSI+MjAyMDwvdGV4dD4NCiAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICAgIDxnPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMzYuMDk5NjA5MzgsMjIwLjQ2Mzg2NzE5KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+JDA8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICA8Zz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDE2LjYyOTM5NDUzLDE5OC43MTM4NjcxOSkiPg0KICAgICAgICA8dGV4dCB4PSIwIiB5PSItMi43NSIgZm9udC1mYW1pbHk9IkNhbGlicmkiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9IiM1OTU5NTkiPiQ1LDAwMDwvdGV4dD4NCiAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICAgIDxnPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTEuMDU0MTk5MjIsMTc2LjIxMzg2NzE5KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+JDEwLDAwMDwvdGV4dD4NCiAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICAgIDxnPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTEuMDU0MTk5MjIsMTU0LjQ2Mzg2NzE5KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+JDE1LDAwMDwvdGV4dD4NCiAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICAgIDxnPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTEuMDU0MTk5MjIsMTMxLjk2Mzg2NzE5KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+JDIwLDAwMDwvdGV4dD4NCiAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICAgIDxnPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTEuMDU0MTk5MjIsMTEwLjIxMzg2NzE5KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+JDI1LDAwMDwvdGV4dD4NCiAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICAgIDxnPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTEuMDU0MTk5MjIsODcuNzEzODY3MTkpIj4NCiAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij4kMzAsMDAwPC90ZXh0Pg0KICAgICAgIDwvZz4NCiAgICAgIDwvZz4NCiAgICAgPC9nPg0KICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiPg0KICAgICAgPGc+DQogICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwxMS4wNTQxOTkyMiw2NS45NjM4NjcxOSkiPg0KICAgICAgICA8dGV4dCB4PSIwIiB5PSItMi43NSIgZm9udC1mYW1pbHk9IkNhbGlicmkiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9IiM1OTU5NTkiPiQzNSwwMDA8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICA8Zz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDExLjA1NDE5OTIyLDQzLjQ2Mzg2NzE5KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+JDQwLDAwMDwvdGV4dD4NCiAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICAgIDxnPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMTEuMDU0MTk5MjIsMjEuNzEzODY3MTkpIj4NCiAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij4kNDUsMDAwPC90ZXh0Pg0KICAgICAgIDwvZz4NCiAgICAgIDwvZz4NCiAgICAgPC9nPg0KICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiPg0KICAgICAgPGc+DQogICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSw0MjYuNzUsMjIwLjQ2Mzg2NzE5KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+MCU8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICA8Zz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDQyNi43NSwxOTEuOTYzODY3MTkpIj4NCiAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij4xMCU8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICA8Zz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDQyNi43NSwxNjMuNDYzODY3MTkpIj4NCiAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij4yMCU8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICA8Zz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDQyNi43NSwxMzQuOTYzODY3MTkpIj4NCiAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij4zMCU8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICA8Zz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDQyNi43NSwxMDcuMjEzODY3MTkpIj4NCiAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij40MCU8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICA8Zz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDQyNi43NSw3OC43MTM4NjcxOSkiPg0KICAgICAgICA8dGV4dCB4PSIwIiB5PSItMi43NSIgZm9udC1mYW1pbHk9IkNhbGlicmkiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9IiM1OTU5NTkiPjUwJTwvdGV4dD4NCiAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgIDwvZz4NCiAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIj4NCiAgICAgIDxnPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsNDI2Ljc1LDUwLjIxMzg2NzE5KSI+DQogICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+NjAlPC90ZXh0Pg0KICAgICAgIDwvZz4NCiAgICAgIDwvZz4NCiAgICAgPC9nPg0KICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiPg0KICAgICAgPGc+DQogICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSw0MjYuNzUsMjEuNzEzODY3MTkpIj4NCiAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij43MCU8L3RleHQ+DQogICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgICA8L2c+DQogICAgIDxnPg0KICAgICAgPGRlZnM+DQogICAgICAgPGNsaXBQYXRoIGlkPSJDTElQMTEiPg0KICAgICAgICA8cGF0aCBkPSJNMjEuNzUsMjQ0LjUgTDQyOC4yNSwyNDQuNSBMNDI4LjI1LDMwMC43NSBMMjEuNzUsMzAwLjc1IFogIiAvPg0KICAgICAgIDwvY2xpcFBhdGg+DQogICAgICA8L2RlZnM+DQogICAgICA8ZyBjbGlwLXBhdGg9InVybCgjQ0xJUDExKSI+DQogICAgICAgPHBhdGggZD0iTTUzLjI1LDI1MC41IEw3My41LDI1MC41IEw3My41LDI1Ni41IEw1My4yNSwyNTYuNSBaICIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjAiIGZpbGw9IiM0NDcyQzQiIGZpbGwtb3BhY2l0eT0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIiAvPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICAgIDxnPg0KICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSw3Ni4xMjUsMjYwLjIxMzg2NzE5KSI+DQogICAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij5SZXZlbnVlPC90ZXh0Pg0KICAgICAgICAgPC9nPg0KICAgICAgICA8L2c+DQogICAgICAgPC9nPg0KICAgICAgIDxwYXRoIGQ9Ik0yNTUsMjUwLjUgTDI3NS4yNSwyNTAuNSBMMjc1LjI1LDI1Ni41IEwyNTUsMjU2LjUgWiAiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIwIiBmaWxsPSIjRUQ3RDMxIiBmaWxsLW9wYWNpdHk9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSIgLz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiPg0KICAgICAgICA8Zz4NCiAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMjc3Ljg3NSwyNjAuMjEzODY3MTkpIj4NCiAgICAgICAgICA8dGV4dCB4PSIwIiB5PSItMi43NSIgZm9udC1mYW1pbHk9IkNhbGlicmkiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9IiM1OTU5NTkiPkdyb3NzPC90ZXh0Pg0KICAgICAgICAgIDx0ZXh0IHg9IjI1LjE3OTY4NzUiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+IDwvdGV4dD4NCiAgICAgICAgICA8dGV4dCB4PSIyNy42NjY1MDM5MSIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij5Qcm9maXQ8L3RleHQ+DQogICAgICAgICA8L2c+DQogICAgICAgIDwvZz4NCiAgICAgICA8L2c+DQogICAgICAgPHBhdGggZD0iTTUzLjI1LDI2OS4yNSBMNzMuNSwyNjkuMjUgTDczLjUsMjc1LjI1IEw1My4yNSwyNzUuMjUgWiAiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIwIiBmaWxsPSIjQTVBNUE1IiBmaWxsLW9wYWNpdHk9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSIgLz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiPg0KICAgICAgICA8Zz4NCiAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsNzYuMTI1LDI3OC45NjM4NjcxOSkiPg0KICAgICAgICAgIDx0ZXh0IHg9IjAiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+QWRqdXN0ZWQ8L3RleHQ+DQogICAgICAgICAgPHRleHQgeD0iMzkuNzk0NDMzNTkiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+IDwvdGV4dD4NCiAgICAgICAgICA8dGV4dCB4PSI0Mi4yODEyNSIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij5FQklUREE8L3RleHQ+DQogICAgICAgICA8L2c+DQogICAgICAgIDwvZz4NCiAgICAgICA8L2c+DQogICAgICAgPHBhdGggZD0iTTI1NC42MjUsMjcyLjI4NjEzMjgxMyBMMjc0Ljg3NSwyNzIuMjg2MTMyODEzICIgc3Ryb2tlPSIjRkZDMDAwIiBzdHJva2Utb3BhY2l0eT0iMSIgc3Ryb2tlLXdpZHRoPSIyLjI1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSIgLz4NCiAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsMCkiPg0KICAgICAgICA8Zz4NCiAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMjc3Ljg3NSwyNzguOTYzODY3MTkpIj4NCiAgICAgICAgICA8dGV4dCB4PSIwIiB5PSItMi43NSIgZm9udC1mYW1pbHk9IkNhbGlicmkiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9IiM1OTU5NTkiPkdyb3NzPC90ZXh0Pg0KICAgICAgICAgIDx0ZXh0IHg9IjI1LjE3OTY4NzUiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+IDwvdGV4dD4NCiAgICAgICAgICA8dGV4dCB4PSIyNy42NjY1MDM5MSIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij5NYXJnaW48L3RleHQ+DQogICAgICAgICAgPHRleHQgeD0iNTkuNjU2NzM4MjgiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+IDwvdGV4dD4NCiAgICAgICAgICA8dGV4dCB4PSI2Mi4xNDM1NTQ2OSIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij4lPC90ZXh0Pg0KICAgICAgICAgPC9nPg0KICAgICAgICA8L2c+DQogICAgICAgPC9nPg0KICAgICAgIDxwYXRoIGQ9Ik01Mi44NzUsMjkxLjAzNjEzMjgxMyBMNzMuMTI1LDI5MS4wMzYxMzI4MTMgIiBzdHJva2U9IiM1QjlCRDUiIHN0cm9rZS1vcGFjaXR5PSIxIiBzdHJva2Utd2lkdGg9IjIuMjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZmlsbD0ibm9uZSIgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwwLDApIiAvPg0KICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSI+DQogICAgICAgIDxnPg0KICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSw3Ni4xMjUsMjk3LjcxMzg2NzE5KSI+DQogICAgICAgICAgPHRleHQgeD0iMCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij5BZGp1c3RlZDwvdGV4dD4NCiAgICAgICAgICA8dGV4dCB4PSIzOS43OTQ0MzM1OSIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij4gPC90ZXh0Pg0KICAgICAgICAgIDx0ZXh0IHg9IjQyLjI4MTI1IiB5PSItMi43NSIgZm9udC1mYW1pbHk9IkNhbGlicmkiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9IiM1OTU5NTkiPkVCSVREQTwvdGV4dD4NCiAgICAgICAgICA8dGV4dCB4PSI3NC44OTk5MDIzNCIgeT0iLTIuNzUiIGZvbnQtZmFtaWx5PSJDYWxpYnJpIiBmb250LXNpemU9IjExIiBmaWxsPSIjNTk1OTU5Ij4gPC90ZXh0Pg0KICAgICAgICAgIDx0ZXh0IHg9Ijc3LjM4NjcxODc1IiB5PSItMi43NSIgZm9udC1mYW1pbHk9IkNhbGlicmkiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9IiM1OTU5NTkiPk1hcmdpbjwvdGV4dD4NCiAgICAgICAgICA8dGV4dCB4PSIxMDkuMzc2OTUzMTMiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+IDwvdGV4dD4NCiAgICAgICAgICA8dGV4dCB4PSIxMTEuODYzNzY5NTMiIHk9Ii0yLjc1IiBmb250LWZhbWlseT0iQ2FsaWJyaSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzU5NTk1OSI+JTwvdGV4dD4NCiAgICAgICAgIDwvZz4NCiAgICAgICAgPC9nPg0KICAgICAgIDwvZz4NCiAgICAgIDwvZz4NCiAgICAgPC9nPg0KICAgICA8cGF0aCBkPSJNMCwwIEw0NTYuNzUsMCBMNDU2Ljc1LDMwNi43NSBMMCwzMDYuNzUgWiAiIHN0cm9rZT0iI0Q5RDlEOSIgc3Ryb2tlLW9wYWNpdHk9IjEiIHN0cm9rZS13aWR0aD0iMC43NSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMCwwKSIgLz4NCiAgICA8L2c+DQogICA8L2c+DQogIDwvZz4NCiA8L2c+DQogPGRlZnMgLz4NCjwvc3ZnPg0K