@alauda-fe/common
Version:
Alauda frontend team common codes.
137 lines • 13.4 kB
JavaScript
const RESOURCE_MARKS = {
Namespace: {
abbr: 'NS',
colors: { light: '#CFAF0F', dark: '#B59618' },
},
Project: {
abbr: 'PR',
colors: { light: '#2A5ADF', dark: '#2D54D3' },
},
Service: {
abbr: 'SVC',
colors: { light: '#CC9213', dark: '#CC9827' },
},
Prometheus: {
abbr: 'PROM',
colors: { light: '#8D4EDA', dark: '#9257DA' },
},
PrometheusRule: {
abbr: 'PROR',
colors: { light: '#722ED1', dark: '#6229BF' },
},
Dashboard: {
abbr: 'DASH',
colors: { light: '#3C4DC3', dark: '#4656C3' },
},
ServiceMonitor: {
abbr: 'SVCM',
colors: { light: '#C98612', dark: '#B77B22' },
},
Container: {
abbr: 'C',
colors: { light: '#0ABD78', dark: '#19AD74' },
},
'app.k8s.io/Application': {
abbr: 'APP',
colors: { light: '#00AB28', dark: '#1BAB3D' },
},
'core.oam.dev/Application': {
abbr: 'OAM',
colors: { light: '#009A29', dark: '#129334' },
},
'argoproj.io/Application': {
abbr: 'GOPS',
colors: { light: '#008026', dark: '#0A7C2C' },
},
Deployment: {
abbr: 'D',
colors: { light: '#3170FF', dark: '#325FD9' },
},
DaemonSet: {
abbr: 'DS',
colors: { light: '#54B38D', dark: '#3C9977' },
},
StatefulSet: {
abbr: 'SS',
colors: { light: '#EF7A0A', dark: '#D67517' },
},
Job: {
abbr: 'J',
colors: { light: '#4661C1', dark: '#3D56B3' },
},
CronJob: {
abbr: 'CJ',
colors: { light: '#5A7BDC', dark: '#5475D5' },
},
Ingress: {
abbr: 'I',
colors: { light: '#14C9C9', dark: '#2CC1C1' },
},
ConfigMap: {
abbr: 'CM',
colors: { light: '#8E4AA9', dark: '#7D4095' },
},
Secret: {
abbr: 'S',
colors: { light: '#31BFFF', dark: '#2FB4F1' },
},
HorizontalPodAutoscaler: {
abbr: 'HPA',
colors: { light: '#3491FA', dark: '#358CEE' },
},
MonitorDashboard: {
abbr: 'MD',
colors: { light: '#AE6F83', dark: '#AE6D82' },
},
ReplicaSet: {
abbr: 'RS',
colors: { light: '#9A6632', dark: '#9A6A3A' },
},
Node: {
abbr: 'N',
colors: { light: '#8D4EDA', dark: '#9257DA' },
},
Group: {
abbr: 'G',
colors: { light: '#429456', dark: '#328248' },
},
Operator: {
abbr: 'O',
colors: { light: '#0DA5AA', dark: '#25A6AA' },
},
PersistentVolumeClaim: {
abbr: 'PVC',
colors: { light: '#F5B433', dark: '#E1A938' },
},
Pod: {
abbr: 'P',
colors: { light: '#437802', dark: '#4B7814' },
},
};
// 获取资源的缩写标记
export function getResourceMark(kind, apiGroup) {
if (!kind) {
return '';
}
// 检查是否有预定义的缩写
const matchKey = apiGroup ? `${apiGroup}/${kind}` : kind;
const config = RESOURCE_MARKS[matchKey];
if (config) {
return config.abbr;
}
// 处理全小写的情况
if (kind === kind.toLowerCase()) {
return kind.slice(0, 4);
}
// 获取大写字母组成缩写
const upperChars = kind.match(/[A-Z]/g) || [];
return upperChars.slice(0, 4).join('');
}
export function getResourceColor(kind, theme) {
const config = RESOURCE_MARKS[kind];
if (!config) {
return theme === 'light' ? '#0067D0' : '#1974D0';
}
return config.colors[theme];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9rOHMtc2hhcmVkL3Jlc291cmNlLW1hcmsvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLGNBQWMsR0FBdUM7SUFDekQsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsSUFBSTtRQUNWLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsR0FBRztRQUNULE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELHdCQUF3QixFQUFFO1FBQ3hCLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsMEJBQTBCLEVBQUU7UUFDMUIsSUFBSSxFQUFFLEtBQUs7UUFDWCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCx5QkFBeUIsRUFBRTtRQUN6QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxHQUFHO1FBQ1QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsSUFBSTtRQUNWLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxHQUFHO1FBQ1QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsR0FBRztRQUNULE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxJQUFJO1FBQ1YsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLEdBQUc7UUFDVCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCx1QkFBdUIsRUFBRTtRQUN2QixJQUFJLEVBQUUsS0FBSztRQUNYLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELGdCQUFnQixFQUFFO1FBQ2hCLElBQUksRUFBRSxJQUFJO1FBQ1YsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsR0FBRztRQUNULE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxHQUFHO1FBQ1QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLEdBQUc7UUFDVCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixJQUFJLEVBQUUsS0FBSztRQUNYLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxHQUFHO1FBQ1QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0NBQ0YsQ0FBQztBQUVGLFlBQVk7QUFDWixNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVksRUFBRSxRQUFpQjtJQUM3RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxjQUFjO0lBQ2QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO0lBQ1gsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYTtJQUNiLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEtBQWE7SUFDMUQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFtQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBSZXNvdXJjZU1hcmtDb25maWcge1xuICBhYmJyOiBzdHJpbmc7XG4gIGNvbG9yczoge1xuICAgIGxpZ2h0OiBzdHJpbmc7XG4gICAgZGFyazogc3RyaW5nO1xuICB9O1xufVxuXG5jb25zdCBSRVNPVVJDRV9NQVJLUzogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VNYXJrQ29uZmlnPiA9IHtcbiAgTmFtZXNwYWNlOiB7XG4gICAgYWJicjogJ05TJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjQ0ZBRjBGJywgZGFyazogJyNCNTk2MTgnIH0sXG4gIH0sXG4gIFByb2plY3Q6IHtcbiAgICBhYmJyOiAnUFInLFxuICAgIGNvbG9yczogeyBsaWdodDogJyMyQTVBREYnLCBkYXJrOiAnIzJENTREMycgfSxcbiAgfSxcbiAgU2VydmljZToge1xuICAgIGFiYnI6ICdTVkMnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyNDQzkyMTMnLCBkYXJrOiAnI0NDOTgyNycgfSxcbiAgfSxcbiAgUHJvbWV0aGV1czoge1xuICAgIGFiYnI6ICdQUk9NJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjOEQ0RURBJywgZGFyazogJyM5MjU3REEnIH0sXG4gIH0sXG4gIFByb21ldGhldXNSdWxlOiB7XG4gICAgYWJicjogJ1BST1InLFxuICAgIGNvbG9yczogeyBsaWdodDogJyM3MjJFRDEnLCBkYXJrOiAnIzYyMjlCRicgfSxcbiAgfSxcbiAgRGFzaGJvYXJkOiB7XG4gICAgYWJicjogJ0RBU0gnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyMzQzREQzMnLCBkYXJrOiAnIzQ2NTZDMycgfSxcbiAgfSxcbiAgU2VydmljZU1vbml0b3I6IHtcbiAgICBhYmJyOiAnU1ZDTScsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnI0M5ODYxMicsIGRhcms6ICcjQjc3QjIyJyB9LFxuICB9LFxuICBDb250YWluZXI6IHtcbiAgICBhYmJyOiAnQycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzBBQkQ3OCcsIGRhcms6ICcjMTlBRDc0JyB9LFxuICB9LFxuICAnYXBwLms4cy5pby9BcHBsaWNhdGlvbic6IHtcbiAgICBhYmJyOiAnQVBQJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjMDBBQjI4JywgZGFyazogJyMxQkFCM0QnIH0sXG4gIH0sXG4gICdjb3JlLm9hbS5kZXYvQXBwbGljYXRpb24nOiB7XG4gICAgYWJicjogJ09BTScsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzAwOUEyOScsIGRhcms6ICcjMTI5MzM0JyB9LFxuICB9LFxuICAnYXJnb3Byb2ouaW8vQXBwbGljYXRpb24nOiB7XG4gICAgYWJicjogJ0dPUFMnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyMwMDgwMjYnLCBkYXJrOiAnIzBBN0MyQycgfSxcbiAgfSxcbiAgRGVwbG95bWVudDoge1xuICAgIGFiYnI6ICdEJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjMzE3MEZGJywgZGFyazogJyMzMjVGRDknIH0sXG4gIH0sXG4gIERhZW1vblNldDoge1xuICAgIGFiYnI6ICdEUycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzU0QjM4RCcsIGRhcms6ICcjM0M5OTc3JyB9LFxuICB9LFxuICBTdGF0ZWZ1bFNldDoge1xuICAgIGFiYnI6ICdTUycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnI0VGN0EwQScsIGRhcms6ICcjRDY3NTE3JyB9LFxuICB9LFxuICBKb2I6IHtcbiAgICBhYmJyOiAnSicsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzQ2NjFDMScsIGRhcms6ICcjM0Q1NkIzJyB9LFxuICB9LFxuICBDcm9uSm9iOiB7XG4gICAgYWJicjogJ0NKJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjNUE3QkRDJywgZGFyazogJyM1NDc1RDUnIH0sXG4gIH0sXG4gIEluZ3Jlc3M6IHtcbiAgICBhYmJyOiAnSScsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzE0QzlDOScsIGRhcms6ICcjMkNDMUMxJyB9LFxuICB9LFxuICBDb25maWdNYXA6IHtcbiAgICBhYmJyOiAnQ00nLFxuICAgIGNvbG9yczogeyBsaWdodDogJyM4RTRBQTknLCBkYXJrOiAnIzdENDA5NScgfSxcbiAgfSxcbiAgU2VjcmV0OiB7XG4gICAgYWJicjogJ1MnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyMzMUJGRkYnLCBkYXJrOiAnIzJGQjRGMScgfSxcbiAgfSxcbiAgSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXI6IHtcbiAgICBhYmJyOiAnSFBBJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjMzQ5MUZBJywgZGFyazogJyMzNThDRUUnIH0sXG4gIH0sXG4gIE1vbml0b3JEYXNoYm9hcmQ6IHtcbiAgICBhYmJyOiAnTUQnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyNBRTZGODMnLCBkYXJrOiAnI0FFNkQ4MicgfSxcbiAgfSxcbiAgUmVwbGljYVNldDoge1xuICAgIGFiYnI6ICdSUycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzlBNjYzMicsIGRhcms6ICcjOUE2QTNBJyB9LFxuICB9LFxuICBOb2RlOiB7XG4gICAgYWJicjogJ04nLFxuICAgIGNvbG9yczogeyBsaWdodDogJyM4RDRFREEnLCBkYXJrOiAnIzkyNTdEQScgfSxcbiAgfSxcbiAgR3JvdXA6IHtcbiAgICBhYmJyOiAnRycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzQyOTQ1NicsIGRhcms6ICcjMzI4MjQ4JyB9LFxuICB9LFxuICBPcGVyYXRvcjoge1xuICAgIGFiYnI6ICdPJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjMERBNUFBJywgZGFyazogJyMyNUE2QUEnIH0sXG4gIH0sXG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbToge1xuICAgIGFiYnI6ICdQVkMnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyNGNUI0MzMnLCBkYXJrOiAnI0UxQTkzOCcgfSxcbiAgfSxcbiAgUG9kOiB7XG4gICAgYWJicjogJ1AnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyM0Mzc4MDInLCBkYXJrOiAnIzRCNzgxNCcgfSxcbiAgfSxcbn07XG5cbi8vIOiOt+WPlui1hOa6kOeahOe8qeWGmeagh+iusFxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTWFyayhraW5kOiBzdHJpbmcsIGFwaUdyb3VwPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFraW5kKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLy8g5qOA5p+l5piv5ZCm5pyJ6aKE5a6a5LmJ55qE57yp5YaZXG4gIGNvbnN0IG1hdGNoS2V5ID0gYXBpR3JvdXAgPyBgJHthcGlHcm91cH0vJHtraW5kfWAgOiBraW5kO1xuICBjb25zdCBjb25maWcgPSBSRVNPVVJDRV9NQVJLU1ttYXRjaEtleV07XG4gIGlmIChjb25maWcpIHtcbiAgICByZXR1cm4gY29uZmlnLmFiYnI7XG4gIH1cblxuICAvLyDlpITnkIblhajlsI/lhpnnmoTmg4XlhrVcbiAgaWYgKGtpbmQgPT09IGtpbmQudG9Mb3dlckNhc2UoKSkge1xuICAgIHJldHVybiBraW5kLnNsaWNlKDAsIDQpO1xuICB9XG5cbiAgLy8g6I635Y+W5aSn5YaZ5a2X5q+N57uE5oiQ57yp5YaZXG4gIGNvbnN0IHVwcGVyQ2hhcnMgPSBraW5kLm1hdGNoKC9bQS1aXS9nKSB8fCBbXTtcbiAgcmV0dXJuIHVwcGVyQ2hhcnMuc2xpY2UoMCwgNCkuam9pbignJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUNvbG9yKGtpbmQ6IHN0cmluZywgdGhlbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGNvbmZpZyA9IFJFU09VUkNFX01BUktTW2tpbmRdO1xuICBpZiAoIWNvbmZpZykge1xuICAgIHJldHVybiB0aGVtZSA9PT0gJ2xpZ2h0JyA/ICcjMDA2N0QwJyA6ICcjMTk3NEQwJztcbiAgfVxuICByZXR1cm4gY29uZmlnLmNvbG9yc1t0aGVtZSBhcyBrZXlvZiB0eXBlb2YgY29uZmlnLmNvbG9yc107XG59XG4iXX0=