Profiling results ----------------- Total cpu time observed: 8514ms (out of 8728ms) Number of samples taken: 38 (once every 224ms) ======================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ======================================================================== [1] 8514(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [9] 100.0% ------------------------------------------------------------------------ ??? [90] 100.0% [2] 2256(26.5%) 0(0.0%) approximate9 ...and-minor/src/core/taylor.rkt:11:0 loop [10] 91.1% for-loop [17] 8.9% ------------------------------------------------------------------------ parse-loop74 [3] 21.5% hash-ref! [95] 78.5% [3] 1832(21.5%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [11] 78.5% parse-loop74 [3] 21.5% ------------------------------------------------------------------------ hash-ref! [95] 100.0% [4] 1212(14.2%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:290:26 for-loop [12] 100.0% ------------------------------------------------------------------------ hash-ref! [95] 100.0% [5] 828(9.7%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:300:23 for-loop [13] 100.0% ------------------------------------------------------------------------ loop [86] 25.0% for-loop [102] 75.0% [6] 800(9.4%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [14] 100.0% ------------------------------------------------------------------------ matcher [71] 100.0% [7] 224(2.6%) 0(0.0%) ??? ...actor-and-minor/src/core/matcher.rkt:127:11 for-loop [16] 50.0% foldl [15] 50.0% ------------------------------------------------------------------------ hash-ref! [95] 100.0% [8] 200(2.3%) 0(0.0%) ??? ...e/refactor-and-minor/src/programs.rkt:202:5 loop [86] 100.0% ------------------------------------------------------------------------ ??? [1] 100.0% [9] 8514(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [18] 100.0% ------------------------------------------------------------------------ approximate9 [2] 100.0% [10] 2056(24.1%) 0(0.0%) loop ...efactor-and-minor/src/core/taylor.rkt:86:4 ??? [90] 100.0% ------------------------------------------------------------------------ parse-loop74 [3] 100.0% [11] 1832(21.5%) 0(0.0%) eval-const-expr ...nd-minor/src/programs.rkt:144:0 temp85_0 [68] 64.8% eval-prog [19] 24.0% loop [86] 11.1% ------------------------------------------------------------------------ ??? [4] 100.0% [12] 1212(14.2%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:290:52 hash-ref! [95] 100.0% ------------------------------------------------------------------------ ??? [5] 100.0% [13] 828(9.7%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:303:27 hash-ref! [95] 100.0% ------------------------------------------------------------------------ syntax-e [6] 100.0% [14] 800(9.4%) 0(0.0%) syntax-e/no-taint (unknown source) loop [86] 100.0% ------------------------------------------------------------------------ ??? [7] 100.0% [15] 224(2.6%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 ??? [20] 100.0% ------------------------------------------------------------------------ ??? [7] 100.0% [16] 224(2.6%) 0(0.0%) for-loop ...-and-minor/src/core/matcher.rkt:129:15 matcher [71] 100.0% ------------------------------------------------------------------------ approximate9 [2] 100.0% [17] 200(2.3%) 0(0.0%) for-loop ...or-and-minor/src/core/taylor.rkt:29:18 taylor [46] 100.0% ------------------------------------------------------------------------ profile-thunk16 [9] 100.0% [18] 8514(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [21] 100.0% ------------------------------------------------------------------------ eval-const-expr [11] 100.0% [19] 440(5.2%) 240(2.8%) eval-prog ...ctor-and-minor/src/programs.rkt:106:0 hash-ref! [95] 45.5% ------------------------------------------------------------------------ foldl [15] 100.0% [20] 224(2.6%) 0(0.0%) ??? ...efactor-and-minor/src/core/matcher.rkt:25:7 core457 [22] 100.0% ------------------------------------------------------------------------ for-loop [70] 6.2% run [18] 93.8% [21] 8514(100.0%) 212(2.5%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [23] 65.3% prepare-points-intervals [24] 19.0% oracle-error [25] 7.1% ??? [91] 3.8% errors [65] 2.4% ulp-difference [27] 1.2% ------------------------------------------------------------------------ ??? [20] 100.0% [22] 224(2.6%) 0(0.0%) core457 ...acket/contract/private/arr-i.rkt:976:19 un-dep/maybe-chaperone [26] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [23] 5882(69.1%) 0(0.0%) run-improve47 ...-and-minor/src/mainloop.rkt:345:0 for-loop [28] 96.2% simplify! [38] 3.8% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [24] 1618(19.0%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:122:0 loop [29] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [25] 602(7.1%) 0(0.0%) oracle-error ...tor-and-minor/src/points.rkt:179:0 for-loop [30] 100.0% ------------------------------------------------------------------------ core457 [22] 100.0% [26] 224(2.6%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 ??? [31] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [27] 200(2.3%) 0(0.0%) ulp-difference ...tor-and-minor/src/float.rkt:19:0 ??? [90] 100.0% ------------------------------------------------------------------------ run-improve47 [23] 100.0% [28] 5658(66.5%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:364:4 run-iter! [32] 100.0% ------------------------------------------------------------------------ prepare-points-intervals [24] 100.0% [29] 1618(19.0%) 0(0.0%) loop ...ie/refactor-and-minor/src/points.rkt:134:4 loop [33] 75.2% ??? [35] 24.8% ------------------------------------------------------------------------ oracle-error [25] 100.0% [30] 602(7.1%) 0(0.0%) for-loop ...efactor-and-minor/src/points.rkt:180:2 map [34] 66.4% loop [86] 33.6% ------------------------------------------------------------------------ un-dep/maybe-chaperone [26] 100.0% [31] 224(2.6%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:835:10 ??? [36] 100.0% ------------------------------------------------------------------------ for-loop [28] 100.0% [32] 5658(66.5%) 0(0.0%) run-iter! ...ctor-and-minor/src/mainloop.rkt:326:0 gen-series! [37] 39.9% simplify! [38] 26.4% finalize-iter! [39] 25.9% gen-rewrites! [42] 4.0% localize! [44] 3.8% ------------------------------------------------------------------------ loop [29] 100.0% [33] 1216(14.3%) 200(2.3%) loop ...bie/refactor-and-minor/src/points.rkt:79:2 ??? [90] 33.4% ??? [40] 17.1% real->precision [45] 16.6% ??? [49] 16.4% ------------------------------------------------------------------------ taylor [46] 24.5% parse-loop15 [106] 26.5% for-loop [30] 49.0% [34] 816(9.6%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 ??? [88] 49.0% taylor [46] 24.5% hash-ref! [95] 13.2% loop [43] 13.2% ------------------------------------------------------------------------ loop [29] 100.0% [35] 402(4.7%) 200(2.3%) ??? ...bie/refactor-and-minor/src/points.rkt:115:6 ??? [40] 50.2% ------------------------------------------------------------------------ ??? [31] 100.0% [36] 224(2.6%) 0(0.0%) ??? ...ntract/private/arrow-higher-order.rkt:575:2 build-subcontract-late-negs [41] 100.0% ------------------------------------------------------------------------ run-iter! [32] 100.0% [37] 2256(26.5%) 0(0.0%) gen-series! ...or-and-minor/src/mainloop.rkt:159:0 for-loop [47] 100.0% ------------------------------------------------------------------------ run-improve47 [23] 13.0% run-iter! [32] 87.0% [38] 1720(20.2%) 0(0.0%) simplify! ...ctor-and-minor/src/mainloop.rkt:223:0 ??? [48] 100.0% ------------------------------------------------------------------------ run-iter! [32] 100.0% [39] 1466(17.2%) 0(0.0%) finalize-iter! ...and-minor/src/mainloop.rkt:277:0 ??? [49] 100.0% ------------------------------------------------------------------------ ??? [35] 49.3% loop [33] 50.7% [40] 410(4.8%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-sub [53] 50.7% ??? [54] 49.3% ------------------------------------------------------------------------ ??? [36] 100.0% [41] 224(2.6%) 224(2.6%) build-subcontract-late-negs ...her-order.rkt:711:0 ------------------------------------------------------------------------ run-iter! [32] 100.0% [42] 224(2.6%) 0(0.0%) gen-rewrites! ...-and-minor/src/mainloop.rkt:182:0 for-loop [50] 100.0% ------------------------------------------------------------------------ map [34] 6.7% loop [43] 93.3% [43] 216(2.5%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [43] 93.3% ??? [51] 6.7% ------------------------------------------------------------------------ run-iter! [32] 100.0% [44] 216(2.5%) 0(0.0%) localize! ...ctor-and-minor/src/mainloop.rkt:126:0 localize-error [52] 100.0% ------------------------------------------------------------------------ loop [33] 100.0% [45] 202(2.4%) 0(0.0%) real->precision ...d-minor/src/programs.rkt:118:11 ??? [90] 100.0% ------------------------------------------------------------------------ map [34] 16.7% for-loop [17] 16.7% taylor [46] 66.7% [46] 200(2.3%) 200(2.3%) taylor ...ctor-and-minor/src/core/taylor.rkt:169:0 taylor [46] 66.7% map [34] 16.7% ------------------------------------------------------------------------ gen-series! [37] 100.0% [47] 2256(26.5%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:166:7 taylor-alt [55] 100.0% ------------------------------------------------------------------------ simplify! [38] 100.0% [48] 1720(20.2%) 0(0.0%) ??? ...factor-and-minor/src/core/simplify.rkt:42:0 egraph-run [56] 100.0% ------------------------------------------------------------------------ loop [33] 12.0% finalize-iter! [39] 88.0% [49] 1666(19.6%) 0(0.0%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [57] 88.0% ??? [59] 12.0% ------------------------------------------------------------------------ gen-rewrites! [42] 100.0% [50] 224(2.6%) 0(0.0%) for-loop ...ctor-and-minor/src/mainloop.rkt:190:11 rewrite-expression-head24 [58] 100.0% ------------------------------------------------------------------------ loop [43] 100.0% [51] 216(2.5%) 0(0.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfadd [103] 100.0% ------------------------------------------------------------------------ localize! [44] 100.0% [52] 216(2.5%) 0(0.0%) localize-error ...minor/src/core/localize.rkt:57:0 hash-ref! [95] 100.0% ------------------------------------------------------------------------ ??? [40] 100.0% [53] 208(2.4%) 0(0.0%) ival-sub ...or-and-minor/src/biginterval.rkt:108:0 bfadd [103] 100.0% ------------------------------------------------------------------------ ??? [40] 100.0% [54] 202(2.4%) 202(2.4%) ??? ...ects/racket/contract/private/prop.rkt:567:4 ------------------------------------------------------------------------ for-loop [47] 100.0% [55] 2256(26.5%) 0(0.0%) taylor-alt ...tor-and-minor/src/mainloop.rkt:145:0 for-loop [60] 100.0% ------------------------------------------------------------------------ ??? [48] 100.0% [56] 1720(20.2%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [61] 100.0% ------------------------------------------------------------------------ ??? [49] 100.0% [57] 1466(17.2%) 0(0.0%) for-loop ...-and-minor/src/core/alt-table.rkt:46:2 atab-add-altn [62] 71.1% errors [65] 28.9% ------------------------------------------------------------------------ for-loop [50] 100.0% [58] 224(2.6%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [63] 100.0% ------------------------------------------------------------------------ ??? [49] 100.0% [59] 200(2.3%) 0(0.0%) ??? ...ects/racket/contract/private/guts.rkt:770:8 bigvalue? [64] 100.0% ------------------------------------------------------------------------ taylor-alt [55] 100.0% [60] 2256(26.5%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:151:6 ??? [90] 100.0% ------------------------------------------------------------------------ egraph-run [56] 100.0% [61] 1720(20.2%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [66] 100.0% ------------------------------------------------------------------------ for-loop [57] 100.0% [62] 1042(12.2%) 0(0.0%) atab-add-altn ...inor/src/core/alt-table.rkt:194:0 errors [65] 100.0% ------------------------------------------------------------------------ matcher [71] 50.0% rewrite-expression-head24 [58] 50.0% [63] 224(2.6%) 0(0.0%) rewriter ...or-and-minor/src/core/matcher.rkt:87:2 for-loop [67] 100.0% ------------------------------------------------------------------------ ??? [59] 100.0% [64] 200(2.3%) 200(2.3%) bigvalue? ...r-and-minor/src/syntax/types.rkt:19:0 ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 21.9% for-loop [57] 22.6% atab-add-altn [62] 55.5% [65] 1878(22.1%) 0(0.0%) errors .../refactor-and-minor/src/points.rkt:192:0 for-loop [70] 68.1% temp85_0 [68] 31.9% ------------------------------------------------------------------------ egraph-add-exprs [61] 100.0% [66] 1720(20.2%) 0(0.0%) ??? ...actor-and-minor/src/core/simplify.rkt:102:6 for-loop [69] 100.0% ------------------------------------------------------------------------ rewriter [63] 100.0% [67] 224(2.6%) 0(0.0%) for-loop ...or-and-minor/src/core/matcher.rkt:89:4 matcher [71] 100.0% ------------------------------------------------------------------------ errors [65] 33.6% eval-const-expr [11] 66.4% [68] 1788(21.0%) 0(0.0%) temp85_0 (unknown source) compile15 [72] 100.0% ------------------------------------------------------------------------ ??? [66] 100.0% [69] 1720(20.2%) 1720(20.2%) for-loop ...-and-minor/src/core/simplify.rkt:121:2 ------------------------------------------------------------------------ errors [65] 100.0% [70] 1278(15.0%) 224(2.6%) for-loop ...efactor-and-minor/src/points.rkt:194:2 .../more-scheme.rkt:261:28 [21] 82.5% ------------------------------------------------------------------------ for-loop [16] 33.3% for-loop [67] 66.7% [71] 224(2.6%) 0(0.0%) matcher ...or-and-minor/src/core/matcher.rkt:115:2 ??? [7] 66.7% rewriter [63] 33.3% ------------------------------------------------------------------------ temp85_0 [68] 100.0% [72] 1788(21.0%) 0(0.0%) compile15 (unknown source) temp91_0 [73] 100.0% ------------------------------------------------------------------------ compile15 [72] 100.0% [73] 1788(21.0%) 0(0.0%) temp91_0 (unknown source) temp118_0 [74] 88.8% compile-top9 [75] 11.2% ------------------------------------------------------------------------ temp91_0 [73] 100.0% [74] 1588(18.7%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [76] 100.0% ------------------------------------------------------------------------ temp91_0 [73] 100.0% [75] 200(2.3%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [77] 100.0% ------------------------------------------------------------------------ loop [86] 11.4% temp118_0 [74] 88.6% [76] 1792(21.0%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [78] 88.6% dispatch-transformer41 [79] 11.4% ------------------------------------------------------------------------ compile-top9 [75] 100.0% [77] 200(2.3%) 200(2.3%) compile-forms33 (unknown source) ------------------------------------------------------------------------ expand-capturing-lifts [76] 100.0% [78] 1588(18.7%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [80] 100.0% ------------------------------------------------------------------------ expand-capturing-lifts [76] 20.6% for-loop [102] 79.4% [79] 992(11.7%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [81] 100.0% ------------------------------------------------------------------------ lambda-clause-expander [78] 31.0% for-loop [102] 69.0% [80] 1588(18.7%) 0(0.0%) finish-bodys (unknown source) for-loop [102] 100.0% ------------------------------------------------------------------------ dispatch-transformer41 [79] 100.0% [81] 992(11.7%) 304(3.6%) apply-transformer52 (unknown source) apply-transformer-in-context [82] 48.8% loop [86] 20.6% ------------------------------------------------------------------------ apply-transformer52 [81] 100.0% [82] 484(5.7%) 0(0.0%) apply-transformer-in-context (unknown source) ??? [83] 100.0% ------------------------------------------------------------------------ apply-transformer-in-context [82]100.0% [83] 484(5.7%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [84] 100.0% ------------------------------------------------------------------------ ??? [83] 100.0% [84] 484(5.7%) 284(3.3%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [85] 41.3% ------------------------------------------------------------------------ ??? [84] 100.0% [85] 200(2.3%) 0(0.0%) syntax->list (unknown source) loop [86] 100.0% ------------------------------------------------------------------------ syntax->list [85] 7.1% apply-transformer52 [81] 7.3% eval-const-expr [11] 7.3% ??? [8] 14.2% for-loop [30] 14.4% syntax-e/no-taint [14] 49.8% [86] 1406(16.5%) 200(2.3%) loop (unknown source) gf [87] 49.8% ??? [88] 14.4% expand-capturing-lifts [76] 7.3% core-form-sym [89] 7.3% syntax-e [6] 7.1% ------------------------------------------------------------------------ loop [86] 100.0% [87] 800(9.4%) 0(0.0%) gf (unknown source) propagation-merge [92] 75.0% propagation-apply [94] 25.0% ------------------------------------------------------------------------ loop [86] 33.6% map [34] 66.4% [88] 602(7.1%) 202(2.4%) ??? ...ie/refactor-and-minor/src/points.rkt:181:26 ??? [91] 33.2% ??? [90] 33.2% ------------------------------------------------------------------------ loop [86] 100.0% [89] 204(2.4%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [93] 100.0% ------------------------------------------------------------------------ loop [105] 2.3% ulp-difference [27] 6.1% ??? [88] 6.1% real->precision [45] 6.2% loop [33] 12.4% loop [10] 21.0% location-do [96] 21.8% for-loop [60] 24.1% [90] 3264(38.3%) 400(4.7%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [96] 24.1% approximate9 [2] 24.1% hash-ref! [95] 21.0% ival-mult [97] 12.4% bf [100] 6.2% ------------------------------------------------------------------------ ??? [88] 23.8% .../more-scheme.rkt:261:28 [21] 76.2% [91] 842(9.9%) 624(7.3%) ??? ...ctor-and-minor/src/syntax/syntax.rkt:214:17 ??? [98] 25.9% ------------------------------------------------------------------------ gf [87] 100.0% [92] 600(7.0%) 600(7.0%) propagation-merge (unknown source) ------------------------------------------------------------------------ core-form-sym [89] 100.0% [93] 204(2.4%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [99] 100.0% ------------------------------------------------------------------------ gf [87] 100.0% [94] 200(2.3%) 200(2.3%) propagation-apply (unknown source) ------------------------------------------------------------------------ eval-prog [19] 2.9% map [34] 4.8% localize-error [52] 4.8% for-loop [13] 12.1% for-loop [12] 16.2% ??? [101] 29.6% ??? [90] 29.6% [95] 2272(26.7%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [101] 29.6% parse-loop74 [3] 27.2% ??? [4] 16.2% ??? [5] 12.1% parse-loop15 [106] 9.5% ??? [8] 2.9% f61 [104] 2.5% ------------------------------------------------------------------------ location-do [96] 38.4% ??? [90] 61.6% [96] 2256(26.5%) 0(0.0%) location-do ...tor-and-minor/src/programs.rkt:87:0 ??? [90] 56.6% location-do [96] 38.4% loop [105] 5.0% ------------------------------------------------------------------------ ??? [90] 100.0% [97] 406(4.8%) 0(0.0%) ival-mult ...r-and-minor/src/biginterval.rkt:120:0 bfadd [103] 100.0% ------------------------------------------------------------------------ ??? [91] 100.0% [98] 218(2.6%) 218(2.6%) ??? ...ects/racket/contract/private/prop.rkt:301:4 ------------------------------------------------------------------------ resolve+shift28 [93] 100.0% [99] 204(2.4%) 0(0.0%) fallback-loop (unknown source) for-loop [102] 100.0% ------------------------------------------------------------------------ ??? [90] 100.0% [100] 202(2.4%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [107] 100.0% ------------------------------------------------------------------------ hash-ref! [95] 100.0% [101] 2056(24.1%) 0(0.0%) ??? ...efactor-and-minor/src/core/taylor.rkt:44:15 hash-ref! [95] 100.0% ------------------------------------------------------------------------ fallback-loop [99] 11.4% for-loop [102] 17.6% finish-bodys [80] 71.1% [102] 1792(21.0%) 404(4.7%) for-loop (unknown source) finish-bodys [80] 49.3% for-loop [102] 17.6% dispatch-transformer41 [79] 17.5% syntax-e [6] 2.7% ------------------------------------------------------------------------ ival-sub [53] 25.1% ??? [51] 26.0% ival-mult [97] 48.9% [103] 830(9.7%) 216(2.5%) bfadd ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [107] 48.9% ??? [108] 25.1% ------------------------------------------------------------------------ hash-ref! [95] 100.0% [104] 224(2.6%) 224(2.6%) f61 (unknown source) ------------------------------------------------------------------------ location-do [96] 100.0% [105] 224(2.6%) 0(0.0%) loop ...e/refactor-and-minor/src/programs.rkt:96:4 ??? [90] 100.0% ------------------------------------------------------------------------ hash-ref! [95] 100.0% [106] 216(2.5%) 0(0.0%) parse-loop15 (unknown source) map [34] 100.0% ------------------------------------------------------------------------ bf [100] 33.2% bfadd [103] 66.8% [107] 608(7.1%) 608(7.1%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------ bfadd [103] 100.0% [108] 208(2.4%) 208(2.4%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ------------------------------------------------------------------------