first commit
This commit is contained in:
30
.gitignore
vendored
Normal file
30
.gitignore
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
# OS generated files #
|
||||
######################
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
package-lock.json
|
||||
|
||||
*.pyc
|
||||
|
||||
*.log
|
||||
|
||||
# Other files #
|
||||
######################
|
||||
__pycache__/
|
||||
venv/
|
||||
node_modules/
|
||||
tmp/**
|
||||
profiles/**
|
||||
logs/**
|
||||
|
||||
# Compiled files #
|
||||
#####################
|
||||
cube.min.js
|
||||
assets/js/cube.min.js
|
||||
assets/js/controller.min.js
|
||||
.env
|
||||
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
||||
## Job Log Parser
|
||||
|
||||
Small Node app that extracts data from DPX Job Logs
|
||||
102
app.js
Normal file
102
app.js
Normal file
@ -0,0 +1,102 @@
|
||||
const express = require('express');
|
||||
const bodyParser = require('body-parser');
|
||||
const app = express();
|
||||
const pug = require('pug');
|
||||
const server = require('http').createServer(app);
|
||||
//const https = require("https");
|
||||
const cookieParser = require('cookie-parser');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const formidable = require('formidable');
|
||||
var port = 3000;
|
||||
|
||||
app.use(bodyParser.urlencoded({ extended: true, limit: '20mb' }));
|
||||
app.use(cookieParser());
|
||||
|
||||
app.set('view engine', 'pug')
|
||||
app.use('/assets', express.static('assets'))
|
||||
app.use('/tmp', express.static('tmp'))
|
||||
app.use('/files', express.static('profiles'))
|
||||
|
||||
// middleware function to check for logged-in users
|
||||
var sessionChecker = (req, res, next) => {
|
||||
next();
|
||||
};
|
||||
|
||||
// route for Home-Page
|
||||
app.get('/', sessionChecker, (req, res) => {
|
||||
var pageTitle = "Log Parser - Start";
|
||||
res.render('intro', { title: pageTitle })
|
||||
});
|
||||
|
||||
app.route('/upload')
|
||||
.get(sessionChecker, (req, res) => {
|
||||
res.redirect('/');
|
||||
})
|
||||
.post((req, res, next) => {
|
||||
var pageTitle = 'Log Parser - Result';
|
||||
const form = formidable({ keepExtensions: true, uploadDir: "tmp" });
|
||||
|
||||
form.parse(req, (err, fields, files) => {
|
||||
if (err) {
|
||||
next(err);
|
||||
return;
|
||||
}
|
||||
|
||||
fs.open(files.logfile.path, 'r', function (err, f) {
|
||||
if (err) {
|
||||
return console.error(err);
|
||||
}
|
||||
|
||||
var result = fs.readFileSync(f).toString().split("\n");
|
||||
var jobType = "";
|
||||
|
||||
/*result.forEach(function(line) {
|
||||
if (checkJobType(line) !== undefined) {
|
||||
jobType = checkJobType(line);
|
||||
}
|
||||
}); */
|
||||
|
||||
res.render('upload', {title: pageTitle, files: files, jobtype: jobType, data: result});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
server.listen(port, function(){
|
||||
console.log('Server started. Listening on *:' + port);
|
||||
});
|
||||
|
||||
|
||||
|
||||
// helpers
|
||||
|
||||
function uniq(a) {
|
||||
return a.sort().filter(function(item, pos, ary) {
|
||||
return !pos || item != ary[pos - 1];
|
||||
})
|
||||
}
|
||||
|
||||
function isPresetNum(number, def) {
|
||||
return isNaN(number) || number == "" ? def : parseInt(number);
|
||||
}
|
||||
|
||||
function findDuplicate(users, clientemail) {
|
||||
let result = users.filter((item) =>
|
||||
item.email === clientemail &&
|
||||
item.type === 'attendee').length > 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
function fmtMSS(s){return(s-(s%=60))/60+(9<s?':':':0')+s}
|
||||
|
||||
function checkJobType(line) {
|
||||
if (/SNBSVH_220J/.test(line)) {
|
||||
return line.match(/(?:type: )(.*)(?:\))/)[1];
|
||||
}
|
||||
if (/SNBJH_3403J/.test(line)) {
|
||||
return "Condense";
|
||||
}
|
||||
if (/SNBJH_3208J/.test(line)) {
|
||||
return line.match(/job type (.*)\)/)[1];
|
||||
}
|
||||
}
|
||||
7
assets/css/bootstrap.min.css
vendored
Normal file
7
assets/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/css/bootstrap.min.css.map
Normal file
1
assets/css/bootstrap.min.css.map
Normal file
File diff suppressed because one or more lines are too long
250
assets/css/croppie.css
Normal file
250
assets/css/croppie.css
Normal file
@ -0,0 +1,250 @@
|
||||
.croppie-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.croppie-container .cr-image {
|
||||
z-index: -1;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transform-origin: 0 0;
|
||||
max-height: none;
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
.croppie-container .cr-boundary {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin: 0 auto;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.croppie-container .cr-viewport,
|
||||
.croppie-container .cr-resizer {
|
||||
position: absolute;
|
||||
border: 2px solid #fff;
|
||||
margin: auto;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
box-shadow: 0 0 2000px 2000px rgba(0, 0, 0, 0.5);
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer {
|
||||
z-index: 2;
|
||||
box-shadow: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-vertical,
|
||||
.croppie-container .cr-resizer-horisontal {
|
||||
position: absolute;
|
||||
pointer-events: all;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-vertical::after,
|
||||
.croppie-container .cr-resizer-horisontal::after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid black;
|
||||
background: #fff;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
content: '';
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-vertical {
|
||||
bottom: -5px;
|
||||
cursor: row-resize;
|
||||
width: 100%;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-vertical::after {
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-horisontal {
|
||||
right: -5px;
|
||||
cursor: col-resize;
|
||||
width: 10px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-horisontal::after {
|
||||
top: 50%;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
.croppie-container .cr-original-image {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.croppie-container .cr-vp-circle {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.croppie-container .cr-overlay {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
cursor: move;
|
||||
touch-action: none;
|
||||
}
|
||||
|
||||
.croppie-container .cr-slider-wrap {
|
||||
width: 75%;
|
||||
margin: 15px auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.croppie-result {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.croppie-result img {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.croppie-container .cr-image,
|
||||
.croppie-container .cr-overlay,
|
||||
.croppie-container .cr-viewport {
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
/*************************************/
|
||||
/***** STYLING RANGE INPUT ***********/
|
||||
/*************************************/
|
||||
/*http://brennaobrien.com/blog/2014/05/style-input-type-range-in-every-browser.html */
|
||||
/*************************************/
|
||||
|
||||
.cr-slider {
|
||||
-webkit-appearance: none;
|
||||
/*removes default webkit styles*/
|
||||
/*border: 1px solid white; *//*fix for FF unable to apply focus style bug */
|
||||
width: 300px;
|
||||
/*required for proper track sizing in FF*/
|
||||
max-width: 100%;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.cr-slider::-webkit-slider-runnable-track {
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border: 0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.cr-slider::-webkit-slider-thumb {
|
||||
-webkit-appearance: none;
|
||||
border: none;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border-radius: 50%;
|
||||
background: #ddd;
|
||||
margin-top: -6px;
|
||||
}
|
||||
|
||||
.cr-slider:focus {
|
||||
outline: none;
|
||||
}
|
||||
/*
|
||||
.cr-slider:focus::-webkit-slider-runnable-track {
|
||||
background: #ccc;
|
||||
}
|
||||
*/
|
||||
|
||||
.cr-slider::-moz-range-track {
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border: 0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.cr-slider::-moz-range-thumb {
|
||||
border: none;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border-radius: 50%;
|
||||
background: #ddd;
|
||||
margin-top: -6px;
|
||||
}
|
||||
|
||||
/*hide the outline behind the border*/
|
||||
.cr-slider:-moz-focusring {
|
||||
outline: 1px solid white;
|
||||
outline-offset: -1px;
|
||||
}
|
||||
|
||||
.cr-slider::-ms-track {
|
||||
width: 100%;
|
||||
height: 5px;
|
||||
background: transparent;
|
||||
/*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */
|
||||
border-color: transparent;/*leave room for the larger thumb to overflow with a transparent border */
|
||||
border-width: 6px 0;
|
||||
color: transparent;/*remove default tick marks*/
|
||||
}
|
||||
.cr-slider::-ms-fill-lower {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border-radius: 10px;
|
||||
}
|
||||
.cr-slider::-ms-fill-upper {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border-radius: 10px;
|
||||
}
|
||||
.cr-slider::-ms-thumb {
|
||||
border: none;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border-radius: 50%;
|
||||
background: #ddd;
|
||||
margin-top:1px;
|
||||
}
|
||||
.cr-slider:focus::-ms-fill-lower {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.cr-slider:focus::-ms-fill-upper {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
/*******************************************/
|
||||
|
||||
/***********************************/
|
||||
/* Rotation Tools */
|
||||
/***********************************/
|
||||
.cr-rotate-controls {
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
left: 5px;
|
||||
z-index: 1;
|
||||
}
|
||||
.cr-rotate-controls button {
|
||||
border: 0;
|
||||
background: none;
|
||||
}
|
||||
.cr-rotate-controls i:before {
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-size: 22px;
|
||||
}
|
||||
.cr-rotate-l i:before {
|
||||
content: '↺';
|
||||
}
|
||||
.cr-rotate-r i:before {
|
||||
content: '↻';
|
||||
}
|
||||
2005
assets/css/main.css
Normal file
2005
assets/css/main.css
Normal file
File diff suppressed because it is too large
Load Diff
BIN
assets/fonts/Gilroy-ExtraBold.otf
Normal file
BIN
assets/fonts/Gilroy-ExtraBold.otf
Normal file
Binary file not shown.
BIN
assets/fonts/Gilroy-Light.otf
Normal file
BIN
assets/fonts/Gilroy-Light.otf
Normal file
Binary file not shown.
BIN
assets/images/favicon.ico
Normal file
BIN
assets/images/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/favicon_color.png
Normal file
BIN
assets/images/favicon_color.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
691
assets/images/logo-catalogic-1.svg
Normal file
691
assets/images/logo-catalogic-1.svg
Normal file
@ -0,0 +1,691 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 205 39" style="enable-background:new 0 0 205 39;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
|
||||
</style>
|
||||
<metadata><?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|
||||
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c148 79.164050, 2019/10/01-18:03:16 ">
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<rdf:Description rdf:about=""
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
|
||||
xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
|
||||
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
|
||||
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
|
||||
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
|
||||
xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"
|
||||
xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
|
||||
xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
|
||||
xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
|
||||
xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:title>
|
||||
<rdf:Alt>
|
||||
<rdf:li xml:lang="x-default">Print</rdf:li>
|
||||
</rdf:Alt>
|
||||
</dc:title>
|
||||
<xmp:MetadataDate>2020-10-22T14:50:37+05:30</xmp:MetadataDate>
|
||||
<xmp:ModifyDate>2020-10-22T14:50:37+05:30</xmp:ModifyDate>
|
||||
<xmp:CreateDate>2020-10-22T14:50:36+05:30</xmp:CreateDate>
|
||||
<xmp:CreatorTool>Adobe Illustrator 24.0 (Macintosh)</xmp:CreatorTool>
|
||||
<xmp:Thumbnails>
|
||||
<rdf:Alt>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpGImg:width>256</xmpGImg:width>
|
||||
<xmpGImg:height>48</xmpGImg:height>
|
||||
<xmpGImg:format>JPEG</xmpGImg:format>
|
||||
<xmpGImg:image>/9j/4AAQSkZJRgABAgEBLAEsAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABABLAAAAAEA
AQEsAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAMAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FX//2Q==</xmpGImg:image>
|
||||
</rdf:li>
|
||||
</rdf:Alt>
|
||||
</xmp:Thumbnails>
|
||||
<xmpMM:InstanceID>xmp.iid:e8b181ea-3ea0-46dd-a7e4-99995517ef3f</xmpMM:InstanceID>
|
||||
<xmpMM:DocumentID>xmp.did:e8b181ea-3ea0-46dd-a7e4-99995517ef3f</xmpMM:DocumentID>
|
||||
<xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID>
|
||||
<xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
|
||||
<xmpMM:DerivedFrom rdf:parseType="Resource">
|
||||
<stRef:instanceID>xmp.iid:058f80c3-7d21-4764-8fa0-f009ce88cac4</stRef:instanceID>
|
||||
<stRef:documentID>xmp.did:058f80c3-7d21-4764-8fa0-f009ce88cac4</stRef:documentID>
|
||||
<stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID>
|
||||
<stRef:renditionClass>proof:pdf</stRef:renditionClass>
|
||||
</xmpMM:DerivedFrom>
|
||||
<xmpMM:History>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<stEvt:action>saved</stEvt:action>
|
||||
<stEvt:instanceID>xmp.iid:1a6392f2-07cb-41ab-9a97-208e72d07d88</stEvt:instanceID>
|
||||
<stEvt:when>2020-10-22T14:38:20+05:30</stEvt:when>
|
||||
<stEvt:softwareAgent>Adobe Illustrator 24.0 (Macintosh)</stEvt:softwareAgent>
|
||||
<stEvt:changed>/</stEvt:changed>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<stEvt:action>saved</stEvt:action>
|
||||
<stEvt:instanceID>xmp.iid:e8b181ea-3ea0-46dd-a7e4-99995517ef3f</stEvt:instanceID>
|
||||
<stEvt:when>2020-10-22T14:50:37+05:30</stEvt:when>
|
||||
<stEvt:softwareAgent>Adobe Illustrator 24.0 (Macintosh)</stEvt:softwareAgent>
|
||||
<stEvt:changed>/</stEvt:changed>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpMM:History>
|
||||
<illustrator:StartupProfile>Print</illustrator:StartupProfile>
|
||||
<xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
|
||||
<xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
|
||||
<xmpTPg:NPages>1</xmpTPg:NPages>
|
||||
<xmpTPg:MaxPageSize rdf:parseType="Resource">
|
||||
<stDim:w>205.000000</stDim:w>
|
||||
<stDim:h>39.000000</stDim:h>
|
||||
<stDim:unit>Pixels</stDim:unit>
|
||||
</xmpTPg:MaxPageSize>
|
||||
<xmpTPg:SwatchGroups>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:groupName>Default Swatch Group</xmpG:groupName>
|
||||
<xmpG:groupType>0</xmpG:groupType>
|
||||
<xmpG:Colorants>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>White</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>Black</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>100.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>CMYK Red</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>CMYK Yellow</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>CMYK Green</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>100.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>CMYK Cyan</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>100.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>CMYK Blue</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>100.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>CMYK Magenta</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>15.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>90.000000</xmpG:yellow>
|
||||
<xmpG:black>10.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>90.000000</xmpG:magenta>
|
||||
<xmpG:yellow>85.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>80.000000</xmpG:magenta>
|
||||
<xmpG:yellow>95.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>50.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>35.000000</xmpG:magenta>
|
||||
<xmpG:yellow>85.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>5.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>90.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>20.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>50.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>75.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>85.000000</xmpG:cyan>
|
||||
<xmpG:magenta>10.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>10.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>90.000000</xmpG:cyan>
|
||||
<xmpG:magenta>30.000000</xmpG:magenta>
|
||||
<xmpG:yellow>95.000000</xmpG:yellow>
|
||||
<xmpG:black>30.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>75.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>75.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>80.000000</xmpG:cyan>
|
||||
<xmpG:magenta>10.000000</xmpG:magenta>
|
||||
<xmpG:yellow>45.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>70.000000</xmpG:cyan>
|
||||
<xmpG:magenta>15.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>85.000000</xmpG:cyan>
|
||||
<xmpG:magenta>50.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>100.000000</xmpG:cyan>
|
||||
<xmpG:magenta>95.000000</xmpG:magenta>
|
||||
<xmpG:yellow>5.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>100.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>25.000000</xmpG:yellow>
|
||||
<xmpG:black>25.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>75.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>50.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>35.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>35.000000</xmpG:yellow>
|
||||
<xmpG:black>10.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>10.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>50.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>95.000000</xmpG:magenta>
|
||||
<xmpG:yellow>20.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>25.000000</xmpG:cyan>
|
||||
<xmpG:magenta>25.000000</xmpG:magenta>
|
||||
<xmpG:yellow>40.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>40.000000</xmpG:cyan>
|
||||
<xmpG:magenta>45.000000</xmpG:magenta>
|
||||
<xmpG:yellow>50.000000</xmpG:yellow>
|
||||
<xmpG:black>5.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>50.000000</xmpG:cyan>
|
||||
<xmpG:magenta>50.000000</xmpG:magenta>
|
||||
<xmpG:yellow>60.000000</xmpG:yellow>
|
||||
<xmpG:black>25.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>55.000000</xmpG:cyan>
|
||||
<xmpG:magenta>60.000000</xmpG:magenta>
|
||||
<xmpG:yellow>65.000000</xmpG:yellow>
|
||||
<xmpG:black>40.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>25.000000</xmpG:cyan>
|
||||
<xmpG:magenta>40.000000</xmpG:magenta>
|
||||
<xmpG:yellow>65.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>30.000000</xmpG:cyan>
|
||||
<xmpG:magenta>50.000000</xmpG:magenta>
|
||||
<xmpG:yellow>75.000000</xmpG:yellow>
|
||||
<xmpG:black>10.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>35.000000</xmpG:cyan>
|
||||
<xmpG:magenta>60.000000</xmpG:magenta>
|
||||
<xmpG:yellow>80.000000</xmpG:yellow>
|
||||
<xmpG:black>25.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>40.000000</xmpG:cyan>
|
||||
<xmpG:magenta>65.000000</xmpG:magenta>
|
||||
<xmpG:yellow>90.000000</xmpG:yellow>
|
||||
<xmpG:black>35.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>40.000000</xmpG:cyan>
|
||||
<xmpG:magenta>70.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>50.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>50.000000</xmpG:cyan>
|
||||
<xmpG:magenta>70.000000</xmpG:magenta>
|
||||
<xmpG:yellow>80.000000</xmpG:yellow>
|
||||
<xmpG:black>70.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpG:Colorants>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:groupName>Grays</xmpG:groupName>
|
||||
<xmpG:groupType>1</xmpG:groupType>
|
||||
<xmpG:Colorants>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>100.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>89.999400</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>79.998800</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>69.999700</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>59.999100</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>50.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>39.999400</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>29.998800</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>19.999700</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>9.999100</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>0.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>4.998800</xmpG:black>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpG:Colorants>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:groupName>Brights</xmpG:groupName>
|
||||
<xmpG:groupType>1</xmpG:groupType>
|
||||
<xmpG:Colorants>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>100.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>75.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>0.000000</xmpG:cyan>
|
||||
<xmpG:magenta>10.000000</xmpG:magenta>
|
||||
<xmpG:yellow>95.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>85.000000</xmpG:cyan>
|
||||
<xmpG:magenta>10.000000</xmpG:magenta>
|
||||
<xmpG:yellow>100.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>100.000000</xmpG:cyan>
|
||||
<xmpG:magenta>90.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.000000</xmpG:yellow>
|
||||
<xmpG:black>0.000000</xmpG:black>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName>
|
||||
<xmpG:mode>CMYK</xmpG:mode>
|
||||
<xmpG:type>PROCESS</xmpG:type>
|
||||
<xmpG:cyan>60.000000</xmpG:cyan>
|
||||
<xmpG:magenta>90.000000</xmpG:magenta>
|
||||
<xmpG:yellow>0.003100</xmpG:yellow>
|
||||
<xmpG:black>0.003100</xmpG:black>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpG:Colorants>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpTPg:SwatchGroups>
|
||||
<pdf:Producer>Adobe PDF library 15.00</pdf:Producer>
|
||||
</rdf:Description>
|
||||
</rdf:RDF>
|
||||
</x:xmpmeta>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?xpacket end="w"?>
|
||||
</metadata>
|
||||
<g>
|
||||
<path class="st0" d="M57.5,11.4c0.3,0,0.5,0.2,0.5,0.5v2.3c0,0.4-0.2,0.5-0.5,0.5H47.3c-0.6,0-1.1,0.1-1.5,0.1
|
||||
c-0.4,0.1-0.7,0.3-0.9,0.5c-0.2,0.2-0.4,0.6-0.5,1c-0.1,0.4-0.1,0.9-0.1,1.5v3.3c0,0.6,0,1.1,0.1,1.5c0.1,0.4,0.3,0.7,0.5,1
|
||||
s0.5,0.4,0.9,0.5c0.4,0.1,0.9,0.1,1.5,0.1h10.2c0.3,0,0.5,0.2,0.5,0.5V27c0,0.3-0.2,0.5-0.5,0.5H47.1c-1.2,0-2.2-0.1-3-0.3
|
||||
c-0.8-0.2-1.5-0.6-2-1c-0.5-0.5-0.9-1.1-1.1-1.9c-0.2-0.8-0.4-1.7-0.4-2.8v-4c0-1.1,0.1-2,0.4-2.8s0.6-1.4,1.1-1.9
|
||||
c0.5-0.5,1.2-0.8,2-1.1c0.8-0.2,1.8-0.3,3-0.3H57.5z"/>
|
||||
<path class="st0" d="M70.7,11.4c0.6,0,1.1,0.1,1.5,0.4c0.4,0.2,0.8,0.7,1.2,1.4L80.9,27c0.1,0.2,0.1,0.3,0.1,0.4
|
||||
c0,0.1-0.1,0.1-0.3,0.1h-2.9c-0.3,0-0.4-0.1-0.5-0.3l-1.6-3H64.8l-1.6,3c-0.1,0.2-0.3,0.3-0.5,0.3h-3c-0.2,0-0.3,0-0.4-0.1
|
||||
c0-0.1,0-0.2,0.1-0.4l7.5-13.8c0.4-0.7,0.8-1.2,1.1-1.4c0.4-0.2,0.8-0.4,1.3-0.4H70.7z M66.2,21.6h7.9l-3.7-6.7
|
||||
c-0.1-0.1-0.1-0.2-0.3-0.2h-0.1c-0.1,0-0.2,0.1-0.3,0.2L66.2,21.6z"/>
|
||||
<path class="st0" d="M97.4,11.4c0.4,0,0.5,0.2,0.5,0.5v2.3c0,0.4-0.2,0.5-0.5,0.5h-7.2V27c0,0.3-0.2,0.5-0.5,0.5h-2.5
|
||||
c-0.3,0-0.5-0.2-0.5-0.5V14.7h-7.2c-0.4,0-0.5-0.2-0.5-0.5V12c0-0.3,0.2-0.5,0.5-0.5H97.4z"/>
|
||||
<path class="st0" d="M107.2,11.4c0.6,0,1.1,0.1,1.5,0.4c0.4,0.2,0.8,0.7,1.2,1.4l7.6,13.8c0.1,0.2,0.1,0.3,0.1,0.4
|
||||
c0,0.1-0.1,0.1-0.3,0.1h-2.9c-0.3,0-0.4-0.1-0.5-0.3l-1.6-3h-10.8l-1.6,3c-0.1,0.2-0.3,0.3-0.5,0.3h-3c-0.2,0-0.3,0-0.4-0.1
|
||||
c0-0.1,0-0.2,0.1-0.4l7.5-13.8c0.4-0.7,0.8-1.2,1.1-1.4c0.4-0.2,0.8-0.4,1.3-0.4H107.2z M102.7,21.6h7.9l-3.7-6.7
|
||||
c-0.1-0.1-0.1-0.2-0.3-0.2h-0.1c-0.1,0-0.2,0.1-0.3,0.2L102.7,21.6z"/>
|
||||
<path class="st0" d="M121.5,11.4c0.3,0,0.5,0.2,0.5,0.5v9.2c0,0.6,0,1.1,0.1,1.5c0.1,0.4,0.3,0.7,0.5,1c0.2,0.2,0.5,0.4,0.9,0.5
|
||||
c0.4,0.1,0.9,0.1,1.5,0.1h9.3c0.3,0,0.5,0.2,0.5,0.5V27c0,0.3-0.2,0.5-0.5,0.5h-9.5c-1.2,0-2.2-0.1-3-0.3c-0.8-0.2-1.5-0.6-2-1
|
||||
c-0.5-0.5-0.9-1.1-1.1-1.9c-0.2-0.8-0.4-1.7-0.4-2.8V12c0-0.3,0.2-0.5,0.5-0.5H121.5z"/>
|
||||
<path class="st0" d="M150.3,11.4c1.2,0,2.2,0.1,3,0.3c0.8,0.2,1.5,0.6,2,1.1c0.5,0.5,0.9,1.1,1.1,1.9c0.2,0.8,0.3,1.7,0.3,2.8v4
|
||||
c0,1.1-0.1,2-0.3,2.8c-0.2,0.8-0.6,1.4-1.1,1.9c-0.5,0.5-1.2,0.8-2,1c-0.8,0.2-1.8,0.3-3,0.3h-7.1c-1.2,0-2.2-0.1-3-0.3
|
||||
c-0.8-0.2-1.5-0.6-2-1c-0.5-0.5-0.9-1.1-1.1-1.9c-0.2-0.8-0.4-1.7-0.4-2.8v-4c0-1.1,0.1-2,0.4-2.8c0.2-0.8,0.6-1.4,1.1-1.9
|
||||
c0.5-0.5,1.2-0.8,2-1.1c0.8-0.2,1.8-0.3,3-0.3H150.3z M140.2,21.2c0,0.6,0,1.1,0.1,1.5c0.1,0.4,0.3,0.7,0.5,1
|
||||
c0.2,0.2,0.5,0.4,0.9,0.5c0.4,0.1,0.9,0.1,1.5,0.1h6.8c0.6,0,1.1,0,1.5-0.1c0.4-0.1,0.7-0.3,0.9-0.5c0.2-0.2,0.4-0.6,0.5-1
|
||||
c0.1-0.4,0.1-0.9,0.1-1.5v-3.4c0-0.6-0.1-1.1-0.1-1.5c-0.1-0.4-0.3-0.7-0.5-1c-0.2-0.2-0.5-0.4-0.9-0.5c-0.4-0.1-0.9-0.1-1.5-0.1
|
||||
h-6.8c-0.6,0-1.1,0-1.5,0.1c-0.4,0.1-0.7,0.3-0.9,0.5c-0.2,0.2-0.4,0.6-0.5,1c-0.1,0.4-0.1,0.9-0.1,1.5V21.2z"/>
|
||||
<path class="st0" d="M177.5,11.4c0.3,0,0.5,0.2,0.5,0.5v2.3c0,0.4-0.2,0.5-0.5,0.5H166c-0.6,0-1.1,0.1-1.5,0.1
|
||||
c-0.4,0.1-0.7,0.3-0.9,0.5c-0.2,0.2-0.4,0.6-0.5,1c-0.1,0.4-0.1,0.9-0.1,1.5v3.3c0,0.6,0,1.1,0.1,1.5c0.1,0.4,0.3,0.7,0.5,1
|
||||
c0.2,0.2,0.5,0.4,0.9,0.5c0.4,0.1,0.9,0.1,1.5,0.1h7.6c0.4,0,0.7-0.1,0.9-0.3s0.3-0.6,0.3-1.1v-1.9c0-0.2-0.1-0.3-0.3-0.3h-6.7
|
||||
c-0.3,0-0.5-0.2-0.5-0.5v-1.7c0-0.4,0.2-0.5,0.5-0.5h9.6c0.5,0,0.7,0.2,0.7,0.7V24c0,1.3-0.2,2.2-0.7,2.7c-0.5,0.5-1.2,0.8-2.1,0.8
|
||||
h-9.3c-1.2,0-2.2-0.1-3-0.3c-0.8-0.2-1.5-0.6-2-1c-0.5-0.5-0.9-1.1-1.1-1.9c-0.2-0.8-0.4-1.7-0.4-2.8v-4c0-1.1,0.1-2,0.4-2.8
|
||||
c0.2-0.8,0.6-1.4,1.1-1.9c0.5-0.5,1.2-0.8,2-1.1c0.8-0.2,1.8-0.3,3-0.3H177.5z"/>
|
||||
<path class="st0" d="M183.9,11.4c0.3,0,0.5,0.2,0.5,0.5V27c0,0.3-0.2,0.5-0.5,0.5h-2.5c-0.4,0-0.5-0.2-0.5-0.5V12
|
||||
c0-0.3,0.2-0.5,0.5-0.5H183.9z"/>
|
||||
<path class="st0" d="M204.1,11.4c0.3,0,0.5,0.2,0.5,0.5v2.3c0,0.4-0.2,0.5-0.5,0.5h-10.2c-0.6,0-1.1,0.1-1.5,0.1
|
||||
c-0.4,0.1-0.7,0.3-0.9,0.5c-0.2,0.2-0.4,0.6-0.5,1c-0.1,0.4-0.1,0.9-0.1,1.5v3.3c0,0.6,0,1.1,0.1,1.5c0.1,0.4,0.3,0.7,0.5,1
|
||||
s0.5,0.4,0.9,0.5c0.4,0.1,0.9,0.1,1.5,0.1h10.2c0.3,0,0.5,0.2,0.5,0.5V27c0,0.3-0.2,0.5-0.5,0.5h-10.4c-1.2,0-2.2-0.1-3-0.3
|
||||
c-0.8-0.2-1.5-0.6-2-1c-0.5-0.5-0.9-1.1-1.1-1.9c-0.2-0.8-0.4-1.7-0.4-2.8v-4c0-1.1,0.1-2,0.4-2.8c0.2-0.8,0.6-1.4,1.1-1.9
|
||||
c0.5-0.5,1.2-0.8,2-1.1c0.8-0.2,1.8-0.3,3-0.3H204.1z"/>
|
||||
</g>
|
||||
<polygon class="st1" points="18,6.2 9.2,6.2 23.4,22.3 9.2,38.4 18,38.4 32.2,22.3 "/>
|
||||
<polygon class="st0" points="14.5,0.2 0.3,16.4 14.5,32.5 23.2,32.5 9,16.4 23.2,0.2 "/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 43 KiB |
707
assets/images/logo-catalogic-colored.svg
Normal file
707
assets/images/logo-catalogic-colored.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 50 KiB |
7
assets/js/bootstrap.min.js
vendored
Normal file
7
assets/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/js/bootstrap.min.js.map
Normal file
1
assets/js/bootstrap.min.js.map
Normal file
File diff suppressed because one or more lines are too long
1
assets/js/croppie.min.js
vendored
Normal file
1
assets/js/croppie.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
assets/js/jquery.min.js
vendored
Normal file
4
assets/js/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
5
assets/js/popper.min.js
vendored
Normal file
5
assets/js/popper.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/js/popper.min.js.map
Normal file
1
assets/js/popper.min.js.map
Normal file
File diff suppressed because one or more lines are too long
21
package.json
Normal file
21
package.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "Joblog_Parser",
|
||||
"version": "0.0.1",
|
||||
"description": "",
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"start": "node app.js",
|
||||
"watch": "nodemon app.js"
|
||||
},
|
||||
"author": "Patrick Wagner",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"body-parser": "^1.19.0",
|
||||
"cookie-parser": "^1.4.5",
|
||||
"express": "^4.17.1",
|
||||
"express-session": "^1.17.1",
|
||||
"formidable": "^1.2.2",
|
||||
"nodemon": "^2.0.3",
|
||||
"pug": "^2.0.4"
|
||||
}
|
||||
}
|
||||
13
views/includes/head.pug
Normal file
13
views/includes/head.pug
Normal file
@ -0,0 +1,13 @@
|
||||
// - includes/head.pug
|
||||
head
|
||||
title= title
|
||||
meta(name="viewport" content="width=device-width, initial-scale=1")
|
||||
script(src='assets/js/jquery.min.js')
|
||||
script(src='assets/js/popper.min.js')
|
||||
link#bootstrap-css(href='assets/css/bootstrap.min.css', rel='stylesheet')
|
||||
script(src='assets/js/bootstrap.min.js')
|
||||
link(
|
||||
rel='stylesheet'
|
||||
href='assets/css/main.css'
|
||||
)
|
||||
link(rel='shortcut icon' type='image/png' href='assets/images/favicon.ico')
|
||||
27
views/includes/navigation.pug
Normal file
27
views/includes/navigation.pug
Normal file
@ -0,0 +1,27 @@
|
||||
// - includes/navigation.pug
|
||||
.announcement.hidden
|
||||
.announce
|
||||
span.icon.icon-eye-slash
|
||||
|
||||
nav.navbar.navbar-expand-lg.navbar-light.bg-light
|
||||
a.navbar-brand(href='/')
|
||||
img.left-control-logo(src='assets/images/logo-catalogic-colored.svg' alt='Catalogic Log Parser')
|
||||
span.left-control-title Log Parser
|
||||
button.navbar-toggler(type='button' data-toggle='collapse' data-target='#navbarNavAltMarkup' aria-controls='navbarNavAltMarkup' aria-expanded='false' aria-label='Toggle navigation')
|
||||
span.navbar-toggler-icon
|
||||
#navbarNavAltMarkup.collapse.navbar-collapse
|
||||
.navbar-nav
|
||||
a.nav-item.nav-link(href='/' class="d-none d-md-block d-sm-none")
|
||||
| Upload
|
||||
span.sr-only (current)
|
||||
a.nav-item.nav-link(href='https://kb.catalogicsoftware.com/search/' target='_blank') KB
|
||||
a.nav-item.nav-link(href='https://jira.catalogicsoftware.com/' target='_blank') Jira
|
||||
a.nav-item.nav-link(href='https://gitlab.ad.catalogic.us/pwagner/joblog-parser/-/issues' target='_blank') Report bug
|
||||
|
||||
|
||||
script.
|
||||
var path = location.search !== "" ? location.pathname + location.search: location.pathname;
|
||||
jQuery('.navbar a[href="' + path + '"]').addClass('active');
|
||||
function closeWin() {
|
||||
window.close();
|
||||
}
|
||||
38
views/intro.pug
Normal file
38
views/intro.pug
Normal file
@ -0,0 +1,38 @@
|
||||
doctype html
|
||||
include includes/head.pug
|
||||
body
|
||||
include includes/navigation.pug
|
||||
|
||||
.container-fluid
|
||||
.row.page-container
|
||||
.col-md-6.col-sm-12.col-xs-12
|
||||
.row
|
||||
.col
|
||||
h3   Welcome to Catalogic Log Parser
|
||||
.row
|
||||
.col
|
||||
.container-fluid
|
||||
p Upload a file to start.
|
||||
form.logFile(action='/upload' method='post' enctype='multipart/form-data')
|
||||
.form-group
|
||||
input.form-control.upload(id="file" type='file', name='logfile' required)
|
||||
if (imageSuccess)
|
||||
span(class="formSuccess") = imageSuccess
|
||||
div.text-right
|
||||
p Questions?
|
||||
a.btn.btnSubmit(href="mailto:pwagner@catalogicsoftware.com") Send Patrick an email
|
||||
|
||||
script.
|
||||
$('input#file').change(function(e) {
|
||||
e.preventDefault();
|
||||
var error = $('form.logFile > .formError');
|
||||
if (error) {
|
||||
$('form.logFile > .formError').remove();
|
||||
}
|
||||
var isLog = /(.log|.txt)$/i.test($('#file').val());
|
||||
if (isLog) {
|
||||
$('form.logFile').submit();
|
||||
} else {
|
||||
$('<span class="formError">Please use a LOG or TXT file</span>').insertAfter($('#file'));
|
||||
}
|
||||
});
|
||||
345
views/upload.pug
Normal file
345
views/upload.pug
Normal file
@ -0,0 +1,345 @@
|
||||
doctype html
|
||||
include includes/head.pug
|
||||
body
|
||||
|
||||
include includes/navigation.pug
|
||||
.container-fluid
|
||||
.row.page-container
|
||||
.col-md-12.col-sm-12.col-xs-12
|
||||
.row
|
||||
.col
|
||||
.container-fluid
|
||||
.tab
|
||||
button(class="tablinks" onclick="openTab(event, 'Details')") Details
|
||||
button(class="tablinks hidden" onclick="openTab(event, 'Tasks')") Tasks
|
||||
button(class="tablinks" onclick="openTab(event, 'Options')") Options
|
||||
button(class="tablinks hidden" onclick="openTab(event, 'Errors')") Errors
|
||||
button(class="tablinks hidden" onclick="openTab(event, 'Exceptions')") Exceptions
|
||||
button(class="tablinks hidden" onclick="openTab(event, 'Warnings')") Warnings
|
||||
button(class="tablinks" onclick="openTab(event, 'Full')") Full log
|
||||
#Details(class="tabcontent default")
|
||||
h3 Details
|
||||
#Tasks(class="tabcontent")
|
||||
h3 Tasks
|
||||
#Options(class="tabcontent")
|
||||
h3 Options
|
||||
#Errors(class="tabcontent")
|
||||
h3 Errors
|
||||
#Exceptions(class="tabcontent")
|
||||
h3 Exceptions
|
||||
#Warnings(class="tabcontent")
|
||||
h3 Warnings
|
||||
#Full(class="tabcontent")
|
||||
h3 Full log
|
||||
.row
|
||||
.col.croppie
|
||||
.container-fluid
|
||||
#content
|
||||
|
||||
script.
|
||||
var file = !{JSON.stringify(files.logfile.path)}
|
||||
var data = !{JSON.stringify(data)}
|
||||
var jobType = !{JSON.stringify(jobtype)}
|
||||
var details = document.getElementById('Details');
|
||||
var tasks = document.getElementById('Tasks');
|
||||
var options = document.getElementById('Options');
|
||||
var errors = document.getElementById('Errors');
|
||||
var exceptions = document.getElementById('Exceptions');
|
||||
var warnings = document.getElementById('Warnings');
|
||||
var content = document.getElementById('Full');
|
||||
|
||||
var alldata = {
|
||||
'Clients': [],
|
||||
'Job status': {},
|
||||
'Tasks': {},
|
||||
'Warnings': [],
|
||||
'Errors': [],
|
||||
'Exceptions': [],
|
||||
'Job globals': [],
|
||||
'Job options': [],
|
||||
'Node options': {}
|
||||
}
|
||||
|
||||
data.forEach(function(line, idx) {
|
||||
checkVersion(line);
|
||||
checkJobType(line);
|
||||
checkJobGlobals(line);
|
||||
checkJobGlobalOptions(line);
|
||||
checkJobOptions(line);
|
||||
checkCompletitionStatus(line);
|
||||
checkTasks(line);
|
||||
getClientName(line);
|
||||
findWarnings(line);
|
||||
findErrors(line);
|
||||
findExceptions(line);
|
||||
writeLog(line, idx + 1);
|
||||
})
|
||||
|
||||
|
||||
// write to tabs
|
||||
|
||||
if (Object.entries(alldata['Clients']).length > 0) {
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><h3>Clients</h3>')
|
||||
for (let i in alldata['Clients']) {
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description">' + alldata['Clients'][i] + ' - ' + [i] + '</p>')
|
||||
}
|
||||
}
|
||||
|
||||
if (Object.entries(alldata['Job status']).length > 0) {
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><h3>Status</h3>')
|
||||
if (parseInt(alldata['Job status']['Status']) !== 0) {
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Completition status:</b> <span class=" code error">' + alldata['Job status']['Status'] + '</span></p>')
|
||||
} else {
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Completition status:</b> <span class=" code success">' + alldata['Job status']['Status'] + '</span></p>')
|
||||
}
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Run time:</b> ' + alldata['Job status']['Run time'] + '</p>')
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Data volume:</b> ' + alldata['Job status']['Data volume'] + '</p>')
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Throughput:</b> ' + alldata['Job status']['Throughput'] + '</p>')
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Transfer rate:</b> ' + alldata['Job status']['Transfer rate'] + '</p>')
|
||||
}
|
||||
|
||||
if (Object.entries(alldata['Tasks']).length > 0) {
|
||||
Object.entries(alldata['Tasks']).forEach(function(el) {
|
||||
var status = parseInt(el[1]["Status"]);
|
||||
var bg = "#9FF781";
|
||||
if (status !== 0) {
|
||||
status = '<span class="code error">' + status + '</span>';
|
||||
bg = "#F5A9A9";
|
||||
}
|
||||
tasks.insertAdjacentHTML('beforeend', '<div class="row" style="border: 1px solid black; margin: 8px; background: #fcfcfc"><div class="col-1" style="background: ' + bg + '">Task ' + el[0] + '</div><div class="col">Node: '+ el[1]["Node"] + '<br>Disk: '+ el[1]["Disk"] + '<br>Status: '+ status + '<br>Run time: '+ el[1]["Run time"] + '<br>Data volume: '+ el[1]["Data volume"] + '<br>Throughput: '+ el[1]["Throughput"] + '</div></div>')
|
||||
})
|
||||
jQuery('button:contains("Tasks")').removeClass('hidden');
|
||||
}
|
||||
|
||||
if (alldata['Errors'].length > 0) {
|
||||
alldata['Errors'].forEach(function(el) {
|
||||
errors.insertAdjacentHTML('beforeend', '<p class="code">' + el + '</p>')
|
||||
});
|
||||
jQuery('button:contains("Errors")').removeClass('hidden');
|
||||
}
|
||||
|
||||
if (alldata['Warnings'].length > 0) {
|
||||
alldata['Warnings'].forEach(function(el) {
|
||||
warnings.insertAdjacentHTML('beforeend', '<p class="code">' + el + '</p>')
|
||||
});
|
||||
jQuery('button:contains("Warnings")').removeClass('hidden');
|
||||
}
|
||||
|
||||
if (alldata['Exceptions'].length > 0) {
|
||||
alldata['Exceptions'].forEach(function(el) {
|
||||
exceptions.insertAdjacentHTML('beforeend', '<p class="code">' + el + '</p>')
|
||||
});
|
||||
jQuery('button:contains("Exceptions")').removeClass('hidden');
|
||||
}
|
||||
|
||||
if (alldata['Job globals'].length > 0) {
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description"><b>Job globals:</b></p>')
|
||||
alldata['Job globals'].forEach(function(el) {
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description">' + el + '</p>')
|
||||
});
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description"> </p>')
|
||||
}
|
||||
|
||||
if (alldata['Job options'].length > 0) {
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description"><b>Job options:</b></p>')
|
||||
alldata['Job options'].forEach(function(el) {
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description">' + el + '</p>')
|
||||
});
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description"> </p>')
|
||||
}
|
||||
|
||||
if (Object.entries(alldata['Node options']).length > 0) {
|
||||
Object.entries(alldata['Node options']).forEach(function(el) {
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description"><b>Node options:</b> ' + el[0] + '</p>');
|
||||
el[1].forEach(function(els) {
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description">' + els + '</p>');
|
||||
})
|
||||
options.insertAdjacentHTML('beforeend', '<p class="description"> </p>');
|
||||
})
|
||||
}
|
||||
|
||||
// extract functions
|
||||
|
||||
function checkVersion(line) {
|
||||
if (/SNBSVH_200J/.test(line)) {
|
||||
var version = line.match(/([0-9]\.[0-9])(?:;)/)[1];
|
||||
alldata['Version'] = version;
|
||||
alldata['Master IP'] = getIp(line);
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>DPX Version:</b> ' + version + '</p>')
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>DPX Master IP:</b> ' + getIp(line) + '</p>')
|
||||
}
|
||||
if (/SNBJH_3075J/.test(line)) {
|
||||
var version = line.match(/([0-9]\.[0-9])(?:;)/)[1];
|
||||
alldata['Version'] = version;
|
||||
alldata['Master IP'] = getIp(line);
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>DPX Version:</b> ' + version + '</p>')
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>DPX Master IP:</b> ' + getIp(line) + '</p>')
|
||||
}
|
||||
}
|
||||
|
||||
function checkJobType(line) {
|
||||
if (/SNBSVH_220J/.test(line)) {
|
||||
var jobtype = line.match(/(?:type: )(.*)(?:\))/)[1];
|
||||
var jobname = line.match(/(?:name: )(.*)(?:,)/)[1];
|
||||
alldata['Job Name'] = jobname;
|
||||
alldata['Job Type'] = jobtype;
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Name of job:</b> ' + jobname + '</p>')
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Type of job:</b> ' + jobtype + '</p>')
|
||||
}
|
||||
if (/SNBJH_3403J/.test(line)) {
|
||||
alldata['Job Name'] = "Condense";
|
||||
alldata['Job Type'] = "Condense";
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Name of job:</b> Condense</p>')
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Type of job:</b> Condense</p>')
|
||||
}
|
||||
if (/SNBJH_3208J/.test(line)) {
|
||||
var jobname = line.match(/New Job ([A-Z,a-z,0-9,\-,_]{1,16})/)[1];
|
||||
var jobtype = line.match(/job type (.*)\)/)[1];
|
||||
alldata['Job Name'] = jobname;
|
||||
alldata['Job Type'] = jobtype;
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Name of job:</b> ' + jobname + '</p>')
|
||||
details.insertAdjacentHTML('beforeend', '<p class="description"><b>Type of job:</b> ' + jobtype + '</p>')
|
||||
}
|
||||
}
|
||||
|
||||
function checkJobOptions(line) {
|
||||
if (/SNBSVH_264J/.test(line)) {
|
||||
var jobOptions = line.match(/Node\((.*)\) options:(.*)/);
|
||||
if (alldata['Node options'][jobOptions[1]] == undefined) {
|
||||
alldata['Node options'][jobOptions[1]] = [];
|
||||
}
|
||||
var optionsArray = jobOptions[2].split(',');
|
||||
optionsArray.forEach(function(el) {
|
||||
alldata['Node options'][jobOptions[1]].push(el.trim());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function checkJobGlobals(line) {
|
||||
if (/SNBSVH_361J/.test(line)) {
|
||||
var jobOptions = line.match(/Job globals:(.*)/);
|
||||
var optionsArray = jobOptions[1].split(';');
|
||||
optionsArray.forEach(function(el) {
|
||||
alldata['Job globals'].push(el.trim());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function checkJobGlobalOptions(line) {
|
||||
if (/SNBSVH_222J/.test(line)) {
|
||||
var jobOptions = line.match(/Job options:(.*)/);
|
||||
var optionsArray = jobOptions[1].split(',');
|
||||
optionsArray.forEach(function(el) {
|
||||
alldata['Job options'].push(el.trim());
|
||||
});
|
||||
}
|
||||
if (/SNBJH_3498J/.test(line)) {
|
||||
var jobOptions = line.match(/Job options: (.*)/);
|
||||
var optionsArray = jobOptions[1].split(';');
|
||||
optionsArray.forEach(function(el) {
|
||||
alldata['Job options'].push(el.trim());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function checkCompletitionStatus(line) {
|
||||
if (/SNBSVH_225J/.test(line)) {
|
||||
var status = line.match(/Job [0-9]{10}: (.*)/)[1];
|
||||
var taskStatus = line.match(/(?:Completion status )([0-9]{1,2});/)[1];
|
||||
var runTime = line.match(/(?:Run time )([0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2});/)[1];
|
||||
var dataVolume = line.match(/(?:Data volume)(.+(bytes|KB|MB|GB|n\/a));/)[1];
|
||||
var throughPut = line.match(/(?:Throughput)(.+(bytes|KB\/s|MB\/s|GB\/s|n\/a));/)[1];
|
||||
var transferRate = line.match(/(?:Data transfer rate)(.+(bytes|KB\/s|MB\/s|GB\/s|n\/a))/)[1];
|
||||
alldata['Job status']['Status'] = taskStatus;
|
||||
alldata['Job status']['Run time'] = runTime;
|
||||
alldata['Job status']['Data volume'] = dataVolume;
|
||||
alldata['Job status']['Throughput'] = throughPut;
|
||||
alldata['Job status']['Transfer rate'] = transferRate;
|
||||
}
|
||||
}
|
||||
|
||||
function checkTasks(line) {
|
||||
if (/SNBSVH_232J/.test(line)) {
|
||||
var tasks = line.match(/Task ([0-9]{1,2})/)[1];
|
||||
var taskStatus = line.match(/(?:Completion status )([0-9]{1,2});/)[1];
|
||||
var runTime = line.match(/(?:Run time )([0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2});/)[1];
|
||||
var dataVolume = line.match(/(?:Data volume)(.+(bytes|KB|MB|GB|n\/a));/)[1];
|
||||
var throughPut = line.match(/(?:Throughput)(.+(bytes|KB\/s|MB\/s|GB\/s|n\/a))/)[1]
|
||||
if (alldata['Tasks'][tasks] == undefined) {
|
||||
alldata['Tasks'][tasks] = {}
|
||||
}
|
||||
alldata['Tasks'][tasks]['Status'] = taskStatus;
|
||||
alldata['Tasks'][tasks]['Run time'] = runTime;
|
||||
alldata['Tasks'][tasks]['Data volume'] = dataVolume.trim();
|
||||
alldata['Tasks'][tasks]['Throughput'] = throughPut.trim();
|
||||
}
|
||||
if (/SNBSVH_230J/.test(line)) {
|
||||
var tasks = line.match(/Task ([0-9]{1,2})/)[1];
|
||||
var taskDisk = line.match(/disk: (.*)\)/)[1];
|
||||
var taskNode = line.match(/node: (.*)\,/)[1];
|
||||
if (alldata['Tasks'][tasks] == undefined) {
|
||||
alldata['Tasks'][tasks] = {}
|
||||
}
|
||||
alldata['Tasks'][tasks]['Disk'] = taskDisk;
|
||||
alldata['Tasks'][tasks]['Node'] = taskNode;
|
||||
}
|
||||
}
|
||||
|
||||
function findWarnings(line) {
|
||||
if (/\s[A-Z]{6}([0-9]|_)[0-9]{3}W/.test(line)) {
|
||||
alldata['Warnings'].push(line);
|
||||
}
|
||||
}
|
||||
|
||||
function findErrors(line) {
|
||||
if (/\s[A-Z]{5}([A-Z]|_)([0-9]|_)[0-9]{3}E/.test(line)) {
|
||||
alldata['Errors'].push(line);
|
||||
}
|
||||
}
|
||||
|
||||
function findExceptions(line) {
|
||||
if (/\s[A-Z]{5}([A-Z]|_)([0-9]|_)[0-9]{3}X/.test(line)) {
|
||||
alldata['Exceptions'].push(line);
|
||||
}
|
||||
}
|
||||
|
||||
function getIp(line) {
|
||||
return line.match(/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}/)[0];
|
||||
}
|
||||
|
||||
function getClientName(line) {
|
||||
if (/SNBAPH_466J/.test(line)) {
|
||||
var clientIp = getIp(line);
|
||||
var clientName = line.match(/\((.*)\)/)[1];
|
||||
alldata['Clients'][clientName] = clientIp;
|
||||
}
|
||||
}
|
||||
|
||||
function writeLog(line, idx) {
|
||||
if (/\s[A-Z]{5}([A-Z]|_)([0-9]|_)[0-9]{3}E/.test(line)) {
|
||||
content.insertAdjacentHTML('beforeend', '<p class="code error"><span class="idx">' + idx + '</span> ' + line + '</p>')
|
||||
} else if (/\s[A-Z]{5}([A-Z]|_)([0-9]|_)[0-9]{3}W/.test(line)) {
|
||||
content.insertAdjacentHTML('beforeend', '<p class="code warning"><span class="idx">' + idx + '</span> ' + line + '</p>')
|
||||
} else if (/\s[A-Z]{5}([A-Z]|_)([0-9]|_)[0-9]{3}X/.test(line)) {
|
||||
content.insertAdjacentHTML('beforeend', '<p class="code error"><span class="idx">' + idx + '</span> ' + line + '</p>')
|
||||
}else {
|
||||
content.insertAdjacentHTML('beforeend', '<p class="code"><span class="idx">' + idx + '</span> ' + line + '</p>')
|
||||
}
|
||||
}
|
||||
|
||||
function openTab(evt, tabName) {
|
||||
var i, tabcontent, tablinks;
|
||||
|
||||
tabcontent = document.getElementsByClassName("tabcontent");
|
||||
for (i = 0; i < tabcontent.length; i++) {
|
||||
tabcontent[i].style.display = "none";
|
||||
}
|
||||
|
||||
tablinks = document.getElementsByClassName("tablinks");
|
||||
for (i = 0; i < tablinks.length; i++) {
|
||||
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
||||
}
|
||||
|
||||
document.getElementById(tabName).style.display = "block";
|
||||
evt.currentTarget.className += " active";
|
||||
}
|
||||
Reference in New Issue
Block a user