diff --git a/docs/specification/img/sdb-bridge.ps b/docs/specification/img/sdb-bridge.ps
index 0fda83d4da170a4a72384a8f5c5f6dd038c0fa3f..11a0d113d260a9743ecf973bde05e969e96e5702 100644
--- a/docs/specification/img/sdb-bridge.ps
+++ b/docs/specification/img/sdb-bridge.ps
@@ -208,6 +208,39 @@
     0 2 8 (....reserved....) name
 } def
 
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
 /empty {
     frame
     .2 .2 .2 setrgbcolor
diff --git a/docs/specification/img/sdb-component.ps b/docs/specification/img/sdb-component.ps
index 349a5414186711c545288ae03974d2f6e8d92dfd..8ffbd539f758a017aac4de6e64095f2980c49bb9 100644
--- a/docs/specification/img/sdb-component.ps
+++ b/docs/specification/img/sdb-component.ps
@@ -208,6 +208,39 @@
     0 2 8 (....reserved....) name
 } def
 
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
 /empty {
     frame
     .2 .2 .2 setrgbcolor
diff --git a/docs/specification/img/sdb-device.ps b/docs/specification/img/sdb-device.ps
index 6068d3664de63db7e9c4d2265cc3fdf6e2813fe9..89b11e177e2e3e2dee82ed2ccdc1c87090cadea8 100644
--- a/docs/specification/img/sdb-device.ps
+++ b/docs/specification/img/sdb-device.ps
@@ -208,6 +208,39 @@
     0 2 8 (....reserved....) name
 } def
 
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
 /empty {
     frame
     .2 .2 .2 setrgbcolor
diff --git a/docs/specification/img/sdb-empty.ps b/docs/specification/img/sdb-empty.ps
index a709da32bbb71f798abad95344ef263287b6a5eb..a19a883fa405fd36ac30bbc8499e6e7bf8b467a1 100644
--- a/docs/specification/img/sdb-empty.ps
+++ b/docs/specification/img/sdb-empty.ps
@@ -208,6 +208,39 @@
     0 2 8 (....reserved....) name
 } def
 
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
 /empty {
     frame
     .2 .2 .2 setrgbcolor
diff --git a/docs/specification/img/sdb-integration.ps b/docs/specification/img/sdb-integration.ps
index 8847886d786e66bcf45e56346fe47dda7290e450..2ea8a8b00ad417e8f04390245a1c3e80e55ceb7e 100644
--- a/docs/specification/img/sdb-integration.ps
+++ b/docs/specification/img/sdb-integration.ps
@@ -208,6 +208,39 @@
     0 2 8 (....reserved....) name
 } def
 
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
 /empty {
     frame
     .2 .2 .2 setrgbcolor
diff --git a/docs/specification/img/sdb-interconnect.ps b/docs/specification/img/sdb-interconnect.ps
index 2092a34551808322c9b2301482e22f7d191bf6ae..63c429bafb0801e41ed163c875f023dc507e06ea 100644
--- a/docs/specification/img/sdb-interconnect.ps
+++ b/docs/specification/img/sdb-interconnect.ps
@@ -208,6 +208,39 @@
     0 2 8 (....reserved....) name
 } def
 
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
 /empty {
     frame
     .2 .2 .2 setrgbcolor
diff --git a/docs/specification/img/sdb-product.ps b/docs/specification/img/sdb-product.ps
index 9ba0c6adf461c4d20ecccb0e6a2719916528b28a..abab22900a2a8481fce0553eebf16cbf7bf7266e 100644
--- a/docs/specification/img/sdb-product.ps
+++ b/docs/specification/img/sdb-product.ps
@@ -208,6 +208,39 @@
     0 2 8 (....reserved....) name
 } def
 
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
 /empty {
     frame
     .2 .2 .2 setrgbcolor
diff --git a/docs/specification/img/sdb-synthesis.ps b/docs/specification/img/sdb-synthesis.ps
new file mode 100644
index 0000000000000000000000000000000000000000..47d519e51cbb790247102791a7a97e1f8d20da1b
--- /dev/null
+++ b/docs/specification/img/sdb-synthesis.ps
@@ -0,0 +1,259 @@
+%!PS-Adobe-2.0 EPSF-1.2
+%%Creator: Alessandro Rubini
+%%Title: sdb-synthesis
+%%BoundingBox: 0 0 200 80
+%%EndComments
+
+/S {dup ==} def
+/S2 {2 copy == ==} def
+/S3 {3 copy == == ==} def
+/S4 {4 copy == == == ==} def
+
+/minx 0 def
+/miny 0 def
+/maxx 200 def
+/maxy 80 def
+
+0 setlinecap 1 setlinejoin
+
+/centerstring { % fontname width string -- fontsize
+    gsave
+    3 2 roll findfont setfont          % width string
+    dup 3 1 roll                       % string width string
+    stringwidth pop div dup 3 1 roll   % scale string scale
+    dup neg 0 exch rmoveto             % scale string scale
+    currentfont exch scalefont setfont % scale string
+    show
+    grestore
+} def
+
+/centeratsize { % x y string --
+	gsave
+	3 1 roll moveto 
+	dup stringwidth pop 2 div neg 0 rmoveto show
+	grestore
+} def
+
+
+/grid {
+	gsave
+	.8 .8 .8 setrgbcolor
+	.2 setlinewidth
+	% vertical lines
+	minx 10 maxx {
+		dup
+		miny moveto maxy lineto stroke
+	} for
+	% horizontal lines
+	miny 10 maxy {
+		dup
+		minx exch moveto maxx exch lineto stroke
+	} for
+} def
+%grid
+
+0 0 moveto
+30 10 translate
+10 15 scale
+
+% make a 4-byte word, with ticks inside
+/word { % r g b fillr fillg fillb x y --
+	gsave
+	translate
+	.08 setlinewidth
+	1 setlinejoin
+	1 setlinecap
+	setrgbcolor
+	0 0 moveto 4 0 rlineto 0 1 rlineto -4 0 rlineto closepath fill
+	setrgbcolor
+	0 0 moveto 4 0 rlineto 0 1 rlineto -4 0 rlineto closepath stroke
+	1 0 moveto 0 .1 rlineto stroke
+	2 0 moveto 0 .25 rlineto stroke
+	3 0 moveto 0 .1 rlineto stroke
+	grestore
+} def
+
+% only the border, but same arguments as above
+/short { % r g b fillr fillg fillb x y --
+	gsave
+	translate
+	.08 setlinewidth
+	1 setlinejoin
+	1 setlinecap
+	setrgbcolor
+	setrgbcolor
+	0 0 moveto 2 0 rlineto 0 1 rlineto -2 0 rlineto closepath stroke
+	grestore
+} def
+    
+% only the border, but same arguments as above
+/byte { % r g b fillr fillg fillb x y --
+	gsave
+	translate
+	.08 setlinewidth
+	1 setlinejoin
+	1 setlinecap
+	setrgbcolor
+	setrgbcolor
+	0 0 moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto closepath stroke
+	grestore
+} def
+    
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+/colempty {.7 .7 .7  1  1  1} def
+/colgray1 {.7 .7 .7 .9 .9 .9} def
+/colgray2 {.6 .6 .6 .8 .8 .8} def
+/colred   {.8 .4 .4  1 .8 .8} def
+/colblu   {.4 .4 .8 .8 .8  1} def
+/colgre   {.4 .8 .4 .8  1 .8} def
+
+/Helvetica-Bold findfont .7 scalefont setfont
+-2.5 0.2 moveto (0x30) show
+-2.5 1.2 moveto (0x20) show
+-2.5 2.2 moveto (0x10) show
+-2.5 3.2 moveto (0x00) show
+
+/Courier-Bold findfont .7 scalefont setfont
+
+/name { % x y wid string --
+    /s exch def
+    /wid exch def
+    /y exch def
+    gsave 
+    wid 2 div add y .4 add %translate 1.5 0 scale 0 0
+    s
+    centeratsize
+    grestore
+} def
+
+/frame {
+    0 4 12 {
+	/xf exch def
+	0 1 3 {
+	    /yf exch def
+	    colempty xf yf word
+	} for
+    } for
+} def
+
+/prod {
+    frame
+    colblu 8 2 word
+    colblu 12 2 word
+    0 4 12 {
+	/xf exch def
+	0 1 1 {
+	    /yf exch def
+	    colblu xf yf word
+	} for
+    } for
+
+    colblu 15 0 byte
+    0 0 .6 setrgbcolor
+    8 2 8 (....vendor_id....) name
+    0 1 4 (device_id) name
+    4 1 4 (version) name
+    8 1 4 (..date..) name
+    12 1 4 (..name..) name
+    0 0 15 (...............name...............) name
+    15 0 1 (T) name
+} def
+
+/comp {
+    prod
+    0 .4 0 setrgbcolor
+    colgre 8 3 word
+    colgre 12 3 word
+    colgre 0 2 word
+    colgre 4 2 word
+    8 3 8 (...addr_first...) name
+    0 2 8 (...addr_last...) name
+    
+} def
+
+/inter {
+    comp
+    colempty 4 3 short
+    colempty 6 3 byte
+    colempty 7 3 byte
+    .2 .2 .2 setrgbcolor
+    0 3 4 (magic) name
+    4 3 2 (nrec) name
+    6 3 1 (V) name
+    7 3 1 (B) name
+} def
+
+/dev {
+    comp
+    colempty 0 3 short
+    colempty 2 3 byte
+    colempty 3 3 byte
+    .2 .2 .2 setrgbcolor
+    0 3 2 (class) name
+    2 3 1 (A) name
+    3 3 1 (a) name
+    4 3 4 (bus-spec) name
+} def
+
+/bridge {
+    comp
+    .2 .2 .2 setrgbcolor
+    0 3 8 (......child......) name
+} def
+
+/integr {
+    prod
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............reserved..............) name
+    0 2 8 (....reserved....) name
+} def
+
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/empty {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............reserved..............) name
+    0 2 16 (..............reserved..............) name
+    0 1 16 (..............reserved..............) name
+    0 0 15 (..............reserved............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+synthesis
+
+showpage
\ No newline at end of file
diff --git a/docs/specification/img/sdb-url.ps b/docs/specification/img/sdb-url.ps
new file mode 100644
index 0000000000000000000000000000000000000000..7310cf600439e008041fa524813218762ee85fa6
--- /dev/null
+++ b/docs/specification/img/sdb-url.ps
@@ -0,0 +1,257 @@
+%!PS-Adobe-2.0 EPSF-1.2
+%%Creator: Alessandro Rubini
+%%Title: sdb-repo_url
+%%BoundingBox: 0 0 200 80
+%%EndComments
+
+/S {dup ==} def
+/S2 {2 copy == ==} def
+/S3 {3 copy == == ==} def
+/S4 {4 copy == == == ==} def
+
+/minx 0 def
+/miny 0 def
+/maxx 200 def
+/maxy 80 def
+
+0 setlinecap 1 setlinejoin
+
+/centerstring { % fontname width string -- fontsize
+    gsave
+    3 2 roll findfont setfont          % width string
+    dup 3 1 roll                       % string width string
+    stringwidth pop div dup 3 1 roll   % scale string scale
+    dup neg 0 exch rmoveto             % scale string scale
+    currentfont exch scalefont setfont % scale string
+    show
+    grestore
+} def
+
+/centeratsize { % x y string --
+	gsave
+	3 1 roll moveto 
+	dup stringwidth pop 2 div neg 0 rmoveto show
+	grestore
+} def
+
+
+/grid {
+	gsave
+	.8 .8 .8 setrgbcolor
+	.2 setlinewidth
+	% vertical lines
+	minx 10 maxx {
+		dup
+		miny moveto maxy lineto stroke
+	} for
+	% horizontal lines
+	miny 10 maxy {
+		dup
+		minx exch moveto maxx exch lineto stroke
+	} for
+} def
+%grid
+
+0 0 moveto
+30 10 translate
+10 15 scale
+
+% make a 4-byte word, with ticks inside
+/word { % r g b fillr fillg fillb x y --
+	gsave
+	translate
+	.08 setlinewidth
+	1 setlinejoin
+	1 setlinecap
+	setrgbcolor
+	0 0 moveto 4 0 rlineto 0 1 rlineto -4 0 rlineto closepath fill
+	setrgbcolor
+	0 0 moveto 4 0 rlineto 0 1 rlineto -4 0 rlineto closepath stroke
+	1 0 moveto 0 .1 rlineto stroke
+	2 0 moveto 0 .25 rlineto stroke
+	3 0 moveto 0 .1 rlineto stroke
+	grestore
+} def
+
+% only the border, but same arguments as above
+/short { % r g b fillr fillg fillb x y --
+	gsave
+	translate
+	.08 setlinewidth
+	1 setlinejoin
+	1 setlinecap
+	setrgbcolor
+	setrgbcolor
+	0 0 moveto 2 0 rlineto 0 1 rlineto -2 0 rlineto closepath stroke
+	grestore
+} def
+    
+% only the border, but same arguments as above
+/byte { % r g b fillr fillg fillb x y --
+	gsave
+	translate
+	.08 setlinewidth
+	1 setlinejoin
+	1 setlinecap
+	setrgbcolor
+	setrgbcolor
+	0 0 moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto closepath stroke
+	grestore
+} def
+    
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+/colempty {.7 .7 .7  1  1  1} def
+/colred   {.8 .4 .4  1 .8 .8} def
+/colblu   {.4 .4 .8 .8 .8  1} def
+/colgre   {.4 .8 .4 .8  1 .8} def
+
+/Helvetica-Bold findfont .7 scalefont setfont
+-2.5 0.2 moveto (0x30) show
+-2.5 1.2 moveto (0x20) show
+-2.5 2.2 moveto (0x10) show
+-2.5 3.2 moveto (0x00) show
+
+/Courier-Bold findfont .7 scalefont setfont
+
+/name { % x y wid string --
+    /s exch def
+    /wid exch def
+    /y exch def
+    gsave 
+    wid 2 div add y .4 add %translate 1.5 0 scale 0 0
+    s
+    centeratsize
+    grestore
+} def
+
+/frame {
+    0 4 12 {
+	/xf exch def
+	0 1 3 {
+	    /yf exch def
+	    colempty xf yf word
+	} for
+    } for
+} def
+
+/prod {
+    frame
+    colblu 8 2 word
+    colblu 12 2 word
+    0 4 12 {
+	/xf exch def
+	0 1 1 {
+	    /yf exch def
+	    colblu xf yf word
+	} for
+    } for
+
+    colblu 15 0 byte
+    0 0 .6 setrgbcolor
+    8 2 8 (....vendor_id....) name
+    0 1 4 (device_id) name
+    4 1 4 (version) name
+    8 1 4 (..date..) name
+    12 1 4 (..name..) name
+    0 0 15 (...............name...............) name
+    15 0 1 (T) name
+} def
+
+/comp {
+    prod
+    0 .4 0 setrgbcolor
+    colgre 8 3 word
+    colgre 12 3 word
+    colgre 0 2 word
+    colgre 4 2 word
+    8 3 8 (...addr_first...) name
+    0 2 8 (...addr_last...) name
+    
+} def
+
+/inter {
+    comp
+    colempty 4 3 short
+    colempty 6 3 byte
+    colempty 7 3 byte
+    .2 .2 .2 setrgbcolor
+    0 3 4 (magic) name
+    4 3 2 (nrec) name
+    6 3 1 (V) name
+    7 3 1 (B) name
+} def
+
+/dev {
+    comp
+    colempty 0 3 short
+    colempty 2 3 byte
+    colempty 3 3 byte
+    .2 .2 .2 setrgbcolor
+    0 3 2 (class) name
+    2 3 1 (A) name
+    3 3 1 (a) name
+    4 3 4 (bus-spec) name
+} def
+
+/bridge {
+    comp
+    .2 .2 .2 setrgbcolor
+    0 3 8 (......child......) name
+} def
+
+/integr {
+    prod
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............reserved..............) name
+    0 2 8 (....reserved....) name
+} def
+
+/repourl {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............repo_url..............) name
+    0 2 16 (..............repo_url..............) name
+    0 1 16 (..............repo_url..............) name
+    0 0 15 (..............repo_url............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/synthesis {
+    frame
+    % overwrite the frame with a different color for line 1
+    colgray1 0 3 word
+    colgray1 4 3 word
+    colgray1 8 3 word
+    colgray1 12 3 word
+    colgray1 0 1 word
+    colgray1 4 1 word
+    colgray2 8 1 word
+    colgray1 12 1 word
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............syn_name..............) name
+    0 2 16 (.............commit_id.............) name
+    0 1  8 (tool_name) name
+    8 1  4 (tool_ver) name
+   12 1  4 (date) name
+    0 0 15 (..............user_name..........) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+/empty {
+    frame
+    .2 .2 .2 setrgbcolor
+    0 3 16 (..............reserved..............) name
+    0 2 16 (..............reserved..............) name
+    0 1 16 (..............reserved..............) name
+    0 0 15 (..............reserved............) name
+    colempty 15 0 byte
+    15 0 1 (T) name
+} def    
+
+repourl
+
+showpage
\ No newline at end of file