email-templates-library/src/main/java/org/gcube/portal/mailing/templates/TemplatedJoinMeInvite.java

71 lines
28 KiB
Java

package org.gcube.portal.mailing.templates;
import java.util.Base64;
import org.gcube.common.portal.mailing.templates.AbstractTemplate;
import org.gcube.common.portal.mailing.templates.Template;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
/**
*
* @author Massimiliano Assante, CNR-ISTI
*
*/
public class TemplatedJoinMeInvite extends AbstractTemplate implements Template {
private final String encodedTemplateHTML = "PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+DQoJPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+DQoJCTx0aXRsZT5UaXRsZTwvdGl0bGU+DQo8L2hlYWQ+DQo8Ym9keQ0KCXN0eWxlPSItbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgTWFyZ2luOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuMzsgbWFyZ2luOiAwOyBtaW4td2lkdGg6IDEwMCU7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQiPg0KCTxzdHlsZT4NCkBtZWRpYSBvbmx5IHNjcmVlbiB7DQoJaHRtbCB7DQoJCW1pbi1oZWlnaHQ6IDEwMCU7DQoJCWJhY2tncm91bmQ6ICNmM2YzZjMNCgl9DQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCkgew0KCS5zbWFsbC1mbG9hdC1jZW50ZXIgew0KCQltYXJnaW46IDAgYXV0byAhaW1wb3J0YW50Ow0KCQlmbG9hdDogbm9uZSAhaW1wb3J0YW50Ow0KCQl0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudA0KCX0NCgkuc21hbGwtdGV4dC1jZW50ZXIgew0KCQl0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudA0KCX0NCgkuc21hbGwtdGV4dC1sZWZ0IHsNCgkJdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50DQoJfQ0KCS5zbWFsbC10ZXh0LXJpZ2h0IHsNCgkJdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudA0KCX0NCn0NCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU5NnB4KSB7DQoJLmhpZGUtZm9yLWxhcmdlIHsNCgkJZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsNCgkJd2lkdGg6IGF1dG8gIWltcG9ydGFudDsNCgkJb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsNCgkJbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50Ow0KCQlmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDsNCgkJbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudA0KCX0NCn0NCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU5NnB4KSB7DQoJdGFibGUuYm9keSB0YWJsZS5jb250YWluZXIgLmhpZGUtZm9yLWxhcmdlLCB0YWJsZS5ib2R5IHRhYmxlLmNvbnRhaW5lciAucm93LmhpZGUtZm9yLWxhcmdlDQoJCXsNCgkJZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsNCgkJd2lkdGg6IDEwMCUgIWltcG9ydGFudA0KCX0NCn0NCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU5NnB4KSB7DQoJdGFibGUuYm9keSB0YWJsZS5jb250YWluZXIgLmNhbGxvdXQtaW5uZXIuaGlkZS1mb3ItbGFyZ2Ugew0KCQlkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiAxMDAlICFpbXBvcnRhbnQNCgl9DQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCkgew0KCXRhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5zaG93LWZvci1sYXJnZSB7DQoJCWRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsNCgkJd2lkdGg6IDA7DQoJCW1zby1oaWRlOiBhbGw7DQoJCW92ZXJmbG93OiBoaWRkZW4NCgl9DQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCkgew0KCXRhYmxlLmJvZHkgaW1nIHsNCgkJd2lkdGg6IGF1dG87DQoJCWhlaWdodDogYXV0bw0KCX0NCgl0YWJsZS5ib2R5IGNlbnRlciB7DQoJCW1pbi13aWR0aDogMCAhaW1wb3J0YW50DQoJfQ0KCXRhYmxlLmJvZHkgLmNvbnRhaW5lciB7DQoJCXdpZHRoOiA5NSUgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5ib2R5IC5jb2x1bW4sIHRhYmxlLmJvZHkgLmNvbHVtbnMgew0KCQloZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsNCgkJLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KCQktd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7DQoJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7DQoJCXBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50Ow0KCQlwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW4sIHRhYmxlLmJvZHkgLmNvbHVtbiAuY29sdW1ucywgdGFibGUuYm9keSAuY29sdW1ucyAuY29sdW1uLA0KCQl0YWJsZS5ib2R5IC5jb2x1bW5zIC5jb2x1bW5zIHsNCgkJcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7DQoJCXBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5ib2R5IC5jb2xsYXBzZSAuY29sdW1uLCB0YWJsZS5ib2R5IC5jb2xsYXBzZSAuY29sdW1ucyB7DQoJCXBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50Ow0KCQlwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQNCgl9DQoJdGQuc21hbGwtMSwgdGguc21hbGwtMSB7DQoJCWRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50Ow0KCQl3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC0yLCB0aC5zbWFsbC0yIHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC0zLCB0aC5zbWFsbC0zIHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiAyNSUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC00LCB0aC5zbWFsbC00IHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC01LCB0aC5zbWFsbC01IHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC02LCB0aC5zbWFsbC02IHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiA1MCUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC03LCB0aC5zbWFsbC03IHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC04LCB0aC5zbWFsbC04IHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC05LCB0aC5zbWFsbC05IHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiA3NSUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC0xMCwgdGguc21hbGwtMTAgew0KCQlkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsNCgkJd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50DQoJfQ0KCXRkLnNtYWxsLTExLCB0aC5zbWFsbC0xMSB7DQoJCWRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50Ow0KCQl3aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQNCgl9DQoJdGQuc21hbGwtMTIsIHRoLnNtYWxsLTEyIHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiAxMDAlICFpbXBvcnRhbnQNCgl9DQoJLmNvbHVtbiB0ZC5zbWFsbC0xMiwgLmNvbHVtbiB0aC5zbWFsbC0xMiwgLmNvbHVtbnMgdGQuc21hbGwtMTIsIC5jb2x1bW5zIHRoLnNtYWxsLTEyDQoJCXsNCgkJZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsNCgkJd2lkdGg6IDEwMCUgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5ib2R5IHRkLnNtYWxsLW9mZnNldC0xLCB0YWJsZS5ib2R5IHRoLnNtYWxsLW9mZnNldC0xIHsNCgkJbWFyZ2luLWxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7DQoJCU1hcmdpbi1sZWZ0OiA4LjMzMzMzJSAhaW1wb3J0YW50DQoJfQ0KCXRhYmxlLmJvZHkgdGQuc21hbGwtb2Zmc2V0LTIsIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTIgew0KCQltYXJnaW4tbGVmdDogMTYuNjY2NjclICFpbXBvcnRhbnQ7DQoJCU1hcmdpbi1sZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5ib2R5IHRkLnNtYWxsLW9mZnNldC0zLCB0YWJsZS5ib2R5IHRoLnNtYWxsLW9mZnNldC0zIHsNCgkJbWFyZ2luLWxlZnQ6IDI1JSAhaW1wb3J0YW50Ow0KCQlNYXJnaW4tbGVmdDogMjUlICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSB0ZC5zbWFsbC1vZmZzZXQtNCwgdGFibGUuYm9keSB0aC5zbWFsbC1vZmZzZXQtNCB7DQoJCW1hcmdpbi1sZWZ0OiAzMy4zMzMzMyUgIWltcG9ydGFudDsNCgkJTWFyZ2luLWxlZnQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50DQoJfQ0KCXRhYmxlLmJvZHkgdGQuc21hbGwtb2Zmc2V0LTUsIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTUgew0KCQltYXJnaW4tbGVmdDogNDEuNjY2NjclICFpbXBvcnRhbnQ7DQoJCU1hcmdpbi1sZWZ0OiA0MS42NjY2NyUgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5ib2R5IHRkLnNtYWxsLW9mZnNldC02LCB0YWJsZS5ib2R5IHRoLnNtYWxsLW9mZnNldC02IHsNCgkJbWFyZ2luLWxlZnQ6IDUwJSAhaW1wb3J0YW50Ow0KCQlNYXJnaW4tbGVmdDogNTAlICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSB0ZC5zbWFsbC1vZmZzZXQtNywgdGFibGUuYm9keSB0aC5zbWFsbC1vZmZzZXQtNyB7DQoJCW1hcmdpbi1sZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsNCgkJTWFyZ2luLWxlZnQ6IDU4LjMzMzMzJSAhaW1wb3J0YW50DQoJfQ0KCXRhYmxlLmJvZHkgdGQuc21hbGwtb2Zmc2V0LTgsIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTggew0KCQltYXJnaW4tbGVmdDogNjYuNjY2NjclICFpbXBvcnRhbnQ7DQoJCU1hcmdpbi1sZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5ib2R5IHRkLnNtYWxsLW9mZnNldC05LCB0YWJsZS5ib2R5IHRoLnNtYWxsLW9mZnNldC05IHsNCgkJbWFyZ2luLWxlZnQ6IDc1JSAhaW1wb3J0YW50Ow0KCQlNYXJnaW4tbGVmdDogNzUlICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSB0ZC5zbWFsbC1vZmZzZXQtMTAsIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTEwIHsNCgkJbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50Ow0KCQlNYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSB0ZC5zbWFsbC1vZmZzZXQtMTEsIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTExIHsNCgkJbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50Ow0KCQlNYXJnaW4tbGVmdDogOTEuNjY2NjclICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSB0YWJsZS5jb2x1bW5zIHRkLmV4cGFuZGVyLCB0YWJsZS5ib2R5IHRhYmxlLmNvbHVtbnMgdGguZXhwYW5kZXINCgkJew0KCQlkaXNwbGF5OiBub25lICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSAucmlnaHQtdGV4dC1wYWQsIHRhYmxlLmJvZHkgLnRleHQtcGFkLXJpZ2h0IHsNCgkJcGFkZGluZy1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSAubGVmdC10ZXh0LXBhZCwgdGFibGUuYm9keSAudGV4dC1wYWQtbGVmdCB7DQoJCXBhZGRpbmctcmlnaHQ6IDEwcHggIWltcG9ydGFudA0KCX0NCgl0YWJsZS5tZW51IHsNCgkJd2lkdGg6IDEwMCUgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5tZW51IHRkLCB0YWJsZS5tZW51IHRoIHsNCgkJd2lkdGg6IGF1dG8gIWltcG9ydGFudDsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQNCgl9DQoJdGFibGUubWVudS5zbWFsbC12ZXJ0aWNhbCB0ZCwgdGFibGUubWVudS5zbWFsbC12ZXJ0aWNhbCB0aCwgdGFibGUubWVudS52ZXJ0aWNhbCB0ZCwNCgkJdGFibGUubWVudS52ZXJ0aWNhbCB0aCB7DQoJCWRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQNCgl9DQoJdGFibGUubWVudVthbGlnbj1jZW50ZXJdIHsNCgkJd2lkdGg6IGF1dG8gIWltcG9ydGFudA0KCX0NCgl0YWJsZS5idXR0b24uc21hbGwtZXhwYW5kLCB0YWJsZS5idXR0b24uc21hbGwtZXhwYW5kZWQgew0KCQl3aWR0aDogMTAwJSAhaW1wb3J0YW50DQoJfQ0KCXRhYmxlLmJ1dHRvbi5zbWFsbC1leHBhbmQgdGFibGUsIHRhYmxlLmJ1dHRvbi5zbWFsbC1leHBhbmRlZCB0YWJsZSB7DQoJCXdpZHRoOiAxMDAlDQoJfQ0KCXRhYmxlLmJ1dHRvbi5zbWFsbC1leHBhbmQgdGFibGUgYSwgdGFibGUuYnV0dG9uLnNtYWxsLWV4cGFuZGVkIHRhYmxlIGEgew0KCQl0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsNCgkJd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCgkJcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7DQoJCXBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5idXR0b24uc21hbGwtZXhwYW5kIGNlbnRlciwgdGFibGUuYnV0dG9uLnNtYWxsLWV4cGFuZGVkIGNlbnRlciB7DQoJCW1pbi13aWR0aDogMA0KCX0NCn0NCjwvc3R5bGU+DQoJPHRhYmxlIGNsYXNzPSJib2R5IiBkYXRhLW1hZGUtd2l0aC1mb3VuZGF0aW9uPSIiDQoJCXN0eWxlPSJNYXJnaW46IDA7IGJhY2tncm91bmQ6ICNmM2YzZjM7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwOyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDQwMDsgaGVpZ2h0OiAxMDAlOyBsaW5lLWhlaWdodDogMS4zOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAxMDAlIj4NCgkJPHRib2R5Pg0KCQkJPHRyIHN0eWxlPSJwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wIj4NCgkJCQk8dGQgY2xhc3M9ImZsb2F0LWNlbnRlciIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiDQoJCQkJCXN0eWxlPSItbW96LWh5cGhlbnM6IGF1dG87IC13ZWJraXQtaHlwaGVuczogYXV0bzsgTWFyZ2luOiAwIGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDsgY29sb3I6ICMwYTBhMGE7IGZsb2F0OiBub25lOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNDAwOyBoeXBoZW5zOiBhdXRvOyBsaW5lLWhlaWdodDogMS4zOyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQiPjxjZW50ZXINCgkJCQkJCWRhdGEtcGFyc2VkPSIiIHN0eWxlPSJtaW4td2lkdGg6NTgwcHg7d2lkdGg6MTAwJSI+DQoJCQkJCTx0YWJsZSBhbGlnbj0iY2VudGVyIiBjbGFzcz0id3JhcHBlciBoZWFkZXIgZmxvYXQtY2VudGVyIg0KCQkJCQkJc3R5bGU9Ik1hcmdpbjogMCBhdXRvOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgZmxvYXQ6IG5vbmU7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAxMDAlIj4NCgkJCQkJCTx0Ym9keT4NCgkJCQkJCQk8dHIgc3R5bGU9InBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3AiPg0KCQkJCQkJCQk8dGQgY2xhc3M9IndyYXBwZXItaW5uZXIiDQoJCQkJCQkJCQlzdHlsZT0iLW1vei1oeXBoZW5zOiBhdXRvOyAtd2Via2l0LWh5cGhlbnM6IGF1dG87IE1hcmdpbjogMDsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDQwMDsgaHlwaGVuczogYXV0bzsgbGluZS1oZWlnaHQ6IDEuMzsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQiPjx0YWJsZQ0KCQkJCQkJCQkJCWFsaWduPSJjZW50ZXIiIGNsYXNzPSJjb250YWluZXIiDQoJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMCBhdXRvOyBiYWNrZ3JvdW5kOiAjZmVmZWZlOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGluaGVyaXQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiA1ODBweCI+DQoJCQkJCQkJCQkJPHRib2R5Pg0KCQkJCQkJCQkJCQk8dHIgc3R5bGU9InBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3AiPg0KCQkJCQkJCQkJCQkJPHRkDQoJCQkJCQkJCQkJCQkJc3R5bGU9Ii1tb3otaHlwaGVuczogYXV0bzsgLXdlYmtpdC1oeXBoZW5zOiBhdXRvOyBNYXJnaW46IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGh5cGhlbnM6IGF1dG87IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgd29yZC13cmFwOiBicmVhay13b3JkIj48dGFibGUNCgkJCQkJCQkJCQkJCQkJY2xhc3M9InJvdyBjb2xsYXBzZSINCgkJCQkJCQkJCQkJCQkJc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwOyBkaXNwbGF5OiB0YWJsZTsgcGFkZGluZzogMDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTAwJSI+DQoJCQkJCQkJCQkJCQkJCTx0Ym9keT4NCgkJCQkJCQkJCQkJCQkJCTx0cg0KCQkJCQkJCQkJCQkJCQkJCXN0eWxlPSJwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wIj4NCgkJCQkJCQkJCQkJCQkJCQk8dGggY2xhc3M9InNtYWxsLTYgbGFyZ2UtNiBjb2x1bW5zIGZpcnN0Ig0KCQkJCQkJCQkJCQkJCQkJCQlzdHlsZT0iTWFyZ2luOiAwIGF1dG87IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNDAwOyBsaW5lLWhlaWdodDogMS4zOyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMDsgcGFkZGluZy1ib3R0b206IDE2cHg7IHBhZGRpbmctbGVmdDogMDsgcGFkZGluZy1yaWdodDogMDsgdGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDI5OHB4Ij48dGFibGUNCgkJCQkJCQkJCQkJCQkJCQkJCXN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDEwMCUiPg0KCQkJCQkJCQkJCQkJCQkJCQkJPHRib2R5Pg0KCQkJCQkJCQkJCQkJCQkJCQkJCTx0cg0KCQkJCQkJCQkJCQkJCQkJCQkJCQlzdHlsZT0icGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcCI+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTx0aA0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdCI+PGltZw0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJc3JjPSJ7e0dBVEVXQVlfTE9HTzpVUkx9fSINCgkJCQkJCQkJCQkJCQkJCQkJCQkJCXN0eWxlPSItbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyBjbGVhcjogYm90aDsgZGlzcGxheTogYmxvY2s7IG1heC13aWR0aDogMTAwJTsgb3V0bGluZTogMDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB3aWR0aDogMjAwcHgiDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQlhbHQ9Int7R0FURVdBWV9OQU1FfX0iIHRpdGxlPSJ7e0dBVEVXQVlfTkFNRX19Ij48L3RoPg0KCQkJCQkJCQkJCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQkJCQkJCQkJCQk8L3Rib2R5Pg0KCQkJCQkJCQkJCQkJCQkJCQk8L3RhYmxlPjwvdGg+DQoJCQkJCQkJCQkJCQkJCQkJPHRoIGNsYXNzPSJzbWFsbC02IGxhcmdlLTYgY29sdW1ucyBsYXN0Ig0KCQkJCQkJCQkJCQkJCQkJCQlzdHlsZT0iTWFyZ2luOiAwIGF1dG87IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNDAwOyBsaW5lLWhlaWdodDogMS4zOyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMDsgcGFkZGluZy1ib3R0b206IDE2cHg7IHBhZGRpbmctbGVmdDogMDsgcGFkZGluZy1yaWdodDogMDsgdGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDI5OHB4Ij48dGFibGUNCgkJCQkJCQkJCQkJCQkJCQkJCXN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDEwMCUiPg0KCQkJCQkJCQkJCQkJCQkJCQkJPHRib2R5Pg0KCQkJCQkJCQkJCQkJCQkJCQkJCTx0cg0KCQkJCQkJCQkJCQkJCQkJCQkJCQlzdHlsZT0icGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcCI+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCTx0aA0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdCI+PHANCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQljbGFzcz0idGV4dC1yaWdodCINCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQlzdHlsZT0iTWFyZ2luOiAwOyBNYXJnaW4tYm90dG9tOiAxMHB4OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuMzsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiByaWdodCI+PC9wPjwvdGg+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCQkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCQkJCQkJCQkJCTwvdGFibGU+PC90aD4NCgkJCQkJCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCQkJCQkJPC90YWJsZT48L3RkPg0KCQkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCQk8L3RhYmxlPjwvdGQ+DQoJCQkJCQkJPC90cj4NCgkJCQkJCTwvdGJvZHk+DQoJCQkJCTwvdGFibGU+DQoJCQkJCTx0YWJsZSBhbGlnbj0iY2VudGVyIiBjbGFzcz0iY29udGFpbmVyIGJvZHktYm9yZGVyIGZsb2F0LWNlbnRlciINCgkJCQkJCXN0eWxlPSJNYXJnaW46IDAgYXV0bzsgYmFja2dyb3VuZDogI2ZlZmVmZTsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgYm9yZGVyLXNwYWNpbmc6IDA7IGZsb2F0OiBub25lOyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogNTgwcHgiPg0KCQkJCQkJPHRib2R5Pg0KCQkJCQkJCTx0ciBzdHlsZT0icGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcCI+DQoJCQkJCQkJCTx0ZA0KCQkJCQkJCQkJc3R5bGU9Ii1tb3otaHlwaGVuczogYXV0bzsgLXdlYmtpdC1oeXBoZW5zOiBhdXRvOyBNYXJnaW46IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGh5cGhlbnM6IGF1dG87IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgd29yZC13cmFwOiBicmVhay13b3JkIj48dGFibGUNCgkJCQkJCQkJCQljbGFzcz0icm93Ig0KCQkJCQkJCQkJCXN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgZGlzcGxheTogdGFibGU7IHBhZGRpbmc6IDA7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDEwMCUiPg0KCQkJCQkJCQkJCTx0Ym9keT4NCgkJCQkJCQkJCQkJPHRyIHN0eWxlPSJwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wIj4NCgkJCQkJCQkJCQkJCTx0aCBjbGFzcz0ic21hbGwtMTIgbGFyZ2UtMTIgY29sdW1ucyBmaXJzdCBsYXN0Ig0KCQkJCQkJCQkJCQkJCXN0eWxlPSJNYXJnaW46IDAgYXV0bzsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAwOyBwYWRkaW5nLWJvdHRvbTogMTZweDsgcGFkZGluZy1sZWZ0OiAxNnB4OyBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogNTY0cHgiPjxoMQ0KCQkJCQkJCQkJCQkJCQlzdHlsZT0iTWFyZ2luOiAwOyBNYXJnaW4tYm90dG9tOiAxMHB4OyBjb2xvcjogaW5oZXJpdDsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMzRweDsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuMzsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB3b3JkLXdyYXA6IG5vcm1hbCI+SGkNCgkJCQkJCQkJCQkJCQkJe3tJTlZJVEVEX1VTRVJfTkFNRX19LDwvaDE+DQoJCQkJCQkJCQkJCQkJPHAgY2xhc3M9ImxlYWQiDQoJCQkJCQkJCQkJCQkJCXN0eWxlPSJNYXJnaW46IDA7IE1hcmdpbi1ib3R0b206IDEwcHg7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogNDAwOyBsaW5lLWhlaWdodDogMS42OyBtYXJnaW46IDA7IG1hcmdpbi1ib3R0b206IDEwcHg7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQiPnt7SU5WSVRJTkdfVVNFUl9GVUxMTkFNRX19DQoJCQkJCQkJCQkJCQkJCWhhcyBpbnZpdGVkIHlvdSB0byB7e1NFTEVDVEVEX1ZSRV9OQU1FfX0sIHlvdSBjYW4gZmluZCBhDQoJCQkJCQkJCQkJCQkJCWJyaWVmIGRlc2NyaXB0aW9uIGJlbG93OjwvcD4NCgkJCQkJCQkJCQkJCQk8cA0KCQkJCQkJCQkJCQkJCQlzdHlsZT0iTWFyZ2luOiAwOyBNYXJnaW4tYm90dG9tOiAxMHB4OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuMzsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0Ij57e1NFTEVDVEVEX1ZSRV9ERVNDUklQVElPTn19PC9wPg0KCQkJCQkJCQkJCQkJCTxwIGNsYXNzPSJsZWFkIg0KCQkJCQkJCQkJCQkJCQlzdHlsZT0iTWFyZ2luOiAwOyBNYXJnaW4tYm90dG9tOiAxMHB4OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMjBweDsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuNjsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0Ij5JZg0KCQkJCQkJCQkJCQkJCQl5b3Ugd2lzaCB0byBhY2NlcHQgdGhlIGludml0ZSBwbGVhc2UgQ2xpY2sgdGhlIGxpbmsgYmVsb3c6PC9wPg0KCQkJCQkJCQkJCQkJCTxwDQoJCQkJCQkJCQkJCQkJCXN0eWxlPSJNYXJnaW46IDA7IE1hcmdpbi1ib3R0b206IDEwcHg7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNDAwOyBsaW5lLWhlaWdodDogMS4zOyBtYXJnaW46IDA7IG1hcmdpbi1ib3R0b206IDEwcHg7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQiPg0KCQkJCQkJCQkJCQkJCQk8YSBocmVmPSJ7e0FDQ0VQVF9JTlZJVEVfVVJMfX0iDQoJCQkJCQkJCQkJCQkJCQlzdHlsZT0iTWFyZ2luOiAwOyBjb2xvcjogIzIxOTllODsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj57e0FDQ0VQVF9JTlZJVEVfVVJMfX08L2E+DQoJCQkJCQkJCQkJCQkJPC9wPg0KCQkJCQkJCQkJCQkJCTx0YWJsZQ0KCQkJCQkJCQkJCQkJCQlzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgYm9yZGVyLXNwYWNpbmc6IDA7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAxMDAlIj4NCgkJCQkJCQkJCQkJCQkJPHRib2R5Pg0KCQkJCQkJCQkJCQkJCQkJPHRyDQoJCQkJCQkJCQkJCQkJCQkJc3R5bGU9InBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3AiPjwvdHI+DQoJCQkJCQkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCQkJCQkJPC90YWJsZT48L3RoPg0KCQkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJjYWxsb3V0Ig0KCQkJCQkJCQkJCXN0eWxlPSJNYXJnaW4tYm90dG9tOiAxNnB4OyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgbWFyZ2luLWJvdHRvbTogMTZweDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcCI+DQoJCQkJCQkJCQkJPHRib2R5Pg0KCQkJCQkJCQkJCQk8dHIgc3R5bGU9InBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3AiPg0KCQkJCQkJCQkJCQkJPHRoIGNsYXNzPSJjYWxsb3V0LWlubmVyIHdhcm5pbmciDQoJCQkJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMDsgYmFja2dyb3VuZDogI2ZmZjNkOTsgYm9yZGVyOiAxcHggc29saWQgIzk5NjgwMDsgY29sb3I6ICNmZWZlZmU7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMDsgcGFkZGluZzogMTBweDsgdGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDEwMCUiPjxwDQoJCQkJCQkJCQkJCQkJCXN0eWxlPSJNYXJnaW46IDA7IE1hcmdpbi1ib3R0b206IDEwcHg7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNDAwOyBsaW5lLWhlaWdodDogMS4zOyBtYXJnaW46IDA7IG1hcmdpbi1ib3R0b206IDEwcHg7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQiPklmDQoJCQkJCQkJCQkJCQkJCXRoZSBsaW5rIGFib3ZlIGRvZXMgbm90IHdvcmsgY29weSBhbmQgcGFzdGUgdGhpcyBVUkwgaW4NCgkJCQkJCQkJCQkJCQkJeW91ciBicm93c2VyIHRvIGFjY2VwdCB0aGUgaW52aXRlOiB7e0FDQ0VQVF9JTlZJVEVfVVJMfX08L3A+PC90aD4NCgkJCQkJCQkJCQkJCTx0aCBjbGFzcz0iZXhwYW5kZXIiDQoJCQkJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMDsgcGFkZGluZzogMCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOiBsZWZ0OyB2aXNpYmlsaXR5OiBoaWRkZW47IHdpZHRoOiAwIj48L3RoPg0KCQkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQkJPGNlbnRlciBkYXRhLXBhcnNlZD0iIiBzdHlsZT0ibWluLXdpZHRoOjU4MHB4O3dpZHRoOjEwMCUiPg0KCQkJCQkJCQkJPHRhYmxlIGFsaWduPSJjZW50ZXIiIGNsYXNzPSJtZW51IGZsb2F0LWNlbnRlciINCgkJCQkJCQkJCQlzdHlsZT0iTWFyZ2luOiAwIGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwOyBmbG9hdDogbm9uZTsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IGF1dG8gIWltcG9ydGFudCI+DQoJCQkJCQkJCQkJPHRib2R5Pg0KCQkJCQkJCQkJCQk8dHIgc3R5bGU9InBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3AiPg0KCQkJCQkJCQkJCQkJPHRkDQoJCQkJCQkJCQkJCQkJc3R5bGU9Ii1tb3otaHlwaGVuczogYXV0bzsgLXdlYmtpdC1oeXBoZW5zOiBhdXRvOyBNYXJnaW46IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGh5cGhlbnM6IGF1dG87IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgd29yZC13cmFwOiBicmVhay13b3JkIj48dGFibGUNCgkJCQkJCQkJCQkJCQkJc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwOyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wIj4NCgkJCQkJCQkJCQkJCQkJPHRib2R5Pg0KCQkJCQkJCQkJCQkJCQkJPHRyDQoJCQkJCQkJCQkJCQkJCQkJc3R5bGU9InBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3AiPg0KCQkJCQkJCQkJCQkJCQkJCTx0aCBjbGFzcz0ibWVudS1pdGVtIGZsb2F0LWNlbnRlciINCgkJCQkJCQkJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMCBhdXRvOyBjb2xvcjogIzBhMGEwYTsgZmxvYXQ6IG5vbmU7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAxMHB4OyBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXIiPjxhDQoJCQkJCQkJCQkJCQkJCQkJCWhyZWY9Int7R0FURVdBWV9VUkx9fS90ZXJtcy1vZi11c2UiDQoJCQkJCQkJCQkJCQkJCQkJCXN0eWxlPSJNYXJnaW46IDA7IGNvbG9yOiAjMjE5OWU4OyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuMzsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWRlY29yYXRpb246IG5vbmUiPnt7R0FURVdBWV9OQU1FfX0NCgkJCQkJCQkJCQkJCQkJCQkJCVRlcm1zIG9mIFVzZTwvYT48L3RoPg0KCQkJCQkJCQkJCQkJCQkJCTx0aCBjbGFzcz0ibWVudS1pdGVtIGZsb2F0LWNlbnRlciINCgkJCQkJCQkJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMCBhdXRvOyBjb2xvcjogIzBhMGEwYTsgZmxvYXQ6IG5vbmU7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAxMHB4OyBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXIiPjxhDQoJCQkJCQkJCQkJCQkJCQkJCWhyZWY9Imh0dHBzOi8vd3d3Lml1YmVuZGEuY29tL3ByaXZhY3ktcG9saWN5LzQ0MTA1MCINCgkJCQkJCQkJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMDsgY29sb3I6ICMyMTk5ZTg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogNDAwOyBsaW5lLWhlaWdodDogMS4zOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSI+UHJpdmFjeTwvYT48L3RoPg0KCQkJCQkJCQkJCQkJCQkJCTx0aCBjbGFzcz0ibWVudS1pdGVtIGZsb2F0LWNlbnRlciINCgkJCQkJCQkJCQkJCQkJCQkJc3R5bGU9Ik1hcmdpbjogMCBhdXRvOyBjb2xvcjogIzBhMGEwYTsgZmxvYXQ6IG5vbmU7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjM7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAxMHB4OyBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXIiPjxhDQoJCQkJCQkJCQkJCQkJCQkJCWhyZWY9Imh0dHBzOi8vd3d3LmQ0c2NpZW5jZS5vcmciDQoJCQkJCQkJCQkJCQkJCQkJCXN0eWxlPSJNYXJnaW46IDA7IGNvbG9yOiAjMjE5OWU4OyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuMzsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWRlY29yYXRpb246IG5vbmUiPkFib3V0DQoJCQkJCQkJCQkJCQkJCQkJCQlENFNjaWVuY2U8L2E+PC90aD4NCgkJCQkJCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCQkJCQkJPC90YWJsZT48L3RkPg0KCQkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQkJPC9jZW50ZXI+PC90ZD4NCgkJCQkJCQk8L3RyPg0KCQkJCQkJPC90Ym9keT4NCgkJCQkJPC90YWJsZT4NCgkJCQkJPC9jZW50ZXI+PC90ZD4NCgkJCTwvdHI+DQoJCTwvdGJvZHk+DQoJPC90YWJsZT4NCjwvYm9keT4NCjwvaHRtbD4=";
private final String encodedTemplateTEXT = "e3tHQVRFV0FZX05BTUV9fQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSGkge3tJTlZJVEVEX1VTRVJfTkFNRX19LA0Ke3tJTlZJVElOR19VU0VSX0ZVTExOQU1FfX0gaGFzIGludml0ZWQgeW91IHRvIHt7U0VMRUNURURfVlJFX05BTUV9fSwgeW91IGNhbiBmaW5kIGEgYnJpZWYgZGVzY3JpcHRpb24gYmVsb3c6DQoNCnt7U0VMRUNURURfVlJFX0RFU0NSSVBUSU9OfX0NCg0KVG8gYWNjZXB0IHRoZSBpbnZpdGUganVzdCBmb2xsb3cgdGhpcyBsaW5rOiB7e0FDQ0VQVF9JTlZJVEVfVVJMfX0=";
private GCubeUser theInvitingUser;
private String theUserInvitedName;
private String theVREName;
private String theVREDescription;
private String acceptInviteURL;
/**
*
* @param gatewayName
* @param gatewayURL
* @param theInvitingUser
* @param theUserInvitedName
* @param theVRE
* @param acceptInviteURL
* @param signUpURL
*/
public TemplatedJoinMeInvite(String gatewayName, String gatewayURL, GCubeUser theInvitingUser,
String theUserInvitedName, String theVREName, String theVREDescription, String acceptInviteURL) {
super(gatewayName, gatewayURL);
this.theInvitingUser = theInvitingUser;
this.theUserInvitedName = theUserInvitedName;
this.theVREName = theVREName;
this.theVREDescription = theVREDescription;
this.acceptInviteURL = acceptInviteURL;
}
@Override
public String compile(String templateContent) {
String userAvatarURL = getGatewayURL()+this.theInvitingUser.getUserAvatarURL();
return new String(Base64.getDecoder().decode(templateContent))
.replace("{{SELECTED_VRE_NAME}}", theVREName)
.replace("{{INVITING_USER_AVATAR_URL}}", userAvatarURL)
.replace("{{INVITING_USER_FULLNAME}}", theInvitingUser.getFullname())
.replace("{{INVITED_USER_NAME}}", this.theUserInvitedName)
.replace("{{SELECTED_VRE_DESCRIPTION}}", theVREDescription)
.replace("{{GATEWAY_LOGO:URL}}", getGatewayLogoURL())
.replace("{{GATEWAY_URL}}", getGatewayURL())
.replace("{{GATEWAY_NAME}}", getGatewayName())
.replace("{{ACCEPT_INVITE_URL}}", acceptInviteURL);
}
@Override
public String getTextHTML() {
return compile(encodedTemplateHTML);
}
@Override
public String getTextPLAIN() {
return compile(encodedTemplateTEXT);
}
}