family-hierarchy
Version:
A small library for **Angular 9+** that implements [vis-network](https://github.com/visjs/vis-network) to generate a hierarchy chart of a family.
59 lines • 16.6 kB
JavaScript
const DEFAULT_NODE_IMAGE = 'data:image/png;base64,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';
const DEFAULT_UNION_IMAGE = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzEuODkxIDMxLjg5MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzEuODkxIDMxLjg5MTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZD0iTTMwLjU0Myw1Ljc0bC00LjA3OC00LjAzNWMtMS44MDUtMS43NzctNC43MzYtMS43ODktNi41NDUtMC4wMmwtNC41MjUsNC40MTRjLTEuODEyLDEuNzY4LTEuODIsNC42NDgtMC4wMiw2LjQyNA0KCQlsMi41ODYtMi40ODRjLTAuMjYyLTAuNzkxLDAuMDYxLTEuNjk3LDAuNzAxLTIuMzI0bDIuODc5LTIuODA3YzAuOTEyLTAuODg1LDIuMzc1LTAuODgxLDMuMjc1LDAuMDFsMi40NDksMi40Mg0KCQljMC45LDAuODkxLDAuODk2LDIuMzI2LTAuMDEsMy4yMTNsLTIuODc5LDIuODA5Yy0wLjYwOSwwLjU5NC0xLjYwOSwwLjkyLTIuMzg1LDAuNzExbC0yLjUzMywyLjQ4Ng0KCQljMS44MDMsMS43ODEsNC43MzIsMS43ODksNi41NDUsMC4wMmw0LjUyLTQuNDFDMzIuMzQsMTAuMzk2LDMyLjM0Niw3LjUxOSwzMC41NDMsNS43NHoiLz4NCgk8cGF0aCBkPSJNMTMuOTc1LDIxLjg5NGMwLjIxNSwwLjc3My0wLjEyOSwxLjc3My0wLjc1MiwyLjM4MWwtMi42ODksMi42MjdjLTAuOTIyLDAuOS0yLjQxNCwwLjg5NS0zLjMzMi0wLjAxMmwtMi40OTgtMi40NjENCgkJYy0wLjkxNi0wLjkwNi0wLjkxLTIuMzc5LDAuMDEyLTMuMjc1bDIuNjkxLTIuNjI3YzAuNjU2LTAuNjM3LDEuNTk4LTAuOTYxLDIuNDItMC42ODlsMi41OTQtMi41Nw0KCQljLTEuODM2LTEuODExLTQuODI0LTEuODItNi42NjgtMC4wMmwtNC4zNjMsNC4yNmMtMS44NDYsMS44MDMtMS44NTUsNC43MzQtMC4wMiw2LjU0OWw0LjE1NCw0LjEwNw0KCQljMS44MzQsMS44MDksNC44MiwxLjgxOCw2LjY2OCwwLjAxOGw0LjM2My00LjI2YzEuODQ0LTEuODA1LDEuODUyLTQuNzM0LDAuMDItNi41NDdMMTMuOTc1LDIxLjg5NHoiLz4NCgk8cGF0aCBkPSJNMTEuMTM5LDIwLjcyMmMwLjYxMSwwLjYxNywxLjYxMSwwLjYyMywyLjIzNCwwLjAwOGw3LjQ1NS03LjQxNmMwLjYyMS0wLjYxNywwLjYyNS0xLjYxNSwwLjAwOC0yLjIzNA0KCQljLTAuNjEzLTAuNjE1LTEuNjExLTAuNjE5LTIuMjMtMC4wMDZsLTcuNDU3LDcuNDE0QzEwLjUyOSwxOS4xMDMsMTAuNTI1LDIwLjEwMSwxMS4xMzksMjAuNzIyeiIvPg0KPC9nPg0KPC9zdmc+DQo=';
export const OPTION_DEFAULT = {
interaction: {
hover: true,
selectConnectedEdges: false
},
layout: {
hierarchical: {
enabled: true,
levelSeparation: 150,
nodeSpacing: 200,
treeSpacing: 200,
blockShifting: true,
edgeMinimization: true,
parentCentralization: true,
direction: 'UD',
sortMethod: 'directed',
shakeTowards: 'leaves' // roots, leaves
}
},
edges: {
shadow: true
},
nodes: {
shadow: true
},
physics: {
maxVelocity: 10,
minVelocity: 0.1,
}
};
export const DEFAULT_CONFIG = {
links: {
childrens: {
styles: {
color: '#848484',
highlight: '#848484',
hover: '#848484'
}
},
parents: {
styles: {
color: '#99004d',
highlight: '#800040',
hover: '#800040',
}
}
},
nodes: {
images: DEFAULT_NODE_IMAGE,
size: 20
},
union: {
images: DEFAULT_UNION_IMAGE,
size: 20
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2ZhbWlseS1oaWVyYXJjaHkvIiwic291cmNlcyI6WyJsaWIvY29uZmlnL2RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxrQkFBa0IsR0FBRyx3a0dBQXdrRyxDQUFDO0FBQ3BtRyxNQUFNLG1CQUFtQixHQUFHLGc2REFBZzZELENBQUM7QUFFNzdELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBWTtJQUNyQyxXQUFXLEVBQUU7UUFDWCxLQUFLLEVBQUUsSUFBSTtRQUNYLG9CQUFvQixFQUFFLEtBQUs7S0FDNUI7SUFDRCxNQUFNLEVBQUU7UUFDTixZQUFZLEVBQUU7WUFDWixPQUFPLEVBQUUsSUFBSTtZQUNiLGVBQWUsRUFBRSxHQUFHO1lBQ3BCLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixTQUFTLEVBQUUsSUFBSTtZQUNmLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFlBQVksRUFBRSxRQUFRLENBQUUsZ0JBQWdCO1NBQ3pDO0tBQ0Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsSUFBSTtLQUNiO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLElBQUk7S0FDYjtJQUNELE9BQU8sRUFBRTtRQUNQLFdBQVcsRUFBRSxFQUFFO1FBQ2YsV0FBVyxFQUFFLEdBQUc7S0FDakI7Q0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFhO0lBQ3RDLEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRTtZQUNWLE1BQU0sRUFBRztnQkFDUixLQUFLLEVBQUUsU0FBUztnQkFDaEIsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLEtBQUssRUFBRSxTQUFTO2FBQ2hCO1NBQ0Q7UUFDRCxPQUFPLEVBQUU7WUFDUCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixLQUFLLEVBQUUsU0FBUzthQUNqQjtTQUNGO0tBQ0Y7SUFDRCxLQUFLLEVBQUc7UUFDTixNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFDRCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsbUJBQW1CO1FBQzNCLElBQUksRUFBRSxFQUFFO0tBQ1Q7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmhDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvbW9kZWxzJztcclxuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3Zpcy1uZXR3b3JrL3N0YW5kYWxvbmUnO1xyXG5cclxuY29uc3QgREVGQVVMVF9OT0RFX0lNQUdFID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFCQUNBWUFBQUNxYVhIZUFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFBQjJBQUFBZGdCK2x5bWNnQUFBQmwwUlZoMFUyOW1kSGRoY21VQWQzZDNMbWx1YTNOallYQmxMbTl5WjV2dVBCb0FBQWlmU1VSQlZIaWM3VnRiYkZUSEdmN21uTDNadS9iYXUydmpMZkdObEJBQ0xlSU9oVFJDcFZSVnBWUnFDODJsb3FxVWt2UWhoRkNaS2pFa1M0cTRGQndxUXFyd2dDSmE5VVpWb1NSVjFEWnRVelVJSlUyaGFpZ0o0Vklna0RpeEYzdlgzdlh1dWN6OGZWZzc5dTRlTCtlMkpnLzVudmI4WithYm1lL001WjkvWmhtbUFFZVBKbnluVGd4czdSL0lyaC9PcVMyYUxydzZGOUxZZTBZQWswQUJ2MGNKQkx5RDBmckFQK3I5VWlMUmMvQnN0ZXZHcWttK2JkdkdoUis4bHozV041aHR0Vk9VenlQeGxsam9uNDJCK3UvdU9MRDNmQldxV0IwQm5rNDhHamx6ZWVoazM4QkloeHQ4RE1DUzJXMTNidDJ6NTdnYmZLWGNyaUt4WmZQZC96bi8wYkdKWGR3SVJBUWhCQVRuNENRQUlsRGhCUmhqQUpNZ0FaalowZlRmZUxSdFRmZk83bDYzNndxNExNRGpteDlaZi9wQzM1RkthVGpuMERRTm5PdW1PQ1dKSVJJTzZrMk5vVlJMck81VVV5Ujg4S0d1SjE5eXBjSndVWUR1SDIzOHd1bXovY2VKakRrRjUxQlVGVUp3eDJWOXRyMDUvYmxiNDlzZjd0NngzeW1YS3dLc1hidFdGc0tYVnpYaEtYMUhCR2lhQ2sxVDNTaXFDUE5uMzNMbDl2Ym9xdTkzN2Joa2w2UGlPRFdMNXNiSWE1TTFYbFZ5VldrOEFQejduV3Z0ci83cjh0bERQZHRYMmVWdzNBTzJidXlhK2RhbGErZklnRW5KNTZHYkhPdE9FQWtIK1pvVnQzOXh3dzhUSjZ6bWRkd0RrcG4wNzQwYXIycnFsRFFlQUFiU1dmbjR5WXQvZlg1L29zRnFYc2NDOUY0Zm5sdHFFNXhEVTZ2VDdTZkR0WTlTZ2Q3KzRZb3JrQkVjQ2RDOWFkTW1ZVERySzFVYTg1VVFiUWp5dG5oNHE5VjhaUk9YRmZRTlp6ZVUyZ1RuRUp4ajFiSTdjUGVYRjZNcEVvYkhJOXZpMTNXTy91c3B2UGpLU2J6NnhwbUthVmZNNjl6N25ZZWZPRzIxREVjQ0RHZnlIYVcyVU1pSEkvdCtnR2dzNm9UNlk4VGowL0Q1dWJQd1VQSTZOajExR0wxOTZiSTAwNXNibEpUd2Q5dmhkelFFUnZKNllPSXpZd3lIZTdZZ091MHpUbWdORVl0RjhmeStSeEJ2RHBlOW16RTljaktSU0FnN3ZMWUZPSFRva0xmVTYzdjB3VzhpR0k0QTNpQWcrZXhTVHdxdno0K251NzlYWnErcnEzbkRMcWR0QWE2ZXVkQXg4VGxVRzhCZEt4ZFBZTFkzN20rRTVtbE5XTDVnWnBFdDRKWGZzOHRuV3dEbW84akU1NVZMNTRBeFZ4ekxHK0xycXhjWEc0ZzB1MXkyYXl4N2VORmdiRzl0c1V0bEdTM05qYTV4dWZiSkFqNzN4L3hrOEhtOXJuRk5UWi85Qk9OVEFXNTJCVzQyUGhYQWJzYmFnT2N0b3ZIbmNIM0lqZnJZZ2l6N0w5ak5hMXVBTFltOUgwYkNnUXpuQXBxbVlzNnNkcnRVamhCdnFsZWpNMmIveFc1K1IwTmc1ZnoycjhUcWZZcXFxb1ZRdG52VXBoQnJEUEhsODI5OVlOMjZkYllqclk3ODFaZisvUGVyWFJ1K2NhQnRlaXkzYk9tQ0ZaTHNIZWNqQWtSMTRnS014RkJxY09EWitUTnYrZmFHcmljZEhaYTRGaGFud2ZNcGVHckd2VU1TZ0pKeWk3NFl1dm8yaXkrYTR3YVZlLzJVUktib21Va0FjeFJ1cUZBVzczZUx5azBCM2kyemVmeXUwWmNVVmw2V1RiZ25nSzRjTEdmM0YzcUMyNURwNTI1UnVYbzJTT25MSEpLbnVNVkNCZFRNSkRsc1FPZ2piTnFDb0Z0MDduNGVMWCtxdkFRZklMczRGTGoyZ250a2Jndmd5M3dWNEZSbTl3WUJ5WVV0TEhFTlh1MUI1MFRqY0ZVQVZyOG9pWHptZDRZdnZYV0E3REJtb0NtN1dOUEtZV2NreGFqS0RSRzZmdllEK0VKeHc1ZGNBYlNzZFZKZE9jN2lpKzkwV0xVeVZNZGZqY2lkMFBQR001L3NMd3dKSzlEVmkyakoyRDRCcm9TcUNNRFlUQVVOcVFpMDdGWGpVaTNNQjNyK2RiUXN2STJ4VlZVNWFhM2Fqb1d4UlJxTHpHcURsbjRPVkRJeENoTnRFWG9lV200eml5OVp6aGl6ZGVoaEJsVzlKamNHb2tzQjlBMGNCMkVoZkhXRmVRRGxpd1VnZ0h3S0lQWWlXb1BmWW15UjdYQzNXVlRKV1M4R1k1MTVPdmZDVWVqWmhZQUVlTHlGZmNMWVVCQWFRRHJBMWNJdTBsZjdHbU4zVmIzeHdCUUpBQUFnR2owNEVJQ3VBRkFxcEdWVGRzZ3dkUUw0YTJNUWdjSlhGaHBBdlBDMVFRQ1RDM3NHeVZOWUpaZ1VtNnBxVFVsUWxQYnR1aGZwM0QxZ0V1QUpBTDQ2d044QUJCcUJRQVR3aHdzMlQwM2gwbkFxZTkvSTl1NTdwNkp1Vlo4RWFkZVAxK0JhOW84QUdGWjBBTXM2Z2JMdzJWaGlndmEzdDVFKzlpWVlBNFhtdHEwSjdONXRPOTVuQmxVVGdIYnRuNEdoZ1Y5aFNGc0thYlNqRVlIMEhEQ3ZGYXd6Qm9SckMvYlVDT2hTRXZ6VUpReGM2Lzk0ZlpBa2hwclcyT3ZleHRqOWdkMkovMVdqbnE0SVFMdDIzSStVOGpqbHRYWW00SWVBREVreTVLYkJOREJzN0FxUGNCMFozV0R5WjRBc3lTUjdaUTZmUi9HR0FsYzh6WFU3YTNiLzVKZE82KzVJQUhwcXgwWktadll5TW44YmdnYlNRTWFpQUpQQUg2eFIvQjFOWGJVOWU1OHhuYWtFdGdXZ3g1NDRnWXkrM0ZJbUxrQzlmWUF3ZHV3RUVRWlVCY0xRU1RJR0F4RHNhSDR6OU53elN5elZaVUoreTZBdDI4NGl4MmZkTUtFUUFPY0FGNENpZ2pMWnd1OUtXWWlRNHpwMEVMZ1E0QVNRQ1VHQzA2UHYxQjMrMlIybUd6RUt5d0xRMXNTdmtWYnZtVFNCcGhjYW1zc0R1dk9iNFFEQWlhQUlnVHpYb05Qa1lvUnVpLzhpZE9DbjY2MXdXeEtBZGo0V3hmdlViempCRVJYR2QzYkVDcVZsNUlTT2pLWVo5Z2xabHNpL2VGWnpmU0tSTk10bnpSRWE4djdKc1BFNkIzM1lYL1hHQTBDTjVFR2pMd0Rad0pmZ1hERHAvZjZYcmZCWkV5Q3J6aXV6Q1FIcVN3TGExRnlNQmdBUFkyancraUVaaUtBa2grWmI0VEl0QVBYMHRCYWM5Uko3TXVYYVdMY0NtVEhVeWVXQkZTMm5lYko3RXFadmFwcnZBY1A1TDVYWjhncVF6NXVtY0J0K1dZWlBLbTBDUVVwbVY1dmxzREFFOUxJbGhvWnNCRGRkUm8xQkx5QlZsRjNobnd4VzVvRGk3aThFb055OHJ6OEduOFRBU2hZellXR2Jiejhlb09uR1VTMjN3Qmp3dGRWZ2tmRS9nZEJnR3ZqREs2TnhoTkZrWVBBd0JxMkNmMUFKOWdXNGdVZm5HSjF0WUEvY1YyUmlBT2pjUmVEZGkwVjJTV0tBelhuWXZnQTJGVGVOSzFlQll5OER6VTNqdHVSMTRNTGxzcVNTZ3oyZGd4NVE1YVdQQzlBUjQxTzJVcFFLSURGbSt1dVlud1I5dGIrbHNWMWNYdmxFckFCanFKRmxlRWVYUTFtV2lBS2UzNWpOKzMrdHNTQmRkV1JKUGdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5jb25zdCBERUZBVUxUX1VOSU9OX0lNQUdFID0gJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWFYTnZMVGc0TlRrdE1TSS9QZzBLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU0TGpFdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnMEtQSE4yWnlCMlpYSnphVzl1UFNJeExqRWlJR2xrUFNKRFlYQmhYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnMEtDU0IyYVdWM1FtOTRQU0l3SURBZ016RXVPRGt4SURNeExqZzVNU0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNekV1T0RreElETXhMamc1TVRzaUlIaHRiRHB6Y0dGalpUMGljSEpsYzJWeWRtVWlQZzBLUEdjK0RRb0pQSEJoZEdnZ1pEMGlUVE13TGpVME15dzFMamMwYkMwMExqQTNPQzAwTGpBek5XTXRNUzQ0TURVdE1TNDNOemN0TkM0M016WXRNUzQzT0RrdE5pNDFORFV0TUM0d01td3ROQzQxTWpVc05DNDBNVFJqTFRFdU9ERXlMREV1TnpZNExURXVPRElzTkM0Mk5EZ3RNQzR3TWl3MkxqUXlOQTBLQ1Fsc01pNDFPRFl0TWk0ME9EUmpMVEF1TWpZeUxUQXVOemt4TERBdU1EWXhMVEV1TmprM0xEQXVOekF4TFRJdU16STBiREl1T0RjNUxUSXVPREEzWXpBdU9URXlMVEF1T0RnMUxESXVNemMxTFRBdU9EZ3hMRE11TWpjMUxEQXVNREZzTWk0ME5Ea3NNaTQwTWcwS0NRbGpNQzQ1TERBdU9Ea3hMREF1T0RrMkxESXVNekkyTFRBdU1ERXNNeTR5TVROc0xUSXVPRGM1TERJdU9EQTVZeTB3TGpZd09Td3dMalU1TkMweExqWXdPU3d3TGpreUxUSXVNemcxTERBdU56RXhiQzB5TGpVek15d3lMalE0TmcwS0NRbGpNUzQ0TURNc01TNDNPREVzTkM0M016SXNNUzQzT0Rrc05pNDFORFVzTUM0d01tdzBMalV5TFRRdU5ERkRNekl1TXpRc01UQXVNemsyTERNeUxqTTBOaXczTGpVeE9Td3pNQzQxTkRNc05TNDNOSG9pTHo0TkNnazhjR0YwYUNCa1BTSk5NVE11T1RjMUxESXhMamc1TkdNd0xqSXhOU3d3TGpjM015MHdMakV5T1N3eExqYzNNeTB3TGpjMU1pd3lMak00TVd3dE1pNDJPRGtzTWk0Mk1qZGpMVEF1T1RJeUxEQXVPUzB5TGpReE5Dd3dMamc1TlMwekxqTXpNaTB3TGpBeE1td3RNaTQwT1RndE1pNDBOakVOQ2drSll5MHdMamt4Tmkwd0xqa3dOaTB3TGpreExUSXVNemM1TERBdU1ERXlMVE11TWpjMWJESXVOamt4TFRJdU5qSTNZekF1TmpVMkxUQXVOak0zTERFdU5UazRMVEF1T1RZeExESXVOREl0TUM0Mk9EbHNNaTQxT1RRdE1pNDFOdzBLQ1FsakxURXVPRE0yTFRFdU9ERXhMVFF1T0RJMExURXVPREl0Tmk0Mk5qZ3RNQzR3TW13dE5DNHpOak1zTkM0eU5tTXRNUzQ0TkRZc01TNDRNRE10TVM0NE5UVXNOQzQzTXpRdE1DNHdNaXcyTGpVME9XdzBMakUxTkN3MExqRXdOdzBLQ1Fsak1TNDRNelFzTVM0NE1Ea3NOQzQ0TWl3eExqZ3hPQ3cyTGpZMk9Dd3dMakF4T0d3MExqTTJNeTAwTGpJMll6RXVPRFEwTFRFdU9EQTFMREV1T0RVeUxUUXVOek0wTERBdU1ESXROaTQxTkRkTU1UTXVPVGMxTERJeExqZzVOSG9pTHo0TkNnazhjR0YwYUNCa1BTSk5NVEV1TVRNNUxESXdMamN5TW1Nd0xqWXhNU3d3TGpZeE55d3hMall4TVN3d0xqWXlNeXd5TGpJek5Dd3dMakF3T0d3M0xqUTFOUzAzTGpReE5tTXdMall5TVMwd0xqWXhOeXd3TGpZeU5TMHhMall4TlN3d0xqQXdPQzB5TGpJek5BMEtDUWxqTFRBdU5qRXpMVEF1TmpFMUxURXVOakV4TFRBdU5qRTVMVEl1TWpNdE1DNHdNRFpzTFRjdU5EVTNMRGN1TkRFMFF6RXdMalV5T1N3eE9TNHhNRE1zTVRBdU5USTFMREl3TGpFd01Td3hNUzR4TXprc01qQXVOekl5ZWlJdlBnMEtQQzluUGcwS1BDOXpkbWMrRFFvPSc7XHJcblxyXG5leHBvcnQgY29uc3QgT1BUSU9OX0RFRkFVTFQ6IE9wdGlvbnMgPSB7XHJcbiAgaW50ZXJhY3Rpb246IHtcclxuICAgIGhvdmVyOiB0cnVlLFxyXG4gICAgc2VsZWN0Q29ubmVjdGVkRWRnZXM6IGZhbHNlXHJcbiAgfSxcclxuICBsYXlvdXQ6IHtcclxuICAgIGhpZXJhcmNoaWNhbDoge1xyXG4gICAgICBlbmFibGVkOiB0cnVlLFxyXG4gICAgICBsZXZlbFNlcGFyYXRpb246IDE1MCxcclxuICAgICAgbm9kZVNwYWNpbmc6IDIwMCxcclxuICAgICAgdHJlZVNwYWNpbmc6IDIwMCxcclxuICAgICAgYmxvY2tTaGlmdGluZzogdHJ1ZSxcclxuICAgICAgZWRnZU1pbmltaXphdGlvbjogdHJ1ZSxcclxuICAgICAgcGFyZW50Q2VudHJhbGl6YXRpb246IHRydWUsXHJcbiAgICAgIGRpcmVjdGlvbjogJ1VEJywgICAgICAgIC8vIFVELCBEVSwgTFIsIFJMXHJcbiAgICAgIHNvcnRNZXRob2Q6ICdkaXJlY3RlZCcsICAvLyBodWJzaXplLCBkaXJlY3RlZFxyXG4gICAgICBzaGFrZVRvd2FyZHM6ICdsZWF2ZXMnICAvLyByb290cywgbGVhdmVzXHJcbiAgICB9XHJcbiAgfSxcclxuICBlZGdlczoge1xyXG4gICAgc2hhZG93OiB0cnVlXHJcbiAgfSxcclxuICBub2Rlczoge1xyXG4gICAgc2hhZG93OiB0cnVlXHJcbiAgfSxcclxuICBwaHlzaWNzOiB7XHJcbiAgICBtYXhWZWxvY2l0eTogMTAsXHJcbiAgICBtaW5WZWxvY2l0eTogMC4xLFxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09ORklHOiBGaENvbmZpZyA9IHtcclxuICBsaW5rczoge1xyXG4gICAgY2hpbGRyZW5zOiB7XHJcbiAgICAgc3R5bGVzIDoge1xyXG4gICAgICBjb2xvcjogJyM4NDg0ODQnLFxyXG4gICAgICBoaWdobGlnaHQ6ICcjODQ4NDg0JyxcclxuICAgICAgaG92ZXI6ICcjODQ4NDg0J1xyXG4gICAgIH1cclxuICAgIH0sXHJcbiAgICBwYXJlbnRzOiB7XHJcbiAgICAgIHN0eWxlczoge1xyXG4gICAgICAgIGNvbG9yOiAnIzk5MDA0ZCcsXHJcbiAgICAgICAgaGlnaGxpZ2h0OiAnIzgwMDA0MCcsXHJcbiAgICAgICAgaG92ZXI6ICcjODAwMDQwJyxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbm9kZXMgOiB7XHJcbiAgICBpbWFnZXM6IERFRkFVTFRfTk9ERV9JTUFHRSxcclxuICAgIHNpemU6IDIwXHJcbiAgfSxcclxuICB1bmlvbjoge1xyXG4gICAgaW1hZ2VzOiBERUZBVUxUX1VOSU9OX0lNQUdFLFxyXG4gICAgc2l6ZTogMjBcclxuICB9XHJcbn0iXX0=