diff --git a/concrete-beam/assets/beam-section.typ b/concrete-beam/assets/beam-section.typ deleted file mode 100644 index e5d2a3b..0000000 --- a/concrete-beam/assets/beam-section.typ +++ /dev/null @@ -1,28 +0,0 @@ -// Generated by beam_section.py from input.yaml - do not edit by hand. -#let beam-section() = { - box(width: 180pt, height: 180pt)[ - #place(dx: 48pt, dy: 28pt, rect(width: 76pt, height: 114pt, fill: rgb("#f2f2f2"), stroke: 1pt + black)) - #place(dx: 58.5pt, dy: 38.5pt, rect(width: 55pt, height: 93pt, radius: 3pt, stroke: 2pt + black)) - #place(dx: 59.5pt, dy: 124.6pt, circle(radius: 2.969pt, fill: black)) - #place(dx: 106.6pt, dy: 124.6pt, circle(radius: 2.969pt, fill: black)) - #place(dx: 59.5pt, dy: 39.5pt, circle(radius: 2.375pt, fill: black)) - #place(dx: 107.8pt, dy: 39.5pt, circle(radius: 2.375pt, fill: black)) - #place(line(start: (48pt, 158pt), end: (124pt, 158pt), stroke: 0.6pt + black)) - #place(line(start: (48pt, 155pt), end: (48pt, 161pt), stroke: 0.6pt + black)) - #place(line(start: (124pt, 155pt), end: (124pt, 161pt), stroke: 0.6pt + black)) - #place(dx: 48pt, dy: 161pt, box(width: 76pt, align(center, text(size: 7pt)[$b_w = 8 " in"$]))) - #place(line(start: (42pt, 28pt), end: (42pt, 142pt), stroke: 0.6pt + black)) - #place(line(start: (39pt, 28pt), end: (45pt, 28pt), stroke: 0.6pt + black)) - #place(line(start: (39pt, 142pt), end: (45pt, 142pt), stroke: 0.6pt + black)) - #place(dx: 0.5pt, dy: 82pt, text(size: 7pt)[$h = 12 " in"$]) - #place(line(start: (110.1pt, 41.88pt), end: (129pt, 42pt), stroke: 0.5pt + rgb("#626b73"))) - #place(dx: 108.6pt, dy: 40.38pt, circle(radius: 1.5pt, fill: black)) - #place(dx: 132pt, dy: 37pt, text(size: 7pt)[2 No. 4 hanger \ bars]) - #place(line(start: (113.5pt, 85pt), end: (129pt, 82pt), stroke: 0.5pt + rgb("#626b73"))) - #place(dx: 112pt, dy: 83.5pt, circle(radius: 1.5pt, fill: black)) - #place(dx: 132pt, dy: 77pt, text(size: 7pt)[No. 3 stirrup \ at 6 in o.c.]) - #place(line(start: (109.5pt, 127.5pt), end: (129pt, 128pt), stroke: 0.5pt + rgb("#626b73"))) - #place(dx: 108pt, dy: 126pt, circle(radius: 1.5pt, fill: black)) - #place(dx: 132pt, dy: 123pt, text(size: 7pt)[2 No. 5 bottom \ $A_s = 0.6136 " in"^2$]) - ] -} diff --git a/concrete-beam/beam_section.py b/concrete-beam/beam_section.py deleted file mode 100644 index bff3c6a..0000000 --- a/concrete-beam/beam_section.py +++ /dev/null @@ -1,181 +0,0 @@ -from __future__ import annotations - -import sys -from pathlib import Path - - -HERE = Path(__file__).resolve().parent - -SCALE = 9.5 # points per inch -LEFT = 48.0 -RIGHT = 56.0 -TOP = 28.0 -BOTTOM = 38.0 - -STIRRUP_STROKE = 2.0 # drawn stirrup line width, points -STIRRUP_RADIUS = 3.0 # drawn stirrup corner radius, points -DRAW_COVER = 1.0 # schematic cover shown in the drawing, inches - -MUTED = 'rgb("#626b73")' - - -def _f(value: float) -> str: - return f"{value:.4g}" - - -def _centers(size: float, number: int, bw: float, edge: float) -> list[float]: - half = size / 2.0 - left = edge + half - right = bw - left - if number == 1: - return [bw / 2.0] - return [left + index * (right - left) / (number - 1) for index in range(number)] - - -def render(values: dict) -> str: - s = SCALE - bw = float(values["bw"]) - h = float(values["h"]) - stirrup_size = int(values["stirrup_size"]) - stirrup_spacing = float(values["stirrup_spacing"]) - bar_size = int(values["bar_size"]) - bar_db = float(values["bar_db"]) - n_bars = int(values["n_bars"]) - top_bar_size = int(values["top_bar_size"]) - top_bar_db = float(values["top_bar_db"]) - n_top_bars = int(values["n_top_bars"]) - As = float(values["As"]) - - w_sec = bw * s - h_sec = h * s - width = LEFT + w_sec + RIGHT - height = TOP + h_sec + BOTTOM - ox = LEFT - oy = TOP - - def sx(x_in: float) -> float: - return ox + x_in * s - - def sy(y_in: float) -> float: - return oy + (h - y_in) * s - - edge = DRAW_COVER + STIRRUP_STROKE / s - inset = DRAW_COVER + STIRRUP_STROKE / s / 2.0 - y_bottom = edge + bar_db / 2.0 - bottom = _centers(bar_db, n_bars, bw, edge) - top_y = h - (edge + top_bar_db / 2.0) - top = _centers(top_bar_db, n_top_bars, bw, edge) - - lines: list[str] = [] - add = lines.append - add("// Generated by beam_section.py from input.yaml - do not edit by hand.") - add("#let beam-section() = {") - add(f" box(width: {_f(width)}pt, height: {_f(height)}pt)[") - - add( - f" #place(dx: {_f(ox)}pt, dy: {_f(oy)}pt, " - f'rect(width: {_f(w_sec)}pt, height: {_f(h_sec)}pt, fill: rgb("#f2f2f2"), stroke: 1pt + black))' - ) - add( - f" #place(dx: {_f(sx(inset))}pt, dy: {_f(sy(h - inset))}pt, " - f"rect(width: {_f((bw - 2.0 * inset) * s)}pt, height: {_f((h - 2.0 * inset) * s)}pt, " - f"radius: {_f(STIRRUP_RADIUS)}pt, stroke: {_f(STIRRUP_STROKE)}pt + black))" - ) - - for x_in in bottom: - r = bar_db / 2.0 * s - add( - f" #place(dx: {_f(sx(x_in) - r)}pt, dy: {_f(sy(y_bottom) - r)}pt, " - f"circle(radius: {_f(r)}pt, fill: black))" - ) - for x_in in top: - r = top_bar_db / 2.0 * s - add( - f" #place(dx: {_f(sx(x_in) - r)}pt, dy: {_f(sy(top_y) - r)}pt, " - f"circle(radius: {_f(r)}pt, fill: black))" - ) - - dim_y = oy + h_sec + 16.0 - add( - f" #place(line(start: ({_f(ox)}pt, {_f(dim_y)}pt), end: ({_f(ox + w_sec)}pt, {_f(dim_y)}pt), " - f"stroke: 0.6pt + black))" - ) - for tick in (ox, ox + w_sec): - add( - f" #place(line(start: ({_f(tick)}pt, {_f(dim_y - 3)}pt), end: ({_f(tick)}pt, {_f(dim_y + 3)}pt), " - f"stroke: 0.6pt + black))" - ) - add( - f" #place(dx: {_f(ox)}pt, dy: {_f(dim_y + 3)}pt, " - f'box(width: {_f(w_sec)}pt, align(center, text(size: 7pt)[$b_w = {_f(bw)} " in"$])))' - ) - - x_h = ox - 6.0 - add( - f" #place(line(start: ({_f(x_h)}pt, {_f(oy)}pt), end: ({_f(x_h)}pt, {_f(oy + h_sec)}pt), " - f"stroke: 0.6pt + black))" - ) - for tick in (oy, oy + h_sec): - add( - f" #place(line(start: ({_f(x_h - 3)}pt, {_f(tick)}pt), end: ({_f(x_h + 3)}pt, {_f(tick)}pt), " - f"stroke: 0.6pt + black))" - ) - add( - f" #place(dx: 0.5pt, dy: {_f(oy + h_sec / 2.0 - 3)}pt, " - f'text(size: 7pt)[$h = {_f(h)} " in"$])' - ) - - label_x = ox + w_sec + 8.0 - lead_x = ox + w_sec + 5.0 - - def leader(fx: float, fy: float, lx: float, ly: float) -> None: - add( - f" #place(line(start: ({_f(fx)}pt, {_f(fy)}pt), end: ({_f(lx)}pt, {_f(ly)}pt), " - f"stroke: 0.5pt + {MUTED}))" - ) - add(f" #place(dx: {_f(fx - 1.5)}pt, dy: {_f(fy - 1.5)}pt, circle(radius: 1.5pt, fill: black))") - - leader(sx(top[-1]), sy(top_y), lead_x, oy + 14.0) - add( - f" #place(dx: {_f(label_x)}pt, dy: {_f(oy + 9)}pt, " - f"text(size: 7pt)[{n_top_bars} No. {top_bar_size} hanger \\ bars])" - ) - - leader(sx(bw - inset), sy(h / 2.0), lead_x, oy + h_sec / 2.0 - 3.0) - add( - f" #place(dx: {_f(label_x)}pt, dy: {_f(oy + h_sec / 2.0 - 8)}pt, " - f"text(size: 7pt)[No. {stirrup_size} stirrup \\ at {_f(stirrup_spacing)} in o.c.])" - ) - - leader(sx(bottom[-1]), sy(y_bottom), lead_x, oy + h_sec - 14.0) - add( - f" #place(dx: {_f(label_x)}pt, dy: {_f(oy + h_sec - 19)}pt, " - f'text(size: 7pt)[{n_bars} No. {bar_size} bottom \\ $A_s = {_f(As)} " in"^2$])' - ) - - add(" ]") - add("}") - return "\n".join(lines) + "\n" - - -def write_fragment(values: dict, path: Path) -> None: - path.write_text(render(values), encoding="utf-8") - - -def main(argv: list[str] | None = None) -> int: - argv = sys.argv[1:] if argv is None else argv - input_path = Path(argv[0]) if argv else HERE / "input.yaml" - output_path = Path(argv[1]) if len(argv) > 1 else HERE / "assets" / "beam-section.typ" - - import yaml - import calc - - with input_path.open(encoding="utf-8") as handle: - result = calc.compute(yaml.safe_load(handle)) - write_fragment(result["values"], output_path) - print(output_path) - return 0 - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/concrete-beam/calc.py b/concrete-beam/calc.py index 7c8fe95..86a1b08 100644 --- a/concrete-beam/calc.py +++ b/concrete-beam/calc.py @@ -36,23 +36,6 @@ def quantity(value, unit: str, name: str) -> float: return magnitude -def count(value, name: str, minimum: int = 1) -> int: - try: - number = int(value) - except (TypeError, ValueError) as exc: - raise ValueError(f"{name}: expected an integer, got {value!r}") from exc - if number < minimum: - raise ValueError(f"{name} must be >= {minimum}") - return number - - -def bar_number(value, name: str) -> int: - number = count(value, name, minimum=3) - if number > 18: - raise ValueError(f"{name} must be between 3 and 18") - return number - - def compute(inp: dict) -> dict: span = quantity(inp["span"], "ft", "span") tributary = quantity(inp["tributary"], "ft", "tributary") @@ -63,19 +46,8 @@ def compute(inp: dict) -> dict: d = quantity(inp["d"], "in", "d") fc = quantity(inp["fc"], "ksi", "fc") fy = quantity(inp["fy"], "ksi", "fy") + As = quantity(inp["As"], "in**2", "As") concrete_density = quantity(inp["concrete_density"], "pcf", "concrete_density") - cover = quantity(inp["cover"], "in", "cover") - stirrup_size = bar_number(inp["stirrup_size"], "stirrup_size") - stirrup_spacing = quantity(inp["stirrup_spacing"], "in", "stirrup_spacing") - bar_size = bar_number(inp["bar_size"], "bar_size") - n_bars = count(inp["n_bars"], "n_bars") - top_bar_size = bar_number(inp["top_bar_size"], "top_bar_size") - n_top_bars = count(inp["n_top_bars"], "n_top_bars") - - stirrup_db = stirrup_size / 8.0 - bar_db = bar_size / 8.0 - top_bar_db = top_bar_size / 8.0 - As = n_bars * math.pi * bar_db**2 / 4.0 self_weight = (bw * h / 144.0) * concrete_density / 1000.0 wD = D * tributary / 1000.0 + self_weight @@ -101,14 +73,6 @@ def compute(inp: dict) -> dict: Vc = 2.0 * math.sqrt(fc * 1000.0) * bw * d / 1000.0 phiVc = 0.75 * Vc - bottom_centroid = h - d - min_bottom_centroid = cover + stirrup_db + bar_db / 2.0 - if bottom_centroid < min_bottom_centroid: - raise ValueError("effective depth d is too large for the specified cover and bars") - inner_width = bw - 2.0 * (cover + stirrup_db) - if n_bars * bar_db > inner_width: - raise ValueError("bottom bars do not fit within the stirrup width") - def q(value: float) -> float: return round(value, 6) @@ -142,16 +106,6 @@ def compute(inp: dict) -> dict: "As_min": q(As_min), "Vc": q(Vc), "phiVc": q(phiVc), - "cover": q(cover), - "stirrup_size": stirrup_size, - "stirrup_spacing": q(stirrup_spacing), - "stirrup_db": q(stirrup_db), - "bar_size": bar_size, - "n_bars": n_bars, - "bar_db": q(bar_db), - "top_bar_size": top_bar_size, - "n_top_bars": n_top_bars, - "top_bar_db": q(top_bar_db), }, "checks": { "flexure": { @@ -177,17 +131,6 @@ def write_results(result: dict, path: Path) -> None: path.write_text(json.dumps(result, indent=2) + "\n", encoding="utf-8") -def _load_section_module(): - import importlib.util - - spec = importlib.util.spec_from_file_location("beam_section", HERE / "beam_section.py") - if spec is None or spec.loader is None: - raise SystemExit("Could not load beam_section.py") - module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(module) - return module - - def main() -> int: input_path = Path(sys.argv[1]) if len(sys.argv) > 1 else HERE / "input.yaml" output_path = Path(sys.argv[2]) if len(sys.argv) > 2 else input_path.with_name("results.json") @@ -196,9 +139,6 @@ def main() -> int: result = compute(inp) write_results(result, output_path) print(output_path) - section_path = HERE / "assets" / "beam-section.typ" - _load_section_module().write_fragment(result["values"], section_path) - print(section_path) return 0 diff --git a/concrete-beam/concrete-beam.pdf b/concrete-beam/concrete-beam.pdf index 7e978bc..da76c99 100644 --- a/concrete-beam/concrete-beam.pdf +++ b/concrete-beam/concrete-beam.pdf @@ -2,693 +2,674 @@ %€€€€ 1 0 obj -<> +<> endobj 2 0 obj -<> +<> endobj 3 0 obj -<> +<> endobj 4 0 obj -<> +<> endobj 5 0 obj -<> +<> endobj 6 0 obj -<> +<> endobj 7 0 obj -<> +<>/K[177 0 R]/ParentTree<>/ParentTreeNextKey 2>> endobj 8 0 obj -<>/K[187 0 R]/ParentTree<>/ParentTreeNextKey 2>> +[10 0 R 12 0 R 11 0 R 12 0 R 12 0 R 16 0 R 16 0 R 17 0 R 21 0 R 13 0 R 25 0 R 26 0 R 26 0 R 26 0 R 26 0 R 26 0 R 28 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 33 0 R 36 0 R 36 0 R 36 0 R 36 0 R 36 0 R 38 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 43 0 R 46 0 R 46 0 R 46 0 R 46 0 R 46 0 R 46 0 R 46 0 R 48 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 53 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 58 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 63 0 R 66 0 R 67 0 R 67 0 R 67 0 R 67 0 R 67 0 R 69 0 R 72 0 R 72 0 R 72 0 R 72 0 R 72 0 R 74 0 R 77 0 R 77 0 R 77 0 R 77 0 R 77 0 R 77 0 R 79 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 84 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 89 0 R 92 0 R 92 0 R 92 0 R 92 0 R 92 0 R 92 0 R 92 0 R 92 0 R 92 0 R 94 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 99 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 104 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 109 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 114 0 R 117 0 R 119 0 R 122 0 R 122 0 R 123 0 R 124 0 R 124 0 R 124 0 R 125 0 R 127 0 R 130 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 133 0 R] endobj 9 0 obj -[11 0 R 13 0 R 12 0 R 13 0 R 13 0 R 17 0 R 17 0 R 18 0 R 22 0 R 14 0 R 26 0 R 29 0 R 29 0 R 29 0 R 29 0 R 29 0 R 30 0 R 30 0 R 30 0 R 30 0 R 30 0 R 32 0 R 32 0 R 32 0 R 32 0 R 32 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 31 0 R 27 0 R 35 0 R 36 0 R 36 0 R 36 0 R 36 0 R 36 0 R 38 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 43 0 R 46 0 R 46 0 R 46 0 R 46 0 R 46 0 R 48 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 51 0 R 53 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 56 0 R 58 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 61 0 R 63 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 66 0 R 68 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 71 0 R 73 0 R 76 0 R 77 0 R 77 0 R 77 0 R 77 0 R 77 0 R 79 0 R 82 0 R 82 0 R 82 0 R 82 0 R 82 0 R 84 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 87 0 R 89 0 R 92 0 R 92 0 R 92 0 R 92 0 R 92 0 R 92 0 R 94 0 R] +[136 0 R 136 0 R 136 0 R 136 0 R 136 0 R 136 0 R 136 0 R 136 0 R 136 0 R 138 0 R 141 0 R 143 0 R 146 0 R 146 0 R 147 0 R 148 0 R 148 0 R 149 0 R 151 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 154 0 R 156 0 R 159 0 R 159 0 R 159 0 R 159 0 R 159 0 R 159 0 R 159 0 R 159 0 R 159 0 R 161 0 R 164 0 R 166 0 R 169 0 R 169 0 R 170 0 R 171 0 R 171 0 R 171 0 R 172 0 R 174 0 R] endobj 10 0 obj -[97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 97 0 R 99 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 102 0 R 104 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 107 0 R 109 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 112 0 R 114 0 R 117 0 R 117 0 R 117 0 R 117 0 R 117 0 R 119 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 122 0 R 124 0 R 127 0 R 129 0 R 132 0 R 132 0 R 133 0 R 134 0 R 134 0 R 134 0 R 135 0 R 137 0 R 140 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 143 0 R 146 0 R 146 0 R 146 0 R 146 0 R 146 0 R 146 0 R 146 0 R 146 0 R 146 0 R 146 0 R 148 0 R 151 0 R 153 0 R 156 0 R 156 0 R 157 0 R 158 0 R 158 0 R 159 0 R 161 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 164 0 R 166 0 R 169 0 R 169 0 R 169 0 R 169 0 R 169 0 R 169 0 R 169 0 R 169 0 R 169 0 R 171 0 R 174 0 R 176 0 R 179 0 R 179 0 R 180 0 R 181 0 R 181 0 R 181 0 R 182 0 R 184 0 R] +<> endobj 11 0 obj -<> +<> endobj 12 0 obj -<> +<> endobj 13 0 obj -<> +<>]/K[9]/Pg 198 0 R>> endobj 14 0 obj -<>]/K[9]/Pg 209 0 R>> +<> endobj 15 0 obj -<> +<> endobj 16 0 obj -<> +<>]/K[5 6]/Pg 198 0 R>> endobj 17 0 obj -<>]/K[5 6]/Pg 209 0 R>> +<>]/K[7]/Pg 198 0 R>> endobj 18 0 obj -<>]/K[7]/Pg 209 0 R>> +<> endobj 19 0 obj -<> +<> endobj 20 0 obj -<> +<> endobj 21 0 obj -<> +<> endobj 22 0 obj -<> +<> endobj 23 0 obj -<> +<>]/K[22 0 R]>> endobj 24 0 obj -<>]/K[23 0 R]>> +<> endobj 25 0 obj -<> +<> endobj 26 0 obj -<> +<>]/K[11 12 13 14 15]/Pg 198 0 R>> endobj 27 0 obj -<>]/K[37]/Pg 209 0 R>> +<> endobj 28 0 obj -<> +<>]/K[16]/Pg 198 0 R>> endobj 29 0 obj -<> +<> endobj 30 0 obj -<> +<> endobj 31 0 obj -<> +<>]/K[17 18 19 20 21 22 23 24]/Pg 198 0 R>> endobj 32 0 obj -<> +<> endobj 33 0 obj -<>]/K[32 0 R]>> +<>]/K[25]/Pg 198 0 R>> endobj 34 0 obj -<> +<> endobj 35 0 obj -<> +<> endobj 36 0 obj -<>]/K[39 40 41 42 43]/Pg 209 0 R>> +<>]/K[26 27 28 29 30]/Pg 198 0 R>> endobj 37 0 obj <> endobj 38 0 obj -<>]/K[44]/Pg 209 0 R>> +<>]/K[31]/Pg 198 0 R>> endobj 39 0 obj <> endobj 40 0 obj -<> +<> endobj 41 0 obj -<>]/K[45 46 47 48 49 50 51 52]/Pg 209 0 R>> +<>]/K[32 33 34 35 36 37]/Pg 198 0 R>> endobj 42 0 obj <> endobj 43 0 obj -<>]/K[53]/Pg 209 0 R>> +<>]/K[38]/Pg 198 0 R>> endobj 44 0 obj <> endobj 45 0 obj -<> +<> endobj 46 0 obj -<>]/K[54 55 56 57 58]/Pg 209 0 R>> +<>]/K[39 40 41 42 43 44 45]/Pg 198 0 R>> endobj 47 0 obj <> endobj 48 0 obj -<>]/K[59]/Pg 209 0 R>> +<>]/K[46]/Pg 198 0 R>> endobj 49 0 obj <> endobj 50 0 obj -<> +<> endobj 51 0 obj -<>]/K[60 61 62 63 64 65]/Pg 209 0 R>> +<>]/K[47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67]/Pg 198 0 R>> endobj 52 0 obj <> endobj 53 0 obj -<>]/K[66]/Pg 209 0 R>> +<>]/K[68]/Pg 198 0 R>> endobj 54 0 obj <> endobj 55 0 obj -<> +<> endobj 56 0 obj -<>]/K[67 68 69 70 71 72 73]/Pg 209 0 R>> +<>]/K[69 70 71 72 73 74 75 76 77 78 79 80 81 82 83]/Pg 198 0 R>> endobj 57 0 obj <> endobj 58 0 obj -<>]/K[74]/Pg 209 0 R>> +<>]/K[84]/Pg 198 0 R>> endobj 59 0 obj <> endobj 60 0 obj -<> +<> endobj 61 0 obj -<>]/K[75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95]/Pg 209 0 R>> +<>]/K[85 86 87 88 89 90 91 92 93 94 95 96 97]/Pg 198 0 R>> endobj 62 0 obj <> endobj 63 0 obj -<>]/K[96]/Pg 209 0 R>> +<>]/K[98]/Pg 198 0 R>> endobj 64 0 obj <> endobj 65 0 obj -<> +<> endobj 66 0 obj -<>]/K[97 98 99 100 101 102 103 104 105 106 107 108 109 110 111]/Pg 209 0 R>> +<> endobj 67 0 obj -<> +<>]/K[100 101 102 103 104]/Pg 198 0 R>> endobj 68 0 obj -<>]/K[112]/Pg 209 0 R>> +<> endobj 69 0 obj -<> +<>]/K[105]/Pg 198 0 R>> endobj 70 0 obj -<> +<> endobj 71 0 obj -<>]/K[113 114 115 116 117 118 119 120 121 122 123 124 125]/Pg 209 0 R>> +<> endobj 72 0 obj -<> +<>]/K[106 107 108 109 110]/Pg 198 0 R>> endobj 73 0 obj -<>]/K[126]/Pg 209 0 R>> +<> endobj 74 0 obj -<> +<>]/K[111]/Pg 198 0 R>> endobj 75 0 obj -<> +<> endobj 76 0 obj -<> +<> endobj 77 0 obj -<>]/K[128 129 130 131 132]/Pg 209 0 R>> +<>]/K[112 113 114 115 116 117]/Pg 198 0 R>> endobj 78 0 obj <> endobj 79 0 obj -<>]/K[133]/Pg 209 0 R>> +<>]/K[118]/Pg 198 0 R>> endobj 80 0 obj <> endobj 81 0 obj -<> +<> endobj 82 0 obj -<>]/K[134 135 136 137 138]/Pg 209 0 R>> +<>]/K[119 120 121 122 123 124]/Pg 198 0 R>> endobj 83 0 obj <> endobj 84 0 obj -<>]/K[139]/Pg 209 0 R>> +<>]/K[125]/Pg 198 0 R>> endobj 85 0 obj <> endobj 86 0 obj -<> +<> endobj 87 0 obj -<>]/K[140 141 142 143 144 145]/Pg 209 0 R>> +<>]/K[126 127 128 129 130 131]/Pg 198 0 R>> endobj 88 0 obj <> endobj 89 0 obj -<>]/K[146]/Pg 209 0 R>> +<>]/K[132]/Pg 198 0 R>> endobj 90 0 obj <> endobj 91 0 obj -<> +<> endobj 92 0 obj -<>]/K[147 148 149 150 151 152]/Pg 209 0 R>> +<>]/K[133 134 135 136 137 138 139 140 141]/Pg 198 0 R>> endobj 93 0 obj <> endobj 94 0 obj -<>]/K[153]/Pg 209 0 R>> +<>]/K[142]/Pg 198 0 R>> endobj 95 0 obj <> endobj 96 0 obj -<> +<> endobj 97 0 obj -<>]/K[0 1 2 3 4 5]/Pg 210 0 R>> +<>]/K[143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164]/Pg 198 0 R>> endobj 98 0 obj <> endobj 99 0 obj -<>]/K[6]/Pg 210 0 R>> +<>]/K[165]/Pg 198 0 R>> endobj 100 0 obj <> endobj 101 0 obj -<> +<> endobj 102 0 obj -<>]/K[7 8 9 10 11 12 13 14 15 16 17 18 19]/Pg 210 0 R>> +<>]/K[166 167 168 169 170 171 172 173 174]/Pg 198 0 R>> endobj 103 0 obj <> endobj 104 0 obj -<>]/K[20]/Pg 210 0 R>> +<>]/K[175]/Pg 198 0 R>> endobj 105 0 obj <> endobj 106 0 obj -<> +<> endobj 107 0 obj -<>]/K[21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42]/Pg 210 0 R>> +<>]/K[176 177 178 179 180]/Pg 198 0 R>> endobj 108 0 obj <> endobj 109 0 obj -<>]/K[43]/Pg 210 0 R>> +<>]/K[181]/Pg 198 0 R>> endobj 110 0 obj <> endobj 111 0 obj -<> +<> endobj 112 0 obj -<>]/K[44 45 46 47 48 49 50 51 52]/Pg 210 0 R>> +<>]/K[182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203]/Pg 198 0 R>> endobj 113 0 obj <> endobj 114 0 obj -<>]/K[53]/Pg 210 0 R>> +<>]/K[204]/Pg 198 0 R>> endobj 115 0 obj <> endobj 116 0 obj -<> +<> endobj 117 0 obj -<>]/K[54 55 56 57 58]/Pg 210 0 R>> +<>]/K[205]/Pg 198 0 R>> endobj 118 0 obj <> endobj 119 0 obj -<>]/K[59]/Pg 210 0 R>> +<>]/K[206]/Pg 198 0 R>> endobj 120 0 obj <> endobj 121 0 obj -<> +<> endobj 122 0 obj -<>]/K[60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81]/Pg 210 0 R>> +<>]/K[207 208]/Pg 198 0 R>> endobj 123 0 obj -<> +<>]/K[209]/Pg 198 0 R>> endobj 124 0 obj -<>]/K[82]/Pg 210 0 R>> +<>]/K[210 211 212]/Pg 198 0 R>> endobj 125 0 obj -<> +<>]/K[213]/Pg 198 0 R>> endobj 126 0 obj -<> +<> endobj 127 0 obj -<>]/K[83]/Pg 210 0 R>> +<>]/K[214]/Pg 198 0 R>> endobj 128 0 obj -<> +<> endobj 129 0 obj -<>]/K[84]/Pg 210 0 R>> +<> endobj 130 0 obj -<> +<> endobj 131 0 obj -<> +<>]/K[216 217 218 219 220 221 222 223 224 225]/Pg 198 0 R>> endobj 132 0 obj -<>]/K[85 86]/Pg 210 0 R>> +<> endobj 133 0 obj -<>]/K[87]/Pg 210 0 R>> +<>]/K[226]/Pg 198 0 R>> endobj 134 0 obj -<>]/K[88 89 90]/Pg 210 0 R>> +<> endobj 135 0 obj -<>]/K[91]/Pg 210 0 R>> +<> endobj 136 0 obj -<> +<>]/K[0 1 2 3 4 5 6 7 8]/Pg 199 0 R>> endobj 137 0 obj -<>]/K[92]/Pg 210 0 R>> +<> endobj 138 0 obj -<> +<>]/K[9]/Pg 199 0 R>> endobj 139 0 obj -<> +<> endobj 140 0 obj -<> +<> endobj 141 0 obj -<>]/K[94 95 96 97 98 99 100 101 102 103]/Pg 210 0 R>> +<>]/K[10]/Pg 199 0 R>> endobj 142 0 obj <> endobj 143 0 obj -<>]/K[104]/Pg 210 0 R>> +<>]/K[11]/Pg 199 0 R>> endobj 144 0 obj <> endobj 145 0 obj -<> +<> endobj 146 0 obj -<>]/K[105 106 107 108 109 110 111 112 113 114]/Pg 210 0 R>> +<>]/K[12 13]/Pg 199 0 R>> endobj 147 0 obj -<> +<>]/K[14]/Pg 199 0 R>> endobj 148 0 obj -<>]/K[115]/Pg 210 0 R>> +<>]/K[15 16]/Pg 199 0 R>> endobj 149 0 obj -<> +<>]/K[17]/Pg 199 0 R>> endobj 150 0 obj -<> +<> endobj 151 0 obj -<>]/K[116]/Pg 210 0 R>> +<>]/K[18]/Pg 199 0 R>> endobj 152 0 obj -<> +<> endobj 153 0 obj -<>]/K[117]/Pg 210 0 R>> +<> endobj 154 0 obj -<> +<>]/K[19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35]/Pg 199 0 R>> endobj 155 0 obj -<> +<> endobj 156 0 obj -<>]/K[118 119]/Pg 210 0 R>> +<>]/K[36]/Pg 199 0 R>> endobj 157 0 obj -<>]/K[120]/Pg 210 0 R>> +<> endobj 158 0 obj -<>]/K[121 122]/Pg 210 0 R>> +<> endobj 159 0 obj -<>]/K[123]/Pg 210 0 R>> +<>]/K[37 38 39 40 41 42 43 44 45]/Pg 199 0 R>> endobj 160 0 obj -<> +<> endobj 161 0 obj -<>]/K[124]/Pg 210 0 R>> +<>]/K[46]/Pg 199 0 R>> endobj 162 0 obj <> endobj 163 0 obj -<> +<> endobj 164 0 obj -<>]/K[125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141]/Pg 210 0 R>> +<>]/K[47]/Pg 199 0 R>> endobj 165 0 obj <> endobj 166 0 obj -<>]/K[142]/Pg 210 0 R>> +<>]/K[48]/Pg 199 0 R>> endobj 167 0 obj <> endobj 168 0 obj -<> +<> endobj 169 0 obj -<>]/K[143 144 145 146 147 148 149 150 151]/Pg 210 0 R>> +<>]/K[49 50]/Pg 199 0 R>> endobj 170 0 obj -<> +<>]/K[51]/Pg 199 0 R>> endobj 171 0 obj -<>]/K[152]/Pg 210 0 R>> +<>]/K[52 53 54]/Pg 199 0 R>> endobj 172 0 obj -<> +<>]/K[55]/Pg 199 0 R>> endobj 173 0 obj -<> +<> endobj 174 0 obj -<>]/K[153]/Pg 210 0 R>> +<>]/K[56]/Pg 199 0 R>> endobj 175 0 obj -<> +<> endobj 176 0 obj -<>]/K[154]/Pg 210 0 R>> +<> endobj 177 0 obj -<> +<> endobj 178 0 obj -<> +[/ICCBased 214 0 R] endobj 179 0 obj -<>]/K[155 156]/Pg 210 0 R>> +[/ICCBased 215 0 R] endobj 180 0 obj -<>]/K[157]/Pg 210 0 R>> +[198 0 R/XYZ 72 578.308 0] endobj 181 0 obj -<>]/K[158 159 160]/Pg 210 0 R>> +[198 0 R/XYZ 72 399.573 0] endobj 182 0 obj -<>]/K[161]/Pg 210 0 R>> +[198 0 R/XYZ 72 114.21399 0] endobj 183 0 obj -<> +[198 0 R/XYZ 72 712 0] endobj 184 0 obj -<>]/K[162]/Pg 210 0 R>> +<>/XObject<>/Font<>>> endobj 185 0 obj -<> +<>/XObject<>/Font<>>> endobj 186 0 obj -<> +<> endobj 187 0 obj -<> +<>/FontDescriptor 188 0 R/DW 0/W[0 0 500 1 1 541 2 2 372 3 3 504 4 4 272 5 5 447 6 6 428 7 7 316 8 8 236 9 9 485 10 10 271 11 11 790 12 12 519 13 13 264 14 14 338 15 15 390 16 16 457 17 17 542 18 18 250 19 19 500 20 20 531 21 21 493 22 22 505.99997 23 23 310 24 24 497 25 25 515 26 26 220 27 27 699 28 28 597 29 29 538 30 31 465 32 32 596 33 33 250 34 34 465 35 35 550 36 36 465 37 37 485 38 38 250 39 39 220 40 40 747 41 41 701 42 42 528 43 43 588 44 44 839 45 45 490 46 46 702 47 47 557 48 48 582 49 49 646 50 50 298 51 51 465 52 52 298 53 53 503.00003 54 54 512 55 55 540 56 58 465 59 59 323 60 60 465 61 61 307]>> endobj 188 0 obj -[/ICCBased 225 0 R] +<> endobj 189 0 obj -[/ICCBased 226 0 R] +<> endobj 190 0 obj -[209 0 R/XYZ 72 578.308 0] +<>/FontDescriptor 191 0 R/DW 0/W[0 0 500 1 1 734 2 2 489 3 3 428 4 4 250 5 5 706 6 6 613 7 7 504 8 8 619 9 9 551 10 10 322 11 11 616 12 12 521 13 13 716 14 14 391 15 15 456 16 16 561 17 17 358 18 18 654 19 19 505.99997 20 20 905 21 21 577 22 22 427 23 23 545 24 24 325 25 25 561 26 26 598 27 27 730 28 28 736 29 29 899]>> endobj 191 0 obj -[209 0 R/XYZ 72 345.133 0] +<> endobj 192 0 obj -[209 0 R/XYZ 72 166.39801 0] +<> endobj 193 0 obj -[210 0 R/XYZ 72 520.056 0] +<>/FontDescriptor 194 0 R/DW 0/CIDToGIDMap/Identity/W[0 6 602.0508]>> endobj 194 0 obj -[209 0 R/XYZ 72 712 0] +<> endobj 195 0 obj -<>/XObject<>/Font<>>> +<> endobj 196 0 obj -<>/XObject<>/Font<>>> +<>/FontDescriptor 197 0 R/DW 0/W[0 0 500 1 1 716 2 2 675 3 3 681 4 4 778 5 6 500 7 7 332 8 8 306 9 9 389 10 10 759 11 11 432 12 12 278 13 14 500 15 15 828 16 16 556 17 17 394 18 18 784 19 19 500 20 20 722 21 21 528 22 22 278 23 23 500 24 24 934 25 25 778 26 27 500 28 28 970 29 29 681 30 30 569 31 31 500 32 32 278 33 33 583 34 34 569 35 35 500 36 36 429 37 37 826 38 38 556 39 39 576 40 40 520 41 41 500 42 42 490 43 43 407 44 44 510.99997 45 45 579 46 46 750 47 47 539 48 48 529 49 49 557 50 50 731 51 51 569 52 52 339 53 53 569 54 54 489 55 55 649 56 56 501.99997 57 57 1008.99994 58 58 466 59 59 654 60 60 706 61 61 422 62 62 778 63 63 620 64 64 422 65 65 278 66 66 833 67 67 392 68 68 500 69 69 528 70 70 1000]>> endobj 197 0 obj -<> +<> endobj 198 0 obj -<>/FontDescriptor 199 0 R/DW 0/W[0 0 500 1 1 541 2 2 372 3 3 504 4 4 272 5 5 447 6 6 428 7 7 316 8 8 236 9 9 485 10 10 271 11 11 790 12 12 519 13 13 264 14 14 338 15 15 390 16 16 457 17 17 542 18 18 250 19 19 500 20 20 531 21 21 493 22 22 505.99997 23 23 310 24 24 497 25 25 515 26 26 220 27 27 699 28 28 597 29 29 538 30 31 465 32 32 596 33 33 250 34 34 465 35 35 550 36 36 465 37 37 485 38 38 250 39 39 220 40 42 465 43 43 588 44 44 747 45 45 701 46 46 528 47 47 839 48 48 490 49 49 702 50 50 557 51 51 582 52 52 646 53 54 298 55 55 503.00003 56 56 512 57 57 540 58 58 465 59 59 323 60 61 465 62 62 307]>> +<> endobj 199 0 obj -<> +<> endobj 200 0 obj -<> -endobj -201 0 obj -<>/FontDescriptor 202 0 R/DW 0/W[0 0 500 1 1 734 2 2 489 3 3 428 4 4 250 5 5 706 6 6 613 7 7 504 8 8 619 9 9 551 10 10 322 11 11 616 12 12 521 13 13 716 14 14 391 15 15 456 16 16 561 17 17 358 18 18 654 19 19 505.99997 20 20 905 21 21 577 22 22 427 23 23 545 24 24 325 25 25 561 26 26 598 27 27 730 28 28 736 29 29 899]>> -endobj -202 0 obj -<> -endobj -203 0 obj -<> -endobj -204 0 obj -<>/FontDescriptor 205 0 R/DW 0/CIDToGIDMap/Identity/W[0 6 602.0508]>> -endobj -205 0 obj -<> -endobj -206 0 obj -<> -endobj -207 0 obj -<>/FontDescriptor 208 0 R/DW 0/W[0 0 500 1 1 716 2 2 675 3 3 429 4 4 826 5 5 778 6 6 500 7 7 332 8 8 278 9 9 556 10 10 576 11 12 500 13 13 750 14 14 539 15 15 500 16 16 278 17 18 500 19 19 569 20 20 681 21 21 306 22 22 389 23 23 759 24 24 432 25 25 500 26 26 828 27 27 556 28 28 394 29 29 784 30 30 722 31 31 528 32 32 500 33 33 934 34 34 778 35 35 500 36 36 970 37 37 681 38 38 569 39 39 500 40 40 278 41 41 583 42 42 520 43 43 500 44 44 490 45 45 407 46 46 510.99997 47 47 579 48 48 529 49 49 557 50 50 731 51 51 569 52 52 339 53 53 569 54 54 489 55 55 649 56 56 501.99997 57 57 1008.99994 58 58 466 59 59 654 60 60 706 61 61 422 62 62 778 63 63 620 64 64 422 65 65 278 66 66 833 67 67 392 68 68 500 69 69 528 70 70 1000]>> -endobj -208 0 obj -<> -endobj -209 0 obj -<> -endobj -210 0 obj -<> -endobj -211 0 obj <> stream -xœûÿþ #ãø +xœûÿþ #áö endstream endobj -212 0 obj -<> +201 0 obj +<> stream -xœm”Moâ0†ïù³‡HôÐMb‡¤E ‘8ôC¥Ú=‡x`#'ÊÇ�¿Šß�V«= z=ãyçcû?Þ�kÓùQÿéƒûfìJ~Ì^ŠÖóýmSŽ5Ûá•Ù°¹Eûµ]Sö