Skip to content

Commit d85bcac

Browse files
Jami CogswellJami Cogswell
authored andcommitted
Java: update some models, undo temp edits; resolve conflicts
1 parent 540b839 commit d85bcac

24 files changed

+280
-378
lines changed

java/ql/lib/ext/org.apache.hc.client5.http.async.methods.model.yml

Lines changed: 84 additions & 92 deletions
Large diffs are not rendered by default.

java/ql/lib/ext/org.apache.hc.client5.http.classic.methods.model.yml

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,40 @@ extensions:
33
pack: codeql/java-all
44
extensible: sinkModel
55
data:
6-
# ! `ClassicHttpRequests` only extends `Object`; deprecated in favor of `ClassicRequestBuilder`, so should maybe be removed as a model eventually
7-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "create", "(Method,String)", "", "Argument[1]", "%-url", "manual"]
8-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "create", "(Method,URI)", "", "Argument[1]", "%-url", "manual"]
9-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "create", "(String,String)", "", "Argument[1]", "%-url", "manual"]
10-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "create", "(String,URI)", "", "Argument[1]", "%-url", "manual"]
11-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "delete", "(String)", "", "Argument[0]", "%-url", "manual"]
12-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "delete", "(URI)", "", "Argument[0]", "%-url", "manual"]
13-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "get", "(String)", "", "Argument[0]", "%-url", "manual"]
14-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "get", "(URI)", "", "Argument[0]", "%-url", "manual"]
15-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "head", "(String)", "", "Argument[0]", "%-url", "manual"]
16-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "head", "(URI)", "", "Argument[0]", "%-url", "manual"]
17-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "options", "(String)", "", "Argument[0]", "%-url", "manual"]
18-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "options", "(URI)", "", "Argument[0]", "%-url", "manual"]
19-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "patch", "(String)", "", "Argument[0]", "%-url", "manual"]
20-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "patch", "(URI)", "", "Argument[0]", "%-url", "manual"]
21-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "post", "(String)", "", "Argument[0]", "%-url", "manual"]
22-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "post", "(URI)", "", "Argument[0]", "%-url", "manual"]
23-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "put", "(String)", "", "Argument[0]", "%-url", "manual"]
24-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "put", "(URI)", "", "Argument[0]", "%-url", "manual"]
25-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "trace", "(String)", "", "Argument[0]", "%-url", "manual"]
26-
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "trace", "(URI)", "", "Argument[0]", "%-url", "manual"]
27-
# ! `HttpDelete` through `HttpTrace` below all extend Object>HeaderGroup>BasicHttpRequest>BasicClassicHttpRequest>HttpUriRequestBase
28-
- ["org.apache.hc.client5.http.classic.methods", "HttpDelete", True, "HttpDelete", "(String)", "", "Argument[0]", "%-url", "manual"]
29-
- ["org.apache.hc.client5.http.classic.methods", "HttpDelete", True, "HttpDelete", "(URI)", "", "Argument[0]", "%-url", "manual"]
30-
- ["org.apache.hc.client5.http.classic.methods", "HttpGet", True, "HttpGet", "(String)", "", "Argument[0]", "%-url", "manual"]
31-
- ["org.apache.hc.client5.http.classic.methods", "HttpGet", True, "HttpGet", "(URI)", "", "Argument[0]", "%-url", "manual"]
32-
- ["org.apache.hc.client5.http.classic.methods", "HttpHead", True, "HttpHead", "(String)", "", "Argument[0]", "%-url", "manual"]
33-
- ["org.apache.hc.client5.http.classic.methods", "HttpHead", True, "HttpHead", "(URI)", "", "Argument[0]", "%-url", "manual"]
34-
- ["org.apache.hc.client5.http.classic.methods", "HttpOptions", True, "HttpOptions", "(String)", "", "Argument[0]", "%-url", "manual"]
35-
- ["org.apache.hc.client5.http.classic.methods", "HttpOptions", True, "HttpOptions", "(URI)", "", "Argument[0]", "%-url", "manual"]
36-
- ["org.apache.hc.client5.http.classic.methods", "HttpPatch", True, "HttpPatch", "(String)", "", "Argument[0]", "%-url", "manual"]
37-
- ["org.apache.hc.client5.http.classic.methods", "HttpPatch", True, "HttpPatch", "(URI)", "", "Argument[0]", "%-url", "manual"]
38-
- ["org.apache.hc.client5.http.classic.methods", "HttpPost", True, "HttpPost", "(String)", "", "Argument[0]", "%-url", "manual"]
39-
- ["org.apache.hc.client5.http.classic.methods", "HttpPost", True, "HttpPost", "(URI)", "", "Argument[0]", "%-url", "manual"]
40-
- ["org.apache.hc.client5.http.classic.methods", "HttpPut", True, "HttpPut", "(String)", "", "Argument[0]", "%-url", "manual"]
41-
- ["org.apache.hc.client5.http.classic.methods", "HttpPut", True, "HttpPut", "(URI)", "", "Argument[0]", "%-url", "manual"]
42-
- ["org.apache.hc.client5.http.classic.methods", "HttpTrace", True, "HttpTrace", "(String)", "", "Argument[0]", "%-url", "manual"]
43-
- ["org.apache.hc.client5.http.classic.methods", "HttpTrace", True, "HttpTrace", "(URI)", "", "Argument[0]", "%-url", "manual"]
44-
# ! `HttpUriRequestBase` extends Object>HeaderGroup>BasicHttpRequest>BasicClassicHttpRequest; subclasses are `HttpDelete` through `HttpTrace` above
45-
- ["org.apache.hc.client5.http.classic.methods", "HttpUriRequestBase", True, "HttpUriRequestBase", "(String,URI)", "", "Argument[1]", "%-url", "manual"]
6+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "create", "(Method,String)", "", "Argument[1]", "open-url", "manual"] # hq-manual
7+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "create", "(Method,URI)", "", "Argument[1]", "open-url", "manual"] # hq-manual
8+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "create", "(String,String)", "", "Argument[1]", "open-url", "manual"] # hq-manual
9+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "create", "(String,URI)", "", "Argument[1]", "open-url", "manual"] # hq-manual
10+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "delete", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
11+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "delete", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
12+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "get", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
13+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "get", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
14+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "head", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
15+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "head", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
16+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "options", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
17+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "options", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
18+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "patch", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
19+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "patch", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
20+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "post", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
21+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "post", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
22+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "put", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
23+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "put", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
24+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "trace", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
25+
- ["org.apache.hc.client5.http.classic.methods", "ClassicHttpRequests", True, "trace", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
26+
- ["org.apache.hc.client5.http.classic.methods", "HttpDelete", True, "HttpDelete", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
27+
- ["org.apache.hc.client5.http.classic.methods", "HttpDelete", True, "HttpDelete", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
28+
- ["org.apache.hc.client5.http.classic.methods", "HttpGet", True, "HttpGet", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
29+
- ["org.apache.hc.client5.http.classic.methods", "HttpGet", True, "HttpGet", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
30+
- ["org.apache.hc.client5.http.classic.methods", "HttpHead", True, "HttpHead", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
31+
- ["org.apache.hc.client5.http.classic.methods", "HttpHead", True, "HttpHead", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
32+
- ["org.apache.hc.client5.http.classic.methods", "HttpOptions", True, "HttpOptions", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
33+
- ["org.apache.hc.client5.http.classic.methods", "HttpOptions", True, "HttpOptions", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
34+
- ["org.apache.hc.client5.http.classic.methods", "HttpPatch", True, "HttpPatch", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
35+
- ["org.apache.hc.client5.http.classic.methods", "HttpPatch", True, "HttpPatch", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
36+
- ["org.apache.hc.client5.http.classic.methods", "HttpPost", True, "HttpPost", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
37+
- ["org.apache.hc.client5.http.classic.methods", "HttpPost", True, "HttpPost", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
38+
- ["org.apache.hc.client5.http.classic.methods", "HttpPut", True, "HttpPut", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
39+
- ["org.apache.hc.client5.http.classic.methods", "HttpPut", True, "HttpPut", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
40+
- ["org.apache.hc.client5.http.classic.methods", "HttpTrace", True, "HttpTrace", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
41+
- ["org.apache.hc.client5.http.classic.methods", "HttpTrace", True, "HttpTrace", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
42+
- ["org.apache.hc.client5.http.classic.methods", "HttpUriRequestBase", True, "HttpUriRequestBase", "(String,URI)", "", "Argument[1]", "open-url", "manual"] # hq-manual

java/ql/lib/ext/org.apache.hc.client5.http.fluent.model.yml

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,22 @@ extensions:
33
pack: codeql/java-all
44
extensible: sinkModel
55
data:
6-
# ! `Request` only extends `Object`, no subclasses listed
7-
- ["org.apache.hc.client5.http.fluent", "Request", True, "create", "(Method,URI)", "", "Argument[1]", "%-url", "manual"]
8-
- ["org.apache.hc.client5.http.fluent", "Request", True, "create", "(String,String)", "", "Argument[1]", "%-url", "manual"]
9-
- ["org.apache.hc.client5.http.fluent", "Request", True, "create", "(String,URI)", "", "Argument[1]", "%-url", "manual"]
10-
- ["org.apache.hc.client5.http.fluent", "Request", True, "delete", "(String)", "", "Argument[0]", "%-url", "manual"]
11-
- ["org.apache.hc.client5.http.fluent", "Request", True, "delete", "(URI)", "", "Argument[0]", "%-url", "manual"]
12-
- ["org.apache.hc.client5.http.fluent", "Request", True, "get", "(String)", "", "Argument[0]", "%-url", "manual"]
13-
- ["org.apache.hc.client5.http.fluent", "Request", True, "get", "(URI)", "", "Argument[0]", "%-url", "manual"]
14-
- ["org.apache.hc.client5.http.fluent", "Request", True, "head", "(String)", "", "Argument[0]", "%-url", "manual"]
15-
- ["org.apache.hc.client5.http.fluent", "Request", True, "head", "(URI)", "", "Argument[0]", "%-url", "manual"]
16-
- ["org.apache.hc.client5.http.fluent", "Request", True, "options", "(String)", "", "Argument[0]", "%-url", "manual"]
17-
- ["org.apache.hc.client5.http.fluent", "Request", True, "options", "(URI)", "", "Argument[0]", "%-url", "manual"]
18-
- ["org.apache.hc.client5.http.fluent", "Request", True, "patch", "(String)", "", "Argument[0]", "%-url", "manual"]
19-
- ["org.apache.hc.client5.http.fluent", "Request", True, "patch", "(URI)", "", "Argument[0]", "%-url", "manual"]
20-
- ["org.apache.hc.client5.http.fluent", "Request", True, "post", "(String)", "", "Argument[0]", "%-url", "manual"]
21-
- ["org.apache.hc.client5.http.fluent", "Request", True, "post", "(URI)", "", "Argument[0]", "%-url", "manual"]
22-
- ["org.apache.hc.client5.http.fluent", "Request", True, "put", "(String)", "", "Argument[0]", "%-url", "manual"]
23-
- ["org.apache.hc.client5.http.fluent", "Request", True, "put", "(URI)", "", "Argument[0]", "%-url", "manual"]
24-
- ["org.apache.hc.client5.http.fluent", "Request", True, "trace", "(String)", "", "Argument[0]", "%-url", "manual"]
25-
- ["org.apache.hc.client5.http.fluent", "Request", True, "trace", "(URI)", "", "Argument[0]", "%-url", "manual"]
6+
- ["org.apache.hc.client5.http.fluent", "Request", True, "create", "(Method,URI)", "", "Argument[1]", "open-url", "manual"] # hq-manual
7+
- ["org.apache.hc.client5.http.fluent", "Request", True, "create", "(String,String)", "", "Argument[1]", "open-url", "manual"] # hq-manual
8+
- ["org.apache.hc.client5.http.fluent", "Request", True, "create", "(String,URI)", "", "Argument[1]", "open-url", "manual"] # hq-manual
9+
- ["org.apache.hc.client5.http.fluent", "Request", True, "delete", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
10+
- ["org.apache.hc.client5.http.fluent", "Request", True, "delete", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
11+
- ["org.apache.hc.client5.http.fluent", "Request", True, "get", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
12+
- ["org.apache.hc.client5.http.fluent", "Request", True, "get", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
13+
- ["org.apache.hc.client5.http.fluent", "Request", True, "head", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
14+
- ["org.apache.hc.client5.http.fluent", "Request", True, "head", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
15+
- ["org.apache.hc.client5.http.fluent", "Request", True, "options", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
16+
- ["org.apache.hc.client5.http.fluent", "Request", True, "options", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
17+
- ["org.apache.hc.client5.http.fluent", "Request", True, "patch", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
18+
- ["org.apache.hc.client5.http.fluent", "Request", True, "patch", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
19+
- ["org.apache.hc.client5.http.fluent", "Request", True, "post", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
20+
- ["org.apache.hc.client5.http.fluent", "Request", True, "post", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
21+
- ["org.apache.hc.client5.http.fluent", "Request", True, "put", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
22+
- ["org.apache.hc.client5.http.fluent", "Request", True, "put", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual
23+
- ["org.apache.hc.client5.http.fluent", "Request", True, "trace", "(String)", "", "Argument[0]", "open-url", "manual"] # hq-manual
24+
- ["org.apache.hc.client5.http.fluent", "Request", True, "trace", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual

java/ql/lib/ext/org.apache.hc.client5.http.protocol.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@ extensions:
33
pack: codeql/java-all
44
extensible: summaryModel
55
data:
6-
# ! `RedirectLocations` only extends `Object`, no subclasses listed
7-
- ["org.apache.hc.client5.http.protocol", "RedirectLocations", True, "add", "(URI)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"]
6+
- ["org.apache.hc.client5.http.protocol", "RedirectLocations", True, "add", "(URI)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] # hq-manual

java/ql/lib/ext/org.apache.hc.client5.http.utils.yml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@ extensions:
33
pack: codeql/java-all
44
extensible: summaryModel
55
data:
6-
# ! all of the below may need "HttpHost target" parameter accounted for as part of the step, and possibly `String reference` and `URI reference` as well.
7-
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "extractHost", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
8-
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "resolve", "(URI,HttpHost,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
9-
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "resolve", "(URI,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
10-
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "resolve", "(URI,URI)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
11-
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "rewriteURI", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
12-
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "rewriteURI", "(URI,HttpHost)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
13-
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "rewriteURI", "(URI,HttpHost,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
6+
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "extractHost", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # hq-manual
7+
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "resolve", "(URI,HttpHost,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # hq-manual
8+
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "resolve", "(URI,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # hq-manual
9+
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "resolve", "(URI,URI)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # hq-manual
10+
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "rewriteURI", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # hq-manual
11+
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "rewriteURI", "(URI,HttpHost)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # hq-manual
12+
- ["org.apache.hc.client5.http.utils", "URIUtils", True, "rewriteURI", "(URI,HttpHost,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # hq-manual
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
extensions:
22
- addsTo:
33
pack: codeql/java-all
4-
extensible: summaryModel
4+
extensible: sinkModel
55
data:
6-
# ! `BenchmarkConfig$Builder` only extends Object, no Javadocs on the setUri method, may be too internal to include?
7-
- ["org.apache.hc.core5.benchmark", "BenchmarkConfig$Builder", True, "setUri", "(URI)", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
6+
- ["org.apache.hc.core5.benchmark", "BenchmarkConfig$Builder", True, "setUri", "(URI)", "", "Argument[0]", "open-url", "manual"] # hq-manual

0 commit comments

Comments
 (0)