@airmark/quiver 0.35.1 → 0.35.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,111 +1,109 @@
1
1
  ~~~
2
2
  $quill: classic_resume
3
3
  $kind: main
4
- name: John Doe
4
+ name: Nibs Bin
5
5
  contacts:
6
- - john.doe@example.com
7
- - (555) 123-4567
8
- - github.com/johndoe
9
- - linkedin.com/in/johndoe
10
- - Pittsburgh, PA
6
+ - nibs@tonguetoquill.com
7
+ - (333) 333-3333
8
+ - github.com/nibsbin
9
+ - linkedin.com/in/nibsbin/
10
+ - Biloxi, MS
11
11
  paper: us-letter
12
12
  font_size: 11.5
13
13
  margin: 0.5
14
14
  ~~~
15
15
 
16
- ~~~
17
- $kind: summary
18
- ~~~
19
-
20
- An engineer. Likes climbing rocks and making useful things.
21
-
22
16
  ~~~
23
17
  $kind: certifications
24
- title: Active Certifications
18
+ title: Certifications
25
19
  columns: 2
26
20
  items:
27
- - Offensive Security Certified Professional (OSCP)
28
- - GIAC Cyber Threat Intelligence (GCTI)
29
- - CompTIA CASP+, CySA+, Sec+, Net+, A+, Proj+
30
- - GIAC Machine Learning Engineer (GMLE)
21
+ - Offensive Security Certified Professional (OSCP)
22
+ - GIAC Cyber Threat Intelligence (GCTI)
23
+ - CompTIA CASP+, CySA+, Sec+, Net+, A+, Proj+
24
+ - GIAC Machine Learning Engineer (GMLE)
31
25
  ~~~
32
26
 
33
27
  ~~~
34
28
  $kind: skills
35
29
  columns: 2
36
30
  skills:
37
- - label: Programming
38
- items: Python, R, JS, C#, Rust, PowerShell, CI/CD
39
- - label: Data Science
40
- items: ML/statistics, TensorFlow, AI Engineering
41
- - label: IT & Cybersecurity
42
- items: AD DS, Splunk, Metasploit, Wireshark, Nessus
43
- - label: Cloud
44
- items: AWS EC2/S3, Helm, Docker, Serverless
31
+ - label: Programming
32
+ items: Python, R, JS, C#, Rust, PowerShell, CI/CD
33
+ - label: Data Science
34
+ items: ML/statistics, TensorFlow, AI Engineering
35
+ - label: IT & Cybersecurity
36
+ items: AD DS, Splunk, Metasploit, Wireshark, Nessus
37
+ - label: Cloud
38
+ items: AWS EC2/S3, Helm, Docker, Serverless
45
39
  ~~~
46
40
 
47
41
  ~~~
48
42
  $kind: experience
49
43
  jobs:
50
- - company: Templar Archives Research Division
51
- dates: August 2024 – Present
52
- role: Psionic Research Analyst
53
- location: Aiur
54
- details: |
55
- - Analyzed Khala disruption patterns following Amon's corruption, developing countermeasures to protect remaining neural link infrastructure.
56
- - Building automated threat detection pipelines using Khaydarin crystal arrays to monitor Void energy signatures across the sector.
57
- - company: Terran Dominion Ghost Academy
58
- dates: May 2025 – July 2025
59
- role: Covert Ops Trainee
60
- location: Tarsonis (Remote)
61
- details: |
62
- - Developed tactical HUD displays for Ghost operatives integrating real-time Zerg hive cluster intelligence.
63
- - company: Raynor's Raiders
64
- dates: January 2018 – June 2020
65
- role: Combat Engineer
66
- location: Mar Sara
67
- details: |
68
- - Administered Hyperion shipboard systems, SCV maintenance protocols, and bunker defense automation for 30,000+ colonists.
44
+ - company: Templar Archives Research Division
45
+ dates: August 2024 – Present
46
+ role: Psionic Research Analyst
47
+ location: Aiur (Remote)
48
+ details: |-
49
+ - Analyzed Khala disruption patterns following Amon's corruption, developing countermeasures to protect remaining neural link infrastructure.
50
+
51
+ - Building automated threat detection pipelines using Khaydarin crystal arrays to monitor Void energy signatures across the sector.
52
+ - company: Terran Dominion Ghost Academy
53
+ dates: May 2025 – July 2025
54
+ role: Covert Ops Trainee
55
+ location: Tarsonis
56
+ details: "- Developed tactical HUD displays for Ghost operatives integrating real-time Zerg hive cluster intelligence."
57
+ - company: Raynor's Raiders
58
+ dates: January 2018 – June 2020
59
+ role: Combat Engineer
60
+ location: Mar Sara
61
+ details: "- Administrated Hyperion shipboard systems, SCV maintenance, and bunker defense automation for 30,000+ colonists."
62
+ title: Experience
69
63
  ~~~
70
64
 
71
65
  ~~~
72
66
  $kind: education
73
67
  schools:
74
- - school: Carnegie Mellon University
75
- dates: December 2025
76
- degree: Master of Information Technology Strategy
77
- location: Pittsburgh, PA
78
- - school: United States Air Force Academy
79
- dates: May 2024
80
- degree: BS, Data Science
81
- location: Colorado Springs, CO
82
- details: |
83
- - Distinguished Graduate (top 10%); Chinese language minor (L2+/R1 on DLPT).
68
+ - school: Carnegie Mellon University
69
+ dates: December 2025
70
+ degree: Master of Information Technology Strategy
71
+ location: Pittsburgh, PA
72
+ - school: United States Air Force Academy
73
+ dates: May 2024
74
+ degree: BS, Data Science
75
+ location: Colorado Springs, CO
76
+ details: |-
77
+ - Distinguished Graduate (top 10%); Chinese language minor (L2+/R1 on DLPT).
78
+
79
+ - Professor Bradley A. Warner Data Science Catalyst and Top Cadet in Computer Networks.
80
+ - school: Community College of the Air Force
81
+ dates: February 2029
82
+ degree: AS, Information Systems Technology
83
+ location: Online
84
84
  ~~~
85
85
 
86
86
  ~~~
87
87
  $kind: other
88
88
  title: Cyber Competition
89
89
  entries:
90
- - heading: 1st in SANS Academy Cup 2024
91
- details: |
92
- - Competed as the Delogrand Web Exploit SME, solving SQLi, API, and HTTP packet crafting problems.
93
- - heading: 1st in NCX 2023
94
- details: |
95
- - Developed strategies, defensive scripts, and exploits for the Cyber Combat event.
96
- - Analyzed logs with Bash and Python for the Data Analysis event.
90
+ - heading: 1st in SANS Academy Cup 2024
91
+ details: "- Competed as the Delogrand Web Exploit SME, solving SQLi, API, and HTTP packet crafting problems."
92
+ - heading: 1st in NCX 2023
93
+ details: |-
94
+ - Developed strategies, defensive scripts, and exploits for the Cyber Combat event.
95
+
96
+ - Analyzed logs with Bash and Python for the Data Analysis event.
97
97
  ~~~
98
98
 
99
99
  ~~~
100
100
  $kind: projects
101
- title: Selected Projects
101
+ title: Projects
102
102
  projects:
103
- - name: TongueToQuill
104
- link: tonguetoquill.com
105
- details: |
106
- - Rich markdown editor for perfectly formatted USAF and USSF documents with Claude MCP integration.
107
- - name: Quillmark
108
- link: github.com/nibsbin/quillmark
109
- details: |
110
- - Parameterization engine for generating arbitrarily typesetted documents from markdown content.
103
+ - name: TongueToQuill
104
+ link: tonguetoquill.com
105
+ details: "- Rich markdown editor for perfectly formatted USAF and USSF documents with Claude MCP integration."
106
+ - name: Quillmark
107
+ link: github.com/nibsbin/quillmark
108
+ details: "- Data-driven document engine for generating arbitrarily typesetted documents from markdown."
111
109
  ~~~
@@ -205,19 +205,17 @@
205
205
  item
206
206
  }
207
207
 
208
+ // The items start at the margin, as a section's prose and an entry's heading
209
+ // do. Only a bullet's text is set in from it, where its marker explains why.
208
210
  with-config(cfg => block(
209
211
  above: cfg.leading + cfg.rule-spacing,
210
- pad(
211
- // Line the items up with the bullets of the entries around them.
212
- left: cfg.marker-size + cfg.marker-indent,
213
- grid(
214
- columns: (1fr,) * columns,
215
- // Labeled items are two lines tall, so they need the extra gap to
216
- // stay visually separated.
217
- row-gutter: if labeled { cfg.leading + cfg.entry-spacing } else { cfg.leading },
218
- column-gutter: 1em,
219
- ..items.map(cell),
220
- ),
212
+ grid(
213
+ columns: (1fr,) * columns,
214
+ // Labeled items are two lines tall, so they need the extra gap to
215
+ // stay visually separated.
216
+ row-gutter: if labeled { cfg.leading + cfg.entry-spacing } else { cfg.leading },
217
+ column-gutter: 1em,
218
+ ..items.map(cell),
221
219
  ),
222
220
  ))
223
221
  }
@@ -25,7 +25,7 @@ main:
25
25
  qualifications: { title: "Qualifications & experience" }
26
26
  # The chart's one piece of prose. It is set on the ruled notes area at the
27
27
  # foot of the page, and a rater goes on writing below it during the discussion.
28
- description: "The body is what you want out of this discussion, and anything that shapes it that has no date to draw: a preference, an assignment you would turn down, a question for the rater. A constraint that ends in a known year goes in constraints, where the timeline can show it."
28
+ description: "What you want from this discussion: goals, preferences, assignments you'd turn down, questions for your rater. Put constraints that end in a known year under Constraints instead, so they show on the timeline."
29
29
  fields:
30
30
  name:
31
31
  # Read as `string` rather than `plaintext`: it reaches
@@ -33,7 +33,7 @@ main:
33
33
  type: string
34
34
  ui:
35
35
  group: officer
36
- description: "Grade and name as you want them read, set largest on the page, as in 'Capt John A. Snuffy'. This is also the exported PDF's title and author, so it is written out rather than marked up."
36
+ description: "Your grade and name, for example 'Capt John A. Snuffy'. It also names the PDF."
37
37
 
38
38
  duty_title:
39
39
  type: plaintext
@@ -41,7 +41,7 @@ main:
41
41
  default: ""
42
42
  ui:
43
43
  group: officer
44
- description: "The job you hold today, as in Instructor or Flight Commander. The unit goes in unit. It prints under your name and heads the current-assignment block the vectors branch from."
44
+ description: "Your current job, for example Instructor or Flight Commander."
45
45
 
46
46
  unit:
47
47
  type: plaintext
@@ -49,7 +49,7 @@ main:
49
49
  default: ""
50
50
  ui:
51
51
  group: officer
52
- description: "Unit and base, as in '333 TRS, Keesler AFB'."
52
+ description: "Your unit and base, for example '333 TRS, Keesler AFB'."
53
53
 
54
54
  afsc:
55
55
  type: plaintext
@@ -58,21 +58,21 @@ main:
58
58
  ui:
59
59
  group: officer
60
60
  compact: true
61
- description: "Your AFSC with its skill level and any prefix, as in 17S3 or K17D3. It leads the line under your name, because it says which half of the career field the plan is in."
61
+ description: "Your AFSC with its skill level and any prefix, for example 17S3 or K17D3."
62
62
 
63
63
  commissioning_yg:
64
64
  type: integer
65
65
  ui:
66
66
  group: officer
67
67
  compact: true
68
- description: "Commissioning year group. Every milestone on the timeline is counted from this year, so it is the one number that changes the whole chart: a board at YG+8 lands in this year plus eight."
68
+ description: "Your commissioning year group. Every milestone on the timeline is counted from it."
69
69
 
70
70
  adjusted_yg:
71
71
  type: integer?
72
72
  ui:
73
73
  group: officer
74
74
  compact: true
75
- description: "Adjusted year group, if a board or a break in service moved yours. The chart counts every milestone from it and prints it as your year group, noting the one you commissioned in. Leave blank when it is unchanged; the chart then counts from your commissioning year group."
75
+ description: "Your adjusted year group, if a board or a break in service changed it. Leave blank if it hasn't."
76
76
 
77
77
  date_of_rank:
78
78
  type: date
@@ -80,7 +80,7 @@ main:
80
80
  ui:
81
81
  group: officer
82
82
  compact: true
83
- description: "Date of rank in your current grade, YYYY-MM-DD. Leave blank to print a dash."
83
+ description: "Date of rank in your current grade."
84
84
 
85
85
  date_arrived_station:
86
86
  type: date
@@ -88,14 +88,14 @@ main:
88
88
  ui:
89
89
  group: officer
90
90
  compact: true
91
- description: "Date arrived station, YYYY-MM-DD. Leave blank to print a dash."
91
+ description: "When you arrived at your current station."
92
92
 
93
93
  timeline_start_year:
94
94
  type: integer
95
95
  ui:
96
96
  group: officer
97
97
  compact: true
98
- description: "First calendar year the timeline shows. Usually the current year: the chart is a plan, so it starts where you are, not where you commissioned."
98
+ description: "The first year on the timeline, usually this year."
99
99
 
100
100
  advanced_degree:
101
101
  type: plaintext
@@ -103,7 +103,7 @@ main:
103
103
  default: ""
104
104
  ui:
105
105
  group: officer
106
- description: "Advanced academic degree, as in 'MS Cyber Operations, AFIT'. Add '(in progress)' for one you have not finished. Leave blank if you hold none: the slot prints a dash rather than disappearing, because its absence is itself information to a board."
106
+ description: "Your advanced degree, for example 'MS Cyber Operations, AFIT'. Add '(in progress)' if you're still working on it."
107
107
 
108
108
 
109
109
  timeline_years:
@@ -112,14 +112,14 @@ main:
112
112
  ui:
113
113
  group: plan
114
114
  compact: true
115
- description: "How many years wide the timeline is, at most eighteen; a wider window draws at eighteen. Twelve carries a Captain from today past the Lt Col board and is the comfortable reading width. The full milestone ladder runs to YG+17, so widening it toward eighteen brings the SDE looks into view at the cost of narrower columns. A milestone past the window's far end is counted in a note rather than dropped; one before it is history, except a course passed unticked, which is listed as overdue."
115
+ description: "How many years the timeline covers, up to 18. Twelve takes a Captain past the Lt Col board; go wider to bring the SDE boards into view."
116
116
 
117
117
  move_year:
118
118
  type: integer?
119
119
  ui:
120
120
  group: plan
121
121
  compact: true
122
- description: "The year you expect to leave this assignment. The current-assignment block runs until it and every vector starts from it, so this is the date a rater reads first. Every vector leaves on this one date; a vector that stays longer, say to upgrade in place, starts with that extension as its first tour. Leave blank to start the vectors at the left edge of the timeline with no current block."
122
+ description: "The year you expect to leave your current assignment. Every vector starts from this move. To stay longer on one vector, make the extension its first tour."
123
123
 
124
124
  move_cycle:
125
125
  type: enum
@@ -128,7 +128,7 @@ main:
128
128
  ui:
129
129
  group: plan
130
130
  compact: true
131
- description: "The VML cycle you would move on in that year. Winter moves print in the first half of the year and Summer moves in the second."
131
+ description: "The VML cycle you expect to move on."
132
132
 
133
133
  constraints:
134
134
  type: array
@@ -143,13 +143,13 @@ main:
143
143
  type: plaintext
144
144
  inline: true
145
145
  title: Constraint
146
- description: "What limits the plan, short enough for a bar, as in 'Join-spouse, no OCONUS'."
146
+ description: "What limits the plan, kept short, for example 'Join-spouse, no OCONUS'."
147
147
  through:
148
148
  type: integer
149
149
  title: Through
150
- description: "The last year it holds."
150
+ description: "The last year it applies."
151
151
  default: []
152
- description: "Anything that limits where or when you can move and ends in a known year: a join-spouse assignment, a degree finishing, a child's school year. Each prints under the timeline's years as a bar from its left edge to the end of the last year the constraint holds, above the vectors, so a rater sees which ones cross it. A constraint with no end year belongs in the body."
152
+ description: "Anything that limits where or when you can move and ends in a known year, like a join-spouse assignment or a degree in progress. Each shows as a bar across the timeline."
153
153
 
154
154
  vectors:
155
155
  type: array
@@ -163,7 +163,7 @@ main:
163
163
  type: plaintext
164
164
  inline: true
165
165
  default: ""
166
- description: "What this vector is for, as in 'Command track' or 'Joint'. Its rank comes from its position: the first row prints as Primary, the second as Alternate, the third as Backup."
166
+ description: "What this path is for, for example 'Command track' or 'Joint'."
167
167
  tours:
168
168
  type: array
169
169
  ui:
@@ -175,22 +175,22 @@ main:
175
175
  type: plaintext
176
176
  inline: true
177
177
  title: Assignment
178
- description: "Assignment and unit as you would say it, as in '333 TRS/DO' or 'Joint Staff J6'. Keep it to what fits: roughly twelve characters per year of length at the default width. A longer title sets smaller, or turns up the side of a narrow block, and one that fits neither way is left off its block."
178
+ description: "The assignment, for example '333 TRS/DO' or 'Joint Staff J6'. Keep it short: about 12 characters per year fits."
179
179
  years:
180
180
  type: number
181
181
  default: 2
182
182
  title: Years
183
- description: "Length in years, in halves: 0.5 to 4. The timeline is ruled in half-years, one per VML cycle, so a length is rounded to the nearest half first, and one that rounds to outside that range draws at the nearer end, marked with a dagger. A whole number of years keeps you on the cycle you moved in on; a half switches Summer to Winter or back."
183
+ description: "Length in years, from 0.5 to 4 in half-year steps."
184
184
  school:
185
185
  type: boolean
186
186
  default: false
187
- description: "Tick for a school you would move for, such as IDE or SDE in residence or Weapons School, rather than a duty assignment. It prints outlined instead of filled, so a year in a classroom does not read as a year in a job."
188
- description: "The assignments on this row, in the order you would serve them. The first starts on your move, and each one after starts when the one before it ends, so there are no dates to keep in step."
187
+ description: "Whether this is a school, such as IDE, SDE, or Weapons School, rather than a job."
188
+ description: "The assignments on this path, in order. Each starts when the one before it ends."
189
189
  default:
190
190
  - { track: "", tours: [] }
191
191
  - { track: "", tours: [] }
192
192
  - { track: "", tours: [] }
193
- description: "One row per alternative career path after the assignment you hold now: a primary, an alternate and a backup, in that order. One is a plan; three is a conversation, and all the page holds."
193
+ description: "Up to three career paths after your current assignment: primary, alternate, and backup, in that order."
194
194
 
195
195
  stratifications:
196
196
  type: array
@@ -209,15 +209,15 @@ main:
209
209
  inline: true
210
210
  default: ""
211
211
  title: Rater
212
- description: "Your rater's stratification as it was written, as in '#1/14 Capts'."
212
+ description: "Your rater's stratification as written, for example '#1/14 Capts'."
213
213
  hlr:
214
214
  type: plaintext
215
215
  inline: true
216
216
  default: ""
217
217
  title: Higher Level Reviewer
218
- description: "Your Higher Level Reviewer's stratification as it was written, as in '#1/45 CGOs'. Leave blank where you drew none."
218
+ description: "Your higher level reviewer's stratification, for example '#1/45 CGOs'. Leave blank if you didn't get one."
219
219
  default: []
220
- description: "Your last three years of stratifications, in any order: the page sets the most recent first. Three is all the page holds. Written out, a row is `{year: 2026, rater: \"#1/14 Capts\", hlr: \"#1/45 CGOs\"}`."
220
+ description: "Your stratifications from the last three years."
221
221
 
222
222
  awards:
223
223
  type: array
@@ -227,7 +227,7 @@ main:
227
227
  default: []
228
228
  ui:
229
229
  group: record
230
- description: "Major awards, one per line, strongest first. Wing level and above earns a line; anything smaller costs more room than it wins."
230
+ description: "Major awards, one per line, strongest first. Wing level and above is worth the space."
231
231
 
232
232
  certifications:
233
233
  type: array
@@ -237,7 +237,7 @@ main:
237
237
  default: []
238
238
  ui:
239
239
  group: record
240
- description: "Certifications and courses, one per line. Name the certification a board would recognize rather than every course you have sat. PME and the Cyber 200 and 300 courses are ticked under qualifications instead."
240
+ description: "Certifications a board would recognize, one per line. Mark PME and the Cyber 200 and 300 courses under Qualifications instead."
241
241
 
242
242
  deployments:
243
243
  type: array
@@ -247,7 +247,7 @@ main:
247
247
  default: []
248
248
  ui:
249
249
  group: record
250
- description: "Deployments and short tours, one per line, with the month you returned: it is what a rater needs to work out when you are next eligible."
250
+ description: "Deployments and short tours, one per line, with the month you returned."
251
251
 
252
252
  # The page prints every member in four rows and marks the held ones, so an
253
253
  # empty box is as much of the chart as a filled one. A row is a property
@@ -259,7 +259,7 @@ main:
259
259
  ui:
260
260
  group: qualifications
261
261
  layout: flat
262
- description: "Tick what you hold. The page prints the whole 17X vocabulary and marks these: a rater reads the empty boxes as readily as the filled ones, so what you have not done yet is on the page whether you tick it or not. A ticked course or school also marks its milestone on the timeline done. Written out, a tick is `flight_cc: true`, and a tick with its detail `flight_cc: {detail: UMS Flt/CC}`; an unticked member is left out."
262
+ description: "Mark what you've done. The page lists every qualification and marks the ones you hold. Marking a course or school also marks its milestone done on the timeline."
263
263
  properties:
264
264
  command:
265
265
  type: matrix
@@ -278,7 +278,7 @@ main:
278
278
  type: plaintext
279
279
  inline: true
280
280
  default: ""
281
- description: "The unit, course, year or distinction that proves it, set in italics after the label, as in '23 IOS' or 'DG'. Leave blank where the label says enough on its own."
281
+ description: "The unit, year, or distinction behind it, for example '23 IOS' or 'DG'. Optional."
282
282
  operations:
283
283
  type: matrix
284
284
  title: Operations
@@ -8,7 +8,7 @@ typst:
8
8
  plate_file: plate.typ
9
9
 
10
10
  main:
11
- description: The body holds the specific accomplishments, one bullet per line.
11
+ description: List the nominee's specific accomplishments in the body, one bullet each.
12
12
  fields:
13
13
  award:
14
14
  type: string
@@ -21,42 +21,42 @@ main:
21
21
  award_period:
22
22
  type: string
23
23
  default: ""
24
- description: Date range, as in 1 Jan 2026 – 31 Mar 2026.
24
+ description: The period the award covers, for example 1 Jan 2026 – 31 Mar 2026.
25
25
  ui:
26
26
  compact: true
27
27
  rankname_of_nominee:
28
28
  type: string
29
29
  default: ""
30
- description: Rank and name, as in RANK FIRST M. LAST.
30
+ description: The nominee's rank and name, for example MSgt JANE A. DOE.
31
31
  ui:
32
32
  compact: true
33
33
  majcom_fldcom_foa_or_dru:
34
34
  type: string
35
35
  default: ""
36
- description: Abbreviation, as in ACC.
36
+ description: The abbreviation, for example ACC.
37
37
  ui:
38
38
  compact: true
39
39
  dafsc_duty_title:
40
40
  type: string
41
41
  default: ""
42
- description: DAFSC, then duty title.
42
+ description: The nominee's DAFSC and duty title.
43
43
  nominees_telephone_dsn_commercial:
44
44
  type: string
45
45
  default: ""
46
- description: DSN and commercial numbers, as in DSN XXX-XXXX / (XXX) XXX-XXXX.
46
+ description: DSN and commercial numbers, for example DSN 555-1234 / (555) 555-1234.
47
47
  unit_office_symbol_street_address_base_state_zip:
48
48
  type: string
49
49
  default: ""
50
- description: One line, as in UNIT/SYMBOL, STREET, BASE ST ZIP.
50
+ description: Unit, office symbol, and full address on one line.
51
51
  unit_commander_rank_name_and_telephone:
52
52
  type: string
53
53
  default: ""
54
- description: Rank, name and telephone, as in RANK FIRST M. LAST, (XXX) XXX-XXXX.
54
+ description: The commander's rank, name, and phone number.
55
55
 
56
56
  card_kinds:
57
57
  accomplishments_continued:
58
58
  title: Specific Accomplishments (Continued — Page 2)
59
- description: Optional. Add this card only when page 2 overflow is required. Use the card body for continued bullets, one per line. Rank/name on page 2 matches the main nominee line automatically.
59
+ description: Continues the accomplishments on page 2. Add it only when they don't fit on page 1.
60
60
  seed:
61
61
  $body: |
62
62
  **Category (continued)**