From ee92fddb95e9af172f945ba09b7e9181f164df98 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 21 Jul 2026 09:49:52 +0900 Subject: [PATCH 1/2] security: remove tracked packrat build artifacts --- .github/workflows/code-quality.yml | 19 +- .gitignore | 5 + AGENTS.md | 11 +- ARCHITECTURE.md | 3 +- CLAUDE.md | 9 +- README.md | 6 +- .../3.4.1/GPArotation/CITATION | 20 - .../3.4.1/GPArotation/DESCRIPTION | 19 - .../3.4.1/GPArotation/INDEX | 10 - .../3.4.1/GPArotation/LICENSE | 2 - .../3.4.1/GPArotation/Meta/Rd.rds | Bin 909 -> 0 bytes .../3.4.1/GPArotation/Meta/data.rds | Bin 187 -> 0 bytes .../3.4.1/GPArotation/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/GPArotation/Meta/hsearch.rds | Bin 929 -> 0 bytes .../3.4.1/GPArotation/Meta/links.rds | Bin 564 -> 0 bytes .../3.4.1/GPArotation/Meta/nsInfo.rds | Bin 375 -> 0 bytes .../3.4.1/GPArotation/Meta/package.rds | Bin 725 -> 0 bytes .../3.4.1/GPArotation/Meta/vignette.rds | Bin 196 -> 0 bytes .../3.4.1/GPArotation/NAMESPACE | 38 - .../3.4.1/GPArotation/NEWS | 91 - .../3.4.1/GPArotation/R/GPArotation | 27 - .../3.4.1/GPArotation/R/GPArotation.rdb | Bin 17041 -> 0 bytes .../3.4.1/GPArotation/R/GPArotation.rdx | Bin 816 -> 0 bytes .../3.4.1/GPArotation/data/Harman.rda | Bin 206 -> 0 bytes .../3.4.1/GPArotation/data/Thurstone.rda | Bin 788 -> 0 bytes .../3.4.1/GPArotation/data/WansbeekMeijer.rda | Bin 358 -> 0 bytes .../3.4.1/GPArotation/doc/Guide.Stex | 35 - .../3.4.1/GPArotation/doc/Guide.pdf | Bin 59608 -> 0 bytes .../3.4.1/GPArotation/doc/index.html | 28 - .../3.4.1/GPArotation/help/AnIndex | 61 - .../3.4.1/GPArotation/help/GPArotation.rdb | Bin 41858 -> 0 bytes .../3.4.1/GPArotation/help/GPArotation.rdx | Bin 438 -> 0 bytes .../3.4.1/GPArotation/help/aliases.rds | Bin 499 -> 0 bytes .../3.4.1/GPArotation/help/paths.rds | Bin 243 -> 0 bytes .../3.4.1/GPArotation/html/00Index.html | 140 - .../3.4.1/GPArotation/html/R.css | 97 - .../3.4.1/GPArotation/tests/Harman.R | 181 - .../3.4.1/GPArotation/tests/Jennrich2002.R | 120 - .../3.4.1/GPArotation/tests/MASSoblimin.R | 80 - .../3.4.1/GPArotation/tests/Revelle.R | 21 - .../3.4.1/GPArotation/tests/Thurstone.R | 324 - .../3.4.1/GPArotation/tests/WansbeekMeijer.R | 104 - .../3.4.1/GPArotation/tests/rotations.R | 489 - .../x86_64-pc-linux-gnu/3.4.1/R6/DESCRIPTION | 29 - .../lib/x86_64-pc-linux-gnu/3.4.1/R6/INDEX | 3 - .../lib/x86_64-pc-linux-gnu/3.4.1/R6/LICENSE | 2 - .../x86_64-pc-linux-gnu/3.4.1/R6/Meta/Rd.rds | Bin 315 -> 0 bytes .../3.4.1/R6/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/R6/Meta/hsearch.rds | Bin 343 -> 0 bytes .../3.4.1/R6/Meta/links.rds | Bin 134 -> 0 bytes .../3.4.1/R6/Meta/nsInfo.rds | Bin 260 -> 0 bytes .../3.4.1/R6/Meta/package.rds | Bin 1043 -> 0 bytes .../3.4.1/R6/Meta/vignette.rds | Bin 327 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/R6/NAMESPACE | 11 - .../lib/x86_64-pc-linux-gnu/3.4.1/R6/NEWS.md | 101 - packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6 | 27 - .../lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6.rdb | Bin 9186 -> 0 bytes .../lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6.rdx | Bin 454 -> 0 bytes .../3.4.1/R6/doc/Debugging.R | 39 - .../3.4.1/R6/doc/Debugging.Rmd | 76 - .../3.4.1/R6/doc/Debugging.html | 106 - .../3.4.1/R6/doc/Introduction.R | 432 - .../3.4.1/R6/doc/Introduction.Rmd | 624 - .../3.4.1/R6/doc/Introduction.html | 584 - .../3.4.1/R6/doc/Performance.R | 518 - .../3.4.1/R6/doc/Performance.Rmd | 786 - .../3.4.1/R6/doc/Performance.html | 649 - .../3.4.1/R6/doc/Portable.R | 157 - .../3.4.1/R6/doc/Portable.Rmd | 245 - .../3.4.1/R6/doc/Portable.html | 252 - .../3.4.1/R6/doc/index.html | 43 - .../x86_64-pc-linux-gnu/3.4.1/R6/help/AnIndex | 5 - .../x86_64-pc-linux-gnu/3.4.1/R6/help/R6.rdb | Bin 16296 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/R6/help/R6.rdx | Bin 200 -> 0 bytes .../3.4.1/R6/help/aliases.rds | Bin 100 -> 0 bytes .../3.4.1/R6/help/paths.rds | Bin 146 -> 0 bytes .../3.4.1/R6/html/00Index.html | 35 - .../x86_64-pc-linux-gnu/3.4.1/R6/html/R.css | 97 - .../x86_64-pc-linux-gnu/3.4.1/Rcpp/CITATION | 32 - .../3.4.1/Rcpp/DESCRIPTION | 36 - .../lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/INDEX | 37 - .../3.4.1/Rcpp/Meta/Rd.rds | Bin 1568 -> 0 bytes .../3.4.1/Rcpp/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/Rcpp/Meta/hsearch.rds | Bin 1479 -> 0 bytes .../3.4.1/Rcpp/Meta/links.rds | Bin 781 -> 0 bytes .../3.4.1/Rcpp/Meta/nsInfo.rds | Bin 664 -> 0 bytes .../3.4.1/Rcpp/Meta/package.rds | Bin 1345 -> 0 bytes .../3.4.1/Rcpp/Meta/vignette.rds | Bin 474 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/Rcpp/NAMESPACE | 43 - .../x86_64-pc-linux-gnu/3.4.1/Rcpp/NEWS.Rd | 2241 --- .../lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp | 27 - .../x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp.rdb | Bin 188603 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp.rdx | Bin 3005 -> 0 bytes .../lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/README | 53 - .../lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/THANKS | 33 - .../3.4.1/Rcpp/announce/ANNOUNCE-0.10.0.txt | 188 - .../3.4.1/Rcpp/announce/ANNOUNCE-0.11.0.txt | 136 - .../3.4.1/Rcpp/announce/ANNOUNCE-0.6.0.txt | 54 - .../3.4.1/Rcpp/announce/ANNOUNCE-0.7.0.txt | 74 - .../3.4.1/Rcpp/announce/ANNOUNCE-0.8.0.txt | 297 - .../3.4.1/Rcpp/announce/ANNOUNCE-0.9.0.txt | 196 - .../3.4.1/Rcpp/bib/Rcpp.bib | 666 - .../3.4.1/Rcpp/discovery/cxx0x.R | 60 - .../3.4.1/Rcpp/doc/Rcpp-FAQ.R | 285 - .../3.4.1/Rcpp/doc/Rcpp-FAQ.Rnw | 1730 -- .../3.4.1/Rcpp/doc/Rcpp-FAQ.pdf | Bin 236762 -> 0 bytes .../3.4.1/Rcpp/doc/Rcpp-attributes.R | 72 - .../3.4.1/Rcpp/doc/Rcpp-attributes.Rnw | 829 - .../3.4.1/Rcpp/doc/Rcpp-attributes.pdf | Bin 135522 -> 0 bytes .../3.4.1/Rcpp/doc/Rcpp-extending.R | 57 - .../3.4.1/Rcpp/doc/Rcpp-extending.Rnw | 373 - .../3.4.1/Rcpp/doc/Rcpp-extending.pdf | Bin 107244 -> 0 bytes .../3.4.1/Rcpp/doc/Rcpp-introduction.R | 11 - .../3.4.1/Rcpp/doc/Rcpp-introduction.Rnw | 1077 -- .../3.4.1/Rcpp/doc/Rcpp-introduction.pdf | Bin 297867 -> 0 bytes .../3.4.1/Rcpp/doc/Rcpp-modules.R | 241 - .../3.4.1/Rcpp/doc/Rcpp-modules.Rnw | 1053 -- .../3.4.1/Rcpp/doc/Rcpp-modules.pdf | Bin 175529 -> 0 bytes .../3.4.1/Rcpp/doc/Rcpp-package.R | 17 - .../3.4.1/Rcpp/doc/Rcpp-package.Rnw | 476 - .../3.4.1/Rcpp/doc/Rcpp-package.pdf | Bin 151824 -> 0 bytes .../3.4.1/Rcpp/doc/Rcpp-quickref.R | 11 - .../3.4.1/Rcpp/doc/Rcpp-quickref.Rnw | 491 - .../3.4.1/Rcpp/doc/Rcpp-quickref.pdf | Bin 78949 -> 0 bytes .../3.4.1/Rcpp/doc/Rcpp-sugar.R | 17 - .../3.4.1/Rcpp/doc/Rcpp-sugar.Rnw | 779 - .../3.4.1/Rcpp/doc/Rcpp-sugar.pdf | Bin 141406 -> 0 bytes .../3.4.1/Rcpp/doc/Rcpp-unitTests.R | 56 - .../3.4.1/Rcpp/doc/Rcpp-unitTests.Rnw | 77 - .../3.4.1/Rcpp/doc/Rcpp-unitTests.pdf | Bin 58905 -> 0 bytes .../3.4.1/Rcpp/doc/index.html | 68 - .../Rcpp/examples/Attributes/Depends.cpp | 28 - .../3.4.1/Rcpp/examples/Attributes/Export.cpp | 40 - .../Rcpp/examples/Attributes/cppFunction.R | 43 - .../Rcpp/examples/Attributes/sourceCpp.R | 10 - .../examples/ConvolveBenchmarks/GNUmakefile | 29 - .../ConvolveBenchmarks/buildAndRun.sh | 25 - .../ConvolveBenchmarks/convolve10_cpp.cpp | 36 - .../ConvolveBenchmarks/convolve10_cpp.h | 27 - .../ConvolveBenchmarks/convolve11_cpp.cpp | 24 - .../ConvolveBenchmarks/convolve12_cpp.cpp | 24 - .../ConvolveBenchmarks/convolve13_cpp.cpp | 27 - .../ConvolveBenchmarks/convolve14_cpp.cpp | 25 - .../examples/ConvolveBenchmarks/convolve2_c.c | 28 - .../ConvolveBenchmarks/convolve3_cpp.cpp | 24 - .../ConvolveBenchmarks/convolve4_cpp.cpp | 29 - .../ConvolveBenchmarks/convolve5_cpp.cpp | 23 - .../examples/ConvolveBenchmarks/convolve7_c.c | 28 - .../ConvolveBenchmarks/convolve8_cpp.cpp | 43 - .../ConvolveBenchmarks/convolve9_cpp.cpp | 61 - .../ConvolveBenchmarks/exampleRCode.r | 107 - .../examples/ConvolveBenchmarks/loopmacro.h | 13 - .../examples/ConvolveBenchmarks/overhead.r | 24 - .../examples/ConvolveBenchmarks/overhead.sh | 16 - .../ConvolveBenchmarks/overhead_1.cpp | 21 - .../examples/ConvolveBenchmarks/overhead_2.c | 21 - .../3.4.1/Rcpp/examples/FastLM/benchmark.r | 54 - .../Rcpp/examples/FastLM/benchmarkLongley.r | 55 - .../Rcpp/examples/FastLM/fastLMviaArmadillo.r | 51 - .../3.4.1/Rcpp/examples/FastLM/fastLMviaGSL.r | 52 - .../3.4.1/Rcpp/examples/FastLM/lmArmadillo.R | 89 - .../3.4.1/Rcpp/examples/FastLM/lmGSL.R | 118 - .../3.4.1/Rcpp/examples/Misc/fibonacci.r | 46 - .../3.4.1/Rcpp/examples/Misc/ifelseLooped.r | 101 - .../3.4.1/Rcpp/examples/Misc/newFib.r | 32 - .../3.4.1/Rcpp/examples/Misc/piBySimulation.r | 28 - .../3.4.1/Rcpp/examples/Misc/piSugar.cpp | 13 - .../3.4.1/Rcpp/examples/OpenMP/GNUmakefile | 30 - .../Rcpp/examples/OpenMP/OpenMPandInline.r | 88 - .../3.4.1/Rcpp/examples/OpenMP/check.R | 5 - .../Rcpp/examples/OpenMP/piWithInterrupts.cpp | 134 - .../3.4.1/Rcpp/examples/RcppGibbs/RcppGibbs.R | 293 - .../3.4.1/Rcpp/examples/RcppGibbs/timeRNGs.R | 169 - .../3.4.1/Rcpp/examples/RcppInline/RObject.r | 271 - .../examples/RcppInline/RcppInlineExample.r | 47 - .../RcppInline/RcppInlineWithLibsExamples.r | 351 - .../examples/RcppInline/RcppSimpleExample.r | 27 - .../examples/RcppInline/UncaughtExceptions.r | 50 - .../examples/RcppInline/external_pointer.r | 113 - .../Rcpp/examples/SugarPerformance/Timer.h | 55 - .../examples/SugarPerformance/Timertest.cpp | 31 - .../SugarPerformance/sugarBenchmarks.R | 226 - .../Rcpp/examples/functionCallback/README | 22 - .../examples/functionCallback/newApiExample.r | 57 - .../Rcpp/examples/performance/extractors.R | 118 - .../Rcpp/examples/performance/performance.R | 38 - .../3.4.1/Rcpp/help/AnIndex | 56 - .../3.4.1/Rcpp/help/Rcpp.rdb | Bin 86863 -> 0 bytes .../3.4.1/Rcpp/help/Rcpp.rdx | Bin 947 -> 0 bytes .../3.4.1/Rcpp/help/aliases.rds | Bin 650 -> 0 bytes .../3.4.1/Rcpp/help/paths.rds | Bin 443 -> 0 bytes .../3.4.1/Rcpp/html/00Index.html | 128 - .../x86_64-pc-linux-gnu/3.4.1/Rcpp/html/R.css | 97 - .../3.4.1/Rcpp/include/Rcpp.h | 87 - .../3.4.1/Rcpp/include/Rcpp/Benchmark/Timer.h | 147 - .../3.4.1/Rcpp/include/Rcpp/DataFrame.h | 146 - .../3.4.1/Rcpp/include/Rcpp/Dimension.h | 77 - .../3.4.1/Rcpp/include/Rcpp/DottedPair.h | 49 - .../3.4.1/Rcpp/include/Rcpp/DottedPairImpl.h | 97 - .../3.4.1/Rcpp/include/Rcpp/Environment.h | 422 - .../3.4.1/Rcpp/include/Rcpp/Extractor.h | 36 - .../3.4.1/Rcpp/include/Rcpp/Fast.h | 44 - .../3.4.1/Rcpp/include/Rcpp/Formula.h | 81 - .../3.4.1/Rcpp/include/Rcpp/Function.h | 120 - .../3.4.1/Rcpp/include/Rcpp/InputParameter.h | 101 - .../Rcpp/include/Rcpp/InternalFunction.h | 68 - .../Rcpp/InternalFunctionWithStdFunction.h | 70 - .../3.4.1/Rcpp/include/Rcpp/Interrupt.h | 66 - .../3.4.1/Rcpp/include/Rcpp/Language.h | 217 - .../3.4.1/Rcpp/include/Rcpp/Module.h | 460 - .../3.4.1/Rcpp/include/Rcpp/Na_Proxy.h | 62 - .../3.4.1/Rcpp/include/Rcpp/Named.h | 68 - .../3.4.1/Rcpp/include/Rcpp/Nullable.h | 148 - .../3.4.1/Rcpp/include/Rcpp/Pairlist.h | 55 - .../3.4.1/Rcpp/include/Rcpp/Promise.h | 82 - .../3.4.1/Rcpp/include/Rcpp/RNGScope.h | 35 - .../3.4.1/Rcpp/include/Rcpp/RObject.h | 62 - .../3.4.1/Rcpp/include/Rcpp/Reference.h | 74 - .../3.4.1/Rcpp/include/Rcpp/Rmath.h | 241 - .../3.4.1/Rcpp/include/Rcpp/S4.h | 81 - .../3.4.1/Rcpp/include/Rcpp/StretchyList.h | 85 - .../3.4.1/Rcpp/include/Rcpp/String.h | 563 - .../Rcpp/include/Rcpp/StringTransformer.h | 53 - .../3.4.1/Rcpp/include/Rcpp/Symbol.h | 88 - .../3.4.1/Rcpp/include/Rcpp/Vector.h | 76 - .../3.4.1/Rcpp/include/Rcpp/WeakReference.h | 67 - .../3.4.1/Rcpp/include/Rcpp/XPtr.h | 190 - .../3.4.1/Rcpp/include/Rcpp/algo.h | 161 - .../3.4.1/Rcpp/include/Rcpp/algorithm.h | 489 - .../3.4.1/Rcpp/include/Rcpp/api/bones/Date.h | 49 - .../Rcpp/include/Rcpp/api/bones/Datetime.h | 49 - .../3.4.1/Rcpp/include/Rcpp/api/bones/bones.h | 29 - .../include/Rcpp/api/bones/wrap_extra_steps.h | 34 - .../Rcpp/include/Rcpp/api/meat/DataFrame.h | 31 - .../3.4.1/Rcpp/include/Rcpp/api/meat/Date.h | 44 - .../Rcpp/include/Rcpp/api/meat/Datetime.h | 50 - .../Rcpp/include/Rcpp/api/meat/Dimension.h | 31 - .../include/Rcpp/api/meat/DottedPairImpl.h | 126 - .../Rcpp/include/Rcpp/api/meat/Environment.h | 50 - .../Rcpp/include/Rcpp/api/meat/Rcpp_eval.h | 68 - .../3.4.1/Rcpp/include/Rcpp/api/meat/S4.h | 46 - .../Rcpp/include/Rcpp/api/meat/StretchyList.h | 74 - .../3.4.1/Rcpp/include/Rcpp/api/meat/Vector.h | 40 - .../3.4.1/Rcpp/include/Rcpp/api/meat/as.h | 33 - .../3.4.1/Rcpp/include/Rcpp/api/meat/export.h | 72 - .../3.4.1/Rcpp/include/Rcpp/api/meat/is.h | 168 - .../3.4.1/Rcpp/include/Rcpp/api/meat/meat.h | 47 - .../include/Rcpp/api/meat/module/Module.h | 50 - .../Rcpp/include/Rcpp/api/meat/protection.h | 38 - .../3.4.1/Rcpp/include/Rcpp/api/meat/proxy.h | 207 - .../3.4.1/Rcpp/include/Rcpp/api/meat/wrap.h | 66 - .../3.4.1/Rcpp/include/Rcpp/as.h | 168 - .../3.4.1/Rcpp/include/Rcpp/barrier.h | 37 - .../3.4.1/Rcpp/include/Rcpp/clone.h | 40 - .../3.4.1/Rcpp/include/Rcpp/complex.h | 81 - .../3.4.1/Rcpp/include/Rcpp/config.h | 36 - .../Rcpp/include/Rcpp/date_datetime/Date.h | 205 - .../include/Rcpp/date_datetime/Datetime.h | 173 - .../Rcpp/date_datetime/date_datetime.h | 51 - .../Rcpp/date_datetime/newDateVector.h | 75 - .../Rcpp/date_datetime/newDatetimeVector.h | 92 - .../Rcpp/date_datetime/oldDateVector.h | 42 - .../Rcpp/date_datetime/oldDatetimeVector.h | 43 - .../3.4.1/Rcpp/include/Rcpp/exceptions.h | 332 - .../Rcpp/exceptions/cpp11/exceptions.h | 56 - .../Rcpp/exceptions/cpp98/exceptions.h | 177 - .../Rcpp/generated/DataFrame_generated.h | 147 - .../Rcpp/generated/DottedPair__ctors.h | 125 - .../Rcpp/generated/Function__operator.h | 135 - .../InternalFunctionWithStdFunction_call.h | 2570 --- .../Rcpp/generated/InternalFunction__ctors.h | 490 - .../include/Rcpp/generated/Language__ctors.h | 241 - .../include/Rcpp/generated/Pairlist__ctors.h | 125 - .../include/Rcpp/generated/Vector__create.h | 1229 -- .../include/Rcpp/generated/grow__pairlist.h | 135 - .../3.4.1/Rcpp/include/Rcpp/grow.h | 77 - .../3.4.1/Rcpp/include/Rcpp/hash/IndexHash.h | 241 - .../3.4.1/Rcpp/include/Rcpp/hash/SelfHash.h | 129 - .../3.4.1/Rcpp/include/Rcpp/hash/hash.h | 31 - .../Rcpp/include/Rcpp/internal/Exporter.h | 116 - .../Rcpp/include/Rcpp/internal/GreedyVector.h | 96 - .../Rcpp/internal/ListInitialization.h | 44 - .../Rcpp/include/Rcpp/internal/NAComparator.h | 119 - .../Rcpp/include/Rcpp/internal/NAEquals.h | 46 - .../include/Rcpp/internal/Proxy_Iterator.h | 125 - .../include/Rcpp/internal/SEXP_Iterator.h | 75 - .../3.4.1/Rcpp/include/Rcpp/internal/caster.h | 70 - .../Rcpp/include/Rcpp/internal/converter.h | 48 - .../3.4.1/Rcpp/include/Rcpp/internal/export.h | 165 - .../3.4.1/Rcpp/include/Rcpp/internal/na.h | 98 - .../Rcpp/include/Rcpp/internal/r_coerce.h | 301 - .../Rcpp/include/Rcpp/internal/r_vector.h | 139 - .../3.4.1/Rcpp/include/Rcpp/internal/wrap.h | 943 - .../Rcpp/include/Rcpp/internal/wrap_end.h | 44 - .../Rcpp/include/Rcpp/iostream/Rstreambuf.h | 98 - .../3.4.1/Rcpp/include/Rcpp/is.h | 59 - .../3.4.1/Rcpp/include/Rcpp/lang.h | 370 - .../3.4.1/Rcpp/include/Rcpp/longlong.h | 41 - .../3.4.1/Rcpp/include/Rcpp/macros/cat.hpp | 33 - .../3.4.1/Rcpp/include/Rcpp/macros/config.hpp | 70 - .../3.4.1/Rcpp/include/Rcpp/macros/debug.h | 109 - .../3.4.1/Rcpp/include/Rcpp/macros/dispatch.h | 108 - .../Rcpp/include/Rcpp/macros/interface.h | 56 - .../3.4.1/Rcpp/include/Rcpp/macros/macros.h | 97 - .../3.4.1/Rcpp/include/Rcpp/macros/module.h | 88 - .../3.4.1/Rcpp/include/Rcpp/macros/traits.h | 42 - .../3.4.1/Rcpp/include/Rcpp/macros/unroll.h | 89 - .../3.4.1/Rcpp/include/Rcpp/macros/xp.h | 65 - .../Rcpp/include/Rcpp/module/CppFunction.h | 90 - .../3.4.1/Rcpp/include/Rcpp/module/Module.h | 243 - .../include/Rcpp/module/Module_Add_Property.h | 98 - .../Rcpp/include/Rcpp/module/Module_Field.h | 83 - .../include/Rcpp/module/Module_Property.h | 251 - .../module/Module_generated_Constructor.h | 148 - .../module/Module_generated_CppFunction.h | 14411 ---------------- .../Rcpp/module/Module_generated_CppMethod.h | 13817 --------------- .../Rcpp/module/Module_generated_Factory.h | 179 - .../Module_generated_Pointer_CppMethod.h | 13948 --------------- .../module/Module_generated_Pointer_method.h | 1017 -- .../Module_generated_class_constructor.h | 108 - .../module/Module_generated_class_factory.h | 108 - .../module/Module_generated_class_signature.h | 34 - .../module/Module_generated_ctor_signature.h | 108 - .../Rcpp/module/Module_generated_function.h | 1087 -- .../module/Module_generated_get_signature.h | 3106 ---- .../Rcpp/module/Module_generated_method.h | 1941 --- .../3.4.1/Rcpp/include/Rcpp/module/class.h | 539 - .../Rcpp/include/Rcpp/module/class_Base.h | 97 - .../include/Rcpp/module/get_return_type.h | 79 - .../Rcpp/include/Rcpp/platform/compiler.h | 196 - .../Rcpp/include/Rcpp/platform/solaris.h | 70 - .../3.4.1/Rcpp/include/Rcpp/print.h | 38 - .../Rcpp/include/Rcpp/protection/Armor.h | 58 - .../Rcpp/include/Rcpp/protection/Shelter.h | 47 - .../Rcpp/include/Rcpp/protection/Shield.h | 48 - .../Rcpp/include/Rcpp/protection/protection.h | 25 - .../Rcpp/include/Rcpp/proxy/AttributeProxy.h | 105 - .../3.4.1/Rcpp/include/Rcpp/proxy/Binding.h | 109 - .../Rcpp/include/Rcpp/proxy/DottedPairProxy.h | 115 - .../Rcpp/include/Rcpp/proxy/FieldProxy.h | 84 - .../Rcpp/include/Rcpp/proxy/GenericProxy.h | 32 - .../Rcpp/include/Rcpp/proxy/NamesProxy.h | 93 - .../Rcpp/include/Rcpp/proxy/ProtectedProxy.h | 96 - .../Rcpp/include/Rcpp/proxy/RObjectMethods.h | 47 - .../3.4.1/Rcpp/include/Rcpp/proxy/SlotProxy.h | 103 - .../3.4.1/Rcpp/include/Rcpp/proxy/TagProxy.h | 85 - .../3.4.1/Rcpp/include/Rcpp/proxy/proxy.h | 32 - .../3.4.1/Rcpp/include/Rcpp/r/headers.h | 84 - .../3.4.1/Rcpp/include/Rcpp/r_cast.h | 170 - .../3.4.1/Rcpp/include/Rcpp/routines.h | 257 - .../3.4.1/Rcpp/include/Rcpp/sprintf.h | 38 - .../3.4.1/Rcpp/include/Rcpp/stats/beta.h | 27 - .../3.4.1/Rcpp/include/Rcpp/stats/binom.h | 27 - .../3.4.1/Rcpp/include/Rcpp/stats/cauchy.h | 61 - .../3.4.1/Rcpp/include/Rcpp/stats/chisq.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/dpq/dpq.h | 408 - .../Rcpp/include/Rcpp/stats/dpq/macros.h | 127 - .../3.4.1/Rcpp/include/Rcpp/stats/exp.h | 98 - .../3.4.1/Rcpp/include/Rcpp/stats/f.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/gamma.h | 75 - .../3.4.1/Rcpp/include/Rcpp/stats/geom.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/hyper.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/lnorm.h | 115 - .../3.4.1/Rcpp/include/Rcpp/stats/logis.h | 135 - .../3.4.1/Rcpp/include/Rcpp/stats/nbeta.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/nbinom.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/nbinom_mu.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/nchisq.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/nf.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/norm.h | 115 - .../3.4.1/Rcpp/include/Rcpp/stats/nt.h | 28 - .../3.4.1/Rcpp/include/Rcpp/stats/pois.h | 27 - .../Rcpp/include/Rcpp/stats/random/random.h | 332 - .../Rcpp/include/Rcpp/stats/random/rbeta.h | 42 - .../Rcpp/include/Rcpp/stats/random/rbinom.h | 41 - .../Rcpp/include/Rcpp/stats/random/rcauchy.h | 70 - .../Rcpp/include/Rcpp/stats/random/rchisq.h | 44 - .../Rcpp/include/Rcpp/stats/random/rexp.h | 50 - .../3.4.1/Rcpp/include/Rcpp/stats/random/rf.h | 75 - .../Rcpp/include/Rcpp/stats/random/rgamma.h | 40 - .../Rcpp/include/Rcpp/stats/random/rgeom.h | 44 - .../Rcpp/include/Rcpp/stats/random/rhyper.h | 40 - .../Rcpp/include/Rcpp/stats/random/rlnorm.h | 73 - .../Rcpp/include/Rcpp/stats/random/rlogis.h | 76 - .../Rcpp/include/Rcpp/stats/random/rnbinom.h | 47 - .../include/Rcpp/stats/random/rnbinom_mu.h | 46 - .../Rcpp/include/Rcpp/stats/random/rnchisq.h | 54 - .../Rcpp/include/Rcpp/stats/random/rnorm.h | 83 - .../Rcpp/include/Rcpp/stats/random/rpois.h | 39 - .../include/Rcpp/stats/random/rsignrank.h | 40 - .../3.4.1/Rcpp/include/Rcpp/stats/random/rt.h | 51 - .../Rcpp/include/Rcpp/stats/random/runif.h | 60 - .../Rcpp/include/Rcpp/stats/random/rweibull.h | 59 - .../Rcpp/include/Rcpp/stats/random/rwilcox.h | 39 - .../3.4.1/Rcpp/include/Rcpp/stats/stats.h | 58 - .../3.4.1/Rcpp/include/Rcpp/stats/t.h | 27 - .../3.4.1/Rcpp/include/Rcpp/stats/unif.h | 99 - .../3.4.1/Rcpp/include/Rcpp/stats/weibull.h | 86 - .../include/Rcpp/storage/NoProtectStorage.h | 54 - .../include/Rcpp/storage/PreserveStorage.h | 55 - .../3.4.1/Rcpp/include/Rcpp/storage/storage.h | 7 - .../3.4.1/Rcpp/include/Rcpp/sugar/Range.h | 92 - .../include/Rcpp/sugar/block/SugarBlock_1.h | 62 - .../include/Rcpp/sugar/block/SugarBlock_2.h | 164 - .../include/Rcpp/sugar/block/SugarBlock_3.h | 126 - .../Rcpp/include/Rcpp/sugar/block/SugarMath.h | 124 - .../Rcpp/sugar/block/Vectorized_Math.h | 100 - .../Rcpp/include/Rcpp/sugar/block/block.h | 32 - .../Rcpp/include/Rcpp/sugar/functions/Lazy.h | 37 - .../Rcpp/include/Rcpp/sugar/functions/all.h | 90 - .../Rcpp/include/Rcpp/sugar/functions/any.h | 87 - .../Rcpp/include/Rcpp/sugar/functions/cbind.h | 830 - .../Rcpp/include/Rcpp/sugar/functions/clamp.h | 95 - .../include/Rcpp/sugar/functions/complex.h | 275 - .../include/Rcpp/sugar/functions/cummax.h | 71 - .../include/Rcpp/sugar/functions/cummin.h | 71 - .../include/Rcpp/sugar/functions/cumprod.h | 76 - .../include/Rcpp/sugar/functions/cumsum.h | 71 - .../Rcpp/include/Rcpp/sugar/functions/diff.h | 139 - .../include/Rcpp/sugar/functions/duplicated.h | 37 - .../include/Rcpp/sugar/functions/functions.h | 92 - .../Rcpp/include/Rcpp/sugar/functions/head.h | 62 - .../include/Rcpp/sugar/functions/ifelse.h | 430 - .../include/Rcpp/sugar/functions/is_finite.h | 55 - .../Rcpp/sugar/functions/is_infinite.h | 55 - .../Rcpp/include/Rcpp/sugar/functions/is_na.h | 100 - .../include/Rcpp/sugar/functions/is_nan.h | 55 - .../include/Rcpp/sugar/functions/lapply.h | 61 - .../include/Rcpp/sugar/functions/mapply.h | 28 - .../Rcpp/sugar/functions/mapply/mapply_2.h | 146 - .../Rcpp/sugar/functions/mapply/mapply_3.h | 87 - .../Rcpp/include/Rcpp/sugar/functions/match.h | 35 - .../Rcpp/include/Rcpp/sugar/functions/math.h | 72 - .../Rcpp/include/Rcpp/sugar/functions/max.h | 87 - .../Rcpp/include/Rcpp/sugar/functions/mean.h | 162 - .../include/Rcpp/sugar/functions/median.h | 290 - .../Rcpp/include/Rcpp/sugar/functions/min.h | 86 - .../include/Rcpp/sugar/functions/na_omit.h | 84 - .../Rcpp/include/Rcpp/sugar/functions/pmax.h | 193 - .../Rcpp/include/Rcpp/sugar/functions/pmin.h | 191 - .../Rcpp/include/Rcpp/sugar/functions/pow.h | 89 - .../Rcpp/include/Rcpp/sugar/functions/range.h | 92 - .../Rcpp/include/Rcpp/sugar/functions/rep.h | 91 - .../include/Rcpp/sugar/functions/rep_each.h | 57 - .../include/Rcpp/sugar/functions/rep_len.h | 57 - .../Rcpp/include/Rcpp/sugar/functions/rev.h | 56 - .../include/Rcpp/sugar/functions/rowSums.h | 961 -- .../include/Rcpp/sugar/functions/sample.h | 476 - .../include/Rcpp/sugar/functions/sapply.h | 136 - .../Rcpp/include/Rcpp/sugar/functions/sd.h | 53 - .../include/Rcpp/sugar/functions/self_match.h | 77 - .../include/Rcpp/sugar/functions/seq_along.h | 59 - .../include/Rcpp/sugar/functions/setdiff.h | 185 - .../Rcpp/include/Rcpp/sugar/functions/sign.h | 82 - .../Rcpp/sugar/functions/strings/collapse.h | 46 - .../Rcpp/sugar/functions/strings/strings.h | 28 - .../Rcpp/sugar/functions/strings/trimws.h | 220 - .../Rcpp/include/Rcpp/sugar/functions/sum.h | 114 - .../Rcpp/include/Rcpp/sugar/functions/table.h | 133 - .../Rcpp/include/Rcpp/sugar/functions/tail.h | 65 - .../include/Rcpp/sugar/functions/unique.h | 85 - .../Rcpp/include/Rcpp/sugar/functions/var.h | 95 - .../include/Rcpp/sugar/functions/which_max.h | 96 - .../include/Rcpp/sugar/functions/which_min.h | 96 - .../Rcpp/sugar/logical/SingleLogicalResult.h | 106 - .../Rcpp/include/Rcpp/sugar/logical/and.h | 324 - .../include/Rcpp/sugar/logical/can_have_na.h | 32 - .../Rcpp/include/Rcpp/sugar/logical/is.h | 44 - .../Rcpp/include/Rcpp/sugar/logical/logical.h | 34 - .../Rcpp/include/Rcpp/sugar/logical/not.h | 67 - .../Rcpp/include/Rcpp/sugar/logical/or.h | 323 - .../include/Rcpp/sugar/matrix/as_vector.h | 61 - .../Rcpp/include/Rcpp/sugar/matrix/col.h | 61 - .../Rcpp/include/Rcpp/sugar/matrix/diag.h | 90 - .../include/Rcpp/sugar/matrix/lower_tri.h | 69 - .../Rcpp/sugar/matrix/matrix_functions.h | 33 - .../Rcpp/include/Rcpp/sugar/matrix/outer.h | 90 - .../Rcpp/include/Rcpp/sugar/matrix/row.h | 61 - .../Rcpp/include/Rcpp/sugar/matrix/tools.h | 44 - .../include/Rcpp/sugar/matrix/upper_tri.h | 69 - .../3.4.1/Rcpp/include/Rcpp/sugar/nona/nona.h | 88 - .../include/Rcpp/sugar/operators/Comparator.h | 117 - .../operators/Comparator_With_One_Value.h | 110 - .../include/Rcpp/sugar/operators/divides.h | 449 - .../logical_operators__Vector__Vector.h | 153 - .../logical_operators__Vector__primitive.h | 290 - .../Rcpp/include/Rcpp/sugar/operators/minus.h | 453 - .../Rcpp/include/Rcpp/sugar/operators/not.h | 108 - .../include/Rcpp/sugar/operators/operators.h | 40 - .../Rcpp/include/Rcpp/sugar/operators/plus.h | 505 - .../Rcpp/sugar/operators/r_binary_op.h | 50 - .../Rcpp/include/Rcpp/sugar/operators/times.h | 486 - .../Rcpp/sugar/operators/unary_minus.h | 120 - .../3.4.1/Rcpp/include/Rcpp/sugar/sets.h | 61 - .../3.4.1/Rcpp/include/Rcpp/sugar/sugar.h | 35 - .../Rcpp/include/Rcpp/sugar/sugar_forward.h | 33 - .../Rcpp/include/Rcpp/sugar/tools/iterator.h | 155 - .../3.4.1/Rcpp/include/Rcpp/sugar/undoRmath.h | 167 - .../Rcpp/include/Rcpp/traits/char_type.h | 44 - .../Rcpp/include/Rcpp/traits/enable_if.h | 18 - .../include/Rcpp/traits/expands_to_logical.h | 61 - .../3.4.1/Rcpp/include/Rcpp/traits/get_na.h | 59 - .../Rcpp/include/Rcpp/traits/has_iterator.h | 124 - .../3.4.1/Rcpp/include/Rcpp/traits/has_na.h | 65 - .../3.4.1/Rcpp/include/Rcpp/traits/if_.h | 41 - .../Rcpp/include/Rcpp/traits/init_type.h | 41 - .../include/Rcpp/traits/integral_constant.h | 43 - .../Rcpp/include/Rcpp/traits/is_arithmetic.h | 105 - .../3.4.1/Rcpp/include/Rcpp/traits/is_bool.h | 24 - .../3.4.1/Rcpp/include/Rcpp/traits/is_const.h | 40 - .../Rcpp/include/Rcpp/traits/is_convertible.h | 48 - .../Rcpp/include/Rcpp/traits/is_eigen_base.h | 47 - .../Rcpp/include/Rcpp/traits/is_finite.h | 61 - .../Rcpp/include/Rcpp/traits/is_infinite.h | 47 - .../include/Rcpp/traits/is_module_object.h | 41 - .../3.4.1/Rcpp/include/Rcpp/traits/is_na.h | 64 - .../3.4.1/Rcpp/include/Rcpp/traits/is_nan.h | 47 - .../Rcpp/include/Rcpp/traits/is_pointer.h | 35 - .../Rcpp/include/Rcpp/traits/is_primitive.h | 37 - .../Rcpp/include/Rcpp/traits/is_reference.h | 38 - .../include/Rcpp/traits/is_sugar_expression.h | 49 - .../Rcpp/include/Rcpp/traits/is_trivial.h | 35 - .../Rcpp/include/Rcpp/traits/is_wide_string.h | 41 - .../3.4.1/Rcpp/include/Rcpp/traits/longlong.h | 44 - .../include/Rcpp/traits/matrix_interface.h | 53 - .../include/Rcpp/traits/module_wrap_traits.h | 39 - .../Rcpp/include/Rcpp/traits/named_object.h | 67 - .../3.4.1/Rcpp/include/Rcpp/traits/num2type.h | 34 - .../3.4.1/Rcpp/include/Rcpp/traits/one_type.h | 78 - .../include/Rcpp/traits/r_sexptype_traits.h | 79 - .../Rcpp/include/Rcpp/traits/r_type_traits.h | 183 - .../Rcpp/include/Rcpp/traits/remove_const.h | 39 - .../Rcpp/traits/remove_const_and_reference.h | 35 - .../include/Rcpp/traits/remove_reference.h | 39 - .../Rcpp/include/Rcpp/traits/result_of.h | 53 - .../Rcpp/include/Rcpp/traits/same_type.h | 35 - .../Rcpp/include/Rcpp/traits/storage_type.h | 82 - .../3.4.1/Rcpp/include/Rcpp/traits/traits.h | 82 - .../Rcpp/include/Rcpp/traits/un_pointer.h | 35 - .../include/Rcpp/traits/wrap_type_traits.h | 106 - .../Rcpp/include/Rcpp/utils/tinyformat.h | 1046 -- .../include/Rcpp/vector/00_forward_Vector.h | 28 - .../include/Rcpp/vector/00_forward_proxy.h | 51 - .../Rcpp/include/Rcpp/vector/ChildVector.h | 77 - .../Rcpp/include/Rcpp/vector/DimNameProxy.h | 91 - .../Rcpp/include/Rcpp/vector/LazyVector.h | 70 - .../3.4.1/Rcpp/include/Rcpp/vector/ListOf.h | 140 - .../3.4.1/Rcpp/include/Rcpp/vector/Matrix.h | 452 - .../Rcpp/include/Rcpp/vector/MatrixBase.h | 197 - .../Rcpp/include/Rcpp/vector/MatrixColumn.h | 160 - .../Rcpp/include/Rcpp/vector/MatrixRow.h | 304 - .../Rcpp/include/Rcpp/vector/RangeIndexer.h | 104 - .../Rcpp/include/Rcpp/vector/SubMatrix.h | 107 - .../Rcpp/include/Rcpp/vector/Subsetter.h | 259 - .../3.4.1/Rcpp/include/Rcpp/vector/Vector.h | 1176 -- .../Rcpp/include/Rcpp/vector/VectorBase.h | 146 - .../include/Rcpp/vector/const_generic_proxy.h | 66 - .../include/Rcpp/vector/const_string_proxy.h | 179 - .../Rcpp/include/Rcpp/vector/converter.h | 109 - .../Rcpp/include/Rcpp/vector/generic_proxy.h | 94 - .../Rcpp/include/Rcpp/vector/instantiation.h | 54 - .../3.4.1/Rcpp/include/Rcpp/vector/no_init.h | 79 - .../3.4.1/Rcpp/include/Rcpp/vector/proxy.h | 263 - .../Rcpp/include/Rcpp/vector/string_proxy.h | 255 - .../3.4.1/Rcpp/include/Rcpp/vector/swap.h | 42 - .../3.4.1/Rcpp/include/Rcpp/vector/traits.h | 105 - .../include/Rcpp/vector/vector_from_string.h | 57 - .../3.4.1/Rcpp/include/RcppCommon.h | 181 - .../3.4.1/Rcpp/include/doxygen/Examples.h | 155 - .../3.4.1/Rcpp/libs/Rcpp.so | Bin 471720 -> 0 bytes .../3.4.1/Rcpp/prompt/module.Rd | 27 - .../3.4.1/Rcpp/skeleton/Num.cpp | 51 - .../Rcpp/skeleton/Rcpp_modules_examples.Rd | 24 - .../3.4.1/Rcpp/skeleton/manual-page-stub.Rd | 34 - .../3.4.1/Rcpp/skeleton/rcpp_hello_world.R | 5 - .../3.4.1/Rcpp/skeleton/rcpp_hello_world.Rd | 17 - .../3.4.1/Rcpp/skeleton/rcpp_hello_world.cpp | 11 - .../3.4.1/Rcpp/skeleton/rcpp_hello_world.h | 19 - .../skeleton/rcpp_hello_world_attributes.cpp | 13 - .../3.4.1/Rcpp/skeleton/rcpp_module.cpp | 85 - .../3.4.1/Rcpp/skeleton/stdVector.cpp | 90 - .../3.4.1/Rcpp/skeleton/zzz.R | 16 - .../3.4.1/Rcpp/tests/doRUnit.R | 70 - .../r-cran-testrcpppackage_0.1.0-1_amd64.deb | Bin 16266 -> 0 bytes .../r-cran-testrcpppackage_0.1.0-1_i386.deb | Bin 16142 -> 0 bytes .../3.4.1/Rcpp/unitTests/cpp/DataFrame.cpp | 96 - .../3.4.1/Rcpp/unitTests/cpp/Environment.cpp | 176 - .../3.4.1/Rcpp/unitTests/cpp/Function.cpp | 82 - .../Rcpp/unitTests/cpp/InternalFunction.cpp | 45 - .../unitTests/cpp/InternalFunctionCPP11.cpp | 45 - .../3.4.1/Rcpp/unitTests/cpp/ListOf.cpp | 115 - .../3.4.1/Rcpp/unitTests/cpp/Matrix.cpp | 412 - .../3.4.1/Rcpp/unitTests/cpp/Module.cpp | 218 - .../3.4.1/Rcpp/unitTests/cpp/RObject.cpp | 164 - .../3.4.1/Rcpp/unitTests/cpp/Reference.cpp | 30 - .../3.4.1/Rcpp/unitTests/cpp/S4.cpp | 93 - .../3.4.1/Rcpp/unitTests/cpp/String.cpp | 116 - .../3.4.1/Rcpp/unitTests/cpp/Subset.cpp | 111 - .../3.4.1/Rcpp/unitTests/cpp/Vector.cpp | 850 - .../3.4.1/Rcpp/unitTests/cpp/VectorOld.cpp | 38 - .../3.4.1/Rcpp/unitTests/cpp/XPtr.cpp | 69 - .../3.4.1/Rcpp/unitTests/cpp/algorithm.cpp | 97 - .../3.4.1/Rcpp/unitTests/cpp/as.cpp | 60 - .../3.4.1/Rcpp/unitTests/cpp/attributes.cpp | 22 - .../3.4.1/Rcpp/unitTests/cpp/attributes.hpp | 9 - .../3.4.1/Rcpp/unitTests/cpp/dates.cpp | 236 - .../3.4.1/Rcpp/unitTests/cpp/dispatch.cpp | 47 - .../3.4.1/Rcpp/unitTests/cpp/exceptions.cpp | 69 - .../3.4.1/Rcpp/unitTests/cpp/language.cpp | 274 - .../3.4.1/Rcpp/unitTests/cpp/misc.cpp | 226 - .../3.4.1/Rcpp/unitTests/cpp/modref.cpp | 55 - .../3.4.1/Rcpp/unitTests/cpp/na.cpp | 44 - .../3.4.1/Rcpp/unitTests/cpp/rmath.cpp | 698 - .../3.4.1/Rcpp/unitTests/cpp/stats.cpp | 255 - .../3.4.1/Rcpp/unitTests/cpp/sugar.cpp | 1221 -- .../3.4.1/Rcpp/unitTests/cpp/support.cpp | 94 - .../3.4.1/Rcpp/unitTests/cpp/table.cpp | 37 - .../3.4.1/Rcpp/unitTests/cpp/wrap.cpp | 306 - .../3.4.1/Rcpp/unitTests/cpp/wstring.cpp | 43 - .../3.4.1/Rcpp/unitTests/runTests.R | 164 - .../3.4.1/Rcpp/unitTests/runit.DataFrame.R | 90 - .../3.4.1/Rcpp/unitTests/runit.Date.R | 267 - .../3.4.1/Rcpp/unitTests/runit.Function.R | 96 - .../Rcpp/unitTests/runit.InternalFunction.R | 41 - .../unitTests/runit.InternalFunctionCPP11.R | 41 - .../3.4.1/Rcpp/unitTests/runit.Language.R | 172 - .../3.4.1/Rcpp/unitTests/runit.ListOf.R | 101 - .../3.4.1/Rcpp/unitTests/runit.Matrix.R | 367 - .../3.4.1/Rcpp/unitTests/runit.Module.R | 97 - .../unitTests/runit.Module.client.package.R | 70 - .../3.4.1/Rcpp/unitTests/runit.RObject.R | 188 - .../unitTests/runit.Rcpp.package.skeleton.R | 151 - .../3.4.1/Rcpp/unitTests/runit.Reference.R | 38 - .../3.4.1/Rcpp/unitTests/runit.S4.R | 103 - .../3.4.1/Rcpp/unitTests/runit.String.R | 97 - .../3.4.1/Rcpp/unitTests/runit.Vector.R | 759 - .../3.4.1/Rcpp/unitTests/runit.VectorOld.R | 34 - .../3.4.1/Rcpp/unitTests/runit.XPTr.R | 43 - .../3.4.1/Rcpp/unitTests/runit.algorithm.R | 148 - .../3.4.1/Rcpp/unitTests/runit.as.R | 99 - .../3.4.1/Rcpp/unitTests/runit.attributes.R | 37 - .../Rcpp/unitTests/runit.binary.package.R | 64 - .../Rcpp/unitTests/runit.client.package.R | 49 - .../3.4.1/Rcpp/unitTests/runit.dispatch.R | 92 - .../3.4.1/Rcpp/unitTests/runit.environments.R | 307 - .../3.4.1/Rcpp/unitTests/runit.exceptions.R | 123 - .../3.4.1/Rcpp/unitTests/runit.misc.R | 217 - .../3.4.1/Rcpp/unitTests/runit.modref.R | 45 - .../3.4.1/Rcpp/unitTests/runit.na.R | 37 - .../Rcpp/unitTests/runit.quickanddirty.R | 60 - .../3.4.1/Rcpp/unitTests/runit.rmath.R | 654 - .../3.4.1/Rcpp/unitTests/runit.stats.R | 333 - .../3.4.1/Rcpp/unitTests/runit.subset.R | 95 - .../3.4.1/Rcpp/unitTests/runit.sugar.R | 2182 --- .../3.4.1/Rcpp/unitTests/runit.sugar.var.R | 43 - .../3.4.1/Rcpp/unitTests/runit.support.R | 61 - .../3.4.1/Rcpp/unitTests/runit.system.R | 45 - .../3.4.1/Rcpp/unitTests/runit.table.R | 48 - .../3.4.1/Rcpp/unitTests/runit.wrap.R | 203 - .../3.4.1/Rcpp/unitTests/runit.wstring.R | 49 - .../Rcpp/unitTests/testRcppClass/DESCRIPTION | 17 - .../Rcpp/unitTests/testRcppClass/NAMESPACE | 7 - .../Rcpp/unitTests/testRcppClass/R/load.R | 53 - .../testRcppClass/R/rcpp_hello_world.R | 5 - .../testRcppClass/man/Rcpp_class_examples.Rd | 30 - .../testRcppClass/man/rcpp_hello_world.Rd | 17 - .../man/testRcppClass-package.Rd | 22 - .../Rcpp/unitTests/testRcppClass/src/Num.cpp | 32 - .../Rcpp/unitTests/testRcppClass/src/init.c | 27 - .../testRcppClass/src/rcpp_hello_world.cpp | 11 - .../testRcppClass/src/rcpp_hello_world.h | 8 - .../testRcppClass/src/rcpp_module.cpp | 53 - .../unitTests/testRcppClass/src/stdVector.cpp | 71 - .../unitTests/testRcppClass/tests/classes.R | 25 - .../Rcpp/unitTests/testRcppModule/DESCRIPTION | 15 - .../Rcpp/unitTests/testRcppModule/NAMESPACE | 4 - .../testRcppModule/R/rcpp_hello_world.R | 5 - .../Rcpp/unitTests/testRcppModule/R/zzz.R | 11 - .../man/Rcpp_modules_examples.Rd | 24 - .../testRcppModule/man/rcpp_hello_world.Rd | 18 - .../man/testRcppModule-package.Rd | 22 - .../Rcpp/unitTests/testRcppModule/src/Num.cpp | 51 - .../Rcpp/unitTests/testRcppModule/src/init.c | 27 - .../testRcppModule/src/rcpp_hello_world.cpp | 11 - .../testRcppModule/src/rcpp_hello_world.h | 8 - .../testRcppModule/src/rcpp_module.cpp | 74 - .../testRcppModule/src/stdVector.cpp | 90 - .../unitTests/testRcppModule/tests/modules.R | 20 - .../unitTests/testRcppPackage/DESCRIPTION | 12 - .../Rcpp/unitTests/testRcppPackage/NAMESPACE | 2 - .../testRcppPackage/R/rcpp_hello_world.R | 3 - .../man/testRcppPackage-package.Rd | 20 - .../testRcppPackage/src/rcpp_hello_world.cpp | 19 - .../testRcppPackage/src/rcpp_hello_world.h | 9 - .../3.4.1/RcppArmadillo/AUTHORS | 15 - .../3.4.1/RcppArmadillo/CITATION | 19 - .../3.4.1/RcppArmadillo/COPYRIGHTS | 22 - .../3.4.1/RcppArmadillo/DESCRIPTION | 39 - .../3.4.1/RcppArmadillo/INDEX | 11 - .../3.4.1/RcppArmadillo/Meta/Rd.rds | Bin 549 -> 0 bytes .../3.4.1/RcppArmadillo/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/RcppArmadillo/Meta/hsearch.rds | Bin 563 -> 0 bytes .../3.4.1/RcppArmadillo/Meta/links.rds | Bin 247 -> 0 bytes .../3.4.1/RcppArmadillo/Meta/nsInfo.rds | Bin 515 -> 0 bytes .../3.4.1/RcppArmadillo/Meta/package.rds | Bin 1435 -> 0 bytes .../3.4.1/RcppArmadillo/Meta/vignette.rds | Bin 289 -> 0 bytes .../3.4.1/RcppArmadillo/NAMESPACE | 21 - .../3.4.1/RcppArmadillo/NEWS.Rd | 1614 -- .../3.4.1/RcppArmadillo/R/RcppArmadillo | 27 - .../3.4.1/RcppArmadillo/R/RcppArmadillo.rdb | Bin 7261 -> 0 bytes .../3.4.1/RcppArmadillo/R/RcppArmadillo.rdx | Bin 526 -> 0 bytes .../RcppArmadillo/announce/ANNOUNCE-0.2.0.txt | 140 - .../RcppArmadillo/doc/RcppArmadillo-intro.R | 9 - .../RcppArmadillo/doc/RcppArmadillo-intro.Rnw | 920 - .../RcppArmadillo/doc/RcppArmadillo-intro.pdf | Bin 336720 -> 0 bytes .../doc/RcppArmadillo-unitTests.R | 46 - .../doc/RcppArmadillo-unitTests.Rnw | 65 - .../doc/RcppArmadillo-unitTests.pdf | Bin 53782 -> 0 bytes .../3.4.1/RcppArmadillo/doc/index.html | 33 - .../3.4.1/RcppArmadillo/examples/fastLm.r | 161 - .../examples/kalman/FirstKalmanR.R | 37 - .../RcppArmadillo/examples/kalman/Kalman.cpp | 59 - .../RcppArmadillo/examples/kalman/KalmanR.R | 46 - .../examples/kalman/KalmanRimp.R | 49 - .../RcppArmadillo/examples/kalman/benchmark.R | 35 - .../examples/kalman/firstExample.R | 13 - .../examples/kalman/kalmanExample.m | 4 - .../RcppArmadillo/examples/kalman/kalmanM.m | 36 - .../examples/kalman/kalmanfilter.m | 28 - .../RcppArmadillo/examples/kalman/pos.txt | 310 - .../RcppArmadillo/examples/varSimulation.r | 80 - .../3.4.1/RcppArmadillo/help/AnIndex | 11 - .../RcppArmadillo/help/RcppArmadillo.rdb | Bin 18290 -> 0 bytes .../RcppArmadillo/help/RcppArmadillo.rdx | Bin 311 -> 0 bytes .../3.4.1/RcppArmadillo/help/aliases.rds | Bin 202 -> 0 bytes .../3.4.1/RcppArmadillo/help/paths.rds | Bin 182 -> 0 bytes .../3.4.1/RcppArmadillo/html/00Index.html | 50 - .../3.4.1/RcppArmadillo/html/R.css | 97 - .../3.4.1/RcppArmadillo/include/README | 6 - .../RcppArmadillo/include/RcppArmadillo.h | 42 - .../include/RcppArmadillo/Alt_R_RNG.h | 151 - .../include/RcppArmadillo/Col_meat.h | 47 - .../include/RcppArmadillo/Col_proto.h | 33 - .../include/RcppArmadillo/Mat_meat.h | 139 - .../include/RcppArmadillo/Mat_proto.h | 33 - .../include/RcppArmadillo/Row_meat.h | 47 - .../include/RcppArmadillo/Row_proto.h | 33 - .../RcppArmadillo/include/RcppArmadilloAs.h | 801 - .../include/RcppArmadilloConfig.h | 122 - .../include/RcppArmadilloConfigGenerated.h | 31 - .../include/RcppArmadilloConfigGenerated.h.in | 31 - .../include/RcppArmadilloExtensions/fixprob.h | 54 - .../RcppArmadilloExtensions/rmultinom.h | 72 - .../include/RcppArmadilloExtensions/sample.h | 233 - .../include/RcppArmadilloForward.h | 122 - .../include/RcppArmadilloSugar.h | 37 - .../RcppArmadillo/include/RcppArmadilloWrap.h | 280 - .../3.4.1/RcppArmadillo/include/armadillo | 710 - .../include/armadillo_bits/BaseCube_bones.hpp | 69 - .../include/armadillo_bits/BaseCube_meat.hpp | 180 - .../include/armadillo_bits/Base_bones.hpp | 137 - .../include/armadillo_bits/Base_meat.hpp | 395 - .../include/armadillo_bits/Col_bones.hpp | 253 - .../include/armadillo_bits/Col_meat.hpp | 1728 -- .../include/armadillo_bits/Cube_bones.hpp | 482 - .../include/armadillo_bits/Cube_meat.hpp | 4855 ------ .../include/armadillo_bits/GenCube_bones.hpp | 57 - .../include/armadillo_bits/GenCube_meat.hpp | 240 - .../include/armadillo_bits/GenSpecialiser.hpp | 56 - .../include/armadillo_bits/Gen_bones.hpp | 59 - .../include/armadillo_bits/Gen_meat.hpp | 315 - .../include/armadillo_bits/GlueCube_bones.hpp | 41 - .../include/armadillo_bits/GlueCube_meat.hpp | 42 - .../include/armadillo_bits/Glue_bones.hpp | 71 - .../include/armadillo_bits/Glue_meat.hpp | 54 - .../include/armadillo_bits/Mat_bones.hpp | 842 - .../include/armadillo_bits/Mat_meat.hpp | 8910 ---------- .../include/armadillo_bits/OpCube_bones.hpp | 51 - .../include/armadillo_bits/OpCube_meat.hpp | 98 - .../include/armadillo_bits/Op_bones.hpp | 121 - .../include/armadillo_bits/Op_meat.hpp | 90 - .../include/armadillo_bits/Proxy.hpp | 2139 --- .../include/armadillo_bits/ProxyCube.hpp | 521 - .../include/armadillo_bits/Row_bones.hpp | 251 - .../include/armadillo_bits/Row_meat.hpp | 1666 -- .../include/armadillo_bits/SizeCube_bones.hpp | 50 - .../include/armadillo_bits/SizeCube_meat.hpp | 153 - .../include/armadillo_bits/SizeMat_bones.hpp | 49 - .../include/armadillo_bits/SizeMat_meat.hpp | 144 - .../include/armadillo_bits/SpBase_bones.hpp | 84 - .../include/armadillo_bits/SpBase_meat.hpp | 323 - .../include/armadillo_bits/SpCol_bones.hpp | 74 - .../include/armadillo_bits/SpCol_meat.hpp | 402 - .../include/armadillo_bits/SpGlue_bones.hpp | 44 - .../include/armadillo_bits/SpGlue_meat.hpp | 54 - .../include/armadillo_bits/SpMat_bones.hpp | 617 - .../armadillo_bits/SpMat_iterators_meat.hpp | 807 - .../include/armadillo_bits/SpMat_meat.hpp | 5328 ------ .../include/armadillo_bits/SpOp_bones.hpp | 47 - .../include/armadillo_bits/SpOp_meat.hpp | 64 - .../include/armadillo_bits/SpProxy.hpp | 389 - .../include/armadillo_bits/SpRow_bones.hpp | 77 - .../include/armadillo_bits/SpRow_meat.hpp | 402 - .../armadillo_bits/SpSubview_bones.hpp | 395 - .../SpSubview_iterators_meat.hpp | 980 -- .../include/armadillo_bits/SpSubview_meat.hpp | 1704 -- .../armadillo_bits/SpValProxy_bones.hpp | 81 - .../armadillo_bits/SpValProxy_meat.hpp | 355 - .../include/armadillo_bits/access.hpp | 39 - .../include/armadillo_bits/arma_cmath.hpp | 786 - .../include/armadillo_bits/arma_config.hpp | 161 - .../include/armadillo_bits/arma_forward.hpp | 343 - .../armadillo_bits/arma_ostream_bones.hpp | 71 - .../armadillo_bits/arma_ostream_meat.hpp | 861 - .../include/armadillo_bits/arma_rng.hpp | 528 - .../include/armadillo_bits/arma_rng_cxx11.hpp | 153 - .../include/armadillo_bits/arma_rng_cxx98.hpp | 180 - .../armadillo_bits/arma_static_check.hpp | 66 - .../include/armadillo_bits/arma_str.hpp | 538 - .../include/armadillo_bits/arma_version.hpp | 58 - .../include/armadillo_bits/arrayops_bones.hpp | 218 - .../include/armadillo_bits/arrayops_meat.hpp | 1068 -- .../include/armadillo_bits/auxlib_bones.hpp | 302 - .../include/armadillo_bits/auxlib_meat.hpp | 4458 ----- .../include/armadillo_bits/compiler_extra.hpp | 36 - .../include/armadillo_bits/compiler_setup.hpp | 519 - .../armadillo_bits/compiler_setup_post.hpp | 22 - .../include/armadillo_bits/cond_rel_bones.hpp | 40 - .../include/armadillo_bits/cond_rel_meat.hpp | 132 - .../include/armadillo_bits/config.hpp | 249 - .../include/armadillo_bits/config.hpp.cmake | 249 - .../include/armadillo_bits/constants.hpp | 296 - .../include/armadillo_bits/constants_old.hpp | 174 - .../include/armadillo_bits/debug.hpp | 1308 -- .../include/armadillo_bits/def_arpack.hpp | 81 - .../include/armadillo_bits/def_atlas.hpp | 121 - .../include/armadillo_bits/def_blas.hpp | 108 - .../include/armadillo_bits/def_hdf5.hpp | 140 - .../include/armadillo_bits/def_lapack.hpp | 544 - .../include/armadillo_bits/def_superlu.hpp | 51 - .../include/armadillo_bits/diagmat_proxy.hpp | 587 - .../include/armadillo_bits/diagview_bones.hpp | 115 - .../include/armadillo_bits/diagview_meat.hpp | 985 -- .../include/armadillo_bits/diskio_bones.hpp | 191 - .../include/armadillo_bits/diskio_meat.hpp | 5109 ------ .../include/armadillo_bits/distr_param.hpp | 66 - .../armadillo_bits/eGlueCube_bones.hpp | 52 - .../include/armadillo_bits/eGlueCube_meat.hpp | 151 - .../include/armadillo_bits/eGlue_bones.hpp | 56 - .../include/armadillo_bits/eGlue_meat.hpp | 134 - .../include/armadillo_bits/eOpCube_bones.hpp | 60 - .../include/armadillo_bits/eOpCube_meat.hpp | 171 - .../include/armadillo_bits/eOp_bones.hpp | 62 - .../include/armadillo_bits/eOp_meat.hpp | 149 - .../armadillo_bits/eglue_core_bones.hpp | 84 - .../armadillo_bits/eglue_core_meat.hpp | 1258 -- .../include/armadillo_bits/eop_aux.hpp | 234 - .../include/armadillo_bits/eop_core_bones.hpp | 110 - .../include/armadillo_bits/eop_core_meat.hpp | 1157 -- .../include/armadillo_bits/fft_engine.hpp | 423 - .../include/armadillo_bits/field_bones.hpp | 341 - .../include/armadillo_bits/field_meat.hpp | 2955 ---- .../include/armadillo_bits/fn_accu.hpp | 750 - .../include/armadillo_bits/fn_all.hpp | 109 - .../include/armadillo_bits/fn_any.hpp | 109 - .../armadillo_bits/fn_approx_equal.hpp | 469 - .../include/armadillo_bits/fn_as_scalar.hpp | 462 - .../include/armadillo_bits/fn_chol.hpp | 72 - .../include/armadillo_bits/fn_clamp.hpp | 58 - .../include/armadillo_bits/fn_cond.hpp | 67 - .../include/armadillo_bits/fn_conv.hpp | 72 - .../include/armadillo_bits/fn_conv_to.hpp | 663 - .../include/armadillo_bits/fn_cor.hpp | 52 - .../include/armadillo_bits/fn_cov.hpp | 52 - .../include/armadillo_bits/fn_cross.hpp | 36 - .../include/armadillo_bits/fn_cumprod.hpp | 69 - .../include/armadillo_bits/fn_cumsum.hpp | 69 - .../include/armadillo_bits/fn_det.hpp | 191 - .../include/armadillo_bits/fn_diagmat.hpp | 91 - .../include/armadillo_bits/fn_diagvec.hpp | 35 - .../include/armadillo_bits/fn_diff.hpp | 67 - .../include/armadillo_bits/fn_dot.hpp | 338 - .../include/armadillo_bits/fn_eig_gen.hpp | 108 - .../include/armadillo_bits/fn_eig_pair.hpp | 108 - .../include/armadillo_bits/fn_eig_sym.hpp | 131 - .../include/armadillo_bits/fn_eigs_gen.hpp | 124 - .../include/armadillo_bits/fn_eigs_sym.hpp | 119 - .../include/armadillo_bits/fn_elem.hpp | 1066 -- .../include/armadillo_bits/fn_eps.hpp | 104 - .../include/armadillo_bits/fn_expmat.hpp | 102 - .../include/armadillo_bits/fn_eye.hpp | 126 - .../include/armadillo_bits/fn_fft.hpp | 134 - .../include/armadillo_bits/fn_fft2.hpp | 134 - .../include/armadillo_bits/fn_find.hpp | 230 - .../include/armadillo_bits/fn_find_unique.hpp | 67 - .../include/armadillo_bits/fn_flip.hpp | 48 - .../include/armadillo_bits/fn_hist.hpp | 74 - .../include/armadillo_bits/fn_histc.hpp | 56 - .../include/armadillo_bits/fn_index_max.hpp | 144 - .../include/armadillo_bits/fn_index_min.hpp | 144 - .../armadillo_bits/fn_inplace_strans.hpp | 93 - .../armadillo_bits/fn_inplace_trans.hpp | 129 - .../include/armadillo_bits/fn_interp1.hpp | 337 - .../include/armadillo_bits/fn_inv.hpp | 324 - .../include/armadillo_bits/fn_join.hpp | 228 - .../include/armadillo_bits/fn_kmeans.hpp | 57 - .../include/armadillo_bits/fn_kron.hpp | 133 - .../include/armadillo_bits/fn_log_det.hpp | 129 - .../include/armadillo_bits/fn_logmat.hpp | 125 - .../include/armadillo_bits/fn_lu.hpp | 86 - .../include/armadillo_bits/fn_max.hpp | 259 - .../include/armadillo_bits/fn_mean.hpp | 213 - .../include/armadillo_bits/fn_median.hpp | 92 - .../include/armadillo_bits/fn_min.hpp | 258 - .../include/armadillo_bits/fn_misc.hpp | 661 - .../include/armadillo_bits/fn_n_unique.hpp | 130 - .../include/armadillo_bits/fn_nonzeros.hpp | 51 - .../include/armadillo_bits/fn_norm.hpp | 325 - .../include/armadillo_bits/fn_normalise.hpp | 73 - .../include/armadillo_bits/fn_numel.hpp | 93 - .../include/armadillo_bits/fn_ones.hpp | 170 - .../include/armadillo_bits/fn_orth_null.hpp | 94 - .../include/armadillo_bits/fn_pinv.hpp | 77 - .../include/armadillo_bits/fn_polyfit.hpp | 65 - .../include/armadillo_bits/fn_polyval.hpp | 40 - .../include/armadillo_bits/fn_princomp.hpp | 178 - .../include/armadillo_bits/fn_prod.hpp | 127 - .../include/armadillo_bits/fn_qr.hpp | 84 - .../include/armadillo_bits/fn_qz.hpp | 64 - .../include/armadillo_bits/fn_randg.hpp | 279 - .../include/armadillo_bits/fn_randi.hpp | 226 - .../include/armadillo_bits/fn_randn.hpp | 191 - .../include/armadillo_bits/fn_randu.hpp | 191 - .../include/armadillo_bits/fn_range.hpp | 81 - .../include/armadillo_bits/fn_rank.hpp | 69 - .../include/armadillo_bits/fn_regspace.hpp | 263 - .../include/armadillo_bits/fn_repmat.hpp | 53 - .../include/armadillo_bits/fn_reshape.hpp | 154 - .../include/armadillo_bits/fn_resize.hpp | 100 - .../include/armadillo_bits/fn_schur.hpp | 112 - .../include/armadillo_bits/fn_shift.hpp | 73 - .../include/armadillo_bits/fn_shuffle.hpp | 65 - .../include/armadillo_bits/fn_size.hpp | 189 - .../include/armadillo_bits/fn_solve.hpp | 304 - .../include/armadillo_bits/fn_sort.hpp | 151 - .../include/armadillo_bits/fn_sort_index.hpp | 154 - .../include/armadillo_bits/fn_speye.hpp | 98 - .../include/armadillo_bits/fn_spones.hpp | 43 - .../include/armadillo_bits/fn_sprandn.hpp | 125 - .../include/armadillo_bits/fn_sprandu.hpp | 125 - .../include/armadillo_bits/fn_spsolve.hpp | 164 - .../include/armadillo_bits/fn_sqrtmat.hpp | 123 - .../include/armadillo_bits/fn_stddev.hpp | 96 - .../include/armadillo_bits/fn_strans.hpp | 86 - .../include/armadillo_bits/fn_sum.hpp | 202 - .../include/armadillo_bits/fn_svd.hpp | 190 - .../include/armadillo_bits/fn_svds.hpp | 344 - .../include/armadillo_bits/fn_syl_lyap.hpp | 100 - .../include/armadillo_bits/fn_symmat.hpp | 133 - .../include/armadillo_bits/fn_toeplitz.hpp | 61 - .../include/armadillo_bits/fn_trace.hpp | 258 - .../include/armadillo_bits/fn_trans.hpp | 153 - .../include/armadillo_bits/fn_trapz.hpp | 57 - .../include/armadillo_bits/fn_trig.hpp | 447 - .../include/armadillo_bits/fn_trimat.hpp | 143 - .../include/armadillo_bits/fn_trunc_exp.hpp | 91 - .../include/armadillo_bits/fn_trunc_log.hpp | 98 - .../include/armadillo_bits/fn_unique.hpp | 38 - .../include/armadillo_bits/fn_var.hpp | 159 - .../include/armadillo_bits/fn_vectorise.hpp | 77 - .../include/armadillo_bits/fn_zeros.hpp | 208 - .../armadillo_bits/glue_atan2_bones.hpp | 44 - .../armadillo_bits/glue_atan2_meat.hpp | 226 - .../armadillo_bits/glue_conv_bones.hpp | 46 - .../include/armadillo_bits/glue_conv_meat.hpp | 239 - .../include/armadillo_bits/glue_cor_bones.hpp | 36 - .../include/armadillo_bits/glue_cor_meat.hpp | 183 - .../include/armadillo_bits/glue_cov_bones.hpp | 36 - .../include/armadillo_bits/glue_cov_meat.hpp | 160 - .../armadillo_bits/glue_cross_bones.hpp | 33 - .../armadillo_bits/glue_cross_meat.hpp | 82 - .../armadillo_bits/glue_hist_bones.hpp | 43 - .../include/armadillo_bits/glue_hist_meat.hpp | 246 - .../armadillo_bits/glue_histc_bones.hpp | 43 - .../armadillo_bits/glue_histc_meat.hpp | 160 - .../armadillo_bits/glue_hypot_bones.hpp | 44 - .../armadillo_bits/glue_hypot_meat.hpp | 170 - .../armadillo_bits/glue_join_bones.hpp | 60 - .../include/armadillo_bits/glue_join_meat.hpp | 195 - .../armadillo_bits/glue_kron_bones.hpp | 37 - .../include/armadillo_bits/glue_kron_meat.hpp | 148 - .../include/armadillo_bits/glue_max_bones.hpp | 48 - .../include/armadillo_bits/glue_max_meat.hpp | 267 - .../include/armadillo_bits/glue_min_bones.hpp | 48 - .../include/armadillo_bits/glue_min_meat.hpp | 267 - .../armadillo_bits/glue_mixed_bones.hpp | 84 - .../armadillo_bits/glue_mixed_meat.hpp | 534 - .../armadillo_bits/glue_polyfit_bones.hpp | 37 - .../armadillo_bits/glue_polyfit_meat.hpp | 131 - .../armadillo_bits/glue_polyval_bones.hpp | 35 - .../armadillo_bits/glue_polyval_meat.hpp | 81 - .../armadillo_bits/glue_relational_bones.hpp | 126 - .../armadillo_bits/glue_relational_meat.hpp | 417 - .../armadillo_bits/glue_solve_bones.hpp | 99 - .../armadillo_bits/glue_solve_meat.hpp | 208 - .../armadillo_bits/glue_times_bones.hpp | 153 - .../armadillo_bits/glue_times_meat.hpp | 902 - .../armadillo_bits/glue_toeplitz_bones.hpp | 32 - .../armadillo_bits/glue_toeplitz_meat.hpp | 71 - .../armadillo_bits/glue_trapz_bones.hpp | 45 - .../armadillo_bits/glue_trapz_meat.hpp | 170 - .../include/armadillo_bits/gmm_diag_bones.hpp | 177 - .../include/armadillo_bits/gmm_diag_meat.hpp | 2725 --- .../include/armadillo_bits/gmm_full_bones.hpp | 165 - .../include/armadillo_bits/gmm_full_meat.hpp | 2803 --- .../include/armadillo_bits/gmm_misc_bones.hpp | 117 - .../include/armadillo_bits/gmm_misc_meat.hpp | 194 - .../include/armadillo_bits/hdf5_misc.hpp | 724 - .../include/armadillo_bits/include_atlas.hpp | 42 - .../include/armadillo_bits/include_hdf5.hpp | 37 - .../armadillo_bits/include_superlu.hpp | 374 - .../include/armadillo_bits/injector_bones.hpp | 117 - .../include/armadillo_bits/injector_meat.hpp | 592 - .../include/armadillo_bits/memory.hpp | 232 - .../include/armadillo_bits/mp_misc.hpp | 73 - .../armadillo_bits/mtGlueCube_bones.hpp | 41 - .../armadillo_bits/mtGlueCube_meat.hpp | 54 - .../include/armadillo_bits/mtGlue_bones.hpp | 57 - .../include/armadillo_bits/mtGlue_meat.hpp | 54 - .../include/armadillo_bits/mtOpCube_bones.hpp | 58 - .../include/armadillo_bits/mtOpCube_meat.hpp | 103 - .../include/armadillo_bits/mtOp_bones.hpp | 96 - .../include/armadillo_bits/mtOp_meat.hpp | 102 - .../include/armadillo_bits/mtSpOp_bones.hpp | 50 - .../include/armadillo_bits/mtSpOp_meat.hpp | 49 - .../include/armadillo_bits/mul_gemm.hpp | 429 - .../include/armadillo_bits/mul_gemm_mixed.hpp | 346 - .../include/armadillo_bits/mul_gemv.hpp | 494 - .../include/armadillo_bits/mul_herk.hpp | 490 - .../include/armadillo_bits/mul_syrk.hpp | 499 - .../newarp_DenseGenMatProd_bones.hpp | 41 - .../newarp_DenseGenMatProd_meat.hpp | 48 - .../newarp_DoubleShiftQR_bones.hpp | 74 - .../newarp_DoubleShiftQR_meat.hpp | 397 - .../armadillo_bits/newarp_EigsSelect.hpp | 50 - .../newarp_GenEigsSolver_bones.hpp | 103 - .../newarp_GenEigsSolver_meat.hpp | 461 - .../armadillo_bits/newarp_SortEigenvalue.hpp | 201 - .../newarp_SparseGenMatProd_bones.hpp | 41 - .../newarp_SparseGenMatProd_meat.hpp | 48 - .../newarp_SymEigsSolver_bones.hpp | 102 - .../newarp_SymEigsSolver_meat.hpp | 458 - .../newarp_TridiagEigen_bones.hpp | 56 - .../newarp_TridiagEigen_meat.hpp | 127 - .../newarp_UpperHessenbergEigen_bones.hpp | 57 - .../newarp_UpperHessenbergEigen_meat.hpp | 167 - .../newarp_UpperHessenbergQR_bones.hpp | 84 - .../newarp_UpperHessenbergQR_meat.hpp | 308 - .../armadillo_bits/newarp_cx_attrib.hpp | 35 - .../include/armadillo_bits/op_all_bones.hpp | 78 - .../include/armadillo_bits/op_all_meat.hpp | 404 - .../include/armadillo_bits/op_any_bones.hpp | 78 - .../include/armadillo_bits/op_any_meat.hpp | 375 - .../include/armadillo_bits/op_chol_bones.hpp | 33 - .../include/armadillo_bits/op_chol_meat.hpp | 40 - .../include/armadillo_bits/op_clamp_bones.hpp | 43 - .../include/armadillo_bits/op_clamp_meat.hpp | 203 - .../include/armadillo_bits/op_cor_bones.hpp | 35 - .../include/armadillo_bits/op_cor_meat.hpp | 116 - .../include/armadillo_bits/op_cov_bones.hpp | 35 - .../include/armadillo_bits/op_cov_meat.hpp | 114 - .../armadillo_bits/op_cumprod_bones.hpp | 45 - .../armadillo_bits/op_cumprod_meat.hpp | 170 - .../armadillo_bits/op_cumsum_bones.hpp | 45 - .../include/armadillo_bits/op_cumsum_meat.hpp | 170 - .../armadillo_bits/op_cx_scalar_bones.hpp | 166 - .../armadillo_bits/op_cx_scalar_meat.hpp | 562 - .../armadillo_bits/op_diagmat_bones.hpp | 45 - .../armadillo_bits/op_diagmat_meat.hpp | 239 - .../armadillo_bits/op_diagvec_bones.hpp | 38 - .../armadillo_bits/op_diagvec_meat.hpp | 140 - .../include/armadillo_bits/op_diff_bones.hpp | 45 - .../include/armadillo_bits/op_diff_meat.hpp | 222 - .../include/armadillo_bits/op_dot_bones.hpp | 115 - .../include/armadillo_bits/op_dot_meat.hpp | 600 - .../armadillo_bits/op_dotext_bones.hpp | 47 - .../include/armadillo_bits/op_dotext_meat.hpp | 212 - .../armadillo_bits/op_expmat_bones.hpp | 49 - .../include/armadillo_bits/op_expmat_meat.hpp | 184 - .../include/armadillo_bits/op_fft_bones.hpp | 60 - .../include/armadillo_bits/op_fft_meat.hpp | 381 - .../include/armadillo_bits/op_find_bones.hpp | 113 - .../include/armadillo_bits/op_find_meat.hpp | 563 - .../armadillo_bits/op_find_unique_bones.hpp | 73 - .../armadillo_bits/op_find_unique_meat.hpp | 128 - .../include/armadillo_bits/op_flip_bones.hpp | 45 - .../include/armadillo_bits/op_flip_meat.hpp | 114 - .../include/armadillo_bits/op_hist_bones.hpp | 36 - .../include/armadillo_bits/op_hist_meat.hpp | 108 - .../armadillo_bits/op_htrans_bones.hpp | 96 - .../include/armadillo_bits/op_htrans_meat.hpp | 562 - .../armadillo_bits/op_index_max_bones.hpp | 42 - .../armadillo_bits/op_index_max_meat.hpp | 150 - .../armadillo_bits/op_index_min_bones.hpp | 42 - .../armadillo_bits/op_index_min_meat.hpp | 150 - .../include/armadillo_bits/op_inv_bones.hpp | 61 - .../include/armadillo_bits/op_inv_meat.hpp | 163 - .../armadillo_bits/op_logmat_bones.hpp | 77 - .../include/armadillo_bits/op_logmat_meat.hpp | 424 - .../include/armadillo_bits/op_max_bones.hpp | 109 - .../include/armadillo_bits/op_max_meat.hpp | 1324 -- .../include/armadillo_bits/op_mean_bones.hpp | 112 - .../include/armadillo_bits/op_mean_meat.hpp | 713 - .../armadillo_bits/op_median_bones.hpp | 72 - .../include/armadillo_bits/op_median_meat.hpp | 456 - .../include/armadillo_bits/op_min_bones.hpp | 109 - .../include/armadillo_bits/op_min_meat.hpp | 1324 -- .../include/armadillo_bits/op_misc_bones.hpp | 74 - .../include/armadillo_bits/op_misc_meat.hpp | 376 - .../armadillo_bits/op_nonzeros_bones.hpp | 44 - .../armadillo_bits/op_nonzeros_meat.hpp | 136 - .../include/armadillo_bits/op_norm_bones.hpp | 61 - .../include/armadillo_bits/op_norm_meat.hpp | 1008 -- .../armadillo_bits/op_normalise_bones.hpp | 43 - .../armadillo_bits/op_normalise_meat.hpp | 125 - .../armadillo_bits/op_orth_null_bones.hpp | 49 - .../armadillo_bits/op_orth_null_meat.hpp | 179 - .../include/armadillo_bits/op_pinv_bones.hpp | 34 - .../include/armadillo_bits/op_pinv_meat.hpp | 145 - .../armadillo_bits/op_princomp_bones.hpp | 126 - .../armadillo_bits/op_princomp_meat.hpp | 616 - .../include/armadillo_bits/op_prod_bones.hpp | 39 - .../include/armadillo_bits/op_prod_meat.hpp | 215 - .../include/armadillo_bits/op_range_bones.hpp | 37 - .../include/armadillo_bits/op_range_meat.hpp | 94 - .../armadillo_bits/op_relational_bones.hpp | 152 - .../armadillo_bits/op_relational_meat.hpp | 508 - .../armadillo_bits/op_repmat_bones.hpp | 34 - .../include/armadillo_bits/op_repmat_meat.hpp | 122 - .../armadillo_bits/op_reshape_bones.hpp | 46 - .../armadillo_bits/op_reshape_meat.hpp | 388 - .../armadillo_bits/op_resize_bones.hpp | 33 - .../include/armadillo_bits/op_resize_meat.hpp | 146 - .../include/armadillo_bits/op_shift_bones.hpp | 47 - .../include/armadillo_bits/op_shift_meat.hpp | 222 - .../armadillo_bits/op_shuffle_bones.hpp | 43 - .../armadillo_bits/op_shuffle_meat.hpp | 230 - .../include/armadillo_bits/op_sort_bones.hpp | 113 - .../armadillo_bits/op_sort_index_bones.hpp | 133 - .../armadillo_bits/op_sort_index_meat.hpp | 204 - .../include/armadillo_bits/op_sort_meat.hpp | 234 - .../armadillo_bits/op_sqrtmat_bones.hpp | 73 - .../armadillo_bits/op_sqrtmat_meat.hpp | 385 - .../armadillo_bits/op_stddev_bones.hpp | 29 - .../include/armadillo_bits/op_stddev_meat.hpp | 90 - .../armadillo_bits/op_strans_bones.hpp | 95 - .../include/armadillo_bits/op_strans_meat.hpp | 756 - .../include/armadillo_bits/op_sum_bones.hpp | 62 - .../include/armadillo_bits/op_sum_meat.hpp | 568 - .../armadillo_bits/op_symmat_bones.hpp | 42 - .../include/armadillo_bits/op_symmat_meat.hpp | 218 - .../armadillo_bits/op_toeplitz_bones.hpp | 42 - .../armadillo_bits/op_toeplitz_meat.hpp | 108 - .../armadillo_bits/op_trimat_bones.hpp | 74 - .../include/armadillo_bits/op_trimat_meat.hpp | 432 - .../armadillo_bits/op_unique_bones.hpp | 65 - .../include/armadillo_bits/op_unique_meat.hpp | 156 - .../include/armadillo_bits/op_var_bones.hpp | 63 - .../include/armadillo_bits/op_var_meat.hpp | 312 - .../armadillo_bits/op_vectorise_bones.hpp | 69 - .../armadillo_bits/op_vectorise_meat.hpp | 379 - .../armadillo_bits/operator_cube_div.hpp | 195 - .../armadillo_bits/operator_cube_minus.hpp | 211 - .../armadillo_bits/operator_cube_plus.hpp | 211 - .../operator_cube_relational.hpp | 299 - .../armadillo_bits/operator_cube_schur.hpp | 129 - .../armadillo_bits/operator_cube_times.hpp | 122 - .../include/armadillo_bits/operator_div.hpp | 350 - .../include/armadillo_bits/operator_minus.hpp | 349 - .../armadillo_bits/operator_ostream.hpp | 142 - .../include/armadillo_bits/operator_plus.hpp | 306 - .../armadillo_bits/operator_relational.hpp | 397 - .../include/armadillo_bits/operator_schur.hpp | 327 - .../include/armadillo_bits/operator_times.hpp | 554 - .../include/armadillo_bits/podarray_bones.hpp | 90 - .../include/armadillo_bits/podarray_meat.hpp | 408 - .../include/armadillo_bits/promote_type.hpp | 246 - .../include/armadillo_bits/restrictors.hpp | 233 - .../armadillo_bits/running_stat_bones.hpp | 119 - .../armadillo_bits/running_stat_meat.hpp | 461 - .../armadillo_bits/running_stat_vec_bones.hpp | 155 - .../armadillo_bits/running_stat_vec_meat.hpp | 636 - .../armadillo_bits/sp_auxlib_bones.hpp | 101 - .../include/armadillo_bits/sp_auxlib_meat.hpp | 1421 -- .../include/armadillo_bits/span.hpp | 84 - .../armadillo_bits/spdiagview_bones.hpp | 106 - .../armadillo_bits/spdiagview_meat.hpp | 909 - .../armadillo_bits/spglue_join_bones.hpp | 48 - .../armadillo_bits/spglue_join_meat.hpp | 158 - .../armadillo_bits/spglue_minus_bones.hpp | 46 - .../armadillo_bits/spglue_minus_meat.hpp | 197 - .../armadillo_bits/spglue_plus_bones.hpp | 46 - .../armadillo_bits/spglue_plus_meat.hpp | 199 - .../armadillo_bits/spglue_times_bones.hpp | 46 - .../armadillo_bits/spglue_times_meat.hpp | 302 - .../armadillo_bits/spop_diagmat_bones.hpp | 47 - .../armadillo_bits/spop_diagmat_meat.hpp | 230 - .../armadillo_bits/spop_htrans_bones.hpp | 36 - .../armadillo_bits/spop_htrans_meat.hpp | 85 - .../include/armadillo_bits/spop_max_bones.hpp | 58 - .../include/armadillo_bits/spop_max_meat.hpp | 684 - .../armadillo_bits/spop_mean_bones.hpp | 56 - .../include/armadillo_bits/spop_mean_meat.hpp | 342 - .../include/armadillo_bits/spop_min_bones.hpp | 58 - .../include/armadillo_bits/spop_min_meat.hpp | 720 - .../armadillo_bits/spop_misc_bones.hpp | 201 - .../include/armadillo_bits/spop_misc_meat.hpp | 470 - .../armadillo_bits/spop_strans_bones.hpp | 42 - .../armadillo_bits/spop_strans_meat.hpp | 156 - .../include/armadillo_bits/spop_sum_bones.hpp | 30 - .../include/armadillo_bits/spop_sum_meat.hpp | 89 - .../armadillo_bits/spop_symmat_bones.hpp | 42 - .../armadillo_bits/spop_symmat_meat.hpp | 349 - .../armadillo_bits/spop_trimat_bones.hpp | 35 - .../armadillo_bits/spop_trimat_meat.hpp | 144 - .../include/armadillo_bits/spop_var_bones.hpp | 61 - .../include/armadillo_bits/spop_var_meat.hpp | 412 - .../include/armadillo_bits/strip.hpp | 117 - .../include/armadillo_bits/subview_bones.hpp | 423 - .../armadillo_bits/subview_cube_bones.hpp | 147 - .../subview_cube_each_bones.hpp | 163 - .../armadillo_bits/subview_cube_each_meat.hpp | 1032 -- .../armadillo_bits/subview_cube_meat.hpp | 2254 --- .../armadillo_bits/subview_each_bones.hpp | 167 - .../armadillo_bits/subview_each_meat.hpp | 1401 -- .../armadillo_bits/subview_elem1_bones.hpp | 106 - .../armadillo_bits/subview_elem1_meat.hpp | 921 - .../armadillo_bits/subview_elem2_bones.hpp | 100 - .../armadillo_bits/subview_elem2_meat.hpp | 743 - .../armadillo_bits/subview_field_bones.hpp | 98 - .../armadillo_bits/subview_field_meat.hpp | 592 - .../include/armadillo_bits/subview_meat.hpp | 3639 ---- .../include/armadillo_bits/traits.hpp | 1373 -- .../include/armadillo_bits/typedef_elem.hpp | 128 - .../armadillo_bits/typedef_elem_check.hpp | 52 - .../include/armadillo_bits/typedef_mat.hpp | 144 - .../armadillo_bits/typedef_mat_fixed.hpp | 324 - .../include/armadillo_bits/unwrap.hpp | 2816 --- .../include/armadillo_bits/unwrap_cube.hpp | 119 - .../include/armadillo_bits/unwrap_spmat.hpp | 147 - .../include/armadillo_bits/upgrade_val.hpp | 159 - .../armadillo_bits/wall_clock_bones.hpp | 48 - .../armadillo_bits/wall_clock_meat.hpp | 110 - .../include/armadillo_bits/wrapper_arpack.hpp | 148 - .../include/armadillo_bits/wrapper_atlas.hpp | 416 - .../include/armadillo_bits/wrapper_blas.hpp | 289 - .../include/armadillo_bits/wrapper_lapack.hpp | 1280 -- .../armadillo_bits/wrapper_superlu.hpp | 171 - .../armadillo_bits/xtrans_mat_bones.hpp | 51 - .../armadillo_bits/xtrans_mat_meat.hpp | 91 - .../armadillo_bits/xvec_htrans_bones.hpp | 51 - .../armadillo_bits/xvec_htrans_meat.hpp | 88 - .../3.4.1/RcppArmadillo/libs/RcppArmadillo.so | Bin 1913160 -> 0 bytes .../3.4.1/RcppArmadillo/skeleton/Makevars | 6 - .../3.4.1/RcppArmadillo/skeleton/Makevars.win | 6 - .../skeleton/rcpparma_hello_world.Rd | 50 - .../skeleton/rcpparma_hello_world.cpp | 52 - .../3.4.1/RcppArmadillo/tests/doRUnit.R | 53 - .../unitTests/cpp/any_as_vec.cpp | 11 - .../RcppArmadillo/unitTests/cpp/armadillo.cpp | 303 - .../unitTests/cpp/colrow_as_vec.cpp | 11 - .../RcppArmadillo/unitTests/cpp/complex.cpp | 59 - .../RcppArmadillo/unitTests/cpp/cube.cpp | 91 - .../RcppArmadillo/unitTests/cpp/rmultinom.cpp | 19 - .../3.4.1/RcppArmadillo/unitTests/cpp/rng.cpp | 44 - .../RcppArmadillo/unitTests/cpp/sample.cpp | 70 - .../RcppArmadillo/unitTests/cpp/sparse.cpp | 84 - .../3.4.1/RcppArmadillo/unitTests/runTests.R | 52 - .../unitTests/runit.RcppArmadillo.R | 250 - .../RcppArmadillo/unitTests/runit.complex.R | 50 - .../RcppArmadillo/unitTests/runit.cube.R | 92 - .../RcppArmadillo/unitTests/runit.fastLm.R | 107 - .../RcppArmadillo/unitTests/runit.rmultinom.R | 63 - .../3.4.1/RcppArmadillo/unitTests/runit.rng.R | 67 - .../RcppArmadillo/unitTests/runit.sample.R | 104 - .../RcppArmadillo/unitTests/runit.scipy2r.R | 69 - .../RcppArmadillo/unitTests/runit.sparse.R | 105 - .../unitTests/runit.sparseConversion.R | 807 - .../3.4.1/curl/DESCRIPTION | 41 - .../lib/x86_64-pc-linux-gnu/3.4.1/curl/INDEX | 14 - .../x86_64-pc-linux-gnu/3.4.1/curl/LICENSE | 2 - .../3.4.1/curl/Meta/Rd.rds | Bin 817 -> 0 bytes .../3.4.1/curl/Meta/data.rds | Bin 107 -> 0 bytes .../3.4.1/curl/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/curl/Meta/hsearch.rds | Bin 824 -> 0 bytes .../3.4.1/curl/Meta/links.rds | Bin 454 -> 0 bytes .../3.4.1/curl/Meta/nsInfo.rds | Bin 698 -> 0 bytes .../3.4.1/curl/Meta/package.rds | Bin 1435 -> 0 bytes .../3.4.1/curl/Meta/vignette.rds | Bin 230 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/curl/NAMESPACE | 67 - .../lib/x86_64-pc-linux-gnu/3.4.1/curl/NEWS | 161 - .../lib/x86_64-pc-linux-gnu/3.4.1/curl/R/curl | 27 - .../x86_64-pc-linux-gnu/3.4.1/curl/R/curl.rdb | Bin 15381 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/curl/R/curl.rdx | Bin 932 -> 0 bytes .../3.4.1/curl/data/Rdata.rdb | Bin 9172 -> 0 bytes .../3.4.1/curl/data/Rdata.rds | Bin 76 -> 0 bytes .../3.4.1/curl/data/Rdata.rdx | Bin 141 -> 0 bytes .../3.4.1/curl/doc/index.html | 28 - .../3.4.1/curl/doc/intro.R | 159 - .../3.4.1/curl/doc/intro.Rmd | 328 - .../3.4.1/curl/doc/intro.html | 643 - .../3.4.1/curl/help/AnIndex | 38 - .../3.4.1/curl/help/aliases.rds | Bin 375 -> 0 bytes .../3.4.1/curl/help/curl.rdb | Bin 30482 -> 0 bytes .../3.4.1/curl/help/curl.rdx | Bin 468 -> 0 bytes .../3.4.1/curl/help/paths.rds | Bin 256 -> 0 bytes .../3.4.1/curl/html/00Index.html | 102 - .../x86_64-pc-linux-gnu/3.4.1/curl/html/R.css | 97 - .../3.4.1/curl/libs/curl.so | Bin 188184 -> 0 bytes .../3.4.1/devtools/DESCRIPTION | 35 - .../x86_64-pc-linux-gnu/3.4.1/devtools/INDEX | 85 - .../3.4.1/devtools/Meta/Rd.rds | Bin 3954 -> 0 bytes .../3.4.1/devtools/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/devtools/Meta/hsearch.rds | Bin 3530 -> 0 bytes .../3.4.1/devtools/Meta/links.rds | Bin 1755 -> 0 bytes .../3.4.1/devtools/Meta/nsInfo.rds | Bin 1446 -> 0 bytes .../3.4.1/devtools/Meta/package.rds | Bin 1465 -> 0 bytes .../3.4.1/devtools/Meta/vignette.rds | Bin 200 -> 0 bytes .../3.4.1/devtools/NAMESPACE | 212 - .../3.4.1/devtools/NEWS.md | 1736 -- .../3.4.1/devtools/R/devtools | 27 - .../3.4.1/devtools/R/devtools.rdb | Bin 172768 -> 0 bytes .../3.4.1/devtools/R/devtools.rdx | Bin 6755 -> 0 bytes .../3.4.1/devtools/doc/dependencies.Rmd | 85 - .../3.4.1/devtools/doc/dependencies.html | 138 - .../3.4.1/devtools/doc/index.html | 28 - .../3.4.1/devtools/help/AnIndex | 156 - .../3.4.1/devtools/help/aliases.rds | Bin 1231 -> 0 bytes .../3.4.1/devtools/help/devtools.rdb | Bin 202540 -> 0 bytes .../3.4.1/devtools/help/devtools.rdx | Bin 2283 -> 0 bytes .../3.4.1/devtools/help/paths.rds | Bin 918 -> 0 bytes .../3.4.1/devtools/html/00Index.html | 355 - .../3.4.1/devtools/html/R.css | 97 - .../3.4.1/devtools/templates/CONDUCT.md | 25 - .../3.4.1/devtools/templates/NEWS.md | 6 - .../3.4.1/devtools/templates/appveyor.yml | 45 - .../3.4.1/devtools/templates/codecov.yml | 1 - .../3.4.1/devtools/templates/cran-comments.md | 23 - .../3.4.1/devtools/templates/gpl-v3.md | 595 - .../3.4.1/devtools/templates/mit-license.txt | 2 - .../3.4.1/devtools/templates/omni-README | 54 - .../devtools/templates/packagename-package.r | 5 - .../templates/readme-rmd-pre-commit.sh | 15 - .../3.4.1/devtools/templates/revdep.R | 5 - .../3.4.1/devtools/templates/template.Rproj | 16 - .../3.4.1/devtools/templates/test-example.R | 5 - .../3.4.1/devtools/templates/testthat.R | 4 - .../3.4.1/devtools/templates/travis.yml | 5 - .../3.4.1/digest/DESCRIPTION | 32 - .../x86_64-pc-linux-gnu/3.4.1/digest/GPL-2 | 339 - .../x86_64-pc-linux-gnu/3.4.1/digest/INDEX | 7 - .../3.4.1/digest/Meta/Rd.rds | Bin 556 -> 0 bytes .../3.4.1/digest/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/digest/Meta/hsearch.rds | Bin 579 -> 0 bytes .../3.4.1/digest/Meta/links.rds | Bin 330 -> 0 bytes .../3.4.1/digest/Meta/nsInfo.rds | Bin 489 -> 0 bytes .../3.4.1/digest/Meta/package.rds | Bin 1220 -> 0 bytes .../3.4.1/digest/Meta/vignette.rds | Bin 210 -> 0 bytes .../3.4.1/digest/NAMESPACE | 37 - .../x86_64-pc-linux-gnu/3.4.1/digest/R/digest | 27 - .../3.4.1/digest/R/digest.rdb | Bin 10925 -> 0 bytes .../3.4.1/digest/R/digest.rdx | Bin 674 -> 0 bytes .../3.4.1/digest/doc/index.html | 28 - .../3.4.1/digest/doc/sha1.R | 90 - .../3.4.1/digest/doc/sha1.Rmd | 192 - .../3.4.1/digest/doc/sha1.html | 435 - .../3.4.1/digest/help/AnIndex | 28 - .../3.4.1/digest/help/aliases.rds | Bin 275 -> 0 bytes .../3.4.1/digest/help/digest.rdb | Bin 25377 -> 0 bytes .../3.4.1/digest/help/digest.rdx | Bin 249 -> 0 bytes .../3.4.1/digest/help/paths.rds | Bin 162 -> 0 bytes .../3.4.1/digest/html/00Index.html | 81 - .../3.4.1/digest/html/R.css | 97 - .../3.4.1/digest/include/pmurhashAPI.h | 106 - .../3.4.1/digest/libs/digest.so | Bin 308272 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/git2r/AUTHORS | 113 - .../x86_64-pc-linux-gnu/3.4.1/git2r/CITATION | 19 - .../x86_64-pc-linux-gnu/3.4.1/git2r/COPYING | 910 - .../3.4.1/git2r/COPYRIGHTS | 278 - .../3.4.1/git2r/DESCRIPTION | 37 - .../lib/x86_64-pc-linux-gnu/3.4.1/git2r/INDEX | 186 - .../3.4.1/git2r/Meta/Rd.rds | Bin 5074 -> 0 bytes .../3.4.1/git2r/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/git2r/Meta/hsearch.rds | Bin 5054 -> 0 bytes .../3.4.1/git2r/Meta/links.rds | Bin 2954 -> 0 bytes .../3.4.1/git2r/Meta/nsInfo.rds | Bin 1124 -> 0 bytes .../3.4.1/git2r/Meta/package.rds | Bin 1199 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/git2r/NAMESPACE | 135 - .../lib/x86_64-pc-linux-gnu/3.4.1/git2r/NEWS | 609 - .../x86_64-pc-linux-gnu/3.4.1/git2r/R/git2r | 27 - .../3.4.1/git2r/R/git2r.rdb | Bin 268145 -> 0 bytes .../3.4.1/git2r/R/git2r.rdx | Bin 5270 -> 0 bytes .../3.4.1/git2r/help/AnIndex | 290 - .../3.4.1/git2r/help/aliases.rds | Bin 2538 -> 0 bytes .../3.4.1/git2r/help/git2r.rdb | Bin 274248 -> 0 bytes .../3.4.1/git2r/help/git2r.rdx | Bin 3279 -> 0 bytes .../3.4.1/git2r/help/paths.rds | Bin 1322 -> 0 bytes .../3.4.1/git2r/html/00Index.html | 627 - .../3.4.1/git2r/html/R.css | 97 - .../3.4.1/git2r/libs/git2r.so | Bin 5495592 -> 0 bytes .../3.4.1/httr/DESCRIPTION | 28 - .../lib/x86_64-pc-linux-gnu/3.4.1/httr/INDEX | 48 - .../x86_64-pc-linux-gnu/3.4.1/httr/LICENSE | 2 - .../3.4.1/httr/Meta/Rd.rds | Bin 2600 -> 0 bytes .../3.4.1/httr/Meta/demo.rds | Bin 357 -> 0 bytes .../3.4.1/httr/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/httr/Meta/hsearch.rds | Bin 2359 -> 0 bytes .../3.4.1/httr/Meta/links.rds | Bin 1176 -> 0 bytes .../3.4.1/httr/Meta/nsInfo.rds | Bin 979 -> 0 bytes .../3.4.1/httr/Meta/package.rds | Bin 1163 -> 0 bytes .../3.4.1/httr/Meta/vignette.rds | Bin 289 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/httr/NAMESPACE | 118 - .../x86_64-pc-linux-gnu/3.4.1/httr/NEWS.md | 622 - .../lib/x86_64-pc-linux-gnu/3.4.1/httr/R/httr | 27 - .../x86_64-pc-linux-gnu/3.4.1/httr/R/httr.rdb | Bin 77134 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/httr/R/httr.rdx | Bin 3337 -> 0 bytes .../3.4.1/httr/demo/connection-sharing.r | 17 - .../3.4.1/httr/demo/oauth1-twitter.r | 23 - .../3.4.1/httr/demo/oauth1-vimeo.r | 21 - .../3.4.1/httr/demo/oauth1-withings.r | 30 - .../3.4.1/httr/demo/oauth1-yahoo.r | 15 - .../3.4.1/httr/demo/oauth2-azure.r | 52 - .../3.4.1/httr/demo/oauth2-facebook.r | 21 - .../3.4.1/httr/demo/oauth2-github.r | 28 - .../3.4.1/httr/demo/oauth2-google.r | 21 - .../3.4.1/httr/demo/oauth2-linkedin.r | 44 - .../3.4.1/httr/demo/oauth2-reddit.R | 26 - .../3.4.1/httr/demo/oauth2-yelp.R | 43 - .../3.4.1/httr/demo/service-account.R | 22 - .../3.4.1/httr/doc/api-packages.R | 195 - .../3.4.1/httr/doc/api-packages.Rmd | 419 - .../3.4.1/httr/doc/api-packages.html | 502 - .../3.4.1/httr/doc/index.html | 38 - .../3.4.1/httr/doc/quickstart.R | 106 - .../3.4.1/httr/doc/quickstart.Rmd | 255 - .../3.4.1/httr/doc/quickstart.html | 408 - .../3.4.1/httr/doc/secrets.R | 90 - .../3.4.1/httr/doc/secrets.Rmd | 279 - .../3.4.1/httr/doc/secrets.html | 259 - .../3.4.1/httr/help/AnIndex | 98 - .../3.4.1/httr/help/aliases.rds | Bin 844 -> 0 bytes .../3.4.1/httr/help/httr.rdb | Bin 145189 -> 0 bytes .../3.4.1/httr/help/httr.rdx | Bin 1584 -> 0 bytes .../3.4.1/httr/help/paths.rds | Bin 691 -> 0 bytes .../3.4.1/httr/html/00Index.html | 160 - .../x86_64-pc-linux-gnu/3.4.1/httr/html/R.css | 97 - .../3.4.1/jsonlite/CITATION | 15 - .../3.4.1/jsonlite/DESCRIPTION | 32 - .../x86_64-pc-linux-gnu/3.4.1/jsonlite/INDEX | 10 - .../3.4.1/jsonlite/LICENSE | 2 - .../3.4.1/jsonlite/Meta/Rd.rds | Bin 588 -> 0 bytes .../3.4.1/jsonlite/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/jsonlite/Meta/hsearch.rds | Bin 602 -> 0 bytes .../3.4.1/jsonlite/Meta/links.rds | Bin 324 -> 0 bytes .../3.4.1/jsonlite/Meta/nsInfo.rds | Bin 608 -> 0 bytes .../3.4.1/jsonlite/Meta/package.rds | Bin 1287 -> 0 bytes .../3.4.1/jsonlite/Meta/vignette.rds | Bin 417 -> 0 bytes .../3.4.1/jsonlite/NAMESPACE | 44 - .../x86_64-pc-linux-gnu/3.4.1/jsonlite/NEWS | 183 - .../3.4.1/jsonlite/R/jsonlite | 27 - .../3.4.1/jsonlite/R/jsonlite.rdb | Bin 43781 -> 0 bytes .../3.4.1/jsonlite/R/jsonlite.rdx | Bin 1440 -> 0 bytes .../3.4.1/jsonlite/doc/index.html | 48 - .../3.4.1/jsonlite/doc/json-aaquickstart.R | 65 - .../3.4.1/jsonlite/doc/json-aaquickstart.Rmd | 126 - .../3.4.1/jsonlite/doc/json-aaquickstart.html | 311 - .../3.4.1/jsonlite/doc/json-apis.Rmd | 333 - .../3.4.1/jsonlite/doc/json-apis.html | 377 - .../3.4.1/jsonlite/doc/json-mapping.pdf | Bin 208166 -> 0 bytes .../3.4.1/jsonlite/doc/json-mapping.pdf.asis | 6 - .../3.4.1/jsonlite/doc/json-opencpu.R | 5 - .../3.4.1/jsonlite/doc/json-opencpu.Rnw | 132 - .../3.4.1/jsonlite/doc/json-opencpu.pdf | Bin 64127 -> 0 bytes .../3.4.1/jsonlite/doc/json-paging.Rmd | 212 - .../3.4.1/jsonlite/doc/json-paging.html | 311 - .../3.4.1/jsonlite/help/AnIndex | 22 - .../3.4.1/jsonlite/help/aliases.rds | Bin 246 -> 0 bytes .../3.4.1/jsonlite/help/jsonlite.rdb | Bin 26573 -> 0 bytes .../3.4.1/jsonlite/help/jsonlite.rdx | Bin 374 -> 0 bytes .../3.4.1/jsonlite/help/paths.rds | Bin 238 -> 0 bytes .../3.4.1/jsonlite/html/00Index.html | 70 - .../3.4.1/jsonlite/html/R.css | 97 - .../3.4.1/jsonlite/libs/jsonlite.so | Bin 262608 -> 0 bytes .../3.4.1/memoise/DESCRIPTION | 29 - .../x86_64-pc-linux-gnu/3.4.1/memoise/INDEX | 15 - .../x86_64-pc-linux-gnu/3.4.1/memoise/LICENSE | 2 - .../3.4.1/memoise/Meta/Rd.rds | Bin 573 -> 0 bytes .../3.4.1/memoise/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/memoise/Meta/hsearch.rds | Bin 588 -> 0 bytes .../3.4.1/memoise/Meta/links.rds | Bin 211 -> 0 bytes .../3.4.1/memoise/Meta/nsInfo.rds | Bin 293 -> 0 bytes .../3.4.1/memoise/Meta/package.rds | Bin 1041 -> 0 bytes .../3.4.1/memoise/NAMESPACE | 15 - .../x86_64-pc-linux-gnu/3.4.1/memoise/NEWS.md | 40 - .../3.4.1/memoise/R/memoise | 27 - .../3.4.1/memoise/R/memoise.rdb | Bin 5873 -> 0 bytes .../3.4.1/memoise/R/memoise.rdx | Bin 407 -> 0 bytes .../3.4.1/memoise/help/AnIndex | 10 - .../3.4.1/memoise/help/aliases.rds | Bin 149 -> 0 bytes .../3.4.1/memoise/help/memoise.rdb | Bin 13812 -> 0 bytes .../3.4.1/memoise/help/memoise.rdx | Bin 325 -> 0 bytes .../3.4.1/memoise/help/paths.rds | Bin 204 -> 0 bytes .../3.4.1/memoise/html/00Index.html | 44 - .../3.4.1/memoise/html/R.css | 97 - .../3.4.1/mime/DESCRIPTION | 25 - .../lib/x86_64-pc-linux-gnu/3.4.1/mime/INDEX | 4 - .../3.4.1/mime/Meta/Rd.rds | Bin 342 -> 0 bytes .../3.4.1/mime/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/mime/Meta/hsearch.rds | Bin 367 -> 0 bytes .../3.4.1/mime/Meta/links.rds | Bin 146 -> 0 bytes .../3.4.1/mime/Meta/nsInfo.rds | Bin 235 -> 0 bytes .../3.4.1/mime/Meta/package.rds | Bin 813 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/mime/NAMESPACE | 5 - .../lib/x86_64-pc-linux-gnu/3.4.1/mime/NEWS | 50 - .../lib/x86_64-pc-linux-gnu/3.4.1/mime/R/mime | 27 - .../x86_64-pc-linux-gnu/3.4.1/mime/R/mime.rdb | Bin 10337 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/mime/R/mime.rdx | Bin 304 -> 0 bytes .../3.4.1/mime/help/AnIndex | 4 - .../3.4.1/mime/help/aliases.rds | Bin 111 -> 0 bytes .../3.4.1/mime/help/mime.rdb | Bin 5225 -> 0 bytes .../3.4.1/mime/help/mime.rdx | Bin 207 -> 0 bytes .../3.4.1/mime/help/paths.rds | Bin 160 -> 0 bytes .../3.4.1/mime/html/00Index.html | 33 - .../x86_64-pc-linux-gnu/3.4.1/mime/html/R.css | 97 - .../3.4.1/mime/libs/mime.so | Bin 12000 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/mirt/CITATION | 19 - .../3.4.1/mirt/DESCRIPTION | 58 - .../lib/x86_64-pc-linux-gnu/3.4.1/mirt/INDEX | 97 - .../3.4.1/mirt/Meta/Rd.rds | Bin 3137 -> 0 bytes .../3.4.1/mirt/Meta/data.rds | Bin 235 -> 0 bytes .../3.4.1/mirt/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/mirt/Meta/hsearch.rds | Bin 2874 -> 0 bytes .../3.4.1/mirt/Meta/links.rds | Bin 1210 -> 0 bytes .../3.4.1/mirt/Meta/nsInfo.rds | Bin 751 -> 0 bytes .../3.4.1/mirt/Meta/package.rds | Bin 1770 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/mirt/NAMESPACE | 78 - .../x86_64-pc-linux-gnu/3.4.1/mirt/NEWS.md | 1461 -- .../lib/x86_64-pc-linux-gnu/3.4.1/mirt/R/mirt | 27 - .../x86_64-pc-linux-gnu/3.4.1/mirt/R/mirt.rdb | Bin 1247111 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/mirt/R/mirt.rdx | Bin 4665 -> 0 bytes .../3.4.1/mirt/data/Rdata.rdb | Bin 5582404 -> 0 bytes .../3.4.1/mirt/data/Rdata.rds | Bin 188 -> 0 bytes .../3.4.1/mirt/data/Rdata.rdx | Bin 307 -> 0 bytes .../3.4.1/mirt/help/AnIndex | 107 - .../3.4.1/mirt/help/aliases.rds | Bin 859 -> 0 bytes .../3.4.1/mirt/help/mirt.rdb | Bin 376264 -> 0 bytes .../3.4.1/mirt/help/mirt.rdx | Bin 2206 -> 0 bytes .../3.4.1/mirt/help/paths.rds | Bin 720 -> 0 bytes .../3.4.1/mirt/html/00Index.html | 168 - .../x86_64-pc-linux-gnu/3.4.1/mirt/html/R.css | 97 - .../3.4.1/mirt/libs/mirt.so | Bin 428688 -> 0 bytes .../mirt/tests/extratests/mplus/mplus2Dim.R | 60 - .../tests/extratests/mplus/mplusComplete.R | 59 - .../tests/extratests/mplus/mplusFunctions.R | 88 - .../mirt/tests/extratests/mplus/mplusSparse.R | 59 - .../mirt/tests/extratests/test-01-largeData.R | 109 - .../mirt/tests/extratests/test-02-wideData.R | 23 - .../3.4.1/mirt/tests/tests/test-00-basics.R | 42 - .../3.4.1/mirt/tests/tests/test-01-mirtOne.R | 168 - .../3.4.1/mirt/tests/tests/test-02-mirtTwo.R | 169 - .../3.4.1/mirt/tests/tests/test-03-bfactor.R | 154 - .../mirt/tests/tests/test-04-multipleGroup.R | 190 - .../mirt/tests/tests/test-05-confmirtOne.R | 51 - .../mirt/tests/tests/test-06-confmirtTwo.R | 115 - .../mirt/tests/tests/test-07-mixedmirt.R | 165 - .../mirt/tests/tests/test-08-createItem.R | 54 - .../mirt/tests/tests/test-09-mirt.model.R | 106 - .../3.4.1/mirt/tests/tests/test-10-extras.R | 104 - .../3.4.1/mirt/tests/tests/test-11-discrete.R | 259 - .../mirt/tests/tests/test-12-gpcm_mats.R | 46 - .../3.4.1/mirt/tests/tests/test-13-grsmIRT.R | 56 - .../3.4.1/numDeriv/DESCRIPTION | 27 - .../x86_64-pc-linux-gnu/3.4.1/numDeriv/INDEX | 6 - .../3.4.1/numDeriv/Meta/Rd.rds | Bin 453 -> 0 bytes .../3.4.1/numDeriv/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/numDeriv/Meta/hsearch.rds | Bin 478 -> 0 bytes .../3.4.1/numDeriv/Meta/links.rds | Bin 215 -> 0 bytes .../3.4.1/numDeriv/Meta/nsInfo.rds | Bin 230 -> 0 bytes .../3.4.1/numDeriv/Meta/package.rds | Bin 947 -> 0 bytes .../3.4.1/numDeriv/Meta/vignette.rds | Bin 201 -> 0 bytes .../3.4.1/numDeriv/NAMESPACE | 11 - .../x86_64-pc-linux-gnu/3.4.1/numDeriv/NEWS | 93 - .../3.4.1/numDeriv/R/numDeriv | 27 - .../3.4.1/numDeriv/R/numDeriv.rdb | Bin 20387 -> 0 bytes .../3.4.1/numDeriv/R/numDeriv.rdx | Bin 337 -> 0 bytes .../3.4.1/numDeriv/doc/Guide.Stex | 72 - .../3.4.1/numDeriv/doc/Guide.pdf | Bin 55487 -> 0 bytes .../3.4.1/numDeriv/doc/index.html | 28 - .../3.4.1/numDeriv/help/AnIndex | 11 - .../3.4.1/numDeriv/help/aliases.rds | Bin 165 -> 0 bytes .../3.4.1/numDeriv/help/numDeriv.rdb | Bin 26919 -> 0 bytes .../3.4.1/numDeriv/help/numDeriv.rdx | Bin 284 -> 0 bytes .../3.4.1/numDeriv/help/paths.rds | Bin 165 -> 0 bytes .../3.4.1/numDeriv/html/00Index.html | 48 - .../3.4.1/numDeriv/html/R.css | 97 - .../3.4.1/numDeriv/tests/BWeg.R | 82 - .../3.4.1/numDeriv/tests/CSD.R | 230 - .../3.4.1/numDeriv/tests/grad01.R | 51 - .../3.4.1/numDeriv/tests/hessian01.R | 74 - .../3.4.1/numDeriv/tests/jacobian01.R | 38 - .../3.4.1/numDeriv/tests/oneSided.R | 121 - .../3.4.1/numDeriv/tests/trig01.R | 57 - .../3.4.1/openssl/DESCRIPTION | 35 - .../x86_64-pc-linux-gnu/3.4.1/openssl/INDEX | 20 - .../x86_64-pc-linux-gnu/3.4.1/openssl/LICENSE | 2 - .../3.4.1/openssl/Meta/Rd.rds | Bin 1085 -> 0 bytes .../3.4.1/openssl/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/openssl/Meta/hsearch.rds | Bin 1082 -> 0 bytes .../3.4.1/openssl/Meta/links.rds | Bin 639 -> 0 bytes .../3.4.1/openssl/Meta/nsInfo.rds | Bin 1292 -> 0 bytes .../3.4.1/openssl/Meta/package.rds | Bin 1303 -> 0 bytes .../3.4.1/openssl/Meta/vignette.rds | Bin 355 -> 0 bytes .../3.4.1/openssl/NAMESPACE | 188 - .../x86_64-pc-linux-gnu/3.4.1/openssl/NEWS | 85 - .../3.4.1/openssl/R/openssl | 27 - .../3.4.1/openssl/R/openssl.rdb | Bin 39235 -> 0 bytes .../3.4.1/openssl/R/openssl.rdx | Bin 2361 -> 0 bytes .../3.4.1/openssl/cacert.pem | 4036 ----- .../3.4.1/openssl/doc/bignum.R | 52 - .../3.4.1/openssl/doc/bignum.Rmd | 111 - .../3.4.1/openssl/doc/bignum.html | 241 - .../3.4.1/openssl/doc/crypto_hashing.R | 30 - .../3.4.1/openssl/doc/crypto_hashing.Rmd | 58 - .../3.4.1/openssl/doc/crypto_hashing.html | 191 - .../3.4.1/openssl/doc/index.html | 43 - .../3.4.1/openssl/doc/keys.R | 38 - .../3.4.1/openssl/doc/keys.Rmd | 99 - .../3.4.1/openssl/doc/keys.html | 242 - .../3.4.1/openssl/doc/secure_rng.R | 28 - .../3.4.1/openssl/doc/secure_rng.Rmd | 59 - .../3.4.1/openssl/doc/secure_rng.html | 183 - .../3.4.1/openssl/help/AnIndex | 67 - .../3.4.1/openssl/help/aliases.rds | Bin 551 -> 0 bytes .../3.4.1/openssl/help/openssl.rdb | Bin 38621 -> 0 bytes .../3.4.1/openssl/help/openssl.rdx | Bin 570 -> 0 bytes .../3.4.1/openssl/help/paths.rds | Bin 312 -> 0 bytes .../3.4.1/openssl/html/00Index.html | 162 - .../3.4.1/openssl/html/R.css | 97 - .../3.4.1/openssl/libs/openssl.so | Bin 340992 -> 0 bytes .../3.4.1/packrat/DESCRIPTION | 32 - .../x86_64-pc-linux-gnu/3.4.1/packrat/INDEX | 26 - .../3.4.1/packrat/Meta/Rd.rds | Bin 1170 -> 0 bytes .../3.4.1/packrat/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/packrat/Meta/hsearch.rds | Bin 1106 -> 0 bytes .../3.4.1/packrat/Meta/links.rds | Bin 554 -> 0 bytes .../3.4.1/packrat/Meta/nsInfo.rds | Bin 455 -> 0 bytes .../3.4.1/packrat/Meta/package.rds | Bin 980 -> 0 bytes .../3.4.1/packrat/NAMESPACE | 42 - .../x86_64-pc-linux-gnu/3.4.1/packrat/NEWS.md | 516 - .../3.4.1/packrat/R/packrat | 27 - .../3.4.1/packrat/R/packrat.rdb | Bin 136474 -> 0 bytes .../3.4.1/packrat/R/packrat.rdx | Bin 5416 -> 0 bytes .../3.4.1/packrat/help/AnIndex | 45 - .../3.4.1/packrat/help/aliases.rds | Bin 441 -> 0 bytes .../3.4.1/packrat/help/packrat.rdb | Bin 57355 -> 0 bytes .../3.4.1/packrat/help/packrat.rdx | Bin 697 -> 0 bytes .../3.4.1/packrat/help/paths.rds | Bin 366 -> 0 bytes .../3.4.1/packrat/html/00Index.html | 112 - .../3.4.1/packrat/html/R.css | 97 - .../3.4.1/packrat/resources/init-rprofile.R | 3 - .../3.4.1/packrat/resources/init.R | 221 - .../3.4.1/packrat/resources/mac_r_userlib.sh | 86 - .../3.4.1/packrat/rstudio/rstudio-protocol | 1 - .../3.4.1/packrat/tests/test-all.R | 3 - .../tests/test-cranlike-repositories.R | 61 - .../3.4.1/packrat/tests/testthat/.gitignore | 2 - .../bread/DESCRIPTION | 10 - .../breakfast/DESCRIPTION | 12 - .../oatmeal/DESCRIPTION | 11 - .../packrat/DESCRIPTION | 11 - .../toast/DESCRIPTION | 12 - .../packrat/tests/testthat/helper-bundle.R | 22 - .../packrat/tests/testthat/helper-packrat.R | 164 - .../lockfiles/lockfile-multipleRepos.txt | 14 - .../other-packages/packrat/DESCRIPTION | 11 - .../tests/testthat/packages/bread/DESCRIPTION | 10 - .../testthat/packages/breakfast/DESCRIPTION | 12 - .../tests/testthat/packages/egg/DESCRIPTION | 10 - .../testthat/packages/oatmeal/DESCRIPTION | 11 - .../tests/testthat/packages/toast/DESCRIPTION | 12 - .../tests/testthat/projects/carbs/flour.R | 2 - .../tests/testthat/projects/empty/empty.R | 0 .../testthat/projects/emptydesc/DESCRIPTION | 0 .../tests/testthat/projects/emptydesc/app.R | 1 - .../tests/testthat/projects/healthy/healthy.R | 2 - .../testthat/projects/libraries/library.R | 1 - .../libraries/packrat/lib/lib-current.R | 1 - .../libraries/packrat/library.new/lib-new.R | 1 - .../libraries/packrat/library.old/lib-old.R | 1 - .../tests/testthat/projects/sated/sated.R | 2 - .../testthat/projects/smallbreakfast/bread.R | 2 - .../projects/smallbreakfast/oatmeal.R | 2 - .../testthat/repo-empty/src/contrib/PACKAGES | 0 .../testthat/resources/alternate-engines.Rmd | 18 - .../testthat/resources/evaluate-deps.Rmd | 15 - .../resources/interactive-doc-example.Rmd | 53 - .../testthat/resources/knitr-minimal.Rnw | 54 - .../tests/testthat/resources/no-chunks.Rmd | 7 - .../testthat/resources/params-example.Rmd | 11 - .../tests/testthat/resources/test-sweave.Rnw | 15 - .../packrat/tests/testthat/test-bundle.R | 40 - .../3.4.1/packrat/tests/testthat/test-cache.R | 108 - .../tests/testthat/test-dependencies.R | 41 - .../packrat/tests/testthat/test-downloader.R | 72 - .../3.4.1/packrat/tests/testthat/test-git.R | 14 - .../packrat/tests/testthat/test-github.R | 17 - .../3.4.1/packrat/tests/testthat/test-hash.R | 22 - .../packrat/tests/testthat/test-ignores.R | 89 - .../tests/testthat/test-local-repositories.R | 29 - .../packrat/tests/testthat/test-lockfile.R | 42 - .../tests/testthat/test-packrat-mode.R | 22 - .../packrat/tests/testthat/test-packrat.R | 260 - .../packrat/tests/testthat/test-rmarkdown.R | 22 - .../3.4.1/packrat/tests/testthat/test-shiny.R | 21 - .../3.4.1/packrat/tests/testthat/test-utils.R | 105 - .../3.4.1/rstudioapi/DESCRIPTION | 28 - .../3.4.1/rstudioapi/INDEX | 44 - .../3.4.1/rstudioapi/LICENSE | 2 - .../3.4.1/rstudioapi/Meta/Rd.rds | Bin 1685 -> 0 bytes .../3.4.1/rstudioapi/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/rstudioapi/Meta/hsearch.rds | Bin 1540 -> 0 bytes .../3.4.1/rstudioapi/Meta/links.rds | Bin 931 -> 0 bytes .../3.4.1/rstudioapi/Meta/nsInfo.rds | Bin 786 -> 0 bytes .../3.4.1/rstudioapi/Meta/package.rds | Bin 905 -> 0 bytes .../3.4.1/rstudioapi/Meta/vignette.rds | Bin 364 -> 0 bytes .../3.4.1/rstudioapi/NAMESPACE | 76 - .../3.4.1/rstudioapi/NEWS.md | 40 - .../3.4.1/rstudioapi/R/rstudioapi | 27 - .../3.4.1/rstudioapi/R/rstudioapi.rdb | Bin 13921 -> 0 bytes .../3.4.1/rstudioapi/R/rstudioapi.rdx | Bin 1314 -> 0 bytes .../3.4.1/rstudioapi/doc/dialogs.R | 30 - .../3.4.1/rstudioapi/doc/dialogs.Rmd | 50 - .../3.4.1/rstudioapi/doc/dialogs.html | 112 - .../rstudioapi/doc/document-manipulation.R | 39 - .../rstudioapi/doc/document-manipulation.Rmd | 59 - .../rstudioapi/doc/document-manipulation.html | 122 - .../3.4.1/rstudioapi/doc/index.html | 53 - .../3.4.1/rstudioapi/doc/introduction.Rmd | 22 - .../3.4.1/rstudioapi/doc/introduction.html | 58 - .../3.4.1/rstudioapi/doc/projects.R | 13 - .../3.4.1/rstudioapi/doc/projects.Rmd | 26 - .../3.4.1/rstudioapi/doc/projects.html | 96 - .../3.4.1/rstudioapi/doc/r-session.R | 10 - .../3.4.1/rstudioapi/doc/r-session.Rmd | 23 - .../3.4.1/rstudioapi/doc/r-session.html | 93 - .../3.4.1/rstudioapi/doc/terminal.R | 42 - .../3.4.1/rstudioapi/doc/terminal.Rmd | 98 - .../3.4.1/rstudioapi/doc/terminal.html | 164 - .../3.4.1/rstudioapi/help/AnIndex | 66 - .../3.4.1/rstudioapi/help/aliases.rds | Bin 688 -> 0 bytes .../3.4.1/rstudioapi/help/paths.rds | Bin 578 -> 0 bytes .../3.4.1/rstudioapi/help/rstudioapi.rdb | Bin 73756 -> 0 bytes .../3.4.1/rstudioapi/help/rstudioapi.rdx | Bin 1169 -> 0 bytes .../3.4.1/rstudioapi/html/00Index.html | 157 - .../3.4.1/rstudioapi/html/R.css | 97 - .../3.4.1/sfsmisc/ChangeLog | 1019 -- .../3.4.1/sfsmisc/DESCRIPTION | 24 - .../x86_64-pc-linux-gnu/3.4.1/sfsmisc/INDEX | 122 - .../3.4.1/sfsmisc/Meta/Rd.rds | Bin 4908 -> 0 bytes .../3.4.1/sfsmisc/Meta/data.rds | Bin 98 -> 0 bytes .../3.4.1/sfsmisc/Meta/demo.rds | Bin 203 -> 0 bytes .../3.4.1/sfsmisc/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/sfsmisc/Meta/hsearch.rds | Bin 4632 -> 0 bytes .../3.4.1/sfsmisc/Meta/links.rds | Bin 1666 -> 0 bytes .../3.4.1/sfsmisc/Meta/nsInfo.rds | Bin 1654 -> 0 bytes .../3.4.1/sfsmisc/Meta/package.rds | Bin 944 -> 0 bytes .../3.4.1/sfsmisc/NAMESPACE | 176 - .../x86_64-pc-linux-gnu/3.4.1/sfsmisc/NEWS.Rd | 451 - .../3.4.1/sfsmisc/R/sfsmisc | 27 - .../3.4.1/sfsmisc/R/sfsmisc.rdb | Bin 229293 -> 0 bytes .../3.4.1/sfsmisc/R/sfsmisc.rdx | Bin 2329 -> 0 bytes .../3.4.1/sfsmisc/data/potatoes.rda | Bin 661 -> 0 bytes .../3.4.1/sfsmisc/help/AnIndex | 139 - .../3.4.1/sfsmisc/help/aliases.rds | Bin 1226 -> 0 bytes .../3.4.1/sfsmisc/help/paths.rds | Bin 906 -> 0 bytes .../3.4.1/sfsmisc/help/sfsmisc.rdb | Bin 317520 -> 0 bytes .../3.4.1/sfsmisc/help/sfsmisc.rdx | Bin 2262 -> 0 bytes .../3.4.1/sfsmisc/html/00Index.html | 422 - .../3.4.1/sfsmisc/html/R.css | 97 - .../3.4.1/sfsmisc/tests/dDA.R | 76 - .../3.4.1/sfsmisc/tests/dDA.Rout.save | 123 - .../3.4.1/sfsmisc/tests/misc.R | 45 - .../3.4.1/sfsmisc/tests/p.R | 8 - .../3.4.1/sfsmisc/tests/p.Rout.save | 29 - .../3.4.1/sfsmisc/tests/posdef.R | 38 - .../3.4.1/sfsmisc/tests/posdef.Rout.save | 79 - .../3.4.1/whisker/DESCRIPTION | 24 - .../x86_64-pc-linux-gnu/3.4.1/whisker/INDEX | 5 - .../3.4.1/whisker/Meta/Rd.rds | Bin 568 -> 0 bytes .../3.4.1/whisker/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/whisker/Meta/hsearch.rds | Bin 549 -> 0 bytes .../3.4.1/whisker/Meta/links.rds | Bin 222 -> 0 bytes .../3.4.1/whisker/Meta/nsInfo.rds | Bin 220 -> 0 bytes .../3.4.1/whisker/Meta/package.rds | Bin 742 -> 0 bytes .../3.4.1/whisker/NAMESPACE | 4 - .../x86_64-pc-linux-gnu/3.4.1/whisker/NEWS | 9 - .../3.4.1/whisker/R/whisker | 27 - .../3.4.1/whisker/R/whisker.rdb | Bin 9888 -> 0 bytes .../3.4.1/whisker/R/whisker.rdx | Bin 813 -> 0 bytes .../3.4.1/whisker/help/AnIndex | 9 - .../3.4.1/whisker/help/aliases.rds | Bin 155 -> 0 bytes .../3.4.1/whisker/help/paths.rds | Bin 217 -> 0 bytes .../3.4.1/whisker/help/whisker.rdb | Bin 12773 -> 0 bytes .../3.4.1/whisker/help/whisker.rdx | Bin 344 -> 0 bytes .../3.4.1/whisker/html/00Index.html | 35 - .../3.4.1/whisker/html/R.css | 97 - .../3.4.1/whisker/specs/comments.json | 1 - .../3.4.1/whisker/specs/comments.yml | 103 - .../3.4.1/whisker/specs/convert.R | 72 - .../3.4.1/whisker/specs/delimiters.json | 1 - .../3.4.1/whisker/specs/delimiters.yml | 158 - .../3.4.1/whisker/specs/interpolation.json | 1 - .../3.4.1/whisker/specs/interpolation.yml | 230 - .../3.4.1/whisker/specs/inverted.json | 1 - .../3.4.1/whisker/specs/inverted.yml | 193 - .../3.4.1/whisker/specs/lambdas.json | 168 - .../3.4.1/whisker/specs/lambdas.yml | 139 - .../3.4.1/whisker/specs/partials.json | 1 - .../3.4.1/whisker/specs/partials.yml | 101 - .../3.4.1/whisker/specs/sections.json | 1 - .../3.4.1/whisker/specs/sections.yml | 256 - .../3.4.1/whisker/tests/testComments.R | 134 - .../3.4.1/whisker/tests/testdelimiters.R | 168 - .../3.4.1/whisker/tests/testinterpolation.R | 362 - .../3.4.1/whisker/tests/testinverted.R | 271 - .../3.4.1/whisker/tests/testpartials.R | 129 - .../3.4.1/whisker/tests/testsections.R | 317 - .../3.4.1/withr/DESCRIPTION | 37 - .../lib/x86_64-pc-linux-gnu/3.4.1/withr/INDEX | 14 - .../3.4.1/withr/Meta/Rd.rds | Bin 737 -> 0 bytes .../3.4.1/withr/Meta/features.rds | Bin 112 -> 0 bytes .../3.4.1/withr/Meta/hsearch.rds | Bin 755 -> 0 bytes .../3.4.1/withr/Meta/links.rds | Bin 375 -> 0 bytes .../3.4.1/withr/Meta/nsInfo.rds | Bin 392 -> 0 bytes .../3.4.1/withr/Meta/package.rds | Bin 1213 -> 0 bytes .../x86_64-pc-linux-gnu/3.4.1/withr/NAMESPACE | 33 - .../x86_64-pc-linux-gnu/3.4.1/withr/NEWS.md | 19 - .../x86_64-pc-linux-gnu/3.4.1/withr/R/withr | 27 - .../3.4.1/withr/R/withr.rdb | Bin 16713 -> 0 bytes .../3.4.1/withr/R/withr.rdx | Bin 916 -> 0 bytes .../3.4.1/withr/help/AnIndex | 32 - .../3.4.1/withr/help/aliases.rds | Bin 301 -> 0 bytes .../3.4.1/withr/help/paths.rds | Bin 238 -> 0 bytes .../3.4.1/withr/help/withr.rdb | Bin 31549 -> 0 bytes .../3.4.1/withr/help/withr.rdx | Bin 455 -> 0 bytes .../3.4.1/withr/html/00Index.html | 84 - .../3.4.1/withr/html/R.css | 97 - 1857 files changed, 34 insertions(+), 341730 deletions(-) delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/CITATION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/LICENSE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/data.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/NEWS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/R/GPArotation delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/R/GPArotation.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/R/GPArotation.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/Harman.rda delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/Thurstone.rda delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/WansbeekMeijer.rda delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/doc/Guide.Stex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/doc/Guide.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/GPArotation.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/GPArotation.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Harman.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Jennrich2002.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/MASSoblimin.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Revelle.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Thurstone.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/WansbeekMeijer.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/rotations.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/LICENSE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6 delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/R6.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/R6.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/CITATION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/NEWS.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/README delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/THANKS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.10.0.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.11.0.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.6.0.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.7.0.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.8.0.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.9.0.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/bib/Rcpp.bib delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/discovery/cxx0x.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-attributes.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-attributes.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-attributes.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-extending.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-extending.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-extending.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-introduction.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-introduction.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-introduction.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-modules.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-modules.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-modules.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-package.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-package.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-package.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-quickref.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-quickref.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-quickref.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-sugar.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-sugar.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-sugar.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-unitTests.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-unitTests.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-unitTests.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Attributes/Depends.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Attributes/Export.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Attributes/cppFunction.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Attributes/sourceCpp.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/GNUmakefile delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/buildAndRun.sh delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve10_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve10_cpp.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve11_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve12_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve13_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve14_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve2_c.c delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve3_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve4_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve5_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve7_c.c delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve8_cpp.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/convolve9_cpp.cpp delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/exampleRCode.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/loopmacro.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/overhead.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/overhead.sh delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/overhead_1.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/ConvolveBenchmarks/overhead_2.c delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/FastLM/benchmark.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/FastLM/benchmarkLongley.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/FastLM/fastLMviaArmadillo.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/FastLM/fastLMviaGSL.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/FastLM/lmArmadillo.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/FastLM/lmGSL.R delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Misc/fibonacci.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Misc/ifelseLooped.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Misc/newFib.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Misc/piBySimulation.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/Misc/piSugar.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/OpenMP/GNUmakefile delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/OpenMP/OpenMPandInline.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/OpenMP/check.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/OpenMP/piWithInterrupts.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/RcppGibbs/RcppGibbs.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/RcppGibbs/timeRNGs.R delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/RcppInline/RObject.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/RcppInline/RcppInlineExample.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/RcppInline/RcppInlineWithLibsExamples.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/RcppInline/RcppSimpleExample.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/RcppInline/UncaughtExceptions.r delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/RcppInline/external_pointer.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/SugarPerformance/Timer.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/SugarPerformance/Timertest.cpp delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/SugarPerformance/sugarBenchmarks.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/functionCallback/README delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/functionCallback/newApiExample.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/performance/extractors.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/examples/performance/performance.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/help/Rcpp.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/help/Rcpp.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Benchmark/Timer.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/DataFrame.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Dimension.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/DottedPair.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/DottedPairImpl.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Environment.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Extractor.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Fast.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Formula.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Function.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/InputParameter.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/InternalFunction.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/InternalFunctionWithStdFunction.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Interrupt.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Language.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Module.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Na_Proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Named.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Nullable.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Pairlist.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Promise.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/RNGScope.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/RObject.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Reference.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Rmath.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/S4.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/StretchyList.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/String.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/StringTransformer.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Symbol.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/Vector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/WeakReference.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/XPtr.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/algo.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/algorithm.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/bones/Date.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/bones/Datetime.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/bones/bones.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/bones/wrap_extra_steps.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/DataFrame.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/Date.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/Datetime.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/Dimension.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/DottedPairImpl.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/Environment.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/Rcpp_eval.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/S4.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/StretchyList.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/Vector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/as.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/export.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/is.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/meat.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/module/Module.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/protection.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/api/meat/wrap.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/as.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/barrier.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/clone.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/complex.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/config.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/date_datetime/Date.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/date_datetime/Datetime.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/date_datetime/date_datetime.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/date_datetime/newDateVector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/date_datetime/newDatetimeVector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/date_datetime/oldDateVector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/date_datetime/oldDatetimeVector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/exceptions.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/exceptions/cpp11/exceptions.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/exceptions/cpp98/exceptions.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/DataFrame_generated.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/DottedPair__ctors.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/Function__operator.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/InternalFunctionWithStdFunction_call.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/InternalFunction__ctors.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/Language__ctors.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/Pairlist__ctors.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/Vector__create.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/grow__pairlist.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/grow.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/hash/IndexHash.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/hash/SelfHash.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/hash/hash.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/Exporter.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/GreedyVector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/ListInitialization.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/NAComparator.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/NAEquals.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/Proxy_Iterator.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/SEXP_Iterator.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/caster.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/converter.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/export.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/na.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/r_coerce.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/r_vector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/wrap.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/internal/wrap_end.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/iostream/Rstreambuf.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/is.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/lang.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/longlong.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/cat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/config.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/debug.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/dispatch.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/interface.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/macros.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/module.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/traits.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/unroll.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/macros/xp.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/CppFunction.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_Add_Property.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_Field.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_Property.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_Constructor.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_CppFunction.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_CppMethod.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_Factory.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_Pointer_CppMethod.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_Pointer_method.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_class_constructor.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_class_factory.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_class_signature.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_ctor_signature.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_function.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_get_signature.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_method.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/class.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/class_Base.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/get_return_type.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/platform/compiler.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/platform/solaris.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/print.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/protection/Armor.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/protection/Shelter.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/protection/Shield.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/protection/protection.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/AttributeProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/Binding.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/DottedPairProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/FieldProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/GenericProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/NamesProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/ProtectedProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/RObjectMethods.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/SlotProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/TagProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/proxy/proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/r/headers.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/r_cast.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/routines.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sprintf.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/beta.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/binom.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/cauchy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/chisq.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/dpq/dpq.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/dpq/macros.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/exp.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/f.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/gamma.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/geom.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/hyper.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/lnorm.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/logis.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/nbeta.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/nbinom.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/nbinom_mu.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/nchisq.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/nf.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/norm.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/nt.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/pois.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/random.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rbeta.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rbinom.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rcauchy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rchisq.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rexp.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rf.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rgamma.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rgeom.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rhyper.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rlnorm.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rlogis.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rnbinom.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rnbinom_mu.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rnchisq.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rnorm.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rpois.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rsignrank.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rt.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/runif.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rweibull.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/random/rwilcox.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/stats.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/t.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/unif.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/stats/weibull.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/storage/NoProtectStorage.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/storage/PreserveStorage.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/storage/storage.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/Range.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/block/SugarBlock_1.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/block/SugarBlock_2.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/block/SugarBlock_3.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/block/SugarMath.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/block/Vectorized_Math.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/block/block.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/Lazy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/all.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/any.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/cbind.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/clamp.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/complex.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/cummax.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/cummin.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/cumprod.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/cumsum.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/diff.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/duplicated.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/functions.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/head.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/ifelse.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/is_finite.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/is_infinite.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/is_na.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/is_nan.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/lapply.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/mapply.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/mapply/mapply_2.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/mapply/mapply_3.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/match.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/math.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/max.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/mean.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/median.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/min.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/na_omit.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/pmax.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/pmin.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/pow.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/range.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/rep.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/rep_each.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/rep_len.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/rev.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/rowSums.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/sample.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/sapply.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/sd.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/self_match.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/seq_along.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/setdiff.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/sign.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/strings/collapse.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/strings/strings.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/strings/trimws.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/sum.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/table.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/tail.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/unique.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/var.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/which_max.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/functions/which_min.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/logical/SingleLogicalResult.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/logical/and.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/logical/can_have_na.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/logical/is.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/logical/logical.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/logical/not.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/logical/or.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/as_vector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/col.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/diag.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/lower_tri.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/matrix_functions.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/outer.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/row.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/tools.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/matrix/upper_tri.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/nona/nona.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/Comparator.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/Comparator_With_One_Value.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/divides.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/logical_operators__Vector__Vector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/logical_operators__Vector__primitive.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/minus.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/not.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/operators.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/plus.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/r_binary_op.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/times.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/unary_minus.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/sets.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/sugar.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/sugar_forward.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/tools/iterator.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/undoRmath.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/char_type.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/enable_if.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/expands_to_logical.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/get_na.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/has_iterator.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/has_na.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/if_.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/init_type.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/integral_constant.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_arithmetic.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_bool.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_const.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_convertible.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_eigen_base.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_finite.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_infinite.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_module_object.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_na.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_nan.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_pointer.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_primitive.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_reference.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_sugar_expression.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_trivial.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/is_wide_string.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/longlong.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/matrix_interface.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/module_wrap_traits.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/named_object.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/num2type.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/one_type.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/r_sexptype_traits.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/r_type_traits.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/remove_const.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/remove_const_and_reference.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/remove_reference.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/result_of.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/same_type.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/storage_type.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/traits.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/un_pointer.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/traits/wrap_type_traits.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/utils/tinyformat.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/00_forward_Vector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/00_forward_proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/ChildVector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/DimNameProxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/LazyVector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/ListOf.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/Matrix.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/MatrixBase.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/MatrixColumn.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/MatrixRow.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/RangeIndexer.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/SubMatrix.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/Subsetter.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/Vector.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/VectorBase.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/const_generic_proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/const_string_proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/converter.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/generic_proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/instantiation.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/no_init.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/string_proxy.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/swap.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/traits.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/vector/vector_from_string.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/RcppCommon.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/doxygen/Examples.h delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/libs/Rcpp.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/prompt/module.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/Num.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/Rcpp_modules_examples.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/manual-page-stub.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/rcpp_hello_world.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/rcpp_hello_world.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/rcpp_hello_world.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/rcpp_hello_world.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/rcpp_hello_world_attributes.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/rcpp_module.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/stdVector.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/skeleton/zzz.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/tests/doRUnit.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/bin/amd64/r-cran-testrcpppackage_0.1.0-1_amd64.deb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/bin/i386/r-cran-testrcpppackage_0.1.0-1_i386.deb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/DataFrame.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/Environment.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/Function.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/InternalFunction.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/InternalFunctionCPP11.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/ListOf.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/Matrix.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/Module.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/RObject.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/Reference.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/S4.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/String.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/Subset.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/Vector.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/VectorOld.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/XPtr.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/algorithm.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/as.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/attributes.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/attributes.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/dates.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/dispatch.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/exceptions.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/language.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/misc.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/modref.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/na.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/rmath.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/stats.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/sugar.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/support.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/table.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/wrap.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/cpp/wstring.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runTests.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.DataFrame.R delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Date.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Function.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.InternalFunction.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.InternalFunctionCPP11.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Language.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.ListOf.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Matrix.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Module.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Module.client.package.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.RObject.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Rcpp.package.skeleton.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Reference.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.S4.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.String.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.Vector.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.VectorOld.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.XPTr.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.algorithm.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.as.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.attributes.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.binary.package.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.client.package.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.dispatch.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.environments.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.exceptions.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.misc.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.modref.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.na.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.quickanddirty.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.rmath.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.stats.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.subset.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.sugar.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.sugar.var.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.support.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.system.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.table.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.wrap.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/runit.wstring.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/R/load.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/R/rcpp_hello_world.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/man/Rcpp_class_examples.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/man/rcpp_hello_world.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/man/testRcppClass-package.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/src/Num.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/src/init.c delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/src/rcpp_hello_world.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/src/rcpp_hello_world.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/src/rcpp_module.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/src/stdVector.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/tests/classes.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/R/rcpp_hello_world.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/R/zzz.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/man/Rcpp_modules_examples.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/man/rcpp_hello_world.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/man/testRcppModule-package.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/src/Num.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/src/init.c delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/src/rcpp_hello_world.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/src/rcpp_hello_world.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/src/rcpp_module.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/src/stdVector.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/tests/modules.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppPackage/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppPackage/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppPackage/R/rcpp_hello_world.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppPackage/man/testRcppPackage-package.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppPackage/src/rcpp_hello_world.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppPackage/src/rcpp_hello_world.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/AUTHORS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/CITATION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/COPYRIGHTS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/NEWS.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/R/RcppArmadillo delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/R/RcppArmadillo.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/R/RcppArmadillo.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/announce/ANNOUNCE-0.2.0.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/doc/RcppArmadillo-intro.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/doc/RcppArmadillo-intro.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/doc/RcppArmadillo-intro.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/doc/RcppArmadillo-unitTests.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/doc/RcppArmadillo-unitTests.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/doc/RcppArmadillo-unitTests.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/fastLm.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/FirstKalmanR.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/Kalman.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/KalmanR.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/KalmanRimp.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/benchmark.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/firstExample.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/kalmanExample.m delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/kalmanM.m delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/kalmanfilter.m delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/kalman/pos.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/examples/varSimulation.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/help/RcppArmadillo.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/help/RcppArmadillo.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/README delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadillo.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadillo/Alt_R_RNG.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadillo/Col_meat.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadillo/Col_proto.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadillo/Mat_meat.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadillo/Mat_proto.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadillo/Row_meat.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadillo/Row_proto.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloAs.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloConfig.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloConfigGenerated.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloConfigGenerated.h.in delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloExtensions/fixprob.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloExtensions/rmultinom.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloExtensions/sample.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloForward.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloSugar.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloWrap.h delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/BaseCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/BaseCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Base_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Base_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Col_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Col_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Cube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Cube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/GenCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/GenCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/GenSpecialiser.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Gen_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Gen_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/GlueCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/GlueCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Glue_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Glue_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Mat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Mat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/OpCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/OpCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Op_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Op_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Proxy.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/ProxyCube.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Row_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/Row_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SizeCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SizeCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SizeMat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SizeMat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpBase_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpBase_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpCol_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpCol_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpGlue_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpGlue_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpMat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpMat_iterators_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpMat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpOp_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpOp_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpProxy.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpRow_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpRow_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpSubview_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpSubview_iterators_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpSubview_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpValProxy_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpValProxy_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/access.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_cmath.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_config.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_forward.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_ostream_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_ostream_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_rng.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_rng_cxx11.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_rng_cxx98.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_static_check.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_str.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_version.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arrayops_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arrayops_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/auxlib_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/auxlib_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/compiler_extra.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/compiler_setup.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/compiler_setup_post.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/cond_rel_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/cond_rel_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/config.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/config.hpp.cmake delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/constants.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/constants_old.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/debug.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/def_arpack.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/def_atlas.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/def_blas.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/def_hdf5.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/def_lapack.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/def_superlu.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/diagmat_proxy.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/diagview_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/diagview_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/diskio_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/diskio_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/distr_param.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eGlueCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eGlueCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eGlue_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eGlue_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eOpCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eOpCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eOp_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eOp_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eglue_core_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eglue_core_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eop_aux.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eop_core_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eop_core_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fft_engine.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/field_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/field_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_accu.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_all.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_any.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_approx_equal.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_as_scalar.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_chol.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_clamp.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_cond.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_conv.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_conv_to.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_cor.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_cov.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_cross.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_cumprod.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_cumsum.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_det.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_diagmat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_diagvec.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_diff.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_dot.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_eig_gen.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_eig_pair.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_eig_sym.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_eigs_gen.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_eigs_sym.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_elem.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_eps.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_expmat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_eye.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_fft.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_fft2.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_find.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_find_unique.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_flip.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_hist.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_histc.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_index_max.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_index_min.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_inplace_strans.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_inplace_trans.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_interp1.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_inv.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_join.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_kmeans.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_kron.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_log_det.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_logmat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_lu.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_max.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_mean.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_median.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_min.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_misc.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_n_unique.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_nonzeros.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_norm.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_normalise.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_numel.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_ones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_orth_null.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_pinv.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_polyfit.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_polyval.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_princomp.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_prod.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_qr.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_qz.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_randg.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_randi.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_randn.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_randu.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_range.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_rank.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_regspace.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_repmat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_reshape.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_resize.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_schur.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_shift.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_shuffle.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_size.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_solve.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_sort.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_sort_index.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_speye.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_spones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_sprandn.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_sprandu.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_spsolve.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_sqrtmat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_stddev.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_strans.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_sum.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_svd.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_svds.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_syl_lyap.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_symmat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_toeplitz.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_trace.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_trans.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_trapz.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_trig.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_trimat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_trunc_exp.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_trunc_log.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_unique.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_var.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_vectorise.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_zeros.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_atan2_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_atan2_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_conv_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_conv_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_cor_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_cor_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_cov_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_cov_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_cross_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_cross_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_hist_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_hist_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_histc_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_histc_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_hypot_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_hypot_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_join_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_join_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_kron_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_kron_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_max_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_max_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_min_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_min_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_mixed_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_mixed_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_polyfit_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_polyfit_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_polyval_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_polyval_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_relational_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_relational_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_solve_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_solve_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_times_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_times_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_toeplitz_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_toeplitz_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_trapz_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_trapz_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/gmm_diag_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/gmm_diag_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/gmm_full_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/gmm_full_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/gmm_misc_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/gmm_misc_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/hdf5_misc.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/include_atlas.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/include_hdf5.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/include_superlu.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/injector_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/injector_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/memory.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mp_misc.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtGlueCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtGlueCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtGlue_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtGlue_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtOpCube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtOpCube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtOp_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtOp_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtSpOp_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtSpOp_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mul_gemm.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mul_gemm_mixed.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mul_gemv.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mul_herk.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mul_syrk.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_DenseGenMatProd_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_DenseGenMatProd_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_DoubleShiftQR_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_DoubleShiftQR_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_EigsSelect.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_GenEigsSolver_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_GenEigsSolver_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SortEigenvalue.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SparseGenMatProd_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SparseGenMatProd_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SymEigsSolver_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SymEigsSolver_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_TridiagEigen_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_TridiagEigen_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_UpperHessenbergEigen_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_UpperHessenbergEigen_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_UpperHessenbergQR_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_UpperHessenbergQR_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_cx_attrib.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_all_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_all_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_any_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_any_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_chol_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_chol_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_clamp_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_clamp_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cor_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cor_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cov_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cov_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cumprod_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cumprod_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cumsum_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cumsum_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cx_scalar_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cx_scalar_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_diagmat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_diagmat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_diagvec_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_diagvec_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_diff_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_diff_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_dot_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_dot_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_dotext_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_dotext_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_expmat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_expmat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_fft_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_fft_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_find_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_find_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_find_unique_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_find_unique_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_flip_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_flip_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_hist_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_hist_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_htrans_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_htrans_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_index_max_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_index_max_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_index_min_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_index_min_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_inv_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_inv_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_logmat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_logmat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_max_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_max_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_mean_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_mean_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_median_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_median_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_min_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_min_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_misc_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_misc_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_nonzeros_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_nonzeros_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_norm_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_norm_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_normalise_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_normalise_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_orth_null_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_orth_null_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_pinv_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_pinv_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_princomp_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_princomp_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_prod_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_prod_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_range_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_range_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_relational_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_relational_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_repmat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_repmat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_reshape_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_reshape_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_resize_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_resize_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_shift_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_shift_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_shuffle_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_shuffle_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sort_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sort_index_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sort_index_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sort_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sqrtmat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sqrtmat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_stddev_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_stddev_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_strans_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_strans_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sum_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sum_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_symmat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_symmat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_toeplitz_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_toeplitz_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_trimat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_trimat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_unique_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_unique_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_var_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_var_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_vectorise_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_vectorise_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_div.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_minus.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_plus.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_relational.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_schur.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_times.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_div.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_minus.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_ostream.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_plus.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_relational.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_schur.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_times.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/podarray_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/podarray_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/promote_type.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/restrictors.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/running_stat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/running_stat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/running_stat_vec_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/running_stat_vec_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/sp_auxlib_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/sp_auxlib_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/span.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spdiagview_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spdiagview_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_join_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_join_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_minus_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_minus_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_plus_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_plus_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_times_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_times_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_diagmat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_diagmat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_htrans_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_htrans_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_max_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_max_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_mean_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_mean_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_min_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_min_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_misc_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_misc_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_strans_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_strans_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_sum_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_sum_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_symmat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_symmat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_trimat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_trimat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_var_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_var_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/strip.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_cube_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_cube_each_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_cube_each_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_cube_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_each_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_each_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_elem1_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_elem1_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_elem2_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_elem2_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_field_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_field_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/traits.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/typedef_elem.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/typedef_elem_check.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/typedef_mat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/typedef_mat_fixed.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/unwrap.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/unwrap_cube.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/unwrap_spmat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/upgrade_val.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/wall_clock_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/wall_clock_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/wrapper_arpack.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/wrapper_atlas.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/wrapper_blas.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/wrapper_lapack.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/wrapper_superlu.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/xtrans_mat_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/xtrans_mat_meat.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/xvec_htrans_bones.hpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/xvec_htrans_meat.hpp delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/libs/RcppArmadillo.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/skeleton/Makevars delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/skeleton/Makevars.win delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/skeleton/rcpparma_hello_world.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/skeleton/rcpparma_hello_world.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/tests/doRUnit.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/any_as_vec.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/armadillo.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/colrow_as_vec.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/complex.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/cube.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/rmultinom.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/rng.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/sample.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/cpp/sparse.cpp delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runTests.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.RcppArmadillo.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.complex.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.cube.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.fastLm.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.rmultinom.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.rng.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.sample.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.scipy2r.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.sparse.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/unitTests/runit.sparseConversion.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/LICENSE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/Meta/data.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/NEWS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/R/curl delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/R/curl.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/R/curl.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/data/Rdata.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/data/Rdata.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/data/Rdata.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/doc/intro.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/doc/intro.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/doc/intro.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/help/curl.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/help/curl.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/html/R.css delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/libs/curl.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/R/devtools delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/R/devtools.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/R/devtools.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/doc/dependencies.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/doc/dependencies.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/help/devtools.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/help/devtools.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/CONDUCT.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/appveyor.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/codecov.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/cran-comments.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/gpl-v3.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/mit-license.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/omni-README delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/packagename-package.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/readme-rmd-pre-commit.sh delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/revdep.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/template.Rproj delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/test-example.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/testthat.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/devtools/templates/travis.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/GPL-2 delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/R/digest delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/R/digest.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/R/digest.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/doc/sha1.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/doc/sha1.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/doc/sha1.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/help/digest.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/help/digest.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/include/pmurhashAPI.h delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/libs/digest.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/AUTHORS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/CITATION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/COPYING delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/COPYRIGHTS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/NEWS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/R/git2r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/R/git2r.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/R/git2r.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/help/git2r.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/help/git2r.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/html/R.css delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/libs/git2r.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/LICENSE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/Meta/demo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/R/httr delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/R/httr.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/R/httr.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/connection-sharing.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth1-twitter.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth1-vimeo.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth1-withings.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth1-yahoo.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth2-azure.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth2-facebook.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth2-github.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth2-google.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth2-linkedin.r delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth2-reddit.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/oauth2-yelp.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/demo/service-account.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/api-packages.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/api-packages.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/api-packages.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/quickstart.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/quickstart.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/quickstart.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/secrets.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/secrets.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/doc/secrets.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/help/httr.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/help/httr.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/httr/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/CITATION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/LICENSE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/NEWS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/R/jsonlite delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/R/jsonlite.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/R/jsonlite.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-aaquickstart.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-aaquickstart.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-aaquickstart.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-apis.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-apis.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-mapping.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-mapping.pdf.asis delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-opencpu.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-opencpu.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-opencpu.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-paging.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/doc/json-paging.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/help/jsonlite.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/help/jsonlite.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/html/R.css delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/libs/jsonlite.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/LICENSE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/R/memoise delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/R/memoise.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/R/memoise.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/help/memoise.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/help/memoise.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/memoise/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/NEWS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/R/mime delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/R/mime.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/R/mime.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/help/mime.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/help/mime.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/html/R.css delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/libs/mime.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/CITATION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/Meta/data.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/R/mirt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/R/mirt.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/R/mirt.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/data/Rdata.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/data/Rdata.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/data/Rdata.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/help/mirt.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/help/mirt.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/html/R.css delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/libs/mirt.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/extratests/mplus/mplus2Dim.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/extratests/mplus/mplusComplete.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/extratests/mplus/mplusFunctions.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/extratests/mplus/mplusSparse.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/extratests/test-01-largeData.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/extratests/test-02-wideData.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-00-basics.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-01-mirtOne.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-02-mirtTwo.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-03-bfactor.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-04-multipleGroup.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-05-confmirtOne.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-06-confmirtTwo.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-07-mixedmirt.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-08-createItem.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-09-mirt.model.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-10-extras.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-11-discrete.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-12-gpcm_mats.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/tests/tests/test-13-grsmIRT.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/NEWS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/R/numDeriv delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/R/numDeriv.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/R/numDeriv.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/doc/Guide.Stex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/doc/Guide.pdf delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/help/numDeriv.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/help/numDeriv.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/tests/BWeg.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/tests/CSD.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/tests/grad01.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/tests/hessian01.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/tests/jacobian01.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/tests/oneSided.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/numDeriv/tests/trig01.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/LICENSE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/NEWS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/R/openssl delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/R/openssl.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/R/openssl.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/cacert.pem delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/bignum.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/bignum.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/bignum.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/crypto_hashing.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/crypto_hashing.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/crypto_hashing.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/keys.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/keys.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/keys.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/secure_rng.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/secure_rng.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/secure_rng.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/help/openssl.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/help/openssl.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/html/R.css delete mode 100755 packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/libs/openssl.so delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/R/packrat delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/R/packrat.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/R/packrat.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/help/packrat.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/help/packrat.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/resources/init-rprofile.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/resources/init.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/resources/mac_r_userlib.sh delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/rstudio/rstudio-protocol delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/test-all.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/test-cranlike-repositories.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/.gitignore delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/bread/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/breakfast/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/oatmeal/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/packrat/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/toast/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/helper-bundle.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/helper-packrat.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/lockfiles/lockfile-multipleRepos.txt delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/other-packages/packrat/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/packages/bread/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/packages/breakfast/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/packages/egg/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/packages/oatmeal/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/packages/toast/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/carbs/flour.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/empty/empty.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/emptydesc/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/emptydesc/app.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/healthy/healthy.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/library.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/packrat/lib/lib-current.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/packrat/library.new/lib-new.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/packrat/library.old/lib-old.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/sated/sated.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/smallbreakfast/bread.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/smallbreakfast/oatmeal.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/repo-empty/src/contrib/PACKAGES delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/resources/alternate-engines.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/resources/evaluate-deps.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/resources/interactive-doc-example.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/resources/knitr-minimal.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/resources/no-chunks.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/resources/params-example.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/resources/test-sweave.Rnw delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-bundle.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-cache.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-dependencies.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-downloader.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-git.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-github.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-hash.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-ignores.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-local-repositories.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-lockfile.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-packrat-mode.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-packrat.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-rmarkdown.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-shiny.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/test-utils.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/LICENSE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/Meta/vignette.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/R/rstudioapi delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/R/rstudioapi.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/R/rstudioapi.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/dialogs.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/dialogs.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/dialogs.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/document-manipulation.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/document-manipulation.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/document-manipulation.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/introduction.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/introduction.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/projects.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/projects.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/projects.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/r-session.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/r-session.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/r-session.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/terminal.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/terminal.Rmd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/doc/terminal.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/help/rstudioapi.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/help/rstudioapi.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/rstudioapi/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/ChangeLog delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/Meta/data.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/Meta/demo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/NEWS.Rd delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/R/sfsmisc delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/R/sfsmisc.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/R/sfsmisc.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/data/potatoes.rda delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/help/sfsmisc.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/help/sfsmisc.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/tests/dDA.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/tests/dDA.Rout.save delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/tests/misc.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/tests/p.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/tests/p.Rout.save delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/tests/posdef.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/sfsmisc/tests/posdef.Rout.save delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/NEWS delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/R/whisker delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/R/whisker.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/R/whisker.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/help/whisker.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/help/whisker.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/html/R.css delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/comments.json delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/comments.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/convert.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/delimiters.json delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/delimiters.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/interpolation.json delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/interpolation.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/inverted.json delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/inverted.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/lambdas.json delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/lambdas.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/partials.json delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/partials.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/sections.json delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/specs/sections.yml delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/tests/testComments.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/tests/testdelimiters.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/tests/testinterpolation.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/tests/testinverted.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/tests/testpartials.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/whisker/tests/testsections.R delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/DESCRIPTION delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/INDEX delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/Meta/Rd.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/Meta/features.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/Meta/hsearch.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/Meta/links.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/Meta/nsInfo.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/Meta/package.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/NAMESPACE delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/NEWS.md delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/R/withr delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/R/withr.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/R/withr.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/help/AnIndex delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/help/aliases.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/help/paths.rds delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/help/withr.rdb delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/help/withr.rdx delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/html/00Index.html delete mode 100644 packrat/lib/x86_64-pc-linux-gnu/3.4.1/withr/html/R.css diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index e58bb33..06dbc7d 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -23,14 +23,21 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: Lint workflow YAML - run: | - python3 -m pip install --user yamllint - python3 -m yamllint .yamllint.yml .github/dependabot.yml .github/workflows/*.yml + uses: ibiqlik/action-yamllint@2576378a8e339169678f9939646ee3ee325e845c + with: + file_or_dir: .yamllint.yml .github/dependabot.yml .github/workflows/*.yml - name: Lint markdown docs - run: | - npm install -g markdownlint-cli2@0.18.1 - markdownlint-cli2 README.md AGENTS.md ARCHITECTURE.md CLAUDE.md CONTRIBUTING.md .github/**/*.md docs/**/*.md + uses: DavidAnson/markdownlint-cli2-action@6bf21b07787794f89a243495939cd651942aeabe + with: + globs: | + README.md + AGENTS.md + ARCHITECTURE.md + CLAUDE.md + CONTRIBUTING.md + .github/**/*.md + docs/**/*.md - name: Lint GitHub workflows run: | diff --git a/.gitignore b/.gitignore index b7e79ba..bb7c3c1 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,8 @@ task_agent_mapping.json # local package build artifacts aFIPC_*.tar.gz + +# generated packrat libraries (restore from packrat.lock + packrat/src) +packrat/lib/ +packrat/lib-R/ +packrat/lib-ext/ diff --git a/AGENTS.md b/AGENTS.md index b60b03d..d1fe671 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -60,15 +60,14 @@ Applies to every agent (Claude, Codex, Cursor, opencode, ...) working in this re fixable only). It runs against each PR base, **including stacked PRs**. - A failing `trivy-fs` is a **REAL finding, not a flake.** Read the job log (it prints each finding's rule id, severity, and file) or the run's SARIF results, - then **remediate**: bump the offending R dependency (this package vendors its - library tree under `packrat/`), or, only for a genuine false positive, add a + then **remediate**: bump the offending tracked dependency source under + `packrat/src`, or, only for a genuine false positive, add a narrow, path-scoped, commented entry to `.trivyignore.yaml`. Never weaken or disable the gate. This repo has no Dockerfile or k8s manifests, so misconfig findings are not expected; a hit here is a dependency or secret finding. -- The vendored packrat openssl docs include a verified false-positive example - key at `packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/doc/keys.html`; keep - its `private-key` suppression path-scoped in `.trivyignore.yaml` and do not - blanket-ignore the rule. +- Generated `packrat/lib`, `packrat/lib-R`, and `packrat/lib-ext` trees are + ignored and must never be committed; `packrat/init.R` restores them from the + tracked lock file and source cache. - A local `trivy` scan with a stale DB misses findings: run `trivy --download-db-only` first, and scan the **merge ref**, not just the PR head. - The org `code_scanning` ruleset is intentionally **CodeQL-only** (multiple diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 3880f15..815a591 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -12,7 +12,8 @@ metadata and CI are wired, and which parts are safe to evolve. - `DESCRIPTION` - Package metadata (name, version, imports, license) - `NAMESPACE` - Export map for package functions - `man/` - Generated R documentation (`.Rd` files) -- `packrat/` - Historical dependency lock/vendor directory +- `packrat/` - Historical dependency lock and source cache. The installed + `packrat/lib` tree is generated locally, ignored, and never committed. - `.github/workflows/` - CI + security automation - `.github/SECURITY.md` - Vulnerability reporting policy - `.github/PULL_REQUEST_TEMPLATE.md` - PR review checklist template diff --git a/CLAUDE.md b/CLAUDE.md index 264efb1..22afcfb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -74,7 +74,8 @@ See `ARCHITECTURE.md` for the full map. Essentials: imports `mirt` and `methods` (`DESCRIPTION`). - `man/` — generated `.Rd` docs for the exported functions. - `tests/testthat/` — testthat suite, driven by `tests/testthat.R`. -- `packrat/` — historical vendored dependency tree; opt-in only. +- `packrat/` — historical dependency lock and source cache; opt-in only. The + generated `packrat/lib` installation tree is ignored and never committed. - `.github/workflows/` — `r.yml` (R CMD check), `code-quality.yml` (yamllint + markdownlint + actionlint), `security-audit.yml` (gitleaks + actionlint). All action refs are pinned to full commit SHAs. @@ -106,9 +107,9 @@ Summarized from `AGENTS.md` and `CONTRIBUTING.md`; read those for detail. `confirmCommonItems = TRUE` in non-interactive contexts (the tests assert that implicit approval fails). - A failing `trivy-fs` in the Security Scan gate is a real finding, not a - flake: bump the offending vendored dependency under `packrat/`, or add a - narrow, path-scoped, commented entry to `.trivyignore.yaml`. Never weaken - the gate. (`trivy.yaml` skips `packrat/lib` for local scans.) + flake: bump the offending tracked dependency source under `packrat/src`, or + add a narrow, path-scoped, commented entry to `.trivyignore.yaml`. Never + weaken the gate. Generated `packrat/lib` content must remain untracked. - New copyleft dependencies (GPL/AGPL/LGPL) are not accepted; never commit secrets. - Use the PR template (`.github/PULL_REQUEST_TEMPLATE.md`): include risk diff --git a/README.md b/README.md index 7e5816f..6073077 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ preserve numerical behavior while modernizing repository operations - `R/aFIPC.R`: core `autoFIPC()` implementation - `DESCRIPTION`, `NAMESPACE`, `man/`: package metadata and generated docs -- `packrat/`: historical dependency lock/vendor directory +- `packrat/`: historical dependency lock and source cache; restored libraries + are generated locally and not tracked - `.github/workflows/`: CI/security automation ## Development status @@ -19,7 +20,8 @@ preserve numerical behavior while modernizing repository operations - Algorithmic core is legacy but trusted for historical outputs. - Operational guardrails are now maintained via GitHub Actions and Dependabot. - Legacy `packrat` bootstrap is opt-in via `AFIPC_ENABLE_PACKRAT=true`. -- Broken host-specific `packrat/lib-R` symlinks were removed for portable builds. +- `packrat/init.R` can rebuild the ignored `packrat/lib` tree from the tracked + lock file and source cache; host-specific installed binaries are not committed. - Architectural and agent operation docs are available in: - `ARCHITECTURE.md` - `AGENTS.md` diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/CITATION b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/CITATION deleted file mode 100644 index 85cd31c..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/CITATION +++ /dev/null @@ -1,20 +0,0 @@ -citHeader("To cite package 'GPArotation' in publications use:") - -citEntry(entry="article", - author = personList(as.person("Coen A. Bernaards"), - as.person("Robert I.Jennrich")), - year = 2005, - title = "Gradient Projection Algorithms and Software for Arbitrary - Rotation Criteria in Factor Analysis", - journal = "Educational and Psychological Measurement", - volume = "65", - pages = "676--696", - - textVersion = - paste("Bernaards, Coen A. and Jennrich, Robert I. (2005) ", - "Gradient Projection Algorithms and Software for Arbitrary", - "Rotation Criteria in Factor Analysis, ", - "Educational and Psychological Measurement: 65, 676-696. ", - "", - sep="") - ) diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/DESCRIPTION b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/DESCRIPTION deleted file mode 100644 index 6dc5627..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/DESCRIPTION +++ /dev/null @@ -1,19 +0,0 @@ -Package: GPArotation -Version: 2014.11-1 -Title: GPA Factor Rotation -Description: Gradient Projection Algorithm Rotation for Factor - Analysis. See ?GPArotation.Intro for more details. -Depends: R (>= 2.0.0) -LazyLoad: yes -License: GPL (>= 2) | file LICENSE -Author: Coen Bernaards and Robert Jennrich -Maintainer: Paul Gilbert -URL: http://www.stat.ucla.edu/research/gpa -Packaged: 2014-11-24 17:21:12 UTC; paul -NeedsCompilation: no -Repository: CRAN -Date/Publication: 2014-11-25 08:40:16 -Built: R 3.4.1; ; 2017-09-09 18:08:12 UTC; unix -InstallAgent: packrat 0.4.8.38 -InstallSource: CRAN -Hash: 4821625833bcab5af24257ead9119e01 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/INDEX b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/INDEX deleted file mode 100644 index d639c21..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/INDEX +++ /dev/null @@ -1,10 +0,0 @@ -00.GPArotation.Intro GPA Rotation for Factor Analysis -GPArotation-package GPA Rotation for Factor Analysis -GPForth Rotation Optimization -Harman Example Data from Harman -Random.Start Generate a Random Orthogonal Rotation -Thurstone Example Data from Thurstone -WansbeekMeijer Factor Example from Wansbeek and Meijer -echelon Echelon Rotation -eiv Errors-in-Variables Rotation -rotations Rotations diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/LICENSE b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/LICENSE deleted file mode 100644 index c6638a8..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/LICENSE +++ /dev/null @@ -1,2 +0,0 @@ -Copyright 2005-2006, Coen Bernaards and Robert Jennrich -License: GPL Version 2 or later. diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/Rd.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/Rd.rds deleted file mode 100644 index a18b569abfb0d479d985e2674aea9a9fa5b84e16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 909 zcmV;819JQyiwFP!000001Fcp|Q`;~QHc22Rg%&3CHSNKdP9HO5Xb+uUnKn?SQy{^m zy(*59sMwN`6(F4YqkAr0KV(aaox)5HiLGzfyWf5*t^K2ASys)eHkA_+w?rfafQrb%Y2gCV&L<%1j5rG%tzEC6-ceJKBkx>fgR+e4RwyVn6NR6WAybVJeyB$HvDBqTY4r=auYa^z|nTXMmOCFW~S#| z&KZxk3Ee(LoS=b^Bh%;galBWOm?zU9Kzs(Vf%-5?YA)GB{fa$Q-RZksS9}Oh-fjrWiD81zG34*YY&Yr$dO{8tA3v^Ue$2ZL(K5YQd;VUXJDRYPHU zz^>lysEhXosq(S0ehBTw+=o<=dulMqXNnFdvqk4qIb+&Ux{XRqPt#}09Ma%#=I2z# z3;G3zJ>P@pQ&30&nxNPi3s+zEdh^I=2U&hk~FuyaO^y zMvH3#@`-yF<6cKsdp(9s#al6$$}9=T2&g+3C>JP!bdlBAy5EH+cH(CWp7>=VtB|hq zngSiD>{Ef|362qOq=w0~RKpl@CYV&v7*LjRhHPW6TNT&a`d9h=54>#9=HCLw%nGKy zAaS$c^>@2R?D+E_!Xh$plD&2BkfJhH1->ZO!aTR*)~G4AWr_kU3D|P}>=8fzo;m~v zdGF4`e6+hn%dTa=<3@PfaPoOe68SRgZdN|BKMeHwlcFFiKGRVM4z3fOr>+q}n jg1?)ao8KmD&qt9dTPv2cGvYB{%lh*dU5$w$SPTFFn=7)h diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/data.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/data.rds deleted file mode 100644 index 563979f5e99dd4bbc06127c3c3129b1692cc8715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmV;s07U;EiwFP!000001B>8dU|?WkU}j-tU}6R_1%Lzx0}BHukQVSrEXqyHvry20 zFf^g!a(<~L8L34%iFql-Az=y{;fZ<0NvWyXzNwj6sYNhVf=T%mMg|HRAsMAb#U=T9 zsVEX=SR^D|D-v@Ha#9ss5=#;l(u(qP6(ANv<<;F1lS}f86ky80Dqxl?09~U1aRF4h pG^TNID~VCUz`_Jn!U$E$oRXOfqdX=pj`i9GITxLD- Omz`nmEYF2?K#KrIHYk|@ diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/hsearch.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/hsearch.rds deleted file mode 100644 index 16484d20515d0efae5f88daaceb0e4af84f74bb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 929 zcmV;S177?eiwFP!000001MOJfQ`0~Y4lR%Z#R1V79ev1yj`~2Spdvo_z(~Q43I!tg zdQGq8B*~S_6)FFi|DC#*Wb?CNRd71ULnq&UySI1u-R9Wvd0Nx7f>s zftrJ-31|wQGneM=T$IK>zGa4{Jhj;Vm+Eai0iAnl|;aG0z(6g#4U)J;x!U54mCKEzjTcfRo$J zoZLkfs&6(nI4E&ls`Rohkx3iUx=T5)HeOIy11_<}9C*yC3qkE&Z6Xs=f)JND)YF0+ zU-`bPlJH~0jW<$C>mOLNL83D$)Yn5az6FUwJYh0v#|G~*3ummk7H`411T*=6U%vf* zDfnj7KK^xO%%7JrT{3!L;r04=6*ST0r_0r(ffxDU+M3;hcZLcZQhVn9pBLPM7rcW5 zT=#=9=Lh79RR?|HhK&5jJ=k%A&_RI?m1f%9!D{GwkxSv7R912tZBm^`x1X6L_N$vG zHm5uWH(G)yH6ejbg_*H;;#IjV>eSI4nrQ1C%3()l+Qh*{t8K;**%EWx99Cdv?8xs} z7IBXQz@@dsb0d#itb+$czhC45*t+6ba;0X_1q;({U#$vHiHL z;C@^va*|5xTuxB+V~?Z{!hwp)W?2kaRdJbe#L+(isrCoD8U!6)wpDRN^n_MkBX^9(W9KmIq%=#|ga zmSTCxQqIWPI-u#&&!u0^}@LdkyuimVai?-c+5 D12M)v diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/links.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/links.rds deleted file mode 100644 index ef1b5f7d670c5a942fe07b8226ea4264a808acb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yj$iwFP!000001MODNZ__Xs&DuiOv7sS$;e-T2LP$$14%03ixUluWv_iCT zb+WICS!`#HTW$N}C!EH1?X;Hm1HmOy)%v~fy)X82Dt*7Uf*|Mw-QGsf=~l~K`Sm5} z1q1mz3d5oN9G!mUOdx?79cF^$!_g?TxNuAbXJJ)QzPBEqBpx9f`emBfFHmxcQuqtD zcOKg@;snvhDfd0f6DE~8zQr^>2b^ZYHhuJ%ejs|mNcdAA?&v>w^iekBrC=2PjrfyC ze2!=t16+Ow{2Tbw9Pd32NHWM7z0W%acz&N7DmbRXdD;Jq$#(-9m94lHx8hdZid%6j zevmlmb)==2-oBC}zfUn%%{&9tdXuY4V!*8`+(SffMj zTA3MDVcVVy6*n*wnm%33u0M}#aG=0TciK|y&IyPNcrII)(V5tI?QDb}eb-?-`STV`eZlkia+ce@_a5_PW@BRRM+|sRE4*&q& ClMw&_ diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/nsInfo.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/nsInfo.rds deleted file mode 100644 index 9e08336bbc2c101f8d6655dc4594b9138e8d2e6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmV--0f_z|iwFP!000001AS86YQiuSjDad5LcoRi^@S)Uu z1MgRuSAxyf8cS_mz@0M64NMP5uz5rRzB{7xK3p0YH_Dk>ec8*3&lVD{rD!fek*oa^ zOAn@svc``e7m%PPG7s?b+7+(|d$(o-Elzesz(jc;+TdZi&9ACu$CPgcbdU$w*;!d) z#)P}Lf^KoCh3nA~t`4CmcOT`R)DYWk4|&`4xB8zneo>24lXlcd%H3kskufYUw``O7 z;zbILHFf>ppfZzT=9{3}H++9(9DzQtvsRRWnEpOpfaZJ!ZX=EvQD&-%Z5);lk5;+6 zI{WaUgA1%Rk=(M=F6OnyN|Av4AbKwBh_6RyB?9?(_Zl?yg^#Ez7d4vQx6`vO1R6)z6Yr zt*Q5_ z+NRc(#~}3aS-anz0yfbPbVVXS-A?PIH#pIN7cB-99Ra5p^H3m6LzUnqaEU$vrJMvK zjeOb1X@uG&%8c)l;q>52d9!!-fd*G@fDbkF)kw;uQLWzI-nv4S;if@^T?o@E2LYG| zqv|lh8vHzCc1tl^-$vd}qwY1lIyygV?W05m)F7KOeR5iUvuAoRyZQ#zb{pHZhWA#R zHhlEjRSnxm`$(a7wrYFoi@e>20-69RCEt}tTj5Lk-U7w3V$ZVj^RU>*!8IO&5x)Qz z_w8OdBQi3!m17VACrNG`7LOqT8k&|Yb@AP}%W!DST@nBl#=)azDo2cKY56lIR5hG} z(Ui~quJNSPGM?6Y0HJ8HI3ZDf9+!Pcm>_D-#s+zeB~<(AWkiBJa^WZ?kyMADit=nT z9K9hW^*qU<>&Kbuiqxql3qxJmMDj1hSV)L3ZVIHWCez&K)ijMk4c$yVNoC^Egt6x2 zrw_Du4(8l9yYx%j9BnK4Ge#A0YSm(MDdWjB=5!#(3FOEr&xKHKiVFMi;4l2y*6fpI zW1DR3f1##Ok0IU3hS=o55;JH;PIX%UeL;AX=FZY*H&&v7@tg({a H#0CHWnG|Xk diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/vignette.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/Meta/vignette.rds deleted file mode 100644 index 01c732c14286676a00fd2ae0c4fc2f46e0689f0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 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 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/R/GPArotation.rdx b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/R/GPArotation.rdx deleted file mode 100644 index d3deda06e89b397ebfbe28de7e4963b4af82de91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmV-01JC>)iwFP!0000019g?lPZL2L$7kDxLIDB6L>@j+zz0}^fD(K*1_&l#OYsp8 zHrr*|ZtU)s-K7x@UObo>FGeqVFdjUZn3(9rs|TYu{{j=AoHWtI7>)1W?#}LSrqL$t zcRt_W%x`9XvpYQuRF+62>NeZpC(3jbzD-`7MAD$UIQ}Yfv=?-U;}e9)CUWcv z@ECH#PePw3 zkU`}2z2bZwwa`C~+}R>>SEsoCt{) zCsQx%K;iJaz@fUq>F_EUtGyJg?*# z@_}y9Rpf&b=tqt}iR(EGb4!!RM@r&;lUISEDZBfUh)n81YYauFHZO|qiT_sOe2U;trA8I$1=;y0T!sKYerhcAWfZSW0 zkhp94r@(h&h37L@)!yqS)*r1fS2mk=vk(9y! diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/Harman.rda b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/Harman.rda deleted file mode 100644 index fa058b602914103ec0aaa80630ca97a39bec245c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmV;<05Sg`iwFP!000000}FDAFye~fVqjokVqj)uVqjthGFg~_1S10r11FGX_ed@@d2w)}(rOSP93SN?vn zf7-~Va#vs4{xK7e=dL(Y`zKp0BLtHC_TL1OzL!4jzX#M@vL|c*J&~%1?(0PM-(30o zc}};B{R0Ltu)phn-#R5q*8Wab-Ot-f7wxY?_-M{!PRYy#QoLXvFfedH>3<*$0P%u} I(cJ(50Bp8o+5i9m diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/Thurstone.rda b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/Thurstone.rda deleted file mode 100644 index 01c2f93296b2acde873854e568d4ca8a74731e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmV+v1MB=BiwFP!0000018q}jNK{c2evT$3B_a}GV!IU)rC|~!AEIGq8fL^GAtC;# zNGl67vmhiQLL#DsRwA?o6NxfW>1b}1x#Sk^Gdkn;M#U`J(7N}&GZfK8!*+bJbljiDT(oC-6(aj|OTr@Xro``djj%EaH6z85|vkmrz7uT8Q@5JyX zwP24d^vSgDfZo_CPcT-rwE9-wAjT@Py;E~@peHBz70eBUzP#CfAnX$KoZbCflM~=r z^X2uG{cGV!lNa*g(A0w6?3EPL@(DvzkADsyxeQxWX<{(WVtl%I`~7#7m>A7yo0%?# zjq``n-#p)9_JSQ*<5v%!pkc0G=Mj4B!AB2RH~8LrmHw9AF`l~U+J}>Op1~qO#(!<1 z9&szJXc={fUqA1@vKL(76~AQx|mPDQIDLwo3hkJSmp)>jApc>+2BEqxe5Rc z^Y_aOWWs4!10?Xzs8qBf$TlMh)x%=&pdKaDYFNT9g+$jrLeY_W1_p&9=Sr#-aK?;lQoJ9;5jywQ>Ai8o6VQEC zv!QdZ9KG`36ed;r225C$xv5{lb;F=hhZ88++Fx9T&0-t*pyi13xtzUZpyzQe+`@^LZQ3 z7Dr6VuO$W(M-1?caYPsETp~w*>ItDOOI S_5EX1ZT2_Z8Ggd#1ONc94}p6C diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/WansbeekMeijer.rda b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/data/WansbeekMeijer.rda deleted file mode 100644 index 93eb86e7d2bd18eb9f8852fc938d21b0e18dd149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 358 zcmV-s0h#_EiwFP!000000}FDAFye~fVqjokVqj)uVqjthGFg~_1S10r11FH?^-C?u zNG-}q%u6W_2?MI*0}2}2e_#Lu`=@FzE3W+gV*j{RZb#tjR{I-} zCOCG&!w2SHnEPSwfte3e57mzrSIA^* zpho!l7{Zt#VMYj1V. - -Rotations are computed using the Gradient Projection Algorithm code, which can -be called directly. Examples of this are available in the help pages for -\emph{GPForth} and \emph{GPFoblq}. In R it may be most convenient to pass -the rotation name to the factanal program. An example of this is - -\begin{Scode} - data(ability.cov) - z <- factanal(factors = 2, covmat = ability.cov, rotation="oblimin") - loadings(z) -\end{Scode} - -Other examples are available in the help page for \emph{rotations}. - -\end{document} diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/doc/Guide.pdf b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/doc/Guide.pdf deleted file mode 100644 index 602147fa736083c04a2d9f92d156983902c8fb4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59608 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 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/doc/index.html b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/doc/index.html deleted file mode 100644 index d6a695f..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/doc/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - -R: Vignettes and other documentation - - - -

Vignettes and other documentation - -

-
-
-

Vignettes from package 'GPArotation'

- ------- - - - - -
GPArotation::Guidegpa GuidePDFsourceR code
- diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/AnIndex b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/AnIndex deleted file mode 100644 index 585ae15..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/AnIndex +++ /dev/null @@ -1,61 +0,0 @@ -GPArotation-package GPArotation-package -00.GPArotation.Intro 00.GPArotation.Intro -bentlerQ rotations -bentlerT rotations -bifactorQ rotations -bifactorT rotations -box20 Thurstone -box26 Thurstone -cfQ rotations -cfT rotations -echelon echelon -eiv eiv -entropy rotations -geominQ rotations -geominT rotations -GPArotation.Intro GPArotation-package -GPFoblq GPA -GPForth GPA -Harman Harman -Harman8 Harman -infomaxQ rotations -infomaxT rotations -mccammon rotations -NetherlandsTV WansbeekMeijer -NormalizingWeight NormalizingWeight -oblimax rotations -oblimin rotations -print.GPArotation print.GPArotation -print.summary.GPArotation print.GPArotation -pstQ rotations -pstT rotations -quartimax rotations -quartimin rotations -Random.Start Random.Start -rotations rotations -simplimax rotations -summary.GPArotation print.GPArotation -tandemI rotations -tandemII rotations -targetQ rotations -targetT rotations -Thurstone Thurstone -Varimax rotations -vgQ.bentler rotations -vgQ.bifactor rotations -vgQ.cf rotations -vgQ.entropy rotations -vgQ.geomin rotations -vgQ.infomax rotations -vgQ.mccammon rotations -vgQ.oblimax rotations -vgQ.oblimin rotations -vgQ.pst rotations -vgQ.quartimax rotations -vgQ.quartimin rotations -vgQ.simplimax rotations -vgQ.tandemI rotations -vgQ.tandemII rotations -vgQ.target rotations -vgQ.varimax rotations -WansbeekMeijer WansbeekMeijer diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/GPArotation.rdb b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/GPArotation.rdb deleted file mode 100644 index 4a4c7932709af35d35b49cf1a30da39628295fcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41858 zcmZs?V|XQ9&^8*|b|#+K*2GRGwry)-+njKciEZ1qx#MJ_9XmPudEf8)&X03`b@%FZ zE!3*6zU!_kFfa&8uN=R`enkjYv~bJLm_Cx&D5?B@Mp#V22@!Z2c&mYCH+rtC7Bl{# zA>2C&FAUNj_Ra(au&B8+U#0AK?&(xuEMqZ9S|kguq`v~Vb6!$Jzz6^2lUy@9VqjwU zP1kP&+fi-r91N*_*$6#xplxiu=#fa{Dj+Mf2rle6Yr$_9=PbJ3)~+1HR)dLW(&L=s zEm+y!8Y70?Xp;`d4GL#_Fv?;A{w#<{HqoK{OZvTwFLU+--`duGMOpYc9R8b)O=KXYc9TI+t|!J(jbc%hi1EA zPVP)p6Gjk;IhF)MY)#f=-%v|O_BG*pMLyclcDNCrk!#8*pf`%@{O=Rx+ja}OD4z`; z!2;m`7s_xk?PqcY{Pu2HkVokLxnss!JkOp1*1mNrfO%+7lu2yAHggn>&8_%@e)D5| zT%PBFcI5e=M~>q-22Ft~>u2738rwI_d#HDr8cn(TtY1RdkKD2erLYT5-u^;U?pAz4 z#tfr(99+MomDVM6PjnU9Mvs2p*7VFI+58a%b~ovpelRy38y*~5Be36Cu$;!2Q6|QG zt|rnb!?)iYOnmC~G4ksE(Fbn-YeUq|N=by05LrsS(=Yk*Lvz>4;&aMgcFACn*!Kxd zo3r{O1xT=oH=(DV37)dj1~hEbxm^6Ip0!Amw}FO* zPTx40+841~-)BR-{`=Bg47H0OZH4Wp_12;r{6~0ad;$HZVnYTR-PexUn=B5_%RpBkOeKA zSy6Tq2`(xrx7y6us0dO`Ud=wKqa&UcCrW=jEp)3N$`ReQF>*|hC z4h$_37e6v*;?C**^V12Z2MGZ$*@_t*UICC+X%kBPZ?9mvTkYj;n3IMZhahfEJyZcS8nVMQ!NbKAafe*o4NYh#=P; ze`OnyRi&Q&1>Zl*MXQNAl0taz)XQ+>8x8h(np#%5)7Ku=rK1dS-%{OprBV{Alf612 zILUwg6I$dC&cfi`&dO;R_3V|5|4y++W@`_&N6Iz3X}-X{_Z7Xsz}42ga+dX<0+yun z>`R@=@#@A4tW*fIS`<(Yf?#4<=S>AJu83QGTs+&W>qRNb?UAM~4Q4z$TYY%1!g_D~ zH+lVvOC8pmG8wg(7j9mxb_f{&Y5(5nBCb)7T-vYnlpHl{I!B8I-?qLkJOX0sCWp~c zeOyDB;u$mJ_sdH94VH-2HFv$gQYIffA`D*b3SKFs%G(*{|&IL%xcN+we;vAB5QhDo*L-p zVw2Gjc0%)I;r(sjeBaH5)xFJqjvy$;nEE>XYI#DMmEK7HyxoEB8`|0DDf8)&->t!+ zUQe;)2JRVheKi!JyRZZ2-$vqFl_&4}KNl4LHgLo+v!x8%w9xFPPh35bHdx<;LuPJZ zhY10;fhYOB8~9W3b=v!-$0_o(@+y{`IuXdfeP1^cHH5 z@ZR-m=h2%xGQ59N2=8tQ_`Zz1*>mYEzG-8+ihBEAU5B~=>6Jo<UZ4r!Wy1Mb@g)W*ywWXiGu?Pi_G+^m7MG6`@!4A40ef;^T&IvUa#gcx1;KR z@=6Mdia5WW_(EW4_Ar4o$qU|jFTHM8Rhi3Y0@#=}&%Wrrsx3B;_jk2O}?Cxz35G(yeGlw-iiPXQz(=kgxj6#`ax7<`@P#4>M5 zU;>(Api+@}9y(sQ6NWDv{c(Y3iD)DZ`|&#D;Dt=TK*;orHPZZGpC90j^35`0nzzzL zN|{r4iK)m{7)bd%-gMCbi$gXQa?)smi{VZe>cwW7F_$Abdbu!o?t#=k*!NRd(PsD3 zVVGm3P5nSJO!Zo_{xW=~(jg#@(7-cJZ+6N&VKunG?@3~l5s||oDtyYIOX?ZoJ*+5k zeeD_dKzuM5DfpkAQYahzAzB#USz5VXI4`AN3f(AXr&VU-(3>w79~XTxjhKQ zfGjLat|>aU1{4Lq#4IJn4EJ%?^RjXb#FiKdIHvVHV_=q<@!W=~vaDAm6gZ=`sB@t6 z6(-gGvS92{0Hw59v7@pO$?~Q$ZIC1hOHl2x=lc%vN zk5`(*O&dFOFFR&jrlu*1rh5!yu}Hv}f|*N>>R8*Nf%L%IhJ6-{2argL{L2egr(+%e zg8r~rRW$u6Wu^Y@+q05lPGV$36jVx+`}DGQt>>*HoQ+r2^yms(JUx8I_+1RN&UY6* zXIxE_R2~Vs;e}f2ty(Mt}R%6%LlbX(PoQ!9|1Q-u@t9phb2=AT1j z#9>Nnw884uKH&kfi1!b3qQB^ZuhSLUH*`uan9~d~)aT@OVqS#rEk$N=Tyo6W*d{tX zP;sFJ26j>myN*oOO>Q*dhbeuofRhCmfhZmbhQP^uzE~%LC_G4z=F1`U2gc(>`W*K#Iw z1r|MWOEtu7TvkcLnNFc;Dk*tW{HVmIEdS+&?uGx}P?WP9gPlM5PxmUK(JCi-g1!$Q zh%aM9%7QS-DREaK(mg#irFXDrUYR}eTQ5RGAtYlhXYfA!a*ij~>XnJY3Z67@QfKDZ zq+GDQ4YHEZ$ZxR+Vi>wI&t4GzsMK}f9ehZ3s;K!!724Y8C?mUUtl%! zs*Tx8s_^`JWS+A|`FpVM0|0-uh!dlLF%K&M=Kn(j`D~hib+drcOEPX*VcE$fE-QH> zq>t7~o8A<$zaphMAzPpGi5q!?L6NH0h``~S3OphJJ|2o%Gd;Nv9zX?L`h`qsLga<7 zr%`KcX=UKatN3UDz60Hx-A+PQo{dbFcYoW0rn&d(9qss|ir zmS-5KSPaeSL+n5)In|4aE90}qNs}Y==>p(U>>|@PDald0keO^zd=kz{6-?>%DpO`F zO3FNiPz9BAzf0Klp7`&v-dMK8%AUj$R*}OnC|ED|V2Ne=A88xTX!Ax|rB#Z!}KUZ~GH{v;3 z9;A}f@7eS`vW;Vp*gZN7t+D1`VbG+-$3Ul3z+awrUqT+pJitHpXbyTi{!WOaYyy;#+BAk%KQq_MTfBXQB{NK}b0= zGkg8Vv|i4)&qPiTdY{H<`C|tueKJ598Sg3Cs;-iJNlxrGssLEtA(G0% zH2#7&krtSeJv3Jo4;&F}1}70Av+XP-bKs=GGFPJK)~ArC$T zN#OGIkqE3K?CNA+4v4j&EhmDy0?+W{6g68*iX;IT0HNMQHW}okmxYW@$FRroCy__l z&I#+;9^rskUcr{)QI;2YK#pf?8T?I5KgFj~mq#QZQCk&wGt+z>;`HS)U$b}7`oCD^ z!o(SH&}d6A?9$@gEN&GtlCoGToCrvY5;6^)DHm`sFFYQ6KSpuo8I&q zob)71;rO2I(G`H{q&+!d(gY#Bq6%FG@{B4F?xRrS8?7$ zOsuDYh+YX5JRz8-jZ{uR=?Od`h{n72`tk0b2MF~He}-LU!;tMva8Y#2PzPlo%WjJA z1R>C0etB67O=g_ZM-OONB||=Xkd>HsXE%`XCB$=M$Ix46&TH5Db*OHp>3SOv8CkD> zWPIwqBuaZ5|Kjud-kjB>nZHPjs2-3XQU=r(wh%~lp7ee$rAjxf^wXYLBq!V$JE;b! z(J6)~euLxUR>M-bd*X*HIYeK=3`bE&`Bx((JL|1%Dk%Dn0kRhM`>EpcV2(kPSv=d_ zyx9__X_PxKGe=pS&PCF>rso!7m28%OYm!%xEiz}MPO5P}ws+iEDtnQ(A2t5XRleJA zHxU_ND;yGudNR=jRL&!|*!}LX9PCihR=25flQ?O46Yd)FH{$AQ-gl4jK<3wt&o53p z;7Lv*k7+T8qJCga24O+Hm6wc0Ea$ZF<7!(=**e4-j%d5`Jr>>K6vM3{JKxlxY@q}z z46)Yg@E9GLVR~~CcAi?8RjgOrH+2KXFw`{$6||U=L)s*+

OEheJKE$D;%URH{r0etcg{@gyHR7Y1zBJ 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 HM&|zmVGITl diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/GPArotation.rdx b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/GPArotation.rdx deleted file mode 100644 index 6825436126898343decee1ae7882f00c6267c4d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZINJiwFP!0000017*@nPr^VD0N}y$2>6Hw4_>|K2?U=AiHUkp528^M^k8(Y zW2wTHYzqgxm}oqE@CTT9_D6UzG4cO+Q>UeMSZ&hoelxpMmg!*z00zK_$6&zlr&)R! z;W$M1aFB=C2n{>zxCt=%!Je)Fr0eYB3$3|fFRf7761#E>kQ!sJKhb)Ny){9W?CJx+ z=sWuq0kW^`b`c=)#=icd-*iVcXbv%mLz>2f6isw#G8!DN7aT7X@*BIW%JGC}J2Jl| zJ>`TsgA(C1+qWjy66Te#Fia&kg=z{JYOLyz8g|!~Rt;^d?uCh=Jt5DXW`5rjDvG5K z>TTtEj*M!J)P!`;5U;k;zC;y9Q)t$);Y6=6(C$QUYbjfL{RfCDNA}PA^}nJ1s*==_tN)wb%I(=@MXLDQn9B~2ww%e^*0CiotMTRVyo^{pe6EzTPB go%RA5g%_w$njA5mW=o;#;<;b+2VC1(`NIPM0I2BJKmY&$ diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/aliases.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/aliases.rds deleted file mode 100644 index e308c4449b337df55456d9d96cc04b7540263065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmVQ90;XWz=h0mp0NQ zH4O~<;~i5-LRvu_#giAvd%M|v+1>7A6CqSZwR#0rYx!|k{hXpY+ED*{7dK~uODqXz zhbayRI09|j?{wOZwcTY>aBbT#Z1xMH7Y{`yIfI47(ik3uF(jO6SOYTpxu7p0RP6+!K>9e8+&Wmo zcr*e&KI*vO*nGTU-=7_g|Kcs;K`tzPH828B3G<84glR2$k#})(&V%H|g+j)2_l7q` zC+6{l^*P03zl2TBbsC14QmcLY8e|M2QJ-MeyI;0KJf(`LXaz`?Zi$1bAsbSP#p@i0 zdYVb!IosB~4Ao9>G8)3>{ND1&2u)q#dyA!bQUwIsHTBZ4J2Q(2tXK`L-tyk??y+$4 zZjK_qt;f?mU_$AEG#$>lu0Y~$OYNSx6`MGtY%njUR2$5UZ0013D>KXt5 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/paths.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/help/paths.rds deleted file mode 100644 index 1098d22fca01cc108c4354e2fd3d05328df7fc5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmVhiwFP!000001C`RfZo)7S0N^8pp$H^ifd#2mi9teTW&#FKl_J4v;7DA^ zIdTjG505x1kkiR9_o0U&^CSb?B=D_a~I5W*Yhp|DvlVh#zNbvhQ~?~&0~ zTBS*3l0>f;mA0ZOS)-$Pd*>Y==iZ(EdgAn>@8)u|mkB!k?$Z-#I5{xzfw^XIP-jKS z5>=8~XNAwklD0aFeylVl_UU7b^k@pJsdTTt&nzVsYsCEw)h`+cKYS23DIPSv@LZ@) tFU&7DitNAd@%$hjO>r|225c&KTiYp~5f{zBO@KD9%N42C1VP6F002SSX{-PM diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/html/00Index.html b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/html/00Index.html deleted file mode 100644 index 37ba315..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/html/00Index.html +++ /dev/null @@ -1,140 +0,0 @@ - - -R: GPA Factor Rotation - - - -

GPA Factor Rotation - -

-
-
-[Up] -[Top] -

Documentation for package ‘GPArotation’ version 2014.11-1

- - - -

Help Pages

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GPArotation-packageGPA Rotation for Factor Analysis
00.GPArotation.IntroGPA Rotation for Factor Analysis
bentlerQRotations
bentlerTRotations
bifactorQRotations
bifactorTRotations
box20Example Data from Thurstone
box26Example Data from Thurstone
cfQRotations
cfTRotations
echelonEchelon Rotation
eivErrors-in-Variables Rotation
entropyRotations
geominQRotations
geominTRotations
GPArotation.IntroGPA Rotation for Factor Analysis
GPFoblqRotation Optimization
GPForthRotation Optimization
HarmanExample Data from Harman
Harman8Example Data from Harman
infomaxQRotations
infomaxTRotations
mccammonRotations
NetherlandsTVFactor Example from Wansbeek and Meijer
oblimaxRotations
obliminRotations
pstQRotations
pstTRotations
quartimaxRotations
quartiminRotations
Random.StartGenerate a Random Orthogonal Rotation
rotationsRotations
simplimaxRotations
tandemIRotations
tandemIIRotations
targetQRotations
targetTRotations
ThurstoneExample Data from Thurstone
VarimaxRotations
vgQ.bentlerRotations
vgQ.bifactorRotations
vgQ.cfRotations
vgQ.entropyRotations
vgQ.geominRotations
vgQ.infomaxRotations
vgQ.mccammonRotations
vgQ.oblimaxRotations
vgQ.obliminRotations
vgQ.pstRotations
vgQ.quartimaxRotations
vgQ.quartiminRotations
vgQ.simplimaxRotations
vgQ.tandemIRotations
vgQ.tandemIIRotations
vgQ.targetRotations
vgQ.varimaxRotations
WansbeekMeijerFactor Example from Wansbeek and Meijer
- diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/html/R.css b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/html/R.css deleted file mode 100644 index f10f5ea..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/html/R.css +++ /dev/null @@ -1,97 +0,0 @@ -body { - background: white; - color: black; -} - -a:link { - background: white; - color: blue; -} - -a:visited { - background: white; - color: rgb(50%, 0%, 50%); -} - -h1 { - background: white; - color: rgb(55%, 55%, 55%); - font-family: monospace; - font-size: x-large; - text-align: center; -} - -h2 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; - font-size: large; - text-align: center; -} - -h3 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; - font-size: large; -} - -h4 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; - font-style: italic; - font-size: large; -} - -h5 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; -} - -h6 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; - font-style: italic; -} - -img.toplogo { - width: 4em; - vertical-align: middle; -} - -img.arrow { - width: 30px; - height: 30px; - border: 0; -} - -span.acronym { - font-size: small; -} - -span.env { - font-family: monospace; -} - -span.file { - font-family: monospace; -} - -span.option{ - font-family: monospace; -} - -span.pkg { - font-weight: bold; -} - -span.samp{ - font-family: monospace; -} - -div.vignettes a:hover { - background: rgb(85%, 85%, 85%); -} diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Harman.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Harman.R deleted file mode 100644 index e513bfc..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Harman.R +++ /dev/null @@ -1,181 +0,0 @@ -#Example from: Gradient Projection Algorithms and Software for -# Arbitrary Rotation Criteria in Factor Analysis. -# by Coen A. Bernaards and Robert I. Jennrich -# Website: http://www.stat.ucla.edu/research - - Sys.getenv("R_LIBS") - library() - require("GPArotation") - search() - Sys.info() - - -fuzz <- 1e-5 # using eps=1e-5 these tests do not do better than this -all.ok <- TRUE - -# quartimax (orthogonal) rotation of Harman's 8 physical variables. - -data("Harman", package="GPArotation") - -qHarman <- GPForth(Harman8, Tmat=diag(2), method="quartimax") -qHarman2 <- quartimax(Harman8) - - if( fuzz < max(abs(qHarman$loadings - qHarman2$loadings))) { - cat("Calculated value is not the same as test value in test Harman 1. Value:\n") - print(qHarman$loadings, digits=18) - cat("difference:\n") - print(qHarman$loadings - qHarman2$loadings, digits=18) - all.ok <- FALSE - } - -#qHarman$Th - qHarman2$Th - -# with eps=1e-8 -# tst <- t(matrix(c( -# 0.898754567491920398, 0.194823580226859222, -# 0.933943406208487592, 0.129748657024604030, -# 0.902131483644799892, 0.103864268239045668, -# 0.876508251941102934, 0.171284220753554678, -# 0.315572019798302239, 0.876476069451083251, -# 0.251123191235179066, 0.773488941629975613, -# 0.198007116064591759, 0.714678376605717203, -# 0.307857241091366252, 0.659334451631046314 -# ), 2, 8)) - -# with eps=1e-5 - tst <- t(matrix(c( - 0.898755404698461491, 0.194819718009510034, - 0.933943963768413821, 0.129744643590955028, - 0.902131929972106672, 0.103860391510923730, - 0.876508987992224209, 0.171280454135453869, - 0.315575786273609882, 0.876474713336210853, - 0.251126515144778573, 0.773487862471829213, - 0.198010187248201075, 0.714677525703678707, - 0.307860074444663512, 0.659333128670876345 - ), 2, 8)) - - if( fuzz < max(abs(qHarman$loadings - tst ))) { - cat("Calculated value is not the same as test value in test Harman 2. Value:\n") - print(qHarman$loadings, digits=18) - cat("difference:\n") - print(qHarman$loadings - tst, digits=18) - all.ok <- FALSE - } - -# with eps=1e-8 -# tst <- t(matrix(c( -# 0.790828307905322436, 0.612038060430562525, -# -0.612038060430562525, 0.790828307905322214 -# ), 2, 2)) - -# with eps=1e-5 - tst <- t(matrix(c( - 0.790830938007507367, 0.612034662000581764, - -0.612034662000581764, 0.790830938007507145 - ), 2, 2)) - - if( fuzz < max(abs(qHarman$Th - tst ))) { - cat("Calculated value is not the same as test value in test Harman 3. Value:\n") - print(qHarman$Th, digits=18) - cat("difference:\n") - print(qHarman$Th - tst, digits=18) - all.ok <- FALSE - } - - - - - -# quartimin (oblique) rotation of Harman's 8 physical variables. - -qminHarman <- GPFoblq(Harman8, Tmat=diag(2), method="quartimin") -qminHarman2 <- quartimin(Harman8) - - if( fuzz < max(abs(qminHarman$loadings - qminHarman2$loadings))) { - cat("Calculated value is not the same as test value in test Harman 4. Value:\n") - print(qminHarman$loadings, digits=18) - cat("difference:\n") - print(qminHarman$loadings - qminHarman2$loadings, digits=18) - all.ok <- FALSE - } - - -# with eps=1e-8 -# tst <- t(matrix(c( -# 0.8918217697289939627, 0.0560146456758183961, -# 0.9536799985772628219, -0.0232460005406671701, -# 0.9291498623396581280, -0.0465027396531852502, -# 0.8766828510822184395, 0.0336582451338717017, -# 0.0136988312985193428, 0.9250013826349388069, -# -0.0172668087945964319, 0.8212535444941218010, -# -0.0524468998178311899, 0.7649536381341245361, -# 0.0858880630098148856, 0.6831160953442911854 -# ),2, 8)) - -# with eps=1e-5 - tst <- t(matrix(c( - 0.8918219293548808047, 0.0560145122875230911, - 0.9536799846795966928, -0.0232460559140742311, - 0.9291497958388006406, -0.0465027685653178480, - 0.8766829604751505967, 0.0336581364763500201, - 0.0137008854716444972, 0.9250004106413580729, - -0.0172649861805529957, 0.8212526839806429946, - -0.0524452035885302342, 0.7649528396536503516, - 0.0858895830186393733, 0.6831153711863455769 - ),2, 8)) - - if( fuzz < max(abs(qminHarman$loadings - tst ))) { - cat("Calculated value is not the same as test value in test Harman 5. Value:\n") - print(qminHarman$loadings, digits=18) - cat("difference:\n") - print(qminHarman$loadings - tst, digits=18) - all.ok <- FALSE - } - - -# with eps=1e-8 -# tst <- t(matrix(c( -# 1.000000000000000000, 0.472747617396915065, -# 0.472747617396915065, 1.000000000000000000 -# ),2, 2)) - -# with eps=1e-5 - tst <- t(matrix(c( - 1.000000000000000222, 0.472745958387102538, - 0.472745958387102538, 1.000000000000000000 - ),2, 2)) - - if( fuzz < max(abs(qminHarman$Phi - tst ))) { - cat("Calculated value is not the same as test value in test Harman 6. Value:\n") - print(qminHarman$Phi, digits=18) - cat("difference:\n") - print(qminHarman$Phi - tst, digits=18) - all.ok <- FALSE - } - - -# with eps=1e-8 -# tst <- t(matrix(c( -# 0.878125245495924522, 0.836723841642554422, -# -0.478430823863515542, 0.547625065922776710 -# ),2, 2)) - -# with eps=1e-5 - tst <- t(matrix(c( - 0.878125280760480686, 0.836722770276292271, - -0.478430759137962514, 0.547626702874473570 - ),2, 2)) - - if( fuzz < max(abs(qminHarman$Th - tst ))) { - cat("Calculated value is not the same as test value in test Harman 7. Value:\n") - print(qminHarman$Th, digits=18) - cat("difference:\n") - print(qminHarman$Th - tst, digits=18) - all.ok <- FALSE - } - - -cat("tests completed.\n") - -if (! all.ok) stop("some tests FAILED") - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Jennrich2002.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Jennrich2002.R deleted file mode 100644 index d77d8b3..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Jennrich2002.R +++ /dev/null @@ -1,120 +0,0 @@ -# test by William Revelle -# from Jennrich, Psychometrika, 2002, solution for the Thurstone 20 box problem. # Specifying 27 elements to be 0 as discussed in that article (Table 1 at -# page 12) and using vgQ.target as revised or vgQ.pst with a W matrix -# and Target as specified does not yield the reported solution. -# The solution is almost identical for the high loadings but differs slightly -# for the small loadings. The two models have a factor congruence of .99 for -# all three factors, but do not agree completely. - -# Jennrich (2002) apparently was using the oblique rotation option. -# When running TargetQ the results are fine, or when running -# the vgQ.pst function with GPFoblq. - -# This a good test case for both TargetQ -# (It could also be adapted for pst but there is already a test for it.) - -require("GPArotation") -data(Thurstone) #the 20 box problem - -#solution reported in Jennrich 2002 - -browne <- t(matrix(c( - 0.013, 0.994, 0.007, - 0.991, 0.012, 0.001, - 0.018, 0.003, 0.986, - 0.772, 0.477, 0.002, - 0.003, 0.393, 0.874, - 0.409, 0.003, 0.816, - 0.548, 0.730, -0.020, - 0.023, 0.870, 0.405, - 0.799, -0.024, 0.453, - 0.664, 0.621, -0.005, - -0.058, 0.915, 0.512, - 0.639, -0.018, 0.644, - 0.046, 0.980, -0.003, - 0.971, -0.038, 0.060, - -0.026, 0.025, 0.965, - 0.380, 0.281, 0.726, - 0.490, 0.652, 0.286, - -0.025, 0.971, 0.019, - 0.957, 0.061, -0.045, - 0.028, 0.000, 0.976), - 3,20,dimnames = list(c("B1", "B2", "B3"), NULL))) - -#a simplified target matrix, with NAs for ? and 0 for 0s. -# (compare to pst appproach) -Target <- t(matrix(c( - 0, NA, 0, - NA, 0, 0, - 0, 0, NA, - NA, NA, 0, - 0, NA, NA, - NA, 0, NA, - NA, NA, 0, - 0, NA, NA, - NA, 0, NA, - NA, NA, 0, - 0, NA, NA, - NA, 0, NA, - 0, NA, 0, - NA, 0, 0, - 0, 0, NA, - NA, NA, NA, - NA, NA, NA, - 0, NA, 0, - NA, 0, 0, - 0, 0, NA), - 3, 20, dimnames = list(c("T1", "T2", "T3"), NULL))) - -v <- targetQ(box20,Target=Target)$loadings - -all.ok <- TRUE - -#slightly larger fuzz for comparison with published value. -# note max(abs(v) - abs(browne))rather than max(abs(v - browne)) -# as sign change is possible - if( 10e-4 < max(abs(v) - abs(browne))) { - cat("Calculated value is not the same as test value in Jennrich2002. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - browne, digits=18) - all.ok <- FALSE - } - -good <- t(matrix(c( - 0.01324194563970146343, -0.99360765277094842407, 0.007265459960371034587, - 0.99121314541487770544, -0.01178320700232154961, 0.000654586020267855506, - 0.01798447315534307256, -0.00266076852016330911, 0.985581004768931734361, - 0.77198435084052174915, -0.47723548341238952730, 0.001547735983967568618, - 0.00334198654247502835, -0.39290416948063611180, 0.874043793719835537814, - 0.40934347835281348349, -0.00274610551094590233, 0.815649888720176186041, - 0.54757055519984310088, -0.72951044925148011977, -0.020211353947714422175, - 0.02292379053779741716, -0.87011712730189194609, 0.404542252780873523577, - 0.79911058029224457666, 0.02416810475294199623, 0.452727043944761764482, - 0.66393502364020362538, -0.62149665012300570055, -0.005186928343372421146, - -0.05839790682548451350, -0.91517931889838155524, 0.511521949806932663130, - 0.63924406199386740735, 0.01841750353525576159, 0.643544196342115570886, - 0.04597086497418309547, -0.97980801598321454193, -0.002918643110053173451, - 0.97103389549392915558, 0.03847065084578840666, 0.060066450372699808913, - -0.02622776344285615568, -0.02482060086975104718, 0.965272709232911085842, - 0.37998105522582992233, -0.28073835673932595602, 0.726047993725112084107, - 0.48985182554738604388, -0.65226812910595410866, 0.285738966726349907788, - -0.02451057644240206557, -0.97122042802717223342, 0.019132901654980147277, - 0.95708220223038309449, -0.06086293722346142188, -0.045050942196376064786, - 0.02797903728304645954, 0.00036458752733534161, 0.976083771686937051726), - 3,20,dimnames = list(c("B1", "B2", "B3"), NULL))) - -#tighter fuzz for numerical comparison with previous test value - if( 10e-12 < max(abs(v - good))) { - cat("Calculated value is not the same as previous test value. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - good, digits=18) - all.ok <- FALSE - } - - -cat("tests completed.\n") - - -if (! all.ok) stop("some tests FAILED") diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/MASSoblimin.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/MASSoblimin.R deleted file mode 100644 index d07b45f..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/MASSoblimin.R +++ /dev/null @@ -1,80 +0,0 @@ - - Sys.getenv("R_LIBS") - library() - require("GPArotation") - search() - Sys.info() - -#require("stats") - -fuzz <- 1e-6 -all.ok <- TRUE - - -# test MASS 4th ed. p 322-324 - - data(ability.cov) - ability.cov - ability.FA <- factanal(factors = 1, covmat=ability.cov) - - (ability.FA <- update(ability.FA, factors = 2)) - -# ability.FA2 <- factanal(factors = 2, covmat = ability.cov) -# max(abs(ability.FA2$loadings - ability.FA$loadings)) - -# summary(ability.FA) MASS ed.4 p 323 seems to be print not summary in R 2.0.1 - ability.FA - -# this is default varimax rotation. There are 3rd+ digit differences with MASS - tst <- t(matrix(c( - 0.499437829039896530, 0.54344904693111962, - 0.156070079431279873, 0.62153798991197484, - 0.205786989958578748, 0.85992588538426895, - 0.108530754440558652, 0.46776101732283504, - 0.956242470279811574, 0.18209631992182243, - 0.784768183877880943, 0.22482213687364205 - ), 2, 6)) - - - if( fuzz < max(abs(loadings(ability.FA) - tst))) { - cat("Calculated value is not the same as test value in test 1. Value:\n") - #print(loadings(ability.FA), digits=18) this truncates - print(unclass(ability.FA$loadings), digits=18) - cat("difference:\n") - print(unclass(ability.FA$loadings) - tst, digits=18) - all.ok <- FALSE - } - - - # differences with MASS here are a bit more than might be expected, - # but there is already a difference before rotation. - (oblirot <- oblimin(loadings(ability.FA))) - - obli2 <- factanal(factors = 2, covmat = ability.cov, rotation="oblimin") - - max(abs(loadings(oblirot) - loadings(obli2))) - - -# factanal(factors = 2, covmat = ability.cov, scores = Bartlett, rotation="oblimin") - - - tst <- t(matrix(c( - 0.3863637969729337152, 0.4745113977203344047, - -0.0110032278171669998, 0.6458708261423832253, - -0.0262888675561207576, 0.8961123879025085781, - -0.0180180060207963122, 0.4882918937716873575, - 0.9900948712271664398, -0.0370729040114848238, - 0.7905663749272058283, 0.0526099352008769991 - ), 2, 6)) - - if( fuzz < max(abs(loadings(oblirot) - tst ))) { - cat("Calculated value is not the same as test value in test 2. Value:\n") - print(loadings(oblirot), digits=18) - cat("difference:\n") - print(loadings(oblirot) - tst, digits=18) - all.ok <- FALSE - } - -cat("tests completed.\n") - -if (! all.ok) stop("some tests FAILED") diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Revelle.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Revelle.R deleted file mode 100644 index cab3682..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Revelle.R +++ /dev/null @@ -1,21 +0,0 @@ -# This tests fix for an error caused by an exact initial setting. -# (from William Revelle) - -require("GPArotation") - -f3 <- structure(c(0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0,0), - .Dim = c(6L, 3L), .Dimnames = list(NULL, c("PC1", "PC2", "PC3"))) - -f3 - -# PC1 PC2 PC3 -#[1,] 0 0 1 -#[2,] 0 1 0 -#[3,] 1 0 0 -#[4,] 0 0 1 -#[5,] 0 1 0 -#[6,] 1 0 0 - -# These previously gave object 'VgQt' not found -GPForth(f3) -Varimax(f3) diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Thurstone.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Thurstone.R deleted file mode 100644 index 0708e5c..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/Thurstone.R +++ /dev/null @@ -1,324 +0,0 @@ -#Example from: Gradient Projection Algorithms and Software for -# Arbitrary Rotation Criteria in Factor Analysis. -# by Coen A. Bernaards and Robert I. Jennrich -# Website: http://www.stat.ucla.edu/research - - Sys.getenv("R_LIBS") - library() - require("GPArotation") - search() - Sys.info() - - data("Thurstone", package="GPArotation") - if (!exists("box20")) stop("Test data not found. Testing stopped.") - -fuzz <- 1e-5 -all.ok <- TRUE - -# Thurstone's box problem. (1947, p. 136) -# The matrix box20 is the initial loading matrix from Thurstone's box problem. - -# This takes a lot of iterations to converge at a higher tolerance -qbox20 <- quartimax(box20, eps=1e-5) -qbox20G <- GPForth(box20, Tmat=diag(1,3), method="quartimax", eps=1e-5) - - if( fuzz < max(abs(qbox20$loadings - qbox20G$loadings))) { - cat("Calculated value is not the same as test value in test Thurstone 1. Value:\n") - print(qbox20$loadings - qbox20G$loadings, digits=18) - cat("difference:\n") - print(qbox20$loadings - tst, digits=18) - all.ok <- FALSE - } - -#qbox20$Th - qbox20G$Th - -# These values compare with those in: -# http://www.stat.ucla.edu/research/web.pdf - tst <- t(matrix(c( - 0.0104916072210123716, -0.993396087928394733, -0.089861775335686706, - 0.1584646383898045685, -0.167305085570175344, -0.967087879524061056, - 0.9822741057703969769, -0.094961339079248266, -0.081938545344928893, - 0.1249962020162782989, -0.597065497283680413, -0.789290657131387352, - 0.8695614167874907707, -0.471622450093366785, -0.090438968384549553, - 0.8757114893176747294, -0.141012080768234127, -0.452333925937943637, - 0.0679423211019681700, -0.811411071716238719, -0.588554936857709099, - 0.4066768108416509708, -0.907862149146695163, -0.115673202040957226, - 0.5770808894249742638, -0.142370726163931066, -0.806527261406603468, - 0.1012712863762783577, -0.723336747696182614, -0.694640249329106285, - 0.5000928657774492692, -0.949746569049947253, -0.046846346456817907, - 0.7412589798326677526, -0.140350561965914555, -0.663578062154924320, - 0.0055655501003109590, -0.983847100401775698, -0.120037109608235590, - 0.2142330103903098415, -0.119429100752156334, -0.947421187831809397, - 0.9550804066106526324, -0.108275659756619305, -0.039227521113362487, - 0.7823218737697450464, -0.405437596810190704, -0.439275358874331168, - 0.3626971102221024923, -0.753122462957226402, -0.546281394544768872, - 0.0162483298780003657, -0.966230359337758582, -0.052114148464710915, - 0.1076692386876715729, -0.206734953950642314, -0.934620775424686911, - 0.9744239420161749932, -0.092650552854598708, -0.090828719474599584 - ), 3, 20)) - - if( fuzz < max(abs(qbox20$loadings - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 2. Value:\n") - print(qbox20$loadings, digits=18) - cat("difference:\n") - print(qbox20$loadings - tst, digits=18) - all.ok <- FALSE - } - - tst <- t(matrix(c( - 0.57232345894276127, -0.60751194947821441, -0.55079496147384377, - 0.60249460283341838, 0.76716797198365361, -0.22012168525406509, - 0.55627880770383020, -0.20587018726291534, 0.80509089803322043 - ), 3, 3)) - - if( fuzz < max(abs(qbox20$Th - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 3. Value:\n") - print(qbox20$Th, digits=18) - cat("difference:\n") - print(qbox20$Th - tst, digits=18) - all.ok <- FALSE - } - - -# sorted absolute loading plots. -sal <- abs(c(loadings(qbox20)))[order(abs(c(loadings(qbox20))))] -plot(seq(length(sal)), sal) - - - #compare quartimax rotation of the initial loading matrix box20. - - if( fuzz < max(abs(loadings(qbox20) - box20 %*% qbox20$Th ))) { - cat("Calculated value is not the same as test value in test Thurstone 4. Value:\n") - print(loadings(qbox20), digits=18) - cat("difference:\n") - print(loadings(qbox20) - box20 %*% qbox20$Th, digits=18) - all.ok <- FALSE - } - - - -qminbox20G <- GPFoblq(box20, Tmat=diag(1,3), method="quartimin", eps=1e-5) -qminbox20 <- quartimin(box20, eps=1e-5) - - if( fuzz < max(abs(loadings(qminbox20) - qminbox20G$loadings))) { - cat("Calculated value is not the same as test value in test Thurstone 5. Value:\n") - print(qminbox20G$loadings , digits=18) - cat("difference:\n") - print(loadings(qminbox20) - qminbox20G$loadings, digits=18) - all.ok <- FALSE - } - -#qminbox20$Th - quartimin(box20)$Th - -# These values compare with those in: -# http://www.stat.ucla.edu/research/web.pdf - tst <- t(matrix(c( - -0.099561899210599963, -1.0236437309424475384, 0.017110338313848200, - -0.007103778102200991, 0.0427848301281630802, -1.009962780073245581, - 1.012864497258948226, 0.0331727792925069487, 0.050367710973030555, - -0.054843850612513692, -0.4493155290974688021, -0.772334543778026350, - 0.856287122381722998, -0.3740197232441037078, 0.069350368268248391, - 0.835580575619599641, 0.0487450425576793633, -0.360381644212301344, - -0.102893671454670210, -0.7226715938020771279, -0.537456650126404090, - 0.322103633211960838, -0.8816846447967544576, 0.031159743715387874, - 0.462799683447739529, 0.0852338438217692257, -0.783762970578423479, - -0.076585435689138226, -0.6043060025891554554, -0.658295846696152820, - 0.427772530893690217, -0.9288687512327726825, 0.122866182561916254, - 0.659408232467282085, 0.0772080094990600374, -0.607348040513722709, - -0.108761719100651882, -1.0079608432113262850, -0.017378089000366713, - 0.059518597564186392, 0.0955950614351480238, -0.986779686330629513, - 0.989890866913205381, 0.0071520817823045348, 0.094691644950703049, - 0.713733277219835149, -0.2427293600063723522, -0.328268187306521242, - 0.220344503737931546, -0.6353746612195683152, -0.459661643730432223, - -0.084703580704062989, -1.0022284232457450148, 0.055740317456252478, - -0.059151779416785115, -0.0113377397453605679, -0.976867596293413132, - 1.003360458549731771, 0.0365098037316876067, 0.039427150580815938 - ), 3, 20)) - - if( fuzz < max(abs(qminbox20G$loadings - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 6. Value:\n") - print(qminbox20G$loadings, digits=18) - cat("difference:\n") - print(qminbox20G$loadings - tst, digits=18) - all.ok <- FALSE - } - - tst <- t(matrix(c( - 1.00000000000000000, -0.25676300454795098, -0.32155119431295237, - -0.25676300454795098, 1.00000000000000000, 0.33656790396842257, - -0.32155119431295237, 0.33656790396842257, 1.00000000000000000 - ), 3, 3)) - - if( fuzz < max(abs(qminbox20G$Phi - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 7. Value:\n") - print(qminbox20G$Phi, digits=18) - cat("difference:\n") - print(qminbox20G$Phi - tst, digits=18) - all.ok <- FALSE - } - - -#To fuzz precision the rotated loading matrix and the factor cor- -#relation matrix phi are identical to those produced using the oblique GP -#algorithm with exact derivatives. - - if( fuzz < max(abs(qminbox20G$Phi - - t(qminbox20G$Th )%*% qminbox20G$Th ))) { - cat("Calculated value is not the same as test value in test Thurstone 8. Value:\n") - print(qminbox20G$Phi, digits=18) - cat("difference:\n") - print(qminbox20G$Phi - - t(qminbox20G$Th )%*% qminbox20G$Th, digits=18) - all.ok <- FALSE - } - - #compare quartimin rotation of the initial loading matrix box20. - if( fuzz < max(abs(qminbox20G$loadings - box20 %*% solve(t(qminbox20G$Th))))) { - cat("Calculated value is not the same as test value in test Thurstone 9. Value:\n") - print(qminbox20G$loadings, digits=18) - cat("difference:\n") - print(qminbox20G$loadings - box20 %*% solve(t(qminbox20G$Th)), digits=18) - all.ok <- FALSE - } - - data("box26", package="GPArotation") - if (!exists("box26")) stop("Test data box26 not found. Testing stopped.") - -qbox26 <- GPForth(box26, Tmat=diag(1,3), method="quartimax", eps=1e-5) - - tst <- t(matrix(c( - 0.6245197355925140581, -0.2708954695931116152, 0.7151983951389878635, - 0.7386116884036847408, 0.6266342260884526505, -0.0617439911892987553, - 0.7803093788467402314, -0.3830982859243221017, -0.4578886072022986253, - 0.8540550453155928423, 0.2886436985992582027, 0.4062915145925659610, - 0.8810593765418006651, -0.4428658074662961130, 0.1233946983666596581, - 0.9084731768740617053, 0.1540526132602804965, -0.3723026715563940159, - 0.8150592858039771293, 0.0441965358534676597, 0.5600768044145943980, - 0.8466584455973064083, 0.4551177395514792168, 0.1889929089788950356, - 0.8156808837280125069, -0.4090629943132625956, 0.3690652552112651530, - 0.9629492340906220527, -0.4781483041690369196, -0.0866081507974762743, - 0.8731366884896356595, 0.3451069860590937899, -0.2914969834947889749, - 0.8921854600753849063, -0.0276323108621970258, -0.4257376659710629951, - -0.0938760381595044741, -0.7873218033841372643, 0.6012450975895150540, - 0.0938760381595044741, 0.7873218033841372643, -0.6012450975895150540, - -0.0986092863860908303, 0.1513605567468480073, 0.9692559984337008050, - 0.0986092863860908303, -0.1513605567468480073, -0.9692559984337008050, - -0.0189573629854957251, 0.9527983290277913797, 0.2944078167958268377, - 0.0189573629854957251, -0.9527983290277913797, -0.2944078167958268377, - 0.8394181189595459891, 0.3631767908642606346, 0.3398717995655929913, - 0.8703065201362156778, -0.4691145408161159214, 0.0770980453920554615, - 0.9141063746617547059, 0.1583184861345137973, -0.3535658252020681958, - 0.8348118627305495254, 0.3535663452183119837, 0.3271666140872500073, - 0.8541352373790773722, -0.4476738735312740247, 0.0569042988261160704, - 0.9034738474019414767, 0.1663655738425987851, -0.3227406124130587362, - 0.9861758757457432800, 0.0103496363116840455, 0.0635926656567585569, - 0.9643516568468981642, 0.0660181478622221818, -0.0304218028637989850 - ), 3, 26)) - - if( fuzz < max(abs(qbox26$loadings - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 10. Value:\n") - print(qbox26$loadings, digits=18) - cat("difference:\n") - print(qbox26$loadings - tst, digits=18) - all.ok <- FALSE - } - - - - tst <- t(matrix(c( - 0.9996572020207266096, 0.0216275672176080257, 0.0147555679097727491, - -0.0158190757965277796, 0.9480178905874908635, -0.3178235925273457108, - -0.0208622934749700742, 0.3174812237948764770, 0.9480350400953921897 - ), 3, 3)) - - if( fuzz < max(abs(qbox26$Th - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 11. Value:\n") - print(qbox26$Th, digits=18) - cat("difference:\n") - print(qbox26$Th - tst, digits=18) - all.ok <- FALSE - } - - -qminbox26 <- GPFoblq(box26, Tmat=diag(1,3), method="quartimin", eps=1e-5) - - tst <- t(matrix(c( - 0.6088436426802223966, -0.2567107018725688361, 0.7213648290819488773, - 0.7318447535507376367, 0.6298398026581654152, -0.0549983771960348838, - 0.7973321695017724364, -0.3855960314746548212, -0.4504478973568259437, - 0.8392144987741166906, 0.2994932968625432235, 0.4143558581243267924, - 0.8833452352200144020, -0.4361046712803113290, 0.1319331147095905710, - 0.9161366872228343672, 0.1535557844336666034, -0.3638337328539109072, - 0.7993355454002614158, 0.0571270784641514026, 0.5678963531379384033, - 0.8354288250614068101, 0.4626764152757318893, 0.1968789749765105790, - 0.8109923806202916641, -0.3989909333845649830, 0.3770226870580207779, - 0.9712737747877250305, -0.4740722765307348041, -0.0773243882106463137, - 0.8761501947960563808, 0.3456235893514668089, -0.2834183138879167174, - 0.9036601763684347643, -0.0290211959776035672, -0.4173652812159966974, - -0.0995525797764766768, -0.7788574612781464790, 0.6007791331268093060, - 0.0995525797764766768, 0.7788574612781464790, -0.6007791331268093060, - -0.1264036712449473909, 0.1653130238928011975, 0.9684661160120416890, - 0.1264036712449473909, -0.1653130238928011975, -0.9684661160120416890, - -0.0392946742598458687, 0.9571059478962877787, 0.2939285303852590125, - 0.0392946742598458687, -0.9571059478962877787, -0.2939285303852590125, - 0.8253744379910458173, 0.3729516010405902748, 0.3477554718030251846, - 0.8741734789142978634, -0.4631063486451737488, 0.0855349365396926159, - 0.9212130243051569467, 0.1581334796580046720, -0.3450412531516501846, - 0.8212340853954427367, 0.3631252613622908965, 0.3350076577679809153, - 0.8582635618771776720, -0.4420579024138228674, 0.0651757040961165046, - 0.9096561314838297330, 0.1665824736284239604, -0.3143133889989875307, - 0.9840845767693481294, 0.0168070160966761091, 0.0729425956763933708, - 0.9640420478016114014, 0.0709475796833391181, -0.0213192081807395371 - ), 3, 26)) - - if( fuzz < max(abs(qminbox26$loadings - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 12. Value:\n") - print(qminbox26$loadings, digits=18) - cat("difference:\n") - print(qminbox26$loadings - tst, digits=18) - all.ok <- FALSE - } - - - - tst <- t(matrix(c( - 1.000000000000000 , 0.00767934084449363279, 0.0170654511973979163, - 0.00767934084449363279, 1.000000000000000 , -0.0144994900961642244, - 0.01706545119739791630, -0.01449949009616422445, 1.000000000000000 - ), 3, 3)) - - if( fuzz < max(abs(qminbox26$Phi - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 13. Value:\n") - print(qminbox26$Phi, digits=18) - cat("difference:\n") - print(qminbox26$Phi - tst, digits=18) - all.ok <- FALSE - } - - - - tst <- t(matrix(c( - 0.9993401424148040668, 0.0347479564402226465, 0.0408645923859655008, - -0.0179660947915933414, 0.9476477730670300748, -0.3324117322929439067, - -0.0315673755054017430, 0.3174212937474846785, 0.9422486536594960604 - ), 3, 3)) - - if( fuzz < max(abs(qminbox26$Th - tst ))) { - cat("Calculated value is not the same as test value in test Thurstone 14. Value:\n") - print(qminbox26$Th, digits=18) - cat("difference:\n") - print(qminbox26$Th - tst, digits=18) - all.ok <- FALSE - } - - - -cat("tests completed.\n") - -if (! all.ok) stop("some tests FAILED") - - -cat("tests completed.\n") - -if (! all.ok) stop("some tests FAILED") - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/WansbeekMeijer.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/WansbeekMeijer.R deleted file mode 100644 index 26bab1e..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/WansbeekMeijer.R +++ /dev/null @@ -1,104 +0,0 @@ - Sys.getenv("R_LIBS") - library() - require("GPArotation") - search() - Sys.info() - - fuzz <- 1e-6 - all.ok <- TRUE - - data(WansbeekMeijer, package="GPArotation") - - fa.none <- factanal(factors=2, covmat=NetherlandsTV, rotation="none") - - tst <- t(matrix(c( - 0.6972803, -0.3736554, - 0.7774628, -0.3184149, - 0.6832300, -0.3620428, - 0.6612198, 0.2361132, - 0.6972393, 0.3026050, - 0.7100285, 0.4059509, - 0.6353584, 0.3526947 - ), 2, 7)) - - if( fuzz < max(abs(fa.none$loadings - tst))) { - cat("Calculated value is not the same as test value in test WansbeekMeijer 1. Value:\n") - print(fa.none$loadings, digits=18) - cat("difference:\n") - print(fa.none$loadings - tst, digits=18) - all.ok <- FALSE - } - - - - fa.varimax <- GPFoblq(fa.none$loadings, method="varimax", normalize=TRUE) - -# with eps=1e-8 -# tst <- t(matrix(c( -# 0.229695829694226694, -0.757005882905721683, -# 0.325474298411086493, -0.774533969509160203, -# 0.227951538606475851, -0.738861531224136225, -# 0.634850649690308022, -0.299876110481063607, -# 0.707312661165822032, -0.278246783076943283, -# 0.789359884149245072, -0.214120439603779994, -# 0.698885205896135120, -0.199081171877497243 -# ), 2, 7)) - -# with eps=1e-5 - tst <- t(matrix(c( - 0.229698038368303409, -0.757005212686898243, - 0.325476558225504142, -0.774533019824047542, - 0.227953694341768043, -0.738860866094951829, - 0.634851524619887475, -0.299874258087383661, - 0.707313472988376213, -0.278244719250824557, - 0.789360508873491518, -0.214118136377292989, - 0.698885786741510029, -0.199079132641678647 - ), 2, 7)) - - if( fuzz < max(abs(fa.varimax$loadings - tst))) { - cat("Calculated value is not the same as test value in test WansbeekMeijer 2. Value:\n") - print(fa.varimax$loadings, digits=18) - cat("difference:\n") - print(fa.varimax$loadings - tst, digits=18) - all.ok <- FALSE - } - - - - fa.oblimin <- GPFoblq(fa.none$loadings, method="oblimin", normalize=TRUE) - -# with eps=1e-8 -# tst <- t(matrix(c( -# -0.0244898894997362740, -0.8055076884898763057, -# 0.0821776433220552660, -0.7883517482514345032, -# -0.0194442483441249758, -0.7847120136813017233, -# 0.6350106056917923514, -0.1038114236654337219, -# 0.7293893902400611085, -0.0495156037400738894, -# 0.8517915457391848078, 0.0588983480418694277, -# 0.7504355940804637859, 0.0408946221245683056 -# ), 2, 7)) - -# with eps=1e-5 - tst <- t(matrix(c( - -0.0244886312423446446, -0.8055069385602275922, - 0.0821788889356081659, -0.7883509906546982693, - -0.0194430219824419312, -0.7847112821295906260, - 0.6350108529538124325, -0.1038111848933331444, - 0.7293895650539216069, -0.0495153948664520185, - 0.8517915670863017708, 0.0588984825074335624, - 0.7504356301074717184, 0.0408947509009953206 - ), 2, 7)) - - if( fuzz < max(abs(fa.oblimin$loadings - tst))) { - cat("Calculated value is not the same as test value in test WansbeekMeijer 3. Value:\n") - print(fa.oblimin$loadings, digits=18) - cat("difference:\n") - print(fa.oblimin$loadings - tst, digits=18) - all.ok <- FALSE - } - - -cat("tests completed.\n") - -if (! all.ok) stop("some tests FAILED") - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/rotations.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/rotations.R deleted file mode 100644 index b3b3e76..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/tests/rotations.R +++ /dev/null @@ -1,489 +0,0 @@ -# Tests here only compare against values computed previously with this code, -# to ensure there was no accidental change. It would be better to have -# comparisons with known correct values. - -# Test for oblimax is commented out as it appears to be unstable. - - - Sys.getenv("R_LIBS") - library() - require("GPArotation") - search() - Sys.info() - -require("stats") -require("GPArotation") - -fuzz <- 1e-6 -all.ok <- TRUE - - - data(ability.cov) - L <- loadings(factanal(factors = 2, covmat=ability.cov)) - - - if( 0.001 < max(abs(varimax(L, normalize=FALSE)$loadings - - Varimax(L, normalize=FALSE)$loadings))) { - cat("Calculated difference exceeds tolerance\n") - cat("difference:\n") - print(varimax(L, normalize=FALSE)$loadings - - Varimax(L, normalize=FALSE)$loadings, digits=18) - all.ok <- FALSE - } - - if( 0.01 < max(abs(varimax(L, normalize=TRUE)$loadings - - Varimax(L, normalize=TRUE, eps=1e-5)$loadings))) { - cat("Calculated difference exceeds tolerance\n") - cat("difference:\n") - print(varimax(L, normalize=TRUE)$loadings - - Varimax(L, normalize=TRUE, eps=1e-5)$loadings, digits=18) - all.ok <- FALSE - } - - - v <- oblimin(L, eps=1e-8)$loadings - tst <- t(matrix(c( - 0.3863615904740822504, 0.4745127741495974161, - -0.0110059418769087539, 0.6458720769633764514, - -0.0262926272350604423, 0.8961141105684561348, - -0.0180200526810754824, 0.4882928281695405048, - 0.9900944939102318543, -0.0370718282544326011, - 0.7905657274265397438, 0.0526109550054999417 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 1. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- quartimin(L, eps=1e-8)$loadings - tst <- t(matrix(c( - 0.3863615904740822504, 0.4745127741495974161, - -0.0110059418769087539, 0.6458720769633764514, - -0.0262926272350604423, 0.8961141105684561348, - -0.0180200526810754824, 0.4882928281695405048, - 0.9900944939102318543, -0.0370718282544326011, - 0.7905657274265397438, 0.0526109550054999417 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 2. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- targetT(L, Target=matrix(c(rep(1,3),rep(0,6),rep(1,3)), 6,2), - eps=1e-5)$loadings - tst <- t(matrix(c( - 0.551529228817982942, 0.4905002767031292898, - 0.217748645523411000, 0.6027046291262584399, - 0.291173432863349457, 0.8348885228488550636, - 0.154994397662456290, 0.4544843569140373241, - 0.969702339393929247, 0.0850652965070581996, - 0.803390575440818822, 0.1448091121037717866 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 3. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- targetQ(L, Target=matrix(c(rep(1,3),rep(0,6),rep(1,3)), 6,2), - eps=1e-5)$loadings - tst <- t(matrix(c( - 0.735795682866631218, 0.565351705145453853, - 0.433590223819374398, 0.664644550038417159, - 0.589924557708411568, 0.920006940799857786, - 0.317543426981046928, 0.500590650032113116, - 1.021758247914384077, 0.155121528590726393, - 0.872521244896209747, 0.208735706420634437 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 4. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - # Does not converge even with maxit=10000, but the loadings matrix is not - # changing. Possibly the gradient is extremely large even very close to opt. - v <- pstT(L, W = matrix(c(rep(.4,6),rep(.6,6)), 6,2), - Target= matrix(c(rep(1,3),rep(0,6),rep(1,3)), 6,2), - maxit=1000, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.37067889993474656407, 0.638257130653133720, - 0.01855112570739854416, 0.640564749523800270, - 0.01576132191496706567, 0.884065831441111172, - 0.00524531003824213384, 0.480158078874985073, - 0.89458633399812259590, 0.383762977265515448, - 0.71793428958051475064, 0.388556883222951677 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 5. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - # Does not converge even with maxit=10000, but the loadings matrix is not - # changing. Possibly the gradient is extremely large even very close to opt. - v <- pstQ(L, W = matrix(c(rep(.4,6),rep(.6,6)), 6,2), - Target= matrix(c(rep(1,3),rep(0,6),rep(1,3)), 6,2), - maxit=1000, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.573125161748393785, 0.700868331877288475, - 0.214899397066479453, 0.681727425525818886, - 0.286558275327103040, 0.940272379393286339, - 0.152257795885557295, 0.510481967637567036, - 1.029289798076480578, 0.462598702071116141, - 0.850691132520651205, 0.456859727346562328 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 6. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - -# oblimax -# this is test value on one computer -# tst <- t(matrix(c( -# -8111059.94622692652, 8111060.62253121007, -# 1495036.43465861562, -1495035.79614594672, -# 2331634.63904705830, -2331633.75893370388, -# 1356735.91680212389, -1356735.43916810025, -# -23187491.19758165255, 23187491.68068471923, -# -18357040.58573083207, 18357041.05348757654 -# ), 2, 6)) -# -# this is test value on another computer -# tst <- t(matrix(c( -# 2694770.06630349346, -2694769.38999920478, -# -496701.45733913727, 496702.09585180727, -# -774647.63529061736, 774648.51540397422, -# -450753.43529273639, 450753.91292676108, -# 7703672.48495316971, -7703672.00185009185, -# 6098832.71036116872, -6098832.24260441773 -# ), 2, 6)) -# -# this does not converge on all platforms and has large differences possible a mistake ??? -# v <- oblimax(L, eps=1e-5)$loadings -# if( fuzz < max(abs(v - tst))) { -# cat("Calculated value is not the same as test value in test rotations 7. Value:\n") -# print(v, digits=18) -# cat("difference:\n") -# print(v - tst, digits=18) -# all.ok <- FALSE -# } - - - v <- entropy(L, maxit=3000, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.528292107548243184, 0.515443945340967824, - 0.189686511729033253, 0.612116304198454975, - 0.252311894464850861, 0.847442931117894815, - 0.133843268148035738, 0.461156452364903380, - 0.964740133927989407, 0.129750551769587635, - 0.795847094000000532, 0.181751199795689433 - ), 2, 6)) - - if( 0.01 < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 8. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- quartimax(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.534714740804540178, 0.508778102568043678, - 0.197348140750149392, 0.609689309353509956, - 0.262919828098457153, 0.844212045390758559, - 0.139616102327241837, 0.459441658926639795, - 0.966291466215733252, 0.117641548844535412, - 0.798063848020893585, 0.171756193883937508 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 9. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- Varimax(L, eps=1e-8)$loadings - tst <- t(matrix(c( - 0.515866523962843160, 0.527879475961036904, - 0.175054634278874244, 0.616460231981747930, - 0.232057748479543163, 0.853211588623112749, - 0.122822468397975171, 0.464213243286899446, - 0.961376376417989453, 0.152689863976982837, - 0.791292800869773050, 0.200653429940987366 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 10. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- simplimax(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.3384175759313114429, 0.508414890494446547464, - -0.0654601124161610648, 0.670992229004664153535, - -0.1016231721735353366, 0.930535379393095940515, - -0.0589933707274080121, 0.506904360351960181497, - 0.9733094402675376289, 0.000234046050254643859, - 0.7702037184085044341, 0.085651123319384916965 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 11. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- bentlerT(L, eps=1e-8)$loadings - tst <- t(matrix(c( - 0.523583611303327312, 0.520226117818945788, - 0.184113022124463677, 0.613815719643687197, - 0.244596116053327067, 0.849702038129718673, - 0.129644684715025493, 0.462354355134084738, - 0.963520501269179652, 0.138517057902201340, - 0.794161628656258278, 0.188979901644201559 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 12. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- bentlerQ(L, eps=1e-8)$loadings - tst <- t(matrix(c( - 0.3801726240258240241, 0.4741208368044214638, - -0.0223632969057368826, 0.6514196922540864687, - -0.0421105927111659756, 0.9039359851665277334, - -0.0266594447192576613, 0.4925968005718689424, - 0.9961524457620027917, -0.0485973498906049697, - 0.7939648477384558811, 0.0440983921679098251 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 13. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- tandemI(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.615424480780047745, 0.4074649925368262759, - 0.300894306348887419, 0.5658002819054848143, - 0.406455233467338028, 0.7852483408305571677, - 0.217785179074990981, 0.4279590047675180808, - 0.971977129465111611, -0.0530960591067626969, - 0.815800376450207976, 0.0295946184147908228 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 14. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - - v <- tandemII(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.512160139332842212, 0.531476249107136312, - 0.170736763115044710, 0.617670057812827134, - 0.226081850628144149, 0.854814488884392154, - 0.119571200821562001, 0.465061309851099225, - 0.960284416460420398, 0.159413208985883820, - 0.789869387186175276, 0.206185467095899383 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 15. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- geominT(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.572197044101002361, 0.4662247895688098054, - 0.243573415560656120, 0.5927388411683653935, - 0.326956608263186954, 0.8215352639437966120, - 0.174476792179181994, 0.4473668997335142894, - 0.972471249855535680, 0.0431091626026945812, - 0.808894688433769660, 0.1099794466209375043 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 16. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- geominQ(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.39672053553904490508, 0.4713295988080449250, - 0.00424452688463150020, 0.6389466007374070555, - -0.00510976786312981532, 0.8864521406378518265, - -0.00646959173137159373, 0.4830101828530461994, - 0.98709860078485589518, -0.0318959930081098297, - 0.79011178369962709045, 0.0558689642678330683 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 17. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- cfT(L, eps=1e-8)$loadings - tst <- t(matrix(c( - 0.534721263659975854, 0.508771247100584523, - 0.197355957387199576, 0.609686779159006154, - 0.262930651479430233, 0.844208674501022327, - 0.139621992686633722, 0.459439868910532512, - 0.966292974385164483, 0.117629160286744874, - 0.798066049992627313, 0.171745962120156664 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 18. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- cfQ(L, eps=1e-8)$loadings - tst <- t(matrix(c( - 0.3863615904740822504, 0.4745127741495974161, - -0.0110059418769087539, 0.6458720769633764514, - -0.0262926272350604423, 0.8961141105684561348, - -0.0180200526810754824, 0.4882928281695405048, - 0.9900944939102318543, -0.0370718282544326011, - 0.7905657274265397438, 0.0526109550054999417 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 19. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- infomaxT(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.495330443338021176, 0.547195361446864537, - 0.151384273205308784, 0.622695868320644275, - 0.199304253086364791, 0.861451466010626055, - 0.105004533733904976, 0.468565194910632365, - 0.954843809781045660, 0.189293503899924942, - 0.783052579543945471, 0.230726576980168713 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 20. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- infomaxQ(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.39327554287862442894, 0.4693137508305071925, - -0.00319802321222481794, 0.6422985517185823001, - -0.01549245038490981718, 0.8912279460026399924, - -0.01214605901641467763, 0.4856544522916727002, - 0.99260028929193111491, -0.0433225495465055510, - 0.79356458059567791530, 0.0471559021503157039 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 21. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - v <- mccammon(L, eps=1e-5)$loadings - tst <- t(matrix(c( - 0.4293472299617892007, 0.600363196582340275, - 0.0790140496845253004, 0.635943490060206229, - 0.0992523811009183854, 0.878618107277518656, - 0.0506062164774049028, 0.477512622702450096, - 0.9268544198491108776, 0.297488850382792269, - 0.7514463663627769519, 0.318958389348199534 - ), 2, 6)) - - if( fuzz < max(abs(v - tst))) { - cat("Calculated value is not the same as test value in test rotations 22. Value:\n") - print(v, digits=18) - cat("difference:\n") - print(v - tst, digits=18) - all.ok <- FALSE - } - - - -cat("tests completed.\n") - - -if (! all.ok) stop("some tests FAILED") diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/DESCRIPTION b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/DESCRIPTION deleted file mode 100644 index 38d8f24..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/DESCRIPTION +++ /dev/null @@ -1,29 +0,0 @@ -Package: R6 -Title: Classes with Reference Semantics -Version: 2.2.2 -Authors@R: person("Winston", "Chang", role = c("aut", "cre"), email = - "winston@stdout.org") -Description: The R6 package allows the creation of classes with - reference semantics, similar to R's built-in reference classes. - Compared to reference classes, R6 classes are simpler and - lighter-weight, and they are not built on S4 classes so they do not - require the methods package. These classes allow public and private - members, and they support inheritance, even when the classes are - defined in different packages. -Depends: R (>= 3.0) -Suggests: knitr, microbenchmark, pryr, testthat, ggplot2, scales -License: MIT + file LICENSE -URL: https://github.com/wch/R6/ -LazyData: true -VignetteBuilder: knitr -RoxygenNote: 6.0.1 -NeedsCompilation: no -Packaged: 2017-06-12 18:48:43 UTC; winston -Author: Winston Chang [aut, cre] -Maintainer: Winston Chang -Repository: CRAN -Date/Publication: 2017-06-17 08:22:59 UTC -Built: R 3.4.1; ; 2017-09-09 18:18:18 UTC; unix -InstallAgent: packrat 0.4.8.38 -InstallSource: CRAN -Hash: b2366cd9d2f3851a5704b4e192b985c2 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/INDEX b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/INDEX deleted file mode 100644 index 2699e80..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/INDEX +++ /dev/null @@ -1,3 +0,0 @@ -R6Class Create an R6 reference object generator -as.list.R6 Create a list from an R6 object -is.R6 Is an object an R6 Class Generator or Object? diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/LICENSE b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/LICENSE deleted file mode 100644 index 9b8dd6a..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/LICENSE +++ /dev/null @@ -1,2 +0,0 @@ -YEAR: 2015 -COPYRIGHT HOLDER: RStudio diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/Rd.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/Rd.rds deleted file mode 100644 index e698501aa572863ce81381be3e609a215c5e7c36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmV-B0mS|viwFP!000001C3E#OT#b}&H91eU?A)Vm^Yu+$G(ab6%iE59`+jB+mX>F zBMFSX`Ny@U?M-KEL7~n4I_Kuxo9%)S;t@ZX5zn`-zp_VU|LZ0o0hwF7$da^TTE|&| znI+S4#kGmE zAV4uA6~b>EoHlpUQpp2SI|9Pi&$>xtlMc{|r%$dSwclG?zx#*eRa@_H-tdX=pj`i9GITxLD- Omz`nmEYF2?K#KrIHYk|@ diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/hsearch.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/hsearch.rds deleted file mode 100644 index 09c3899f6e81675044723c52a134addd259819f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jT~TiwFP!000001GQ6KOT#b}O+Uu8AP&T5^X8KS75XYtMTVlI_~2{SW;NP2 zBMFFq-g%QI?Q~leL1@T1$;~~tCpS+KLdZu!=pjD7{RM0x3n9p8lrf@-PDv093 zh99|btaIYI;FUev9I#<06RDSNk|w|ug>PI!4Bvy&~Fi*FIPt{{H)ljD6m6#nwS%tzP$+8*B_*#g`=` pa?Q2Y-OdiQK?VI%Wq3>9-?+&CT_@r2Mi#19=Myu8WX%2p007((qh|mB diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/links.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/links.rds deleted file mode 100644 index ed9dfd7c4d304c455cad1313f90efb4f00bcd357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmb2|=3oE==I#ec2?+^F32BKb2}x{*tPL#M%-qcC6Q*6de3^Zbg7M#;Nq1xv-p-jE z5wnKhPci=>T=q6g8}1H$%U^XJ_{8GcQ^8+#BXqp mWqoSII@2*ShU55wFU`Jfp3Rm5Yk7G7Gt6vSI!lX@fdK%Ec``8o diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/nsInfo.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/Meta/nsInfo.rds deleted file mode 100644 index 521aa351a653eb4938f41f4a1d0e56650f315cc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmV+f0sH$1io!4uou;j&7DeNCnWk3h ze`x{oJFdTDLeP$UzPRE7Vb=Www$x1=;5L$_k_r}vTZG|o(I{=hmt^cZq;p3P)LN!x z@XlOJ*8>|lKbXC!s&~5hk0tDXo-kKsw5TH`$hYe+YV(?wzLfe{I*1jNS@nwKAuD7mjlOf>Q19sbLtHk zHV)xW8NmYbAvLJ#mpP(s8FjLf*M(@GUgPG79`NRWq(Gct5MmopsAgwF%bx}0L3(n6cNWuq6gi44Ir;_MaI=S zbnXuDPfrR*lCSjwo~sG+DWhPb(@ltqcpxnkE&^s`fjIY-lY`Q19#cP$nF@N3m9|ah zus>TsWR|8}C`4IA1XUQagAKVS3@szVa&I}uTL}haK^ZUtgavewQ=%*y>6$t?@X*o4 zIePB)%?>)FJ4Ti0qJ;W_&w<7$!Q!q9*jBKrh*T=Vz)={cF;_#_B_GGc7TGs%Co}Xt zT2LsV>&f`)W_o2L-$qKM^0e0rVb8O<>+__y^rN0P>KTou5*e|@nxn9jk=u6%w(uFZ zg+J^MUL5yF$AcjnygWUD=Q(;m8=oOlphoYhsd1DSIQkW;x~r@4HzV(qWMozLuUr(D|j@{{8{7782t=h>!4q=xiXvp zn~t;H?5*4NwppDSRk5A4K0u|=BH8^n8PuJSuRXKy@RCSh&{S=7T9+gxEUx1h95W`UXSt>N41e2Xbl@D{EQJd$!r6&EY(8Ss$aZQexNo*!sT3I=~d&FB-f zX-?7_ykF_O%-dYAm3JX;B(n<*8_D}9S5lGW<9&(pN2aN&%PdQvSN&o+hmw1=VVuhR z$$wNzMXkB1o7!JS)-<&={BEjNDcK^YQ3(NV$_w?2^9p};W9F=p z)Gd3r z<9GDZ)HlP9wrzW#>}cOIx6qE}d*<%?qIF5W_iuMpmCJ2zs<~FMSFjXS?QFiK`0e6k zznYG{$?a_N&R$C9&@%zOpmfgf+qn(-rF&qK=>Iti^J~iPC<|x2(khm(L(?i-7tT

Em>8ta0^1NDf6&vLcA< zOo9G0lY(c5RF<3>_$C68b5T>4f&pJeTu7Q!12*Ts8~I5Ma?i7tl#IkrgeUKi%2t)# znjMMcr;4C1j%=(_Ifx1#>h Zlp+nf8I?511>VQ(`v-wXKzQ^5003b|pSu76 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/NAMESPACE b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/NAMESPACE deleted file mode 100644 index b252431..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/NAMESPACE +++ /dev/null @@ -1,11 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -S3method(as.list,R6) -S3method(format,R6) -S3method(format,R6ClassGenerator) -S3method(plot,R6) -S3method(print,R6) -S3method(print,R6ClassGenerator) -export(R6Class) -export(is.R6) -export(is.R6Class) diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/NEWS.md b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/NEWS.md deleted file mode 100644 index 8baa479..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/NEWS.md +++ /dev/null @@ -1,101 +0,0 @@ -R6 2.2.2 -======== - -* Fixed [#108](https://github.com/wch/R6/issues/108): When an object with a `super` object and an active binding in the `super` object was cloned, the new object's `super` object did not get the active binding -- it was a normal function. - -* Fixed [#119](https://github.com/wch/R6/issues/119): When a class had two levels of inheritance, an instance of that class's `super` object could contain methods that had an incorrect enclosing environment. - - -R6 2.2.1 -======== - -* Vignettes now only try use the microbenchmark package if it is present. This is so that the package builds properly on platforms where microbenchmark is not present, like Solaris. - -* Fixed ending position for `trim()`. - -R6 2.2.0 -======== - -* Classes can define finalizers explicitly, by defining a public `finalize` method. ([#92](https://github.com/wch/R6/issues/92), [#93](https://github.com/wch/R6/pull/93)) - -* Added function `is.R6()` and `is.R6Class()`. ([#95](https://github.com/wch/R6/pull/95)) - -* Fixed [#96](https://github.com/wch/R6/issues/96): R6 now avoids using `$` and `[[` after the class has been assigned to the object. This allows the user to provide their own methods for `$` and `[[` without causing problems to R6's operation. - -R6 2.1.3 -======== - -* The `plot` S3 method for R6 objects will call `$plot` on the object if present. (#77) - -* Fixed printing of members that are R6 objects. (#88) - -* Fixed deep cloning for non-portable classes. (#85) - -* Added `as.list.R6` method. (#91) - -R6 2.1.2 -======== - -* Implemented `format.R6()` and `format.R6ClassGenerator`, the former calls a public `format` method if defined. This might change the functionality of existing classes that define a public `format` method intended for other purposes (#73. Thanks to Kirill Müller) - -* Functions are shown with their interface in `print` and `format`, limited to one line (#76. Thanks to Kirill Müller) - -* R6 objects and generators print out which class they inherit from. (#67) - -R6 2.1.1 -======== - -* Fixed a bug with printing R6 objects when a `[[` method is defined for the class. (#70) - -* Fixed cloning of objects that call a `super` method which accesses `private`. (#72) - -R6 2.1.0 -======== - -* Added support for making clones of R6 objects with a `clone()` method on R6 objects. The `deep=TRUE` option allows for making clones that have copies of fields with reference semantics (like other R6 objects). (#27) - -* Allow adding public or private members when there were no public or private members to begin with. (#51) - -* Previously, when an R6 object was printed, it accessed (and called) active bindings. Now it simply reports that a field is an active binding. (#37, #38. Thanks to Oscar de Lama) - -* Printing private members now works correctly for portable R6 objects. (#26) - -* The 'lock' argument has been renamed to 'lock_objects'. Also, there is a new argument, 'lock_class', which can prevent changes to the class. (#52) - -* Fixed printing of NULL fields. - -R6 2.0.1 -======== - -* A superclass is validated on object instantation, not on class creation. - -* Added `debug` and `undebug` methods to generator object. - -R6 2.0 -======== - -* [BREAKING CHANGE] Added `portable` option, which allows inheritance across different package namespaces, and made it the default. - -* Added `set()` method on class generator object, so new fields and methods can be added after the generator has been created. - -* All of the functions involved in instantiating objects are encapsulated in an environment separate from the R6 namespace. This means that if a generator is created with one version of R6, saved, then restored in a new R session that has a different version of R6, there shouldn't be any problems with compatibility. - -* Methods are locked so that they can't be changed. (Fixes #19) - -* Inheritance of superclasses is dynamic; instead of reading in the superclass when a class is created, this happens each time an object is instantiated. (Fixes #12) - -* Added trailing newline when printing R6 objects. (Thanks to Gabor Csardi) - -* The `print` method of R6 objects can be redefined. (Thanks to Gabor Csardi) - -R6 1.0.1 -======== - -* First release on CRAN. - -* Removed pryr from suggested packages. - -R6 1.0 -======== - -* First release diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6 b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6 deleted file mode 100644 index 3b65e3c..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6 +++ /dev/null @@ -1,27 +0,0 @@ -# File share/R/nspackloader.R -# Part of the R package, http://www.R-project.org -# -# Copyright (C) 1995-2012 The R Core Team -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# A copy of the GNU General Public License is available at -# http://www.r-project.org/Licenses/ - -local({ - info <- loadingNamespaceInfo() - pkg <- info$pkgname - ns <- .getNamespace(as.name(pkg)) - if (is.null(ns)) - stop("cannot find namespace environment for ", pkg, domain = NA); - dbbase <- file.path(info$libname, pkg, "R", pkg) - lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.") -}) diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6.rdb b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6.rdb deleted file mode 100644 index c77c0b026deeb0b14212a1df46b71bdfc32d46f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9186 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 z zo-O3F`DL*f(3dy%dtP#gQXmy{6AjOJX;rer!t(cwbAc&6LA%}+fe4DWON$k7RSdmM?4bwDM0L=JO+o~?j2Pj$ERW(hF%;>mNWv#)q z>)m5u(WhU_CidHRQZERKvV||mVl1#G^Lv7+HKpu_r6?}K3(jsPU3>b8lLh6v8X8nu z6Q{seC8{zHEDEO;YajfjPnmS8)T8uHWbB7nif<@E?$Z09Prs|diESEwNGZvgC(Vq` zz04V0VRS#CMA&H1--r9^91S_emQvt5+RGv0L;5kDsknhoX<0!<3OjDYqA`gUIv)2~ zuAOWTg=x0p_weheTWkj}yi?hnC>SZSnoSCCSu+-#E{{m|0UDEiH2rJFDT58Nn*vf6 znr+j`vxA7&7gVL1gQ?Z|jtUeXC=e#n6J<8*Fse>~fSiS}d2N-B&-jPM^YsYf1A7n= zk%Vw_$LgSlcKG>Us7-JC_f-)wrM(Qry!;4SI@N9~SR`7`1rYN^9fFMjbMim7tXziZ zz2; zA^es~acFPSgm*!*51&g6-dNlL(-$P~cs!g7`=-|uuWxBG!6+cbHpv74q^3nV>r z#*_tqN&ZO@fMXB7%>$exQ!&(c<70jxjKPRI&jg;sT2teX!{XNzJGtzBk1~P#ar`CN zA1ptI-jUG5g zCk<~@p;fYN#7B#U^-R!-6kmzxROEPe7xb1Y9&VFJq2PV}2TmTzE&j(-n+dD!9pvDA zB2_0DEor3+y5H2YMJ5W$9*RaPIFi4=7ML3_nwmAX;;#TCiC^@#MTQCYSj|9yGmXg8I@=#(>4Ll`Md1uFIPuQ=33DT^-l_fVEn_B$9 z9XPP%DvWqD@bkbdRQ$j!@!f$LVuCbE1*Uhg>Y%Nxnt z@iMCBm>)@4K=87WfsiS3JWA-ChzfIMY{u0eIqFGx|5IQC28&8Ee8keDSDADtI z7D9ID;G+TsVsWL^%PpFleZA}AH^?wbnh#4i{h2~Pa##HtCTyHS&8}On=#ay)2(7f$ z;|eg{2;v{y-xoZTpPNBS*jJ)eV(lDak+xJOPySX#F10br%3apZKvwznkMV=woV%Je zwcfb4Iy)vcTdkykbA`Z!%Gu?3jEftBhm-^tL=n9d9>P(KuneEe7l-QNXMM8r;10pi zD_{r4prNFMX5b%kx+-!ta%}8@VI6QZ3gf=;C=0N|dK6|YwIaC>tY^cLYC8@{#gsI4 zLD5%{LyR4C&2~yzD;x7Xg7KQ;@;b!JmgmYhf~UoIJQR zj`tNX59M?DTYConA0FBN0mEAURO+SvnWI;cu9KB+2+7Qikj|2i{d6MPCiClWcw?|cj+>62?Y<4GR>xM{Yu(5SA64N8VaIG2b z_=vs{t`{s*xp)DArrC;YEa*+fVu@^J9e z)S^;%U%j=1OB{>slbKUX)HQ@eONUf8aieYFW~eKHZ&w0?THp4nx5(Xe^YEeOd6Vn` W;daDkW@aSix^rHz0b*TmiT?w=qbjQa diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6.rdx b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/R/R6.rdx deleted file mode 100644 index 1f281bd5cfe19db09f31a27d023e07c32dffc941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhC3iwFP!0000018tJaN&_(zhBKX3YqhpoQ4mzTfGY>8wu_30mf}Jx;sxA| zu}$02xsgl@E<}9KBqx`1PBRFh1X7a-*dF+R?#wwWjM@WKV#7v{olx$7!--d~OmkHln$>af#bxAL2#c z;9zaK2FtI}ed)yjoIn=_^lBqu<2)#>eLb2!2Xn3^E z4ZYR1`OX7|-6XchuWT?8FB5=#%)E1cK^mUUx|W5hLAXEYnvQgkv`Y [1] 10 - -## ----eval=FALSE---------------------------------------------------------- -# s <- Simple$new() -# debug(s$getx) -# s$getx() -# # [Debugging prompt] - -## ----eval=FALSE---------------------------------------------------------- -# undebug(s$getx) -# s$getx() -# #> [1] 10 - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.Rmd b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.Rmd deleted file mode 100644 index a57e6de..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.Rmd +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Debugging methods in R6 objects" -output: - html_document: - theme: null - css: mystyle.css - toc: yes -vignette: > - %\VignetteEngine{knitr::rmarkdown} - %\VignetteIndexEntry{Debugging methods in R6 objects} - %\usepackage[utf8]{inputenc} ---- - -```{r echo = FALSE} -knitr::opts_chunk$set(collapse = TRUE, comment = "#>") -``` - -Debugging methods in R6 classes is somewhat different from debugging normal R functions. - -RStudio breakpoints don't work in R6 class methods. The simplest way to debug code is to insert a `browser()` line where you want to open a debugging console, reload the classes, and then step through your code. But this involves modifying your code, reloading it, and re-instantiating any objects you want to test. - -## Enabling debugging for all future instances of a class - -R6 generator objects have a method called `debug()` which will enable debugging for a method. This will affect all instances of the class that are created after the `debug()` is called. - -```{r eval=FALSE} -# An example class -Simple <- R6Class("Simple", - public = list( - x = 10, - getx = function() self$x - ) -) - -# This will enable debugging the getx() method for objects of the 'Simple' -# class that are instantiated in the future. -Simple$debug("getx") - -s <- Simple$new() -s$getx() -# [Debugging prompt] -``` - -To disable debugging for future instances, use the generator's `undebug()` method: - -```{r eval=FALSE} -# Disable debugging for future instances: -Simple$undebug("getx") - -s <- Simple$new() -s$getx() -#> [1] 10 -``` - - -## Debugging methods in individual objects - -To enable debugging for a method in a single instance of an object, use the `debug()` function (not the `debug()` method in the generator object). - -```{r eval=FALSE} -s <- Simple$new() -debug(s$getx) -s$getx() -# [Debugging prompt] -``` - -Use `undebug()` to disable debugging on an object's method. - -```{r eval=FALSE} -undebug(s$getx) -s$getx() -#> [1] 10 -``` - - -You can also use the `trace()` function to specify where in a method you want to drop into the debugging console. diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.html b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.html deleted file mode 100644 index f6d0237..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Debugging.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - -Debugging methods in R6 objects - - - - - - - - - - - - - - - - - - - -

Debugging methods in R6 objects

- - - - -

Debugging methods in R6 classes is somewhat different from debugging normal R functions.

-

RStudio breakpoints don’t work in R6 class methods. The simplest way to debug code is to insert a browser() line where you want to open a debugging console, reload the classes, and then step through your code. But this involves modifying your code, reloading it, and re-instantiating any objects you want to test.

-
-

Enabling debugging for all future instances of a class

-

R6 generator objects have a method called debug() which will enable debugging for a method. This will affect all instances of the class that are created after the debug() is called.

-
# An example class
-Simple <- R6Class("Simple",
-  public = list(
-    x = 10,
-    getx = function() self$x
-  )
-)
-
-# This will enable debugging the getx() method for objects of the 'Simple'
-# class that are instantiated in the future.
-Simple$debug("getx")
-
-s <- Simple$new()
-s$getx()
-# [Debugging prompt]
-

To disable debugging for future instances, use the generator’s undebug() method:

-
# Disable debugging for future instances:
-Simple$undebug("getx")
-
-s <- Simple$new()
-s$getx()
-#> [1] 10
-
-
-

Debugging methods in individual objects

-

To enable debugging for a method in a single instance of an object, use the debug() function (not the debug() method in the generator object).

-
s <- Simple$new()
-debug(s$getx)
-s$getx()
-# [Debugging prompt]
-

Use undebug() to disable debugging on an object’s method.

-
undebug(s$getx)
-s$getx()
-#> [1] 10
-

You can also use the trace() function to specify where in a method you want to drop into the debugging console.

-
- - - - - - - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.R deleted file mode 100644 index 215ea0f..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.R +++ /dev/null @@ -1,432 +0,0 @@ -## ----echo = FALSE-------------------------------------------------------- -library(pryr) -knitr::opts_chunk$set(collapse = TRUE, comment = "#>") - -## ------------------------------------------------------------------------ -library(R6) - -Person <- R6Class("Person", - public = list( - name = NULL, - hair = NULL, - initialize = function(name = NA, hair = NA) { - self$name <- name - self$hair <- hair - self$greet() - }, - set_hair = function(val) { - self$hair <- val - }, - greet = function() { - cat(paste0("Hello, my name is ", self$name, ".\n")) - } - ) -) - -## ------------------------------------------------------------------------ -ann <- Person$new("Ann", "black") -ann - -## ------------------------------------------------------------------------ -ann$hair -ann$greet() -ann$set_hair("red") -ann$hair - -## ------------------------------------------------------------------------ -Queue <- R6Class("Queue", - public = list( - initialize = function(...) { - for (item in list(...)) { - self$add(item) - } - }, - add = function(x) { - private$queue <- c(private$queue, list(x)) - invisible(self) - }, - remove = function() { - if (private$length() == 0) return(NULL) - # Can use private$queue for explicit access - head <- private$queue[[1]] - private$queue <- private$queue[-1] - head - } - ), - private = list( - queue = list(), - length = function() base::length(private$queue) - ) -) - -q <- Queue$new(5, 6, "foo") - -## ------------------------------------------------------------------------ -# Add and remove items -q$add("something") -q$add("another thing") -q$add(17) -q$remove() -q$remove() - -## ----eval = FALSE-------------------------------------------------------- -# q$queue -# #> NULL -# q$length() -# #> Error: attempt to apply non-function - -## ------------------------------------------------------------------------ -q$add(10)$add(11)$add(12) - -## ------------------------------------------------------------------------ -q$remove() -q$remove() -q$remove() -q$remove() - -## ------------------------------------------------------------------------ -Numbers <- R6Class("Numbers", - public = list( - x = 100 - ), - active = list( - x2 = function(value) { - if (missing(value)) return(self$x * 2) - else self$x <- value/2 - }, - rand = function() rnorm(1) - ) -) - -n <- Numbers$new() -n$x - -## ------------------------------------------------------------------------ -n$x2 - -## ------------------------------------------------------------------------ -n$x2 <- 1000 -n$x - -## ----eval=FALSE---------------------------------------------------------- -# n$rand -# #> [1] 0.2648 -# n$rand -# #> [1] 2.171 -# n$rand <- 3 -# #> Error: unused argument (quote(3)) - -## ------------------------------------------------------------------------ -# Note that this isn't very efficient - it's just for illustrating inheritance. -HistoryQueue <- R6Class("HistoryQueue", - inherit = Queue, - public = list( - show = function() { - cat("Next item is at index", private$head_idx + 1, "\n") - for (i in seq_along(private$queue)) { - cat(i, ": ", private$queue[[i]], "\n", sep = "") - } - }, - remove = function() { - if (private$length() - private$head_idx == 0) return(NULL) - private$head_idx <<- private$head_idx + 1 - private$queue[[private$head_idx]] - } - ), - private = list( - head_idx = 0 - ) -) - -hq <- HistoryQueue$new(5, 6, "foo") -hq$show() -hq$remove() -hq$show() -hq$remove() - -## ------------------------------------------------------------------------ -CountingQueue <- R6Class("CountingQueue", - inherit = Queue, - public = list( - add = function(x) { - private$total <<- private$total + 1 - super$add(x) - }, - get_total = function() private$total - ), - private = list( - total = 0 - ) -) - -cq <- CountingQueue$new("x", "y") -cq$get_total() -cq$add("z") -cq$remove() -cq$remove() -cq$get_total() - -## ------------------------------------------------------------------------ -SimpleClass <- R6Class("SimpleClass", - public = list(x = NULL) -) - -SharedField <- R6Class("SharedField", - public = list( - e = SimpleClass$new() - ) -) - -s1 <- SharedField$new() -s1$e$x <- 1 - -s2 <- SharedField$new() -s2$e$x <- 2 - -# Changing s2$e$x has changed the value of s1$e$x -s1$e$x - -## ------------------------------------------------------------------------ -NonSharedField <- R6Class("NonSharedField", - public = list( - e = NULL, - initialize = function() self$e <- SimpleClass$new() - ) -) - -n1 <- NonSharedField$new() -n1$e$x <- 1 - -n2 <- NonSharedField$new() -n2$e$x <- 2 - -# n2$e$x does not affect n1$e$x -n1$e$x - -## ------------------------------------------------------------------------ -RC <- setRefClass("RC", - fields = list(x = 'ANY'), - methods = list( - getx = function() x, - setx = function(value) x <<- value - ) -) - -rc <- RC$new() -rc$setx(10) -rc$getx() - -## ------------------------------------------------------------------------ -NP <- R6Class("NP", - portable = FALSE, - public = list( - x = NA, - getx = function() x, - setx = function(value) x <<- value - ) -) - -np <- NP$new() -np$setx(10) -np$getx() - -## ------------------------------------------------------------------------ -P <- R6Class("P", - portable = TRUE, # This is default - public = list( - x = NA, - getx = function() self$x, - setx = function(value) self$x <- value - ) -) - -p <- P$new() -p$setx(10) -p$getx() - -## ------------------------------------------------------------------------ -Simple <- R6Class("Simple", - public = list( - x = 1, - getx = function() self$x - ) -) - -Simple$set("public", "getx2", function() self$x*2) - -# To replace an existing member, use overwrite=TRUE -Simple$set("public", "x", 10, overwrite = TRUE) - -s <- Simple$new() -s$x -s$getx2() - -## ------------------------------------------------------------------------ -# Create a locked class -Simple <- R6Class("Simple", - public = list( - x = 1, - getx = function() self$x - ), - lock_class = TRUE -) - -# This would result in an error -# Simple$set("public", "y", 2) - -# Unlock the class -Simple$unlock() - -# Now it works -Simple$set("public", "y", 2) - -# Lock the class again -Simple$lock() - -## ------------------------------------------------------------------------ -Simple <- R6Class("Simple", - public = list( - x = 1, - getx = function() self$x - ) -) - -s <- Simple$new() - -# Create a clone -s1 <- s$clone() -# Modify it -s1$x <- 2 -s1$getx() - -# Original is unaffected by changes to the clone -s$getx() - -## ----clone-size, echo=FALSE---------------------------------------------- -# Calculate size of clone method in this block. -Cloneable <- R6Class("Cloneable", cloneable = TRUE) -NonCloneable <- R6Class("NonCloneable", cloneable = FALSE) - -c1 <- Cloneable$new() -c2 <- Cloneable$new() -# Bytes for each new cloneable object -cloneable_delta <- object_size(c1, c2) - object_size(c2) - -nc1 <- NonCloneable$new() -nc2 <- NonCloneable$new() -# Bytes for each new noncloneable object -noncloneable_delta <- object_size(nc1, nc2) - object_size(nc2) - -# Number of bytes used by each copy of clone method -additional_clone_method_bytes <- cloneable_delta - noncloneable_delta -additional_clone_method_bytes_str <- capture.output(print(additional_clone_method_bytes)) - -# Number of bytes used by first copy of a clone method -first_clone_method_bytes <- object_size(c1) - object_size(nc1) -# Need some trickery to get the nice output from pryr::print.bytes -first_clone_method_bytes_str <- capture.output(print(first_clone_method_bytes)) - -## ------------------------------------------------------------------------ -Simple <- R6Class("Simple", public = list(x = 1)) - -Cloneable <- R6Class("Cloneable", - public = list( - s = NULL, - initialize = function() self$s <- Simple$new() - ) -) - -c1 <- Cloneable$new() -c2 <- c1$clone() - -# Change c1's `s` field -c1$s$x <- 2 - -# c2's `s` is the same object, so it reflects the change -c2$s$x - -## ------------------------------------------------------------------------ -c3 <- c1$clone(deep = TRUE) - -# Change c1's `s` field -c1$s$x <- 3 - -# c2's `s` is different -c3$s$x - -## ------------------------------------------------------------------------ -CloneEnv <- R6Class("CloneEnv", - public = list( - a = NULL, - b = NULL, - v = 1, - initialize = function() { - self$a <- new.env(parent = emptyenv()) - self$b <- new.env(parent = emptyenv()) - self$a$x <- 1 - self$b$x <- 1 - } - ), - private = list( - deep_clone = function(name, value) { - # With x$clone(deep=TRUE) is called, the deep_clone gets invoked once for - # each field, with the name and value. - if (name == "a") { - # `a` is an environment, so use this quick way of copying - list2env(as.list.environment(value, all.names = TRUE), - parent = emptyenv()) - } else { - # For all other fields, just return the value - value - } - } - ) -) - -c1 <- CloneEnv$new() -c2 <- c1$clone(deep = TRUE) - -## ------------------------------------------------------------------------ -# Modifying c1$a doesn't affect c2$a, because they're separate objects -c1$a$x <- 2 -c2$a$x - -# Modifying c1$b does affect c2$b, because they're the same object -c1$b$x <- 3 -c2$b$x - -# Modifying c1$v doesn't affect c2$v, because they're not reference objects -c1$v <- 4 -c2$v - -## ------------------------------------------------------------------------ -PrettyCountingQueue <- R6Class("PrettyCountingQueue", - inherit = CountingQueue, - public = list( - print = function(...) { - cat(" of ", self$get_total(), " elements\n", sep = "") - invisible(self) - } - ) -) - -## ------------------------------------------------------------------------ -pq <- PrettyCountingQueue$new(1, 2, "foobar") -pq - -## ------------------------------------------------------------------------ -A <- R6Class("A", public = list( - finalize = function() { - print("Finalizer has been called!") - } -)) - - -# Instantiate an object: -obj <- A$new() - -# Remove the single existing reference to it, and force garbage collection -# (normally garbage collection will happen automatically from time -# to time) -rm(obj); gc() - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.Rmd b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.Rmd deleted file mode 100644 index 136844b..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.Rmd +++ /dev/null @@ -1,624 +0,0 @@ ---- -title: "Introduction to R6 classes" -output: - html_document: - theme: null - css: mystyle.css - toc: yes -vignette: > - %\VignetteEngine{knitr::rmarkdown} - %\VignetteIndexEntry{Introduction to R6 classes} - %\usepackage[utf8]{inputenc} ---- - -```{r echo = FALSE} -library(pryr) -knitr::opts_chunk$set(collapse = TRUE, comment = "#>") -``` - -The R6 package provides a type of class which is similar to R's standard reference classes, but it is more efficient and doesn't depend on S4 classes and the methods package. - -## R6 classes - -R6 classes are similar to R's standard reference classes, but are lighter weight, and avoid some issues that come along with using S4 classes (R's reference classes are based on S4). For more information about speed and memory footprint, see the Performance vignette. - -Unlike many objects in R, instances (objects) of R6 classes have reference semantics. R6 classes also support: - -* public and private methods -* active bindings -* inheritance (superclasses) which works across packages - -Why the name R6? When R's reference classes were introduced, some users, following the names of R's existing class systems S3 and S4, called the new class system R5 in jest. Although reference classes are not actually called R5, the name of this package and its classes takes inspiration from that name. - -The name R5 was also a code-name used for a different object system started by Simon Urbanek, meant to solve some issues with S4 relating to syntax and performance. However, the R5 branch was shelved after a little development, and it was never released. - - -### Basics - -Here's how to create a simple R6 class. The `public` argument is a list of items, which can be functions and fields (non-functions). Functions will be used as methods. - -```{r} -library(R6) - -Person <- R6Class("Person", - public = list( - name = NULL, - hair = NULL, - initialize = function(name = NA, hair = NA) { - self$name <- name - self$hair <- hair - self$greet() - }, - set_hair = function(val) { - self$hair <- val - }, - greet = function() { - cat(paste0("Hello, my name is ", self$name, ".\n")) - } - ) -) -``` - -To instantiate an object of this class, use `$new()`: - -```{r} -ann <- Person$new("Ann", "black") -ann -``` - -The `$new()` method creates the object and calls the `initialize()` method, if it exists. - -Inside methods of the class, `self` refers to the object. Public members of the object (all you've seen so far) are accessed with `self$x`, and assignment is done with `self$x <- y`. Note that by default, `self` is required to access members, although for non-portable classes which we'll see later, it is optional. - -Once the object is instantiated, you can access values and methods with `$`: - -```{r} -ann$hair -ann$greet() -ann$set_hair("red") -ann$hair -``` - -Implementation note: The external face of an R6 object is basically an environment with the public members in it. This is also known as the *public environment*. An R6 object's methods have a separate *enclosing environment* which, roughly speaking, is the environment they "run in". This is where `self` binding is found, and it is simply a reference back to public environment. - -### Private members - -In the previous example, all the members were public. It's also possible to add private members: - -```{r} -Queue <- R6Class("Queue", - public = list( - initialize = function(...) { - for (item in list(...)) { - self$add(item) - } - }, - add = function(x) { - private$queue <- c(private$queue, list(x)) - invisible(self) - }, - remove = function() { - if (private$length() == 0) return(NULL) - # Can use private$queue for explicit access - head <- private$queue[[1]] - private$queue <- private$queue[-1] - head - } - ), - private = list( - queue = list(), - length = function() base::length(private$queue) - ) -) - -q <- Queue$new(5, 6, "foo") -``` - -Whereas public members are accessed with `self`, like `self$add()`, private members are accessed with `private`, like `private$queue`. - -The public members can be accessed as usual: - -```{r} -# Add and remove items -q$add("something") -q$add("another thing") -q$add(17) -q$remove() -q$remove() -``` - -However, private members can't be accessed directly: - -```{r eval = FALSE} -q$queue -#> NULL -q$length() -#> Error: attempt to apply non-function -``` - -A useful design pattern is for methods to return `self` (invisibly) when possible, because it makes them chainable. For example, the `add()` method returns `self` so you can chain them together: - -```{r} -q$add(10)$add(11)$add(12) -``` - -On the other hand, `remove()` returns the value removed, so it's not chainable: - -```{r} -q$remove() -q$remove() -q$remove() -q$remove() -``` - - -### Active bindings - -Active bindings look like fields, but each time they are accessed, they call a function. They are always publicly visible. - -```{r} -Numbers <- R6Class("Numbers", - public = list( - x = 100 - ), - active = list( - x2 = function(value) { - if (missing(value)) return(self$x * 2) - else self$x <- value/2 - }, - rand = function() rnorm(1) - ) -) - -n <- Numbers$new() -n$x -``` - -When an active binding is accessed as if reading a value, it calls the function with `value` as a missing argument: - -```{r} -n$x2 -``` - -When it's accessed as if assigning a value, it uses the assignment value as the `value` argument: - -```{r} -n$x2 <- 1000 -n$x -``` - -If the function takes no arguments, it's not possible to use it with `<-`: - -```{r eval=FALSE} -n$rand -#> [1] 0.2648 -n$rand -#> [1] 2.171 -n$rand <- 3 -#> Error: unused argument (quote(3)) -``` - -Implementation note: Active bindings are bound in the public environment. The enclosing environment for these functions is also the public environment. - -### Inheritance - -One R6 class can inherit from another. In other words, you can have super- and sub-classes. - -Subclasses can have additional methods, and they can also have methods that override the superclass methods. In this example of a queue that retains its history, we'll add a `show()` method and override the `remove()` method: - -```{r} -# Note that this isn't very efficient - it's just for illustrating inheritance. -HistoryQueue <- R6Class("HistoryQueue", - inherit = Queue, - public = list( - show = function() { - cat("Next item is at index", private$head_idx + 1, "\n") - for (i in seq_along(private$queue)) { - cat(i, ": ", private$queue[[i]], "\n", sep = "") - } - }, - remove = function() { - if (private$length() - private$head_idx == 0) return(NULL) - private$head_idx <<- private$head_idx + 1 - private$queue[[private$head_idx]] - } - ), - private = list( - head_idx = 0 - ) -) - -hq <- HistoryQueue$new(5, 6, "foo") -hq$show() -hq$remove() -hq$show() -hq$remove() -``` - -Superclass methods can be called with `super$xx()`. The `CountingQueue` (example below) keeps a count of the total number of objects that have ever been added to the queue. It does this by overriding the `add()` method -- it increments a counter and then calls the superclass's `add()` method, with `super$add(x)`: - -```{r} -CountingQueue <- R6Class("CountingQueue", - inherit = Queue, - public = list( - add = function(x) { - private$total <<- private$total + 1 - super$add(x) - }, - get_total = function() private$total - ), - private = list( - total = 0 - ) -) - -cq <- CountingQueue$new("x", "y") -cq$get_total() -cq$add("z") -cq$remove() -cq$remove() -cq$get_total() -``` - - -### Fields containing reference objects - -If your R6 class contains any fields that also have reference semantics (e.g., other R6 objects, and environments), those fields should be populated in the `initialize` method. If the field set to the reference object directly in the class definition, that object will be shared across all instances of the R6 objects. Here's an example: - -```{r} -SimpleClass <- R6Class("SimpleClass", - public = list(x = NULL) -) - -SharedField <- R6Class("SharedField", - public = list( - e = SimpleClass$new() - ) -) - -s1 <- SharedField$new() -s1$e$x <- 1 - -s2 <- SharedField$new() -s2$e$x <- 2 - -# Changing s2$e$x has changed the value of s1$e$x -s1$e$x -``` - -To avoid this, populate the field in the `initialize` method: - -```{r} -NonSharedField <- R6Class("NonSharedField", - public = list( - e = NULL, - initialize = function() self$e <- SimpleClass$new() - ) -) - -n1 <- NonSharedField$new() -n1$e$x <- 1 - -n2 <- NonSharedField$new() -n2$e$x <- 2 - -# n2$e$x does not affect n1$e$x -n1$e$x -``` - - -## Portable and non-portable classes - -In R6 version 1.0.1, the default was to create **non-portable** classes. In subsequent versions, the default is to create **portable** classes. The two most noticeable differences are that portable classes: - -* Support inheritance across different packages. Non-portable classes do not do this very well. -* Always require the use of `self` and `private` to access members, as in `self$x` and `private$y`. Non-portable classes can access these members with just `x` and `y`, and do assignment to these members with the `<<-` operator. - -The implementation of the first point is such that it makes the second point necessary. - -### Using `self` and `<<-` - -With reference classes, you can access the field without `self`, and assign to fields using `<<-`. For example: - -```{r} -RC <- setRefClass("RC", - fields = list(x = 'ANY'), - methods = list( - getx = function() x, - setx = function(value) x <<- value - ) -) - -rc <- RC$new() -rc$setx(10) -rc$getx() -``` - -The same is true for non-portable R6 classes: - -```{r} -NP <- R6Class("NP", - portable = FALSE, - public = list( - x = NA, - getx = function() x, - setx = function(value) x <<- value - ) -) - -np <- NP$new() -np$setx(10) -np$getx() -``` - -But for portable R6 classes (this is the default), you must use `self` and/or `private`, and `<<-` assignment doesn't work -- unless you use `self`, of course: - - -```{r} -P <- R6Class("P", - portable = TRUE, # This is default - public = list( - x = NA, - getx = function() self$x, - setx = function(value) self$x <- value - ) -) - -p <- P$new() -p$setx(10) -p$getx() -``` - -For more information, see the Portable vignette. - - -## Other topics - -### Adding members to an existing class - -It is sometimes useful to add members to a class after the class has already been created. This can be done using the `$set()` method on the generator object. - -```{r} -Simple <- R6Class("Simple", - public = list( - x = 1, - getx = function() self$x - ) -) - -Simple$set("public", "getx2", function() self$x*2) - -# To replace an existing member, use overwrite=TRUE -Simple$set("public", "x", 10, overwrite = TRUE) - -s <- Simple$new() -s$x -s$getx2() -``` - -The new members will be present only in instances that are created after `$set()` has been called. - -To prevent modification of a class, you can use `lock_class=TRUE` when creating the class. You can also lock and unlock a class as follows: - -```{r} -# Create a locked class -Simple <- R6Class("Simple", - public = list( - x = 1, - getx = function() self$x - ), - lock_class = TRUE -) - -# This would result in an error -# Simple$set("public", "y", 2) - -# Unlock the class -Simple$unlock() - -# Now it works -Simple$set("public", "y", 2) - -# Lock the class again -Simple$lock() -``` - - -### Cloning objects - -By default, R6 objects have method named `clone` for making a copy of the object. - -```{r} -Simple <- R6Class("Simple", - public = list( - x = 1, - getx = function() self$x - ) -) - -s <- Simple$new() - -# Create a clone -s1 <- s$clone() -# Modify it -s1$x <- 2 -s1$getx() - -# Original is unaffected by changes to the clone -s$getx() -``` - -```{r clone-size, echo=FALSE} -# Calculate size of clone method in this block. -Cloneable <- R6Class("Cloneable", cloneable = TRUE) -NonCloneable <- R6Class("NonCloneable", cloneable = FALSE) - -c1 <- Cloneable$new() -c2 <- Cloneable$new() -# Bytes for each new cloneable object -cloneable_delta <- object_size(c1, c2) - object_size(c2) - -nc1 <- NonCloneable$new() -nc2 <- NonCloneable$new() -# Bytes for each new noncloneable object -noncloneable_delta <- object_size(nc1, nc2) - object_size(nc2) - -# Number of bytes used by each copy of clone method -additional_clone_method_bytes <- cloneable_delta - noncloneable_delta -additional_clone_method_bytes_str <- capture.output(print(additional_clone_method_bytes)) - -# Number of bytes used by first copy of a clone method -first_clone_method_bytes <- object_size(c1) - object_size(nc1) -# Need some trickery to get the nice output from pryr::print.bytes -first_clone_method_bytes_str <- capture.output(print(first_clone_method_bytes)) -``` - -If you don't want a `clone` method to be added, you can use `cloneable=FALSE` when creating the class. If any loaded R6 object has a `clone` method, that function uses `r first_clone_method_bytes_str`, but for each additional object, the `clone` method costs a trivial amount of space (`r additional_clone_method_bytes` bytes). - - -#### Deep cloning - -If there are any fields which are objects with reference sematics (environments, R6 objects, reference class objects), the copy will get a reference to the same object. This is sometimes desirable, but often it is not. - -For example, we'll create an object `c1` which contains another R6 object, `s`, and then clone it. Because the original's and the clone's `s` fields both refer to the same object, modifying it from one results in a change that is reflect in the other. - -```{r} -Simple <- R6Class("Simple", public = list(x = 1)) - -Cloneable <- R6Class("Cloneable", - public = list( - s = NULL, - initialize = function() self$s <- Simple$new() - ) -) - -c1 <- Cloneable$new() -c2 <- c1$clone() - -# Change c1's `s` field -c1$s$x <- 2 - -# c2's `s` is the same object, so it reflects the change -c2$s$x -``` - -To make it so the clone receives a *copy* of `s`, we can use the `deep=TRUE` option: - -```{r} -c3 <- c1$clone(deep = TRUE) - -# Change c1's `s` field -c1$s$x <- 3 - -# c2's `s` is different -c3$s$x -``` - -The default behavior of `clone(deep=TRUE)` is to copy fields which are R6 objects, but not copy fields which are environments, reference class objects, or other data structures which contain other reference-type objects (for example, a list with an R6 object). - -If your R6 object contains these types of objects and you want to make a deep clone of them, you must provide your own function for deep cloning, in a private method named `deep_clone`. Below is an example of an R6 object with two fields, `a` and `b`, both of which which are environments, and both of which contain a value `x`. It also has a field `v` which is a regular (non-reference) value, and a private `deep_clone` method. - -The `deep_clone` method is be called once for each field. It is passed the name and value of the field, and the value it returns is be used in the clone. - -```{r} -CloneEnv <- R6Class("CloneEnv", - public = list( - a = NULL, - b = NULL, - v = 1, - initialize = function() { - self$a <- new.env(parent = emptyenv()) - self$b <- new.env(parent = emptyenv()) - self$a$x <- 1 - self$b$x <- 1 - } - ), - private = list( - deep_clone = function(name, value) { - # With x$clone(deep=TRUE) is called, the deep_clone gets invoked once for - # each field, with the name and value. - if (name == "a") { - # `a` is an environment, so use this quick way of copying - list2env(as.list.environment(value, all.names = TRUE), - parent = emptyenv()) - } else { - # For all other fields, just return the value - value - } - } - ) -) - -c1 <- CloneEnv$new() -c2 <- c1$clone(deep = TRUE) -``` - -When `c1$clone(deep=TRUE)` is called, the `deep_clone` method is called for each field in `c1`, and is passed the name of the field and value. In our version, the `a` environment gets copied, but `b` does not, nor does `v` (but that doesn't matter since `v` is not a reference object). We can test out the clone: - -```{r} -# Modifying c1$a doesn't affect c2$a, because they're separate objects -c1$a$x <- 2 -c2$a$x - -# Modifying c1$b does affect c2$b, because they're the same object -c1$b$x <- 3 -c2$b$x - -# Modifying c1$v doesn't affect c2$v, because they're not reference objects -c1$v <- 4 -c2$v -``` - -In the example `deep_clone` method above, we checked the name of each field to determine what to do with it, but we could also check the value, by using `inherits(value, "R6")`, or `is.environment()`, and so on. - - -### Printing R6 objects to the screen - -R6 objects have a default `print` method that lists all members of the object. -If a class defines a `print` method, then it overrides the default one. - -```{r} -PrettyCountingQueue <- R6Class("PrettyCountingQueue", - inherit = CountingQueue, - public = list( - print = function(...) { - cat(" of ", self$get_total(), " elements\n", sep = "") - invisible(self) - } - ) -) -``` - -```{r} -pq <- PrettyCountingQueue$new(1, 2, "foobar") -pq -``` - -### Finalizers - -Sometimes it's useful to run a function when the object is garbage collected. For example, you may want to make sure a file or database connection gets closed. To do this, you can define a `finalize()` method, which will be called with no arguments when the object is garbage collected. - - -```{r} -A <- R6Class("A", public = list( - finalize = function() { - print("Finalizer has been called!") - } -)) - - -# Instantiate an object: -obj <- A$new() - -# Remove the single existing reference to it, and force garbage collection -# (normally garbage collection will happen automatically from time -# to time) -rm(obj); gc() -``` - -Finalizers are implemented using the `reg.finalizer()` function, and they set `onexit=TRUE`, so that the finalizer will also be called when R exits. This is useful in some cases, like database connections. - - -## Summary - -R6 classes provide capabilities that are common in other object-oriented programming languages. They're similar to R's built-in reference classes, but are simpler, smaller, and faster, and they allow inheritance across packages. diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.html b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.html deleted file mode 100644 index f92d2af..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Introduction.html +++ /dev/null @@ -1,584 +0,0 @@ - - - - - - - - - - - - - - -Introduction to R6 classes - - - - - - - - - - - - - - - - - - - -

Introduction to R6 classes

- - - - -

The R6 package provides a type of class which is similar to R’s standard reference classes, but it is more efficient and doesn’t depend on S4 classes and the methods package.

-
-

R6 classes

-

R6 classes are similar to R’s standard reference classes, but are lighter weight, and avoid some issues that come along with using S4 classes (R’s reference classes are based on S4). For more information about speed and memory footprint, see the Performance vignette.

-

Unlike many objects in R, instances (objects) of R6 classes have reference semantics. R6 classes also support:

-
    -
  • public and private methods
  • -
  • active bindings
  • -
  • inheritance (superclasses) which works across packages
  • -
-

Why the name R6? When R’s reference classes were introduced, some users, following the names of R’s existing class systems S3 and S4, called the new class system R5 in jest. Although reference classes are not actually called R5, the name of this package and its classes takes inspiration from that name.

-

The name R5 was also a code-name used for a different object system started by Simon Urbanek, meant to solve some issues with S4 relating to syntax and performance. However, the R5 branch was shelved after a little development, and it was never released.

-
-

Basics

-

Here’s how to create a simple R6 class. The public argument is a list of items, which can be functions and fields (non-functions). Functions will be used as methods.

-
library(R6)
-
-Person <- R6Class("Person",
-  public = list(
-    name = NULL,
-    hair = NULL,
-    initialize = function(name = NA, hair = NA) {
-      self$name <- name
-      self$hair <- hair
-      self$greet()
-    },
-    set_hair = function(val) {
-      self$hair <- val
-    },
-    greet = function() {
-      cat(paste0("Hello, my name is ", self$name, ".\n"))
-    }
-  )
-)
-

To instantiate an object of this class, use $new():

-
ann <- Person$new("Ann", "black")
-#> Hello, my name is Ann.
-ann
-#> <Person>
-#>   Public:
-#>     clone: function (deep = FALSE) 
-#>     greet: function () 
-#>     hair: black
-#>     initialize: function (name = NA, hair = NA) 
-#>     name: Ann
-#>     set_hair: function (val)
-

The $new() method creates the object and calls the initialize() method, if it exists.

-

Inside methods of the class, self refers to the object. Public members of the object (all you’ve seen so far) are accessed with self$x, and assignment is done with self$x <- y. Note that by default, self is required to access members, although for non-portable classes which we’ll see later, it is optional.

-

Once the object is instantiated, you can access values and methods with $:

-
ann$hair
-#> [1] "black"
-ann$greet()
-#> Hello, my name is Ann.
-ann$set_hair("red")
-ann$hair
-#> [1] "red"
-

Implementation note: The external face of an R6 object is basically an environment with the public members in it. This is also known as the public environment. An R6 object’s methods have a separate enclosing environment which, roughly speaking, is the environment they “run inâ€. This is where self binding is found, and it is simply a reference back to public environment.

-
-
-

Private members

-

In the previous example, all the members were public. It’s also possible to add private members:

-
Queue <- R6Class("Queue",
-  public = list(
-    initialize = function(...) {
-      for (item in list(...)) {
-        self$add(item)
-      }
-    },
-    add = function(x) {
-      private$queue <- c(private$queue, list(x))
-      invisible(self)
-    },
-    remove = function() {
-      if (private$length() == 0) return(NULL)
-      # Can use private$queue for explicit access
-      head <- private$queue[[1]]
-      private$queue <- private$queue[-1]
-      head
-    }
-  ),
-  private = list(
-    queue = list(),
-    length = function() base::length(private$queue)
-  )
-)
-
-q <- Queue$new(5, 6, "foo")
-

Whereas public members are accessed with self, like self$add(), private members are accessed with private, like private$queue.

-

The public members can be accessed as usual:

-
# Add and remove items
-q$add("something")
-q$add("another thing")
-q$add(17)
-q$remove()
-#> [1] 5
-q$remove()
-#> [1] 6
-

However, private members can’t be accessed directly:

-
q$queue
-#> NULL
-q$length()
-#> Error: attempt to apply non-function
-

A useful design pattern is for methods to return self (invisibly) when possible, because it makes them chainable. For example, the add() method returns self so you can chain them together:

-
q$add(10)$add(11)$add(12)
-

On the other hand, remove() returns the value removed, so it’s not chainable:

-
q$remove()
-#> [1] "foo"
-q$remove()
-#> [1] "something"
-q$remove()
-#> [1] "another thing"
-q$remove()
-#> [1] 17
-
-
-

Active bindings

-

Active bindings look like fields, but each time they are accessed, they call a function. They are always publicly visible.

-
Numbers <- R6Class("Numbers",
-  public = list(
-    x = 100
-  ),
-  active = list(
-    x2 = function(value) {
-      if (missing(value)) return(self$x * 2)
-      else self$x <- value/2
-    },
-    rand = function() rnorm(1)
-  )
-)
-
-n <- Numbers$new()
-n$x
-#> [1] 100
-

When an active binding is accessed as if reading a value, it calls the function with value as a missing argument:

-
n$x2
-#> [1] 200
-

When it’s accessed as if assigning a value, it uses the assignment value as the value argument:

-
n$x2 <- 1000
-n$x
-#> [1] 500
-

If the function takes no arguments, it’s not possible to use it with <-:

-
n$rand
-#> [1] 0.2648
-n$rand
-#> [1] 2.171
-n$rand <- 3
-#> Error: unused argument (quote(3))
-

Implementation note: Active bindings are bound in the public environment. The enclosing environment for these functions is also the public environment.

-
-
-

Inheritance

-

One R6 class can inherit from another. In other words, you can have super- and sub-classes.

-

Subclasses can have additional methods, and they can also have methods that override the superclass methods. In this example of a queue that retains its history, we’ll add a show() method and override the remove() method:

-
# Note that this isn't very efficient - it's just for illustrating inheritance.
-HistoryQueue <- R6Class("HistoryQueue",
-  inherit = Queue,
-  public = list(
-    show = function() {
-      cat("Next item is at index", private$head_idx + 1, "\n")
-      for (i in seq_along(private$queue)) {
-        cat(i, ": ", private$queue[[i]], "\n", sep = "")
-      }
-    },
-    remove = function() {
-      if (private$length() - private$head_idx == 0) return(NULL)
-      private$head_idx <<- private$head_idx + 1
-      private$queue[[private$head_idx]]
-    }
-  ),
-  private = list(
-    head_idx = 0
-  )
-)
-
-hq <- HistoryQueue$new(5, 6, "foo")
-hq$show()
-#> Next item is at index 1 
-#> 1: 5
-#> 2: 6
-#> 3: foo
-hq$remove()
-#> [1] 5
-hq$show()
-#> Next item is at index 2 
-#> 1: 5
-#> 2: 6
-#> 3: foo
-hq$remove()
-#> [1] 6
-

Superclass methods can be called with super$xx(). The CountingQueue (example below) keeps a count of the total number of objects that have ever been added to the queue. It does this by overriding the add() method – it increments a counter and then calls the superclass’s add() method, with super$add(x):

-
CountingQueue <- R6Class("CountingQueue",
-  inherit = Queue,
-  public = list(
-    add = function(x) {
-      private$total <<- private$total + 1
-      super$add(x)
-    },
-    get_total = function() private$total
-  ),
-  private = list(
-    total = 0
-  )
-)
-
-cq <- CountingQueue$new("x", "y")
-cq$get_total()
-#> [1] 2
-cq$add("z")
-cq$remove()
-#> [1] "x"
-cq$remove()
-#> [1] "y"
-cq$get_total()
-#> [1] 3
-
-
-

Fields containing reference objects

-

If your R6 class contains any fields that also have reference semantics (e.g., other R6 objects, and environments), those fields should be populated in the initialize method. If the field set to the reference object directly in the class definition, that object will be shared across all instances of the R6 objects. Here’s an example:

-
SimpleClass <- R6Class("SimpleClass",
-  public = list(x = NULL)
-)
-
-SharedField <- R6Class("SharedField",
-  public = list(
-    e = SimpleClass$new()
-  )
-)
-
-s1 <- SharedField$new()
-s1$e$x <- 1
-
-s2 <- SharedField$new()
-s2$e$x <- 2
-
-# Changing s2$e$x has changed the value of s1$e$x
-s1$e$x
-#> [1] 2
-

To avoid this, populate the field in the initialize method:

-
NonSharedField <- R6Class("NonSharedField",
-  public = list(
-    e = NULL,
-    initialize = function() self$e <- SimpleClass$new()
-  )
-)
-
-n1 <- NonSharedField$new()
-n1$e$x <- 1
-
-n2 <- NonSharedField$new()
-n2$e$x <- 2
-
-# n2$e$x does not affect n1$e$x
-n1$e$x
-#> [1] 1
-
-
-
-

Portable and non-portable classes

-

In R6 version 1.0.1, the default was to create non-portable classes. In subsequent versions, the default is to create portable classes. The two most noticeable differences are that portable classes:

-
    -
  • Support inheritance across different packages. Non-portable classes do not do this very well.
  • -
  • Always require the use of self and private to access members, as in self$x and private$y. Non-portable classes can access these members with just x and y, and do assignment to these members with the <<- operator.
  • -
-

The implementation of the first point is such that it makes the second point necessary.

-
-

Using self and <<-

-

With reference classes, you can access the field without self, and assign to fields using <<-. For example:

-
RC <- setRefClass("RC",
-  fields = list(x = 'ANY'),
-  methods = list(
-    getx = function() x,
-    setx = function(value) x <<- value
-  )
-)
-
-rc <- RC$new()
-rc$setx(10)
-rc$getx()
-#> [1] 10
-

The same is true for non-portable R6 classes:

-
NP <- R6Class("NP",
-  portable = FALSE,
-  public = list(
-    x = NA,
-    getx = function() x,
-    setx = function(value) x <<- value
-  )
-)
-
-np <- NP$new()
-np$setx(10)
-np$getx()
-#> [1] 10
-

But for portable R6 classes (this is the default), you must use self and/or private, and <<- assignment doesn’t work – unless you use self, of course:

-
P <- R6Class("P",
-  portable = TRUE,  # This is default
-  public = list(
-    x = NA,
-    getx = function() self$x,
-    setx = function(value) self$x <- value
-  )
-)
-
-p <- P$new()
-p$setx(10)
-p$getx()
-#> [1] 10
-

For more information, see the Portable vignette.

-
-
-
-

Other topics

-
-

Adding members to an existing class

-

It is sometimes useful to add members to a class after the class has already been created. This can be done using the $set() method on the generator object.

-
Simple <- R6Class("Simple",
-  public = list(
-    x = 1,
-    getx = function() self$x
-  )
-)
-
-Simple$set("public", "getx2", function() self$x*2)
-
-# To replace an existing member, use overwrite=TRUE
-Simple$set("public", "x", 10, overwrite = TRUE)
-
-s <- Simple$new()
-s$x
-#> [1] 10
-s$getx2()
-#> [1] 20
-

The new members will be present only in instances that are created after $set() has been called.

-

To prevent modification of a class, you can use lock_class=TRUE when creating the class. You can also lock and unlock a class as follows:

-
# Create a locked class
-Simple <- R6Class("Simple",
-  public = list(
-    x = 1,
-    getx = function() self$x
-  ),
-  lock_class = TRUE
-)
-
-# This would result in an error
-# Simple$set("public", "y", 2)
-
-# Unlock the class
-Simple$unlock()
-
-# Now it works
-Simple$set("public", "y", 2)
-
-# Lock the class again
-Simple$lock()
-
-
-

Cloning objects

-

By default, R6 objects have method named clone for making a copy of the object.

-
Simple <- R6Class("Simple",
-  public = list(
-    x = 1,
-    getx = function() self$x
-  )
-)
-
-s <- Simple$new()
-
-# Create a clone
-s1 <- s$clone()
-# Modify it
-s1$x <- 2
-s1$getx()
-#> [1] 2
-
-# Original is unaffected by changes to the clone
-s$getx()
-#> [1] 1
-

If you don’t want a clone method to be added, you can use cloneable=FALSE when creating the class. If any loaded R6 object has a clone method, that function uses 48.1 kB, but for each additional object, the clone method costs a trivial amount of space (112 bytes).

-
-

Deep cloning

-

If there are any fields which are objects with reference sematics (environments, R6 objects, reference class objects), the copy will get a reference to the same object. This is sometimes desirable, but often it is not.

-

For example, we’ll create an object c1 which contains another R6 object, s, and then clone it. Because the original’s and the clone’s s fields both refer to the same object, modifying it from one results in a change that is reflect in the other.

-
Simple <- R6Class("Simple", public = list(x = 1))
-
-Cloneable <- R6Class("Cloneable",
-  public = list(
-    s = NULL,
-    initialize = function() self$s <- Simple$new()
-  )
-)
-
-c1 <- Cloneable$new()
-c2 <- c1$clone()
-
-# Change c1's `s` field
-c1$s$x <- 2
-
-# c2's `s` is the same object, so it reflects the change
-c2$s$x
-#> [1] 2
-

To make it so the clone receives a copy of s, we can use the deep=TRUE option:

-
c3 <- c1$clone(deep = TRUE)
-
-# Change c1's `s` field
-c1$s$x <- 3
-
-# c2's `s` is different
-c3$s$x
-#> [1] 2
-

The default behavior of clone(deep=TRUE) is to copy fields which are R6 objects, but not copy fields which are environments, reference class objects, or other data structures which contain other reference-type objects (for example, a list with an R6 object).

-

If your R6 object contains these types of objects and you want to make a deep clone of them, you must provide your own function for deep cloning, in a private method named deep_clone. Below is an example of an R6 object with two fields, a and b, both of which which are environments, and both of which contain a value x. It also has a field v which is a regular (non-reference) value, and a private deep_clone method.

-

The deep_clone method is be called once for each field. It is passed the name and value of the field, and the value it returns is be used in the clone.

-
CloneEnv <- R6Class("CloneEnv",
-  public = list(
-    a = NULL,
-    b = NULL,
-    v = 1,
-    initialize = function() {
-      self$a <- new.env(parent = emptyenv())
-      self$b <- new.env(parent = emptyenv())
-      self$a$x <- 1
-      self$b$x <- 1
-    }
-  ),
-  private = list(
-    deep_clone = function(name, value) {
-      # With x$clone(deep=TRUE) is called, the deep_clone gets invoked once for
-      # each field, with the name and value.
-      if (name == "a") {
-        # `a` is an environment, so use this quick way of copying
-        list2env(as.list.environment(value, all.names = TRUE),
-                 parent = emptyenv())
-      } else {
-        # For all other fields, just return the value
-        value
-      }
-    }
-  )
-)
-
-c1 <- CloneEnv$new()
-c2 <- c1$clone(deep = TRUE)
-

When c1$clone(deep=TRUE) is called, the deep_clone method is called for each field in c1, and is passed the name of the field and value. In our version, the a environment gets copied, but b does not, nor does v (but that doesn’t matter since v is not a reference object). We can test out the clone:

-
# Modifying c1$a doesn't affect c2$a, because they're separate objects
-c1$a$x <- 2
-c2$a$x
-#> [1] 1
-
-# Modifying c1$b does affect c2$b, because they're the same object
-c1$b$x <- 3
-c2$b$x
-#> [1] 3
-
-# Modifying c1$v doesn't affect c2$v, because they're not reference objects
-c1$v <- 4
-c2$v
-#> [1] 1
-

In the example deep_clone method above, we checked the name of each field to determine what to do with it, but we could also check the value, by using inherits(value, "R6"), or is.environment(), and so on.

-
-
-
-

Printing R6 objects to the screen

-

R6 objects have a default print method that lists all members of the object. If a class defines a print method, then it overrides the default one.

-
PrettyCountingQueue <- R6Class("PrettyCountingQueue",
-  inherit = CountingQueue,
-  public = list(
-    print = function(...) {
-      cat("<PrettyCountingQueue> of ", self$get_total(), " elements\n", sep = "")
-      invisible(self)
-    }
-  )
-)
-
pq <- PrettyCountingQueue$new(1, 2, "foobar")
-pq
-#> <PrettyCountingQueue> of 3 elements
-
-
-

Finalizers

-

Sometimes it’s useful to run a function when the object is garbage collected. For example, you may want to make sure a file or database connection gets closed. To do this, you can define a finalize() method, which will be called with no arguments when the object is garbage collected.

-
A <- R6Class("A", public = list(
-  finalize = function() {
-    print("Finalizer has been called!")
-  }
-))
-
-
-# Instantiate an object:
-obj <- A$new()
-
-# Remove the single existing reference to it, and force garbage collection
-# (normally garbage collection will happen automatically from time
-# to time)
-rm(obj); gc()
-#> [1] "Finalizer has been called!"
-#>           used (Mb) gc trigger (Mb) max used (Mb)
-#> Ncells  550905 29.5     940480 50.3   940480 50.3
-#> Vcells 1072054  8.2    2060183 15.8  1489990 11.4
-

Finalizers are implemented using the reg.finalizer() function, and they set onexit=TRUE, so that the finalizer will also be called when R exits. This is useful in some cases, like database connections.

-
-
-
-

Summary

-

R6 classes provide capabilities that are common in other object-oriented programming languages. They’re similar to R’s built-in reference classes, but are simpler, smaller, and faster, and they allow inheritance across packages.

-
- - - - - - - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.R deleted file mode 100644 index 8c6d49e..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.R +++ /dev/null @@ -1,518 +0,0 @@ -## ----echo = FALSE-------------------------------------------------------- -knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 3.9, fig.height = 3.5) - -# Make sure vignette doesn't error on platforms where microbenchmark is not present. -if (requireNamespace("microbenchmark", quietly = TRUE)) { - library(microbenchmark) - - # Only print 3 significant digits - print_microbenchmark <- function (x, unit, order = NULL, ...) { - s <- summary(x, unit = unit) - cat("Unit: ", attr(s, "unit"), "\n", sep = "") - - timing_cols <- c("min", "lq", "median", "uq", "max") - s[timing_cols] <- lapply(s[timing_cols], signif, digits = 3) - s[timing_cols] <- lapply(s[timing_cols], format, big.mark = ",") - - print(s, ..., row.names = FALSE) - } - - assignInNamespace("print.microbenchmark", print_microbenchmark, - "microbenchmark") - -} else { - # Some dummy functions so that the vignette doesn't throw an error. - microbenchmark <- function(...) { - structure(list(), class = "microbenchmark_dummy") - } - - summary.microbenchmark_dummy <- function(object, ...) { - data.frame(expr = "", median = 0) - } -} - -## ----eval = FALSE-------------------------------------------------------- -# library(microbenchmark) -# options(microbenchmark.unit = "us") -# library(pryr) # For object_size function -# library(R6) - -## ----echo = FALSE-------------------------------------------------------- -# The previous code block is just for appearances. This code block is the one -# that gets run. The loading of microbenchmark must be conditional because it is -# not available on all platforms. -if (requireNamespace("microbenchmark", quietly = TRUE)) { - library(microbenchmark) -} -options(microbenchmark.unit = "us") -library(pryr) # For object_size function -library(R6) - -## ----echo=FALSE---------------------------------------------------------- -library(ggplot2) -library(scales) - -# Set up ggplot2 theme -my_theme <- theme_bw(base_size = 10) + - theme(axis.title.x = element_blank(), - axis.title.y = element_blank(), - panel.grid.major.y = element_blank(), - panel.grid.minor.y = element_blank() - ) - -## ------------------------------------------------------------------------ -RC <- setRefClass("RC", - fields = list(x = "numeric"), - methods = list( - initialize = function(x = 1) .self$x <- x, - getx = function() x, - inc = function(n = 1) x <<- x + n - ) -) - -## ------------------------------------------------------------------------ -RC$new() - -## ------------------------------------------------------------------------ -R6 <- R6Class("R6", - public = list( - x = NULL, - initialize = function(x = 1) self$x <- x, - getx = function() self$x, - inc = function(n = 1) self$x <- x + n - ) -) - -## ------------------------------------------------------------------------ -R6$new() - -## ------------------------------------------------------------------------ -R6NoClass <- R6Class("R6NoClass", - class = FALSE, - public = list( - x = NULL, - initialize = function(x = 1) self$x <- x, - getx = function() self$x, - inc = function(n = 1) self$x <- self$x + n - ) -) - -## ------------------------------------------------------------------------ -R6NonPortable <- R6Class("R6NonPortable", - portable = FALSE, - public = list( - x = NULL, - initialize = function(value = 1) x <<- value, - getx = function() x, - inc = function(n = 1) x <<- x + n - ) -) - -## ------------------------------------------------------------------------ -R6NonCloneable <- R6Class("R6NonCloneable", - cloneable = FALSE, - public = list( - x = NULL, - initialize = function(x = 1) self$x <- x, - getx = function() self$x, - inc = function(n = 1) self$x <- self$x + n - ) -) - -## ------------------------------------------------------------------------ -R6Bare <- R6Class("R6Bare", - portable = FALSE, - class = FALSE, - cloneable = FALSE, - public = list( - x = NULL, - initialize = function(value = 1) x <<- value, - getx = function() x, - inc = function(n = 1) x <<- x + n - ) -) - -## ------------------------------------------------------------------------ -R6Private <- R6Class("R6Private", - private = list(x = NULL), - public = list( - initialize = function(x = 1) private$x <- x, - getx = function() private$x, - inc = function(n = 1) private$x <- private$x + n - ) -) - -## ------------------------------------------------------------------------ -R6Private$new() - -## ------------------------------------------------------------------------ -R6PrivateBare <- R6Class("R6PrivateBare", - portable = FALSE, - class = FALSE, - cloneable = FALSE, - private = list(x = NULL), - public = list( - initialize = function(x = 1) private$x <- x, - getx = function() x, - inc = function(n = 1) x <<- x + n - ) -) - -## ------------------------------------------------------------------------ -FunctionEnvClass <- function(x = 1) { - inc <- function(n = 1) x <<- x + n - getx <- function() x - self <- environment() - class(self) <- "FunctionEnvClass" - self -} - -## ------------------------------------------------------------------------ -ls(FunctionEnvClass()) - -## ------------------------------------------------------------------------ -FunctionEnvNoClass <- function(x = 1) { - inc <- function(n = 1) x <<- x + n - getx <- function() x - environment() -} - -## ------------------------------------------------------------------------ -ls(FunctionEnvNoClass()) - -## ----echo = FALSE-------------------------------------------------------- -# Utility functions for calculating sizes -obj_size <- function(expr, .env = parent.frame()) { - size_n <- function(n = 1) { - objs <- lapply(1:n, function(x) eval(expr, .env)) - as.numeric(do.call(object_size, objs)) - } - - data.frame(one = size_n(1), incremental = size_n(2) - size_n(1)) -} - -obj_sizes <- function(..., .env = parent.frame()) { - exprs <- as.list(match.call(expand.dots = FALSE)$...) - names(exprs) <- lapply(1:length(exprs), - FUN = function(n) { - name <- names(exprs)[n] - if (is.null(name) || name == "") paste(deparse(exprs[[n]]), collapse = " ") - else name - }) - - sizes <- mapply(obj_size, exprs, MoreArgs = list(.env = .env), SIMPLIFY = FALSE) - do.call(rbind, sizes) -} - -## ------------------------------------------------------------------------ -sizes <- obj_sizes( - RC$new(), - R6$new(), - R6NoClass$new(), - R6NonPortable$new(), - R6NonCloneable$new(), - R6Bare$new(), - R6Private$new(), - R6PrivateBare$new(), - FunctionEnvClass(), - FunctionEnvNoClass() -) -sizes - -## ----echo = FALSE, results = 'hold'-------------------------------------- -objnames <- c( - "RC", "R6", "R6NoClass", "R6NonPortable", "R6NonCloneable", - "R6Bare", "R6Private", "R6PrivateBare", "FunctionEnvClass", - "FunctionEnvNoClass" -) - -obj_labels <- objnames -obj_labels[1] <- "RC (off chart)" - -sizes$name <- factor(objnames, levels = rev(objnames)) - -ggplot(sizes, aes(y = name, x = one)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - scale_x_continuous(limits = c(0, max(sizes$one[-1]) * 1.5), - expand = c(0, 0), oob = rescale_none) + - scale_y_discrete( - breaks = sizes$name, - labels = obj_labels) + - my_theme + - ggtitle("First object") - -ggplot(sizes, aes(y = name, x = incremental)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - scale_x_continuous(limits = c(0, max(sizes$incremental) * 1.05), - expand = c(0, 0)) + - geom_point(size = 2) + - my_theme + - ggtitle("Additional objects") - -## ------------------------------------------------------------------------ -RC2 <- setRefClass("RC2", - fields = list(x = "numeric"), - methods = list( - initialize = function(x = 2) .self$x <<- x, - inc = function(n = 2) x <<- x * n - ) -) - -# Calcualte the size of a new RC2 object, over and above an RC object -as.numeric(object_size(RC$new(), RC2$new()) - object_size(RC$new())) - -## ------------------------------------------------------------------------ -# Function to extract the medians from microbenchmark results -mb_summary <- function(x) { - res <- summary(x, unit="us") - data.frame(name = res$expr, median = res$median) -} - -speed <- microbenchmark( - RC$new(), - R6$new(), - R6NoClass$new(), - R6NonPortable$new(), - R6NonCloneable$new(), - R6Bare$new(), - R6Private$new(), - R6PrivateBare$new(), - FunctionEnvClass(), - FunctionEnvNoClass() -) -speed <- mb_summary(speed) -speed - -## ----echo = FALSE, results = 'hold', fig.width = 8----------------------- -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - scale_x_continuous(limits = c(0, max(speed$median) * 1.05), expand = c(0, 0)) + - my_theme + - ggtitle("Median time to instantiate object (\u0b5s)") - -p - -## ------------------------------------------------------------------------ -rc <- RC$new() -r6 <- R6$new() -r6noclass <- R6NoClass$new() -r6noport <- R6NonPortable$new() -r6noclone <- R6NonCloneable$new() -r6bare <- R6Bare$new() -r6priv <- R6Private$new() -r6priv_bare <- R6PrivateBare$new() -fun_env <- FunctionEnvClass() -fun_env_nc <- FunctionEnvNoClass() - -## ------------------------------------------------------------------------ -speed <- microbenchmark( - rc$x, - r6$x, - r6noclass$x, - r6noport$x, - r6noclone$x, - r6bare$x, - r6priv$x, - r6priv_bare$x, - fun_env$x, - fun_env_nc$x -) -speed <- mb_summary(speed) -speed - -## ----echo = FALSE, results = 'hold', fig.width = 8----------------------- -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - scale_x_continuous(limits = c(0, max(speed$median) * 1.05), expand = c(0, 0)) + - my_theme + - ggtitle("Median time to access field (\u0b5s)") - -p - -## ------------------------------------------------------------------------ -speed <- microbenchmark( - rc$x <- 4, - r6$x <- 4, - r6noclass$x <- 4, - r6noport$x <- 4, - r6noclone$x <- 4, - r6bare$x <- 4, - # r6priv$x <- 4, # Can't set private field directly, - # r6priv_nc_np$x <- 4, # so we'll skip these two - fun_env$x <- 4, - fun_env_nc$x <- 4 -) -speed <- mb_summary(speed) -speed - -## ----echo = FALSE, results = 'hold', fig.width = 8----------------------- -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - scale_x_continuous(limits = c(0, max(speed$median) * 1.05), expand = c(0, 0)) + - my_theme + - ggtitle("Median time to set field (\u0b5s)") - -p - -## ------------------------------------------------------------------------ -speed <- microbenchmark( - rc$getx(), - r6$getx(), - r6noclass$getx(), - r6noport$getx(), - r6noclone$getx(), - r6bare$getx(), - r6priv$getx(), - r6priv_bare$getx(), - fun_env$getx(), - fun_env_nc$getx() -) -speed <- mb_summary(speed) -speed - -## ----echo = FALSE, results = 'hold', fig.width = 8----------------------- -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - my_theme + - ggtitle("Median time to call method that accesses field (\u0b5s)") - -p - -## ------------------------------------------------------------------------ -RCself <- setRefClass("RCself", - fields = list(x = "numeric"), - methods = list( - initialize = function() .self$x <- 1, - setx = function(n = 2) .self$x <- n - ) -) - -RCnoself <- setRefClass("RCnoself", - fields = list(x = "numeric"), - methods = list( - initialize = function() x <<- 1, - setx = function(n = 2) x <<- n - ) -) - -## ------------------------------------------------------------------------ -R6self <- R6Class("R6self", - portable = FALSE, - public = list( - x = 1, - setx = function(n = 2) self$x <- n - ) -) - -R6noself <- R6Class("R6noself", - portable = FALSE, - public = list( - x = 1, - setx = function(n = 2) x <<- n - ) -) - -## ------------------------------------------------------------------------ -rc_self <- RCself$new() -rc_noself <- RCnoself$new() -r6_self <- R6self$new() -r6_noself <- R6noself$new() - -speed <- microbenchmark( - rc_self$setx(), - rc_noself$setx(), - r6_self$setx(), - r6_noself$setx() -) -speed <- mb_summary(speed) -speed - -## ----echo = FALSE, results = 'hold', fig.width = 8----------------------- -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - my_theme + - ggtitle("Assignment to a field using self vs <<- (\u0b5s)") - -p - -## ------------------------------------------------------------------------ -e1 <- new.env(hash = FALSE, parent = emptyenv()) -e2 <- new.env(hash = FALSE, parent = emptyenv()) -e3 <- new.env(hash = FALSE, parent = emptyenv()) - -e1$x <- 1 -e2$x <- 1 -e3$x <- 1 - -class(e2) <- "e2" -class(e3) <- "e3" - -# Define an S3 method for class e3 -`$.e3` <- function(x, name) { - NULL -} - -## ------------------------------------------------------------------------ -speed <- microbenchmark( - e1$x, - e2$x, - e3$x -) -speed <- mb_summary(speed) -speed - -## ------------------------------------------------------------------------ -lst <- list(x = 10) -env <- new.env() -env$x <- 10 - -mb_summary(microbenchmark( - lst = lst$x, - env = env$x, - lst[['x']], - env[['x']] -)) - -## ----eval=FALSE---------------------------------------------------------- -# # Utility functions for calculating sizes -# obj_size <- function(expr, .env = parent.frame()) { -# size_n <- function(n = 1) { -# objs <- lapply(1:n, function(x) eval(expr, .env)) -# as.numeric(do.call(object_size, objs)) -# } -# -# data.frame(one = size_n(1), incremental = size_n(2) - size_n(1)) -# } -# -# obj_sizes <- function(..., .env = parent.frame()) { -# exprs <- as.list(match.call(expand.dots = FALSE)$...) -# names(exprs) <- lapply(1:length(exprs), -# FUN = function(n) { -# name <- names(exprs)[n] -# if (is.null(name) || name == "") paste(deparse(exprs[[n]]), collapse = " ") -# else name -# }) -# -# sizes <- mapply(obj_size, exprs, MoreArgs = list(.env = .env), SIMPLIFY = FALSE) -# do.call(rbind, sizes) -# } - -## ------------------------------------------------------------------------ -sessionInfo() - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.Rmd b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.Rmd deleted file mode 100644 index 086b31c..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.Rmd +++ /dev/null @@ -1,786 +0,0 @@ ---- -title: "R6 and Reference class performance tests" -output: - html_document: - theme: null - css: mystyle.css - toc: yes - fig_retina: false -vignette: > - %\VignetteEngine{knitr::rmarkdown} - %\VignetteIndexEntry{R6 and Reference class performance tests} - %\usepackage[utf8]{inputenc} ---- - -```{r echo = FALSE} -knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 3.9, fig.height = 3.5) - -# Make sure vignette doesn't error on platforms where microbenchmark is not present. -if (requireNamespace("microbenchmark", quietly = TRUE)) { - library(microbenchmark) - - # Only print 3 significant digits - print_microbenchmark <- function (x, unit, order = NULL, ...) { - s <- summary(x, unit = unit) - cat("Unit: ", attr(s, "unit"), "\n", sep = "") - - timing_cols <- c("min", "lq", "median", "uq", "max") - s[timing_cols] <- lapply(s[timing_cols], signif, digits = 3) - s[timing_cols] <- lapply(s[timing_cols], format, big.mark = ",") - - print(s, ..., row.names = FALSE) - } - - assignInNamespace("print.microbenchmark", print_microbenchmark, - "microbenchmark") - -} else { - # Some dummy functions so that the vignette doesn't throw an error. - microbenchmark <- function(...) { - structure(list(), class = "microbenchmark_dummy") - } - - summary.microbenchmark_dummy <- function(object, ...) { - data.frame(expr = "", median = 0) - } -} -``` - -This document compares the memory costs and speed of R's reference classes against R6 classes and simple environments. For must uses, R6 and reference classes have comparable features, but as we'll see, R6 classes are faster and lighter weight. - -This document tests reference classes against R6 classes (in many variations), as well as against very simple reference objects: environments created by functino calls. - -***** - -First we'll load some packages which will be used below: - -```{r eval = FALSE} -library(microbenchmark) -options(microbenchmark.unit = "us") -library(pryr) # For object_size function -library(R6) -``` - -```{r echo = FALSE} -# The previous code block is just for appearances. This code block is the one -# that gets run. The loading of microbenchmark must be conditional because it is -# not available on all platforms. -if (requireNamespace("microbenchmark", quietly = TRUE)) { - library(microbenchmark) -} -options(microbenchmark.unit = "us") -library(pryr) # For object_size function -library(R6) -``` - - -```{r echo=FALSE} -library(ggplot2) -library(scales) - -# Set up ggplot2 theme -my_theme <- theme_bw(base_size = 10) + - theme(axis.title.x = element_blank(), - axis.title.y = element_blank(), - panel.grid.major.y = element_blank(), - panel.grid.minor.y = element_blank() - ) -``` - -***** - -Class definitions -================= - -We'll start by defining a number of classes or class-like entities, using reference classes, R6 classes, and simple environments that are created directly by functions. There are a number of options for R6 that can affect the size of the resulting objects, so we will use a number of variants. These classes will be used for the speed and memory tests that follow. This is a lot of boring code, so you may want to skip ahead to the results. - - -All of these classes have the same basic characteristics: - -* A field named `x` that contains a number. -* An way of initializing the value of `x`. -* A method named `getx` for retrieving the value of `x`. -* A method named `inc` for incrementing the value of `x`. - -The fields and methods are accessed with the `$` operator, so if we have an object named `obj`, we could use `obj$x` or `obj$getx()`. - -## R reference class - -```{r} -RC <- setRefClass("RC", - fields = list(x = "numeric"), - methods = list( - initialize = function(x = 1) .self$x <- x, - getx = function() x, - inc = function(n = 1) x <<- x + n - ) -) -``` - -In reference classes, the binding that points back to the object is named `.self`. Within a method, assignment can be done by using `.self`, as in `.self$x <- 10`, or by using `<<-`, as in `x <<- 10`. - -To create an object, simply call `$new()` on the class: - -```{r} -RC$new() -``` - -## R6 class - -Creating an R6 class is similar to the reference class, except that there's no need to separate the fields and methods, and you can't specify the types of the fields. - -```{r} -R6 <- R6Class("R6", - public = list( - x = NULL, - initialize = function(x = 1) self$x <- x, - getx = function() self$x, - inc = function(n = 1) self$x <- x + n - ) -) -``` - -Whereas reference classes use `.self`, R6 classes use `self` (without the leading period). As with reference classes, objects are instantiated by calling `$new()`: - -```{r} -R6$new() -``` - -An R6 object essentially just a set of environments structured in a particular way. The fields and methods for an R6 object have bindings (that is, they have names) in the *public environment*. There is also have a separate environment which is the *enclosing environment* for methods (they "run in" an environment that contains a binding named `self`, which is simply a reference to the public environment). - - -## R6 class, without class attribute - -By default, a class attribute is added to R6 objects. This attribute adds a slight performance penalty because R will attempt to use S3 dispatch when using `$` on the object. - -It's possible generate objects without the class attribute, by using `class=FALSE`: - -```{r} -R6NoClass <- R6Class("R6NoClass", - class = FALSE, - public = list( - x = NULL, - initialize = function(x = 1) self$x <- x, - getx = function() self$x, - inc = function(n = 1) self$x <- self$x + n - ) -) -``` - -Note that without the class attribute, S3 method dispatch on the objects is not possible. - -## R6 class, non-portable - -By default, R6 objects are *portable*. This means that inheritance can be in classes that are in different packages. However, it also requires the use of `self$` and `private$` to access members, and this incurs a small performance penalty. - -If `portable=FALSE` is used, members can be accessed without using `self$`, and assignment can be done with `<<-`: - -```{r} -R6NonPortable <- R6Class("R6NonPortable", - portable = FALSE, - public = list( - x = NULL, - initialize = function(value = 1) x <<- value, - getx = function() x, - inc = function(n = 1) x <<- x + n - ) -) -``` - - -## R6 class, with `cloneable=FALSE` - -By default, R6 objects have a `clone()` method, which is a fairly large function. If you do not need this feature, you can save some memory by using `cloneable=FALSE`. - -```{r} -R6NonCloneable <- R6Class("R6NonCloneable", - cloneable = FALSE, - public = list( - x = NULL, - initialize = function(x = 1) self$x <- x, - getx = function() self$x, - inc = function(n = 1) self$x <- self$x + n - ) -) -``` - - -## R6 class, without class attribute, non-portable, and non-cloneable - -For comparison, we'll use a an R6 class that is without a class attribute, non-portable, and non-cloneable. This is the most stripped-down we can make an R6 object. - -```{r} -R6Bare <- R6Class("R6Bare", - portable = FALSE, - class = FALSE, - cloneable = FALSE, - public = list( - x = NULL, - initialize = function(value = 1) x <<- value, - getx = function() x, - inc = function(n = 1) x <<- x + n - ) -) -``` - - -## R6 class, with public and private members - -This variant has public and private members. - -```{r} -R6Private <- R6Class("R6Private", - private = list(x = NULL), - public = list( - initialize = function(x = 1) private$x <- x, - getx = function() private$x, - inc = function(n = 1) private$x <- private$x + n - ) -) -``` - -Instead of a single `self` object which refers to all items in an object, these objects have `self` (which refers to the public items) and `private`. - -```{r} -R6Private$new() -``` - - -## R6 class, with public and private, no class attribute, non-portable, and non-cloneable - -For comparison, we'll add a version that is without a class attribute, non-portable, and non-cloneable. - -```{r} -R6PrivateBare <- R6Class("R6PrivateBare", - portable = FALSE, - class = FALSE, - cloneable = FALSE, - private = list(x = NULL), - public = list( - initialize = function(x = 1) private$x <- x, - getx = function() x, - inc = function(n = 1) x <<- x + n - ) -) -``` - - -## Environment created by a function call, with class attribute - -In R, environments are passed by reference. A simple way to create an object that's passed by reference is to use the environment created by the invocation of a function. The function below captures that environment, attaches a class to it, and returns it: - -```{r} -FunctionEnvClass <- function(x = 1) { - inc <- function(n = 1) x <<- x + n - getx <- function() x - self <- environment() - class(self) <- "FunctionEnvClass" - self -} -``` - -Even though `x` isn't declared in the function body, it gets captured because it's an argument to the function. - -```{r} -ls(FunctionEnvClass()) -``` - -Objects created this way are very similar to those created by `R6` generator we created above. - - -## Environment created by a function call, without class attribute - -We can make an even simpler type of reference object to the previous one, by not having a a class attribute, and not having `self` object: - -```{r} -FunctionEnvNoClass <- function(x = 1) { - inc <- function(n = 1) x <<- x + n - getx <- function() x - environment() -} -``` - -This is simply an environment with some objects in it. - -```{r} -ls(FunctionEnvNoClass()) -``` - -***** - -Tests -===== - -For all the timings using `microbenchmark()`, the results are reported in microseconds, and the most useful value is probably the median column. - -## Memory footprint - -```{r echo = FALSE} -# Utility functions for calculating sizes -obj_size <- function(expr, .env = parent.frame()) { - size_n <- function(n = 1) { - objs <- lapply(1:n, function(x) eval(expr, .env)) - as.numeric(do.call(object_size, objs)) - } - - data.frame(one = size_n(1), incremental = size_n(2) - size_n(1)) -} - -obj_sizes <- function(..., .env = parent.frame()) { - exprs <- as.list(match.call(expand.dots = FALSE)$...) - names(exprs) <- lapply(1:length(exprs), - FUN = function(n) { - name <- names(exprs)[n] - if (is.null(name) || name == "") paste(deparse(exprs[[n]]), collapse = " ") - else name - }) - - sizes <- mapply(obj_size, exprs, MoreArgs = list(.env = .env), SIMPLIFY = FALSE) - do.call(rbind, sizes) -} -``` - - -How much memory does a single instance of each object take, and how much memory does each additional object take? We'll use the functions `obj_size` and `obj_sizes` (shown at the bottom of this document) to calculate the sizes. - -Sizes of each type of object, in bytes: - -```{r} -sizes <- obj_sizes( - RC$new(), - R6$new(), - R6NoClass$new(), - R6NonPortable$new(), - R6NonCloneable$new(), - R6Bare$new(), - R6Private$new(), - R6PrivateBare$new(), - FunctionEnvClass(), - FunctionEnvNoClass() -) -sizes -``` - -The results are plotted below. Note that the plots have very different x scales. - -```{r echo = FALSE, results = 'hold'} -objnames <- c( - "RC", "R6", "R6NoClass", "R6NonPortable", "R6NonCloneable", - "R6Bare", "R6Private", "R6PrivateBare", "FunctionEnvClass", - "FunctionEnvNoClass" -) - -obj_labels <- objnames -obj_labels[1] <- "RC (off chart)" - -sizes$name <- factor(objnames, levels = rev(objnames)) - -ggplot(sizes, aes(y = name, x = one)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - scale_x_continuous(limits = c(0, max(sizes$one[-1]) * 1.5), - expand = c(0, 0), oob = rescale_none) + - scale_y_discrete( - breaks = sizes$name, - labels = obj_labels) + - my_theme + - ggtitle("First object") - -ggplot(sizes, aes(y = name, x = incremental)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - scale_x_continuous(limits = c(0, max(sizes$incremental) * 1.05), - expand = c(0, 0)) + - geom_point(size = 2) + - my_theme + - ggtitle("Additional objects") -``` - -Some preliminary observations about the first instance of various classes: Using a reference class consumes a large amount of memory. For R6 objects, the option with the largest impact is `cloneable`: not having the `clone()` method saves around 40 kB of memory. - -For subsequent instances of these classes, there isn't nearly as much difference between the different kinds. - - -It appeared that using a reference class takes up a huge amount of memory, but much of that is shared between reference classes. Adding an object from a different reference class doesn't require much more memory --- around 38KB: - -```{r} -RC2 <- setRefClass("RC2", - fields = list(x = "numeric"), - methods = list( - initialize = function(x = 2) .self$x <<- x, - inc = function(n = 2) x <<- x * n - ) -) - -# Calcualte the size of a new RC2 object, over and above an RC object -as.numeric(object_size(RC$new(), RC2$new()) - object_size(RC$new())) -``` - -## Object instantiation speed - -How much time does it take to create one of these objects? This shows the median time, in microseconds: - -```{r} -# Function to extract the medians from microbenchmark results -mb_summary <- function(x) { - res <- summary(x, unit="us") - data.frame(name = res$expr, median = res$median) -} - -speed <- microbenchmark( - RC$new(), - R6$new(), - R6NoClass$new(), - R6NonPortable$new(), - R6NonCloneable$new(), - R6Bare$new(), - R6Private$new(), - R6PrivateBare$new(), - FunctionEnvClass(), - FunctionEnvNoClass() -) -speed <- mb_summary(speed) -speed -``` - -The plot below shows the median instantiation time. - -```{r echo = FALSE, results = 'hold', fig.width = 8} -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - scale_x_continuous(limits = c(0, max(speed$median) * 1.05), expand = c(0, 0)) + - my_theme + - ggtitle("Median time to instantiate object (\u0b5s)") - -p -``` - -Reference classes are much slower to instantiate than the other types of classes. Instantiating R6 objects is roughly 5 times faster. Creating an environment with a simple function call is another 20-30 times faster. - - -## Field access speed - -How much time does it take to access a field in an object? First we'll make some objects: - -```{r} -rc <- RC$new() -r6 <- R6$new() -r6noclass <- R6NoClass$new() -r6noport <- R6NonPortable$new() -r6noclone <- R6NonCloneable$new() -r6bare <- R6Bare$new() -r6priv <- R6Private$new() -r6priv_bare <- R6PrivateBare$new() -fun_env <- FunctionEnvClass() -fun_env_nc <- FunctionEnvNoClass() -``` - -And then get a value from these objects: - -```{r} -speed <- microbenchmark( - rc$x, - r6$x, - r6noclass$x, - r6noport$x, - r6noclone$x, - r6bare$x, - r6priv$x, - r6priv_bare$x, - fun_env$x, - fun_env_nc$x -) -speed <- mb_summary(speed) -speed -``` - - -```{r echo = FALSE, results = 'hold', fig.width = 8} -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - scale_x_continuous(limits = c(0, max(speed$median) * 1.05), expand = c(0, 0)) + - my_theme + - ggtitle("Median time to access field (\u0b5s)") - -p -``` - -Accessing the field of a reference class is much slower than the other methods. - -There's also an obvious pattern where accessing the field of an environment (created by R6 or a function call) is slower when there is a class attribute. This is because, for the objects that have a class attribute, R attempts to look up an S3 method for `$`, and this lookup has a performance penalty. We'll see more about this below. - - -## Field setting speed - -How much time does it take to set the value of a field in an object? - -```{r} -speed <- microbenchmark( - rc$x <- 4, - r6$x <- 4, - r6noclass$x <- 4, - r6noport$x <- 4, - r6noclone$x <- 4, - r6bare$x <- 4, - # r6priv$x <- 4, # Can't set private field directly, - # r6priv_nc_np$x <- 4, # so we'll skip these two - fun_env$x <- 4, - fun_env_nc$x <- 4 -) -speed <- mb_summary(speed) -speed -``` - -```{r echo = FALSE, results = 'hold', fig.width = 8} -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - scale_x_continuous(limits = c(0, max(speed$median) * 1.05), expand = c(0, 0)) + - my_theme + - ggtitle("Median time to set field (\u0b5s)") - -p -``` - -Reference classes are significantly slower than the others, again. In this case, there's additional overhead due to type-checking the value. - -Once more, the no-class objects are significantly faster than the others, again probably due to attempted S3 dispatch on the `` `$<-` `` function. - -## Speed of method call that accesses a field - -How much overhead is there when calling a method from one of these objects? All of these `getx()` methods simply return the value of `x` in the object. When necessary, this method uses `self$x` (for R6 classes, when `portable=TRUE`), and in others, it just uses `x` (when `portable=FALSE`, and in reference classes). - -```{r} -speed <- microbenchmark( - rc$getx(), - r6$getx(), - r6noclass$getx(), - r6noport$getx(), - r6noclone$getx(), - r6bare$getx(), - r6priv$getx(), - r6priv_bare$getx(), - fun_env$getx(), - fun_env_nc$getx() -) -speed <- mb_summary(speed) -speed -``` - -```{r echo = FALSE, results = 'hold', fig.width = 8} -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - my_theme + - ggtitle("Median time to call method that accesses field (\u0b5s)") - -p -``` - -The reference class is the slowest. - -`r6` is also somewhat slower than the others. There are two reasons for this: first, it uses `self$x` which adds some time, and second, it has a class attribute, which slows down the access of both `r6$getx` and `self$x`. - -One might expect `r6priv` to be the same speed as `r6`, but it is faster. Although accessing `r6priv$getx` is slow because `r6priv` has a class attribute, accessing `private$x` is faster because it does not have a class attribute. - -The objects which can access `x` directly (without `self` or `private`) and which lack a class attribute are the fastest. - -## Assignment using `self$x <-` vs. `x <<-` - -With reference classes, you can modify fields using the `<<-` operator, or by using the `.self` object. For example, compare the `setx()` methods of these two classes: - -```{r} -RCself <- setRefClass("RCself", - fields = list(x = "numeric"), - methods = list( - initialize = function() .self$x <- 1, - setx = function(n = 2) .self$x <- n - ) -) - -RCnoself <- setRefClass("RCnoself", - fields = list(x = "numeric"), - methods = list( - initialize = function() x <<- 1, - setx = function(n = 2) x <<- n - ) -) -``` - -Non-portable R6 classes are similar, except they use `self` instead of `.self`. - -```{r} -R6self <- R6Class("R6self", - portable = FALSE, - public = list( - x = 1, - setx = function(n = 2) self$x <- n - ) -) - -R6noself <- R6Class("R6noself", - portable = FALSE, - public = list( - x = 1, - setx = function(n = 2) x <<- n - ) -) -``` - - -```{r} -rc_self <- RCself$new() -rc_noself <- RCnoself$new() -r6_self <- R6self$new() -r6_noself <- R6noself$new() - -speed <- microbenchmark( - rc_self$setx(), - rc_noself$setx(), - r6_self$setx(), - r6_noself$setx() -) -speed <- mb_summary(speed) -speed -``` - -```{r echo = FALSE, results = 'hold', fig.width = 8} -speed$name <- factor(speed$name, rev(levels(speed$name))) - -p <- ggplot(speed, aes(y = name, x = median)) + - geom_segment(aes(yend = name), xend = 0, colour = "gray80") + - geom_point(size = 2) + - my_theme + - ggtitle("Assignment to a field using self vs <<- (\u0b5s)") - -p -``` - -For both reference and non-portable R6 classes, assignment using `.self$x <-` is somewhat slower than using `x <<-`. - -Bear in mind that, by default, R6 classes are portable, and can't use assignment with `x <<-`. - -## Overhead from using `$` on objects with a class attribute - -There is some overhead when using `$` on an object that has a class attribute. In the test below, we'll create three different kinds of objects: - -1. An environment with no class attribute. -1. An environment with a class `"e2"`, but without a `$.e2` S3 method. -1. An environment with a class `"e3"`, which has a `$.e3` S3 method that simply returns `NULL`. - -Each one of these environments will contain an object `x`. - -```{r} -e1 <- new.env(hash = FALSE, parent = emptyenv()) -e2 <- new.env(hash = FALSE, parent = emptyenv()) -e3 <- new.env(hash = FALSE, parent = emptyenv()) - -e1$x <- 1 -e2$x <- 1 -e3$x <- 1 - -class(e2) <- "e2" -class(e3) <- "e3" - -# Define an S3 method for class e3 -`$.e3` <- function(x, name) { - NULL -} -``` - -Now we can run timing tests for calling `$` on each type of object. Note that for the `e3` object, the `$` function does nothing --- it simply returns `NULL`. - -```{r} -speed <- microbenchmark( - e1$x, - e2$x, - e3$x -) -speed <- mb_summary(speed) -speed -``` - -Using `$` on `e2` and `e3` is much slower than on `e1`. This is because `e2` and `e3` have a class attribute. Even though there's no `$` method defined for `e2`, doing `e2$x` still about 6 times slower than `e1$x`, simply because R looks for an appropriate S3 method. - -`e3$x` is slightly faster than `e2$x`; this is probably because the `$.e3` function doesn't actually do anything other than return NULL. - -If an object has a class attribute, R will attempt to look for a method every time `$` is called. This can slow things down considerably, if `$` is used often. - -## Lists vs. environments, and `$` vs. `[[` - -Lists could also be used for creating classes (albeit not with reference semantics). How much time does it take to access items using `$` for lists vs. environments? We'll also compare using `obj$x` to `obj[['x']]`. - -```{r} -lst <- list(x = 10) -env <- new.env() -env$x <- 10 - -mb_summary(microbenchmark( - lst = lst$x, - env = env$x, - lst[['x']], - env[['x']] -)) -``` - -Performance is comparable across environments and lists. - -The `[[` operator is slightly faster than `$`, probably because it doesn't need to convert the unevaluated symbol to a string. - -***** - -Wrap-up -======= - -R6 objects take less memory and are significantly faster than R's reference class objects, and they also have some options that provide for even more speed. - -In these tests, the biggest speedup for R6 classes comes from not using a class attribute; this speeds up the use of `$`. Non-portable R6 classes can also access fields without `$` at all, which provides another modest speed boost. In most cases, these speed increases are negligible -- they are on the order of microseconds and will be noticeable only when tens or even hundreds of thousands of class member accesses are performed. - - -***** - -Appendix -======== - -## Functions for calculating object sizes - -```{r eval=FALSE} -# Utility functions for calculating sizes -obj_size <- function(expr, .env = parent.frame()) { - size_n <- function(n = 1) { - objs <- lapply(1:n, function(x) eval(expr, .env)) - as.numeric(do.call(object_size, objs)) - } - - data.frame(one = size_n(1), incremental = size_n(2) - size_n(1)) -} - -obj_sizes <- function(..., .env = parent.frame()) { - exprs <- as.list(match.call(expand.dots = FALSE)$...) - names(exprs) <- lapply(1:length(exprs), - FUN = function(n) { - name <- names(exprs)[n] - if (is.null(name) || name == "") paste(deparse(exprs[[n]]), collapse = " ") - else name - }) - - sizes <- mapply(obj_size, exprs, MoreArgs = list(.env = .env), SIMPLIFY = FALSE) - do.call(rbind, sizes) -} -``` - - -## System information - -```{r} -sessionInfo() -``` diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.html b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.html deleted file mode 100644 index 860a8ff..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Performance.html +++ /dev/null @@ -1,649 +0,0 @@ - - - - - - - - - - - - - - -R6 and Reference class performance tests - - - - - - - - - - - - - - - - - - - -

R6 and Reference class performance tests

- - - - -

This document compares the memory costs and speed of R’s reference classes against R6 classes and simple environments. For must uses, R6 and reference classes have comparable features, but as we’ll see, R6 classes are faster and lighter weight.

-

This document tests reference classes against R6 classes (in many variations), as well as against very simple reference objects: environments created by functino calls.

-
-

First we’ll load some packages which will be used below:

-
library(microbenchmark)
-options(microbenchmark.unit = "us")
-library(pryr)  # For object_size function
-library(R6)
-
-
-

Class definitions

-

We’ll start by defining a number of classes or class-like entities, using reference classes, R6 classes, and simple environments that are created directly by functions. There are a number of options for R6 that can affect the size of the resulting objects, so we will use a number of variants. These classes will be used for the speed and memory tests that follow. This is a lot of boring code, so you may want to skip ahead to the results.

-

All of these classes have the same basic characteristics:

-
    -
  • A field named x that contains a number.
  • -
  • An way of initializing the value of x.
  • -
  • A method named getx for retrieving the value of x.
  • -
  • A method named inc for incrementing the value of x.
  • -
-

The fields and methods are accessed with the $ operator, so if we have an object named obj, we could use obj$x or obj$getx().

-
-

R reference class

-
RC <- setRefClass("RC",
-  fields = list(x = "numeric"),
-  methods = list(
-    initialize = function(x = 1) .self$x <- x,
-    getx = function() x,
-    inc = function(n = 1) x <<- x + n
-  )
-)
-

In reference classes, the binding that points back to the object is named .self. Within a method, assignment can be done by using .self, as in .self$x <- 10, or by using <<-, as in x <<- 10.

-

To create an object, simply call $new() on the class:

-
RC$new()
-#> Reference class object of class "RC"
-#> Field "x":
-#> [1] 1
-
-
-

R6 class

-

Creating an R6 class is similar to the reference class, except that there’s no need to separate the fields and methods, and you can’t specify the types of the fields.

-
R6 <- R6Class("R6",
-  public = list(
-    x = NULL,
-    initialize = function(x = 1) self$x <- x,
-    getx = function() self$x,
-    inc = function(n = 1) self$x <- x + n
-  )
-)
-

Whereas reference classes use .self, R6 classes use self (without the leading period). As with reference classes, objects are instantiated by calling $new():

-
R6$new()
-#> <R6>
-#>   Public:
-#>     clone: function (deep = FALSE) 
-#>     getx: function () 
-#>     inc: function (n = 1) 
-#>     initialize: function (x = 1) 
-#>     x: 1
-

An R6 object essentially just a set of environments structured in a particular way. The fields and methods for an R6 object have bindings (that is, they have names) in the public environment. There is also have a separate environment which is the enclosing environment for methods (they “run in†an environment that contains a binding named self, which is simply a reference to the public environment).

-
-
-

R6 class, without class attribute

-

By default, a class attribute is added to R6 objects. This attribute adds a slight performance penalty because R will attempt to use S3 dispatch when using $ on the object.

-

It’s possible generate objects without the class attribute, by using class=FALSE:

-
R6NoClass <- R6Class("R6NoClass",
-  class = FALSE,
-  public = list(
-    x = NULL,
-    initialize = function(x = 1) self$x <- x,
-    getx = function() self$x,
-    inc = function(n = 1) self$x <- self$x + n
-  )
-)
-

Note that without the class attribute, S3 method dispatch on the objects is not possible.

-
-
-

R6 class, non-portable

-

By default, R6 objects are portable. This means that inheritance can be in classes that are in different packages. However, it also requires the use of self$ and private$ to access members, and this incurs a small performance penalty.

-

If portable=FALSE is used, members can be accessed without using self$, and assignment can be done with <<-:

-
R6NonPortable <- R6Class("R6NonPortable",
-  portable = FALSE,
-  public = list(
-    x = NULL,
-    initialize = function(value = 1) x <<- value,
-    getx = function() x,
-    inc = function(n = 1) x <<- x + n
-  )
-)
-
-
-

R6 class, with cloneable=FALSE

-

By default, R6 objects have a clone() method, which is a fairly large function. If you do not need this feature, you can save some memory by using cloneable=FALSE.

-
R6NonCloneable <- R6Class("R6NonCloneable",
-  cloneable = FALSE,
-  public = list(
-    x = NULL,
-    initialize = function(x = 1) self$x <- x,
-    getx = function() self$x,
-    inc = function(n = 1) self$x <- self$x + n
-  )
-)
-
-
-

R6 class, without class attribute, non-portable, and non-cloneable

-

For comparison, we’ll use a an R6 class that is without a class attribute, non-portable, and non-cloneable. This is the most stripped-down we can make an R6 object.

-
R6Bare <- R6Class("R6Bare",
-  portable = FALSE,
-  class = FALSE,
-  cloneable = FALSE,
-  public = list(
-    x = NULL,
-    initialize = function(value = 1) x <<- value,
-    getx = function() x,
-    inc = function(n = 1) x <<- x + n
-  )
-)
-
-
-

R6 class, with public and private members

-

This variant has public and private members.

-
R6Private <- R6Class("R6Private",
-  private = list(x = NULL),
-  public = list(
-    initialize = function(x = 1) private$x <- x,
-    getx = function() private$x,
-    inc = function(n = 1) private$x <- private$x + n
-  )
-)
-

Instead of a single self object which refers to all items in an object, these objects have self (which refers to the public items) and private.

-
R6Private$new()
-#> <R6Private>
-#>   Public:
-#>     clone: function (deep = FALSE) 
-#>     getx: function () 
-#>     inc: function (n = 1) 
-#>     initialize: function (x = 1) 
-#>   Private:
-#>     x: 1
-
-
-

R6 class, with public and private, no class attribute, non-portable, and non-cloneable

-

For comparison, we’ll add a version that is without a class attribute, non-portable, and non-cloneable.

-
R6PrivateBare <- R6Class("R6PrivateBare",
-  portable = FALSE,
-  class = FALSE,
-  cloneable = FALSE,
-  private = list(x = NULL),
-  public = list(
-    initialize = function(x = 1) private$x <- x,
-    getx = function() x,
-    inc = function(n = 1) x <<- x + n
-  )
-)
-
-
-

Environment created by a function call, with class attribute

-

In R, environments are passed by reference. A simple way to create an object that’s passed by reference is to use the environment created by the invocation of a function. The function below captures that environment, attaches a class to it, and returns it:

-
FunctionEnvClass <- function(x = 1) {
-  inc <- function(n = 1) x <<- x + n
-  getx <- function() x
-  self <- environment()
-  class(self) <- "FunctionEnvClass"
-  self
-}
-

Even though x isn’t declared in the function body, it gets captured because it’s an argument to the function.

-
ls(FunctionEnvClass())
-#> [1] "getx" "inc"  "self" "x"
-

Objects created this way are very similar to those created by R6 generator we created above.

-
-
-

Environment created by a function call, without class attribute

-

We can make an even simpler type of reference object to the previous one, by not having a a class attribute, and not having self object:

-
FunctionEnvNoClass <- function(x = 1) {
-  inc <- function(n = 1) x <<- x + n
-  getx <- function() x
-  environment()
-}
-

This is simply an environment with some objects in it.

-
ls(FunctionEnvNoClass())
-#> [1] "getx" "inc"  "x"
-
-
-
-
-

Tests

-

For all the timings using microbenchmark(), the results are reported in microseconds, and the most useful value is probably the median column.

-
-

Memory footprint

-

How much memory does a single instance of each object take, and how much memory does each additional object take? We’ll use the functions obj_size and obj_sizes (shown at the bottom of this document) to calculate the sizes.

-

Sizes of each type of object, in bytes:

-
sizes <- obj_sizes(
-  RC$new(),
-  R6$new(),
-  R6NoClass$new(),
-  R6NonPortable$new(),
-  R6NonCloneable$new(),
-  R6Bare$new(),
-  R6Private$new(),
-  R6PrivateBare$new(),
-  FunctionEnvClass(),
-  FunctionEnvNoClass()
-)
-sizes
-#>                         one incremental
-#> RC$new()             555688        1368
-#> R6$new()              60776        1008
-#> R6NoClass$new()       61480         896
-#> R6NonPortable$new()   60368         952
-#> R6NonCloneable$new()  13704         896
-#> R6Bare$new()          12896         728
-#> R6Private$new()       61680        1120
-#> R6PrivateBare$new()   13904         840
-#> FunctionEnvClass()    12816         624
-#> FunctionEnvNoClass()  11392         512
-

The results are plotted below. Note that the plots have very different x scales.

-

-

Some preliminary observations about the first instance of various classes: Using a reference class consumes a large amount of memory. For R6 objects, the option with the largest impact is cloneable: not having the clone() method saves around 40 kB of memory.

-

For subsequent instances of these classes, there isn’t nearly as much difference between the different kinds.

-

It appeared that using a reference class takes up a huge amount of memory, but much of that is shared between reference classes. Adding an object from a different reference class doesn’t require much more memory — around 38KB:

-
RC2 <- setRefClass("RC2",
-  fields = list(x = "numeric"),
-  methods = list(
-    initialize = function(x = 2) .self$x <<- x,
-    inc = function(n = 2) x <<- x * n
-  )
-)
-
-# Calcualte the size of a new RC2 object, over and above an RC object
-as.numeric(object_size(RC$new(), RC2$new()) - object_size(RC$new()))
-#> [1] 37176
-
-
-

Object instantiation speed

-

How much time does it take to create one of these objects? This shows the median time, in microseconds:

-
# Function to extract the medians from microbenchmark results
-mb_summary <- function(x) {
-  res <- summary(x, unit="us")
-  data.frame(name = res$expr, median = res$median)
-}
-
-speed <- microbenchmark(
-  RC$new(),
-  R6$new(),
-  R6NoClass$new(),
-  R6NonPortable$new(),
-  R6NonCloneable$new(),
-  R6Bare$new(),
-  R6Private$new(),
-  R6PrivateBare$new(),
-  FunctionEnvClass(),
-  FunctionEnvNoClass()
-)
-speed <- mb_summary(speed)
-speed
-#>                    name   median
-#> 1              RC$new() 220.1525
-#> 2              R6$new()  39.1770
-#> 3       R6NoClass$new()  36.3810
-#> 4   R6NonPortable$new()  36.6365
-#> 5  R6NonCloneable$new()  37.3490
-#> 6          R6Bare$new()  33.4570
-#> 7       R6Private$new()  52.5565
-#> 8   R6PrivateBare$new()  45.6435
-#> 9    FunctionEnvClass()   1.9740
-#> 10 FunctionEnvNoClass()   1.2335
-

The plot below shows the median instantiation time.

-

-

Reference classes are much slower to instantiate than the other types of classes. Instantiating R6 objects is roughly 5 times faster. Creating an environment with a simple function call is another 20-30 times faster.

-
-
-

Field access speed

-

How much time does it take to access a field in an object? First we’ll make some objects:

-
rc           <- RC$new()
-r6           <- R6$new()
-r6noclass    <- R6NoClass$new()
-r6noport     <- R6NonPortable$new()
-r6noclone    <- R6NonCloneable$new()
-r6bare       <- R6Bare$new()
-r6priv       <- R6Private$new()
-r6priv_bare  <- R6PrivateBare$new()
-fun_env      <- FunctionEnvClass()
-fun_env_nc   <- FunctionEnvNoClass()
-

And then get a value from these objects:

-
speed <- microbenchmark(
-  rc$x,
-  r6$x,
-  r6noclass$x,
-  r6noport$x,
-  r6noclone$x,
-  r6bare$x,
-  r6priv$x,
-  r6priv_bare$x,
-  fun_env$x,
-  fun_env_nc$x
-)
-speed <- mb_summary(speed)
-speed
-#>             name median
-#> 1           rc$x 6.4705
-#> 2           r6$x 1.0975
-#> 3    r6noclass$x 0.2555
-#> 4     r6noport$x 1.2270
-#> 5    r6noclone$x 1.1915
-#> 6       r6bare$x 0.2565
-#> 7       r6priv$x 1.2145
-#> 8  r6priv_bare$x 0.2650
-#> 9      fun_env$x 0.9770
-#> 10  fun_env_nc$x 0.2710
-

-

Accessing the field of a reference class is much slower than the other methods.

-

There’s also an obvious pattern where accessing the field of an environment (created by R6 or a function call) is slower when there is a class attribute. This is because, for the objects that have a class attribute, R attempts to look up an S3 method for $, and this lookup has a performance penalty. We’ll see more about this below.

-
-
-

Field setting speed

-

How much time does it take to set the value of a field in an object?

-
speed <- microbenchmark(
-  rc$x <- 4,
-  r6$x <- 4,
-  r6noclass$x <- 4,
-  r6noport$x <- 4,
-  r6noclone$x <- 4,
-  r6bare$x <- 4,
-  # r6priv$x <- 4,         # Can't set private field directly,
-  # r6priv_nc_np$x <- 4,   # so we'll skip these two
-  fun_env$x <- 4,
-  fun_env_nc$x <- 4
-)
-speed <- mb_summary(speed)
-speed
-#>                name  median
-#> 1         rc$x <- 4 30.7685
-#> 2         r6$x <- 4  1.7340
-#> 3  r6noclass$x <- 4  0.7465
-#> 4   r6noport$x <- 4  1.8975
-#> 5  r6noclone$x <- 4  1.8760
-#> 6     r6bare$x <- 4  0.7095
-#> 7    fun_env$x <- 4  1.6460
-#> 8 fun_env_nc$x <- 4  0.7305
-

-

Reference classes are significantly slower than the others, again. In this case, there’s additional overhead due to type-checking the value.

-

Once more, the no-class objects are significantly faster than the others, again probably due to attempted S3 dispatch on the `$<-` function.

-
-
-

Speed of method call that accesses a field

-

How much overhead is there when calling a method from one of these objects? All of these getx() methods simply return the value of x in the object. When necessary, this method uses self$x (for R6 classes, when portable=TRUE), and in others, it just uses x (when portable=FALSE, and in reference classes).

-
speed <- microbenchmark(
-  rc$getx(),
-  r6$getx(),
-  r6noclass$getx(),
-  r6noport$getx(),
-  r6noclone$getx(),
-  r6bare$getx(),
-  r6priv$getx(),
-  r6priv_bare$getx(),
-  fun_env$getx(),
-  fun_env_nc$getx()
-)
-speed <- mb_summary(speed)
-speed
-#>                  name median
-#> 1           rc$getx() 6.7705
-#> 2           r6$getx() 2.4550
-#> 3    r6noclass$getx() 0.5940
-#> 4     r6noport$getx() 1.4190
-#> 5    r6noclone$getx() 2.5665
-#> 6       r6bare$getx() 0.4000
-#> 7       r6priv$getx() 1.6015
-#> 8  r6priv_bare$getx() 0.4070
-#> 9      fun_env$getx() 1.2165
-#> 10  fun_env_nc$getx() 0.4015
-

-

The reference class is the slowest.

-

r6 is also somewhat slower than the others. There are two reasons for this: first, it uses self$x which adds some time, and second, it has a class attribute, which slows down the access of both r6$getx and self$x.

-

One might expect r6priv to be the same speed as r6, but it is faster. Although accessing r6priv$getx is slow because r6priv has a class attribute, accessing private$x is faster because it does not have a class attribute.

-

The objects which can access x directly (without self or private) and which lack a class attribute are the fastest.

-
-
-

Assignment using self$x <- vs. x <<-

-

With reference classes, you can modify fields using the <<- operator, or by using the .self object. For example, compare the setx() methods of these two classes:

-
RCself <- setRefClass("RCself",
-  fields = list(x = "numeric"),
-  methods = list(
-    initialize = function() .self$x <- 1,
-    setx = function(n = 2) .self$x <- n
-  )
-)
-
-RCnoself <- setRefClass("RCnoself",
-  fields = list(x = "numeric"),
-  methods = list(
-    initialize = function() x <<- 1,
-    setx = function(n = 2) x <<- n
-  )
-)
-

Non-portable R6 classes are similar, except they use self instead of .self.

-
R6self <- R6Class("R6self",
-  portable = FALSE,
-  public = list(
-    x = 1,
-    setx = function(n = 2) self$x <- n
-  )
-)
-
-R6noself <- R6Class("R6noself",
-  portable = FALSE,
-  public = list(
-    x = 1,
-    setx = function(n = 2) x <<- n
-  )
-)
-
rc_self   <- RCself$new()
-rc_noself <- RCnoself$new()
-r6_self   <- R6self$new()
-r6_noself <- R6noself$new()
-
-speed <- microbenchmark(
-  rc_self$setx(),
-  rc_noself$setx(),
-  r6_self$setx(),
-  r6_noself$setx()
-)
-speed <- mb_summary(speed)
-speed
-#>               name  median
-#> 1   rc_self$setx() 36.4870
-#> 2 rc_noself$setx() 22.4990
-#> 3   r6_self$setx()  4.0360
-#> 4 r6_noself$setx()  1.8445
-

-

For both reference and non-portable R6 classes, assignment using .self$x <- is somewhat slower than using x <<-.

-

Bear in mind that, by default, R6 classes are portable, and can’t use assignment with x <<-.

-
-
-

Overhead from using $ on objects with a class attribute

-

There is some overhead when using $ on an object that has a class attribute. In the test below, we’ll create three different kinds of objects:

-
    -
  1. An environment with no class attribute.
  2. -
  3. An environment with a class "e2", but without a $.e2 S3 method.
  4. -
  5. An environment with a class "e3", which has a $.e3 S3 method that simply returns NULL.
  6. -
-

Each one of these environments will contain an object x.

-
e1 <- new.env(hash = FALSE, parent = emptyenv())
-e2 <- new.env(hash = FALSE, parent = emptyenv())
-e3 <- new.env(hash = FALSE, parent = emptyenv())
-
-e1$x <- 1
-e2$x <- 1
-e3$x <- 1
-
-class(e2) <- "e2"
-class(e3) <- "e3"
-
-# Define an S3 method for class e3
-`$.e3` <- function(x, name) {
-  NULL
-}
-

Now we can run timing tests for calling $ on each type of object. Note that for the e3 object, the $ function does nothing — it simply returns NULL.

-
speed <- microbenchmark(
-  e1$x,
-  e2$x,
-  e3$x
-)
-speed <- mb_summary(speed)
-speed
-#>   name median
-#> 1 e1$x 0.2230
-#> 2 e2$x 0.8745
-#> 3 e3$x 0.7585
-

Using $ on e2 and e3 is much slower than on e1. This is because e2 and e3 have a class attribute. Even though there’s no $ method defined for e2, doing e2$x still about 6 times slower than e1$x, simply because R looks for an appropriate S3 method.

-

e3$x is slightly faster than e2$x; this is probably because the $.e3 function doesn’t actually do anything other than return NULL.

-

If an object has a class attribute, R will attempt to look for a method every time $ is called. This can slow things down considerably, if $ is used often.

-
-
-

Lists vs. environments, and $ vs. [[

-

Lists could also be used for creating classes (albeit not with reference semantics). How much time does it take to access items using $ for lists vs. environments? We’ll also compare using obj$x to obj[['x']].

-
lst <- list(x = 10)
-env <- new.env()
-env$x <- 10
-
-mb_summary(microbenchmark(
-  lst = lst$x,
-  env = env$x,
-  lst[['x']],
-  env[['x']]
-))
-#>         name median
-#> 1        lst 0.2065
-#> 2        env 0.2110
-#> 3 lst[["x"]] 0.1575
-#> 4 env[["x"]] 0.1550
-

Performance is comparable across environments and lists.

-

The [[ operator is slightly faster than $, probably because it doesn’t need to convert the unevaluated symbol to a string.

-
-
-
-
-

Wrap-up

-

R6 objects take less memory and are significantly faster than R’s reference class objects, and they also have some options that provide for even more speed.

-

In these tests, the biggest speedup for R6 classes comes from not using a class attribute; this speeds up the use of $. Non-portable R6 classes can also access fields without $ at all, which provides another modest speed boost. In most cases, these speed increases are negligible – they are on the order of microseconds and will be noticeable only when tens or even hundreds of thousands of class member accesses are performed.

-
-
-
-

Appendix

-
-

Functions for calculating object sizes

-
# Utility functions for calculating sizes
-obj_size <- function(expr, .env = parent.frame()) {
-  size_n <- function(n = 1) {
-    objs <- lapply(1:n, function(x) eval(expr, .env))
-    as.numeric(do.call(object_size, objs))
-  }
-
-  data.frame(one = size_n(1), incremental = size_n(2) - size_n(1))
-}
-
-obj_sizes <- function(..., .env = parent.frame()) {
-  exprs <- as.list(match.call(expand.dots = FALSE)$...)
-  names(exprs) <- lapply(1:length(exprs),
-    FUN = function(n) {
-      name <- names(exprs)[n]
-      if (is.null(name) || name == "") paste(deparse(exprs[[n]]), collapse = " ")
-      else name
-    })
-
-  sizes <- mapply(obj_size, exprs, MoreArgs = list(.env = .env), SIMPLIFY = FALSE)
-  do.call(rbind, sizes)
-}
-
-
-

System information

-
sessionInfo()
-#> R version 3.4.0 (2017-04-21)
-#> Platform: x86_64-apple-darwin15.6.0 (64-bit)
-#> Running under: macOS Sierra 10.12.5
-#> 
-#> Matrix products: default
-#> BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
-#> LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
-#> 
-#> locale:
-#> [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
-#> 
-#> attached base packages:
-#> [1] stats     graphics  grDevices utils     datasets  methods   base     
-#> 
-#> other attached packages:
-#> [1] scales_0.4.1           ggplot2_2.2.1.9000     microbenchmark_1.4-2.1
-#> [4] R6_2.2.2               pryr_0.1.2            
-#> 
-#> loaded via a namespace (and not attached):
-#>  [1] Rcpp_0.12.11       knitr_1.16         magrittr_1.5      
-#>  [4] munsell_0.4.3      colorspace_1.3-2   rlang_0.1.1       
-#>  [7] stringr_1.2.0      plyr_1.8.4         tools_3.4.0       
-#> [10] grid_3.4.0         gtable_0.2.0       htmltools_0.3.6   
-#> [13] yaml_2.1.14        lazyeval_0.2.0     rprojroot_1.2     
-#> [16] digest_0.6.12      tibble_1.3.3       codetools_0.2-15  
-#> [19] evaluate_0.10      rmarkdown_1.5.9000 labeling_0.3      
-#> [22] stringi_1.1.5      compiler_3.4.0     backports_1.1.0
-
-
- - - - - - - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.R deleted file mode 100644 index cefb0cf..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.R +++ /dev/null @@ -1,157 +0,0 @@ -## ----echo = FALSE-------------------------------------------------------- -knitr::opts_chunk$set(collapse = TRUE, comment = "#>") - -## ------------------------------------------------------------------------ -library(R6) -# Simulate packages by creating environments -pkgA <- new.env() -pkgB <- new.env() - -# Create a function in pkgA but not pkgB -pkgA$fun <- function() 10 - -ClassA <- R6Class("ClassA", - portable = FALSE, - public = list( - foo = function() fun() - ), - parent_env = pkgA -) - -# ClassB inherits from ClassA -ClassB <- R6Class("ClassB", - portable = FALSE, - inherit = ClassA, - parent_env = pkgB -) - -## ------------------------------------------------------------------------ -a <- ClassA$new() -a$foo() - -## ----eval=FALSE---------------------------------------------------------- -# b <- ClassB$new() -# b$foo() -# #> Error in b$foo() : could not find function "fun" - -## ------------------------------------------------------------------------ -pkgA <- new.env() -pkgB <- new.env() - -pkgA$fun <- function() { - "This function `fun` in pkgA" -} - -ClassA <- R6Class("ClassA", - portable = TRUE, # The default - public = list( - foo = function() fun() - ), - parent_env = pkgA -) - -ClassB <- R6Class("ClassB", - portable = TRUE, - inherit = ClassA, - parent_env = pkgB -) - - -a <- ClassA$new() -a$foo() - -b <- ClassB$new() -b$foo() - -## ------------------------------------------------------------------------ -pkgC <- new.env() -pkgC$fun <- function() { - "This function `fun` in pkgC" -} - -ClassC <- R6Class("ClassC", - portable = TRUE, - inherit = ClassA, - public = list( - foo = function() fun() - ), - parent_env = pkgC -) - -cc <- ClassC$new() -# This method is defined in ClassC, so finds pkgC$fun -cc$foo() - -## ------------------------------------------------------------------------ -NP <- R6Class("NP", - portable = FALSE, - public = list( - x = 1, - getxy = function() c(x, y), - sety = function(value) y <<- value - ), - private = list( - y = NA - ) -) - -np <- NP$new() - -np$sety(20) -np$getxy() - -## ----eval=FALSE---------------------------------------------------------- -# P <- R6Class("P", -# portable = TRUE, -# public = list( -# x = 1, -# getxy = function() c(x, y), -# sety = function(value) y <<- value -# ), -# private = list( -# y = NA -# ) -# ) -# -# p <- P$new() -# -# # No error, but instead of setting private$y, this sets y in the global -# # environment! This is because of the sematics of <<-. -# p$sety(20) -# y -# #> [1] 20 -# -# p$getxy() -# #> Error in p$getxy() : object 'y' not found - -## ------------------------------------------------------------------------ -P2 <- R6Class("P2", - portable = TRUE, - public = list( - x = 1, - getxy = function() c(self$x, private$y), - sety = function(value) private$y <- value - ), - private = list( - y = NA - ) -) - -p2 <- P2$new() -p2$sety(20) -p2$getxy() - -## ----eval=FALSE---------------------------------------------------------- -# ClassB <- R6Class("ClassB", -# inherit = pkgA::ClassA, -# public = list(x = 1) -# ) -# -# # We'll fill this at load time -# objB <- NULL -# -# .onLoad <- function(libname, pkgname) { -# # The namespace is locked after loading; we can still modify objB at this time. -# objB <<- ClassB$new() -# } - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.Rmd b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.Rmd deleted file mode 100644 index 83a760d..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.Rmd +++ /dev/null @@ -1,245 +0,0 @@ ---- -title: "Portable and non-portable R6 classes" -output: - html_document: - theme: null - css: mystyle.css - toc: yes -vignette: > - %\VignetteEngine{knitr::rmarkdown} - %\VignetteIndexEntry{Portable and non-portable R6 classes} - %\usepackage[utf8]{inputenc} ---- - -```{r echo = FALSE} -knitr::opts_chunk$set(collapse = TRUE, comment = "#>") -``` - -One limitation to R's reference classes is that class inheritance across package namespaces is limited. R6 avoids this problem when the `portable` option is enabled. - -## The problem - -Here is an example of the cross-package inheritance problem with reference classes: Suppose you have ClassA in pkgA, and ClassB in pkgB, which inherits from ClassA. ClassA has a method `foo` which calls a non-exported function `fun` in pkgA. - -If ClassB inherits `foo`, it will try to call `fun` -- but since ClassB objects are created in pkgB namespace (which is an environment) instead of the pkgA namespace, it won't be able to find `fun`. - -Something similar happens with R6 when the `portable=FALSE` option is used. For example: - -```{r} -library(R6) -# Simulate packages by creating environments -pkgA <- new.env() -pkgB <- new.env() - -# Create a function in pkgA but not pkgB -pkgA$fun <- function() 10 - -ClassA <- R6Class("ClassA", - portable = FALSE, - public = list( - foo = function() fun() - ), - parent_env = pkgA -) - -# ClassB inherits from ClassA -ClassB <- R6Class("ClassB", - portable = FALSE, - inherit = ClassA, - parent_env = pkgB -) -``` - -When we create an instance of ClassA, it works as expected: - -```{r} -a <- ClassA$new() -a$foo() -``` - -But with ClassB, it can't find the `foo` function: - -```{r eval=FALSE} -b <- ClassB$new() -b$foo() -#> Error in b$foo() : could not find function "fun" -``` - - -## Portable R6 - -R6 supports inheritance across different packages, with the default `portable=TRUE` option. In this example, we'll again simulate different packages by creating separate parent environments for the classes. - -```{r} -pkgA <- new.env() -pkgB <- new.env() - -pkgA$fun <- function() { - "This function `fun` in pkgA" -} - -ClassA <- R6Class("ClassA", - portable = TRUE, # The default - public = list( - foo = function() fun() - ), - parent_env = pkgA -) - -ClassB <- R6Class("ClassB", - portable = TRUE, - inherit = ClassA, - parent_env = pkgB -) - - -a <- ClassA$new() -a$foo() - -b <- ClassB$new() -b$foo() -``` - - -When a method is inherited from a superclass, that method also gets that class's environment. In other words, method "runs in" the superclass's environment. This makes it possible for inheritance to work across packages. - -When a method is defined in the subclass, that method gets the subclass's environment. For example, here ClassC is a subclass of ClassA, and defines its own `foo` method which overrides the `foo` method from ClassA. It happens that the method looks the same as ClassA's -- it just calls `fun`. But this time it finds `pkgC$fun` instead of `pkgA$fun`. This is in contrast to ClassB, which inherited the `foo` method and environment from ClassA. - -```{r} -pkgC <- new.env() -pkgC$fun <- function() { - "This function `fun` in pkgC" -} - -ClassC <- R6Class("ClassC", - portable = TRUE, - inherit = ClassA, - public = list( - foo = function() fun() - ), - parent_env = pkgC -) - -cc <- ClassC$new() -# This method is defined in ClassC, so finds pkgC$fun -cc$foo() -``` - - -## Using `self` - -One important difference between non-portable and portable classes is that with non-portable classes, it's possible to access members with just the name of the member, and with portable classes, member access always requires using `self$` or `private$`. This is a consequence of the inheritance implementation. - -Here's an example of a non-portable class with two methods: `sety`, which sets the private field `y` using the `<<-` operator, and `getxy`, which returns a vector with the values of fields `x` and `y`: - -```{r} -NP <- R6Class("NP", - portable = FALSE, - public = list( - x = 1, - getxy = function() c(x, y), - sety = function(value) y <<- value - ), - private = list( - y = NA - ) -) - -np <- NP$new() - -np$sety(20) -np$getxy() -``` - -If we attempt the same with a portable class, it results in an error: - -```{r eval=FALSE} -P <- R6Class("P", - portable = TRUE, - public = list( - x = 1, - getxy = function() c(x, y), - sety = function(value) y <<- value - ), - private = list( - y = NA - ) -) - -p <- P$new() - -# No error, but instead of setting private$y, this sets y in the global -# environment! This is because of the sematics of <<-. -p$sety(20) -y -#> [1] 20 - -p$getxy() -#> Error in p$getxy() : object 'y' not found -``` - -To make this work with a portable class, we need to use `self$x` and `private$y`: - -```{r} -P2 <- R6Class("P2", - portable = TRUE, - public = list( - x = 1, - getxy = function() c(self$x, private$y), - sety = function(value) private$y <- value - ), - private = list( - y = NA - ) -) - -p2 <- P2$new() -p2$sety(20) -p2$getxy() -``` - - -There is a small performance penalty for using `self$x` as opposed to `x`. In most cases, this is negligible, but it can be noticeable in some situations where there are tens of thousands or more accesses per second. For more information, see the Performance vignette. - - -## Potential pitfalls with cross-package inheritance - -Inheritance happens when an object is instantiated with `MyClass$new()`. At that time, members from the superclass get copied to the new object. This means that when you instantiate R6 object, it will essentially save some pieces of the superclass in the object. - -Because of the way that packages are built in R, R6's inheritance behavior could potentially lead to surprising, hard-to-diagnose problems when packages change versions. - -Suppose you have two packages, pkgA, containing `ClassA`, and pkgB, containing `ClassB`, and there is code in pkgB that instantiates `ClassB` in an object, `objB`, at build time. This is in contrast to instantiating `ClassB` at run-time, by calling a function. All of the code in the package is run when a *binary* package is built, and the resulting objects are saved in the package. (Generally, if the object can be accessed with `pkgB:::objB`, this means it was created at build time.) - -When `objB` is created at package build time, pieces from the superclass, `pkgA::ClassA`, are saved inside of it. This is fine in and of itself. But imagine that pkgB was built and installed against pkgA 1.0, and then you upgrade to pkgA 2.0 without subsequently building and installing pkgB. Then `pkgB::objB` will contain some code from `pkgA::ClassA` 1.0, but the version of `pkgA::ClassA` that's installed will be 2.0. This can cause problems if `objB` inherited code which uses parts of `pkgA` that have changed -- but the problems may not be entirely obvious. - -This scenario is entirely possible when installing packages from CRAN. It is very common for a package to be upgraded without upgrading all of its downstream dependencies. As far as I know, R does not have any mechanism to force downstream dependencies to be rebuilt when a package is upgraded on a user's computer. - -If this problem happens, the remedy is to rebuild pkgB against pkgA 2.0. I don't know if CRAN rebuilds all downstream dependencies when a package is updated. If it doesn't, then it's possible for CRAN to have incompatible binary builds of pkgA and pkgB, and users would then have to install pkgB from source, with `install.packages("pkgB", type = "source")`. - -To avoid this problem entirely, objects of `ClassB` must not be instantiated at build time. You can either instantiate them only in functions, or at package load time, by adding an `.onLoad` function to your package. For example: - - -```{r eval=FALSE} -ClassB <- R6Class("ClassB", - inherit = pkgA::ClassA, - public = list(x = 1) -) - -# We'll fill this at load time -objB <- NULL - -.onLoad <- function(libname, pkgname) { - # The namespace is locked after loading; we can still modify objB at this time. - objB <<- ClassB$new() -} -``` - -You might be wondering why `ClassB` (the class, not the instance of the class `objB`) doesn't save a copy of `pkgA::ClassA` inside of it when the package is built. This is because, for the `inherit` argument, `R6Class` saves the unevaluated expression, (`pkgA::ClassA`), and evaluates it when `$new()` is called. - - -## Wrap-up - -In summary: - -* Portable classes allow inheritance across different packages. -* Portable classes always require the use of `self` or `private` to access members. This can incur a small performance penalty, since using `self$x` is slower than just `x`. diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.html b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.html deleted file mode 100644 index 2d4096b..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/Portable.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - - - - - - - - -Portable and non-portable R6 classes - - - - - - - - - - - - - - - - - - - -

Portable and non-portable R6 classes

- - - - -

One limitation to R’s reference classes is that class inheritance across package namespaces is limited. R6 avoids this problem when the portable option is enabled.

-
-

The problem

-

Here is an example of the cross-package inheritance problem with reference classes: Suppose you have ClassA in pkgA, and ClassB in pkgB, which inherits from ClassA. ClassA has a method foo which calls a non-exported function fun in pkgA.

-

If ClassB inherits foo, it will try to call fun – but since ClassB objects are created in pkgB namespace (which is an environment) instead of the pkgA namespace, it won’t be able to find fun.

-

Something similar happens with R6 when the portable=FALSE option is used. For example:

-
library(R6)
-# Simulate packages by creating environments
-pkgA <- new.env()
-pkgB <- new.env()
-
-# Create a function in pkgA but not pkgB
-pkgA$fun <- function() 10
-
-ClassA <- R6Class("ClassA",
-  portable = FALSE,
-  public = list(
-    foo = function() fun()
-  ),
-  parent_env = pkgA
-)
-
-# ClassB inherits from ClassA
-ClassB <- R6Class("ClassB",
-  portable = FALSE,
-  inherit = ClassA,
-  parent_env = pkgB
-)
-

When we create an instance of ClassA, it works as expected:

-
a <- ClassA$new()
-a$foo()
-#> [1] 10
-

But with ClassB, it can’t find the foo function:

-
b <- ClassB$new()
-b$foo()
-#> Error in b$foo() : could not find function "fun"
-
-
-

Portable R6

-

R6 supports inheritance across different packages, with the default portable=TRUE option. In this example, we’ll again simulate different packages by creating separate parent environments for the classes.

-
pkgA <- new.env()
-pkgB <- new.env()
-
-pkgA$fun <- function() {
-  "This function `fun` in pkgA"
-}
-
-ClassA <- R6Class("ClassA",
-  portable = TRUE,  # The default
-  public = list(
-    foo = function() fun()
-  ),
-  parent_env = pkgA
-)
-
-ClassB <- R6Class("ClassB",
-  portable = TRUE,
-  inherit = ClassA,
-  parent_env = pkgB
-)
-
-
-a <- ClassA$new()
-a$foo()
-#> [1] "This function `fun` in pkgA"
-
-b <- ClassB$new()
-b$foo()
-#> [1] "This function `fun` in pkgA"
-

When a method is inherited from a superclass, that method also gets that class’s environment. In other words, method “runs in†the superclass’s environment. This makes it possible for inheritance to work across packages.

-

When a method is defined in the subclass, that method gets the subclass’s environment. For example, here ClassC is a subclass of ClassA, and defines its own foo method which overrides the foo method from ClassA. It happens that the method looks the same as ClassA’s – it just calls fun. But this time it finds pkgC$fun instead of pkgA$fun. This is in contrast to ClassB, which inherited the foo method and environment from ClassA.

-
pkgC <- new.env()
-pkgC$fun <- function() {
-  "This function `fun` in pkgC"
-}
-
-ClassC <- R6Class("ClassC",
-  portable = TRUE,
-  inherit = ClassA,
-  public = list(
-    foo = function() fun()
-  ),
-  parent_env = pkgC
-)
-
-cc <- ClassC$new()
-# This method is defined in ClassC, so finds pkgC$fun
-cc$foo()
-#> [1] "This function `fun` in pkgC"
-
-
-

Using self

-

One important difference between non-portable and portable classes is that with non-portable classes, it’s possible to access members with just the name of the member, and with portable classes, member access always requires using self$ or private$. This is a consequence of the inheritance implementation.

-

Here’s an example of a non-portable class with two methods: sety, which sets the private field y using the <<- operator, and getxy, which returns a vector with the values of fields x and y:

-
NP <- R6Class("NP",
-  portable = FALSE,
-  public = list(
-    x = 1,
-    getxy = function() c(x, y),
-    sety = function(value) y <<- value
-  ),
-  private = list(
-    y = NA
-  )
-)
-
-np <- NP$new()
-
-np$sety(20)
-np$getxy()
-#> [1]  1 20
-

If we attempt the same with a portable class, it results in an error:

-
P <- R6Class("P",
-  portable = TRUE,
-  public = list(
-    x = 1,
-    getxy = function() c(x, y),
-    sety = function(value) y <<- value
-  ),
-  private = list(
-    y = NA
-  )
-)
-
-p <- P$new()
-
-# No error, but instead of setting private$y, this sets y in the global
-# environment! This is because of the sematics of <<-.
-p$sety(20)
-y
-#> [1] 20
-
-p$getxy()
-#> Error in p$getxy() : object 'y' not found
-

To make this work with a portable class, we need to use self$x and private$y:

-
P2 <- R6Class("P2",
-  portable = TRUE,
-  public = list(
-    x = 1,
-    getxy = function() c(self$x, private$y),
-    sety = function(value) private$y <- value
-  ),
-  private = list(
-    y = NA
-  )
-)
-
-p2 <- P2$new()
-p2$sety(20)
-p2$getxy()
-#> [1]  1 20
-

There is a small performance penalty for using self$x as opposed to x. In most cases, this is negligible, but it can be noticeable in some situations where there are tens of thousands or more accesses per second. For more information, see the Performance vignette.

-
-
-

Potential pitfalls with cross-package inheritance

-

Inheritance happens when an object is instantiated with MyClass$new(). At that time, members from the superclass get copied to the new object. This means that when you instantiate R6 object, it will essentially save some pieces of the superclass in the object.

-

Because of the way that packages are built in R, R6’s inheritance behavior could potentially lead to surprising, hard-to-diagnose problems when packages change versions.

-

Suppose you have two packages, pkgA, containing ClassA, and pkgB, containing ClassB, and there is code in pkgB that instantiates ClassB in an object, objB, at build time. This is in contrast to instantiating ClassB at run-time, by calling a function. All of the code in the package is run when a binary package is built, and the resulting objects are saved in the package. (Generally, if the object can be accessed with pkgB:::objB, this means it was created at build time.)

-

When objB is created at package build time, pieces from the superclass, pkgA::ClassA, are saved inside of it. This is fine in and of itself. But imagine that pkgB was built and installed against pkgA 1.0, and then you upgrade to pkgA 2.0 without subsequently building and installing pkgB. Then pkgB::objB will contain some code from pkgA::ClassA 1.0, but the version of pkgA::ClassA that’s installed will be 2.0. This can cause problems if objB inherited code which uses parts of pkgA that have changed – but the problems may not be entirely obvious.

-

This scenario is entirely possible when installing packages from CRAN. It is very common for a package to be upgraded without upgrading all of its downstream dependencies. As far as I know, R does not have any mechanism to force downstream dependencies to be rebuilt when a package is upgraded on a user’s computer.

-

If this problem happens, the remedy is to rebuild pkgB against pkgA 2.0. I don’t know if CRAN rebuilds all downstream dependencies when a package is updated. If it doesn’t, then it’s possible for CRAN to have incompatible binary builds of pkgA and pkgB, and users would then have to install pkgB from source, with install.packages("pkgB", type = "source").

-

To avoid this problem entirely, objects of ClassB must not be instantiated at build time. You can either instantiate them only in functions, or at package load time, by adding an .onLoad function to your package. For example:

-
ClassB <- R6Class("ClassB",
-  inherit = pkgA::ClassA,
-  public = list(x = 1)
-)
-
-# We'll fill this at load time
-objB <- NULL
-
-.onLoad <- function(libname, pkgname) {
-  # The namespace is locked after loading; we can still modify objB at this time.
-  objB <<- ClassB$new()
-}
-

You might be wondering why ClassB (the class, not the instance of the class objB) doesn’t save a copy of pkgA::ClassA inside of it when the package is built. This is because, for the inherit argument, R6Class saves the unevaluated expression, (pkgA::ClassA), and evaluates it when $new() is called.

-
-
-

Wrap-up

-

In summary:

-
    -
  • Portable classes allow inheritance across different packages.
  • -
  • Portable classes always require the use of self or private to access members. This can incur a small performance penalty, since using self$x is slower than just x.
  • -
-
- - - - - - - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/index.html b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/index.html deleted file mode 100644 index 348d4d5..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/doc/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - -R: Vignettes and other documentation - - - -

Vignettes and other documentation - -

-
-
-[Top] -
-

Vignettes from package 'R6'

- ------- - - - - - - - - - - - - - - - - - - - -
R6::DebuggingDebugging methods in R6 objectsHTMLsourceR code
R6::IntroductionIntroduction to R6 classesHTMLsourceR code
R6::PerformanceR6 and Reference class performance testsHTMLsourceR code
R6::PortablePortable and non-portable R6 classesHTMLsourceR code
- diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/AnIndex b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/AnIndex deleted file mode 100644 index 05d6e1a..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/AnIndex +++ /dev/null @@ -1,5 +0,0 @@ -as.list.R6 as.list.R6 -is.R6 is.R6 -is.R6Class is.R6 -R6 R6Class -R6Class R6Class diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/R6.rdb b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/R6.rdb deleted file mode 100644 index de1c245b770f57dfa656f988a6698c31d0e471a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16296 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 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/R6.rdx b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/help/R6.rdx deleted file mode 100644 index 31b37e7c90783db1e3d78e2647a1d7d8507fefb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmV;(05|_1iwFP!000001B>8dU|?WkU}j-tU}6R_g@FV!f@a_a%QG;FF))~DBlu=f zKxuOX-)b2H11peb0b&M51{MZRAkCVWn44M*WC(x_g9x$*nK|bq78gUgT#3bcIhn;J zdO>C|U75uo4geMg`5)(a*L%TTws1w&oE6juHq-qDF84gH(&q& diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/html/00Index.html b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/html/00Index.html deleted file mode 100644 index aa293f5..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/html/00Index.html +++ /dev/null @@ -1,35 +0,0 @@ - - -R: Classes with Reference Semantics - - - -

Classes with Reference Semantics - -

-
-
-[Up] -[Top] -

Documentation for package ‘R6’ version 2.2.2

- - - -

Help Pages

- - - - - - - - - - - - - -
as.list.R6Create a list from an R6 object
is.R6Is an object an R6 Class Generator or Object?
is.R6ClassIs an object an R6 Class Generator or Object?
R6Create an R6 reference object generator
R6ClassCreate an R6 reference object generator
- diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/html/R.css b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/html/R.css deleted file mode 100644 index f10f5ea..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/R6/html/R.css +++ /dev/null @@ -1,97 +0,0 @@ -body { - background: white; - color: black; -} - -a:link { - background: white; - color: blue; -} - -a:visited { - background: white; - color: rgb(50%, 0%, 50%); -} - -h1 { - background: white; - color: rgb(55%, 55%, 55%); - font-family: monospace; - font-size: x-large; - text-align: center; -} - -h2 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; - font-size: large; - text-align: center; -} - -h3 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; - font-size: large; -} - -h4 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; - font-style: italic; - font-size: large; -} - -h5 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; -} - -h6 { - background: white; - color: rgb(40%, 40%, 40%); - font-family: monospace; - font-style: italic; -} - -img.toplogo { - width: 4em; - vertical-align: middle; -} - -img.arrow { - width: 30px; - height: 30px; - border: 0; -} - -span.acronym { - font-size: small; -} - -span.env { - font-family: monospace; -} - -span.file { - font-family: monospace; -} - -span.option{ - font-family: monospace; -} - -span.pkg { - font-weight: bold; -} - -span.samp{ - font-family: monospace; -} - -div.vignettes a:hover { - background: rgb(85%, 85%, 85%); -} diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/CITATION b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/CITATION deleted file mode 100644 index 49f85fc..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/CITATION +++ /dev/null @@ -1,32 +0,0 @@ -citHeader("To cite Rcpp in publications use:") - -citEntry(entry = "Article", - title = "{Rcpp}: Seamless {R} and {C++} Integration", - author = personList(as.person("Dirk Eddelbuettel"), - as.person("Romain Fran\\c{c}ois")), - journal = "Journal of Statistical Software", - year = "2011", - volume = "40", - number = "8", - pages = "1--18", - url = "http://www.jstatsoft.org/v40/i08/", - - textVersion = - paste("Dirk Eddelbuettel and Romain Francois (2011).", - "Rcpp: Seamless R and C++ Integration.", - "Journal of Statistical Software, 40(8), 1-18.", - "URL http://www.jstatsoft.org/v40/i08/.") -) - -citEntry(entry = "Book", - title = "Seamless {R} and {C++} Integration with {Rcpp}", - author = personList(as.person("Dirk Eddelbuettel")), - publisher = "Springer", - address = "New York", - year = 2013, - note = "ISBN 978-1-4614-6867-7", - - textVersion = paste("Eddelbuettel, Dirk (2013)", - "Seamless R and C++ Integration with Rcpp.", - "Springer, New York. ISBN 978-1-4614-6867-7.") -) diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/DESCRIPTION b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/DESCRIPTION deleted file mode 100644 index 84835d3..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/DESCRIPTION +++ /dev/null @@ -1,36 +0,0 @@ -Package: Rcpp -Title: Seamless R and C++ Integration -Version: 0.12.12 -Date: 2017-07-13 -Author: Dirk Eddelbuettel, Romain Francois, JJ Allaire, Kevin Ushey, - Qiang Kou, Nathan Russell, Douglas Bates and John Chambers -Maintainer: Dirk Eddelbuettel -Description: The 'Rcpp' package provides R functions as well as C++ - classes which offer a seamless integration of R and C++. Many R - data types and objects can be mapped back and forth to C++ - equivalents which facilitates both writing of new code as well as - easier integration of third-party libraries. Documentation about - 'Rcpp' is provided by several vignettes included in this package, - via the 'Rcpp Gallery' site at , the paper - by Eddelbuettel and Francois (2011, JSS), and the book by - Eddelbuettel (2013, Springer); see 'citation("Rcpp")' for details - on these last two. -Depends: R (>= 3.0.0) -Imports: methods, utils -Suggests: RUnit, inline, rbenchmark, highlight, pkgKitten (>= 0.1.2) -VignetteBuilder: highlight -URL: http://www.rcpp.org, http://dirk.eddelbuettel.com/code/rcpp.html, - https://github.com/RcppCore/Rcpp -License: GPL (>= 2) -BugReports: https://github.com/RcppCore/Rcpp/issues -MailingList: Please send questions and comments regarding Rcpp to - rcpp-devel@lists.r-forge.r-project.org -RoxygenNote: 5.0.1 -NeedsCompilation: yes -Packaged: 2017-07-13 11:40:06.188015 UTC; edd -Repository: CRAN -Date/Publication: 2017-07-15 12:02:11 UTC -Built: R 3.4.1; x86_64-pc-linux-gnu; 2017-09-09 18:08:21 UTC; unix -InstallAgent: packrat 0.4.8.38 -InstallSource: CRAN -Hash: 8b3d5ebb9a9a4ab5c86b3a81b0cfb774 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/INDEX b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/INDEX deleted file mode 100644 index bfbd0a1..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/INDEX +++ /dev/null @@ -1,37 +0,0 @@ -.DollarNames-methods completion -C++Class-class Reflection information for an internal c++ - class -C++Constructor-class Class "C++Constructor" -C++Field-class Class "C++Field" -C++Function-class Class "C++Function" -C++Object-class c++ internal objects -C++OverloadedMethods-class - Class "C++OverloadedMethods" -LdFlags (Deprecated) Rcpp Linker Flags -Module Retrieves an Rcpp module -Module-class Rcpp modules -Rcpp-deprecated Deprecated Functions in the Rcpp Package -Rcpp-package R / C++ interface -Rcpp.package.skeleton Create a skeleton for a new package depending - on Rcpp -Rcpp.plugin.maker Facilitating making package plugins -RcppUnitTests Rcpp : unit tests results -compileAttributes Compile Rcpp Attributes for a Package -compilerCheck Check for Minimal (g++) Compiler Version -cppFunction Define an R Function with a C++ Implementation -demangle c++ type information -dependsAttribute Rcpp::depends Attribute -evalCpp Evaluate a C++ Expression -exportAttribute Rcpp::export Attribute -exposeClass Create an Rcpp Module to Expose a C++ Class in - R -formals<--methods Set the formal arguments of a C++ function -interfacesAttribute Rcpp::interfaces Attribute -loadModule Load an Rcpp Module into a Package -loadRcppModules Loads Rcpp modules on package startup -pluginsAttribute Rcpp::plugins Attribute -populate Populates a namespace or an environment with - the content of a module -registerPlugin Register an inline plugin -setRcppClass Create a Class Extending a C++ Class -sourceCpp Source C++ Code from a File or String diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/Rd.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/Rd.rds deleted file mode 100644 index dc9cb75f1ad17e681e387020199be4f092c8f499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1568 zcmV+*2H*J~iwFP!000001MOE^PaHQCUM>j>DVIP3Aqth75-BNRo0q~s0fvCmI)y6LhddEygbO#O5zUGuCA&hfTitaNqPPjDW*rcb{g^>H$`J#Q^DdD#42SPzF#$VGV#W zwg4a^0sG+qhx%Zl<^AjJAnYqG^oLrhxepocCO#M*vK|}+$^+wkzE`Yv$PWFoVtPRH zJ1$fH_J3yluy|On<9o*ESJ$#n^&Ob_@!R=ve04%bDbZ|1Nv?UKf6HG8E0HNI6m4xG zH!7<-OX#WJSDpe9YE*X?kgqs$TLS<+P$yK!QQctRuqU-zqs4&!oGLb1({)+tE`Tya z*6NldlA7d_aOIt|z~ayMDo!J?kV~_WI45TLv6uBVEvw8PflAd^(AQ`Pj;T7cz&Ari z}`&K13Be}p%b~RtbbwOO(x>?!Tv27HE?Pz^p z_R-RWU+usDUWSM}7Ofh6(_b6vuON4pK&BlcLDfdG^V(evXC-w`tln3rL}(tFZj3M+ zm&z-S=*a4f{EOkSv7>I%4O^Zb%3265k?UzAE6>zQ?oysBS^;giz)X~dA3)2c#;JS9 zwx4swSaqGtZ3r?ggXEV9qq*|TBvH8>QR#yeXivS0TR*XPfoV6XVnX3w3!7D`n27Gb z7q%*#ID?a?`noW38p}{Kn#pwsio4RhQ|U)O4qD(p-MRn!-?B05c$m0M!7bhTlDxn9 zvXYxC2?~;*)2jw%ww!=9tY7x?XTBm?Ue<5w>DpI zcVQ3VOds_9x$R->+jiRndCkRM?!Niiw`9YEJIsCTEwV3e&*nRDb+$am7dHbHYjhz? ztPri(vW`z1@kMdYn~Nv>%-xlzvQ5CnPt}j z?b;@aX?-R8mUT=S{-Ty?!#^#UI_^2+d9YP5kOb#62a`bCA5eVI8&v!NhXc!9E<;I2 zpjgNzD+cebn+G;0o4|2@!db$M9N~yjZk`AsI~o&E;DI{{1#P5jB6?B*-Ms|%Z=Ig} zCGHdz*d9z%VWb+Pl#kaVRnR?y(aKL;+lVy}hPcATO3>P)y|K)_J9__rd+~sP&FCmL zvixs|f$tx*TGlchGn{4hvk6?CYFlFI5so|ksu}xbc)RXjnljO)^NIHF%JN63++xv( zCF%pt?hHq$dq;Nfr04(xbL7A2Nmp0D_bu3mt57|#;kSBT!0$6Tpn>99BC19G{XC+v z6NB9}!MqyN`|^<(k)oPE``?l4E6P+bJY!}Vy&8Z)^D4~0$&Z_xo8LpL+q&3Xj0GNy Sn6kIm`{PgGF{O&47ytl|YWv#& diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/features.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/features.rds deleted file mode 100644 index 2027d3f0b0fa3837e3c49273fbdb9613687c1ade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmb2|=3oE==I#ec2?+^F32BKb2}x{*t&J?o0^ALmVr+g2Ym*XkGA1NVN?AC2&YYAL z*^^jOR8^y9y;vqOTXoi~WiuruW=a|wY%oxKnRwRwjIXYnafh|>dX=pj`i9GITxLD- Omz`nmEYF2?K#KrIHYk|@ diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/hsearch.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/hsearch.rds deleted file mode 100644 index c4e84f33c4acf4eecb9e714bd36467b98e5946de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1479 zcmV;&1vvU2iwFP!000001MOLDQ`|NXHU}h-G=U_9gf#7_l*}Z(a1Fk^&`iE$4w%Ul zQcBWJ`za%A-JObUc_bM^e^LKg|3zE9+di9{YXb?LxeuHl@2<3~)xOB$mrI`KHN45G z39m6Jpm#(3O$pMxc>XEStbE@K(sYc^1@^{I^_*CXBMnm@SOpT zwMP!EIpjOkcIdG~PaJyc&@+eD9dbH+r^9zTe5b>AI((1aD0ZL8yIr`ha8kg?T3{u=6nq>_YjngyKD5>JlU!YB$$)N7KOB>~4IDKX{*Bpk4zwLzi?($_FXY&F&rhWFVH39|^5z z0put&UUmtMVZ>gn4!He>a$FY%sG{tW+{n@n+>sRN z08M4p&6w97tjsl&k~E8;d%sFi4>O^8SIOI5V~ES?im4Nh?rbmLBR0uZ@4`G)tueKECk-YdDWF-kZr?5>Izew?CW z*cNx?`E!%@U@(1_HbvfN+Wm6=&G*7ZtYFci9`W%whzcP4;z`T|bmM50odS#`{c z(AhKNzIlVViX&Y;0HnQ4u8INDHDkKvLUu>nkr$PUEz8>?7X~d6@}#mW_oO5%hCGvD zWy6MXNO_i)9cW^yqIF}})E_1zR<<884FbAkpyUu!lE{_mO_WOxh**OlsFjv7ZfVcd zE?sUS83}2zjIFp-(H`A=&rMbo{A?HbMwK^BC!ugPC9#m(lCdkydn4A7^v0ci+}Y2x zv(F85_K(-jKlSIvr+<1=4e>K!-X}vG%lPu-*SqI^C1YbiWJZXn8s_P*ddd4s?v|1@ z@l>v*7q{{LF64dl+IY2L(3H$rgQwqO9_242#evnhnFK^uFs(`5A^b74C|z55=;%5w zZKYs+a&!{!^eWjctHyClnocNm*Ok?VQ8sPm#p+4Cn^spH^TTTAts?K?%h$h_C;y_v zKFNZTkSWF`iMk3sw^A#*kc$44@>pN7)JPaRLlSG?O;*R-s!XVyIhGa z@$&_4n8oq&kS0>Ri#e5sa#_lKiXL-;2^WyA9gvC>1aIvh=M#_EgytbdJ20Sx>GQ5j zo)2$McOB#896g^6?21)XB+fZPDTgY}F2CEVf+4qE)oZUIpn4-V1g!rXF#JNT4*4}` z_;uTdT)fqxy34pxujNkrg02o(3(mt0^catE6|1x7#NS?iCS4bQlbYU;^uaUeq!~Z` zGQ!Z-!u-hTj;8rp@<+>3)zek)(|j%Wp8>Auk)%gq9OvKKHKf_WJF%I8!^kLO&QNAF z(s0L&qIz1KHgH-$-5LD%<|DM2Lc@4mgYrgDQ~nD@-&$~flK20Js|Dxt5ev@6@6quQ hq4oedwB&d-dc0Bfh>z3&rF^KKe*leMX-k10005_F-}?Xn diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/links.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/links.rds deleted file mode 100644 index 6ab90c51e3137b823a4facfacc16d34656ea27be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>VIiwFP!000001J#z_Z__Xk$Fr^c*!ZzA#t*^9&w_xh=_?O=nL6!>4TL~~ zr^!pMZKxARwlf%iJi=~#sS~>ugH0OJ)FpSH_trLTt0oylj$5;2ELkO*&bR$(%$ZGJwAV-}t}~K`{af zl4UcGeE9_}21ypCWCYx%pZMr^@g5}u@i&~eR-dy(egYw9x2A}tc|u`FN}e1Q5@wHU zXxOu%vRG8<+VFZ4hGRlib2}~LoE-R(GcLU` zow{jOK(BdVow$9*Q$kP8I9+dip!y^Ne@z}YdEMpRX5nap#`If>iYa}=S)TI1_^0A5 zc+T>Ik~-vQI)_0bREi(Uqd2P@2$1^4sr}i5j~tK{Jc4Q;1+95S%^CVqrZq`D*w?L_ zz0FPQB4n($+FO;q)G*^%6GQfWnopaX7bPoIpIUpnGtGAgWBHs9wB3Ix!J$Ks;A0xLZ)@k^YklyIntR#|YLF4)8gboLXRJ`$ zi>~EdbzbT9t&Z#9^W0CA1SEteKf&w2TpBTSL*R}1Moo8(@vgERvT@djlOWu9S1fN_ zr0EGJZ0oJDwX_Xa)GM>N=Nv^fjw?nG&FeKwBkdF_ImGcCf5X1o#_m$@&bUqNwuy^^fo$V)WvHE@#j2aCmtVgD Lm_H;QwGIFP!jgs2 diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/nsInfo.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/nsInfo.rds deleted file mode 100644 index dbaf1712b4d8b6501668365fb4d7c72c199161af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmV;J0%!dniwFP!000001C3QnZ`&{oR^G3+OPX$fqF4^wb(bMUfB{QaWS89n#b#Zt zvLxt{CHwL1BwKRiEG=rlQTUM*$xo#GYlskPqE@?snl1NtYJW!dofbGkWBWEx8x8E* z%RxWzRK1|?7)_}1V9$dW2^QK&m~o?p(H@;(rAWrUv0I#j5;y^`IGf#YO0g_(k9CFQ zxd^V8*7^}=a04olL}3<$3Hpn8x7Hfwk}>Yq2maiOLzlPH+XWUk|pJ&V}&e zKyf1zH~^Ex5=AI{)moB`(N$&_5;CGR$UAB>QbllieNPt@XH|r{*iRwHEUVJ&D)JZj zy_Y^%_ch=AhD5IkBbs1p)iNAMq)knp??aL$(?ue)96wrz@?enft9W&IKa_h+WBmmC z^Xuyc0h)UG%E~{sARX6`E`95IKCEuenbOiEn#*X1c>jUhp(r2_=0b#1DwFG+Y|^%R z;D26e>EVH{5bK`H98>k>TJO+@@-uZ#a#so5;v)L3S?1dfrLFay{?yt+n66%3c(N z!4iwIj#@59WE6Ee{PGp9PhlM)2@8kSEvOGt%O-xx>c3{FcVB0-KaAVhrMFhv-X?2H zLv_2o9k=nG?eq4v#&0Vnxn0gtc}aJD2OP6G3PVqF!KFUjGP_v3D8)Oh?ft>3d#&^- y#s!YR`mCLo{zsN2Sht);mPg@w>7G%tsd8d*uT=B;^Yh^g_4E&NLvR(_1^@tNpiTM! diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/package.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/package.rds deleted file mode 100644 index b5838eb41bc4b6e920922b068ca3ff915bcb0c12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1345 zcmV-H1-|+piwFP!000001JzgEZ`(Ey_g9)k-PQud(6@o;9+IH8Y&reNoVIA|bVZsp zP35E*u!n$>7>SD{sw5T1|NOS2Ov;wpphaGW1#u+a_x3BgHBgg`FBX@JHLAENzKl8|FbS*oR02evbWUwyQO z1LtXP@U-V_Ys%FgO4g@5#n z1i{OIcwpORJbW>iY@M7$1Z^k;Hc*EB3mg)Zadt@qqA)nmQ(q+xt^}Gw1nQ|k@gWES zBGZWak%id#IpGK+Vc??+(15u>(?;)cI)ih7B}Q_V=`5J{7xAS)J|ycA3ne(qNPs*D zsoGVrXI(f5@7@Aex880xtxWt$8u>Iyz+d^+~91}jchMx{fE?jlyO2x~oKNSeZ$40AKG@n&2sJJ2!X>na#_oD4rU{;gZaSTouz|5TF@Wn~lcn5k zpCx_OBmF`)l1bdPl(10fQyJx6A)@jhGfw(TGsAj&d{_ij2D9-k%{~<(Cnozpk7H;@ z0%${ZJ_B9fI5>f3QnWcIA?AVV=%Q03vs9qH0J<%H8B-yJ&3jOlkiZlAQQan$vUaiZ z7>eNNLwi=b{&g|BkmHOV4Mu|}wzIP{a2})6lkqMBkj$7IyRVM)`~6bwF>;2Z!Eod_ zN?x;fT`2k^+u21|J5SD@JnChB4+@)K^};mYMRVof;1@YNqruK-=**qvDZK(mEilnE zfu}fuXd8{?iM@I}zd=Ukgv!_)RzJZQT#V|@9?S&&e(O~Zy~j=2-orSC4o-=o+}pwIk_r=%^*Rq- zvTX7;LOa@o}^BBh4#R};nbA~u^pA5d zrv9?#iV9i6%ipjR)Rye%ZP|p+k17fM>C9=>A{E;}7pZMLxo2V~BuUOLD;2q;$6uYC z!ieS6FUdtHg+=4$-dDP*CUXCp-l~ap7M<4oNAo(G*K|uT0b96I$=6!x!$j?_CA``- z7htAJXuWuT4W#-y%D3i=>xSCaV%^=)!qWEpJ_Gd{ua~R!yK3Fg=hlB(>x$w^wT{)g ze2Mcl-x?}77_eH`puVcV%iOSNEAwwa-&C&fTXo-6Tjgc0UxBr9$Gw@1-TmW}{SRiD z>(Q@=o*Ps)-nu!Pe|BmcvAzOp8*=@SrWdfzPFSr|%9*Y^Woh*eRT}>S0OJ{0x(xsT Ds!@xv diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/vignette.rds b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/Meta/vignette.rds deleted file mode 100644 index 518ece073174282f96ddde53df8624411fbd4d5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VVz)iwFP!000001JzVLZ^AGT4TNu%0!3XqWk=;dR3MfvEn?{ECQf7#oYZkd z+4`@$l{$_c`vSB>rw)#icjw%_d(VCuIF8eF+*ZSBy5iNHibqGRu~>blC6?n%*M6Gb zBhDFl%{k8IYr0pV8yUjy9Mgc%$ckLa$m-$Q!p0KYB|#p8zm#~2{4I*Gg-;~@mJ@%= zaA*atWgyEV#4PkyqJ(lLD)^iv^rX|A628G1FRMeEqZ&<6tD>mTo~8%rDrx{zv=lZ3 zloU8HbO3Xk3h1Vy@taa<5MEHqM2u1fgG$wLt(3uQN|}JIltIrZRqxa&RYV}o$%!FB zdzKx+fTbBhUzHUBS{V@-!`KkaO_>k~04)f5vkX|IOHw7dhRSOddH(>jdvAi6nz?n7 zE@yT1@wlAg7N_iTxKoPww;FvREM}PcKP8Q_1La7l>U-r`EmPZPQt!fqVG>a<%&D}2 zCp>{!h))k4X!W+V? z5BF)gs@Lf*aVpM_zQuZv_^?k{P%qSH$$qYj4U3U|h{y4G{H%B6$0*YsX>brAj^-f~ Q`^DGSH?F@IUx)?(0BLpPQ2+n{ diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/NAMESPACE b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/NAMESPACE deleted file mode 100644 index 2c7e210..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/NAMESPACE +++ /dev/null @@ -1,43 +0,0 @@ -useDynLib(Rcpp, .registration = TRUE) - -import(methods) -importFrom(utils, capture.output, assignInNamespace, .DollarNames, prompt, - packageDescription, package.skeleton, glob2rx) - -exportClasses(Module, "C++Field", - "C++OverloadedMethods", - "C++Constructor", - "C++Class", "C++Object", "C++Function") - -S3method(.DollarNames, "C++Object") -S3method(.DollarNames, "Module") -exportMethods(prompt, show, .DollarNames, initialize, "formals<-") - -export(Module, - Rcpp.package.skeleton, - populate, - loadRcppModules, # deprecated since Rcpp 0.12.5 - setRcppClass, - loadRcppClass, - loadModule, - cppFunction, - exposeClass, - evalCpp, - sourceCpp, - compileAttributes, - registerPlugin, - RcppLdFlags, - LdFlags, - demangle, - sizeof, - cpp_object_initializer, - cpp_object_dummy, - Rcpp.plugin.maker - ) -S3method(print, bytes) -S3method(format, Rcpp_stack_trace) -S3method(str, Rcpp_stack_trace) -S3method(print, Rcpp_stack_trace) -exportClass(RcppClass) - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/NEWS.Rd b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/NEWS.Rd deleted file mode 100644 index e1f0d26..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/NEWS.Rd +++ /dev/null @@ -1,2241 +0,0 @@ -\name{NEWS} -\title{News for Package \pkg{Rcpp}} -\newcommand{\ghpr}{\href{https://github.com/RcppCore/Rcpp/pull/#1}{##1}} -\newcommand{\ghit}{\href{https://github.com/RcppCore/Rcpp/issues/#1}{##1}} - -\section{Changes in Rcpp version 0.12.12 (2017-07-13)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The \code{tinyformat.h} header now ends in a newline (\ghit{701}). - \item Fixed rare protection error that occurred when fetching stack traces - during the construction of an Rcpp exception (Kirill Müller in \ghpr{706}). - \item Compilation is now also possibly on Haiku-OS (Yo Gong in \ghpr{708} - addressing \ghit{707}). - \item Dimension attributes are explicitly cast to \code{int} (Kirill - Müller in \ghpr{715}). - \item Unused arguments are no longer declared (Kirill Müller in - \ghpr{716}). - \item Visibility of exported functions is now supported via the R macro - \code{atttribute_visible} (Jeroen Ooms in \ghpr{720}). - \item The \code{no_init()} constructor accepts \code{R_xlen_t} (Kirill - Müller in \ghpr{730}). - \item Loop unrolling used \code{R_xlen_t} (Kirill Müller in \ghpr{731}). - \item Two unused-variables warnings are now avoided (Jeff Pollock in - \ghpr{732}). - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Execute tools::package_native_routine_registration_skeleton - within package rather than current working directory (JJ in \ghpr{697}). - \item The R portion no longer uses \code{dir.exists} to no require R 3.2.0 - or newer (Elias Pipping in \ghpr{698}). - \item Fix native registration for exports with name attribute (JJ in \ghpr{703} - addressing \ghit{702}). - \item Automatically register init functions for Rcpp Modules (JJ in \ghpr{705} - addressing \ghit{704}). - \item Add Shield around parameters in Rcpp::interfaces (JJ in \ghpr{713} - addressing \ghit{712}). - \item Replace dot (".") with underscore ("_") in package names when generating - native routine registrations (JJ in \ghpr{722} addressing \ghit{721}). - \item Generate C++ native routines with underscore ("_") prefix to avoid - exporting when standard exportPattern is used in NAMESPACE (JJ in - \ghpr{725} addressing \ghit{723}). - } - } -} - -\section{Changes in Rcpp version 0.12.11 (2017-05-20)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Rcpp::exceptions can now be constructed without a call stack (Jim - Hester in \ghpr{663} addressing \ghit{664}). - \item Somewhat spurious compiler messages under very verbose settings are - now suppressed (Kirill Mueller in \ghpr{670}, \ghpr{671}, \ghpr{672}, - \ghpr{687}, \ghpr{688}, \ghpr{691}). - \item Refreshed the included \code{tinyformat} template library - (James Balamuta in \ghpr{674} addressing \ghit{673}). - \item Added \code{printf}-like syntax support for exception classes and - variadic templating for \code{Rcpp::stop} and \code{Rcpp::warning} - (James Balamuta in \ghpr{676}). - \item Exception messages have been rewritten to provide additional - information. (James Balamuta in \ghpr{676} and \ghpr{677} addressing - \ghit{184}). - \item One more instance of \code{Rf_mkString} is protected from garbage - collection (Dirk in \ghpr{686} addressing \ghit{685}). - \item Two exception specification that are no longer tolerated by - \code{g++-7.1} or later were removed (Dirk in \ghpr{690} addressing - \ghit{689}) - } - \item Changes in Rcpp Documentation: - \itemize{ - \item Added a Known Issues section to the Rcpp FAQ vignette - (James Balamuta in \ghpr{661} addressing \ghit{628}, \ghit{563}, - \ghit{552}, \ghit{460}, \ghit{419}, and \ghit{251}). - } - \item Changes in Rcpp Sugar: - \itemize{ - \item Added sugar function \code{trimws} (Nathan Russell in \ghpr{680} - addressing \ghit{679}). - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Automatically generate native routine registrations (JJ in \ghpr{694}) - \item The plugins for C++11, C++14, C++17 now set the values R 3.4.0 or - later expects; a plugin for C++98 was added (Dirk in \ghpr{684} addressing - \ghit{683}). - } - \item Changes in Rcpp support functions: - \itemize{ - \item The \code{Rcpp.package.skeleton()} function now creates a package - registration file provided R 3.4.0 or later is used (Dirk in \ghpr{692}) - } - } -} - -\section{Changes in Rcpp version 0.12.10 (2017-03-17)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Added new size attribute aliases for number of rows and columns in - DataFrame (James Balamuta in \ghpr{638} addressing \ghit{630}). - \item Fixed single-character handling in \code{Rstreambuf} (Iñaki Ucar in - \ghpr{649} addressing \ghit{647}). - \item XPtr gains a parameter \code{finalizeOnExit} to enable running the - finalizer when R quits (Jeroen Ooms in \ghpr{656} addressing \ghit{655}). - } - \item Changes in Rcpp Sugar: - \itemize{ - \item Fixed sugar functions \code{upper_tri()} and \code{lower_tri()} - (Nathan Russell in \ghpr{642} addressing \ghit{641}). - \item The \code{algorithm.h} file now accomodates the Intel compiler - (Dirk in \ghpr{643} and Dan in \ghpr{645} addressing issue \ghit{640}). - } - \item Changes in Rcpp Attributes: - \itemize{ - \item The C++17 standard is supported with a new plugin (used eg for - \code{g++-6.2}). - } - \item Changes in Rcpp Documentation: - \itemize{ - \item An overdue explanation of how C++11, C++14, and C++17 can be used - was added to the Rcpp FAQ. - } - } -} - -\section{Changes in Rcpp version 0.12.9 (2017-01-14)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The exception stack message is now correctly demangled on all - compiler versions (Jim Hester in \ghpr{598}) - \item Date and Datetime object and vector now have format methods and - \code{operator<<} support (\ghpr{599}). - \item The \code{size} operator in \code{Matrix} is explicitly referenced - avoiding a g++-6 issues (\ghpr{607} fixing \ghit{605}). - \item The underlying date calculation code was updated (\ghpr{621}, - \ghpr{623}). - \item Addressed improper diagonal fill for non-symmetric matrices - (James Balamuta in \ghpr{622} addressing \ghit{619}) - } - \item Changes in Rcpp Sugar: - \itemize{ - \item Added new Sugar function \code{sample()} (Nathan Russell in - \ghpr{610} and \ghpr{616}). - \item Added new Sugar function \code{Arg()} (James Balamuta in - \ghpr{626} addressing \ghit{625}). - } - \item Changes in Rcpp unit tests - \itemize{ - \item Added Environment::find unit tests and an Environment::get(Symbol) - test (James Balamuta in \ghpr{595} addressing issue \ghit{594}). - \item Added diagonal matrix fill tests - (James Balamuta in \ghpr{622} addressing \ghit{619}) - } - \item Changes in Rcpp Documentation: - \itemize{ - \item Exposed pointers macros were included in the Rcpp Extending vignette - (MathurinD; James Balamuta in \ghpr{592} addressing \ghit{418}). - \item The file \code{Rcpp.bib} move to directory \code{bib} which is - guaranteed to be present (\ghpr{631}). - } - \item Changes in Rcpp build system - \itemize{ - \item Travis CI now also calls \CRANpkg{covr} for coverage analysis (Jim - Hester in PR \ghpr{591}) - } - } -} - -\section{Changes in Rcpp version 0.12.8 (2016-11-16)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item String and vector elements now use extended \code{R_xlen_t} indices - (Qiang in PR \ghpr{560}) - \item Hashing functions now return unsigned int (Qiang in PR \ghpr{561}) - \item Added static methods \code{eye()}, \code{ones()}, and \code{zeros()} - for select matrix types (Nathan Russell in PR \ghpr{569}) - \item The exception call stack is again correctly reported; print methods - and tests added too (Jim Hester in PR \ghpr{582} fixing \ghit{579}) - \item Variatic macros no longer use a GNU extensions (Nathan in PR - \ghpr{575}) - \item Hash index functions were standardized on returning unsigned - integers (Also PR \ghpr{575}) - } - \item Changes in Rcpp Sugar: - \itemize{ - \item Added new Sugar functions \code{rowSums()}, \code{colSums()}, - \code{rowMeans()}, \code{colMeans()} (PR \ghpr{551} by Nathan Russell - fixing \ghit{549}) - \item \code{Range} Sugar now used \code{R_xlen_t} type for start/end - (PR \ghpr{568} by Qiang Kou) - \item Defining \code{RCPP_NO_SUGAR} no longer breaks the build. - (PR \ghpr{585} by Daniel C. Dillon) - } - \item Changes in Rcpp unit tests - \itemize{ - \item A test for expression vectors was corrected. - \item The constructor test for datetime vectors reflects the new classes - which treats Inf correctly (and still as a non-finite value) - } - \item Changes in Rcpp Attributes - \itemize{ - \item An 'empty' return was corrected (PR \ghpr{589} fixing issue - \ghit{588}, and with thanks to Duncan Murdoch for the heads-up) - } - \item Updated Date and Datetime vector classes: - \itemize{ - \item The \code{DateVector} and \code{DatetimeVector} classes were renamed - with a prefix \code{old}; they are currently \code{typedef}'ed to the - existing name (\ghpr{557}) - \item New variants \code{newDateVector} and \code{newDatetimeVector} were - added based on \code{NumericVector} (also \ghpr{557}, \ghpr{577}, - \ghpr{581}, \ghpr{587}) - \item By defining \code{RCPP_NEW_DATE_DATETIME_VECTORS} the new classes - can activated. We intend to make the new classes the default no sooner - than twelve months from this release. - \item The \code{capabilities()} function can also be used for presence of - this feature - } - } -} - -\section{Changes in Rcpp version 0.12.7 (2016-09-04)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The \code{NORET} macro is now defined if it was not already defined - by R itself (Kevin fixing issue \ghit{512}). - \item Environment functions get() & find() now accept a Symbol - (James Balamuta in \ghpr{513} addressing issue \ghit{326}). - \item Several uses of \code{Rf_eval} were replaced by the preferred - \code{Rcpp::Rcpp_eval} (Qiang in PR \ghpr{523} closing \ghit{498}). - \item Improved Autogeneration Warning for RcppExports - (James Balamuta in \ghpr{528} addressing issue \ghit{526}). - \item Fixed invalid C++ prefix identifiers in auto-generated code - (James Balamuta in \ghpr{528} and \ghpr{531} addressing issue - \ghit{387}; Simon Dirmeier in \ghpr{548}). - \item String constructors now set default UTF-8 encoding (Qiang Kou in - \ghpr{529} fixing \ghit{263}). - \item Add variadic variants of the \code{RCPP_RETURN_VECTOR} and - \code{RCPP_RETURN_MATRIX} macro when C++11 compiler used (Artem Klevtsov - in \ghpr{537} fixing \ghit{38}). - } - \item Changes in Rcpp build system - \itemize{ - \item Travis CI is now driven via \code{run.sh} from our fork, and deploys - all packages as .deb binaries using our PPA where needed (Dirk in - \ghpr{540} addressing issue \ghit{517}). - } - \item Changes in Rcpp unit tests - \itemize{ - \item New unit tests for random number generators the R namespace which - call the standalone Rmath library. (James Balamuta in \ghpr{514} - addressing issue \ghit{28}). - } - \item Changes in Rcpp Examples: - \itemize{ - \item Examples that used cxxfunction() from the inline package have been - rewritten to use either sourceCpp() or cppFunction() - (James Balamuta in \ghpr{541}, \ghpr{535}, \ghpr{534}, and \ghpr{532} - addressing issue \ghit{56}). - } - } -} - -\section{Changes in Rcpp version 0.12.6 (2016-07-18)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The \code{long long} data type is used only if it is available, - to avoid compiler warnings (Kirill Müller in \ghpr{488}). - \item The compiler is made aware that \code{stop()} never returns, to - improve code path analysis (Kirill Müller in \ghpr{487} addressing issue - \ghit{486}). - \item String replacement was corrected (Qiang in \ghpr{479} following - mailing list bug report by Masaki Tsuda) - \item Allow for UTF-8 encoding in error messages via - \code{RCPP_USING_UTF8_ERROR_STRING} macro (Qin Wenfeng in \ghpr{493}) - \item The R function \code{Rf_warningcall} is now provided as well (as - usual without leading \code{Rf_}) (\ghpr{497} fixing \ghit{495}) - } - \item Changes in Rcpp Sugar: - \itemize{ - \item Const-ness of \code{min} and \code{max} functions has been corrected. - (Dan Dillon in PR \ghpr{478} fixing issue \ghit{477}). - \item Ambiguities for matrix/vector and scalar operations have been fixed - (Dan Dillon in PR \ghpr{476} fixing issue \ghit{475}). - \item New \code{algorithm} header using iterator-based approach for - vectorized functions (Dan in PR \ghpr{481} revisiting PR \ghpr{428} and - addressing issue \ghit{426}, with futher work by Kirill in PR \ghpr{488} - and Nathan in \ghpr{503} fixing issue \ghit{502}). - \item The \code{na_omit()} function is now faster for vectors without - \code{NA} values (Artem Klevtsov in PR \ghpr{492}) - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Add \code{cacheDir} argument to \code{sourceCpp()} to enable caching of - shared libraries across R sessions (JJ in \ghpr{504}). - \item Code generation now deals correctly which packages containing a dot - in their name (Qiang in \ghpr{501} fixing \ghit{500}). - } - \item Changes in Rcpp Documentation: - \itemize{ - \item A section on default parameters was added to the Rcpp FAQ vignette - (James Balamuta in \ghpr{505} fixing \ghit{418}). - \item The Rcpp-attributes vignette is now mentioned more prominently in - question one of the Rcpp FAQ vignette. - \item The Rcpp Quick Reference vignette received a facelift with new - sections on Rcpp attributes and plugins begin added. (James Balamuta in - \ghpr{509} fixing \ghit{484}). - \item The bib file was updated with respect to the recent JSS publication - for RProtoBuf. - } - } -} - -\section{Changes in Rcpp version 0.12.5 (2016-05-14)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The checks for different C library implementations now also check for Musl - used by Alpine Linux (Sergio Marques in PR \ghpr{449}). - \item \code{Rcpp::Nullable} works better with Rcpp::String (Dan Dillon in - PR \ghpr{453}). - } - \item Changes in Rcpp Attributes: - \itemize{ - \item R 3.3.0 Windows with Rtools 3.3 is now supported (Qin Wenfeng in PR - \ghpr{451}). - \item Correct handling of dependent file paths on Windows (use winslash = "/"). - } - \item Changes in Rcpp Modules: - \itemize{ - \item An apparent race condition in Module loading seen with R 3.3.0 was - fixed (Ben Goodrich in \ghpr{461} fixing \ghit{458}). - \item The (older) \code{loadRcppModules()} is now deprecated in favour of - \code{loadModule()} introduced around R 2.15.1 and Rcpp 0.9.11 (PR \ghpr{470}). - } - \item Changes in Rcpp support functions: - \itemize{ - \item The \code{Rcpp.package.skeleton()} function was again updated in - order to create a \code{DESCRIPTION} file which passes \code{R CMD check} - without notes. warnings, or error under R-release and R-devel (PR \ghpr{471}). - \item A new function \code{compilerCheck} can test for minimal \code{g++} - versions (PR \ghpr{474}). - } - } -} - -\section{Changes in Rcpp version 0.12.4 (2016-03-22)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item New accessors \code{as()} and \code{clone()} were added to the - \code{Nullable} class (Dan in PR \ghpr{423} closing \ghit{421}) - \item The \code{Nullable<>::operator SEXP()} and - \code{Nullable<>::get()} now also work for \code{const} objects - (Kirill Mueller in PR \ghpr{417}). - \item A subsetting error was fixed (Qiang via \ghpr{432} closing - \ghit{431}). - } - \item Changes in Rcpp Sugar: - \itemize{ - \item Added new Sugar function \code{median()} (Nathan in PR \ghpr{425} - closing \ghit{424}) - \item Added new Sugar function \code{cbind()} (Nathan in PR \ghpr{447} - closing \ghit{407}) - } - \item Changes in Rcpp Attributes: - \itemize{ - \item A plugin for C++14 was added (Dan in PR \ghpr{427}) - } - \item Changes in Rcpp Documentation: - \itemize{ - \item An entry was added to the Rcpp-FAQ vignette describing the required - packages for vignette building (\ghit{422}). - \item Use on OS X was further detailed (James Balamuta in \ghpr{433} with - further review by Bob Rudis). - \item An entry was added concerning the hard-code limit of arguments to - some constructor and function (cf \ghit{435}). - \item The Rcpp-FAQ vignette now contains a table of content. - \item Typos and indentation were corrected in the Rcpp Sugar vignette - (\ghpr{445} by Colin Gillespie). - } - } -} - -\section{Changes in Rcpp version 0.12.3 (2016-01-10)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Const iterators now \code{CharacterVector} now behave like regular - iterators (PR \ghpr{404} by Dan fixing \ghit{362}). - \item Math operators between matrix and scalars type have been added (PR - \ghpr{406} by Qiang fixing \ghit{365}). - \item A missing \code{std::hash} function interface for - \code{Rcpp::String} has been addded (PR \ghpr{408} by Qiang fixing - \ghit{84}). - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Avoid invalid function names when generating C++ interfaces (PR - \ghpr{403} by JJ fixing \ghit{402}). - \item Insert additional space around \code{&} in function interface (PR - \ghpr{400} by Kazuki Fukui fixing \ghit{278}). - } - \item Changes in Rcpp Modules: - \itemize{ - \item The copy constructor now initialized the base class (PR \ghpr{411} - by Joshua Pritikin fixing \ghit{410}) - } - \item Changes in Rcpp Repository: - \itemize{ - \item Added a file \code{Contributing.md} providing some points to - potential contributors (PR \ghpr{414} closing issue \ghit{413}) - } - } -} - -\section{Changes in Rcpp version 0.12.2 (2015-11-14)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Correct return type in product of matrix dimensions (PR \ghpr{374} - by Florian) - \item Before creating a single String object from a \code{SEXP}, ensure - that it is from a vector of length one (PR \ghpr{376} by Dirk, fixing - \ghit{375}). - \item No longer use \code{STRING_ELT} as a left-hand side, thanks to a - heads-up by Luke Tierney (PR \ghpr{378} by Dirk, fixing \ghit{377}). - \item Rcpp Module objects are now checked more carefully (PR \ghpr{381} - by Tianqi, fixing \ghit{380}) - \item An overflow in Matrix column indexing was corrected (PR \ghpr{390} - by Qiang, fixing a bug reported by Allessandro on the list) - \item \code{Nullable} types can now be assigned \code{R_NilValue} in - function signatures. (PR \ghpr{395} by Dan, fixing issue \ghit{394}) - \item \code{operator<<()} now always shows decimal points (PR \ghpr{396} - by Dan) - \item Matrix classes now have a \code{transpose()} function (PR \ghpr{397} - by Dirk fixing \ghit{383}) - \item \code{operator<<()} for complex types was added (PRs \ghpr{398} by - Qiang and \ghpr{399} by Dirk, fixing \ghit{187}) - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Enable export of C++ interface for functions that return void. - } - \item Changes in Rcpp Sugar: - \itemize{ - \item Added new Sugar function \code{cummin()}, \code{cummax()}, - \code{cumprod()} (PR \ghpr{389} by Nathan Russell fixing \ghit{388}) - \item Enabled sugar math operations for subsets; e.g. x[y] + x[z]. - (PR \ghpr{393} by Kevin and Qiang, implementing \ghit{392}) - } - \item Changes in Rcpp Documentation: - \itemize{ - \item The \code{NEWS} file now links to GitHub issue tickets and pull - requests. - \item The \code{Rcpp.bib} file with bibliographic references was updated. - } - } -} - -\section{Changes in Rcpp version 0.12.1 (2015-09-10)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Correct use of WIN32 instead of _WIN32 to please Windows 10 - \item Add an assignment operator to \code{DimNameProxy} (PR \ghpr{339} by Florian) - \item Add vector and matrix accessors \code{.at()} with bounds checking - (PR \ghpr{342} by Florian) - \item Correct character vector conversion from single char (PR \ghpr{344} by - Florian fixing issue \ghit{343}) - \item Correct on use of \code{R_xlen_t} back to \code{size_t} (PR \ghpr{348} by - Romain) - \item Correct subsetting code to allow for single assignment (PR \ghpr{349} by - Florian) - \item Enable subset assignment on left and righ-hand side (PR \ghpr{353} by - Qiang, fixing issue \ghit{345}) - \item Refreshed to included \code{tinyformat} template library (PR \ghpr{357} by - Dirk, issue \ghit{356}) - \item Add \code{operator<<()} for vectors and matrices (PR \ghpr{361} by Dan - fixing issue \ghit{239}) - \item Make \code{String} and \code{String_Proxy} objects comparable (PR - \ghpr{366} and PR \ghpr{372} by Dan, fixing issue \ghit{191}) - \item Add a new class \code{Nullable} for objects which may be \code{NULL} - (PR \ghpr{368} by Dirk and Dan, fixing issue \ghit{363}) - \item Correct creation and access of large matrices (PR \ghpr{370} by Florian, - fixing issue \ghit{369}) - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Correctly reset directory in case of no-rebuilding but Windows code - (PR \ghpr{335} by Dirk) - } - \item Changes in Rcpp Modules: - \itemize{ - \item We no longer define multiple Modules objects named \code{World} in - the unit tests with was seen to have a bad effect with R 3.2.2 or later - (PR \ghpr{351} by Dirk fixing issue \ghit{350}). - \item Applied patch by Kurt Hornik which improves how Rcpp loads Modules - (PR \ghpr{353} by Dirk) - } - \item Changes in Rcpp Documentation: - \itemize{ - \item The \code{Rcpp.bib} file with bibliographic references was updated. - } - } -} - -\section{Changes in Rcpp version 0.12.0 (2015-07-24)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item \code{Rcpp_eval()} no longer uses \code{R_ToplevelExec} when evaluating - R expressions; this should resolve errors where calling handlers (e.g. - through \code{suppressMessages()}) were not properly respected. - \item All internal length variables have been changed from \code{R_len_t} - to \code{R_xlen_t} to support vectors longer than 2^31-1 elements (via - PR \ghpr{303} by Qiang Kou). - \item The sugar function \code{sapply} now supports lambda functions - (addressing \ghit{213} thanks to Matt Dziubinski) - \item The \code{var} sugar function now uses a more robust two-pass - method, supports complex numbers, with new unit tests added (via PR - \ghpr{320} by Matt Dziubinski) - \item \code{String} constructors now allow encodings (via PR \ghpr{310} - by Qiang Kou) - \item \code{String} objects are preserving the underlying \code{SEXP} - objects better, and are more careful about initializations (via PRs - \ghpr{322} and \ghpr{329} by Qiang Kou) - \item DataFrame constructors are now a little more careful (via PR - \ghpr{301} by Romain Francois) - \item For R 3.2.0 or newer, \code{Rf_installChar()} is used instead of - \code{Rf_install(CHAR())} (via PR \ghpr{332}). - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Use more robust method of ensuring unique paths for generated shared - libraries. - \item The \code{evalCpp} function now also supports the \code{plugins} - argument. - \item Correctly handle signature termination characters ('\{' or ';') contained - in quotes. - } - \item Changes in Rcpp Documentation: - \itemize{ - \item The \code{Rcpp-FAQ} vignette was once again updated with respect to - OS X issues and Fortran libraries needed for e.g. \CRANpkg{RcppArmadillo}. - \item The included \code{Rcpp.bib} bibtex file (which is also used by - other Rcpp* packages) was updated with respect to its CRAN references. - } - } -} - -\section{Changes in Rcpp version 0.11.6 (2015-05-01)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The unwinding of exceptions was refined to protect against inadvertent - memory leaks. - \item Header files now try even harder not to let macro definitions leak. - \item Matrices have a new default constructor for zero-by-zero dimension - matrices (via a pull request by Dmitrii Meleshko). - \item A new \code{empty()} string constructor was added (via another pull - request). - \item Better support for Vectors with a storage policy different from the - default, i.e. \code{NoProtectStorage}, was added. - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Rtools 3.3 is now supported. - } - } -} - -\section{Changes in Rcpp version 0.11.5 (2015-03-04)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item An error handler for tinyformat was defined to prevent the \code{assert()} - macro from spilling. - \item The \code{Rcpp::warning} function was added as a wrapper for \code{Rf_warning}. - \item The \code{XPtr} class was extended with new \code{checked_get} - and \code{release} functions as well as improved behavior (throw an - exception rather than crash) when a NULL external pointer is dereferenced. - \item R code is evaluated within an \code{R_toplevelExec} block to prevent - user interrupts from bypassing C++ destructors on the stack. - \item The \code{Rcpp::Environment} constructor can now use a supplied - parent environment. - \item The \code{Rcpp::Function} constructor can now use a supplied - environment or namespace. - \item The \code{attributes_hidden} macro from R is used to shield internal - functions; the \code{R_ext/Visibility.h} header is now included as well. - \item A \code{Rcpp::print} function was added as a wrapper around \code{Rf_PrintValue}. - } - \item Changes in Rcpp Attributes: - \itemize{ - \item The \code{pkg_types.h} file is now included in \code{RcppExports.cpp} - if it is present in either the \code{inst/include} or \code{src}. - \item \code{sourceCpp} was modified to allow includes of local files - (e.g. \code{#include "foo.hpp"}). Implementation files (*.cc; *.cpp) corresponding - to local includes are also automatically built if they exist. - \item The generated attributes code was simplified with respect to - \code{RNGScope} and now uses \code{RObject} and its destructor rather than \code{SEXP} - protect/unprotect. - \item Support addition of the \code{rng} parameter in \code{Rcpp::export} - to suppress the otherwise automatic inclusion of \code{RNGScope} in - generated code. - \item Attributes code was made more robust and can e.g. no longer recurse. - \item Version 3.2 of the Rtools is now correctly detected as well. - \item Allow 'R' to come immediately after '***' for defining embedded R - code chunks in sourceCpp. - \item The attributes vignette has been updated with documentation - on new features added over the past several releases. - } - \item Changes in Rcpp tests: - \itemize{ - \item On Travis CI, all build dependencies are installed as binary - \code{.deb} packages resulting in faster tests. - } - } -} - -\section{Changes in Rcpp version 0.11.4 (2015-01-20)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The \code{ListOf} class gains the \code{.attr} and - \code{.names} methods common to other Rcpp vectors. - \item The \code{[dpq]nbinom_mu()} scalar functions are now available via - the \code{R::} namespace when R 3.1.2 or newer is used. - \item Add an additional test for AIX before attempting to include \code{execinfo.h}. - \item \code{Rcpp::stop} now supports improved \code{printf}-like syntax - using the small tinyformat header-only library (following a similar - implementation in Rcpp11) - \item Pairlist objects are now protected via an additional \code{Shield<>} - as suggested by Martin Morgan on the rcpp-devel list. - \item Sorting is now prohibited at compile time for objects of type - \code{List}, \code{RawVector} and \code{ExpressionVector}. - \item Vectors now have a \code{Vector::const\_iterator} that is 'const correct' - thanks to fix by Romain following a bug report in rcpp-devel by Martyn Plummer. - \item The \code{mean()} sugar function now uses a more robust two-pass - method, and new unit tests for \code{mean()} were added at the same time. - \item The \code{mean()} and \code{var()} functions now support all core - vector types. - \item The \code{setequal()} sugar function has been corrected via - suggestion by Qiang Kou following a bug report by Søren Højsgaard. - \item The macros \code{major}, \code{minor}, and \code{makedev} no longer leak - in from the (Linux) system header \code{sys/sysmacros.h}. - \item The \code{push_front()} string function was corrected. - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Only look for plugins in the package's namespace - (rather than entire search path). - \item Also scan header files for definitions of functions to be considerd - by Attributes. - \item Correct the regular expression for source files which are scanned. - } - \item Changes in Rcpp unit tests - \itemize{ - \item Added a new binary test which will load a pre-built package to - ensure that the Application Binary Interface (ABI) did not change; this - test will (mostly or) only run at Travis where we have reasonable control - over the platform running the test and can provide a binary. - \item New unit tests for sugar functions \code{mean}, \code{setequal} and - \code{var} were added as noted above. - } - \item Changes in Rcpp Examples: - \itemize{ - \item For the (old) examples \code{ConvolveBenchmarks} and \code{OpenMP}, - the respective \code{Makefile} was renamed to \code{GNUmakefile} to please - \code{R CMD check} as well as the CRAN Maintainers. - } - } -} - -\section{Changes in Rcpp version 0.11.3 (2014-09-27)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The deprecation of \code{RCPP_FUNCTION_*} which was announced with - release 0.10.5 last year is proceeding as planned, and the file - \code{macros/preprocessor_generated.h} has been removed. - \item \code{Timer} no longer records time between steps, but times from - the origin. It also gains a \code{get_timers(int)} methods that - creates a vector of \code{Timer} that have the same origin. This is modelled - on the \code{Rcpp11} implementation and is more useful for situations where - we use timers in several threads. \code{Timer} also gains a constructor - taking a \code{nanotime_t} to use as its origin, and a \code{origin} method. - This can be useful for situations where the number of threads is not known - in advance but we still want to track what goes on in each thread. - \item A cast to \code{bool} was removed in the vector proxy code as - inconsistent behaviour between clang and g++ compilations was noticed. - \item A missing \code{update(SEXP)} method was added thanks to pull - request by Omar Andres Zapata Mesa. - \item A proxy for \code{DimNames} was added. - \item A \code{no_init} option was added for Matrices and Vectors. - \item The \code{InternalFunction} class was updated to work with - \code{std::function} (provided a suitable C++11 compiler is available) - via a pull request by Christian Authmann. - \item A \code{new_env()} function was added to \code{Environment.h} - \item The return value of range eraser for Vectors was fixed in a pull - request by Yixuan Qiu. - } - \item Changes in Rcpp Sugar: - \itemize{ - \item In \code{ifelse()}, the returned \code{NA} type was corrected for - \code{operator[]}. - } - \item Changes in Rcpp Attributes: - \itemize{ - \item Include LinkingTo in DESCRIPTION fields scanned to confirm that - C++ dependencies are referenced by package. - \item Add \code{dryRun} parameter to \code{sourceCpp}. - \item Corrected issue with relative path and R chunk use for \code{sourceCpp}. - } - \item Changes in Rcpp Documentation: - \itemize{ - \item The \code{Rcpp-FAQ} vignette was updated with respect to OS X issues. - \item A new entry in the \code{Rcpp-FAQ} clarifies the use of licenses. - \item Vignettes build results no longer copied to \code{/tmp} to please CRAN. - \item The Description in \code{DESCRIPTION} has been shortened. - } - \item Changes in Rcpp support functions: - \itemize{ - \item The \code{Rcpp.package.skeleton()} function will now use - \CRANpkg{pkgKitten} package, if available, to create a package which passes - \code{R CMD check} without warnings. A new \code{Suggests:} has been added - for \CRANpkg{pkgKitten}. - \item The \code{modules=TRUE} case for \code{Rcpp.package.skeleton()} has - been improved and now runs without complaints from \code{R CMD check} as well. - } - \item Changes in Rcpp unit test functions: - \itemize{ - \item Functions from the \CRANpkg{RUnit} package are now prefixed with \code{RUnit::} - \item The \code{testRcppModule} and \code{testRcppClass} sample packages - now pass \code{R CMD check --as-cran} cleanly with NOTES or WARNINGS - } - } -} - -\section{Changes in Rcpp version 0.11.2 (2014-06-06)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Implicit conversions, e.g. between \code{NumericVector} and - \code{IntegerVector}, will now give warnings if you use - \code{\#define RCPP_WARN_ON_COERCE} before including the Rcpp - headers. - \item Templated \code{List} containers, \code{ListOf}, have been - introduced. When subsetting such containers, the return is assumed - to be of type T, allowing code such as - \code{ListOf x; NumericVector y = x[0] + x[1] + x[2]}. - \item In a number of instances, returned results are protected and/or cast - more carefully. - } - \item Changes in Rcpp Attributes - \itemize{ - \item Trailing line comments are now stripped by the attributes - parser. This allows the parser to handle C++ source files - containing comments inline with function arguments. - \item The \code{USE_CXX1X} environment variable is now defined by - the cpp11 plugin when R >= 3.1. Two additional plugins have been - added for use with C++0x (eg when using g++ 4.6.* as on Windows) - as well as C++1y for compilers beginning to support the next - revision of the standard; additional fallback is provided for - Windows. - \item \code{compileAttributes()} now also considers Imports: which - may suppress a warning when running \code{Rcpp.package.skeleton()}. - } - } -} - -\section{Changes in Rcpp version 0.11.1 (2014-03-13)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Preserve backwards compatibility with \CRANpkg{Rcpp} 0.10.* by - allowing \code{RObject} extraction from vectors (or lists) of Rcpp - objects - \item Add missing default constructor to Reference class that was - omitted in the header-only rewrite - \item Fixes for \code{NA} and \code{NaN} handling of the - \code{IndexHash} class, as well as the vector \code{.sort()} - method. These fixes ensure that sugar functions depending on - \code{IndexHash} (i.e. \code{unique()}, \code{sort_unique()}, - \code{match()}) will now properly handle \code{NA} and \code{NaN} - values for numeric vectors. - \item \code{DataFrame::nrows} now more accurately mimics R's - internal behavior (checks the row.names attribute) - \item Numerous changes to permit compilation on the Solaris OS - \item Rcpp vectors gain a subsetting method -- it is now possible - to subset an Rcpp vector using \code{CharacterVector}s (subset - by name), \code{LogicalVector}s (logical subsetting), and - \code{IntegerVector}s (0-based index subsetting). Such subsetting - will also work with Rcpp sugar expressions, enabling expressions - such as \code{x[ x > 0]}. - \item Comma initialization (e.g. - \code{CharacterVector x = "a", "b", "c";}, has been disabled, as - it causes problems with the behavior of the \code{=} operator with - \code{Rcpp::List}s. Users who want to re-enable this functionality - can use \code{#define RCPP_COMMA_INITIALIZATION}, but be aware of - the above caveat. The more verbose - \code{CharacterVector x = CharacterVector::create("a", "b", "c")} - is preferred. - } - \item Changes in Rcpp Attributes - \itemize{ - \item Fix issue preventing packages with \code{Rcpp::interfaces} - attribute from compiling. - \item Fix behavior with attributes parsing of \code{::create} for default - arguments, and also allow constructors of a given size - (e.g. \code{NumericVector v = NumericVector(10))} gives a default - value of \code{numeric(10)} at the R level). Also make NAs preserve - type when exported to R (e.g. \code{NA_STRING} as a default argument - maps to \code{NA_character_} at the R level) - } - \item Changes in Rcpp modules - \itemize{ - \item Corrected the \code{un_pointer} implementation for \code{object} - } - } -} - -\section{Changes in Rcpp version 0.11.0 (2014-02-02)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Functions provided/used by \CRANpkg{Rcpp} are now registered - with R and instantiated by client package alleviating the new for - explicit linking against \code{libRcpp} which is therefore no - longer created. - \item Updated the \code{Rcpp.package.skeleton()} function accordingly. - \item New class \code{StretchyList} for pair lists with fast addition of - elements at the front and back. This abstracts the 3 functions - \code{NewList}, \code{GrowList} and \code{Insert} used in various - packages and in parsers in R. - \item The function \code{dnt}, \code{pnt}, \code{qnt} sugar - functions were incorrectly expanding to the no-degree-of-freedoms - variant. - \item Unit tests for \code{pnt} were added. - \item The sugar table function did not handle NAs and NaNs properly - for numeric vectors. Fixed and tests added. - \item The internal coercion mechanism mapping numerics to strings has - been updated to better match \R (specifically with \code{Inf}, \code{-Inf}, - and \code{NaN}.) - \item Applied two bug fixes to Vector \code{sort()} and \code{RObject} - definition spotted and corrected by Kevin Ushey - \item New \code{checkUserInterrupt()} function that provides a C++ friendly - implementation of \code{R_CheckUserInterrupt}. - } - \item Changes in Rcpp attributes: - \itemize{ - \item Embedded R code chunks in sourceCpp are now executed within - the working directory of the C++ source file. - \item Embedded R code chunks in sourceCpp can now be disabled. - } - \item Changes in Rcpp documentation: - \itemize{ - \item The Rcpp-FAQ and Rcpp-package vignettes have been updated and expanded. - \item Vignettes are now typeset with grey background for code boxes. - \item The bibtex reference file has been update to reflexct - current package versions. - } - \item Changes in Rcpp unit tests: - \itemize{ - \item The file \code{tests/doRUnit.R} was rewritten following the - pattern deployed in \CRANpkg{RProtoBuf} which is due to Murray Stokely - \item The function \code{test()} was rewritten; it provides an - easy entry point to running unit tests of the installed package - } - } -} - -\section{Changes in Rcpp version 0.10.6 (2013-10-27)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item The function \code{exposeClass} takes a description of the - constructors, fields and methods to be exposed from a C++ - class, and writes C++ and R files in the package. Inherited - classes can be dealt with, but require data type information. - This approach avoids hand-coding module files. - \item Two missing \code{is<>()} templates for - \code{CharacterVector} and \code{CharacterMatrix} have been added, - and some tests for \code{is_na()} and \code{is_finite()} have been - corrected thanks to Thomas Tse. - } - \item Changes in R code: - \itemize{ - \item Export linking helper function \code{LdFlags} as well as - \code{RcppLdFlags}. - \item Function \code{Rcpp.package.skeleton()} no longer passes a - \code{namespace} argument on to \code{package.skeleton()} - } - \item Changes in R setup: - \itemize{ - \item Raise requirement for R itself to be version 3.0.0 or later - as needed by the vignette processing - } - \item Changes in Rcpp attributes: - \itemize{ - \item \code{sourceCpp} now correctly binds to Rtools 3.0 and 3.1 - } - } -} - -\section{Changes in Rcpp version 0.10.5 (2013-09-28)}{ - \itemize{ - \item Changes in R code: - \itemize{ - \item New R function \code{demangle} that calls the \code{DEMANGLE} macro. - \item New R function \code{sizeof} to query the byte size of a type. This - returns an object of S3 class \code{bytes} that has a \code{print} method - showing bytes and bits. - } - \item Changes in Rcpp API: - \itemize{ - \item Add \code{defined(__sun)} to lists of operating systems to - test for when checking for lack of \code{backtrace()} needed for - stack traces. - \item \code{as}, \code{as}, \code{as} and - \code{as} are now supported, when - T is a class exposed by modules, i.e. with \code{RCPP_EXPOSED_CLASS} - \item \code{DoubleVector} as been added as an alias to - \code{NumericVector} - \item New template function \code{is} to identify if an R object - can be seen as a \code{T}. For example \code{is(x)}. - This is a building block for more expressive dispatch in various places - (modules and attributes functions). - \item \code{wrap} can now handle more types, i.e. types that iterate over - \code{std::pair} where KEY can be converted to a - \code{String} and \code{VALUE} is either a primitive type (int, double) - or a type that wraps. Examples : - \itemize{ - \item \code{std::map} : we can make a String from an int, - and double is primitive - \item \code{boost::unordered_map >}: we can make - a String from a double and \code{std::vector} can wrap itself - } - Other examples of this are included at the end of the \code{wrap} unit test - file (\code{runit.wrap.R} and \code{wrap.cpp}). - \item \code{wrap} now handles containers of classes handled by modules. e.g. - if you expose a class \code{Foo} via modules, then you can wrap - \code{vector}, ... An example is included in the \code{wrap} unit test - file - \item \code{RcppLdFlags()}, often used in \code{Makevars} files of - packages using \pkg{Rcpp}, is now exported from the package namespace. - } - \item Changes in Attributes: - \itemize{ - \item Objects exported by a module (i.e. by a \code{RCPP_MODULE} call - in a file that is processed by \code{sourceCpp}) are now directly - available in the environment. We used to make the module object - available, which was less useful. - \item A plugin for \code{openmp} has been added to support use of OpenMP. - \item \code{Rcpp::export} now takes advantage of the more flexible - \code{as<>}, handling constness and referenceness of the input types. - For users, it means that for the parameters of function exported by modules, - we can now use references, pointers and const versions of them. - The file \code{Module.cpp} file has an example. - \item{No longer call non-exported functions from the tools package} - \item{No longer search the inline package as a fallback when loading - plugins for the the \code{Rcpp::plugins} attribute}. - } - \item Changes in Modules: - \itemize{ - \item We can now expose functions and methods that take - \code{T&} or \code{const T&} as arguments. In these situations - objects are no longer copied as they used to be. - } - \item Changes in sugar: - \itemize{ - \item \code{is_na} supports classes \code{DatetimeVector} and - \code{DateVector} - } - \item Changes in Rcpp documentation: - \itemize{ - \item The vignettes have been moved from \code{inst/doc/} to the - \code{vignettes} directory which is now preferred. - \item The appearance of the vignettes has been refreshed by - switching to the Bistream Charter font, and microtype package. - } - \item Deprecation of \code{RCPP_FUNCTION_*}: - \itemize{ - \item The macros from the \code{preprocessor_generated.h} file - have been deprecated. They are still available, but they print a - message in addition to their expected behavior. - \item The macros will be permanently removed in the first \pkg{Rcpp} - release after July 2014. - \item Users of these macros should start replacing them with more - up-to-date code, such as using 'Rcpp attributes' or 'Rcpp modules'. - } - } -} - -\section{Changes in Rcpp version 0.10.4 (2013-06-23)}{ - \itemize{ - \item Changes in R code: None beyond those detailed for Rcpp Attributes - \item Changes in Rcpp attributes: - \itemize{ - \item Fixed problem whereby the interaction between the gc and the - RNGScope destructor could cause a crash. - \item Don't include package header file in generated C++ interface - header files. - \item Lookup plugins in \pkg{inline} package if they aren't found - within the \pkg{Rcpp} package. - \item Disallow compilation for files that don't have extensions - supported by R CMD SHLIB - } - \item Changes in Rcpp API: - \itemize{ - \item The \code{DataFrame::create} set of functions has been reworked - to just use \code{List::create} and feed to the \code{DataFrame} - constructor - \item The \code{operator-()} semantics for \code{Date} and - \code{Datetime} are now more inline with standard C++ behaviour; - with thanks to Robin Girard for the report. - \item RNGScope counter now uses unsigned long rather than int. - \item \code{Vector<*>::erase(iterator, iterator)} was fixed. Now - it does not remove the element pointed by last (similar to what is - done on stl types and what was intended initially). Reported on - Rcpp-devel by Toni Giorgino. - \item Added equality operator between elements of - \code{CharacterVector}s. - } - \item Changes in Rcpp sugar: - \itemize{ - \item New function \code{na_omit} based on the StackOverflow thread - \url{http://stackoverflow.com/questions/15953768/} - \item New function \code{is_finite} and \code{is_infinite} that - reproduces the behavior of R's \code{is.finite} and - \code{is.infinite} functions - } - \item Changes in Rcpp build tools: - \itemize{ - \item Fix by Martyn Plummer for Solaris in handling of - \code{SingleLogicalResult}. - \item The \code{src/Makevars} file can now optionally override the - path for \code{/usr/bin/install_name_tool} which is used on OS X. - \item Vignettes are trying harder not to be built in parallel. - } - \item Changes in Rcpp documentation: - \itemize{ - \item Updated the bibliography in \code{Rcpp.bib} (which is also - sourced by packages using Rcpp). - \item Updated the \code{THANKS} file. - } - \item Planned Deprecation of \code{RCPP_FUNCTION_*}: - \itemize{ - \item The set of macros \code{RCPP_FUNCTION_} etc ... from the - \code{preprocessor_generated.h} file will be deprecated in the next version - of \pkg{Rcpp}, i.e they will still be available but will generate some - warning in addition to their expected behavior. - \item In the first release that is at least 12 months after this announcement, the - macros will be removed from \pkg{Rcpp}. - \item Users of these macros (if there are any) should start replacing them - with more up to date code, such as using Rcpp attributes or Rcpp - modules. - } - } -} - -\section{Changes in Rcpp version 0.10.3 (2013-03-23)}{ - \itemize{ - \item Changes in R code: - \itemize{ - \item Prevent build failures on Windowsn when Rcpp is installed - in a library path with spaces (transform paths in the same manner - that R does before passing them to the build system). - } - \item Changes in Rcpp attributes: - \itemize{ - \item Rcpp modules can now be used with \code{sourceCpp} - \item Standalone roxygen chunks (e.g. to document a class) are now - transposed into RcppExports.R - \item Added \code{Rcpp::plugins} attribute for binding - directly to inline plugins. Plugins can be registered using - the new \code{registerPlugin} function. - \item Added built-in \code{cpp11} plugin for specifying - the use of C++11 in a translation unit - \item Merge existing values of build related environment - variables for sourceCpp - \item Add global package include file to RcppExports.cpp - if it exists - \item Stop with an error if the file name passed to - \code{sourceCpp} has spaces in it - \item Return invisibly from void functions - \item Ensure that line comments invalidate block comments when - parsing for attributes - \item Eliminated spurious empty hello world function definition - in Rcpp.package.skeleton - } - \item Changes in Rcpp API: - \itemize{ - \item The very central use of R API R_PreserveObject and - R_ReleaseObject has been replaced by a new system based on the - functions Rcpp_PreserveObject, Rcpp_ReleaseObject and Rcpp_ReplaceObject - which shows better performance and is implemented using a generic vector - treated as a stack instead of a pairlist in the R - implementation. However, as this preserve / release code is still - a little rough at the edges, a new #define is used (in config.h) - to disable it for now. - \item Platform-dependent code in Timer.cpp now recognises a few - more BSD variants thanks to contributed defined() test suggestions - \item Support for wide character strings has been added throughout the - API. In particular String, CharacterVector, wrap and as are aware of - wide character strings - } - } -} - -\section{Changes in Rcpp version 0.10.2 (2012-12-21)}{ - \itemize{ - \item Changes in Rcpp API: - \itemize{ - \item Source and header files were reorganized and consolidated so - that compile time are now significantly lower - \item Added additional check in \code{Rstreambuf} deletetion - \item Added support for \code{clang++} when using \code{libc++}, - and for anc \code{icpc} in \code{std=c++11} mode, thanks to a - patch by Yan Zhou - \item New class \code{Rcpp::String} to facilitate working with a single - element of a character vector - \item New utility class sugar::IndexHash inspired from Simon - Urbanek's fastmatch package - \item Implementation of the equality operator between two Rcomplex - \item \code{RNGScope} now has an internal counter that enables it - to be safely used multiple times in the same stack frame. - \item New class \code{Rcpp::Timer} for benchmarking - } - \item Changes in Rcpp sugar: - \itemize{ - \item More efficient version of \code{match} based on \code{IndexHash} - \item More efficient version of \code{unique} base on \code{IndexHash} - \item More efficient version of \code{in} base on \code{IndexHash} - \item More efficient version of \code{duplicated} base on \code{IndexHash} - \item More efficient version of \code{self_match} base on \code{IndexHash} - \item New function \code{collapse} that implements paste(., collapse= "" ) - } - \item Changes in Rcpp attributes: - \itemize{ - \item Use code generation rather than modules to implement - \code{sourceCpp} and \code{compileAttributes} (eliminates - problem with exceptions not being able to cross shared library - boundaries on Windows) - \item Exported functions now automatically establish an \code{RNGScope} - \item Functions exported by \code{sourceCpp} now directly - reference the external function pointer rather than rely on - dynlib lookup - \item On Windows, Rtools is automatically added to the PATH - during \code{sourceCpp} compilations - \item Diagnostics are printed to the console if \code{sourceCpp} - fails and C++ development tools are not installed - \item A warning is printed if when \code{compileAttributes} detects - \code{Rcpp::depends} attributes in source files that are not - matched by Depends/LinkingTo entries in the package DESCRIPTION - } - } -} - -\section{Changes in Rcpp version 0.10.1 (2012-11-26)}{ - \itemize{ - \item Changes in Rcpp sugar: - \itemize{ - \item New functions: \code{setdiff}, \code{union_}, \code{intersect} - \code{setequal}, \code{in}, \code{min}, \code{max}, \code{range}, - \code{match}, \code{table}, \code{duplicated} - \item New function: \code{clamp} which combines pmin and pmax, e.g. - clamp( a, x, b) is the same as pmax( b, pmin(x, a) ) - \item New function: \code{self_match} which implements something - similar to \code{match( x, unique( x ) )} - } - \item Changes in Rcpp API: - \itemize{ - \item The \code{Vector} template class (hence \code{NumericVector} - ...) get the \code{is_na} and the \code{get_na} static methods. - \item New helper class \code{no_init} that can be used to - create a vector without initializing its data, e.g. : - \code{ IntegerVector out = no_init(n) ; } - \item New exception constructor requiring only a message; \code{stop} - function to throw an exception - \item \code{DataFrame} gains a \code{nrows} method - } - \item Changes in Rcpp attributes: - \itemize{ - \item Ability to embed R code chunks (via specially formatted - block comments) in C++ source files. - \item Allow specification of argument defaults for exported functions. - \item New scheme for more flexible mixing of generated and user composed - C++ headers. - \item Print warning if no export attributes are found in source file. - \item Updated vignette with additional documentation on exposing - C++ interfaces from packages and signaling errors. - } - \item Changes in Rcpp modules: - \itemize{ - \item Enclose .External invocations in \code{BEGIN_RCPP}/\code{END_RCPP} - } - \item Changes in R code : - \itemize{ - \item New function \code{areMacrosDefined} - \item Additions to \code{Rcpp.package.skeleton}: - \itemize{ - \item \code{attributes} parameter to generate a version of - \code{rcpp_hello_world} that uses \code{Rcpp::export}. - \item \code{cpp_files} parameter to provide a list of C++ - files to include the in the \code{src} directory of the package. - } - } - \item Miscellaneous changes: - \itemize{ - \item New example 'pi simulation' using R and C++ via Rcpp attributes - } - } -} -\section{Changes in Rcpp version 0.10.0 (2012-11-13)}{ - \itemize{ - \item Support for C++11 style attributes (embedded in comments) to enable - use of C++ within interactive sessions and to automatically generate module - declarations for packages: - \itemize{ - \item Rcpp::export attribute to export a C++ function to R - \item \code{sourceCpp()} function to source exported functions from a file - \item \code{cppFunction()} and \code{evalCpp()} functions for inline declarations - and execution - \item \code{compileAttribtes()} function to generate Rcpp modules from - exported functions within a package - \item Rcpp::depends attribute for specifying additional build - dependencies for \code{sourceCpp()} - \item Rcpp::interfaces attribute to specify the external bindings - \code{compileAttributes()} should generate (defaults to R-only but a - C++ include file using R_GetCCallable can also be generated) - \item New vignette "Rcpp-attribute" - } - \item Rcpp modules feature set has been expanded: - \itemize{ - \item Functions and methods can now return objects from classes that - are exposed through modules. This uses the make_new_object template - internally. This feature requires that some class traits are declared - to indicate Rcpp's \code{wrap}/\code{as} system that these classes are covered - by modules. The macro RCPP_EXPOSED_CLASS and RCPP_EXPOSED_CLASS_NODECL - can be used to declared these type traits. - \item Classes exposed through modules can also be used as parameters - of exposed functions or methods. - \item Exposed classes can declare factories with ".factory". A factory - is a c++ function that returns a pointer to the target class. It is - assumed that these objects are allocated with new on the factory. On the - R side, factories are called just like other constructors, with the - "new" function. This feature allows an alternative way to construct - objects. - \item "converter" can be used to declare a way to convert an object - of a type to another type. This gets translated to the appropriate - "as" method on the R side. - \item Inheritance. A class can now declare that it inherits from - another class with the .derives( "Parent" ) notation. As a result - the exposed class gains methods and properties (fields) from its - parent class. - } - \item New sugar functions: - \itemize{ - \item \code{which_min} implements which.min. Traversing the sugar expression - and returning the index of the first time the minimum value is found. - \item \code{which_max} idem - \item \code{unique} uses unordered_set to find unique values. In particular, - the version for CharacterVector is found to be more efficient than - R's version - \item \code{sort_unique} calculates unique values and then sorts them. - } - \item Improvements to output facilities: - \itemize{ - \item Implemented \code{sync()} so that flushing output streams works - \item Added \code{Rcerr} output stream (forwarding to - \code{REprintf}) - } - \item Provide a namespace 'R' for the standalone Rmath library so - that Rcpp users can access those functions too; also added unit tests - \item Development releases sets variable RunAllRcppTests to yes to - run all tests (unless it was alredy set to 'no'); CRAN releases do - not and still require setting -- which helps with the desired CRAN - default of less testing at the CRAN server farm. - } -} - -\section{Changes in Rcpp version 0.9.15 (2012-10-13)}{ - \itemize{ - \item Untangling the clang++ build issue about the location of the - exceptions header by directly checking for the include file -- an - approach provided by Martin Morgan in a kindly contributed patch - as unit tests for them. - \item The \code{Date} and \code{Datetime} types now correctly - handle \code{NA}, \code{NaN} and \code{Inf} representation; the - \code{Date} type switched to an internal representation via \code{double} - \item Added \code{Date} and \code{Datetime} unit tests for the new - features - \item An additional \code{PROTECT} was added for parsing exception - messages before returning them to R, following a report by Ben North - } -} - -\section{Changes in Rcpp version 0.9.14 (2012-09-30)}{ - \itemize{ - \item Added new Rcpp sugar functions trunc(), round() and signif(), as well - as unit tests for them - \item Be more conservative about where we support clang++ and the inclusion - of exception_defines.h and prevent this from being attempted on OS X - where it failed for clang 3.1 - \item Corrected a typo in Module.h which now again permits use of finalizers - \item Small correction for (unexported) bib() function (which provides a path - to the bibtex file that ships with Rcpp) - \item Converted NEWS to NEWS.Rd - } -} -\section{Changes in Rcpp version 0.9.13 (2012-06-28)}{ - \itemize{ - \item Truly corrected Rcpp::Environment class by having default constructor - use the global environment, and removing the default argument of - global environment from the SEXP constructor - \item Added tests for clang++ version to include bits/exception_defines.h - for versions 3.0 or higher (similar to g++ 4.6.0 or later), needed to - include one particular exceptions header - \item Made more regression tests conditional on the RunAllRcppTests to come - closer to the CRAN mandate of running tests in sixty seconds - \item Updated unit test wrapper tests/doRUnit.R as well as unitTests/runTests.R - } -} -\section{Changes in Rcpp version 0.9.12 (2012-06-23)}{ - \itemize{ - \item Corrected Rcpp::Environment class by removing (empty) ctor following - rev3592 (on May 2) where default argument for ctor was moved - \item Unit testing now checks for environment variable RunAllRcppTests being - set to "yes"; otherwise some tests are skipped. This is arguably not - the right thing to do, but CRAN maintainers insist on faster tests. - \item Unit test wrapper script runTests.R has new option --allTests to set - the environment variable - \item The cleanup script now also considers inst/unitTests/testRcppClass/src - } -} -\section{Changes in Rcpp version 0.9.11 (2012-06-22)}{ - \itemize{ - \item New member function for vectors (and lists etc) containsElementNamed() - which returns a boolean indicating if the given element name is present - \item Updated the Rcpp.package.skeleton() support for Rcpp modules by - carrying functions already present from the corresponding unit test - which was also slightly expanded; and added more comments to the code - \item Rcpp modules can now be loaded via loadRcppModules() from .onLoad(), - or via loadModule("moduleName") from any R file - \item Extended functionality to let R modify C++ clases imported via modules - documented in help(setRcppClass) - \item Support compilation in Cygwin thanks to a patch by Dario Buttari - \item Extensions to the Rcpp-FAQ and the Rcpp-modules vignettes - \item The minium version of R is now 2.15.1 which is required for some of - the Rcpp modules support - } -} -\section{Changes in Rcpp version 0.9.10 (2012-02-16)}{ - \itemize{ - \item Rearrange headers so that Rcpp::Rcout can be used by RcppArmadillo et al - \item New Rcpp sugar function mapply (limited to two or three input vectors) - \item Added custom version of the Rcpp sugar diff function for numeric vectors - skipping unncesserry checks for NA - \item Some internal code changes to reflect changes and stricter requirements - in R CMD check in the current R-devel versions - \item Corrected fixed-value initialization for IntegerVector (with thanks to - Gregor Kastner for spotting this) - \item New Rcpp-FAQ entry on simple way to set compiler option for cxxfunction - } -} -\section{Changes in Rcpp version 0.9.9 (2012-12-25)}{ - \itemize{ - \item Reverting the 'int64' changes from release 0.9.8 which adversely - affect packages using Rcpp: We will re-apply the 'int64' changes in a - way which should cooperate more easily with 'long' and 'unsigned long'. - \item Unit test output directory fallback changed to use Rcpp.Rcheck - \item Conditioned two unit tests to not run on Windows where they now break - whereas they passed before, and continue to pass on other OSs - } -} -\section{Changes in Rcpp version 0.9.8 (2011-12-21)}{ - \itemize{ - \item wrap now handles 64 bit integers (int64_t, uint64_t) and containers - of them, and Rcpp now depends on the int64 package (also on CRAN). - This work has been sponsored by the Google Open Source Programs - Office. - \item Added setRcppClass() function to create extended reference classes - with an interface to a C++ class (typically via Rcpp Module) which - can have R-based fields and methods in addition to those from the C++. - \item Applied patch by Jelmer Ypma which adds an output stream class - 'Rcout' not unlike std::cout, but implemented via Rprintf to - cooperate with R and its output buffering. - \item New unit tests for pf(), pnf(), pchisq(), pnchisq() and pcauchy() - \item XPtr constructor now checks for corresponding type in SEXP - \item Updated vignettes for use with updated highlight package - \item Update linking command for older fastLm() example using external - Armadillo - } -} -\section{Changes in Rcpp version 0.9.7 (2011-09-29)}{ - \itemize{ - \item Applied two patches kindly provided by Martyn Plummer which provide - support for compilation on Solaris using the SunPro compiler - \item Minor code reorganisation in which exception specifiers are removed; - this effectively only implements a run-time (rather than compile-time) - check and is generally seen as a somewhat depreated C++ idiom. Thanks - to Darren Cook for alerting us to this issue. - \item New example 'OpenMPandInline.r' in the OpenMP/ directory, showing how - easily use OpenMP by modifying the RcppPlugin output - \item New example 'ifelseLooped.r' showing Rcpp can accelerate loops that may - be difficult to vectorise due to dependencies - \item New example directory examples/Misc/ regrouping the new example as - well as the fibonacci example added in Rcpp 0.9.6 - \item New Rcpp-FAQ example warning of lossy conversion from 64-bit long - integer types into a 53-bit mantissa which has no clear fix yet. - \item New unit test for accessing a non-exported function from a namespace - } -} -\section{Changes in Rcpp version 0.9.6 (2011-07-26)}{ - \itemize{ - \item Added helper traits to facilitate implementation of the RcppEigen - package: The is_eigen_base traits identifies if a class derives from - EigenBase using SFINAE; and new dispatch layer was added to wrap() to - help RcppEigen - \item XPtr now accepts a second template parameter, which is a function - taking a pointer to the target class. This allows the developper to - supply his/her own finalizer. The template parameter has a default - value which retains the original behaviour (calling delete on the - pointer) - \item New example RcppGibbs, extending Sanjog Misra's Rcpp illustration of - Darren Wilkinson's comparison of MCMC Gibbs Sampler implementations; - also added short timing on Normal and Gaussian RNG draws between Rcpp - and GSL as R's rgamma() is seen to significantly slower - \item New example on recursively computing a Fibonacci number using Rcpp and - comparing this to R and byte-compiled R for a significant speed gain - } -} -\section{Changes in Rcpp version 0.9.5 (2011-07-05)}{ - \itemize{ - \item New Rcpp-FAQ examples on using the plugin maker for inline's - cxxfunction(), and on setting row and column names for matrices - \item New sugar functions: mean, var, sd - \item Minor correction and extension to STL documentation in Rcpp-quickref - \item wrap() is now resilient to NULL pointers passed as in const char * - \item loadRcppModules() gains a "direct" argument to expose the module instead - of exposing what is inside it - \item Suppress a spurious warning from R CMD check on packages created with - Rcpp.package.skeleton(..., module=TRUE) - \item Some fixes and improvements for Rcpp sugar function 'rlnorm()' - \item Beginnings of new example using OpenMP and recognising user interrupts - } -} -\section{Changes in Rcpp version 0.9.4 (2011-04-12)}{ - \itemize{ - \item New R function "loadRcppModules" to load Rcpp modules automatically - from a package. This function must be called from the .onLoad function - and works with the "RcppModules" field of the package's DESCRIPTION file - \item The Modules example wrapped the STL std::vector received some editing - to disambiguate some symbols the newer compilers did not like - \item Coercing of vectors of factors is now done with an explicit callback - to R's "as.character()" as Rf_coerceVector no longer plays along - \item A CITATION file for the published JSS paper has been added, and - references were added to Rcpp-package.Rd and the different vignettes - } -} -\section{Changes in Rcpp version 0.9.3 (2011-04-05)}{ - \itemize{ - \item Fixed a bug in which modules code was not behaving when compiled - twice as can easily happen with inline'ed version - \item Exceptions code includes exception_defines.h only when g++ is 4.5 or - younger as the file no longer exists with g++-4.6 - \item The documentation Makefile now uses the $R_HOME environment variable - \item The documentation Makefile no longer calls clean in the all target - \item C++ conformance issue found by clang/llvm addressed by re-ordering - declarations in grow.h as unqualified names must be declared before - they are used, even when used within templates - \item The 'long long' typedef now depends on C++0x being enabled as this - was not a feature in C++98; this suppresses a new g++-4.5 warning - \item The Rcpp-introduction vignette was updated to the forthcoming JSS paper - } -} -\section{Changes in Rcpp version 0.9.2 (2011-02-23)}{ - \itemize{ - \item The unitTest runit.Module.client.package.R is now skipped on older OS - X releases as it triggers a bug with g++ 4.2.1 or older; OS X 10.6 is - fine but as it no longer support ppc we try to accomodate 10.5 too - Thanks to Simon Urbanek for pinning this down and Baptiste Auguie - and Ken Williams for additonal testing - \item RcppCommon.h now recognises the Intel Compiler thanks to a short - patch by Alexey Stukalov; this turns off Cxx0x and TR1 features too - \item Three more setup questions were added to the Rcpp-FAQ vignette - \item One question about RcppArmadillo was added to the Rcpp-FAQ vignette - } -} -\section{Changes in Rcpp version 0.9.1 (2011-02-14)}{ - \itemize{ - \item A number of internal changes to the memory allocation / protection of - temporary objects were made---with a heartfelt "Thank You!" to both - Doug Bates for very persistent debugging of Rcpp modules code, and to - Luke Tierney who added additional memory allocation debugging tools - to R-devel (which will be in R 2.13.0 and may also be in R 2.12.2) - \item Removed another GNU Make-specific variable from src/Makevars in order - to make the build more portable; this was noticed on FreeBSD - \item On *BSD, do not try to compute a stack trace but provide file and - line number (which is the same behaviour as implemented in Windows) - \item Fixed an int conversion bug reported by Daniel Sabanes Bove on r-devel, - added unit test as well - \item Added unit tests for complex-typed vectors (thanks to Christian Gunning) - \item Expanded the Rcpp-quickref vignette (with thanks to Christian Gunning) - \item Additional examples were added to the Rcpp-FAQ vignette - } -} -\section{Changes in Rcpp version 0.9.0 (2010-12-19)}{ - \itemize{ - \item The classic API was factored out into its own package RcppClassic which - is released concurrently with this version. - \item If an object is created but not initialized, attempting to use - it now gives a more sensible error message (by forwarding an - Rcpp::not_initialized exception to R). - \item SubMatrix fixed, and Matrix types now have a nested ::Sub typedef. - \item New unexported function SHLIB() to aid in creating a shared library on - the command-line or in Makefile (similar to CxxFlags() / LdFlags()). - \item Module gets a seven-argument ctor thanks to a patch from Tama Ma. - \item The (still incomplete) QuickRef vignette has grown thanks to a patch - by Christian Gunning. - \item Added a sprintf template intended for logging and error messages. - \item Date::getYear() corrected (where addition of 1900 was not called for); - corresponding change in constructor from three ints made as well. - \item Date() and Datetime() constructors from string received a missing - conversion to int and double following strptime. The default format - string for the Datetime() strptime call was also corrected. - \item A few minor fixes throughout, see ChangeLog. - } -} -\section{Changes in Rcpp version 0.8.9 (2010-11-27)}{ - \itemize{ - \item Many improvements were made in 'Rcpp modules': - - exposing multiple constructors - - overloaded methods - - self-documentation of classes, methods, constructors, fields and - functions. - - new R function "populate" to facilitate working with modules in - packages. - - formal argument specification of functions. - - updated support for Rcpp.package.skeleton. - - constructors can now take many more arguments. - \item The 'Rcpp-modules' vignette was updated as well and describe many - of the new features - \item New template class Rcpp::SubMatrix and support syntax in Matrix - to extract a submatrix: - NumericMatrix x = ... ; - // extract the first three columns - SubMatrix y = x( _ , Range(0,2) ) ; - // extract the first three rows - SubMatrix y = x( Range(0,2), _ ) ; - // extract the top 3x3 sub matrix - SubMatrix y = x( Range(0,2), Range(0,2) ) ; - \item Reference Classes no longer require a default constructor for - subclasses of C++ classes - \item Consistently revert to using backticks rather than shell expansion - to compute library file location when building packages against Rcpp - on the default platforms; this has been applied to internal test - packages as well as CRAN/BioC packages using Rcpp - } -} -\section{Changes in Rcpp version 0.8.8 (2010-11-01)}{ - \itemize{ - \item New syntactic shortcut to extract rows and columns of a Matrix. - x(i,_) extracts the i-th row and x(_,i) extracts the i-th column. - \item Matrix indexing is more efficient. However, faster indexing is - disabled if g++ 4.5.0 or later is used. - \item A few new Rcpp operators such as cumsum, operator=(sugar) - \item Variety of bug fixes: - - column indexing was incorrect in some cases - - compilation using clang/llvm (thanks to Karl Millar for the patch) - - instantation order of Module corrected - - POSIXct, POSIXt now correctly ordered for R 2.12.0 - } -} -\section{Changes in Rcpp version 0.8.7 (2010-10-15)}{ - \itemize{ - \item As of this version, Rcpp depends on R 2.12 or greater as it interfaces - the new reference classes (see below) and also reflects the POSIXt - class reordering both of which appeared with R version 2.12.0 - \item new Rcpp::Reference class, that allows internal manipulation of R - 2.12.0 reference classes. The class exposes a constructor that takes - the name of the target reference class and a field(string) method - that implements the proxy pattern to get/set reference fields using - callbacks to the R operators "$" and "$<-" in order to preserve the - R-level encapsulation - \item the R side of the preceding item allows methods to be written in R as - per ?ReferenceClasses, accessing fields by name and assigning them - using "<<-". Classes extracted from modules are R reference classes. - They can be subclassed in R, and/or R methods can be defined using - the $methods(...) mechanism. - \item internal performance improvements for Rcpp sugar as well as an added - 'noNA()' wrapper to omit tests for NA values -- see the included - examples in inst/examples/convolveBenchmarks for the speedups - \item more internal performance gains with Functions and Environments - } -} -\section{Changes in Rcpp version 0.8.6 (2010-09-09)}{ - \itemize{ - \item new macro RCPP_VERSION and Rcpp_Version to allow conditional compiling - based on the version of Rcpp - #if defined(RCPP_VERSION) && RCPP_VERSION >= Rcpp_Version(0,8,6) - #endif - \item new sugar functions for statistical distributions (d-p-q-r functions) - with distributions : unif, norm, gamma, chisq, lnorm, weibull, logis, - f, pois, binom, t, beta. - \item new ctor for Vector taking size and function pointer so that for example - NumericVector( 10, norm_rand ) - generates a N(0,1) vector of size 10 - \item added binary operators for complex numbers, as well as sugar support - \item more sugar math functions: sqrt, log, log10, exp, sin, cos, ... - \item started new vignette Rcpp-quickref : quick reference guide of Rcpp API - (still work in progress) - \item various patches to comply with solaris/suncc stricter standards - \item minor enhancements to ConvolutionBenchmark example - \item simplified src/Makefile to no longer require GNU make; packages using - Rcpp still do for the compile-time test of library locations - } -} -\section{Changes in Rcpp version 0.8.5 (2010-07-25)}{ - \itemize{ - \item speed improvements. Vector::names, RObject::slot have been improved - to take advantage of R API functions instead of callbacks to R - \item Some small updates to the Rd-based documentation which now points to - content in the vignettes. Also a small formatting change to suppress - a warning from the development version of R. - \item Minor changes to Date() code which may reenable SunStudio builds - } -} -\section{Changes in Rcpp version 0.8.4 (2010-07-09)}{ - \itemize{ - \item new sugar vector functions: rep, rep_len, rep_each, rev, head, tail, - diag - \item sugar has been extended to matrices: The Matrix class now extends the - Matrix_Base template that implements CRTP. Currently sugar functions - for matrices are: outer, col, row, lower_tri, upper_tri, diag - \item The unit tests have been reorganised into fewer files with one call - each to cxxfunction() (covering multiple tests) resulting in a - significant speedup - \item The Date class now uses the same mktime() replacement that R uses - (based on original code from the timezone library by Arthur Olson) - permitting wide date ranges on all operating systems - \item The FastLM example has been updated, a new benchmark based on the - historical Longley data set has been added - \item RcppStringVector now uses std::vector internally - \item setting the .Data slot of S4 objects did not work properly - } -} -\section{Changes in Rcpp version 0.8.3 (2010-06-27)}{ - \itemize{ - \item This release adds Rcpp sugar which brings (a subset of) the R syntax - into C++. This supports : - - binary operators : <,>,<=,>=,==,!= between R vectors - - arithmetic operators: +,-,*,/ between compatible R vectors - - several functions that are similar to the R function of the same name: - abs, all, any, ceiling, diff, exp, ifelse, is_na, lapply, pmin, pmax, - pow, sapply, seq_along, seq_len, sign - Simple examples : - // two numeric vector of the same size - NumericVector x ; - NumericVector y ; - NumericVector res = ifelse( x < y, x*x, -(y*y) ) ; - // sapply'ing a C++ function - double square( double x )\{ return x*x ; \} - NumericVector res = sapply( x, square ) ; - Rcpp sugar uses the technique of expression templates, pioneered by the - Blitz++ library and used in many libraries (Boost::uBlas, Armadillo). - Expression templates allow lazy evaluation of expressions, which - coupled with inlining generates very efficient code, very closely - approaching the performance of hand written loop code, and often - much more efficient than the equivalent (vectorized) R code. - Rcpp sugar is curently limited to vectors, future releases will - include support for matrices with sugar functions such as outer, etc ... - Rcpp sugar is documented in the Rcpp-sugar vignette, which contains - implementation details. - \item New helper function so that "Rcpp?something" brings up Rcpp help - \item Rcpp Modules can now expose public data members - \item New classes Date, Datetime, DateVector and DatetimeVector with proper - 'new' API integration such as as(), wrap(), iterators, ... - \item The so-called classic API headers have been moved to a subdirectory - classic/ This should not affect client-code as only Rcpp.h was ever - included. - \item RcppDate now has a constructor from SEXP as well - \item RcppDateVector and RcppDatetimeVector get constructors from int - and both const / non-const operator(int i) functions - \item New API class Rcpp::InternalFunction that can expose C++ functions - to R without modules. The function is exposed as an S4 object of - class C++Function - } -} -\section{Changes in Rcpp version 0.8.2 (2010-06-09)}{ - \itemize{ - \item Bug-fix release for suncc compiler with thanks to Brian Ripley for - additional testing. - } -} -\section{Changes in Rcpp version 0.8.1 (2010-06-08)}{ - \itemize{ - \item This release adds Rcpp modules. An Rcpp module is a collection of - internal (C++) functions and classes that are exposed to R. This - functionality has been inspired by Boost.Python. - Modules are created internally using the RCPP_MODULE macro and - retrieved in the R side with the Module function. This is a preview - release of the module functionality, which will keep improving until - the Rcpp 0.9.0 release. - The new vignette "Rcpp-modules" documents the current feature set of - Rcpp modules. - \item The new vignette "Rcpp-package" details the steps involved in making a - package that uses Rcpp. - \item The new vignette "Rcpp-FAQ" collects a number of frequently asked - questions and answers about Rcpp. - \item The new vignette "Rcpp-extending" documents how to extend Rcpp - with user defined types or types from third party libraries. Based on - our experience with RcppArmadillo - \item Rcpp.package.skeleton has been improved to generate a package using - an Rcpp module, controlled by the "module" argument - \item Evaluating a call inside an environment did not work properly - \item cppfunction has been withdrawn since the introduction of the more - flexible cxxfunction in the inline package (0.3.5). Rcpp no longer - depends on inline since many uses of Rcpp do not require inline at - all. We still use inline for unit tests but this is now handled - locally in the unit tests loader runTests.R. - Users of the now-withdrawn function cppfunction can redefine it as: - cppfunction <- function(...) cxxfunction( ..., plugin = "Rcpp" ) - \item Support for std::complex was incomplete and has been enhanced. - \item The methods XPtr::getTag and XPtr::getProtected are deprecated, - and will be removed in Rcpp 0.8.2. The methods tag() and prot() should - be used instead. tag() and prot() support both LHS and RHS use. - \item END_RCPP now returns the R Nil values; new macro VOID_END_RCPP - replicates prior behabiour - } -} -\section{Changes in Rcpp version 0.8.0 (2010-05-17)}{ - \itemize{ - \item All Rcpp headers have been moved to the inst/include directory, - allowing use of 'LinkingTo: Rcpp'. But the Makevars and Makevars.win - are still needed to link against the user library. - \item Automatic exception forwarding has been withdrawn because of - portability issues (as it did not work on the Windows platform). - Exception forwarding is still possible but is now based on explicit - code of the form: - try \{ - // user code - \} catch( std::exception& __ex__)\{ - forward_exception_to_r( __ex___ ) ; - Alternatively, the macro BEGIN_RCPP and END_RCPP can use used to enclose - code so that it captures exceptions and forward them to R. - BEGIN_RCPP - // user code - END_RCPP - \item new __experimental__ macros - The macros RCPP_FUNCTION_0, ..., RCPP_FUNCTION_65 to help creating C++ - functions hiding some code repetition: - RCPP_FUNCTION_2( int, foobar, int x, int y)\{ - return x + y ; - The first argument is the output type, the second argument is the - name of the function, and the other arguments are arguments of the - C++ function. Behind the scenes, the RCPP_FUNCTION_2 macro creates an - intermediate function compatible with the .Call interface and handles - exceptions - Similarly, the macros RCPP_FUNCTION_VOID_0, ..., RCPP_FUNCTION_VOID_65 - can be used when the C++ function to create returns void. The generated - R function will return R_NilValue in this case. - RCPP_FUNCTION_VOID_2( foobar, std::string foo )\{ - // do something with foo - The macro RCPP_XP_FIELD_GET generates a .Call compatible function that - can be used to access the value of a field of a class handled by an - external pointer. For example with a class like this: - class Foo\{ - public: - int bar ; - RCPP_XP_FIELD_GET( Foo_bar_get, Foo, bar ) ; - RCPP_XP_FIELD_GET will generate the .Call compatible function called - Foo_bar_get that can be used to retrieved the value of bar. - The macro RCPP_FIELD_SET generates a .Call compatible function that - can be used to set the value of a field. For example: - RCPP_XP_FIELD_SET( Foo_bar_set, Foo, bar ) ; - generates the .Call compatible function called "Foo_bar_set" that - can be used to set the value of bar - The macro RCPP_XP_FIELD generates both getter and setter. For example - RCPP_XP_FIELD( Foo_bar, Foo, bar ) - generates the .Call compatible Foo_bar_get and Foo_bar_set using the - macros RCPP_XP_FIELD_GET and RCPP_XP_FIELD_SET previously described - The macros RCPP_XP_METHOD_0, ..., RCPP_XP_METHOD_65 faciliate - calling a method of an object that is stored in an external pointer. For - example: - RCPP_XP_METHOD_0( foobar, std::vector , size ) - creates the .Call compatible function called foobar that calls the - size method of the std::vector class. This uses the Rcpp::XPtr< - std::vector > class. - The macros RCPP_XP_METHOD_CAST_0, ... is similar but the result of - the method called is first passed to another function before being - wrapped to a SEXP. For example, if one wanted the result as a double - RCPP_XP_METHOD_CAST_0( foobar, std::vector , size, double ) - The macros RCPP_XP_METHOD_VOID_0, ... are used when calling the - method is only used for its side effect. - RCPP_XP_METHOD_VOID_1( foobar, std::vector, push_back ) - Assuming xp is an external pointer to a std::vector, this could - be called like this : - .Call( "foobar", xp, 2L ) - \item Rcpp now depends on inline (>= 0.3.4) - \item A new R function "cppfunction" was added which invokes cfunction from - inline with focus on Rcpp usage (enforcing .Call, adding the Rcpp - namespace, set up exception forwarding). cppfunction uses BEGIN_RCPP - and END_RCPP macros to enclose the user code - \item new class Rcpp::Formula to help building formulae in C++ - \item new class Rcpp::DataFrame to help building data frames in C++ - \item Rcpp.package.skeleton gains an argument "example_code" and can now be - used with an empty list, so that only the skeleton is generated. It - has also been reworked to show how to use LinkingTo: Rcpp - \item wrap now supports containers of the following types: long, long double, - unsigned long, short and unsigned short which are silently converted - to the most acceptable R type. - \item Revert to not double-quote protecting the path on Windows as this - breaks backticks expansion used n Makevars.win etc - \item Exceptions classes have been moved out of Rcpp classes, - e.g. Rcpp::RObject::not_a_matrix is now Rcpp::not_a_matrix - } -} -\section{Changes in Rcpp version 0.7.12 (2010-04-16)}{ - \itemize{ - \item Undo shQuote() to protect Windows path names (which may contain - spaces) as backticks use is still broken; use of $(shell ...) works - } -} -\section{Changes in Rcpp version 0.7.11 (2010-03-26)}{ - \itemize{ - \item Vector<> gains a set of templated factory methods "create" which - takes up to 20 arguments and can create named or unnamed vectors. - This greatly facilitates creating objects that are returned to R. - \item Matrix now has a diag() method to create diagonal matrices, and - a new constructor using a single int to create square matrices - \item Vector now has a new fill() method to propagate a single value - \item Named is no more a class but a templated function. Both interfaces - Named(.,.) and Named(.)=. are preserved, and extended to work also on - simple vectors (through Vector<>::create) - \item Applied patch by Alistair Gee to make ColDatum more robust - \item Fixed a bug in Vector that caused random behavior due to the lack of - copy constructor in the Vector template - } -} -\section{Changes in Rcpp version 0.7.10 (2010-03-15)}{ - \itemize{ - \item new class Rcpp::S4 whose constructor checks if the object is an S4 - object - \item maximum number of templated arguments to the pairlist function, the - DottedPair constructor, the Language constructor and the Pairlist - constructor has been updated to 20 (was 5) and a script has been - added to the source tree should we want to change it again - \item use shQuote() to protect Windows path names (which may contain spaces) - } -} -\section{Changes in Rcpp version 0.7.9 (2010-03-12)}{ - \itemize{ - \item Another small improvement to Windows build flags - \item bugfix on 64 bit platforms. The traits classes (wrap_type_traits, etc) - used size_t when they needed to actually use unsigned int - \item fixed pre gcc 4.3 compatibility. The trait class that was used to - identify if a type is convertible to another had too many false - positives on pre gcc 4.3 (no tr1 or c++0x features). fixed by - implementing the section 2.7 of "Modern C++ Design" book. - } -} -\section{Changes in Rcpp version 0.7.8 (2010-03-09)}{ - \itemize{ - \item All vector classes are now generated from the same template class - Rcpp::Vector where RTYPE is one of LGLSXP, RAWSXP, STRSXP, - INTSXP, REALSXP, CPLXSXP, VECSXP and EXPRSXP. typedef are still - available : IntegerVector, ... All vector classes gain methods - inspired from the std::vector template : push_back, push_front, - erase, insert - \item New template class Rcpp::Matrix deriving from - Rcpp::Vector. These classes have the same functionality - as Vector but have a different set of constructors which checks - that the input SEXP is a matrix. Matrix<> however does/can not - guarantee that the object will allways be a matrix. typedef - are defined for convenience: Matrix is IntegerMatrix, etc... - \item New class Rcpp::Row that represents a row of a matrix - of the same type. Row contains a reference to the underlying - Vector and exposes a nested iterator type that allows use of - STL algorithms on each element of a matrix row. The Vector class - gains a row(int) method that returns a Row instance. Usage - examples are available in the runit.Row.R unit test file - \item New class Rcpp::Column that represents a column of a - matrix. (similar to Rcpp::Row). Usage examples are - available in the runit.Column.R unit test file - \item The Rcpp::as template function has been reworked to be more - generic. It now handles more STL containers, such as deque and - list, and the genericity can be used to implement as for more - types. The package RcppArmadillo has examples of this - \item new template class Rcpp::fixed_call that can be used in STL algorithms - such as std::generate. - \item RcppExample et al have been moved to a new package RcppExamples; - src/Makevars and src/Makevars.win simplified accordingly - \item New class Rcpp::StringTransformer and helper function - Rcpp::make_string_transformer that can be used to create a function - that transforms a string character by character. For example - Rcpp::make_string_transformer(tolower) transforms each character - using tolower. The RcppExamples package has an example of this. - \item Improved src/Makevars.win thanks to Brian Ripley - \item New examples for 'fast lm' using compiled code: - - using GNU GSL and a C interface - - using Armadillo (http://arma.sf.net) and a C++ interface - Armadillo is seen as faster for lack of extra copying - \item A new package RcppArmadillo (to be released shortly) now serves - as a concrete example on how to extend Rcpp to work with a modern - C++ library such as the heavily-templated Armadillo library - \item Added a new vignette 'Rcpp-introduction' based on a just-submitted - overview article on Rcpp - } -} -\section{Changes in Rcpp version 0.7.7 (2010-02-14)}{ - \itemize{ - \item new template classes Rcpp::unary_call and Rcpp::binary_call - that facilitates using R language calls together - with STL algorithms. - \item fixed a bug in Language constructors taking a string as their - first argument. The created call was wrong. - } -} -\section{Changes in Rcpp version 0.7.6 (2010-02-12)}{ - \itemize{ - \item SEXP_Vector (and ExpressionVector and GenericVector, a.k.a List) now - have methods push_front, push_back and insert that are templated - \item SEXP_Vector now has int- and range-valued erase() members - \item Environment class has a default constructor (for RInside) - \item SEXP_Vector_Base factored out of SEXP_Vector (Effect. C++ #44) - \item SEXP_Vector_Base::iterator added as well as begin() and end() - so that STL algorithms can be applied to Rcpp objects - \item CharacterVector gains a random access iterator, begin() and end() to - support STL algorithms; iterator dereferences to a StringProxy - \item Restore Windows build; successfully tested on 32 and 64 bit; - \item Small fixes to inst/skeleton files for bootstrapping a package - \item RObject::asFoo deprecated in favour of Rcpp::as - } -} -\section{Changes in Rcpp version 0.7.5 (2010-02-08)}{ - \itemize{ - \item wrap has been much improved. wrappable types now are : - - primitive types : int, double, Rbyte, Rcomplex, float, bool - - std::string - - STL containers which have iterators over wrappable types: - (e.g. std::vector, std::deque, std::list, etc ...). - - STL maps keyed by std::string, e.g std::map - - classes that have implicit conversion to SEXP - - classes for which the wrap template if fully or partly specialized - This allows composition, so for example this class is wrappable: - std::vector< std::map > (if T is wrappable) - \item The range based version of wrap is now exposed at the Rcpp:: - level with the following interface : - Rcpp::wrap( InputIterator first, InputIterator last ) - This is dispatched internally to the most appropriate implementation - using traits - \item a new namespace Rcpp::traits has been added to host the various - type traits used by wrap - \item The doxygen documentation now shows the examples - \item A new file inst/THANKS acknowledges the kind help we got from others - \item The RcppSexp has been removed from the library. - \item The methods RObject::asFoo are deprecated and will be removed - in the next version. The alternative is to use as. - \item The method RObject::slot can now be used to get or set the - associated slot. This is one more example of the proxy pattern - \item Rcpp::VectorBase gains a names() method that allows getting/setting - the names of a vector. This is yet another example of the - proxy pattern. - \item Rcpp::DottedPair gains templated operator<< and operator>> that - allow wrap and push_back or wrap and push_front of an object - \item Rcpp::DottedPair, Rcpp::Language, Rcpp::Pairlist are less - dependent on C++0x features. They gain constructors with up - to 5 templated arguments. 5 was choosed arbitrarily and might - be updated upon request. - \item function calls by the Rcpp::Function class is less dependent - on C++0x. It is now possible to call a function with up to - 5 templated arguments (candidate for implicit wrap) - \item added support for 64-bit Windows (thanks to Brian Ripley and Uwe Ligges) - } -} -\section{Changes in Rcpp version 0.7.4 (2010-01-30)}{ - \itemize{ - \item matrix-like indexing using operator() for all vector - types : IntegerVector, NumericVector, RawVector, CharacterVector - LogicalVector, GenericVector and ExpressionVector. - \item new class Rcpp::Dimension to support creation of vectors with - dimensions. All vector classes gain a constructor taking a - Dimension reference. - \item an intermediate template class "SimpleVector" has been added. All - simple vector classes are now generated from the SimpleVector - template : IntegerVector, NumericVector, RawVector, CharacterVector - LogicalVector. - \item an intermediate template class "SEXP_Vector" has been added to - generate GenericVector and ExpressionVector. - \item the clone template function was introduced to explicitely - clone an RObject by duplicating the SEXP it encapsulates. - \item even smarter wrap programming using traits and template - meta-programming using a private header to be include only - RcppCommon.h - \item the as template is now smarter. The template now attempts to - build an object of the requested template parameter T by using the - constructor for the type taking a SEXP. This allows third party code - to create a class Foo with a constructor Foo(SEXP) to have - as for free. - \item wrap becomes a template. For an object of type T, wrap uses - implicit conversion to SEXP to first convert the object to a SEXP - and then uses the wrap(SEXP) function. This allows third party - code creating a class Bar with an operator SEXP() to have - wrap for free. - \item all specializations of wrap : wrap, wrap< vector > - use coercion to deal with missing values (NA) appropriately. - \item configure has been withdrawn. C++0x features can now be activated - by setting the RCPP_CXX0X environment variable to "yes". - \item new template r_cast to facilitate conversion of one SEXP - type to another. This is mostly intended for internal use and - is used on all vector classes - \item Environment now takes advantage of the augmented smartness - of as and wrap templates. If as makes sense, one can - directly extract a Foo from the environment. If wrap makes - sense then one can insert a Bar directly into the environment. - Foo foo = env["x"] ; /* as is used */ - Bar bar ; - env["y"] = bar ; /* wrap is used */ - \item Environment::assign becomes a template and also uses wrap to - create a suitable SEXP - \item Many more unit tests for the new features; also added unit tests - for older API - } -} -\section{Changes in Rcpp version 0.7.3 (2010-01-21)}{ - \itemize{ - \item New R function Rcpp.package.skeleton, modelled after - utils::package.skeleton to help creating a package with support - for Rcpp use. - \item indexing is now faster for simple vectors due to inlining of - the operator[] and caching the array pointer - \item The class Rcpp::VectorBase was introduced. All vector classes - derive from it. The class handles behaviour that is common - to all vector types: length, names, etc ... - \item exception forwarding is extended to compilers other than GCC - but default values are used for the exception class - and the exception message, because we don't know how to do it. - \item Improved detection of C++0x capabilities - \item Rcpp::Pairlist gains a default constructor - \item Rcpp::Environment gains a new_child method to create a new - environment whose parent is this - \item Rcpp::Environment::Binding gains a templated implicit - conversion operator - \item Rcpp::ExpressionVector gains an eval method to evaluate itself - \item Rcpp::ExpressionVector gains a constructor taking a std::string - representing some R code to parse. - \item Rcpp::GenericVector::Proxy gains an assignment operator to deal - with Environment::Proxy objects - \item Rcpp::LdFlags() now defaults to static linking OS X, as it already - did on Windows; this default can be overridden. - } -} -\section{Changes in Rcpp version 0.7.2 (2010-01-12)}{ - \itemize{ - \item a new benchmark was added to the examples directory - around the classic convolution example from - Writing R extensions to compare C and C++ implementations - \item Rcpp::CharacterVector::StringProxy gains a += operator - \item Rcpp::Environment gains an operator[](string) to get/set - objects from the environment. operator[] returns an object - of class Rcpp::Environment::Binding which implements the proxy - pattern. Inspired from Item 30 of 'More Effective C++' - \item Rcpp::Pairlist and Rcpp::Language gain an operator[](int) - also using the proxy pattern - \item Rcpp::RObject.attr can now be used on the rhs or the lhs, to get - or set an attribute. This also uses the proxy pattern - \item Rcpp::Pairlist and Rcpp::Language gain new methods push_back - replace, length, size, remove, insert - \item wrap now returns an object of a suitable class, not just RObject - anymore. For example wrap( bool ) returns a LogicalVector - \item Rcpp::RObject gains methods to deal with S4 objects : isS4, - slot and hasSlot - \item new class Rcpp::ComplexVector to manage complex vectors (CPLXSXP) - \item new class Rcpp::Promise to manage promises (PROMSXP) - \item new class Rcpp::ExpressionVector to manage expression vectors - (EXPRSXP) - \item new class Rcpp::GenericVector to manage generic vectors, a.k.a - lists (VECSXP) - \item new class Rcpp::IntegerVector to manage integer vectors (INTSXP) - \item new class Rcpp::NumericVector to manage numeric vectors (REALSXP) - \item new class Rcpp::RawVector to manage raw vectors (RAWSXP) - \item new class Rcpp::CharacterVector to manage character vectors (STRSXP) - \item new class Rcpp::Function to manage functions - (CLOSXP, SPECIALSXP, BUILTINSXP) - \item new class Rcpp::Pairlist to manage pair lists (LISTSXP) - \item new class Rcpp::Language to manage calls (LANGSXP) - \item new specializations of wrap to deal with std::initializer lists - only available with GCC >= 4.4 - \item new R function Rcpp:::capabilities that can query if various - features are available : exception handling, variadic templates - initializer lists - \item new set of functions wrap(T) converting from T to RObject - \item new template function as that can be used to convert a SEXP - to type T. Many specializations implemented to deal with - C++ builtin and stl types. Factored out of RObject - \item new class Rcpp::Named to deal with named with named objects - in a pairlist, or a call - \item new class Rcpp::Symbol to manage symbols (SYMSXP) - \item The garbage collection has been improved and is now automatic - and hidden. The user needs not to worry about it at all. - \item Rcpp::Environment(SEXP) uses the as.environment R function - \item Doxygen-generated documentation is no longer included as it is both - too large and too volatile. Zipfiles are provided on the website. - } -} -\section{Changes in Rcpp version 0.7.1 (2010-01-02)}{ - \itemize{ - \item Romain is now a co-author of Rcpp - \item New base class Rcpp::RObject replace RcppSexp (which is provided for - backwards compatibility) - \item RObject has simple wrappers for object creation and conversion to SEXP - \item New classes Rcpp::Evaluator and Rcpp::Environment for expression - evaluation and environment access, respectively - \item New class Rcpp::XPtr for external pointers - \item Enhanced exception handling allows for trapping of exceptions outside - of try/catch blocks - \item Namespace support with a new namespace 'Rcpp' - \item Unit tests for most of the new classes, based on the RUnit package - \item Inline support now provided by the update inline package, so a new - Depends on 'inline (>= 0.3.4)' replaces the code in that was - temporarily in Rcpp - } -} -\section{Changes in Rcpp version 0.7.0 (2009-12-19)}{ - \itemize{ - \item Inline support via a modified version of 'cfunction' from Oleg - Sklyar's 'inline' package: simple C++ programs can now be compiled, - linked and loaded automagically from the R prompt, including support - for external packages. Also works on Windows (with R-tools installed) - \item New examples for the inline support based on 'Intro to HPC' tutorials - \item New type RcppSexp for simple int, double, std::string scalars and vectors - \item Every class is now in its own header and source file - \item Fix to RcppParams.Rd thanks to Frank S. Thomas - \item RcppVersion.R removed as redundant given DESCRIPTION and read.dcf() - \item Switched to R_PreserveObject and R_ReleaseObject for RcppSexp with - thanks to Romain - \item Licensing changed from LGPL 2.1 (or later) to GPL 2 (or later), file - COPYING updated - } -} -\section{Changes in Rcpp version 0.6.8 (2009-11-19)}{ - \itemize{ - \item Several classes now split off into their own header and source files - \item New header file RcppCommon.h regrouping common defines and includes - \item Makevars\{,.win\} updated to reflect src/ reorg - } -} -\section{Changes in Rcpp version 0.6.7 (2009-11-08)}{ - \itemize{ - \item New class RcppList for simple lists and data structures of different - types and dimensions, useful for RProtoBuf project on R-Forge - \item Started to split classes into their own header and source files - \item Added short README file about history and status - \item Small documentation markup fix thanks to Kurt; updated doxygen docs - \item New examples directory functionCallback/ for R function passed to C++ - and being called - } -} -\section{Changes in Rcpp version 0.6.6 (2009-08-03)}{ - \itemize{ - \item Updated Doxygen documentation - \item RcppParams class gains a new exists() member function - } -} -\section{Changes in Rcpp version 0.6.5 (2009-04-01)}{ - \itemize{ - \item Small OS X build correction using R_ARCH variable - \item Include LGPL license as file COPYING - } -} -\section{Changes in Rcpp version 0.6.4 (2009-03-01)}{ - \itemize{ - \item Use std:: namespace throughout instead of 'using namespace std' - \item Define R_NO_REMAP so that R provides Rf_length() etc in lieu of length() - to minimise clashes with other projects having similar functions - \item Include Doxygen documentation, and Doxygen configuration file - \item Minor Windows build fix (with thanks to Uwe and Simon) - } -} -\section{Changes in Rcpp version 0.6.3 (2009-01-09)}{ - \itemize{ - \item OS X build fix with thanks to Simon - \item Added 'view-only' classes for int and double vector and matrix clases - as well as string vector classses, kindly suggsted / provided by - David Reiss - \item Add two shorter helper functions Rcpp:::CxxFlags() and - Rcpp:::LdFlags() for compilation and linker flags - } -} -\section{Changes in Rcpp version 0.6.2 (2008-12-02)}{ - \itemize{ - \item Small but important fix for Linux builds in Rcpp:::RcppLdFlags() - } -} -\section{Changes in Rcpp version 0.6.1 (2008-11-30)}{ - \itemize{ - \item Now src/Makevars replaces src/Makefile, this brings proper OS X - multi-arch support with thanks to Simon - \item Old #ifdef statements related to QuantLib removed; Rcpp is now - decoupled from QuantLib headers yet be used by RQuantLib - \item Added RcppLdPath() to return the lib. directory patch and on Linux - the rpath settings - \item Added new RcppVectorExample() - \item Augmented documentation on usage in Rcpp-package.Rd - } -} -\section{Changes in Rcpp version 0.6.0 (2008-11-05)}{ - \itemize{ - \item New maintainer, taking over RcppTemplate (which has been without an - update since Nov 2006) under its initial name Rcpp - \item New files src/Makefile\{,.win\} including functionality from both - configure and RcppSrc/Makefile; we now build two libraries, one for - use by the package which also runs the example, and one for users to - link against, and removed src/Makevars.in - \item Files src/Rcpp.\{cpp,h\} moved in from ../RcppSrc - \item Added new class RcppDatetime corresponding to POSIXct in with full - support for microsecond time resolution between R and C++ - \item Several new manual pages added - \item Removed configure\{,.in,.win\} as src/Makefile* can handle this more - easily - \item Minor cleanup and reformatting for DESCRIPTION, Date: now uses - svn:keyword Date property - \item Renamed RcppTemplateVersion to RcppVersion, deleted RcppDemo - \item Directory demo/ removed as vignette("RcppAPI") is easier and more - reliable to show vignette documentation - \item RcppTemplateDemo() removed from R/zzz.R, vignette("RcppAPI") is easier; - man/RcppTemplateDemo.Rd removed as well - \item Some more code reindentation and formatting to R default arguments, - some renamed from RcppTemplate* to Rcpp* - \item Added footnote onto titlepage of inst/doc/RcppAPI.\{Rnw,pdf\} about how - this document has not (yet) been updated along with the channges made - } -} diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp deleted file mode 100644 index 3b65e3c..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp +++ /dev/null @@ -1,27 +0,0 @@ -# File share/R/nspackloader.R -# Part of the R package, http://www.R-project.org -# -# Copyright (C) 1995-2012 The R Core Team -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# A copy of the GNU General Public License is available at -# http://www.r-project.org/Licenses/ - -local({ - info <- loadingNamespaceInfo() - pkg <- info$pkgname - ns <- .getNamespace(as.name(pkg)) - if (is.null(ns)) - stop("cannot find namespace environment for ", pkg, domain = NA); - dbbase <- file.path(info$libname, pkg, "R", pkg) - lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.") -}) diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp.rdb b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/R/Rcpp.rdb deleted file mode 100644 index 1a6eca614edcd9e879e938d3fad38e012b45d16e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188603 zcmeF2QjX-lROC! z5Kx6jPV~N!fq{XMftjI+fe{3=mf)}g1k`_P!+kJl2r`U6f*aQmUSZ;bV1G~TN3}PUuuTcX24}ff`XP$&hCact3@S~R~rcRk3~`r zHm0aK3Tct$S+2}JeqK8Jz6WrB`$Ql$CLU>zyG?G59Zpr%A~b#so^KxR3e#gpSjQi+ zg2d69muuy6Xz0TgU?}F821$*zR#!H7)hgbyFblJ;1R z2MrDY8HAp8kbf_MGb%$m`HEex&;F?lU;C*LU{9ig4fts`?dK|%rIR`>bHXY#X3}Mn z8Q`z$)>ZdD7HZIBGT0BrNiR<)&&m*Eu{?iyUOzS-*tSO!6 z`l=a9R68&-G0}Cw0rmDfIrNQ0I`MtpxEj>9w(u;Q=biYeC}phN%70+AbxZG>>J09G z5w9N^Z^T2%jzaJ!tJK?z&fkJqZ;eTsNXhM8#QB>r;tU!b!Ag$X3NHax*14Q}wDQy{ zn$bJmF+*iN*w?c|W+{^9SjZPmjp{~ag`vQzL*3?vK!n8JKyw2Wa-D_b&e6bWo_ARDsS zE-jkv!WYXq_4=Igq`zM_xJ%4nP={jfsVKl^Xsp*~WSKs!xa zJo&b)X=a~%GnV#fG6@*@1htvW9=9VskVKC7tl$~9eP754;D&^YGkSvT+xBpk49BFG z26^@|g4$GFRA%}ULAv^%;!iOcTRv6$lhsH415yiMP}Ybsy_lxLT-UBX-1ZKn1c5>e8EsMZ!Ee}+teq{!bk2HLf2N4TpQ$}2$*ro{eZciJV5zYVw_tja9F5*V}ftvvHE3z*F!(tb-U zs*nS@T<_MYOaR6wKg5_>q;!v&BALojDd*I_LSh>Lj;>C%8$$yWYUauT_pgJK3$g=d zil21rsvD*&70U6 zzf>k#&J+uE%RnBHKWt8pN_H4)OIHAfG=g19Ie?No6+7!;&$7*B99S0K*H3Dn8Z?D% z1I6(mf|6k#t7Ps)Nq#3fnU{YlpoXRRw1QymJNrivz@-GIzx63XMo%>{o8AaFFZY-Y zrh}_tl|@7mwN6EQoIi;=BpV858i2Pt(IOqL<+RUpPUBoRUlu;)84=?NY>K!%U@BFg zWfR5!7$7}()nhy+k=^|Apv*HW=YUc+FW)WY#_{8uqHy#pLvO;(46l}!%OqbeB7Da0 zjdlB({?MRayNf4@F?6sGiHO5vF4N_<(fk4N_zo2X1O#;V{~DVV4#uDf9&%(6dJ7pz zNm(i3i$)y~AT<$PRX}V7QjaI;rDy{ooBza%<&kg+v=LIYkfITfJrNi&M)g#iMsk%9 zg8wxTf`ZuiK?K_W!K4KO0wMLtu}xfn86?CE{pGS=R=a}s3KVzU(OnaAS=p(d3EO9< z!cbDcA4tmM4=twGd$^03s zv|ETX1wi&pZmF6cyevuE-a2;Pup0H&*EU!zHRp&k*5G}w6V;;)_*8zYU9TuSy&bOW{uhQ(a0|v zkbJ5r!l{|u3NLw{h{0teysY^h{Pcg2OO>{k&h6ZhM1~v`EX|(D|5`9B%};S!Yp#?+ zS6g1W*k`6n8~vv!gGWxR5)aBCA<_=eL-ORpq_+n!jtmYCos{4XawN&RhYezaBubLd z;yB#(@6Fap1~3rtBnn}(lE$r64{5?Y8xV=SLclW)!bdF*cpuR9Sl z3_PplHv-df?bMx+(+J@1=`tOrIwl7=E z&xZcNPh-$eV@&ohdvAz)Y|xmTM65(Ctam*#^$KaDEfqn=%*=XH8UmA4WxUEJ znj&uQgFWOk1r9w4JWMCTqE6L5=NsMnD?n;y7U1qzX}3YGWX;7`(1dTc7<9kf7fP#eg;Zg_v9;xPSb>HXdG0{`^AS!ziKCf9NTGE zw{^;mO}|d{E`{1P(XG6-*+OGyc}E{XZ%(BIB^k#K>=?)@??xwU{fC^_ApDXq4m2 zAO7kt0#pF~#$|b4zRp<7k9hL}Ue+D%Vb^7!bX9F65EbFedDu!l7q) zO@k&2n`v)wus>pdUxLtZG|V41vG+8CUe)sP{`IdQg-P);TbCN+azr}wAe>w*qsBVp zyv^eqPsB|0Gyf{z{M|XvbJf_59}&KP|oyhd8 z!FVjC_pG5O^!E8Orz_mCm0H8vUIQk7oh3~8U2CSlR$Qmn4%A(@#Y=3Ko)2Q1zf9=r z#oSd7_5MiCxr*Oj2LWfq3Hg+$irKm&wBBvC+Gt~tFU?z{N!qTkT6@H)EsbqzBSZT{ zdMB%u&Rh{aw~QsIO%K$bkL8Y5?XtE1mc_t)HYB=!ftBM4W8F=S%DL}?<3VldAr;=( z9&JO$%`4fXhkyH2r!!lNwJZXack3NGWa1BrYEgF_3Xa3H0+ z`d&OPEz~NDsxWmL; z4uyw=YU3b$04Z>RG4P-mZVi*V)wz{8?YLkzI%rfIH1;R!`y%{ZxrDcDI+x5c9t^8m zMvF#Q;S}(nkM;z1#7V@n{%!c=lTvFVBGYggL?qj_FsS0tpE@|mU&xX^G*!{oo9**` znZ--=aOQmA*ZS5`6#-ZgVmQFw!eD&eG-#Tj!nU&IylPKuWmMot%k$B9EMlhZ`037p zGOK4ylV{Gf-ha+GewNeiGQ-i>?dk*>#+E*7BjF>Wwt^i{p$=^gU9?JuxtE7++Rz%( zZHwP6)%x+Ic8FwsWC5}hPS(-l`Ob7)lQx z+&MNGUP3SMlHN}S?+|g`5L$dB#rIw6$Tn|VCB+?<12CGkd(o4H8`R<0SD&pK6eYNC z4KxNA3f&=Y{Dmj=;?6Y{L@N6<{r*;?mC3ll0ZUPW*KH;)BUdAR;^1l3Rjj&Pe?Ppz zyI+G+_ZkzZ%DLL~{bXNHjfrw$-w=)+-J5bR0Wfm4Qt1%Ix%>}AHSrQ-Ifb(__Pe`zo1QIsds z=aa)2^WjZGH{kIuOyW_o)m#r3y{3WE-tM6w-D9tAI~vXtODTs;rE<$*S2zZ4OJ2Jg^iD;ae2pF=)*Q`rD+9A1i_b@E!puVki(4fPDNn85nXQK+rqFQ`x+`NgUm zk1vJ%DCI{U)J&PnJvmjNdQ9s|Eq|CL8onzri;))ws&_YVMXL8&Qa$-Mx=PtX-K2qJ zg@Y`rr*7ghx=7^iz>Cnd2iL~22Wr5_sOK8vglpcUXLwe+jqa~Z zJnGI+%&h>SE_b{e)45cDAN+mOrGd02k)V6p@!299#QvEQ3W~i!eI{_v-eA8GBfSA6 zC`#|0=z1;)~nNKa|K3zx~R`Eo*1C{UJ z-wtHZyI~PfK*-(Ive4UP*ImlRC+xfO#cY!GEIgDhiead(pAXJXDsPHiSHt5nLig#<%79rS-0pr3sLf&2E*dR0?Vv5g}iDx|g0gwfb%IdoH@RV^r}@sq^@q zh@~nJJWGN9A}a^nomf_2`%nmbvLPJNZZ$YWQONr17{+eH;uZ)?+Jn@u+kmwu58XPD z9-6-#2WV+)OkV_(jlfgdV=g-XJ!_{FSete~#@OemF2J+?>4^5$bR*hZfZH@q(+&Ac zp$YLyD8Pg4&rk%~(yxLEj9)->DrEjpBDRL*Q&XvLm=&)=)*N4uEiBdC6A&1GJWQI+}_q>FB~ ztQm|H>%=+x*u{!tDt#U|hr{N^C7ItJJ&&mXW5l(=I0$O2*o)zZDz%yqd3Z@(+XNFI z-4b+b8Oh*7{3U(q*lFunTYV@)_eCTw+j6YYv&Ge&j^TlfS3Kq6FVCw$>!ht8wL7TX zf_Td%BlP}F~)HYI`%C1sW_sZ zf*k}o?=QJ({mZ2Ea;gxg!rv&Iuowzked*4uQtI$M7RuRIwHQ6m6|K(j=Gbyd9#t7J zh+aw1rTjAQ=2A|H*IepiukMJGPQkl{`F@Ro*NTLXDGb2Trf1e|gD%4Y-;Er~CCS)> zjv4_u8;DemR4ilZv=x}DL~L=&<>v{eg$S3?W6yk?4-2QCUfME`7}s1&QNAJ<%d`_& zNhj0TgT9z|o92vX=sAMdtHy;NC7!+pr(e}u5~Nkbv183ugv1Y>k+CMYw#H&B`(kww zLz`Az_dlPx783n`fR2KtiGnSl?JQ~>P*Au-(p3>SNntq@J^Ge3l*<-sDA1y0#WG-N zjx>~3mi0`azua<3cTy1E;0dZ;!u`DvLKHK1@C9Tb6!*QaqaN#8Dl{&aju9G_&!#kP zm!%s~u-r=dr;u{O*(mPCcFMctrXY7h=O9H*IKSa(w*z{OI^d;g_i#az{o{eir<*+G z{rCA#o`lN>L4WWyEz_f53V_Tr7O=;df#_rYK}sTmaq)60hwtM|HU*{{lF$s1qd~P2 z3d~akFrE`Fl4r;FDJu>9!4S1o37og-g2_RSctIH6su-AJ?%s)zuodJc@Mujh*$KCN zZEPkq36g_>`X@;FT$gwTIu0P}#ux96H^4$5{$68y{walll<*P(_rfU0fpUAo$T%fE z%p3LM4}Q;43q*k2Jk76g5a0~Ipx=KcK0>@@F#G^eBb5&j#ltQaATS5L(oiEkCCY<) zK=4iO5#6#4cf_sXM8I-mz#zE6*4^!QWoKYKGkGBTKD0i9mGqnJPlZ=^Qy_;2vG5JL6HqqY3s>CxI0<-f)iS6}vBAa&- zIHz-wA;~q4--i11FwP|yAM2S9`;K2_^7WBl*_Ob-qOe+`II=3w8yHq}$|09}FiE|j zp7{+`yrO|LIK+Ul_P?$TTht6ckcj?EY-JbAyjX9MF@SkLRa0urcKr6Dn;5X)szO5tBC`69J=5Z>+Lmq;CFZ(k@VFeuGqiW_Wgsv9BW$G7ctPU2F_>PzG z4&6|GP2@y6Ed9tvJS!>}9DzuJmyd96Hs4-LW;8+?6)AR}j**rg?ZBAGB@O1S9>&kUz9uV@#CV(;%bA;SXxNtTAbj;cj9QiziYC;MKts(HTK2< z=iL%`4`lt(>FXprVdL|n*!y~ zhEO~62b95d2cN!>Xm;D@Ne`|hkTgGW`chlt&4m~hK9qXBVz1kV%;LDdu}5u+U5?4; zFlFNUQw!;Fec8Buy4nZ;!-+zlaL(~cK>`Rqso`>|ODT6x1!6<4*p22fQZwbdS2%f! z+Owys1pLjlB1HCelwdj==voPh@47k({ga)&qR&+7)2XM1USXRWtMQ%%g*E9{@kw{^DU9>``zFGd;GZ9+qe!!C zxoQT*Y-D>HF#E5yz)I3Ky822d!U{g>?dhfQbQfZWHT%{A-Ln<9SJx%L6sv#uZR`_5%^}0KxX(_7!BwdJ zHR`cvG0rD&_r>M?6DRS8ZdzZyIBbaDgy%M~Pr>GTnKT}{<1n-+B!p)%b#3qPYP)r7 zeRgd#kzszT286?k;u~}la`v|~LHj=LE6Tm1e=dDe(0HRc% zpC3&ZY>{=e7oAUm>OP?hR|J@!(5(DDm1wy z4)hQ&u$&nvam*ehz~h|9V8JR>2O$9f_#j$>es+j-)P1@V_vMv=88E`8L7qvLd%|`M z&{yPLu>w{^OkNux{LDf+gud;+cJG+O9X3C!pTCqpcXi(u)7P6`YJs5S-8!M~b?SjL^9eB5tAYt4 zZr0mG&ft&0Px2Ll0Zrh)1Y=G>3OETAPV{^=gRPp4IoU}5Bs3HQ>S%c%<=xp0-CL^N zvtprpO{KJ}R$}kDNJX_YL*o`U!M8G0O?Nb`xpk48ha{c6f82;l>$=K^qE%dARq`d( zppJ5R9(x#P6B`%g{p^+JIS7kZuo1>-&J-{|MgK?+u2ZN7vX;W9p4f4~4kAbyV*w_v;+|{({q{?{`(@L@EpjW#X zT0(jCj|(Eb7;c1EMk4G_Eg}gBBRui`TcZqap)yqM9|c?A#%w-GSUwt& zV$Vr}%eU}{mLTgxb#EL^q!)G(-S^_U-gZL7yt2D*N~nSLIkX$~vcbq<{#+=%(RN$y z2z|xW;%+8CroBq~!54yFjQLqAc}+RsU$O8C4CV89_RWP0F22)g|4yf zbf^4kwK$VHs|!(f^3QA5MD3rw&BfXN3-jb-DbG`^zVY4B785~<>-@Stm;trh$@l4xQ$?@F+ z-%9I7GykF6nYcRWEC-i>Kt90rZiU^oRuM`U(t8p0%c~<=y07@>_NdXNU9nZE|J9`3 zSd}f=uk_Wef{$j8)GMnuxPtr~w6R^FZ_l@ED9!)KGMc)tL~i&`ahy?QuztmFdvZOM2jx@vz1BTfaEcWzy4H!D6K=4obyr6 z3%3m{03Fx~Q;_Gleo}d`Ah~sjfS=jz!aa_&S*b3xWjs#g%%=36$nBMQgQ^m@M#0y8 z^E0rRJ05tBG`Y)JvCW98@7xu%%+H5gdI+KB`_9OD0--~DP zGuLC(WmD>Vt4_(yJ&S}-e4|ru1S0l_vQ-VXc00J`=m&7$X~ycuz@4=9)_n2Qz!se2 zA~*J1l^)HG?3OM3BMLuCMwypZel0$S)0g_%k%SU=FI+~|uPl?k>GoPNgY{MKUkDkZ z-zfGCfqC!S2*FwC5SkkdPQ@6Nev$)HcUj3sSHks416qhtV?uKLYuJfpo?t*7jN>j;ve4BwV+hprr_04Phor>?x$pFN^@ z9xY!K1{2CYoU5Rt8$*v|YTSaRk6B&;btSBjXdXHI?X z#Q(*Uy_wn`Xd?=BQ z%Mjc$Ab;Idk~#LX8=3!Y7WPXcV zUbS-L!za(K=S@Im^+_2oVQO`0GD*#WjFCV@Jax>i<)c`$O-nLl0z<7=l=v9hG)i@r zR2&(tGIe-A`7iuG$D9O$BrfVMY4K`FrCQm)SM3;4@Dty16FrLj+g8o3Ax^}L+QK-< zkxt~z@U~ISm8h>~25SPL}*y8VQ-|jOVLbWVpY{rk?XG{#Uc;CApDSPi8EqPy=jTK;RmY7>ZB~-Kp>l z8)?oel=D`luxmSubU8})aq#>Hke%E`zSiYrt z#l7sLEF16rN(UX>soRqk_oJp^QwANJ#Vl(YcholwelSQg`6|uxIJ19&c7CfWG(Lq9 zDcGo!Nim7RSHsS7%e1UHl*mA#tvPpt-*(e@Lj2*6L)RyeJ`s@$Wb(8yBxwF5^evN> zf`A!-697j6gcyVT8n`D1B}MRFGM5B$AAh6`wS~0*>j*{zj)Zr(@~1`_QJB6!8rlH2bfp4%!zb%9jT$Ls;NuOF~#cl86YFI4;*LU{oEH z7B8Td9;&R7Hm58Rte8oV$%>J%dwibA>_t8_OW}cANUzqPs9oWu_XhWXqMn<(R(e`J?6z0Z*Mgn+a_4?Cd2 zdh`-|>;^rJsXBxNvN~LEOz#dg*=A5g4B4Q;*E7YP;0$$!oAWU3X{9mTH$hIdOM}y# z>nSm)XfildzXO+UjV%VgA;huHX?DgxU@c4=`pOaC8PI;oz{fJMvX*}b{OUvhAj13< z(jyq_cGrTC7?%f=#N>-mZ!+vIFOM({^Tc@+y$N8x1_5(mlKjG#3dF88!Ns5F82{!E zxErK=L0Jms1_0mto7_O(ctCshMV$O9P;cAQSM>{K!X;OH6YZcK|6)WRQQn$f+}E#}uS?EIAPL>B4% z{MS=(jaWZDk1)Rm`S63h+ZXS8uPFA(W1n4DasLGXUL6TX5Ex_Hk)ZBenx^sRHJ3N& z>i;bh!$C`6z3S_?D`%b_?B74|3wGstk1JhUpOn*QZKO{7F{bSbrgIIr6!JR+ykDl`ny99=Oe&j>X zI^t70e!oMl&ME2X5J8b4=^rqr;=#ciwq&E|n2UJMMsYVu27w)a;(SE3bDH)zpkRsf zw^tsBZO-k-yF*gF9SAEt(VuWNG}{rQyr{~!ex1Dr5BVxia&~m&6p`2;Do9ayeU%+# zh#;cYw_yR#iZZ2kLNo5Yp7?`cKb6Nq8T~S#6JlCbQl5kH_OYLy=Y{Q)f7tI6YsqED zHaaY4YxURI9HXPrwuHFK1}*p&>DrY#N6&dL+B*m4@z^i(tYa2QT61H;);iGOy9epO z&;g+ekIw8~y+eVkd6~j{uURb#{+E{cgUprBAqO9zJDiC=0}M0EO==esw8Jt>!;APT zHCT;~E0z`OY$PcXU7j1OKn&O_?pRigK@75c-oGa8S&1(+_jYPyuJ%Lx6@*0nvD zZXBs2jETw?pA*p3ybB-KdwJ}``R~9<^;lLGj=m0!E-Iq%_8OH`6!t#Ve9pKH_A6QR z(P{Y>o{QRpX9iMSS9NsT3$fJ0;c`szD=gfZA1bPnh8}!YOu6Dh9{LhPemj}tX;A&S z`Qt|cSebTv5ob%y&8#zf*^~2yJxu$Ch$Jm_#`MSLs_Zk;W2!#keE5C@8wxp4ed(Xj zH#SgxtlrgG2PTraeGH-T%9qCv(mKNN>iKj};}>@HKqc!*KE z%=+;)r-OO4?OHEKWYTaiIemHZmJAqY)@PNPsX_Iwa^yMRuc-Y-yO8||xD0nxPv3EO zqoK$kPd?q1(d(QalDQI}S_{*gJ>Wyzn|_6N?da5WZj+FY-LThqWI>J`>7t`VDti@VV`n75#?((l z#9Uiblexs#^kB$4xwCYiqkbb>@GqXWrMLk7`Gh05?L(Kh|DttxRqoNO#L}zHqERaa zlzhHhF$w54x~>u>tU*>jxC)brQd+pEh^$gz`OH#Uo$Ive4xT8sf z`mkDCh8>vid=U0-T3U|sCWJ@&Kh^6Nd&9(b1+9T6A2RMK?9sR@mN>6q4SvjbTvnU- zoImP^XG1XCAdJ`r;fReV(e3WC;&vXw=MhI9uGtuEl5f0lz#@`@CZs+k$lI69bRym<3St?Nx$|{dKA~LulQCw%_imTi}aW$H_!( zt6H7Gv;2shWvJWmGW+T375S#W>y>{!{?FZm0$^u9$-Mg3y8LBdRj8pf1^v7ncFO)a zufj&8<e&8|m|ZskQQUjs){S+)_F7+2b>}_h`A6sFTPFOn z)SUcgi@r9y|HjJycx|8(oC@iBFA=^Ay^)~S~b-{26Mn(5(#W!@rw8mzvW9{h{ibjl6|Z}D@Jgdn5@H(-}9{)YgC0P*2N zusMD3?C#(>@pbzb1a%`H;N#1c>ro@e&q$1Xv!^i@{3F6pw+aZCPIy=53`GX}$&F=$7W9bqQ7~@mhg{DB+G4HG z6`FQu6Ry|o-^DEODx8PmJr+g?6jr-;fK7?Jb%vw-_JgprP;3wT20^ggmjrRx=D@^_ z2F9Na9OUoM`y>r!fjTqVhYJQkrTl;dM?JJbmdxAZ7>DjR4IE5D@x|6B2+ffxMOmV1Z6EQL+Q0K}0ht zqAA)VnRo@1LA>P*aNxbM2j7*32nfE3oV=3)^BUiSh6sqi5rOplA_o&R{rX!4gj z0`&LG@74Z~zg3^IazMuxjyWCrKd`fWO z5CEM5%Y+WqLm?Jw?$zxXWMT3(xD0bz&!3EnLlw~M9hs?$RMOTl`PSTOkjV;m8JWym z{KvkdC_>ur!VWaF(-m@v`v66D3%YN`w-HyLqxF{-NC|7xY{S9TtHxdhpuuK94@{cQ z=R4BHJur9S_np`P?9t}s83PqKoIB{_Yy^cO>Nf*jjIMBA4nhTYvE6LOyBUwZkpvEK zih>OD0ON{%8iOvReDaVRYKOP7H(QAYxN@1aJV*xYGAg636=XmA=9^1O$z;ES;|t@L zl`4g~v#U_gK!zNCZ&CTg0@)v>&02LDwUXx-+3 zTw3`)SepZA4ydhP7BW+bMhIIRQerWIVI?+7`Gbp&v^m$M zN%joBX3&T1{bretyn-C+VsD^(>`Vx(d1D^M{wB>n7_U1Bc-MN$3252fF2lYKwy|3p zC$Bx1@0CX&+Q}Dx64&Y`)z1F?AlWSKzh0~EM-T~nF6h5431uz1!MN-e8Fa|dl+p~{ zO3xpUwTHNHA7xHEA#5;EB{P((!59_^RAoV(!Cw(}Eu1*NVZjmgOgvSb(A`5=YV(QHdZ&E|*&uW`@mDhC zm6#u$Hx>M^3}}Hz*$g5CchV>acb+S+s_K0ZPX7w8jJVIyzyyZpz|gQ*^4;~L6Q~CY zamJ3izU?Y6u<$`Q?c;lq$CyNk(YhTp==1!fx~@E*G;M3Qm|b6#ba1`VW?~HPwpvBI z6`tFyna^h+2(Y4OY@AfNtqx5yaL!r#Nv9tU7qfM#(zm}1O`Cc6aO*dXC9c{uXjgsy zX-Z>>92grZ?LmwRjKv?>de!W|%kOwHFRfNcr*;kJqgZn)$(u6c`!O^7TV!f3^x9W3 zs(niABF*Z{xsTrMzcKn4}iDFg0-nvmY7lbCpq2S zn`S@$Cgq=o6+H=`!oUmatTyeIJT~etY{SIr^sbh_oxsXYkKJ>PScZM#qlHX{d#@Wj zl*mSe9Hue5_IIAGkP>`2kBqrtL0I!KJCe>c_RUjSyqRD(=X@Tun&NRnsX8y&IGZN2 z1UUarrI0-QMrRtxrRX)W2yK~%29mv9R`r!L%vBH(rxGVC@WWS|{g&;d{=kwe6NNXH zWHsG$Mb~`llHnrH>Vf!jI;g&F#Z;SO?4+`4-lR|N{?5`LR<_lnQ?tmUn9ulYJ6q7t z@_56obN!iW@#<9_WO(<=M*GU6GUE*;=yN84o_?d{r%IEqm!eFAEh)ibpm+s%%1cnL zMZYVfyMbp+PrO;SJKX*h{0-cmVtK!ec_#f$X@!iB_M`|r5hr?dmrU-c4%Hpr$WM_* zh|M%w*`VR%WI`}{v~qj`A^;+YTlg2f0H@x^!jL3>W-AR`?_-*@iVG6uR|ID zMWWfXqR!)GJ;wornSAMyI~@PLfBLEDCFm)q>prWZ9g-wXO#28Zx0Hvq)1Ka2I=k!y z`3N5hL@-eN*K_~1V5~@|UTc07`rY=MuSveCmDBQ*fhP}v4X43hybpC!ET_zF=;7jI zspNY5%Zqga+$$21EE-C1PftmYIi(iy~x~Ai}GdAS3uE zK_x{*6iKuL85v9!p#x3qclTI-<-79JRZc^0&cqG1ckaD+Z&h`z>Q%4D%k^~`e+3Fi zO%ac!pfbzz&}icsUMvRX0)CAGj(49i_g*8R3GJ)q5>7*FEfY3 z)08PsV@*->SJDbpriJBYb+*2m&)G8#P>_;2wJ@!=wR0E8-No`1T8JUzofd73d3+Cq zd6t4^K*)iifxOht7Y2AFk)vB&M$Hm0zPMn84DS=!0=4uevGtF69eM+j<;gKbzjXhz zC?~QDn)r&3i6Fik%(%B8Ip>N$Sr4=nM)aLmz62$T3qTxu#20-!co#R?w168k=xxZb z|8vPIuM%dANzT~J2xpiP;gX#2>k-z2xk`k`zyjb~4|+;&p!F{5_AUPU+E86~;Lhg?YMx z?wNP&&L!N<_UK_a^*`DRr?%zxJX0)K zLHy3dA)m5I;|0EB;`hGw!6ju6o&r9jhoihct#Hpf5#4bT8@ZG`(S`^?z5XbVMyNnX zlGDi&d>kY*Dz5{qMpXW zjOZeIZTffQBTqit+;iqWAbAR4$ zuoGRdUIIPoUi}zP1`rQ@kQE?=NFt~(XKF^gSNR_h&e`OiMoDFFSO-;c%wx;?ec z0|eEtO~sdy-{iAjH24zHCgvkMtk-*|s)ATogp)m~nfIkG z&`tNhoaB2TUz6~(PuYL}oW#W&Bk1TNUuktLb=_KSFw8Pv}^T<+w`45vX6JjK6R;(BUkL#IKv z3cW3`kzu*~)(v0#%AGz-1KT!dnH1ab7eZ%EO&<=JfCZayc?>S+N=+YRpu-zkfO-9+ z{^K&Cb1{~Km*7gGG9PvkyGIvGoM5>k-C8F2-S?Sfn7+A=%+KnHWbd=H^~4j;)23Gc zyP0P0Jl@Gof(um9o%z>&61jx08?>Ya@_zt;K!3l{{-fHL<&Eu!zJO~fV-F~tQ;B(} zZcWN;VsJlTz1~fMVTZj3Ty=lkX$29)@Ch7=29iQNkz3 zLby+kacvgc*RPk@T&zP}=kt9XhjzSV8!>NSb5vs@rtKxA;W{O@9GpJeNned?mw~t@ z5%l#)&(_>(so$;r4ZM@*>TE+inIiK^b2y?L#hjeN%iS@lA!!h3!`?A*=}HoLb#iSERp{fKe1`jURYK}| zYZdiVAZ!>!YcqIpkGyFHl`!?na?Y>>z9VKpd^B01okrq~jphvk)YG2S+R7|Fy0SebnNQC<-2*vAUboNS@ilL?l#X6V@ z++Sak9&$+zP$*cF-hoBvgqRZ) zTrd}y8%)>E1rAPR(i>9Agw5AlWKzJ!cyBp3Gwx^`pY1I9$OIwT!54lZ^MH9l4fc>V zoL@=Pg_&r9Mgfh9BTXp6VD8Y$kS8oUoF zQqDsmyb1MA=GM9ke9h)Z=p>tRUtB^dIQ?M?ZR*(wynyd3fZENxmt%cZ!c;oEM3t5( zRH|kwg;+%vtx`p!!VtyMYN+D*up+*xT?%RRD)8YWK<`USgXxoX<>DV&d;Oda%G-!` z*L9^Rw@hzTf9cq6sul{%A-t*^lC4(SM&F7s|C1Z1@5ZgZV7YAkqnp=JMOPH5h?Sro zH`!;OQai6zMdV3m8?wBJPM?!hkUh8qw zDR)#voj_Y&VAQO4Aut;_lq*L zvCj;ZR~@V87g{iy|F~!cDpvjbD)eqDCjWTQx3&{N-P(A%3F>Z`r?-H5SmEgjP!BIW zy>$odK+3C~JV1n5wH4H(U{<{$n68~wpUfuCV(f{#&DGgv^Nvb3C+&8Tz)v^np4y~1 zYd_AmoBM>!%Cpu<`DB*OxXrZ4ZMT~?KV?zu$h8HvE|`h87pa|O1!^bE+9zuC($rQ- z6Z9~-8$sV1QlM`Q9iVOvP&g?m>UC+*dtC;idtD3lx`4ZNm3MW5-n&i$wRb^;ovf^e zzs9;{d5J2d`s6_EJ(XPE*`OXXps>|7L|H0?l_#&46L>v>O{P0_J2RB;rXb%@65r8M zJo4$!X1%^+Wcn>Z`msgyD0;fH74*Hw$-#8;vV&wfc~3Xcj{7^UZKcJ3M9EeP&Y??) zLOMg8qBoQ$st@Z3a@KPC(?81QR7H9C>GCS+r5un>ufptiT12%P9kpZ$oWtjW941K| zW);)mbiD?%WkYTY((hl4{__fpRn4BQ$;m&F_PD}|bVfv@##-~8vN_KL{c!h%V0yvU z`B}kqdFxy*AZX>k5$gSI2_w@+Bvq^##a^qOOzxvIYGT+p}q^NN`8{9t;){P}`l zy1W;9fE1sn((^(+pIJISa!C1J6y#elL-}GbT{}bRbmqG5xw3c0oXBUhteZ=1b>|{% zy3&-%GKzL9o3yRg32`=)88tRHYEoS6Rp;FKGn=M(RCFFgm`l1|4B@S_HW%`~kkZnZ z1i5HWt7*PV^)(c^rZ3aWA01Y+rOt||ye~m%edgs*TA%r4P`4nETBc6VuYkU#el?gb zpF7T0+52mn@@vW|*Qb*I6?#5$%bl&WM;QOFgT4iS1ERO!Ca>Azp%`z4`Lt-cZfeum zf;aW9g!0rk64aKA;d6>6BS-_n?52Udn%vhvea?G1YQ{<()Z zdnkO%?#3XCp}Hm#X3Co)s?aOZZY4G<4qv_v>M@0<-wfft(wNL0wQ5?(A?3oTp70$| zdjk6`k~R6RzPO7No-|zMb4xINus4W{oVr{5M#FIWP6FPJVb0p$0>{OW6Vj$r+3 zV{}Hn9rV?CM=-rv5~{7dFnMnH90Yy4I!*_LccS#dkVU*qSyi2h6enGI|%kYUfVVj2+nb$@3%pUya2;RRENdxN@G zbQ6%u`GLm9J9Q}L%Kfl1%9T7nxlbdPr{53y-s6ECFrIi@EzBMdg1&+ND3~tq6Ga}^ zAA<04qHeR9<-bqSsGsvU<5}}DHODRtT9>qjx*Ly5}ACe)oCalEy=cgCZC%y zGtT0+&Ds)cYWbWM7q_PQTl`HEc$&E>lWdLK*-W0b%jO8Bir_^HDmhCbbO-5byR0c# zv5;2fkE0d7d*3s8SZ_&xhoUp=nEofA9fsuDqV`2q&hHVuHmZ6p_srIl`zYvpnV*8b zmw7ChK1ZRayyCA7^K1U$KjhQ>sPSC+Rzbb0!;xSW{;<^S^_ z|ALvoFBCevgHJxV8mVdbYoT@UK zTUSV=&j(56J*mZV<-Aa&@_t#t%A4ceQ{tamTP<~TjoyrCs(S7>OWj*-Y5un$+>xs+X(w=n#Cc7zN_;!WxnR2T zhhTcabmg63dckhSyTSCSl74G-Gtx*uk9e<$0`DtK7aN;QkJT%)I;x+20P5-umCeUP zDD-KaVTxT&@u5Oit)1PvH1I+`r~W8NeWWC9mClXGbM1@sI*a`=D1Rc#6CJSV3q?y0 zZSl++jr{p1;Jq8(AmXkCpr?rQD^~bV`T1ZVBn??7g&Qz(Pm-b3-vs`4#Nfvdtiw4y9>Hr(F)p|(pRdW z5#&~NgI7A8`etu%)P@0d9O4@^pq%QMQI?W$Ut@tv^)G4+LKW_c}TM-7p-8A^P+P zk-mo;uf=?E@qDlwA1UHPps*(+*U(@G?Ny;>hal=rHU-;w$eKQ<;U{Q$179ZL@u6;f ztcVYfRy(69{mvNgDk;~%*LgYLVHl3Ua8C^5P?>RWB&f%|%3fAePG3C=O6sdUFBnz9 z+SrxGuF<90!yC&-e+KN)U1Jxw$Jl80^IGB93fixfUZtDm_U;O~23|B*QhLbUzgyCKoPIUP-34YBGTvZwPd~Xc*!Eg$O(=eP4(FZ)`wKL@mcT-&@Cx`;f zaN`q2d_On77Y^>;dUannK1sw6z;J)}`DF2&-=iWbS{O#|Sa|1H4Z#kk2J_E$<9$lq zKft@^yLLS-1T><62%j!%AqQ5lz?|PK3}<3E2P!kZ&jt1PUbzcs${EY%LE%_dj?2!6 z@?3U)1#57px$LeqIavTDO-{U~v;h7$IU$2(jj+o?3=hI^5rzl5bj^Z}U;I;wy$^+* zGnuKRT+Z(hH{afZ|6vfa;PtN(;v|dREK@|5B_*0}Nrj7WIEG83>EZ1WEUlm(vdKc< ztKveBaG6gPO7Kf|_}R#xprkjFrqQzz)lu6g$T#dn$=FHHK|?RfW8j@UT>oVluEcN! zhO04Lh2a_uk96}-7x~v>c(nU`Kk@t+H$FqekHT;rhDB~+@dv4ic1Pz#qI~H4DeL5a zR9N~G_!vZ3Pyg1N1EuRnkCPN_qC9CCYbS0} zTSDftPU3Prb!P+PT;t;;O{?e03Z77;rR*z-3fwm%H(UQ|B8>#O?i3tUGI_E1tVT64 z6|(~|G3A?9s)=cf8y`w%3-UIxxO;pggl`ik-1snI@>Wo96IUUmPnV5$El|-VbQRqK z@9J4dDMKQi3JoVj)z6wb9vZ9VM}Y&}Wn+Saox ztyNA8v0oH#KN0@7R-vu6BbxoZiEBp%?N>^@RZ=eJCl(YNF-${cdZ`Skd#RRgxnruF z*3=2bd!u4Uz9)g-8yVejHdXax{I$Q2MUgc2L~B#l>!Q*&is>IJHEzPpzQZ23`un`JRH| z=iKMB#q-lJ+=k)jF+3f^FJM^C4Nm18I-Tk2H&^I)28QRj&*zEfXJdFi6yK2-gIU;) z`~_}2>W;kEOfRTlJw=c^uPfws*BMng^>Sfp_2T*Yg*&NUDk-xJuk9){;)co8XY zUx+p-9FFxR{$CcY$9m-ZMNm%?cg8heQ0a~V)vq^IJ;_#F&y!SGfLZ^Q6=ZoWf!KFwxI%coU-CMyr>*|iVD;MlP!0?9{-jCq} z(d_A+YCTXvd&<5jZertd9>nlR7~bddKUC=PP)PorbQKy`=f@cS#8q>#Q1f97AHnda zXzE^QGQj7Lx$(n9zQ-~A8HP_l=@;9S(Acs(OWH6!PJrYL5J* z8(%{C4Tj*c+Ysb86!{Fm{3G#u9e(F>c-O;!Da4QG8o)oQtA@g3JMsJUr`-4vcx>nW z8u4j2?)@6^8Ss6;z`F429P6N~>ryn)!AK`Q)rguhP)#6xcBt9!_-$A+#|qqn)m@Y2 zsEuO;s2j(#ZhR?i9Hoq{&$;nsH2+ZW#{y29rxK$!T|3_tBAFfz8f82byvvc{NBUxZ8!fhLe7VIsPzOiSwdGrCq2x=8*Am~v9eF(T6b|dJG7=U)?=ua@H2!;^a zp#;MtVyJ{s5iy=1tPB$f_R>JmG!Zl-rj&?g0>NuK!6d{C3HwLHfdsP<{OA932x@>LlKJ!MEYR_ha>p!IgdarB@pS$3HZh%+MMY=W~8=OE4{5cWO~aXx{{1{WaC zmvABCiv$-VF4f>-f-e#1@?4JivI1WtxC|lUUsvFA0^xI4A+9b0K_~2bT@l=XxRKzd zh@g44A#N^$TM)Mr+!hfu&uR&@9p6qMHhu0u(6s3ijzioCsPau9?2A&{z67e*F(Bm0`rw}6koP_6#;6=o* z2wsW^nn#xV9MSh>0-^6K2=V+k1g~oF8o|Se*9nA75&tdX_XL7Q#03rIEqv>Zh>(4q zgU(OiA}BV7yiM>2^8H;6-Xr*+2>yt8PXg@^{zM@62Q*ET>0<>xA^4jDe@Fb2;2(&8 z5&ReNX&Lx0!GC-hh62?tJlcQzFk*-rM9harQ|lt2|G)fl8Fd8p5m6UJF+VaIeQ-bW zz84v9j2;BNil8S!Uqn9*`VxqIyAcdffYP9DUD_TZv{Pds!63w7A7V~r4Dq2`lN!Si z!x2LXMj+ydk!2uGFoHnH7)>xHB4{3Ai}4CfK=6BZao%7|L`?GGrA;Q-3nAir`*05Q zc>9<_Am~MWAA+ffX&Ou=*q1=?oq^b2!ptI=Loja#umCZaU||s)f)MnF5*$_pMef3FuD_g2>m(ps@M8e9c#5Opuw&A~n3B1F^ z<;XgAnu(2On@n2QVcG4O)|^D$n9H{$ynk04CcJTzmF2cR+~PkM9SGiF8!SN1GE-J- zp<#ISRTcj|Dkp81YueY@8{qpooq%))8Aj9j4lA2Xct&eCvu47!vLZc^>F7*Z!YS&K zY1?Y^QmeD(W>I3_!GiCKaU~}SB^yM^o1FrQ6Y7Ler#6vV!gHYuT50AxB9hLhQU_zC zPnKD(IcqW3OC(d)a-n|C7XL;V6|_4#Jx}ug!!R?7u^o*=cd4an@YJpmJX(_J)?~U( zu&=e!iBv|!8vWa!gb9+lRnrA+DwEjgRQ9L;52^A{;s5{u)OehW;9_84U}9iqVPs%p z1~G+!1S^yV0v0A9!N|bEzzGu1OUz9z1~LR7k_`WV_&byhQ^cN{S7v2pXaJSw0!u*v z5*uVL6Jg0L4mN?Q&B;&B zPE7&X3IIOj7=!=-3RrlYtyWuW+b|SX9LG%py^O%1KVpH=K8!NhL${}uQWge-KFRV) ztJSfLq@*kR)7#S+g=CT}HL~nF6c$Kwbflwm`_5;78zY1w)Q@{8>T7YLeg^jc2%%WX z=yxTf9*WUO{f{#&@pR7d0@Nz;cB1QRbDyVy+-mlXw)(C+Z~TL*kK0Y4Se>1{Q_^FX zU4K%U#lHVRq4tC|3pYoc-A~h+I9XCh}(*xIWq zMgA2da*H`85_n*>S7LI9Zy<2Fw*Yy|GEw={7V#!H;zzpuw~fT0GfZHTjOo}ohGLKg!aX#Iy@7HQ^OvI%DOaAtb->4$_u zP*&{3wBN_(nAUq=@6w8Lxx{%#@S~D5$>c*BFyxaTyB_GZ$AL*0M`Nt_I!`nyMFE0l zR6h8f>s@}mxCpzIU_!v;+s5c4!^xM%Nz@tOj*7p8XcTj$#xFb<)_4V6H~TZ_1Ye`} z;Y`+S1)H`?&vqKyjnrvx6Nu3UIFj5vmgr@?JVT z-E*=#s~Kv`J?e#l@*w;pSFLl~$AEF4mJ+9mOx*I+-;GFar9R0^EABfA@lWf^7 zw77Ahsdq1uGq)OJsUC~zQa+V0reb#L&gP8V8E~)v0ZFw_?EnDPw|JcGU0ZM5#ucWx z7fCBiaVsaS(;F>Rkrc>_7&cJUFxmi>0vL5=$BF>Ij<{TjF)s^}D_iJG9`keiRuloW z<(+&VCknAWHk!p2<#Lc|@|(}`lSVy~InC=B;fh%;`h zQW^GTQ?X>P7*Eju6N3LlGEvz4r^9E%Cqxe2v1RJ+-(Sd_ZO2k&$E$SEDgM73?+q4f z<==jB=|E8(2cd%*<8A-+=^JD@!JG9N*{MlqaKz)+Ax!E&lbzOe6x$I*PamG zN5yZ|FJWq|b?J&&%0xqvXrqk$LP=4Hj>!n^T_J6%U?sUi*kB1neDOF5-JB7vbDy`d z=O~=$D^;IpN=9qM^XpKe0tw#{a!}YIQEEDlYCFjAgduEs;eY>6h%}6p&-#BGX5Y4VT_zEG2Cc5r)G z9jVSW-W4k+XRlt7#rBabD}KJ)46&{IVmooUi4Yw|A#>zagfmOdcoiC4DVEn& z|5UuDeZkSQzO5il8PT|TI3wDz?HBh}nOKUgxPSE3qECyem53&nAikItBp|If~)BFUycnFhFcF6|+E zKcMNuon3q9Kzi|5^0{ZYWnm*rVgcW&4pL*)Mfd;Sw)!levVpQFT&BJ01B!5qC|26f~wD>fcDx9L zAN*%Vbr~ip?d7w@ ztsrkcp>A{kfK&TIs?{U|QyM$P=E81^o(H(B#X8W1yJNR5Y0k`8ooG%*l*necunfj2 z*DXO$E)`%hQno^T8|gzG9#>Q^?)=u5jMjM`Ry2S0dossZKnyJAamhr!uHJqc>Jd>O zm{txwYG7Kyw3aljTvggZCWc1_>qbw}fXRKTqvcmNW&ubgc zhtprB#ur5f5fq&^Xdr>tt-8TP$PFAtD(oKMR0G~Y4TFhwU*N+FO>YFh!+3(OPb0j8 z#f>L$1eW3q62ib6HH<2@VxbR>sitwrqd?azjXg;G0exfuy86LIJ|MMVlraxyZ5?DR zbh4j9Pa$`mq^AaX>sZyQbJj^|Rb+sfDhyV*1}oe_<`suA#U|Ta5sa;{3}c&tmljx9 zE~>z^mN2aWRtniuv4MtEtki<~LLtyr*j^@D2u8AoDK2VK7UsCXZn9v^fn5c2T(_SX zFS1Yz)KL|6td2Ycc}L=bH-IA-Ru~Cr9A8uc-!b)H;yh=$EKxEwPqY-0KTB>bBFmtNcf_&ovu{| z1~Hp|jQikGhtTtZaq@EWfvM7gbSfg9%pE%Xo%OIo=aVIwQh0$KIyp=EWOnGJwrs)< zokS=E+6o)W4jd+_+DLXXNN;V+G5!B;gD4Z#!&{^!Bc9hmul-uJ0Ng z<64OSn>jOmX)DN*FB?JVFf&cprxA`Y2Xj?yGmY_AZdy47Uto+H7-L;E9Oc4_Kd1(r z0i3}?@!~iGM_?(|AR!FAQ3G!bH1*s<*7eKp-vV&}aVQV=Y~92AIwI%=Q}u^|hS zKpAv>T22||XEX9F0RTl*MG<|?ym+O)2butySO!hR@GC_XDewYa)UfQ|)%n*Eb@WCr z`RlOcFD#BC%0cFCFZXj16)%v%az6vd)Y4&ykX#t2$);gT{aJ8t!!mzi(8DtS-CO3@ zxy$?u)zw;;`1J)X@dpxO7E;d3#TW&A+=_hM%<~^QciIfje}IEq1TQTx_>Hl&t#EY{ z%bMGIegfw|s<4u|W*@*v7BP~U^TxV^&NbM|0yZ-@c~m-Y9Ko;LyfF^mHqr%o57S(A z?iv|aEo;cQn4*itd~P&S(7KiF9`?M8J%2UBl#Mjsm?%gWXb;O{pOyA!=TebmQ=d$O zj(sleA$#9E|51^h!<}7w=RkV#Sn@yMxF@N$_oR-b50{D|1(BpnWJ^9mq+MGw4eeS| z$I_l^@B4`kB|j5C?GJCyj-~xQKXUNa4gY|=ga?B;?F!p)z-mJX6Q*mEl}A6kR{W?n86GA z%Yv)V(zVTP%!S5dJVHnmVfnVNaq~&5rZrM5WyDdVythg%%~MWYngxFH0#vIsc3LpM zl!>mk&M~p1`V0%p{BCz5F_F<{H+0T;j;;7+cZxC_G%Xg@E8jR*NZh~9X7W2}rKVgd znk}UG=^MxcFuHNGZi5Mu-@5|}I13_xN09|%4(zHp3xY$i z6mL)<2I{DRIyNGy8)Fl=1Gr-u+>yp$De|CU4D3+@d)%`W*>m?s6V2p(p#<%q zq`(VwQ3G9U+EZOe*7XqfA_8kHgf)bOH9Fg&L^d%5Y^LMUD?-Nb3R!kkDPt%jJNi5; z^`#jWoGFeXBbA~mR!P8EHS7i13I%_pjL}r%IXb<3-Lf>k>S5RevdRE*^&3L+0jLH0 zLb5Oxg~7HEmcT?tkKNE2w{BMm&YBI{6cSeJ_M;S$LjknD6!r(0tO5=}4MUh73|+t* zSoqL|wY{t}QoXa5#0VzI-hJ(D?Y0x8;Z{XR-cf^^Ue;jdR-~2FO9rm0imOD&2BHF@ zs+y?s%*^`GE5#BqXj?)NX&LW^(Yi<8rR?GJ$=Rz{QSvvhPhY;1oz&0RXYBhwV-FG; z<`s%~#{V%)K2Nh12c*7VliYPP7$FA@$Ch^-C@gK{!N<7{e{PJX`Xq=DO^9tM*f*4; zAQyF(fwYMeZKO_btB${j9M&MIBKdKh_#+o#lakx(!y03kQiouP^NOyP3`NSm(7#R?XM4fzF^-sP%c_O6wPN4A| zqpueU{#-Ris&Nr@YhN*B&5V8xkmFeD`P7NKy{p=%&k{kq%^G>7{vYZcT9^O;0|t1U zt&&Yo!!Qhny|nx4HiX3gsD!oy+Lh~o!$9JiwjPU?rc;wK_Om%5E)17CrDInrrMBNX z_7gYH5da7X!VZX_a@8}cq&YIy&&Sdg9kXcYhX-i_-7 zQHebk$1&AXWnpqOu1Pd9$KQlEhozBv>&nwgbug@wvxTyL`$Uufu)0IHE;36Tq76}H zTPE`mqjQF^g)llN2wMQqSb#6CJouN&eY?d}N$taAr?gYXhkKNp5?34!l7qvv$dGE# z&x3bbpNu8^mYj#e!nB z(Kj5k`gqtjn(tZ7E;#ZGBfdj$>Ys3Rn}aKpDf8kB((O!j;iE`8SE^*^nuejW%bCyB zMY_SP>iP|`XLU&c00%mFoQ+k@Z__Xoche+v-6ke+Kybl3>`Q`36Fp7r!jL#3)C~v(sfe$AiCZ8cScKfFz>L*E3!{o-U*c0`>*Pb@O;LWQB zbx5>k*$NQV$J#K-SeFWSR9HbE`%Mf9d zW=!i^5Eq-ywu^cn6kZ^nJS^IMpCsxqI6TC76*`d&6D*iX=bbp5a5s6&v`8F9x`$4*hmsiKT?;3tUB?M7{E&EaKgIp7~x%6PMPUl(tTe9YB?32Arb71R4c zst4;*tegLHURrNCm{l&3nZUF|ZPc>GpSnnV;>Snrt#L#bVCIU`+6!>XQ0|4)1{g0f zGY6~vWhHW}?G&))T{7)+`|KfBx*QKum1S(Hp%Z)Xl5S>>S;eaNyg=&JVbVnt+Rp^} zY1i*s)ykSqugTIb!`I0uIrUS%o^L2HV8bDkU)SYKwY*a z*_Lc8_0gtInkKPZH?ixaNt#-5+B8m^9%2x|{b{Frr z!1oq!_q|6!vVxf(KkV+e-?iu4_a1SgfiV_lk(v+-N5t1j{7)@tBgg;o?=75$SPiS^ zv>}~M7t)DL`jW+1O_-F_4JDFi6a74!(F%2gR$(BQ%JZ-9vQS+_sTD0GhWo7o3q@$9 zMk{+RJ)Fx9TG@h9p*EWswDPKwj-K8#Rua6SQLPP5QOQgqpI02L&!_vdiNeUR_m@s6h%5ZI_&JCz$wBhjwX(c_&&AB&RAP)Z z@gvfg8`ha|ejuT^*fOe!tuwgf+VH1NIVFx$9GOTRp_*b&iIdy{pp&BujMOjlc|U6s z>7U!*1;)v=?FAbz(-;fQGHp*6cEgBtt(|U>=^8sdQKqAyF;FFvpIR_$cat@dQnPOt%0N z2_%n9OCD9eK%@-0I5`%b7VE;$u$9mAWhuWWo3bu2$4(_Ys;uOZt=%W9vj*SVEgcPr;Cv8hOmWD52U!~eeGf0^w43JXT(%8t&C<+iw(5QkkwJ-(N= z5--_3G5j;;+)Bim`*uQX7sT`;mt?tJh$78LL-;?y7Xx1d;j3rPZN+qqgc%qua+@&+ z-zVUED@Mv($eBcBiczwG*d+Ywf-geXERK7LPtr%>+h*vHTczpXp9$U>M26&H|*}=_$lER_8jE+G2uUhJgG;-=HHpKUmk|fM?v2Q-;Y4g zF=k(DNc)8>``Va=ZbHTh)O`^26l9!)3?84*1n|BeJP(6D!tDMl`hEiS9`ewW0=2-O zgq}XmyM)-fiIwLb(YNQKo`_2?$64@o8FUSTW}z#?N|zj=-5OnwLRTx=Oz6t{&~*+v zMqn>rNzX7|hIVbcv(zKpzy*ogXn$lT|fcH;XB@SV?d;UBW{+^O=t#GG@!uKor%3z!4*d8m=;z?a@4}DIpw8!sj&|sHi|aU`*z^|oZ?ejH`u9Qq0J6Wx z?6D};Ffot3&E=(_L+IOw@-H)cK7JeRz}KztXPI+-x=GsWE3n~@T>ShKjh|mdoj+ye z{`Kdm`xmJ5m!N+I`q!Y}fQ+xh2C*j0Qy}w%eSZVLz6pQ6#r^p-bFMLe3;K7ga*g>m ziLvNo!nXifR*N?uqelz6#fx&uJb=ey?;Z!pMdW_6<>vIVh=0k6>??W zpdOMiW<2+4R{53VuJH=L=Q)#d-c>$)N%tw7y3?&_#>(~=23+h^^_l$kd)`&M-9AG% z9eC9!m16-9yrz1bT$Rr-=O~OZ4P$LO-;qry%=J3v!9*dc#B-W19!(wF68Utp7?t8} z3e`_He;YKKqr(=zR?jNjjT-J));eEQZZ_4m3%Xe~j``~Xv7)p5I$WvWq_eZ%DyY3i z+G(<<*{40xyu3w3Yme7ilgMPc6@KR9P`1UVHMQpl(vIFEDo@ZD6U|;q4kVOA-BvGC zCi*lbW@RjK|49waB#kv8<-Autr=90zm~yYd&|)J)*05^U6ld)PUQ_QqPX6hBtaY<` zs!yvM3j^u=&I<)An^H}`*C`^RnmSDv@hwhWacxs3bJ;>7o%K7zO!w(iET730_)u0I zn&GU!NU5*2vsTD+Gm;9Q>DRbaqL4V47%nLFXF2Puw-=VE^61fEZO0BS)Wg90n0Y;# z&D@)_PAoGcnT%6^hwe5>+#H7vlOJ`1>3lw&?f39xj)y0$&hmQ|l?#JzBj!5GC+M0s zlvXOv(}XlKY@JhB=WAH&^VXveCo;KWP;^cNai)#=>!*=i?-`})0%q)@3zhUTubFkB zPgA1Bg;ou2yR){sKU?XgeGxPFqQy)zy>%&!OPH~{b-Hyo@o8eEn|!VYE;WazQ#H7Q z8Jnk54X>MiQ^4-`2-q@B!0I~EDZXHDH=8p}H=!&yhaqNacPeLvhxsdY=35o3V-WK@ z1DG%PS82=$Clm`-x>*orbVE`YP8Xjh5g&Q2C_lPZUhNU4HO}%iIx9@QU&vW&hzrSI z>(Si0(WUJM>pc8hZ}v}ZckMd3!JmKXCPej5zs7qxYgz<08jPb#W9a+p+`GwHe}O8$ z%SRC1g0`7y=3MmwgrIZR7PG_iR0p;?`DZHp?Mixs*J86Rp#JU59N-QKOV$Iyk^l@fNI}84OX8w8VKnl`N z@6>FlmJ7f3Gxvd4lP~0k6y5_GUU4K+;1dQtLJ=Rj!{47wWV5+Kd?athbHyhx;<>(f z@e$Ve{Cqr}jc2X%3)|Pn%Xz7sm5+-$_FNP%3?vHiq|1R_x5ln$>d;88U@`AV2`N2J zDVt5}Jgr~WmK)^Pv?wjEx>s50V;VPOrPTU^%sk!>G2?h^3p(BoGvjz`Rr!xN`PHWg z+r0YeQ4jy#$K3lsQzCnD$H-77olF$0l#7vW%8ogOZBmsTcb0dVE^Vi!O4{S%I3Zp< z-doQ*xFYm~#)I0SM82RtmwHme9L=j;UT{CijFVSIW1Z4SZ%Fxxq)O=^i6wKHOkyZ+ zxkM_wB<@~&izV;rv;Wj^=J(tL& zQ^jEx@5>F_gO02<%Ft53v=X4f!-^T*;uyTXT;x_o<~(-kNh( z;h+6bQ+&2oh!}Q?@VX-q@;kHVeY#gC+&h-YDAfz*XtxDz{t;$gXwGRO8E$J+IL|vd zE3O|eILlY7Y;6q=K5v7mxq@;?0U>ue!rskfS-mn4fw~I&jHUD6}R#AM1Z)s z`G47`{zj?4ayVUais)8E9HL|Ac8r;;%-l(zWacJ*in({<`r_#`->%Y8=EgXFD3{Nt zdoxz$?NH*sI+w`wVN;iKTe}!3cZTJJmyS~X*O|Wk z_-C(X_gpcQo-z3Ceni3NP^T{SSY)3}mtUG4u##sDj(g2X!q8_8hN=$h^r&)8fq707 zfT#$7`ihn=1jpQ(+iRxrOR2RtG}bm2x7DQ=T~(94M5}!CjX3NGOK-&4YVAV~`NkZ1 zQ?5ql<4w7u+z>YB{u-_$)mtR9)Q&>s(0oee8+-Ci zK5oZsX_t7mY6>gAIV+laaycII&B1AuU%pURbG6I|1bE@hmWQr2N6K#sXirlW?FnH; z5^~4c>A5mJ-k)8~l)s90wMx0oc6z={Pq5STWV!`(lAYfs^CyB%0lmjAUnt8b+v(C9 zq4$DLv-8_!{#4KzcK#BXKOJ-yE5DpraXTu6dticbCg^O?`&=rLXFLQ;9JCd5jxBPz z6giKyQIxcii1|gOtpxvk5(C**QKhZOCuo~3lXlGoU0~<0l=*F-?RI{r%wGt)gps)d z5c!Ki7lC$wF12}9OF7G!uRhyJ`K#4ugN)&7>J{?t2VHL0UnBLb3>c4IesaMEb zVb@zL<*)K*&q~VwUc{lAdPCT~3b~!2YXaJ{=FY~U^LFSJ@>YYcEy{1l`Jv z*95K)l#Jz?U<>GW&>f(=KzD*}1APE=H|So_eV}`6e>O>f_LF#zW6pmU&Sk5#Uqv}F$T57zH1`CF zM^CVLl-AdtUx0W>x#PU$-jW{qPi5pd4&m0Bh|?j^gP=!158HfOC7*b}!AJaCDStKB zj-#N*h#k@|-8?}1Q!VNrXZrDPd{#m?`N+=O3Z=7|e)2hCr?=709Aq$@wA0&Z{qf9s zaXNr{&5$VrB5jHwn5u0Lk_O~-hiu4G0UQ2Q6&qg48L!BppNIzJb5{&@wX@lGwL`e) zeW#`Zsi(oep1?y@JkBDv{o+l1zmKceFt&083u_~6v$N;MxBP~jt>Br}I`2}84?${=_jJ>io(x7KS&wviveETF{1~g~q z@0a;mJKZhQ;t3xgqisLszg-733yIz^^bNb{8*5xc%zjiNghvO2{2|bSo!=w#^PuNI zFA#g{nR7*&413kpN6u^)5t~t>L;6%->66>1+6P~y_PpQ{-&?tOIS=|6=q1n*&?juU zhot_;L9h6;yHxK=73~h;(Gnr|vYkF6(@)vyqarPKdg6aEksaJoWe0alkFW&s|M@EV zAEdwBVZDdnBfST1hhEZej;K5R=b3XyuX%RFu`b-se3M>A?0ypTD(E$T@h#1>*Qyxb zApN+SdWF2FL9c^8W6L=%=ZzPbqy3M2ocen`OC%5NdjifMrTxJRRrEguI}QG+cO%B+ zUxUIY{CF1hIe-4gMhX8N?05U#BfUMhLoeq)A?4l(821}hv;%U&KZBgG3%veIxkMd7 zy#e&UmCOGe-ZBQz|2#e!m_jhsfN2V^zzhxUBZzA-mtejD3kc*D-9mykK&BTFNdCnH zl79&x^E(KZ0n3491S<(Tfz<@7fHeeb0hwM;unrJ6Z8s8Z0=j^W3N{ zO?se@K-$_5q&*<{Wc`c>as*P>5HRck$tUZNXiy-y0Lb(ug2%>yCkW&?zXDt)xN5+Y zfaHCO;AsP{5v%~N6G(fWA&~u9rX}yQ1Y>P;Y0C|tQ0Id!3SKbaMS_#=0@B7PuEPIFGD+c^A!B>6a&j`K- zd_5q(<`drpzD4lu0Qh@=)_+IAYruC1ZUWy0{xJZ)OYqMe{{l$aKNthlKL4VEpJ-60 zfc)}LkiCA5c&OpOSmp1$MT@`lwyt=^c-Q}u-d%5?{Q?BTcg=6=tw57dgB#`Zjp9f2 z@E&HzZv0Z9^aa1YBa06>eo3d~sw|ejk0^`r1Ca8WTk$h)_+I=eH9Xj8|Fj$m@Z)9% zUpiU&Xh9zA{X>^%T^B8ChHZO?BX-!fZQHhEhi%)oZQHhO+ZpdUdGin4N*2D#Dz4&e zt&iEqGbv+l;Qm+^nRlI8QDjk{ooLggjg2V@=F4HoyhNi^#(SN8#>tFjjFHTs{gjM! z{J<-MUGx0Et>D4@zpdc$DPx2H0Du6wWdF!=B!2kg8`{M@i-sE2Cou@-^`>6;3 zRB8neqNg>Yl31&Ri9CTx_K@GI+l@el`-;IxJcv6Un!u1PTM~e&pO6>6aas_sC_^F~ z=^g7dCvjRR4BC&~=rSRM88_oz{@N@1;2yVQ@^7hHkPm&&;+azPSX@G-)aX9=KJor3 z|4?l{v*on6=)xR$7rPODF?JUaJ;*PI3_a!C`Qs^AP5qBY1-ppK?1$B8yNsAB@HTmY z0QsD?nUXn6$D+4`i#6+*olw${spEUY+T>m>oOK60691ufn(@uQ)~@|L0XibjddVdp z!wb*@9g9t&sozzJ*M_GRToBb3Ewg`YR5qn1Q%^;z9nHoo&TvytkjxX?^wIn>sSF4tQ3yF-qHhsxNQ!8RFdz!E2HH#4{3eDPqdSxV{OB1K!r zEtll;9xT3zcv+F4X)jLRyt#gAqP=wAd|X~w4jD`>;^ncSUY0ZR!WO`QqSy%|@zIkr zajb&U3F1q@>EQ&q0^%cQju7;Ua{&tybL1mLGH`*?^*Q-7&@D-P6gS%1Ru?Z)s^bci z!!>CE%9z$0`q+$_%&J&vY=u_1pc_{^C^v(y`ms zvIB?BFyR@q{VGl4cpDRTT4dyS%Bk5kkT(xJ&N@egB5VyKVr1nn+DCN!IDyx;Fx*Oy zRBDjIL<%Veme+dA5s6JQZKalx%1koEN6e}*-xzc8T0+!DXdy7X)2KpOXqq+-hGpB^pfYSQA_6D z%tLEA^FbMX76F(NG?nMBGQAptx`k{7WN7s&O<|F^1{20}F1e=6ck ztz*_;BENLfUaYsyBKLT*;qyU`D|vLD#rW)r;S>4`hW5(ZMb!@010jOc;=}_^G8u1kL?W_9o(ere zAnLPQl&U2X{hbWgZp5lRlw~g-)exytHGAAo%$eChmGhf#LXg!T43M~#`Z*2FN!Av} zo@9;M-Hyr(wt{_o=<9c@S$)6OrnHNk8nC+NHx%qK^XCglfwAZ8B*VIHoqo)Av^Pkbzdi!fRaVF88&O`OkwP>rW9l! z^>7T4TL{oL2zMh^r7YD$ewUD2K z^RuZnOs4*p7F9(ts&qoT_)?uWEq(BI>FM__L;s|dqPw8iH8CbnI5N@juM4)_TuqFm z%(bl4Hc5Y^Y&ZW*ymFTb#{$-&s;aGiBiO&%W6gsKO~jXteBF>)8*3mxQBt4uoHMR$ zECDzv)g92JCmw|??=;d+jT=L#z@S7y8pa0&-y=@!l-x56iN~n)zQ-@s(={b2d}dY3 zVU>w2@ue5?J`qAnHFON2_9}V>(XW!o3h;=AyEjdgOzww5a*CU7^6yQiFXptm%2>0FLEOR5x~fc$VaFe&5c&>Ip-B2=y3WSvybj@Nz?J%_eRu| z3AECYzZ_qn*)64~T1w{BSx{cOMMu<{a!cMH5D^-rcMhnL=u)7~qM(#Y5W0E|CDeE32Twts~~zxZ^??^n7ZIqC5 zT2bo6XHR^B=$B6b;i(aAT1}Lg9D$eEzQw$J%PDI%xO1;DOPU#oj zkKzgngt0&1nQdPbsUPn441=UzzuxZ9x~9N;w1MAm_#mgTcfA3eJ5w{acMUEQg^vGx zZcBY$@9sm6|Jg&pL@cK4SO>F_S$w)o;f0X6@ScOBwCWO+f~oD6JFN+E+Rl zLd?(szD#B)4Ib!{S4wfoTUs81gLff5Q&dg)p4L8^pTT);9zD!a^DdnFG{?=_@?ENE zoooTA`9u7pmFSo}@OEWmbA85abP8H$xC=IA0$;vz$D*QMQ*V@JR|}OOpAB;EnP&=n zdOt5rX32fw5hk#8=Ap_vPB-L~d=CsdqvE}>qJiWw4L*iQl01S$a8{E6Lm*tjqcN07_XT>k+MJHLS%nZQ*JXHv8CbHBEd5q$C>!CVL`btmthm zLaZR5UorK$79fE!;IQQd$RiD%14!Z|wscCvUKSC5FJ&ry*@55+*p49(N%%8E97yfO zA|b?I^^->k_+br^XUZdxcVqQ-O;dtpI#s{+WPsUBBbWnJnK-PPksH z=O9EREQ1ihdTVI82aw#%k){v>%UF|X5y05iXPVQd=l3r~ z39ha*5oIby+YPIZAe_e_JEi4n4rL6MQ_=qH3l#P33u~_oSsrowe4sTuG--BuROLV~ z!((TakUfEPdyB}e{Z#R}f)&ec`Yg6UiVZsomsR{58W7t|Lz^)4Lpm^^kDaG7U=e9I zCLxr)Iqjy0(;>VILHPlGhT;3|ExD!rEt z%^FE(S&bc=nAf9fE&vr2HB5;RGRHd{RPi3l;?)8T$n{dh{1fHDi_t~OTKx;GMZVSL zakJIodK1C))WR+x7MC~# zZ@q@}3cOUBr`CSAsFOghynrfOX@^BPv0d)TR-v7RrL75KT%7t7l0^}oz&D%YWaCr~ zjWNy{%u`##8mTMiLgInJU&hQB z1f=&_(;)_OPPG^Z9zSqa7f7%}zp468lz#S3H0ohgqY<#TG`4%rrg-1%pNvD|6&7UV zDo_#Fh-4vLLqAVRc!uUh&s1t&-fqIP`0o)E5-X`*SlZG-2z_{;exaqOV4D6T%x$EC zZf|?f7q`avl(OH|llYB7vR2}imAQpE0PX{-s|j9V0) zB|!xZfQV7`@|$aLR2lRR#qX^nH=C$3R4+lu35TxtSs%Y-!Hf85HYZg3s;38A>p_$2 zTHQ7;5W3lpH?GOhT{kMI`Q4Xz!@5FnMbxejHSAAj4y<2J{A~Xvhb^qxRO;}a&}ZdR z7fVx7RrZi>CVWu$v2Hqn88;yPpQ#Y9i)@>`O~XQXP03-KMAFDj)p^}$ z&-QJtblkF^xFJAo;h%PHdD6pMjm{**Iu4Icc z2ydo1)}nG+oLJ#p=?Fz^L&5f{j8&^9vvKA}EWl%IqUogc<$1$dgsz#61XX_PFp$fb zec+uWCipc3Q5@KNDcd4Bz-tP?Zd)MT(*U{`y+7^@ci8Bo#Eknqr2P6&KT@M*_e=t<&1wKdYpuk=D^$dx^ zsrv*#PLXEnL0%E>;p8g~x?2ebkejTHe_m?@?tM|#oJi6@h9+66U4!$YCu=b zua}UGY`V$uD<-8UPeFxgdxr}ew^Lg88k;LYB;wIckY)xULy#Wj54~y_jE<+i6z_B+$j@oWYT}97=DnT8HgX(NeW75qA9PTvT_PJ3a4j^iE^mwSSB$Y0!W2$?3oE@^+fd6 zEo~3>w`}F+Ow(@nV~@bJ8<9wBWW}+B)IGu*v|RD~OO_d%7`Bcs^4ESPOlp~|+gN`Sm z=-KxpYqy)hbT3dlBx-IdXLiqd`p{gEJrV%{<~PR^tLXi0N|%!7?P0Gef$lUiC-}nj z2u>x0nBLq3bqYYu8lrt@BM~Xmq3At@h^omkokLqeVnj7mZ~JwWG3#vG55BBnti!M# zDY)WkJG_}=##V*5_@X*-uQ69hQdAjyL13tKz3CXODw1W%nb@higj?W5vl z5wVr$gwCs_2P)|1t9CxYy!ey0HzVMLK@ePTS6(GYEiYjwO!pff?h+rt#f^;F`3Lb& z2Jjg868D*`Gwuft+iTjVam7PCpt9*GAEeS5NM!k$WP|PkzaKIZ0vb2SJ1di$rlU!? z)DMB0@JOFET-LiWGVwWCgGb-YktkT}s6=nOt?W6R`<1FV0mS(a%1G@y{=oDH{QjpH z5~K4E3Eiu*Wx(?aG`ufo%L;rxl_Z-Kj-@qJOxn{UJD$CeM0BJ}_g{-?Dy`tE`h$=S z)6wx`Q4jlv>>ogQ49lu!u6Pp96(}g4Tq$#Ri!3=O)N?e&GE)=AnTd2ZRvV(gKMwo$ z=#8yvvaLP4{A?OlP!UVeFv%x{JI&2llkwn^KDZ5QxVfXjyNdW?DenY7E;PVM6-ul8o_9O_UtR(;BZU`V-eusHL(1Ax_k-||Shf!ZCx_bn-f2R^5gtl|OI1Vo zA2F_iVX9u4(0A2vC+?~Yv#$#GZ5=Y~ z8LWpd-W3BuhKYkD92u$t0i_HW;_*o%r;Pz;Q2ECkB2e1B($ou&Y5&F&sACqX{>GF_ zd5-fF-+M9A7VNzjupO(4xE;o{mn<*zYXwijwaLmGNhOOSNOB-~IF=-DUZ-OC_DX4QY;wR;u9HW3JBdx( zjmFNM=Cn_{SUO%Qj)!Yn*sTK2u_~X#FU*#f#WN?d%D>KiC%)5O);j_1R08b0-G@%f z#Pn6rDoU?|T&OwR8IL>|BfIx$k=NM<*H5T=%yk)C?kMgjvUk}Wn{NG{-65Sv|#_BL(np4?0=kJpYT-G5_W zwd^9qG^xDE&uTU<8c(4kD(I8f4J~7uuN-qNC>o5dy-Kd+Y;>76%9n$8jvTtvuDS=t zz^!-NtTSqwi#4yT*I7yf2KN|qce-dr+l9Ljy^(lBE=1)=YAl8)Z6G#w8F7}fdE}H_ znsF|^=Qny|VLyo8J!OkomUxz2s<;aY&6&E3({XP`NtT;q1;6z&x$#n#1XvC1$_%f{ zNbiwy`&<$24p~Ohs?L3Xbh7n6@x&5^ZHm2L35+j@g$p z-RDa^;o+BV2ApU3&yG)6(fHd={5><@^FN4d{JtaU^lpbcX14Iz1aStP@ytF^W{<>P zJL7hPnSt4bw7(JaT4C+sDM1~j9k0}=a}VDa>24%v>&-0e_p6oJcYS6pM)3fLkJ1UfH@k=iVE-k@0~~c_z7MLO4o148y^QScSQZ6URtL57@9B_bm2l`G5nEoY=pNypa?j*D zdQ$eR;+(sG_Ns3bNF1TQYTUq$Z_X5ry&JIiPa=svcrl`2Jp>OXmNXo3>r>-|l(e(D z?T#`MHv!g}*yPfyWdtk2Z9~Voh29b0)DSQIU{zmY{5KDM2rYYK`L9caLyeiiUOY$G6~`7>f$w6ua{R;FWyj7J&6AfIQ6P*GGv#P0 zp;B2jp%E5-1wL}qt_HMrPEc+G2t019OHg03v+v(#jJ)wm5#K6Vx18Rp(j5#Wm)#9L zxGaidjzfq^w^djSR+GVnbnAAR(eEd7$3z$%q!_u$Pli8J+LRDXj>?%d_18C(U&5-i zt%aF2czE%#7p@HYH|!>CGtxVENE-zs@3SpLDMqruA+369>LG%9Z#tu9Mu0$Rl}$N@ z{h-aZe(?uarlf23d^nsNP74NGb=_Im z=UZ2DiS6uz4?MZBWQg*B4C!=Bu(GPpzR4Q!1lcHF}BqBG`Q= z)*8jtH=~2t@*VND;j{F2k=WlIK;B0@<(a>wv75i(6j}6L7J~nUb`dY1S`hj?OAk5_ zs6g#~>PRf3-#R=X!OSSb?WLrIr5E56?UN(0WHPStD)e$96pVSwd03f1lgvR30;r3>!G@Cij-%!>WU1|I%vo0 zV#q$M4(H3VNJfgRK8rj~OPJD$eo9UjrtEi9A0r3VURx?k3WO=cmVhIxS4K5=_RAOt z3cFMxlzi)EPiFB+yO9)MI)^3yG+%$>wLRdmA1I6cVd=?{$I}kIxAeDqCtfL;h`jqj zJm~OvBiNO;a1wdJ+>$)49!tVpDVcs!s!A_QJJ3w{@s%!JM3zs24+?=ZMsyk3qBcO5 z%Xt%b1XhOG3M02|1Sqd(9Lf>d_T+apa1LZO=ta&tBNS=ZZ<8-rLBwKB5>dvLf?wc7 z;3Cd?cBp-Q*izecFh2Qub}0h+5|#k7T@dM2*Y3On;p3Ha7uMtx7M^hUj;ByZjL9!6 z;{7s_ruibb{gsSZa&B4vXFQU`%ya#~l|8whF}`RmtR`E<+N zQknVBU2(zTwCOB{b$aYkTOF2RzoZk1;ciUX4yT~}EtdRhY`7mauGj%>@zj_{V>Za6 zdYYj`M_;dx+aGu{?P1(A4_)STcb{eJ*<(3!H4?5gIXmy_|F%r$s1u4)qzTV(UM)^Q zx3%=G$j6YZ^#Y+Y38rl){2BNucIj=CQpm}AFJRr{mtl;He0lUQhz6RjW{~Uook_dp zlI4f`wEcU*OkC>4VMZ&2<?NK+CCQL)5+C z`fuTn3^0p(bOf~U- zZnc#`h3*{FhwBdXgfsE88{ z)q)*@gzNc-)6v^9+gAp+)OY+cMCVFE%_HeabAcld^1J$i&T%-BE)&&@LTuFR+JZll zIQR2Cp>7K5lW#p@lCjSu^)CPbMUGqM6xK#Gc8hXKm)l6jmb4X_dB)=8vVEZo_Y}u< z1a=GPCJ3Dd=Uw#z3dB3#l-&GaL7v3)rHC2cJL*@Ux9(gEA>ZP_226;c_A&$zWHPfP zUbds#b;v*uSd~h}!nsY8W>&RZC*Y6u#SZW*USG@By2VxB&9XXER{zb9#`!{7RK>{_ z{J_G;ZOzg)sHY~b<=ZvL4Bi3LlA7l9qe?K@U|uUa;HNu1$t2*msnILjP$sV>O}k8e z1S9tq73V%sN~XKSJ$+PG5smCdoWMN0gIUFr53!(Yj3Q3gAW=%uR#+goRMpMX3aSBQ z{$C#y9tc_7%Pl&Xy%WwTgOOysnKPyQ3Pqk6WRZLvNPdSzMJ0*G71310L?d)I>HQFh zJ9_GQj5(^TJis_#Vi7?RG6++qKghwPB4#_P?^lz|;tdH``U3N-x2SVxQh+WeaJI{v z$($=n`_0h#NllEpRXN(O)`|ox$JG>X7{q+Ed-Smb=Lb;TU+~n<9<>j5+}s-FG-#cR z!Owz*gYmLq>O}vnuX}9*;-U8Q7NQ5E zz0lh{BF0^g-8Q591C>fzZGkK}zR5funqIp>C}lSz^Z}oYW8sioT9^xI>rlu0f`37* zp}FGK!0AhYX>4&!{YS`E=-#3oPq8plvnoTQ-QfP@_H)>iURSzI6x6UNA7r%SfrH!c zzF5?c_rX?G^07Hh`!a&ZvelZX>hDoB@b0U3*rYRk$c1a=7N#d`U)#=jAUb%3WiEMB zUHg_h@G{(+iG+H09f9RW>F7AZ2T#;D2^*1nAHyhwp+Cl+a5@o(5F!bcM134iaX^jm z@u)feTrdQ8K`2a!L97XjSUfa1d;qG-@^_Z0ornK}nU?gYPz{$8wFzzgeV57&EzGQ+ zF;A6+_nzBSMp|M}dRvpsWCxnE{Kk+9rqa-!294W`4Rbh?&`e1utMob>k)j-~5MU-5 zlV)wlvjj4vi}W|ZoYbQiOqDz z?S#{(VhqT?=gfv{X)?O7x)$wMlKfhtlZwDwUG zW3(zxDj%KMOtuX(z9F>4)VC+kHUNt}C$eJXOo)>Bw6h%QH}&|W$bJD$$ZxAdl80m-OmCJWe zZYQ>KinFQC-?GKL@|Yzi0Z%qf^jP+}QiFFL?ba34PYs7XS=}41ARl?P)hGY0wy1Bh zPEg)kOtnx#MKgFSn_8wI(#CJ!Ip1-`vB!*K9c&)O;0BFdVas}(s+;L@wnAE$WpQZ7 z*Uaph>+zDz^jLn_^9*{e4sbi)uobI?tY;TMxx1geboH}Bvno_s{194nUawU>+l?P1 zb+IGG!GeS;yLv6(0EN~5aJdz-i6nBDa{}VtVj420WF3-vcCA-XBm-}!gC>OXx&J$5 z04Wu>$$d^Tz@T_W5X#Ge4<1H!>hKwFWH83J;=?W8xf7yt2P&s9K?*tp3Nj^@s}7)! zxJ%&gMD`vk_Jl|iKq2`;4t-D0;#02j00JAX1z>6>0$oZWjP<2~kdGcnPfi`C?D>rD zTIkKi~vsI4b3LAYrZevR&#DCcT444{Gz2nO)YAJHumkT#w-La zO@0;AUYnp(+U-P2%WR-dwIavgUfB5&3S6a$A#>9>jj=-e+SM?HnSM+54DRYbvNvr1 z>~yZ^NOz2uVqqev=HHqRsLYTjGC8Jiu)-=hFrsSjWHjwuc}$r~-mEAb%8rgW3d^DF z*u!|=@*y}L^5bg|4tMa-fY~2Rx$rd>bJmNk3~j-$J#1x)r5*2$SIdF0HQ=0&T(-t~ zlG0$1neQk2n-w%V=G*4#(%&b+=efO0S-%z!*ecScS46Gd6gfScOYz$8_Y|h>gjoI} ztopT?u&xxWOT*7tdfGBR(LNF%fN+quDUuU{4Ve+Q6D7eBh|7p4`uYvM3j|)fO7#p5 z4TbaZ??XmDI1~-8UJxN83-RaIMCKaWyEs?c!y5QW=p*@f z`hU|zcN>Bz5iEr8=e|Z92q6T?$u+wq2jb;Hm;ymA0xT$9!eRK>KM#?WvZk8Ht8-j{ z`Qd_;}Kb`dQn7(;t_)#bE^*oVgd_pL2ykE?^|Q^B(zBVs%fCln{Zeqr-l;B z9~wMb75ZvIXhGg+^R_)K{@C42ZH;iq6E)6)S>4$Fu8sYLJ30AFsmZ6q~K&v6-+sO zo`1knK*^ZDCZ)jUEK)W)ws9goDIam1jZ)jcxH3}+0@*}WVWwb`-CIUDwh}`KIzlUA z%o+Ri^92Ibvd1xBQqTMiGCOXSV0O4D<@9ifI3szD!SHyiUWk*~+5;v80)ATH{)YEs zBfHVk-0Y#$q2KAhlvS%39Tgvjz)U4f%oiP>#?&!Sdix9*9et9vlt?I~cd)iIN8xno zaH_PzuFSnKVu|lvv^5Vxq@je7C=(ixpW6UbtPTS~QJE&}^u{m(Tq6NaAcd1xHSPCV zeK$^0i_;`*@I6a`%*s7d=*6?f5b4ZsPzB%gTUA?@A?{CJ8V(?9V;>VY3%@HA*F003(VB270ag!CAI7{@2|X=1Zwt<=%nwtXC``@$_C7iohVpksu&~m8aAmE;qbek20PM#4F20ZNR#0 zefcqXQjSV9abHk*8kvAcwAj}?a(XIlm^>gB!DrvMIfRmNIU1ZAp$^^>WSi&0Qh(jn z&y&=WP#n6es5QztpZq87r7Af-C9ox2f$pIn6$Zza|J;6}O#s@gRh+MD?;q5au#5wQW1xK(b?K0rB>|cL~iwsCt%$u9lW7 zu1;+9m==UzKCjqxUD;p05XOz-6TkrW1(L<2I=$W zH}^kSXt4}ww{5zyw`>U1;VS2vY#Lf-znzLW6KPClTXN9(dLsW`8lNkhK^%9Nc@yZsKO71%(?Z0(3yp1xizZ`VEV^5DI2OO67jrO*fPg6z zvPHvgG;z3XGr`Wx39$+W8|;;C%5rybz~G_H=v0ZOTI1Hlia6c6>7=AZ)*T-x1(r7g*l1d z7k)D+T-Kp}e$=0J0_j z_e=IF)MoaWpyTQK_#odp2QNVO~?L7iVihnKC=h%bJHJcW#bM@H4=9nPpCTaUvJ!?hrt`Ah8B{>6S2jN*(b@k&y*krq=Xo003x||C8r!Gw4uA zK?DZgiRO#H(WBNaN^o3Ki}5^8X*z_f?G-A9b62G*o^@|nlqs6}rZY{|kpCtuivVJO zc;tL-zkKd$VuA2uz!dN!z&XEkwGS09IhLINV^|?J^C`w%1S@C{V~7^mg3i~gWJgP^ zo%FrhMKlo$byt_88G}-b%owvwMAmzX{**I|R{NVLy}4R?)&9B=NhLRQXgba~o}!96 z5|4(HN=nlIVg`vW=|FfBF2!c^!(tNxhP1U?-+23QHdORJ;N>M+IlmYaY%%A_>PhlKdce~hz#Oj}r8R)Rjr^6!>};YR@@YJ-C}2={l})4KUP3P!H2ueQ;Z#_p>~r{ABluzEOwgW2BL%% z-QJCAD!U%@p1WMY@zZ%?|I76M%k=-t^#9BB|I76M%k=-t^#9BB|I76Mf0^m&|I756 z|Jj5t3lr;G94aj2krSkMO!C&ikn{xf=DvX#hFAjo*7pjo(1qfMtwqSRpGMmV>5Y1( zGRK*0l^ybRRTfE)t2{j4(%KIX*ryxzaSxj+Y{b0p2}iFJ=a;f3QUCm>n&(%_Np$6`=B<@4`Cq1w2jLAHe$I}>>ifHSSZAwOuE4GRU#17S zHq%8FTY@t`zIO(_4$z^YA+|N3gJof5?~ztX;p3F-#U@3r z{GE@4$opQc?2;JwVsd}Ty6H&?37MYL;*?O%MtXP0oRxL`JNv&@O+dJ&nMqai4Mwvp ztTu@bY$qKB<={okS|#OIiwFK}Dy`q$QR9PtV?mNl5_DK&A4isLI4RZmkwszc&vp`A z8zW}u;B1(&U)?;zx!)C6-Bcfy_Ft5*LvUiRDB)%#E0koq&A7IergX$rS?6yHPeU`{ z#D&Bvoj4PQS(|Dv?ViI18Gt8tx3b`oytX@fJ>+Y;8M9}0Hi&VPM5*u{7ZEr^rdWx+ zl6aMLifQmKl(gvDCb2-V8yx*bj<^rNJzInW002VS?@6G#^Itc|C83g6|6&;qqqaxy z|69#TKroaN6zgmcYXO}nuFo<@rTrZ1%nt(_vB%o5FDJA8JMipld!3tkjVLD@q9qaR{VO`_@PILH=+(GIpd@L1XnwDS+0b%okHr7pC?3mb)J zw6ae{ZwoZw<)Q=`LIwEPGU1xY<0>}%;;z%FiL)+>QoMn!C zS+^l91MyQ+S@YlLte0?9?WT3?^md6K#muVyT|IkIa@nb5O>?hzaxSr?O~#|3qnzXU zYJvcccq_#OZZZC`TE8RZseW%Ln?n2*O2Dd`z9>+6Y_S``wdMBnbkn=iQqjCSxfmVk zsY&i6_jF8|c)Awp)L;|}yWlcRNAd&l3umvwWUs02i*sa9!I} zL-p;^oxZ$JE^d2<>Akt<8tkG&Z25>;!w^jAF2?vMh6o2T%G4W%A_cE|7FOxnF#3HTWJHR;$%k9fBSGID4NgCZM6G|6viK7fgZ zxW5G$AY8XhXZa0_UrbqCR7V+2Ws6VT=%g#fsw=d0%C+S zUMcTk{|LzpV7lSTyFt8Y0x!$DQj2Mcdhgf_=1wVkoXu!^UtIdWgy61Sr{_=--Flpz=5qWsna6NHbWL; z1j|@>1;jPE(_mo_i3L-fw>{z8JuENKCjjn`Al2_lqVYQ%RF#hTJxQb&3fI8eg#GbR7l7urCL%WiE}(N&Y0ONFV$&$>zR!dyxEZ zHYimfjv%9a*Y+9q#F;P?|3U_ z3uOQ8tSL`AIvt+cG8|J%tg?uFFa3{E$tnmJxrLqq_S7dXfw>&|F1tRne#&^NHW#%) zAc4A{)y$AJIZ;SUl^xvabGa;do#Z{RMf2d>;_W@^bN#DbShy|{)jU|1=w*JKn#LYyGjKOW)xc`hn5}j&w2f)ciB_pMof{Y z{(Cm=Y@NM1ZUeWDMo6PGUHqfiT1tm0FU7zxP_+F}>uIFoMk>luuz`}(aVfir+YnqT zW44L($+`<#Bz);IPU6Bb;L{Asm^O`JIq%XB`nwmLT{h;j#*QP>I{IZXYzi7l!K3-h_$@fcj;sUH-{&w7gI-0(OPKq%2 z>#gw|PW}p#U*P$n9PPzg@%ydnj+(+#aDDj)$gy7T z8~}it?YC8=Vg2h~Aa5va87_f_P6pAQ~v{e|hIBe2dY`TcZm~bg}lo^ePbAJKE zwQ>$~?MuYQ+or>Rp?*Prd1ZND7?G|FVMF@wW*v^XIUPL6_Zrl#YIAi!?_<|2SvYHK zCAm~A9L22c^<=+q1>eAVZd4^LgMC)xfG_<0{H`J4&64Qw)cIKCZ3X|)xMJRInWqn~ zk-oiz7^&M|uWwgH;v!g%#0H$rIaG|-7}WfWi8qv5_X}TS5VLctY%SN~4!ehCj}T)o z%wkzgEJ70}Oh^9*U&O*(G0WKBBE?w6EtC4=u{C)s>1u|7hNZtT{&f53+26c(!}Icz zqg50?tBI8OYdaq&&`F5L5>$%?GlWA$J%dA(fC!IaMi<;75U>=x;}E6~GCE0s5J1k+ z6(I*Ar$>p0lWLgrCO=CzY4mzzMHJ(EImIZ3t>*$LlLWi^-~l^@o~qHUQ; z=We!%eQL9oU;%@jb#!|aYWQ3YxBU?`-?F;&^j2*`D~4{PN-Cz-<*bWUv{Q-PPS3>0HYqw$(T|v5Jc@s4m4W$?6_Rz#u5=ed;~E*&+sb;VQAleK*%A4igz9VB z|G5_`ma66{uHQ)6J87&F$}9h3OU(7jW$yPnIsTZoUC`~)ZcZp;b(MK!yyQ<{+oVfT zinJLcs(JM2nb`ii7x0n)*S*;JKkfxC3<q%zQx6kJ|KqLyFx0wU6_X7Ynl+G)xzM`dkiRcCFgY&Ph!%^q=56JBDmxh)A! zS;8%k+U>(-EgVI7$GFqgd6kV+kq$Q(V45(Usj~VjPVx-#cf;DnldI*iZ4_aH?ngXM zR2hG%&QY7L*|4$8n#MV8zhe;93~i`v%RS3GF3RV6mT%{>VYtf@5ZTsar&u=^3YlFO zy#EGcX7v9DU(EbJ@I_XfYTC2g!k?evIKE2=I07Kvxe*wo2`C{t5O!jK-(J!7KP+S? zJYz$CM5JHx?LYW}F%wO`v0Z;n*C8Fz5|g=nHg})9CyiEx4^%=`kfRTAM~RT(tAT_E zIzOHz)fTG{_ZPmaOSkT39-Whyoot$yEHDzn%;Wdm@d` zI2kGP7jyVjc!LLXutuI-y&*kW`~NGSs4=gVad1u?y>rm4Y2jyug)Sq0qCs`8Vz_js zXf<;{rDTH*(FoA8tf;@%+5_$TWalT2nd@;Fxcp6(qtCp0^bDQGbs zW9%fijDb1fL{PL>SE=RpM%2aQD!2FkOk~}Wm z&J|r~xPCE40D%F@PRq1V)$RX7+&cw{5=7aeZJxGm+qP}n?mlhXwr$(CZQG}9ci*0w z`{GT^&wKal)=x!bWo1@XRMgJBYOTFCp$?ygTXm3VC`P;ruVheCXOaZwsVQmcH1m37 z=g;Zxx=ch)8ze6V%I7jEY2d5{R6e?;sQ(d$r&j83v7ofMsqyCzyaHwN*p!R%(IrX& z7$1Qd7a_QdE2XNA;R^Y_G{#J?zvNs4k2DSj=7sjAeGLnNchMr z!L=dp?7mVt=43>DDCXiiIR$to6vP~BSeeMg>%ewu%oF_we>mSIz&+SY8KMDaj(tec zxH}MWti6KKO&;Dr$8oRSuDwaCob6^!*e0H1>v^nCZS=ES9JrwWK zWVj$AF26;rZ{*<<&#jB7OW;Y}D8P}0*L_+azrG~f&Lwb(-j-9`Sop6qL1hwl#dCxi zrB;PXI>a5Z?5NfV#vExdn{(v`w4v-iiMNk7sr^Ysk||@lgu9+eFec)r0b7H6I2@W` zu0Ao@EtllmCG0Fbhi_l0K>4c((wN;`na+TovAQ#nYMUzF)!e#FDi=p%T>qSOP`t&< z=C4*oHA{W_e9ooEHR1U+PK5}cqji=E8QwE4%egb*M;8T0@1ulS%7LFY2|m4l`vF^~ z!0|@>p=@|#!w;HA5-00zMEp^zs$9ir2+K_MH}QPSFsO zx!JIIe?1>RCX$;=)iqr{k561jsT)iovZU4YJkv}y2bK?k5LtpEh%+hvYv{+>%_om^ zn7*nwm-lSqeXzk087MjV48|WA9)3Vsb|i7}QU*O7i0{YOb+j^HP9-JMJL^6Bd<#s$ z1*k+x90M9KCj(|eNC|teMk?(yB;TW(!tS7~8yI+}yG)sNbTZxMI(?6_9#9orp)_!) zVE^6c-23xfp}V^^ugwMnvY2kiw0QBg6P(?dYy}VECgkHK@Q;B z&}`BQJ`)HZow%DWd91=dbhvnN>q3Xh({L{^2zO#v6@DRfAS|B|zf-3_0D}fZ0U02p z^_&$+;>9uLOG6(ODWTP=sPv8#F2k5?ZxE>^$#?h?SZfn zbrJT7hb+Qo?xc+dHG&KP1^{>(fpEclLX*;;j>X;E5zPfDCI1D%|7R@;WePayeAbL1 z{Oq_$LQ(%inniDbC?QEeKml9d|gYsUQGp9(!Bov71@ z5D(4IMe!^rw1$AyQRScG{Xdd&^ym~vk!$1LGFXdyBnYc|KXCjHnvlOtr~UtiiZ)qw zN=>qY9rF_Bz@uP^i$g#X?*ZClYy=Hq-6OXCf}+NqCV^-^jCK$NG;8VE95Ib1TdXZA z)d{$GczC|252-`$n?L~Sd6sH^Dxi6aS3vq&Q>uWh<_(9+yFxu5YoS5-1KOu))%`v= z!)Ay!ib238MibR^;bD9BQ-$0OdLms0A zucL=|EkXxxX|0;VUm(XH?9bX6^N_%TBKT<7oFImE>G2l?y95BvA&43>0da5tv@|bm zNI>cy#)UXhNhW-Px$vGB$qt_Pr zER-3Ef5u5BD6c8pobJ=37x-CzkrJMH`2iQHS*DfH;@2Ba7w>F(0Z}mft?1t>oq;lD zXZUZzFlwSbj0tD^dOe&>pd0W7(K;vrG|nX;7kC3&{FvW=LFdm zsjiZS^PjxhSz!FI1ia*h4ZVC7f}09ImCt#Q)kxT7wNvP#%uSqc5WVQ932Z(I(`XEF zp*GYAakvQ-Z0TW)h)T=G5(z@(PYgj=-#*{II)~23t?3nm1mhbLHv@%Tyi`M3n}W(D z`L1+h=(Rlf04>Agoyg*?huw%;>mbEd@-y>~WQAeM=p(<+uX>U0TFjExrOOi$3T$Q# z`G%liG9=+d!kSRI3RO>2V&}8vr?fsfCJva&0NU_Mry4dKjf8?}yCE^S`FHh!(jnVr za8yYBs=>U{D!jt4H$yx5#WF;>{J@KwPrvtD`rOv{RfWzZWaO$js9$bfg?jIaTIyKY zn$&rfXUIhICHvp8uw!h#`-4-LP+23GptGU=5 zKec3_YvyX7PFR0F^hA4`y1)$8sSe93A-k(He}vR^1c1u^>JyRHtL^z>baWfc&Zj(qSrKckz(@ur<*F7<(ljful1N;b&bvXjacX`5s8CZdUF z(%}+ZO~8@aD*FhF)no5%~whV zuHTAXqIB<4`bZz5l~Z8vf(L+S0T?~IMt1IUR>xv>PrUu)$48yvyU^Ah>5%Ei@)DVVK@*f@D3=2Q*Y1 z*cXn2b|WNJB4wk*E`Givu?L-@c*U^rp@C1#D*<}_o)Rk?;(cs-FuQOupz4zHAYu3) zq=mcc7f8+D*1=z}1L8km)BpN`lCa}S1&#HG;2F9M9iKo(93K$wSJ4QMSZn*QK8iWU z(ADW6IClz5FcH;ym3Ah))7g4~Sa_N8{BFG6`_!wR&lz5j7s?X%9yq8=A2>gQ&KS2M zzol(OLy!ZBGar$#*NTQV?vZ@Pf|Hm6e3pd?+q*wEysbIc92Sx<57+=cTTqSy7ZL0c ztNTuBs$QrYWj^VUouwW$W>3p{$v0kKwf;Q?RumF&1BZ1&{CYv}QU&n|I!|dcvf+=q zwQ$l={3DTNq)-0%C>>A!#eH7ulf0L||Avoj=z#|i3{%c1LaKnAzCy23yP<{qZc=N* zoUg|&LA4mCP5m5g6AfM;j~vDX02b4TF$ae%dagodIR?&7;m+X>DmBm*9->MR(v^h_ znxVwgU=e$z=E=p6OMj4Vo>MQ;2T?b5|4@f<)^SjMTFIp|C%%!G=yaAbB&%O*#CU@w zF5#Kuzqpmyzl?;cqCkbg1O94ta*i}PDGwKbCz>a?1UAO=CUvBzTR>9Ut5v*l9T%Fo z15Xcrwsmf4SED*5OBhmH}nX&gx&w7t`JmQd(Mbl|L$!@X65Drj7pEb>6-( z09T$$_dKrEa{*{R<^TuE%Cb#2R4M7s3oX*jHP1dp8$RRLYQE&-TtpRUt!HAaV!9Gg zn<4vTRKq-!4`!OUE}FD%C5#BGw@nAPP*`otK9)>Fp&jHo%ll2<#`s^S@W5fdZ^CoyIsZGDm zi2}X0&9HPOf)iL?%yF|A2~5M=jPvZob9LEMZSXG)D=U;fixA0nbQzXFQf?V)YJ_zq zt@`z}J78Z|+Zn6U=M*DOCGR0%tbStDT)9r)3;I(5TH_>EwsnOtP7B04b$S!G3z7{~ z1^|E=^&c_zf3t~ifVYeTWbZ%``4G_hTZ7WX1AOQS5yQgu?6zepbT*q>IS$Z%jC(PJ z1iLS4wx7;XLi{587#Hrh9A__Xe7bjdRp13NCr%i}Ckd0rS>Y!vq*DYqlucL9V+5w2 zL&AAt-K3jwqX?7}ohGm*C-F4(!esl8x`I2sRHZu?w*F?x1!?;>-WwZ&sN=WrS&y?Vwz5XBfV%r6nyOw$Dgu6?cV`B~jnb)bRzREqrwldSZzWw{U{12#Le5%6pVd_mPg1*z=suL$ zTF4bc*&l(ne7shXWKhLni-Jyl#%k}J;ub>y^MwktV8|rQfXk+)x{iiE=B(X0Spz;- zC#FNhuOyPk#6*oqDXy7*KR_GhUZL~+LFo(|`ns_U&Po34tpIPh)Pm8Qcw`{ut7^(-G8vNYan8+!P& zdB3A+!zgd8>=bTvP`A7Kx&Jqg+d5CwCYX75)HGHcqaIb~1?6hO#ab<_(7|VOP3AF^fqzF6B0p7pVgu1rt;!`lk8YYGjb@l=U;=tycWQ zt0XTp);n7DbZr;70Q~lh>&ZnB7u>%Z{AL%B(lQw{lGkmN6~fHRBE=W>MMg(*h2MVrRMJ;EJ-YxO)y?G(Vo1!KiR2^V+-D?jq!@ zdv%pAgp>4>T9DNz_sw~&&EO2UN3b9)-sL}nSLFN!2LOQhB@tw+{8tQIcto`?Cr7)Q zmd@Ca&>Hq53mO8(gkX@7PaCSt%&PGxj^Bw#_bUI1~r|`&&Ss#e=}8^p9It7#_fKB zl(Tknc;o>y67hv2peH2vL<^0%H7~=cbH@g(WV9E{P`9$uoDO5>8zV8NT$u|elxf!WFdKhKG$PVkp&gSNfY_Qp4xT~mk-^zVp}E~tR%d80PzdF5ff(eMj;^-$O+)I3 zgDG5(FHzb(z%%e+5fb|h_xerX;~k}P$#Z#kbkzQ82}B?pd>iz)YT^&xUuhxVm~Mt^ z_paKcm^#J+r(Re(S^M77Af=ijy?Eifxg7#qo|=#kjuIeB=2n>m7AG$4Cu4WVmeh7+ z8e7$RHf_wY^VW)&svbv3Eek85erQ6x2pz?$@psH+N)NbxmXkw;JbdBR8fj!9p`QM1Py2dPG}eD4?b#q0vG@Qn5y4W*lN4KA{Ojk z=j}CA|2w5yG;m2UNJNF)sBk#2==i(>;vU>>*Q$-Dj2)Pk*Mmaen%WWZZe6?0rRQr+{-6y9LBG&my7W`~=XBSmWd_NW9D4=Om zH9W?-9>Vz#rTs@AWPtyR!e`P8loj5%gOK(uheqiBI2B}hsf5y;y3G6)IK1h(E`Fg? zH#Ss0(a2N`*Q-qP2xDfg=z0J1;1$kbz&3=1R9A0i3I?1`XepbqxvlkZu3C;~Bhe01 zJS&%rhl`Juk2P!*8HQTuN$3O^@mo~Zy#~!fMErhk&T}|CP;8X7!h$l1hn?qX&#M&m z*n7H8J^OSX>X2x&fK*2rgJZ683Fo{67RJ(+WeK@dnN<8i4pWK;5sL zW`_Q$o7M%Z?W6&wyeYUCq5R`|?=PC&QqkW5lt(2*DqGc&vCXMUb>GDjY({1#g95!q z2CpjNKu3-R4@XwF1u2D68heaqFddkdmGYbxKmc2+TY%^u!sMp>@BbhvisQcnW> zT$CCesic1RK&q3gxM#FtCi$th^dMN+iEb^H)w9xCR>e~$o;zFLxSVI0e8(%LPEh*(L#c98ibUo zeI2BB8xUYz5V0m4pCQ+A5ha@cJP~c` z1e#`&c2$9JMjmphmpqJ1XrJ)M{UxmkXX)ormV?v+(;^R@AMa@$r3AjItC`39-P3Bf z(x*jTLqkJHL(BL4#J`Mpd${k-zFAza9nE>)6}A1|Sk)D^_uKZA2y9-L$HJ3Xk7vHu zn_YI%))zPXx6AdzQufLY=RCR#U(4XwZwtF_OSkxy*JeKVdu}7=uWcc0^y5n&-{DO6 z^p(*9+rO{0TSTUyx_)pjW0<0jvK!oH_n5sq74D8Bl~E+@2r;`@y`C?h+ns3c%i44r z1gkcK44N44ri!zjAi#~9yDCZyvIpFVsP50r;6tDEdcXa(@m{fXzh z?t)g)!e4>Lk|*QNyfhZqHg4?R>!{&u{rWSO$f#nt=#W!EPkJIud?w?btcSz|TUfy6Ni`&pe5_YEX!;cw zsk59rL&OqEu>&pEt>XU4#HTQuo{V{K7k(z_fpC5j*;Z2j3qhesJcnzrrb^;jI535A z(8T+gnlT3fs-$4ak-A0iI(BrFDu}8mHI|_;S|oQ2o~S%M4xQ61gnGIoy!9-ua)dX4 zQsVYW0gpX%-$g!1O)0`KFEvbmU5?RCVl-R#&sr~y8misJ#!I|OkJm_vjbtSv+f;DO zzKcu^FmoBto@kpJQd82q(bX6mNrzPZ^Z-Bjv+NDRfR8B9(q0>&z6)hf?mitE;vR9K zl}k#JZU=7h-gUHqX+Yly9h5nhg$4IUGU>xX5hG=aBUO#g^BSITrkoMe!S>{YF$(7C1(-;*aE#kVGs8x$sBR!q*yMHBGU6* z-kvd#Lfek$*Q|jq+nUHBw}ZzFj!Et)?~cwFjhN_9q^Wm2Es+8S#v=QsO|-GxNKtuy zqUFq0jWyo{!-u>8x?gkD+Z2EwbaKA`=hYclm9t?}SWj%qBN(0k!K7eMIv}_A-nxtE zAEX%uT+mf-stF+1NrEBwe82E)nvR@SJWD{+YcR&rBEMhqu)_mJbd15edWlbbY?(Kv0;%Vnl>TXOhqxpMObS?4p&SgZnQ zx0Bs$8pi>GC{h1;HS;67z(}*Iv}W21{5%p5p?O)?>1IB!m$}tHC(x=%sn*#3OTgo1 z`o6S~>IF$on^WvGix+@%H)K6j8>_p?p33&f%aHz1x=8%1YEeux;6x6GMNJ&2*i_CViY z2H=3g@#;#7bN{}k84q1K+%RYAc*rPia2sX?W=ltv&r}BcArSGE;PaG`6thS zm-$g5nIFOe^8pg;l5{K=GC!Ag9!l>NhciilWh7D+aM}k~^XqS!zy)et5*p;)A<`iL z%m+uz*s^IL?hSmA%Ir>`qlVl;w38{vKRuER-i-Y&vSB>_x$Pg zSD~=_YY?tR+u05~K9m67H05z5sxD24Ikh8MN}oknPD}SoCxdg zc;TV|Y$iSGv0q&Y)~8I_Fj(+NsdfKqvg=%$_SD4S{xISb5#+NN8k#tO)T168@qNm} zLHX^zoz;@RThZG{FWY+@XBKs2?`SW;#DqJfKp<0ADD zdm)M`1_KP3?%pm)lbmghUZ};IpBi_m&E2-KQ5*p>L)=22w2AU{$rbTNh#G|v{K-IX zSXGN&RWW##`-4R)amF7QP2G`g6&VkLB8ccne>^9p1iIcoGVz`JfA}Ge#h{t;{0F4> zG+|Pd1v@fDJlCFYGnl(Y&MauwQ6okE=|VTpIk@8rf1z2;%#j1oH?c@#on15q4>_k0 zn(6j!gM+>3tP%-+*V@&D7_k)I!Rh`)2TiJ^g#DYbNhC(if-Z1$P6{<&8hYzV$U zAJ`JBI*_Sck=gyphI8CcNS!$a6v94hnLqux1D$O)5< z^1EOKN>fQgxcQe5389jN9106`{w)_?gi=l~lb$y6T-jFl_-@{G6|B1?Z=iQZNR(zy zTSD0JaFKZtwKmJgl%a1?k&wMEj?Cg}djxgSocQ9RDe6ow!1|tW-fT1%j4XLCoD5}g zT;fTeGbOdYB@VKpBECPXw;hxnkGA9NO-X8Gy_P?)(R$4~u4XTqQ0>r_e>0ghLOadN<%% zHl3JWtG_^&QLYG1~0@Fvqv^%IAAf1HK8|nqJhKpe;w7P7N<8+N$P+8vM&A#?p zPjj`x>&m6t?ys&!A4*vX*FYV$fdhn*J7t?8i-0jO`$J5FjKt>pQr1I`B(ro-V)4l6 z-v(*P?qeVDm*bhTF~5xAtAi42Z3(Dexq2y(vnj6dZYfafS<%24i@yJsjKPD{?e_s9eF=uPO(^<&Maguy8_u(KtqFB zu-*phdA;7vt`UkbZ5Hz;^pmA#kM{u@)JW`MBEQM`M|CJn)M!tpnqh>aH49P6F8n5B zK++~8vzUJI#$Oqmx(5=`fGvB>dLVRp1ex&bDA90J(EgJ%wqxyD z9H99_CHTuQpD)HP=ypo5PfN#<^DO$Ui{NZKn@UD;lNbs|8tj=SJ)MF3q+a37+mEmV z33D4V`Z`F|RWOkBTGrf&jQPJc6>{azXV0C;wm zW0Zs*a3*Q$;y3&btb4Y&!rRT*tz;IwXJb_sZ;IN<=h%j?+GBkDj~rz3HxR{Yn1MU$ zMR3WQIad5KRqxxT%y+=z{O$gC*VLQO^rRsx-EMe8MeWP_WZ~lJhomUJ|3`Y-wVwCK zbf;YoZ&gBQI{8LrXk)>)FQX5qPm^zoGD?O=vhb2o+hy)(Ebid0Ioq>pY}O+!!BTPz zDw`bXKe?PBt?S}d(6Lj_JT<7NOEmz(n+w$upKe(kExlUp2UDHyBf;e_Xuk8--l`xz z@C2K=Eu}!@6(qNK<6@c6DvP2tL3@h}1O+Y4`t))(mvYS~-we9Sl;8A+;(w+;j2Jyk z`~XD2(76zUhF~TNz0Qp39GptpqS5@ ziQaTyk?@?e!=#GXm9J0@BdahjO_-~OT{T_$(HK53R(DJh#ibm?^oOF7F1uMV2UlbS z0`@?7*}VAby0u~DFX#F44z7cajTNuF@j3zFVDWK7kBsrp;H6x6@TmRQJ4$xNQ}J3j z?ge>7Q)}zyx`@A0uo5;5HrAcDW_))2%7MQAC9XnrA(V+1e;xZoA$hI9+aCna7>cpX z$$EH)n|}NXL3f@xh_6a<9$ciAq4^Pe%ww~-R>7WE!yqk&mW-<(uDTfFzi9KDJk~V2eUuA3 zBjkwOi*1DqJ17%p(6SsX#dt2u?ybaXUZO0;nj39}%Qw%8xhn367E-ZR((Qfl^V`mvT3}wR;w}J8!3!$Ty=pNkptl-acH+Mlv$C|D{tr9Gv zf<@C?N})RqggZ85*(RNmvvY_S73R>(5XT*;vN((Js3V~Rg(7vZ;gAN6h6D=qBM|9V zL*~Z!69tRd-*lQE2B0b+3TVR+mN4l3{baq6S@@9zfbkcn`-p+Yi53&YlIh?nglJ`B zL`v5?=$WmLAAXl;H{&H$&{OqFkg=3h?#5Ox;}cc=tu4@Th!r<3z=ahkDCpcUgXh;Wjm1V;(3#tbson#@tBUxJE?2fy# zVOIfZxzl|)|6Q|;Ah{_*rkg(9|0CkG$GUUvQB>EIlR;nEC} ztnisZdOEivXBpG>baxW(O_EGA6lZSGiD@}$*rsEoe+169x zf2zZNTwZ&k*S$^2Mqy`OKncaxx+4#9hFriecR;mVkiHsvuSwru{OoEYvppeqeO}!F z>d!;Ad9e9NJ_m9FvH3_p&3+96!`42z9G@o#Z{NtzKK4Ek&NxOctzayA<4p9h8s}uj z*!?@;0&)VP665+0kuo55UII@I=ETyreMNTV@^*x9Jrwg$UlZpRN8M8qe?K4hTSV{A z+)GII=f~{OJ+y%}0&~<(ChF%2L`_fys14 zc7&`2-*}8KZza*M-#}ic58AK45VUKB7ahZC7Tx7L%Gy(9-CynNDSx4xYjF*ZHc>#EZ2*L_2zK?E`l`>ipZg^O$E~v`*^I(P#FaFYu>bz>iXqw-30F z7wV(q?V;=bsG0ofgRmHuQ`fLFw!F0m^e5Z;n)~~Uzz;w}@7QHM`3gNlY}fR0ah}lG zX6QW~lP9ka)>YqX^{rXDqj!hI#syW~eysNACsK5-o=7&I$?^BoY1s!_*+XicFX;Pf z-mYI%?I2h^>69A&Ly)&GaBmN!Z_n`88?$2#gD>>EtMw)3gAJn5{AiFJ(%qM1)z+@C zwr*g|&258SocetG37)!p%^O+4jptO3Yfmhv!wy0NS)+pJ-({M29R7vB8wv^t0;s;A@sm@#d^fMLahI~JTXe&sp>)2KXTGaTMA(Y$ zyh_5DaT|*7!Jd5caxvrI1F(hI4MH-RWmLE+9SJz%M80igDn+7K24W*)O50CSh-t$} zMx4V=WzOQv3!`-Vs=j%BJb{%ui&aJAvtVuc3ohBuAHJ0i4W8-J<)>hOC!f>cfMl8S zlHChr1O=Jwn#fnw(wepwio|wng7}&DYy;ERM~al$BPcKOO4wPs^LoQY!9`=5-z3;AsC0_PnRMaHkEfr!|OD(&ME^%6oNO zGl^|uggVD#Gy0u)b7!7C-56H~6H(3Hx+5k;1X>XuvW}6QWw0cvP)@A`F)>1zK~gOw(DFyngUb z*Bgc|Zax3{RLOp*gL`Ep>~1x!TR@k3v(tgQ1~qyXoYMI(uAEjf^Cz~CsdF)o?gwRd zZB21);OGxG&i{p$8{HU;u*YgJy)b%br7z3`_~xej_Hf1pJT7vvU{xFs)P7BQ@2MO^ zw-W@v_=Tuphae#R-v%yH#AXC|7H2YYmL~8TAJmI;GT{a9Y_GRS(wg!SH|1QsiJf5y> zwm4^rUhKg#6>STS@$iVHq+ZsdXtnrLSh3hCZYZH$nv@}_Rhtk+7t^)2TSSr#hSKuK z!t^rB2zC2~>up)2SA>b8GTW_um#HH(t(}Q)ido0s_2jymcBYNOJt&>aUa+u;l#e-U zhLhB>f2YzQ)`a1M>Qe&7mza;Stga-hs^=NEW4{GInF`Mz{`Og$H6YSLezM7r~yB>Q6 zt}^P)!f@5~*-?~|zlUL~Hq4?1S#L+Siw=SGq~Sjj7|a{9x!`zSed`IX$+ePHcNfcP)d1f|e#xtKH9W&5^1ibe z{*kNc?1xjWXqzi_yg~)q)VwXs#wXEK*Id@3Fyq!n#oruPhnRMsu03kK>J&Yvl*-T+ zo{WpsFI`;S`??DTv$wB^9bg~K73MuWGhT3RJ>{*DRV2WJgOeYV-1m#(@A|>>2qocG z!UK35u2!QdZIct(cVZ^CJEf^^q*YY8+&7ox7)G{V6jhry_j+30$SxG|XSrRt1TM29 zX>(&(yj_bs$8?1BO5v;bK0)hM4QOXn$r&^bon?zI@Q z7p(I?#aNN&ai_Q9bwDcjmA$srEaE@jEBa;s>SSXnSCP|BnE}Hh0Lp63&jtTZRkwGW zV)iC!dI}lYc-w2~c+9J?tV=abi0y_A#?(EEW>v579>v*B#j_n(81wEVQBA-YILhv% zWl}6MaPdf$SY16@$EVOaj$hU8b1HU=Flt?qE5lBgD)-cr?H(PvOvSr|n^l%H+-Eix zl$RzQ66|7U$-W&!JFBQodhz?A%~-piX*w2vhWI@*E6?S?s}d8q24v@uEy{dfS{8kx zG*yaB*fcFd8+#OF=g=)q=Otc!s;2WnI#HhSxV#Z+@D9tS?m%>-Idx?3lKz@v%rrfu zPJCkIHEO&a4>7bB3buihqMP~80Cvw76S|KG)eQ+~@t93 z%y>Pm%TDN(^I{qQQB$mqbLBgO>iotmFD26F=G-ZCQ~qshU8reQozOd;&4Hcx(H+W9 z@DN(-hHB5wvjW;^Jee8Ee{eZNxmOLWp&5_+Q6$vc!i=CvcT7A?VT{3RgyjV!TuiRcEoo&nN6*hqydA0Q zcqak(P0r+q9d>^uJ#3L+E-+7wA8yl2izL^ruV3s_i`)mfZBef;dlODo|MB-h3hramZJ`qCB}Z2RMnZ*g)MoGuQH+WT*|C zfkG0&YZESS;gZ~jMKKZ0%g3P~Lqe{$!U@>x6kG$ygP#YKM?P`i_CXK0UNH~2E!gg& zU2Fx{_gSXX7~O}^IWxsI@QRGnF~3?*pw2vsxAU9)Wjzk|!v4xjN^|g|AYU*J12ngAf-0ONPS03NVQqBXld zz&xxof;DJt;5E=vHTkwa78@$Z^mCy z;0_>)tMK%ffa7ErvF7slZ2)7BBmtu%{$vnG?7cwRq-~aciGD}k5qlQEH3(H8HAv!~ zIRtTE8YLt*jUb0Mjuw+Jx$>uhG*G(qdm;g;e_l-j;4E($`$N4BOh9{20%FnkM(A!8 z0%Ealq53O%?;-+rk6vj4Q1_7f$WX@aS0RtQXcl{A@K=l3Aa{Q6W)UR!E_|2B9C(K? zj&=MI4Wj4FpAOIt$qN_$=jLP5kJ>YIj|%LQp2eW%!>!V=LBgNq(|iT3gFe# zZ^c)v->T0Q!WL*3^qT>oN9uMK`v*vToev#+iT9@J(C_nJF0R`r*{y89cWrIg zJrdRT)JEqn;;!b0q`Py6{{s{v=(m=p zrG=&)XQrf?)Vn*Hw5bE5N-8;W$YM7UXr-|pr*Dzcy{W@^ERY;5rll{{nj0FWm#^*RDxh%WiATVI|%~ zDq~*TxzQz?2XY27j=L>78XKQ|J++<~3y4^%GCmvTUjJ`MHHIj*LkgM(@7v+iH%@r>)Hw#&-wwkEgAV?LaT@=g0QO$Oh{t zc9Oe}^s&Zs9I|^$oCb>a?W`TCbHa#S#A;$$QZ3!WdZ};LrrhX3_3NEXhIB;P>$53A zr8{n_o$aNal@-?QR`U;(?c2-GjaCDl%|Jf2rugeq@9LxP#dDH(*7vLS_CdJWV)NzP zy^rbjAGMmFQjRW~31b%o8DmS>F2u$5texDIN#=CXDvMR%PeDGlZD zA?E-%6-Ufjza4TEcE_o&| zD_(E99xsl!`{Fp)_W~vN7di1T$t1Ml5zQEUlHq2FZ$!gcU)t;VGLcOlwuTzxn27NiCr<2?PqLnk zKY=|Wf7smOUXRLTr|B~uR8xJj2Uj#4ib`w2R33ck@xC{rP+Mvu z8rUffjka7&pQX&lT_QFg##%Rdw8tT~w!Pk1Gv@ww7&4FF8zL09>We?4cHVAn(&;V9 ze;*wxVBtC^k8H`d?7?p!R5MsZqrWW;CbZbsLEoxq>alP+<1`NPeBFBT{{gdsM~wXBYP@eui-q2Ho6|xo$Q|l&{9yegRENan<4HVQD0^=BHE`ev^7ri+%;e z5Xc|Dsgq60oida96-H!qZ+mPq_;2HV{%jpB07u;DPdmjB>=C=5g#jEuDfgV!1rCpY(;iprmcd?PcQ`w^9(U zAB#62j-_SaVDt^J!Sycb6j1xtaknNXrA(|v_O$_BZirOW!2BbIh!*oOgb*jmIC*6c zo9R4YLUiJ{dDZYtX|9$J#CT8*=JIhC6ROX=7Hw4mGRl7EU#B^JQ-f#`83J@s+ujDK zw6p&>C``ITy6mR2U(Tqv()$Ec#X>X_EIp10GwTQ5mIrXml7MA(GW~QBARSNr79R!zqPyCT45tQCtvJ6XTDQXB z>1)mUd0HZ*5<70i1M&gft5Gl05rNTO_}f2NgHc()Aa(LlPykN9xQWna&5L_kh^C9e z-mY>VAH#!bM0iDD~k1E*94?-ENnO4FbF!$b5qK_sCY! zVX0JRa11haU`9xCc#(iTF+e0$$%C~IR2wXlOLZuoG$JnhB#~UC!X$7$1{jfdQZrta)e9Q|HJ}`tC!x1ed|4aQKyNsiKXH6ilh5;hUfl#~msfX{@Nz)x94#6ge1-9@C`icUj9b_0x7 z!?uAU0ln^I$b;}9yM93HW4Wj+9y-cusNdCE+9P#zH%o`|1+v}L)$30pRxeC=P_8c` zwt3m;)3XR%z9{_3h|V-ffZM#nDkibRUdnMqRm#oc7+7%XM!eG4-^W8Be$g|Y9{{j{ zC}7|uC_9Pa6Ih5MQip1QtoGPkMI4B~V~ZeOWe!nM8WdSPOkSQE8dSkcoVJBHw_MIm-XWbvj#hA0deZuxI#2;lC}Bm<%mGxy{!y4N zCGCv1y9&aA_OQ)M!|{pM1v8X#{|Z&eSi!HI#p>&;osn^o;ijN4+@K-$z$pJXEtV-q#d)Gm?(wQutw=LAf^=~LxD7CZYg89Pk@M$8N}(DW5%Awt^(hE-ZS}e40l?^j zE8gZxa(fEQajVATD4+rSq(!%cx&TgqRnw@I z`0h5fNb2C#!W_eP*$qdAz`^{ns>BhEg+qUhbV%xSVsMxmi z#kOtRsU#KKPIkI?ANJMPI_ra8e__634v+f@f&Mi+?wSpUPi0HGP3yQ5OYR?Eu}D!X zsmr~$Sx@a;BWh>O`pO%2d1s^gFZ_IXKTCDoQYRID-V4(6t2h^YvnscrtuT$Go`>Il zVEq6ku+(%bb|53H4ob2Ph+qppG7kQ_BjuquR+ZUYOv8T;5}&b6*scmJdVfk-+#B`X zlA@rEdrqhHHrqkl!0SQX2}CU+ZuMWGRr0j;Xjf~WC*LQtJPS7ZcpiD$iuV30Pp#(+ zr<~)JRmXr=d&#^ZV1#%^cAAl&u)E1QH|>oZ1Ev?eNb^F5wZA=l2 zL)MT`#nR_Y7w_yElfPOcd89Jmv9=(^F?_UDAEadB8i=tAJq5%^)tG${R3K)V37iK? zN7!7Vy<+xx0s+QFmM|I7MA+See$j?(Gub{Rh;9!AZEU3#hLs-xajd`l)gp65nvBAN zzCRUr6G7E5UI+^X+txLtvwHA%w$x?hSJx`=-w~?Mv zQ#uunCkc?`{N9xoCMC@!DyL=dpp1SFVU>@KNPXWt$o-O|E6c8_aF6J=%A0&}1~fEICV!Pqxi> zDOoVTg%Xa(O!)oIPBcj>H=b3})7*w?n0+8^Pz>v@pYNsU>4rx$AYj*ljTZrn)cFO^ zEw_%ajdmVEy;@JT9IU2_QG?Jg!mcbQpXBD8g6R&nsb*6uJ!LH&Dy=V)*P(*b&RZ8) z>c46##5Q#Y%C$s7GqQ`3v{nBK=&*o*$a`yx^)skCMrJz4RFxZx25J4S4%p)xCNisXyypsu#qik^>zo5k(>-eN0vm9pmSiuHu;p{^BjyFC|S)|btMH{#6(sP zoV@S-iJq#ciJIhc&W(4v;0erPQI6e_*jkYD$(6h^+%^8C2ak&D_|4Ggk4)?BwUA^)c&7cn1oOXLBc}iO*wtR_0^LmnXoWB%#^#Xd7VabXu(zd|! zdsZF>RMg&Rqpj_``x5wEM#`>XL(Z6z29dXTB(w?j^{45MapD%Z$jIxcReGRV;hO2| zxe^(e20Z(GSz#ls4ngzfnD^sjv`dFCkBlRua8hqjb8;9i9>Y!ow>2Sqs#R9CCJ7*< zHRMYClU;sHcDTaXUe`j;lKHs=H}|3Ct*_>bEN9tCcri^b&2(NsYwXb5UMoa=pl7_$ zZ;nqn|CTRGY|BG78?BZV5*uXpgs5zUubLW=i{O$|Ic%<6Ml4m7(2c21w`hY^n$m!9 zANk6Xo5igjxjDs0V{p2~!+Kx{VM@&b_av#{l?cr6!-}Dh9MWS^bKG8>4F=-D%qHk@ zs1JgCInZHr>Z-ZIDl zc6&}>wpB4Jmb{**W%ZWVgoesV3pJq}j%-8$2H2pFLV)&`Yaryp8M^ zi#UaFw)LqdSc*%%sxb7ICwPeiBtWA3AQz2{v%j=1Sr4(m+9Ci|?{Wy))v@gp1uEyfah~ zz-Is|wUc)stc=ojK<{=DXngW+?0qBUDezqFXl4(&!CP=Pu?9V<)g&Is7;&M_a&I|DnUr9rMYl+Ta0sw3Qj&$3 zfJiSai!Q>P`mFr3(v!H27mVy=+ePV8>RpH=^uoJo$K8G^3XXl(ZW--Owngs^s&Y1Y z%*%*cW$#*sZzVC=U-U9EpEb0ixxcDp?$mHq6hURy#B5V=pN=&8rowgFXkkjQc;T7qeicF$cuYah(|M3H5@%i&AwSk7SSTQ?G)mhlSqcj*_QJAFO{q&|fjpz?2 zhHe&7+fb@Z`PH`Uk=DE)=t#UQ+oU}#HS}Hkc4IH^{>S9acdi$(usw#RpVPtb_z-|t zC~BU{=9c@ZYdxSp5FwN#Z9G5sR3PBJhg0*nu=nWK=y9_MjEq?KY0&U+ z(E?wUIr(1lgNvc{!50z54}mr#g53zVi(+}R$DFNs5?AW1%Pm|8AC8v4n-eg9+5=#- z{`z$aFdFsD4v)9&eXZ6@gq(dXf;d|+<*T+g!KQHKv;9^z~+x6&} zQLi|nlt}&i6`uY<-vvPoTcJx|aQ;8P?GK&PH;Zhq_)%53X7`kEWPmlLl13MR@r`umo=qa8~L z_jr08lRmjcd-gONdJ>0=SVMdJ`s;@7gO}vHC@)rURofcuP4I~~*7ktWoN2Z?CEX)O z+9q+Gja;i2TuP5Dse>e7Ln?dcP2?QxW$7Cnv}IfPr$7Dlzwb|*gBdeW!GqDs8FKur z=}O7#8{1nm#}fyVjR62@37Qw#d5JiQd3m6TpO8bl#2b4RYpVAXRaMdQ1q)If`I{pz zgx0{cYP6Cn=K3<``rgdRv#FVB*-3~8PUNY{Xl4{Csl@|gnk-Sl@`lzfcS((^szNOw zK%2h!t3QHFssB@C*&cT^1yir8nS{DNr`S$KQEil1$4h7QDhlU+X)M?OV*?Kofb$6Z zH!_LuZvG2qp6`M74f?aEkWn0&=ptkD>f+*tgcOR(aQJX4!(}G>9ec(gNTYJu%B^*y zTH#mMPGG?1+dWV&spm#@^$LOSm4cK&DRbEBcgvCiw|GO;;vyuX&ZVAE<8pcRK;tNv zJbObbYj?^Xv=h{&I8cDT9JEW|Gd8w>0`u`~W>gI*tcCZ6mirJm1NXg}eZSV(T@yYv zSq^Dfi}oiZi|aGj@VqRavsMGxQ;z=^0DRR+nC%d9Z}6rkxEuEmv9E8X^2OT10e6m! ztJ}n}(|}YmDX~c)K9uH8kR+`f}YTZ{L8`EA{8l>^<`?y4d& zP8j3?MIV&A>Pxr3^}D9T9?@N(10X58JRFp^G3Rd?t$9byY$H}XjlX86q$13h+=1P$ zHVEl5*@3aQ-tofKd6UoG#|IWc8EuZ5cnGs^i67mWT|9`hfD3;l3cNU^Zf7i&(J6tg zjOwlv0)3TX`Mr}UDnEmgg2uKd&+v3iV45RlbKc?L4yi<5Bsbl47<>{dr7yo~5}E8$ z>82|COYRG8XE&YksFM1z%&vBS|A(9Uq=_!-;G8(d4w^;|CJ=~UMN5vhV(xtYUhco|;{NIt~HZD@&!tb(h*UOdSQ zW=+JT3yx-@2uId0=Kg`8Di0Kr;f@>eyvUfwW<#LZh0n1@jyY06SeXZtwL9K0X&RYb z?s`MCQgX$OEDyy!Oo*-;KatSx+B|+u0pV*NEmj<1#;$f{NNbg4=$sFA*(jqo>)ECV ztK-!i2648r|Fy`IJQVo)6-o)cs| zFVmKK{8>GU#@8~b-PF+|e_^;K&ouKoJL-b&l^Yd&lFGN31Kw`TYQeEMod0cI`q%XG0uB zT1HIVCs%4%9h{s$Nk%9ep6*ztY!XwbonfM3KHo8TcMLuq(HH}vW-A<#VK9>hn~x#m zVa(GX;YgE_@im_qAls0rtZ7NxpBK{=se5+ES(x&rzxa4se!!)1R~N>+CUeqyK~xtw znfD%TLRcuxHUcNfZRC%KJ}epM+aV*(F)^Ck%o6y0wM&2BI;0tJn6$-jq&V@!q`AQ~ zE+d;{4&f5h@r&qv4*d^DJfusUblcP#9N!W=#+%TeNyPk99P}WKWhddrP~@;CSp9w% z2*%jcGJw`l6UGv?J8~npS)}Q`&ZB?vu6)YAd_-qbhzmJ<+d z_X#~@9Da%&heDM{5@Ba9)%9dbvz(K9Qny`J6%1fRt*D|7Y4Up0wwh%Dyzo8d%l8K~ zh3qA28x=jT3gi{Dn6ZoZzNIrtQSfO>3V>}Gezo~rZyjp4=q8-`6@JYV4(R#(1C~XU zMJk5Oh&b(!IcDB3VJ+URD5eL1_enuu$gnkrv=}Hz$dBKMt?kg8n`?G}RQxx>l?W+L zIkzaUs@vkMI%OI_Nz3l$oDbVbRCtr3XoVqb82Rr?nGriRLk3a!V;-1W%2YV*AdL)F z7NX+LM9EQUYWeWGoU05xJOmUQ({m-C!wWWB9(Da*y#`XXyTaqptk?ztoj`ZvQiN z<%0i{x^jW`ME8Kkl)GJ@sEsgb zS6g_?LdY?~yx9OJm-WgWGYJLD}<=mM-%SfRNhUXrE-9ARzplTep|1P z3yWQ5662r-`r4dx8Exyi!dLZ_X?j_L1x8EC!bZwWOziR!Kp_6=wtVM7HSVCwnnRDU zc~AcG=CsiJWFkzKdk}fOSjZ6aD05pk&YF{-Pw>Det305P5}R_4c|1o1nVCw0bRNIl z6-wG!rVtE{ZUvLXwb$g0oPj|D3BJmv zq>qON&2q@$FNFs!hAS?`?I`7m!~O}cgb+H59~M|-FP8$CG8DL(jfM0Ha-<_gybwH- z{P0!aEv7}@&k}NQ21Q0mqd!r4Dcv6);BXpjqd^F{AMhx)5f|hc55t2L7mVVZlLSND zJ5=eA8Oq67L%#l`Q{$2@UpbFpXBaK|hxdy}{5Qy1H{c2Qd1otTDorS%td5={cXrvu z?0lELA*S{F*bKR4V@>CI{@7Zwg*he>*0Q?(&8y8mvV~x#iU#2CQJSnWE~)c7d$t#n z`~q_yt#IkZ+}hYG{535_n4Ln+vCjL3P0P_nJRDbh;NG|>nq>qmoNOV6<`*N&BLeZi zh`WmLkvcFu{}JFH?kKQCNDSElw}Pr4Pccb~0QOvnqU$?Y&FBQvXhFSf0875Gj=7Cs$zn2JDE?n{AI$L* zj1gUCF9GM_uq8l17=k~iPnz2fn;b}h!#FN`4Zw72$+^Iit=3jG`&?!iwL!M zpQ_aIDk9&m-d>N<%ylW{XJ%u5l$rD<3&v4Od<2wag(__i&7anpky^XP{;ZqH4N6$7 zO3*tLtIduKNO0N>6!n_i*6an|2CdQB?9|+V_WJ|mSiWdC0n(IVNV6Tf9n`1y z$2Pbb4Qw#!Ouk)$cOFy{aMcUf&h1@uodKJ~)esYI0&{rObh8`Jha$wpf4s)JT;P-; z_>i+FNjHTTUg4!74QSB@=lKp)l82NewLr(gFU!25xr&!fun^Q=e2$518X zhP1R;(s*}o$i{FvEOynUn`sd}=aOn& z;spT3unf;J5?R6o4$016c3f;VA6V*(cW4efeRe^9VOHCu>Ja2AHfT%Zv$iyhu#* zECUze7Y8)ic;s@03QyN5Gn&B`T2(h@}+ekFBpb4H$Hu!v|_Q zZEwAZ5PKN{^Z4*}-#c`|=+kSLYyy|eHw?0q5;<=ne9zTq{(f(UYb{;Xv01XqgH;fhApLv{E^ue4I@4g40 ze{Os1oGh$$FXY~~fL;gKU-8eON_ou*%T#BMrd~sTA7xJ&n5%iQ&tQ*g`7+awZlU_g z(B9>db*kwsTccZ0H&nYV*>VQo6V~Wv!5iwjIydx2^k9IHE20k|+==m(uehfmC zV2wb&DO?wdXt^ql+*5`q!(dAX;QckEhJ^KCKXmVecOLCCg(^Z-q9b)UsSf;Fd664i zXsSwsRsJQZYhIK}NX*A9;PLl22|3GJg+hTs$RHHqsoe3U2NLS10VqqVL=Ld1wo1gw z9)C4%(%%xYog0IFQi=^AAk>{7*3FN<`jL52Tzqf=g#i`&EgTq=7GZ55Ww{T`X1H(U zYs;9=-yX4;S)zd6X%e3Hx%$IM=Gu)ta4o?tL{yVK&z|-8k&OD>zfe_GMpLJ@As45A z9|V6=kMOU&sHm@ODo(bx)lmJ!6<5XiA_KQaR4GxjcUpLRnwV&TheB?m#eyS3rRj1$ z)tsw<|Lp|jtu(jz6uqa!W*MTdre80tgb2#xY*eQA1SZ=IT0f_tKjWJnyT6-aeV>Sh(+2jo<|5jZ8N0J z8-W10lNF3%NR4Hitcal?JeDfCU4Np(-ZL9;BZH)V7vf%d#d9?Fhjq?2WgWhnX5$qy z#^7FLIe$W#m9xthl(T&%8x^;n!xgD?F2!|j8G&?_X_L^iglAVe)E)Z#GG0==(=4x1 z)Je93WU>K?koXsq6L!1;k;e@Yu%zC_4W0%fg2<@|0qU@3x=HL)K0Eq*DfoM3dU`jK z1u$-Vm`EXt+lqumW23vmho!-LAn7qJOUv{laRb=`1PT6~-JIKnW5Xr2N_evwVx|`a zR1u=CAsLfh+;1x%xpWjN(M|7|IF*#FTrj8kEjukwbobdHg`|ZhVP`@X$55tcse}zzZQkLa+k)pO7@YvWQY+J7IU7lV z*zA|^eopl#I(r__Ku6u?q$cZAb%uXysj$^KFJes&ybs1}mf92_icJAxO|7MTAvd14 z5sm77Qhe#xH#W0|qn(9U$#QLD>)FX~SLpG{f<4#Nm=g9pgtPyWpM*3=0GGs^xycm- zPBy8g1=(q_spQQM_xD`mhtipo(p1MdMcL2WjC1+Cr%RQ_n9Eh&?p^v03z1<`XroV4p62crJ+n!1KU!|kIH|x>65j3o0hx!`O|M3_AVt&7 zsTn&!u&yud!-jlfa9A<9WX*`JEeN7g<;L4&j?ryMV#>=@v*Ki04#uoTKNfBpr zsLFEdb)vWNLL4y(b@pVDfG4ba<$r((-N+)GT}fbyF@r8D)kp2BA`AtYEtxO(8c{K& zX#QdP+U0Cri1@+N4{=a#?9%MPT6w!~Lfd1VcBB*$DDx>dqw=6B)I z7JuuO5o(Pd|A|R)o~5V9g`yLjV1f4z_n7s6QB$Nc4x9B!T$V7gj`P~gZhLrqAqlP= zBPWk}<(&J_Y_7Z^LE>0Js;2p4BNi%Ay+hB5RMq;-S2+uLl46NEKrDWNq(7YlX@Z%d zK`@SaSvhmg6EUoAFP5x|V5YNZLnuDKA_(p(qP1Jo_cntXg*5$vDOB5Km0ji^?*K2Mv&a1dL0Stw zRl~%lek0_O)?I^HO(>x8f+mF;iab!nQB<1$1*cxtJoSZ9akJzsEB?9fkf z8l3&%s+Jwtm5@yv-+4YAsa_(gyHzbY_6H3xYCc>Y=+ZZ)yH?B35g6{9uwtV8B902D%!$yRjhJ6ljM0c?!t1KKcViF>`0RaL3z}nmt>+J`akh;Nm>9H$hK13{J z(bS+*Bg$7(0`t#C44lq!sVb}_F7*rEpA@h$LtBxUY-<%P=2201INL4dw$D3d-pea3tPj_} z*qS#Nm<*QWaNwUoK?P7Iu&48(bJI@ zCKy5koV5a5+-3fa8wC1J?bF07`gy#XcpBpE=Os1NuTsRZ^N>2Wew=Hf{#B}jYHxnx z9A*K4^n6wgv-Z@S)>NPxCYpV$8YOrXhHXpxnE7K7;8((m8{lKV3gzoWh#fQ=%x>Li zqq+*ee+U%~Hdrio2t{4auS!aqX<$kJ-R8ZKTVw)&JFYk4g&*olQKX@~l|6SZ6)hMp zc<3l=MEpC_v$$mmrAOK{^bx(U%L_p2F|b~Iqpcm{qv-@efHS)?B!2T6X$vWo6!s~w zu6b*6kSi)EFOKmKU1+%~TB}ukw1toJ@o?>=yRpz9!t7KFVb8r4*TEC5x@p$VnP%fT zEsu!J&g8h;c29UY({m7u;{ZipSYN+AwdO8Mdtf@kFBBGKv*0u5vx*3mv|8x`SDOf$ zRxjWTpB&njHpw!dPkI|wsxk6Zudp6u` z3l9%wkgZ4x>lT|}wHfg^kf5LylCrws&1+D}71aAf17eU=f=wu^4?>#dc$X@&{yi=p zf8N~leENnXH6$EpkGW55j_yxZ)*v*z4V-N3?}#wqgxka&uz|$VS(ItzaQ-rY%g0p8 zHVcv-g=axwp1Mbaa~16GhmQ@xK7IMZds*c|W3x27W918*>eG=8b&lMQcq5*I3ckss zULQ`SbH6#tjOP`{0S-;l40M6J2Cd_)wvi${ z6N8^fWaFPF4J$#dtMiX?xjqT+O424OEdqPSn^z2ODK6jvr*Q@mamKt<94LfnnWaA7 z^Z}M6`m4+`#LDikqAs6A;m6S62-fmE*7)(TaxP^&BNa#1QA|E*PU)&^!F~?q&H*Bu zoYDeRE$5eIvJy|PQ4<~9fhGe(&|AO+ulwD#Pk*}+DuyX7CP6dYG$F~rMx+DFweip; zut)sjHBI;#?5((Gd;5}coDkHbS68R~ z@vJ^y>P~F?OC#|=6(!G+I35_W{fXIEwt;P(+&OAAYy!%>c5hCXEyk1U;_Ik3nZVg< z@(_k$xycu^MeUrVpKhB*7P#7e-@$jj!76QP>HLR=$?;>Dg`hvJ5HMcP>}plLA0LG# z-}^*9HkZdt=iklcTUkqT66HWDTgzS}FPb&pN60{8OJT>dXj_Pw+S1O?&Hw!G=*TGq z=}sBRdkj&{lg=Q4fdAhkIo6vzUSR>A56CZUsDI!lu=o^7~zfUebxEBlw+t`#cTlkS>9Lo}#F4pX@zW%sk0T~{v;3}Ojqx;{eRwDByZ^k@*mP|}SUK@@w=FCd znOAgIwH4uKC}gOns-!L-Nr94jS@lS0hDXk%fxw|GyzMPG-Y3%i6Hd_T1)6XPWBcz{ z|G)FqflvQO7Q*lFKeG_Z5^Nf>FG(0zUzHCT~F(XQ@oKTmXGYyy=-4$FmEdUeFsorU!T9l&T= zzcR5{8nA)u8ph(#;aeHyrpLA|G+{80an&ahpee_-mJl|(@XD(9hoTD=?!Z0fWNLy` zG21H3W)peTGKHEKd!b$1;u^tE{KUNTMpLzd^oaf(TvS0I_rIq0f5+7RqwL^^=*(IK zS_%Y&O!<=?Ximp%ilGq(4FABEc%J?4w?8(8Tm|1fdkR|UljdJSVdek?yJ3Ak(^g(F>>p%^@fHyQ-F0cevKPsW-M^uwf0!iwMVif zNLbbxz?Y7L%SO_ihZ|&ad_<1GQb^P0w6E`waf*8QGj{yFm_&x>U0 zYlA#T>`(R4?a&oKy8`~=XCT!ibsPxq9MJCr55y*#Vle!3g9q%6c(DQLH{c(X-KZa= z!hDNCAuq(6X(d$|bEgTqLEq<}oOgGbiJ_dCPY(9Kxx7v-}lt22cjXM?9I>9{qW`8+BeXc z|Bq&tKSOxfhjU*pNBKds)%F(wPR@6SXD7Q&PcFS#`uaUt4XPFG^T%ec8U z`WTZ(3{g+DUA_v7^Z9$17>}?qQrlXWLOn&+n4L(tHvJj@&y11sikqMYX-j9NCc(g` zoCP849LrRmhJaP1Q15Tg9P%D8dEev5e4QHHjlX&|=S1*)fT3YIwYeUm#OTe z5VCm%pZ31@*}3yU_8ip+;Mv&RZirfi4zqLdHdulifxQMCc7B0%>7d8oXYR_96>m)( z+v3Y-f<&dXqc4#AivUG}LAI{RN;Ea_G<0k>nb1-XboPtw zWW0?+g**F22vY%9CAiT8hSAkNrv&a^D#pX?ZvTwA^+w<7^7u{+>x5ax1!T;Y6_V_J zqiQX9^xWqZ9ZdQl603=pn&oFwGw^=Q{+Zupr>vaZ-dmR2;$I~<4%L5qW0yg71|O9MFjvA|K^(l*usz8SXWi37^niIU0o z{>C2kh?i$OSV`atSacJ8!Lke;Q1Q=z(UCDW8e~rKaX;t?vh7G4f#lF(X002`Nrsea z-4~5CUGyWzF+PCIfXd1CSAmqmAMhBi3Z->LQEt$i`-bKlA3)ls0^95T+e-yZ7Y*uu&vdqG8UtEa!(FFi+3$Pe})E6PuYjlUk=Df^%+2Xp&4 zWo`(DyfqsrT^xR!bLKh7-`A77SXs7vzkcLqa~f40pYu9*mn?O_HZ#0y8MY**L3>xo zO&er#j*>}?ERfT=T){qM0iOE5&p5{$5&4?AOIOsi)#>e~E3DfJ*EY6W)a-M*-1i00 zn$yS`(Ncb8c+{a(2Hjvr$SPhRk^B*8S!y3=mdA!lcETm0Y%b)EfDAS9*x%tL&? z{>%~ai#N{J+lI8v`cJqCr_yV^6FNN0#AQXCHfC8*go<^w?Xf?(Z5Xd+pAuYtZ zEGPqjiV{^{{~LS%8+-p7d;c4I|4*^^KdSbbLH-ALy8s9Xyyz!VtIht*0?^$3oAhWy zI4=9xGef{2NraMw&^g->h}#@1@!r{e=;|xi#BFt7YAHj+oc2Ar6xf{dWl)b_&!7FS zU%UPFkwuIXi;*Le+`X*r8^5pH<)Jgh#_I{Y<9&aGdUK$)gIS`0 z)i4YKPk}ntl-(JD$vvx$Cq0%wfPh`h+ID0QW%4UtC zKwkX3hKY}fQW6S}`T0K_I?16d<3pP^yA5$ll%9Q@eMt>QF>@|DTd>wpJ{$S(lGYUY z;?MSG?=cyt(Vr443187K$h>kl9Y^_}TMDmp#+a~ry;dZ@Ig-T+3NnE5{+0f|?DxMB zmV{)?NdU2@ER_96#Kxk%J`EYxHzKXCL|`p{3y_)I7W)|UT)vU#b^Aus*V(_gsOOnv zD4z&f(gG%8DGF&C!2Nqpw>a%)o}g&kpQms_cBvFcuHp7P_-r0O$P9Lio)vgVtnP)G zR>%>WQD(C??!sUbS(sv7Bxs8&uWp&zTcVD>^qe4X+t_~o0dJ>d;4_L$6$eOfoJ7CfvU993Kt;OQtls8Ny&eN3IdhHRZc*WB+A5tB4KFy zk)8eq4UIdsoQgEmT*wpd4=DaY6_H{;ALTiiUXvD5BS~yL&)9az~P|j=ko!IF;r9`!#k*npYfh#_ZI74DgYY#^>1r0Pcy?6KDjR z{{50}hYi8Mz7p8Ru*FZj^w?H3&P)GN(KMgki^U?vr8O|A!`nTXHzLD`uK*o*`(Sd9 zG!HT6`^B+5L~#Ts9e4w`*@DVXqJhwMN8Ue${D>K+Vl82W&@f{hyQ>I3G7E;p-&cl< zYf^z8d;F+`Z1coNKm>IZ2*Fpt7$PK48r-h1?k(dWe0aGkjfGT+!U-eM2-FSH)PqJs z^tPifVkc$Ky5FtevY+J$WP{s>QRr|1)KyJ^NI>RdQnE~aw6$( zt9I>DGc5=@m`h8>bH*FT;8(b98vV=`z*=TuswvAZZ^EtjtNb5Xtpo31YMZJnEf6$V z9LD$>Rx@$PZWvfJxl-|=OL6HaH(bql2Ect`%|fEhB+t0mXJ);ZTy`?I4n!4K=%IJ4 zLLCe2PV!vw9cKNhWo>T zt&vo)&A-x~n#*4QIbEY`K$?JERL| zP;cbAZjKblU;Og2WpII(S%b64T0(#%#j{*;{(-d7e2QN>>n;d57ZKicj;rwlpRHZEIi zbI(1pGB|IA$s*fE3y_GS(lBxhMwuMMpr{K?R@8C=u4p>#F6T+LiP;o~umKs0aD#F& zrn0GY=gtItF7;iV8)@#pXb)StN1ZYiDz_ao=>_;^zg&kpuet0HJ~qem{w%sfTx7@Z8a&aAPipmf$YUfT6)PyWdFz(T4KH0v55&e1S1K;Ff|{_>5kJXjr3$^iz&xyOHHc2 zwNS$fgcss_$_4y(MT5-DSM8>G*l4ak`s$&`GufT2dv(A#ZV7LSbSa9T!`rE7RL~3R z!`k3_Z10EhC`V|W$x=RvvlWirc_Ss#_;jug3_->d6|<{ge`3#BdzaytO@bc6>5N-s zNoxo{$5;W>=K+f1Z3$GvL4Kh3_WE)FFrVExWN=~<_QNM>G}Y8rH%||)YI5lcIZ&Z~ zhCa10iprM}NXAP0H?b~<6`1KNDNC7I*vQ$lDSOD9IrEz?x=nHQ z@2!EE7BK@X*dj>`sc z*XPu2+ezn9=z=RKJYh^ID9*T~QOjvP<2+_EhRAa982cNp2v9c!QtVLo%{5s9un z%a2o2#T>sPY!o}awfCSsDt;x~*u#THs|?BQ9NU`!FF7sG@mj0KrUT%HR%2Ki2e@0L znnwDq8}agKuHmd*td6Y5zEs z-r-TBr+(TJUZWD{7|0S?ClGELfYw6A-D){M!*#JLiPIlK_2&2fR2XD2QJR+h%8sbU z+$H5%xK)GZ$OrTrP#1jH-);xhm_r2DbjVAa$>(bQt4)wq$Hbi^Dah5c<2SnW7>$FD8JCq0U2B+r3g(_cbVAsUp>t!l=8G4K; zXf?219gp~Bbr+n1d`o9o7MY1eyY92*rMU&;e7aObx^auUsvBlc(?4~)qPN||J6V}& z+8b+hQ>-d;sn*N-lIRi6pdt$4oZy_JPE{g}Fbnfp3>?l@Nc^-+p zrD9&SgKXqu&aT4eIGQ-(u7@F$}Q4pc7U8dVV&ds`e+VpprQT8!$&I`E#J?{)m>}FbG{4)RzRq zdbJ(9>d%!MIYAu@kuVWh3PkZ39QM+x_p-tb)p#v!+_`f}G`>ch<^lrY`E8PDbDje^ zu!TPmMUj7PG@x|CcEfx5~0s$B@T#(JEfAX ztdPmi;_=H0l35KHuX{Kcqn=Q`6c#1&X1q4u<-caK&b<1hlp35F&n#_yt{FjYSPJnY zcl)yFW;2K3PEr|-u`%3W(I8~wGW9WihMSHh03)`KZ*vsenMEFBWbsQp#qHU=DB;V;gbDl*DnoDun$^&; zIOA9L(Qh3j0x~oVZ2ZJR71yHl^?1F}Z^*5OS}hl=Xff9Y4D`eeHs}adXv_ket1&U4Oa2)gYwAcsASwvY#97 z_kYaZdqdO6<6}d^tO(k+fxCT~EeisH)#!0@$QcpK$-wmFVn!YI30eg=;%jf~m?nE9 zAJVY+c?$1%*Q<{<4);%y=b^Z}B-@->J8kg^9*M3J~3T9C9 zG1lzCI$KcHb-+y_rdQeHX<55u(PRUX(>sGhX8zrp3^m@*@c~Qu{n%uF$X1{fI}$j< zA>-*W8C{qo?o2Ndx(#j+ok-I49Pj}vR64LZ ziO}~=7n>k1#k3fY5BD5LHu zyb(EE0xAmXcajwoWKj*B&_rFRnr{-7Gl+wj*A`6HEYMo;-#g?DGF9DFqHSh{R4rjR7n`9 zFzvvAe_y|G%AL|z7y(n|X+yoQPU8tS|RRsjrR0|V3-(ARCnWDUKWnOzkYWUP# zeXlb2q>T3U@?259vv+*^Pa~e0a1*Pz&6MdXZNe(;Jo8i?BVX-F+*Nww8IN5)Uq=(i z**8|&7XLrKzB(?7{%c!ALTQzjF6jozMLMKGq)R|@73pq}MnD9F6D1F=I1AxTMIT03z7*J3 zr~TrJ-AJqGTB!wMQJIZct{?f())Utuo!nDe8ZpukP%va5t&yVj?WdodrTRBGg1KV< z#o2+$a9Mgpf9JzW9>i9f1|6XTTMk@q!1l;HIX@CVoPcG`zsnUJ8ZKQ05lqVdVi~il zUHkIcmuEl8do>`s)n2Bf5-*r@9S(cTN*EdWeW&QzGerrSw{zsWtwmw9zVU41FP&HU z#U#3*BBP}SW^|(n#aY3vkT%K}nGR3X1xl}Za|m@GJF2a=KEUpJ?y+_+yw&ySU{0mL z+oF73C@o>_UVkW7fp;OjXI!?e=Wjw4c;?&u->)f_z7Bpfm2f>OW%9G?+1PVmd)p#F zREGT`E(iXFe%OGzH)NleA6F3flPz&npNkMBDT$Qi^6xeTo}S^)@A8amnHf%mCyw6b z^}i$=UTYt9R`?w(i!vZgu}vPf~G7_~{A%Hyk^I{HxYV`&EZT z(#BuVfzl?i;j2l|RMr-v)cJF8v0qVXqM$zhO7DEv$wAZOr!vEeFP`j>BOKoCxaVYD z4KLTb9;f71vN9PSbyIwg+aGaXs{MEsl{q6=q|RjWmT~ombM=f*4F-Y0qoIacU7C7V z9^#6iFqR%SEsibqVzyKKT6dfRsniYLJ`b^i-YZI{p?z#dr|6zNi)OuVVFK+dy`OED zzhRDx<H7Y4UM>&XuYs8|>MI`68WR?`=G7-`T@j zo8~8A`4)XuOw>-#$DNTr9(DH)RKamyeu-3#tWYCV19%`OYe}b6ZSvlpkFn6xbjeIO zWkl^yO}9*x#Qr!Yg89eftwUBO?{5KbveZU{0|oZ`;C3wtZk~QOdyMY%@Rz;Gx#Qie z8mzp1%1{hfBj z>2>3FAMte@@pb>NOV-7NbZ#E^?|$YouF&}`9)B#WSqu-)5N_k70AaH_M)cV&gh*)C zEHQ#`{|(y@Tkr74AEbNAbcPO{(nBL@+;HbzdBE~2I1_)cdl;)k6~Q73@vA4 z*pe|BPexnpBw71nR42dLaNQvJWo$Pre9Iog?F9I&U7Dw3*tfIbZ)EF&MI|XRlPW{} zcTO9ORct}WYk5OTHc|cd>vB!aJr`dl>PFj|nxz=p92GeCK?FV!*OT5RBRSFps${z` zIL{}n%xp%1gBP7U15dXH8V^C?P9MY}?tNwo&M&92>b6NqV%N|C>1ooO#}~SB(t)&I z2%${fXsmA}!b_IOKKTidop?mS#|ssJxfC z&*-W-Aqsr!II*thFQ{FhC0-A`m5Uvf%hSQyPhP>R`-k3C1RkYg#Cr zs1nYMs(*aOS0C>;oH~gq4sG7iy2fcUPk`g1f9)Di58m?+^ualqG-!bX+c^n&Itz*v3B=eimqi*R20VD_hv}5)+ZGq5mtMVB)>;M*1|dAq7u7>&AK}5r zU29E@_Y*~P0Vm;5bj&e@2tWnGvMT{Mn?(Ch_i6`F6!1yp}SIV zHcLna*GT|f&wJM^tPwgA@5=42UtL5BHtM~-J};6hL1akj>j$sS%7%6eTF&Tx7}#e@ zMy75>OP+mLJGwp3l6Y}_+V>j$(u8-2v}S2=9i@90?un)k@mqB@s2SYcvD3W}_Cez( zOX+>+6Qq1cJXXWELOs z3Wfjt0?sfsCr;I2_@4K|UP_9CCfkvDg*?AveWM#>nF!17Vdf`b?ZB_Y$uF~b+0we!Y?9P=5d*~xtF1HK z%SVj{FV?0qs^2=5l@C;;rUXI;AT=AJ7j>Xc_+^+k{Lz7UX27?YI_|I zc)4a6&M}gvR&7j7igc&{a6q=obImzbqUGHX4wK}^*Ng@u*cC6OiCaw!a^=ii=^jpC zagG^AGD0;sRqm@~EUD-qq^1xM32j&Wq+T8uk-CL^=qxK~?R9xM;lPlhul!m8HM%z{ z{3GEK!5eKYWcDgQBd zH)^F3*JZM#ZdT5>L=&3X)}=%?>R;^V#A<8yg3WgS%S&+c3y!@(qQw42*LmQP-4#pI zr`uU|N^Su@_nhY#oMx>8WpTE~jpw20poQ#(8bkZTF0y^uksvkSXGD}ZJJ`dGKXI1u z#gm3Uvy+B~cBmWjSe2>smYE29pG2`OL@jji5=* zjI^C$v*g;#$T0srv7$-Q5v0-yawv6)9oC#Y0h!p^=$~RDG2p;iM)`1ce(O3xs>|=? zFwfg({??2N8=ae1eO9&E^Y9J-#kHO+Iyv=fpV`NV{LROxC((94U;IoFY?Brmyyr^} zV)_{)6YA+ZEv3@&w(rLi^bd=ol)X*Qwgm2^Yd0+I3+q}2o0*C`#iAX{pUOQpNH(v% zvmgr(pWL^+mYVrMV`-oleFEaly&ROHjeTNAsGg5U23Mbd&S{`wN)E$tm09In>!0t+ z+EwC;?*_5SY$0Y6FQ}B!Nxyh21wgHXzOI6=ReAax(I~6bva=&K zz2??I1jCVT@R&;3>SmHOW_>8(LoS@OWxY)Zu6-7`%e0s00(fpKk;y;NbpGLw_8835 zx0Qp&%LkCV=Rsq8{?%$hifd! z+H~VN((m~}>PXc?M3~iQWO4j4srbn0^dpgwmmge%`aPn#jZ$M$hOYn${}uA=@ijYGcFA*!KvP_lmoNs+LW9B!p86 zULN8ot~Wu`K6z5mQ9Ic6?-tDx&lOH)(|mb@LhHNDEj_b1=3WhcQ1?-4i(2FfQ=Cca zNRht28%OX$oOO;tukqathn$4m3TY{oe7QMGM9&(WXKFNgJDacI_N|Wdz+kiEqp144;@m#s?X#>rO zuV3JA&OndPUYaDx!9C-a+InKolcS^OV|4EHb_Ebbj+N90UV_KITkl|RTg{xzxu@#- z27QTKM`FuNbBmYzl68q(xw@hzvV{(&vUq4yvpmm8iHTS|Rh#CtH`1Apm24@!QdpPW zc%i=Z^Eex35OCd6GOr|a)V1nQ^M05$2ztgOkz%gBb&FQ>!DlokqtBHwA}h+sZ|s*d zM!sm&ddJ#R5FCf-w@~t85Cl$M2jMyHn^+!lq3YJd&=wh&;VW{+(Z*@mFdI*b)bT*& zaCkJm7tHEzRZ_o`V{P)xLwpKVFh}Wy9Z>Y)cD|jCt5i`zu^&vqjJVspna$syWn+sE zgj3HXrXaRG&3jsssUsV#WR9;c-L37=(F_DOxU&tZLY2vVAeF(0tWsWfT91d{Jyfc_}s_>}d7g zf;P{zijxdc@j|y85*JD&C;sb*M#~SKNQhj;(f4j0qsZKOPm|I!8%Q4FQ;NCrn6t}_}Mj94rExV zNk4Z7&)U#slrwSOjzJ1@DQ{Y5(SxaG`c?fF?W*S z+owEV4SMg2F8oB-^g`iU(4wFNgcP!pzfx!P8%bEB_m@t;K535vzJuO~2{=uv7}`3N zP~GiFc>{l;AR(i13VNzBAyX5z$t6Uh9UA_HJ_CE~$?c4Y!n?0Ta!a^{BKK7rctUW>;DotKp_mEj1)W9$gzWbA-bD5usj7~QMJf5o2bA>S9gD^q=YT|?dz zqX@+z&l$WTH!B=9ak~`LNbVIZT!en+;ZtK=Zj4R&F%0OTCsRY0>@3Mn`H;qEQ<+8* zXUv&U<%1FwOs4VfPE5`vi8GeZE#*|YsGRnw_%EM%=*Md%B78{LjW2@^`Jv}}msb>2 z@=&*|TO6H_(xL00!UvcdXx0to zd$aMP#=M?;cU(ToO**ZwT(y$T-D<^_@pD$BdGucv?n}d@bt}KBR%DmXTw6%5W8HH%9dgJlMhSCATW`U509nfuUAGunC#P_M;OEW*Y|TEibL|U$+uPC ze4~pqdJw$+M4H%&qRsXWu}EJeR{JQQBtiRVcb{ZLfu$GKUvU>@ceAX$yft_S*ytX) zXfJfdNt11hwHlbfFfwOZIr;L8*>pEck2g58o>Orz^&am7BrXj`ilGg40;_+VhkwrA zlX!mHpH#)*4+EeH3Vz3;t2fd29w04TQyDBK*lGl^4{b1Omha0oIYE(K)KEOM3zhYE zy~8&YJel@ro7*lMpHXQPr7Xu4Cko=A<*M_OG-^n`pyIU`=F4|-OB9@U$dFmE$8)Lj zi0O783VRm)>v-Xj-ddrn>4`Op*Qq-xkXF5r?^DNM)uO^R*eIrTmY#HY8Z>!D4aI|vHDFDpmC&vrI~ z)V`g)U4zv%bk{mIW1luua2n#~=&w8#X{J#IPnhuBI5`_dy1=e5j1YN~f;>If`X=wY z!M;lK_!Mh=%s7v)gMd7gGvO3nsl^JoMs2c1F+Rk%Y-))NleyJ<`kmhlx0`0oi$RI~ znqoQhQ64gzY~mm=KREam+*oNN*mmTLF zhZH+|o26SaBM)aiwd)4?r^(qO4{a!l+ecF^3kf4O_qQmELvzF_ikTQ`chcBt$H#z| zZ0SXI4QkQQC&;)T7yIHeg{|@3W{8!OCq#0yU@t0Tw7LctC^Q)Ui#i-PE#l?J&lsJdt}x z@!j3jcM}f$?^6>qf$9C3;v5wL13Q|E3;XAk-tFJgl0=I?i*6FI=Cf_aJ=FEKjqP*x z!K%FEg4)qbLAaV@n{v7Uo%`oqe@z2F6q*7i{s6fV5sZop7ApjQguz!W0ZcZ(tjJLG!Pp$YznOl$*ymlQgw&@F}NysAo)^F<6$h$4BS{O2Y<4r6qC!}rg;t}J4&2|~1-=87M*GrK*Il(Oux$zNx{MC1nJR;=shHi=+)WD(0!sxU|0Ax(cgaCiF9H}P>-z0u8<2JP-Hd; z?BL4+lCue4zRzOLcjM#2JEAuPsR7H*sl){~c;m>~#66APnP=KQipZ(_=}O5FlT&H6 zEy1xZxA*bJ0Dfw!$QS%n(h=)fKMIb%Vn|LUebIbrEp=C*(K|Li|+W+t*yD zf_l$y!*pl?IE+E51erONP3JX1&iJYBHWo~PE1tBR$|ccQbfUmb6!uCr7|NXvm7}el zT81QRPC$l$=@1awpUmAyQtXm0($r{w^pppjdByG}PX$qM;B8Rbn+O64e-$X8_W>BA zh8{5dRDCR%HkglHN*fIQ*ehsl@_$VOYzn!gnt=?ofc~c_3Oj%aikme35fA^TbnHH5 zayI<~?rBGCS?U+En$1I#>^Vsk0ilbc6ajL4D8*!pbAkxOzv5@tJ~ckP^{?=`{JN06 zD5@;g4u0iI5zuY{QKxGMhwTVX_v}+I09wVSZ|^A;E#kvTDtY6wO53P>A`tW^`0&L^ z-tjF;V2835yYsl$Cb=tke|&%j_o=lIMU#Rk>_xkCf<24#IDX{{m~WW>0v{^Ekf$9C zAd2-@3in^983hagC`UR|7DZ)!oHB{p!7ok(QHo&!5r}=l2n63OfED|46@YPi5ZJmT z$^p2#6VO?TsiNzIP?(nn)Q<4sPq)*J6nq8#1O+V{0<_1`L)h(L`5$?})r%ycbWRz7 zxx$Z9Y(kIl0IM^AkBnQ-MVx@;rODg1{HV^<1DH(&VrW$W1?59N@@N0PnmMoVT5pg1_Q3& z8Zp|8+IpCHa_>o8tWoJtM1rW}q<<(zj&7;w(m%fIbST}-%NL{jq~2jX+QYKzSD_rJ zqgW1PULuz(;D{d%@Pt+n0h#AMpgYs_95^YHOz$c(SbwWY92Fdfe|BK7(uE%!%Qwg1 zZq7!Y_ziUlWKg3S!kisGhb+XUa~OCNh1Q8<6@26*BBLyh$ZL$*2o+O{L|@Uem(Um>EtYY{bd?_{k$3B zg4Zcj16slimm^ct9A9(n3aNAkwS)uEI>7M)*g-WQqWEqXi)ypQjmd)}e0|K5EFUSk zabjS@0bxWjW$44%My07W0=e;zs{(q!pC416dQ*`L{5J+DidmhXQ5Lg8yJ|1^^y2hE za^v#rfR8=ET$Mk*zIC}dEgw_GBR9@>gAhOh_-_TG_BIXpgAzzxm~@1%f|ru>!{0PXIS%(}moJ$`=p%}s z-dx7S0_rmmAZG_aCQW(e#`T_p$EcsFYK~E}e>wa~kv4mL@8y}H@}P{5w4onmv0?(C z!@U1b_Wx8xyYWu~|1FHd-^u}DMK5e=30F0-nfTI7ceAIw#cyu?MUCG)%t7Ior^0uR z9SZ(e{I=dFz(!d76)^wj;K5(i(Ck)GAu;@B%ksf539X`Sr|H`-_kp3mPcZ&XEIe=Q zH8uiwI<0fyxg~*AC^*pv8?nEYws~^1gTbNTx#ANZ?L({^9}y6{eS*Thu`No!(0#%4 z2v5HAP73JMf>fI{n8L4}E3H+O!jGx5Ij>FnIDP{#0Kl}j?)^p0AXVER*(&-KN$JNV z3kn5$;e>)e?f_Ur(T4zx%X7HJ0d*?i>NaS3A{feEyO--i7YaW2#zxSeJ}b?YqWlxo zh{3wWe%xk&ZD^|~JH#T{T3&+2(WzMh%rmyx7>R^ zBM=H+cLiYIAOysnP%thKbLiEg^1pZs8$5#I-lh&~r4&r-pSET1u3h(g>o`05HxJxI(0!7e?ctsiuA7-Wq z3_TG2D=?4vudtWFeE*1u1?iGHI~0M=;5l{1qfP|hl-+38Ikn~GGY^3)pgLC(4wIkS zv>l!-gTuDftnEt5BY>~uC`&Da&rj4&d~SB&yr2wZdXxry%<;xY`=H7H;{W@0>aoPGXJFwxsjvItC0_pyI0eZBTKEw6nk4 lI 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 z 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�Lq$A-G_ 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 -using namespace Rcpp; - -// [[Rcpp::export]] -int fibonacci(const int x) { - if (x < 2) - return x; - else - return (fibonacci(x - 1)) + fibonacci(x - 2); -} - -The export attribute indicates that we'd like the function to be callable -from R. We can now "source" this C++ file at the R prompt and then call -the function as follows: - -R> sourceCpp("fibonacci.cpp") -R> fibonacci(20) -[1] 6765 - -Rcpp attributes build upon Rcpp modules (described in another vignette in the -package), as well as the automatic type converters Rcpp::as<>() and Rcpp::wrap. -The converters can already be used for a wide variety of standard C and C++ -types, and can also be adapted to other C++ types and libraries as described -in the Rcpp-extending vignette. - -Rcpp attributes and their supporting functions include: - - - Rcpp::export attribute to export a C++ function to R - - sourceCpp function to source exported functions from a file - - cppFunction and evalCpp functions for inline declarations and execution - - Rcpp::depends attribute for specifying additional build dependencies - for sourceCpp - -Attributes can also be used for package development via the `compileAttributes` -function, which generates an Rcpp module for all exported functions within -an R package. - -More details are provided in the new vignette Rcpp-attributes. We also intend -to provide further illustrations via our blogs following the release. - - - -===== Rcpp modules ===== - -Rcpp modules provide an easy way to expose C++ functions and classes to R using -a declarative syntax. We declare which functions and which classes we want to -make available to R and modules takes care of automatically (via the compiler, -through template deduction ...) creating the interface code between the C++ -code and R. - -Rcpp modules have been extended for the new release. A brief -summary of new key features is: - - - inheritance: A class can now declare that it inherits from another class; - the exposed class gains methods and properties (fields) from its parent class. - - Functions and methods can now return objects from classes that are exposed - through modules. The macro RCPP_EXPOSED_CLASS and RCPP_EXPOSED_CLASS_NODECL - can be used to declared the required type traits. - - Classes exposed through modules can also be used as parameters of exposed - functions or methods. - - Exposed classes can declare factories, i.e. a C++ function returning a - pointer to the target class, providing an alternative way to construct - objects. - - "converter" can be used to declare a way to convert ("cast") an object of - a type to another type. This is translated at the R level in terms of an "as" - method. - -We intend to provide example packages using these new features in the near future. - - - -===== New sugar functions ===== - -Rcpp sugar provides "syntactic sugar" familiar to R programmers at the C++ -level, including a large number of vectorised functions. In this release, we -added - - which_min() and which_max() returning the index of the first object - matching the condition - - unique() and sort_unique() - - - -===== New I/O facilities ===== - -The Rcpp::Rcout object now supports the std::flush manipulator, which calls -R_FlushConsole. A new object Rcpp::Rcerr has been added with passes content -for error messages to REprintf(). - - - -===== New namespace "R::" for Rmath functions ===== - -A side-effect of Rcpp sugar providing vectorised d/p/q/r functions for the -various statistical distribution was that the scalar variants of these -functions (available from Rmath.h) were masked behind a Rf_ prefix. -Previously, one had to call ::Rf_pnorm5() to compute pnorm() -- but now a -cleaner interface R::pnorm() is available. Unit tests were added as well. - - - -===== Links ===== - -Rcpp main page: - http://dirk.eddelbuettel.com/code/rcpp.html - -R-forge project page: - http://r-forge.r-project.org/projects/rcpp/ - -Dirk's blog section about Rcpp - Rcpp: http://dirk.eddelbuettel.com/blog/code/rcpp/ - -Romain's blog section about Rcpp: - http://romainfrancois.blog.free.fr/index.php?category/R-package/Rcpp - -RStudio blog: - http://blog.rstudio.org - -Google+: - https://plus.google.com/b/107029540907667241299/107029540907667241299/posts - -Facebook: - http://www.facebook.com/pages/Rcpp/213047595425775 - -Twitter: - https://twitter.com/eddelbuettel - https://twitter.com/romain_francois - - - -===== Support ===== - -Questions about Rcpp should be directed to the Rcpp-devel mailing list - https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel - -While we prefer the mailing list, StackOverflow has also become a frequently -used resource under the [rcpp] tag: - http://stackoverflow.com/questions/tagged/rcpp - - -Dirk Eddelbuettel, Romain Francois, Doug Bates, John Chambers and JJ Allaire -November 2012 - - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.11.0.txt b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.11.0.txt deleted file mode 100644 index 3b0a35e..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.11.0.txt +++ /dev/null @@ -1,136 +0,0 @@ - - -===== Summary ===== - -Version 0.11.0 of the Rcpp package is now on CRAN and its mirrors. - -This new release brings a number of new features, most noticably a simplified -build system, as well as improvements to existing features and bugfixes. - -Complete details of the changes implemented between the last announcement for -version 0.10.0 and this new can be found in the NEWS and ChangeLog files -which are included in the package. - - - -===== Overview ===== - -Rcpp is an R package and associated C++ library for seamless integration -between C++ and R. - -It has been described in a Journal of Statistical Software (2011, Vol 40, -Issue 08) paper (also included in the package as the "Rcpp-introduction" pdf -vignette) and a book "Seamless R and C++ Integration with Rcpp" (2013, -Springer, useR! Series). - -As of early 2014, Rcpp is used by over 160 other CRAN packages. - -Several key features of the new 0.11.0 release are described below. - - - -===== One-time rebuild required ===== - -Because of the simplified linking scheme detailed in the next section, and -the corresponding removal of the libRcpp.* library, all packages currently -using Rcpp need to be reinstalled. - -We provide a simple helper script at -https://github.com/RcppCore/rcpp-logs/blob/master/scripts/showReverseRcppDepends.r -to identidy which of your currently-installed packages use Rcpp, and need to -be rebuilt / reinstalled. - - - -===== Simpler Building with Rcpp ===== - -Thanks to the 'LinkingTo:' directive, R already instructed the compiler where -to fine header files when writing code with Rcpp. The package now uses the -registration facilities in R (see Section 5.4 in Writing R Extensions). - -With just an 'Imports: Rcpp' in DESCRIPTION along with an explicit import -statement in the NAMESPACE file such 'importFrom(Rcpp, evalCpp)' all required -Rcpp code will be properly instantiated without any explicit linking. [ Note -that just using 'import(Rcpp)' is not sufficient, but any exported C++ -identifier should do -- evalCpp is nice and short. ] - -This means that the package no longer provides a user-facing library -libRcpp.so (or libRcpp.dylib or libRcpp.dll). This also implies that a -one-time rebuild is needed as alluded to in the previous section. - -The key benefit is that many package should no longer require the files -src/Makevars and src/Makevars.win in order to link with Rcpp. Mny packages -will be able to retire these files. The exception, of course, is the case -where a package links against an external library as eg the RcppArmadillo -package> Here, the LAPACK / BLAS / Fortran libraries still need to be -linked. However, the corresponding values are also provided by R and the -expression becomes a simple 'PKG_LIBS=$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)'. - - - -===== Rcpp attributes ===== - -Rcpp attributes were a key innovation in the 0.10.0; they have matured -further and have now become the standard way to build code with Rcpp. See -the dedicated vignette for details. - - - -==== C++11 Support ===== - -R 3.1.0, to be released in a few month, will permit compilation using C++11, -the newest C++ standard -- including for packages going to CRAN. Rcpp had -already supported 'local' builds using C++11 since version 0.10.3, simply add - - [[Rcpp::plugins(cpp11)]] - -and Rcpp attributes takes care of the rest. - - - -===== Memory management ===== - -A number of internal data structures have been rewritten. - - - -===== Links ===== - -Rcpp site: - http://www.rcpp.org - -Rcpp Gallery: - http://gallery.rcpp.org - -Dirk's Rcpp page: - http://dirk.eddelbuettel.com/code/rcpp.html - -GitHub page: - https://github.com/RcppCore/Rcpp - -R-forge project page: - http://r-forge.r-project.org/projects/rcpp/ - -Google+: - https://plus.google.com/b/107029540907667241299/107029540907667241299/posts - - - -===== Support ===== - -Questions about Rcpp should be directed to the Rcpp-devel mailing list - https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel - -While we prefer the mailing list, StackOverflow has also become a frequently -used resource under the [rcpp] tag: - http://stackoverflow.com/questions/tagged/rcpp - - - -On behalf of the Rcpp Core team, - - Dirk Eddelbuettel - February 2014 - - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.6.0.txt b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.6.0.txt deleted file mode 100644 index b741158..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.6.0.txt +++ /dev/null @@ -1,54 +0,0 @@ -New Rcpp versions 0.6.0 and 0.6.1 ---------------------------------- - -The Rcpp package provides C++ classes that greatly facilitate interfacing C -or C++ code in R packages using the .Call() interface provided by R. - -Rcpp provides matching C++ classes for a large number of basic R data -types. Hence, a package author can keep his data in normal R data structure -without having to worry about translation or transfer to C++. At the same -time, the data structures can be accessed as easily at the C++ level, and -used in the normal manner. - -The mapping of data types works in both directions. It is as straightforward -to pass data from R to C++, as it is it return data from C++ to R. The -following two sections list supported data types. - -Transfer from R to C++: -Standard R datatypes that are understood in C++ are - o named lists containing numeric (i.e. floating point), integer, - character, logical (i.e. boolean) or Date and Datetime (i.e. POSIXct at - the microsecond granularity) arguments; - o data frames containing numeric, integer, logical, character, - Date, Datetime or Factor columns; - o named vectors containing numeric or integer values, - o vectors and matrices of different values - o character strings - -Transfer from C++ to R: -Standard C++ datatypes can be returned to R in a named list, the most -general data type in R. Permissible components of the returns list -are the following C++ types: - o double (scalar as well as vectors and vectors of vectors), - o int (scalar as well as vectors and vectors of vectors), string, - o STL vector types and vector types of int and double - o STL vector of strings - o internal Rcpp types RcppDate, RcppDateVector, RcppDatetime, - RcppDatetimeVector, RcppStringVector, RcppVector of int or double, - RcppMatrix of int or double, RcppFrame - -Rcpp was initially written by Dominick Samperi as part of his contributions -to RQuantLib, and later released as a standalone package (under both the Rcpp -and RcppTemplate names). Its development had ceased in late 2006. - -As of November 2008, I have made new release with substantially expanded -documentation, simpler yet more comprehensive build structure leading to -easier use of Rcpp from other packages, and support for Windows, Linux and -Mac OS X (with special thanks to Simon for some extended cluebat waving). - -More information for Rcpp can be found at - o the package homepage at http://dirk.eddelbuettel.com/code/rcpp.html - o the R-forge repository at https://r-forge.r-project.org/projects/rcpp/ - o the CRAN page at http://cran.r-project.org/web/packages/Rcpp/index.html - -Regards, Dirk diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.7.0.txt b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.7.0.txt deleted file mode 100644 index 9b19b7e..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.7.0.txt +++ /dev/null @@ -1,74 +0,0 @@ -Rcpp version 0.7.0 went onto CRAN this weekend. The key new features are - - o inline support, taken from Oleg Sklyar's neat inline package and - adapted/extented to support Rcpp as well as external libraries - (see below for an example); this even works on Windows (provided you - have Rtools installed and configured); - - o addition of a new simple type RcppSexp for importing or exporting - simple types directly between R and C++ - - o addition of a number of new examples for both these features - - o code reorganisation: every class has in its own header and source file - - o last but not least relicensed from LGPL (>=2.1) to GPL (>= 2) - -My blog (http://dirk.eddelbuettel.com/blog/) has two recent posts with a bit -more details (and colour highlighting of the code below) but let's just look -at one example of using GNU GSL functions for illustrative purposes (as you -wouldn't need this to access random-number generators as R has its own). - -Consider this R code snippet: - - ## use Rcpp to pass down a parameter for the seed, and a vector size - gslrng <- ' - int seed = RcppSexp(s).asInt(); - int len = RcppSexp(n).asInt(); - - gsl_rng *r; - gsl_rng_env_setup(); - std::vector v(len); - - r = gsl_rng_alloc (gsl_rng_default); - - gsl_rng_set (r, (unsigned long) seed); - for (int i=0; i - v which is also converted on the fly. - - 5) The resulting vector is returned and simply printed at the R level. - - -More examples are in the source tarball and in the R-Forge SVN archive. - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.8.0.txt b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.8.0.txt deleted file mode 100644 index 467af3c..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.8.0.txt +++ /dev/null @@ -1,297 +0,0 @@ - -===== Summary ===== - -Version 0.8.0 of the Rcpp package was released to CRAN today. This release -marks another milestone in the ongoing redesign of the package, and -underlying C++ library. - - -===== Overview ===== - -Rcpp is an R package and C++ library that facilitates integration of C++ -code in R packages. - -The package features a set of C++ classes (Rcpp::IntegerVector, -Rcpp::Function, Rcpp::Environment, ...) that makes it easier to manipulate R -objects of matching types (integer vectors, functions, environments, etc -...). - -Rcpp takes advantage of C++ language features such as the explicit -constructor/destructor lifecycle of objects to manage garbage collection -automatically and transparently. We believe this is a major improvement over -PROTECT/UNPROTECT. When an Rcpp object is created, it protects the underlying -SEXP so that the garbage collector does not attempt to reclaim the -memory. This protection is withdrawn when the object goes out of -scope. Moreover, users generally do not need to manage memory directly (via -calls to new / delete or malloc / free) as this is done by the Rcpp classes -or the corresponding STL containers. - - -===== API ===== - -Rcpp provides two APIs: an older set of classes we refer to the classic API -(see below for the section 'Backwards Compatibility) as well as second and -newer set of classes. - -Classes of the new Rcpp API belong to the Rcpp namespace. Each class is -associated to a given SEXP type and exposes an interface that allows -manipulation of the object that may feel more natural than the usual use of -macros and functions provided by the R API. - ----------------------------------------------------------- -SEXP type | Rcpp class ----------------------------------------------------------- -INTSXP | Rcpp::IntegerVector -REALSXP | Rcpp::NumericVector -RAWSXP | Rcpp::RawVector -LGLSXP | Rcpp::LogicalVector -CPLXSXP | Rcpp::ComplexVector -STRSXP | Rcpp::CharacterVector -VECSXP | Rcpp::List -EXPRSXP | Rcpp::ExpressionVector ----------------------------------------------------------- -ENVSXP | Rcpp::Environment -SYMSXP | Rcpp::Symbol ----------------------------------------------------------- -CLOSXP | -BUILTINSXP | Rcpp::Function -SPECIALSXP | ----------------------------------------------------------- -LANGSXP | Rcpp::Language -LISTSXP | Rcpp::Pairlist ----------------------------------------------------------- -S4SXP | Rcpp::S4 ----------------------------------------------------------- -PROMSXP | Rcpp::Promise -WEAKREFSXP | Rcpp::WeakReference -EXTPTRSXP | template Rcpp::XPtr ----------------------------------------------------------- - -Some SEXP types do not have dedicated Rcpp classes : NILSXP, DOTSXP, -ANYSXP, BCODESXP and CHARSXP. - -Still missing are a few convenience classes such as Rcpp::Date or -Rcpp::Datetime which would map useful and frequently used R data types, but -which do not have an underlying SEXP type. - - -===== Data Interchange ===== - -Data interchange between R and C++ is managed by extensible and powerful yet -simple mechanisms. - -Conversion of a C++ object is managed by the template function Rcpp::wrap. -This function currently manages : - - primitive types : int, double, bool, float, Rbyte, ... - - std::string, const char* - - STL containers such as std::vector and STL maps such as - std::map< std::string, T> provided that the template type T is wrappable -- any class that can be implicitely converted to SEXP, through operator SEXP() - -Conversion of an R object to a C++ object is managed by the Rcpp::as -template which can handle: - - primitive types - - std::string, const char* - - STL containers such as std::vector - -Rcpp::wrap and Rcpp::as are often used implicitely. For example, when -assigning objects to an environment: - - // grab the global environment - Rcpp::Environment global = Rcpp::Environment::global_env() ; - std::deque z( 3 ); z[0] = false; z[1] = true; z[3] = false ; - - global["x"] = 2 ; // implicit call of wrap - global["y"] = "foo"; // implicit call of wrap - global["z"] = z ; // impl. call of wrap> - - int x = global["x"] ; // implicit call of as - std::string y = global["y"] // implicit call of as - std::vector z1 = global["z"] ; // impl. call of as> - -Rcpp contains several examples that illustrate wrap and as. The mechanism was -designed to be extensible. We have developped separate packages to illustrate -how to extend Rcpp conversion mechanisms to third party types. - - RcppArmadillo : conversion of types from the Armadillo C++ library. - - RcppGSL : conversion of types from the GNU Scientific Library. - -Rcpp is also used for data interchange by the RInside package which provides -and easy way of embedding an R instance inside of C++ programs. - - -===== inline use ===== - -Rcpp depends on the inline package by Oleg Sklyar et al. Rcpp then uses the -'cfunction' provided by inline (with argument Rcpp=TRUE) to compile, link and -load C++ function from the R session. - -As of version 0.8.0 of Rcpp, we also define an R function cppfunction that -acts as a facade function to the inline::cfuntion, with specialization for -C++ use. - -This allows quick prototyping of compiled code. All our unit tests are based -on cppfunction and can serve as examples of how to use the mechanism. For example -this function (from the runit.GenericVector.R unit test file) defines from -R a C++ (simplified) version of lapply: - - ## create a compiled function cpp_lapply using cppfunction - cpp_lapply <- cppfunction(signature(x = "list", g = "function" ), - 'Function fun(g) ; - List input(x) ; - List output( input.size() ) ; - std::transform( input.begin(), input.end(), output.begin(), fun ) ; - output.names() = input.names() ; - return output ; - ') - ## call cpp_lapply on the iris data with the R function summary - cpp_lapply( iris, summary ) - - -===== Using Rcpp in other packages ===== - -Rcpp is designed so that its classes are used from other packages. Using Rcpp -requires : - - using the header files provided by Rcpp. This is typically done by adding this - line in the package DESRIPTION file: - - LinkingTo: Rcpp - - and add the following line in the package code: - - #include - -- linking against the Rcpp dynamic or static library, which is achieved by - adding this line to the src/Makevars of the package: - - PKG_LIBS = $(shell ${R_HOME}/bin/Rscript -e "Rcpp:::LdFlags()" ) - - and this line to the src/Makevars.win file: - - PKG_LIBS = $(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" -e "Rcpp:::LdFlags()") - -Rcpp contains a function Rcpp.package.skeleton, modelled after -package.skeleton from the utils package in base r, that creates a skeleton of -a package using Rcpp, including example code. - - -===== C++ exceptions ===== - -C++ exceptions are R contexts are both based on non local jumps (at least -on the implementation of exceptions in gcc), so care must be ensure -that one system does not void assumptions of the other. It is therefore -very strongly recommended that each function using C++ catches -C++ exceptions. Rcpp offers the function forward_exception_to_r -to facilitate forwarding the exception to the "R side" as an R condition. -For example : - - SEXP foo( ) { - try { - // user code here - } catch( std::exception& __ex__){ - forward_exception_to_r( __ex__ ) ; - } - // return something here - } - -Alternatively, functions can enclose the user code with the macros BEGIN_RCPP -and END_RCPP, which provides for a more compact way of programming. The -function above could be written as follows using the macros: - - SEXP foo( ) { - BEGIN_RCPP - // user code here - END_RCPP - // return something here - } - -The use of BEGIN_RCPP and END_RCPP is recommended to anticipate future changes -of Rcpp. We might for example decide to install dedicated handlers for specific -exceptions later. - - -===== Experimental code generation macros ===== - -Rcpp contains several macros that can generate repetitive 'boiler plate' code: - RCPP_FUNCTION_0, ..., RCPP_FUNCTION_65 - RCPP_FUNCTION_VOID_0, ..., RCPP_FUNCTION_VOID_65 - RCPP_XP_METHOD_0, ..., RCPP_XP_METHOD_65 - RCPP_XP_METHOD_CAST_0, ..., RCPP_XP_METHOD_CAST_65 - RCPP_XP_METHOD_VOID_0, ..., RCPP_XP_METHOD_VOID_65 - -For example: - - RCPP_FUNCTION_2( int, foobar, int x, int y){ - return x + y ; - } - -This will create a .Call compatible function "foobar" that calls a -c++ function for which we provide the argument list (int x, int y) -and the return type (int). The macro also encloses the call -in BEGIN_RCPP/END_RCPP so that exceptions are properly forwarded to R. - -Examples of the other macros are given in the NEWS file. - -This feature is still experimental, but is being used in packages -highlight and RProtoBuf - - -===== Quality Assurance ===== - -Rcpp uses the RUnit package by Matthias Burger et al and the aforementioned -inline package by Oleg Sklyar et al to provide unit testing. Rcpp currently -has over 500 unit tests (called from more than 230 unit test functions) with -very good coverage of the critical parts of the package and library. - -Source code for unit test functions are stored in the unitTests directory -of the installed package and the results are collected in the "Rcpp-unitTests" -vignette. - -The unit tests can be both during the standard R package build and testing -process, and also when the package is installed. The latter use is helpful -to ensure that no system components have changed in a way that affect the -Rcpp package since it has been installed. To run the tests, execute - - Rcpp:::test() - -where an output directory can be provided as an optional first argument. - - -===== Backwards Compatibility ===== - -We believe the new API is now more complete and useful than the previous set -of classes, which we refer to as the "classic Rcpp API". We would therefore -recommend to package authors using 'classic' Rcpp to move to the new API. -However, the classic API is still maintained and will continue to be -maintained to ensure backwards compatibility for code that uses it. - -Packages uses the 'Classic API' can use features of the new API selectively -and in incremental steps. This provides for a non-disruptive upgrade path. - - -===== Documentation ===== - -The package contains a vignette which provides a short and succinct -introduction to the Rcpp package along with several motivating examples. -Also provided is a vignette containing the regression test summary from -the time the package was built. - - -===== Links ===== - -Rcpp main page: http://dirk.eddelbuettel.com/code/rcpp.html -R-forge project page: http://r-forge.r-project.org/projects/rcpp/ -Dirk's blog section about Rcpp: http://dirk.eddelbuettel.com/blog/code/rcpp/ -Romain's blog section about Rcpp: http://romainfrancois.blog.free.fr/index.php?category/R-package/Rcpp - - -===== Support ===== - -Questions about Rcpp should be directed to the Rcpp-devel mailing list -https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel - - - - -- Dirk Eddelbuettel and Romain Francois - Chicago, IL, USA, and Montpellier, France - May 2010 - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.9.0.txt b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.9.0.txt deleted file mode 100644 index 4b99fa8..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/announce/ANNOUNCE-0.9.0.txt +++ /dev/null @@ -1,196 +0,0 @@ - -===== Summary ===== - -Version 0.9.0 of the Rcpp package is now on CRAN and its mirrors. This -release marks another step in the development of the package, and a few key -points are highlighted below. More details are in the NEWS and ChangeLog -files included in the package. - - -===== Overview ===== - -Rcpp is an R package and associated C++ library that facilitates integration -of C++ code in R packages. - -The package features a complete set of C++ classes (Rcpp::IntegerVector, -Rcpp:NumericVector, Rcpp::Function, Rcpp::Environment, ...) that makes it -easier to manipulate R objects of matching types (integer vectors, functions, -environments, etc ...). - -Rcpp takes advantage of C++ language features such as the explicit -constructor / destructor lifecycle of objects to manage garbage collection -automatically and transparently. We believe this is a major improvement over -use of PROTECT/UNPROTECT. When an Rcpp object is created, it protects the -underlying SEXP so that the garbage collector does not attempt to reclaim the -memory. This protection is withdrawn when the object goes out of -scope. Moreover, users generally do not need to manage memory directly (via -calls to new / delete or malloc / free) as this is done by the Rcpp classes -or the corresponding STL containers. - -A few key points about Rcpp: - - - a rich API covering all core R data types including vectors, matrices, - functions, environments, ... (with the exeception of factors - which are less useful in C++) - - - seamless (bi-directional) data interchange between R and C++ - - - possibility of inline use permitting definition, compilation, linking and - loading of C++ functions directly from R - - - extensive documentation now covering eight vignettes - - - exception handling and error propagation back to R - - - extensive test suite using RUnit covering over 700 tests - - - extension packages RcppArmadillo and RcppGSL provide easy-to-use - integration with the Armadillo (linear algebra) and GNU GSL librasries - - - increasing adoption among R users and package developers with now - twenty packages from CRAN or BioConductor depending on Rcpp - - - support for the legacy 'classic' Rcpp is now provided by the RcppClassic - package which is being released concurrently with Rcpp 0.9.0 - -Several key features were added during the 0.8.* cycles and are described below. - - -===== Rcpp sugar ===== - -Rcpp now provides syntactic sugar: vectorised expressions at the C++ level -which are motivated by the corresponding R expressions. This covers -operators (binary arithmetic, binary logical, unary), functions (producing -single logical results, mathematical functions and d/p/q/r statistical -functions). Examples comprises anything from ifelse() to pmin()/pmax() or - -A really simply example is a function - - SEXP foo( SEXP xx, SEXP yy){ - NumericVector x(xx), y(yy) ; - return ifelse( x < y, x*x, -(y*y) ) ; - } - -which deploys the sugar 'ifelse' function modeled after the corresponding R -function. Another simple example is - - double square( double x){ - return x*x ; - } - - SEXP foo( SEXP xx ){ - NumericVector x(xx) ; - return sapply( x, square ) ; - } - -where use the sugar function 'sapply' to sweep a simple C++ function which -operates elementwise across the supplied vector. - -The Rcpp-sugar vignette describes sugar in more detail. - - -===== Rcpp modules ===== - -Rcpp modules are inspired by Boost.Python and make exposing C++ functions or -classes to R even easier. A first illustration is provided by this simple -C++ code snippet - - const char* hello( const std::string& who ){ - std::string result( "hello " ) ; - result += who ; - return result.c_str() ; - } - - RCPP_MODULE(yada){ - using namespace Rcpp ; - function( "hello", &hello ) ; - } - -which (after compiling and loading) we can access in R as - - yada <- Module( "yada" ) - yada$hello( "world" ) - -In a similar way, C++ classes can be exposed very easily. - -Rcpp modules are also described in more detail in their own vignette. - - -===== Reference Classes ===== - -R release 2.12.0 introduced Reference Classes. These are formal S4 classes -with the corresponding dispatch method, but passed by reference and easy to -use. Reference Classes can also be exposed to R by using Rcpp modules. - - -===== Extension packackages ===== - -The RcppArmadillo package permits use of the advanced C++ library 'Armadillo, -a C++ linear algebra library aiming towards a good balance between speed and -ease of use, providing integer, floating point and complex matrices and -vectors with lapack / blas support via R. Armadillo uses templates for a -delayed evaluation approach is employed (during compile time) to combine -several operations into one and reduce (or eliminate) the need for -temporaries. Armadillo is useful if C++ has been decided as the language of -choice, rather than another language like Matlab ® or Octave, and aims to be -as expressive as the former. Via Rcpp and RcppArmadillo, R users now have -easy access to this functionality. Examples are provided in the RcppArmadillo -package. - -The RcppGSL package permits easy use of the GNU Scientific Library (GSL), a -collection of numerical routines for scientifc computing. It is particularly -useful for C and C++ programs as it provides a standard C interface to a wide -range of mathematical routines such as special functions, permutations, -combinations, fast fourier transforms, eigensystems, random numbers, -quadrature, random distributions, quasi-random sequences, Monte Carlo -integration, N-tuples, differential equations, simulated annealing, numerical -differentiation, interpolation, series acceleration, Chebyshev -approximations, root-finding, discrete Hankel transforms physical constants, -basis splines and wavelets. There are over 1000 functions in total with an -extensive test suite. The RcppGSL package provides an easy-to-use interface -between GSL data structures and R using concepts from Rcpp. The RcppGSL -package also contains a vignette with more documentation. - - -===== Legacy 'classic' API ===== - -Packages still using code interfacing the initial 'classic' Rcpp API are -encouraged to migrate to the new API. Should a code transition not be -possible, backwards compatibility is provided by the RcppClassic package -released alongside Rcpp 0.9.0. By including RcppClassic.h and building -against the RcppClassic package and library, vintage code can remain -operational using the classic API. The short vignette in the RcppClassic -package has more details. - - -===== Documentation ===== - -The package contains a total of eight vignettes the first of which provides a -short and succinct introduction to the Rcpp package along with several -motivating examples. - - -===== Links ===== - -Rcpp main page: - http://dirk.eddelbuettel.com/code/rcpp.html -R-forge project page: - http://r-forge.r-project.org/projects/rcpp/ -Dirk's blog section about - Rcpp: http://dirk.eddelbuettel.com/blog/code/rcpp/ -Romain's blog section about Rcpp: - http://romainfrancois.blog.free.fr/index.php?category/R-package/Rcpp - - -===== Support ===== - -Questions about Rcpp should be directed to the Rcpp-devel mailing list - https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel - - - - -- Dirk Eddelbuettel, Romain Francois, Doug Bates and John Chambers - December 2010 - - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/bib/Rcpp.bib b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/bib/Rcpp.bib deleted file mode 100644 index c3c5f26..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/bib/Rcpp.bib +++ /dev/null @@ -1,666 +0,0 @@ -@String{CRAN = "http://CRAN.R-Project.org/" } -@String{manuals = CRAN # "doc/manuals/" } -@String{RCoreTeam = "{R Core Team}" } -@String{RFoundation = "R Foundation for Statistical Computing" } -@String{R-Forge = "http://R-Forge.R-Project.org/" } - -@Misc{Cpp11, - author = "ISO/IEC", - organization = "{International Organization for Standardization}", - title = "\proglang{C++} 2011 Standard Document 14882:2011", - howpublished = {ISO/IEC Standard Group for Information Technology / Programming Languages / C++}, - year = 2011, - url = "http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372", - urlansi = "http://webstore.ansi.org/RecordDetail.aspx?sku=ISO/IEC%2014882:2011" -} - -@manual{Abrahams+Grosse-Kunstleve:2003:Boost.Python, - author = { David Abrahams and Ralf W. Grosse-Kunstleve }, - organization = "Boost Consulting", - title = "Building Hybrid Systems with Boost.Python", - year = 2003, - url = "http://www.boostpro.com/writing/bpl.pdf" -} - -@Book{Abrahams+Gurtovoy:2004:TemplateMetaprogramming, - author = {David Abrahams and Aleksey Gurtovoy}, - title = {{C++} {T}emplate {M}etaprogramming: Concepts, Tools - and Techniques from {B}oost and Beyond}, - publisher = {Addison-Wesley}, - year = 2004, - address = {Boston} -} - -@Manual{Armstrong:2009:RAbstraction, - title = {{RAbstraction}: {C++} abstraction for {R} objects}, - author = {Whit Armstrong}, - year = 2009, - note = {Code repository last updated 2009-07-22.}, - url = {http://github.com/armstrtw/rabstraction} -} - -@Manual{Armstrong:2009:RObjects, - title = {{RObjects}: {C++} wrapper for R objects (a better - implementation of {RAbstraction}}, - author = {Whit Armstrong}, - year = 2009, - note = {Code repository last updated 2009-11-28.}, - url = {http://github.com/armstrtw/RObjects} -} - -@InProceedings{Bates+DebRoy:2001:C++Classes, - author = {Douglas M. Bates and Saikat DebRoy}, - title = {{C++} Classes for {R} Objects}, - booktitle = {Proceedings of the 2nd International Workshop on Distributed - Statistical Computing, March 15--17, 2001, Technische - Universit\"at Wien, Vienna, Austria}, - editor = {Kurt Hornik and Friedrich Leisch}, - year = {2001}, - url = {http://www.ci.tuwien.ac.at/Conferences/DSC-2001/Proceedings/}, - note = {ISSN 1609-395X} -} - - -@Misc{Brokken:2011:Cpp, - author = {Frank B. Brokken}, - title = {C++ Annotations}, - howpublished = {Electronic book, University of Groningen}, - year = 2011, - url = {http://www.icce.rug.nl/documents/cplusplus/} -} - -@Book{Chambers:2008:SoDA, - author = {John M. Chambers}, - title = {Software for Data Analysis: Programming with {R}}, - publisher = {Springer-Verlag}, - year = 2008, - series = {Statistics and Computing}, - address = {Heidelberg}, - note = {{ISBN} 978-0-387-75935-7} -} - -@Book{Chambers:1998:PwD, - author = {John M. Chambers}, - title = {Programming with Data: {A} Guide to the {S} Language}, - publisher = {Springer-Verlag}, - year = 1998, - address = {Heidelberg}, - note = {{ISBN} 978-0387985039} -} - -@Manual{CRAN:RInside, - title = {RInside: C++ classes to embed R in C++ applications}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - year = 2015, - note = {R package version 0.2.13}, - url = CRAN # "package=RInside" -} - -@Manual{CRAN:RProtoBuf, - title = {RProtoBuf: R Interface to the Protocol Buffers API}, - author = {Romain Fran\c{c}ois and Dirk Eddelbuettel and Murray Stokely and Jeroen Ooms}, - year = 2016, - note = {R package version 0.4.7}, - url = CRAN # "package=RProtoBuf" -} - -@Manual{CRAN:RQuantLib, - title = {RQuantLib: {R} interface to the {QuantLib} library}, - author = {Dirk Eddelbuettel and Khanh Nguyen}, - year = 2016, - note = {R package version 0.4.3}, - url = CRAN # "package=RQuantLib" -} - -@Manual{CRAN:rbenchmark, - title = {\pkg{rbenchmark}: Benchmarking routine for \proglang{R}}, - author = {Wacek Kusnierczyk}, - year = 2012, - note = {R package version 1.0.0}, - url = CRAN # "package=rbenchmark" -} - -@Article{JSS:Rcpp, - title = {{Rcpp}: Seamless {R} and {C++} Integration}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - journal = {Journal of Statistical Software}, - year = 2011, - volume = 40, - number = 8, - pages = {1--18}, - url = {http://www.jstatsoft.org/v40/i08/}, -} - -@Manual{CRAN:Rcpp, - title = {{Rcpp}: Seamless {R} and {C++} Integration}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois and JJ - Allaire and Kevin Ushey and Qiang Kou and - Nathan Russel and John Chambers and Douglas Bates}, - year = 2017, - note = {R package version 0.12.12}, - url = CRAN # "package=Rcpp" -} - -@Manual{CRAN:Rcpp:Attributes, - crossref = {CRAN:Rcpp}, - author = {J. J. Allaire and Dirk Eddelbuettel and Romain Fran\c{c}ois}, - title = {{Rcpp} Attributes}, - year = 2015, - note = {Vignette included in R package Rcpp}, - url = CRAN # "package=Rcpp" -} - -@Manual{CRAN:Rcpp:Modules, - crossref = {CRAN:Rcpp}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - title = {Exposing {C++} functions and classes with {Rcpp} modules}, - year = 2015, - note = {Vignette included in R package Rcpp}, - url = CRAN # "package=Rcpp" -} - -@Manual{CRAN:Rcpp:Sugar, - crossref = {CRAN:Rcpp}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - title = {{Rcpp} syntactic sugar}, - year = 2015, - note = {Vignette included in R package Rcpp}, - url = CRAN # "package=Rcpp" -} - -@Manual{CRAN:RcppArmadillo, - title = {RcppArmadillo: Rcpp integration for Armadillo - templated linear algebra library}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois and - Douglas Bates}, - year = 2016, - note = {R package version 0.7.400.2.0}, - url = CRAN # "package=RcppArmadillo" -} - -@Manual{CRAN:RcppClassic, - title = {RcppClassic: Deprecated 'classic' Rcpp API}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - year = 2015, - note = {R package version 0.9.6}, - url = CRAN # "package=RcppClassic" -} - -@Manual{CRAN:RcppDE, - title = {RcppDE: Global optimization by differential evolution in C++}, - author = {Dirk Eddelbuettel}, - year = 2016, - note = {R package version 0.1.5}, - url = CRAN # "package=RcppDE" -} - -@Manual{CRAN:RcppEigen, - title = {RcppEigen: Rcpp integration for the Eigen templated linear - algebra library}, - author = {Douglas Bates and Romain Fran\c{c}ois and Dirk Eddelbuettel}, - year = 2016, - note = {{R} package version 0.3.2.9.0}, - url = CRAN # "package=RcppEigen" -} - -@Article{JSS:RcppEigen, - title = {Fast and Elegant Numerical Linear Algebra Using the - {RcppEigen} Package}, - author = {Douglas Bates and Dirk Eddelbuettel}, - journal = {Journal of Statistical Software}, - year = {2013}, - volume = {52}, - number = {5}, - pages = {1--24}, - url = {http://www.jstatsoft.org/v52/i05/}, -} - -@Article{JSS:RProtoBuf, - title = {{RProtoBuf}: Efficient Cross-Language Data Serialization in - {R}}, - author = {Dirk Eddelbuettel and Murray Stokely and Jeroen Ooms}, - journal = {Journal of Statistical Software}, - year = {2016}, - volume = {71}, - number = {2}, - pages = {1--24}, - doi = {10.18637/jss.v071.i02}, -} - -@Manual{CRAN:RcppExamples, - title = {RcppExamples: Examples using {Rcpp} to interface {R} - and {C++}}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - year = 2016, - note = {R package version 0.1.8}, - url = CRAN # "package=RcppExamples" -} - -@Manual{CRAN:RcppGSL, - title = {RcppGSL: Rcpp integration for GNU GSL vectors and matrices}, - author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - year = 2016, - note = {R package version 0.3.1}, - url = CRAN # "package=RcppGSL" -} - -@Manual{CRAN:RcppZiggurat, - title = {RcppZiggurat: Rcpp Integration of Different Ziggurat Normal RNG Implementations}, - author = {Dirk Eddelbuettel}, - year = 2015, - note = {R package version 0.1.3}, - url = CRAN # "package=RcppZiggurat" -} - -@Manual{CRAN:Rserve, - title = {Rserve: Binary R server}, - author = {Simon Urbanek}, - year = 2013, - note = {R package version 1.7-3}, - url = CRAN # "package=Rserve" -} - -@Manual{CRAN:cxxPack, - title = {cxxpack: {R/C++} Tools for Literate Statistical - Practice}, - author = {Dominick Samperi}, - year = 2010, - note = {R package version 7.0.6}, - url = CRAN # "package=cxxPack" -} - -@Manual{CRAN:highlight, - title = {highlight: Syntax highlighter}, - author = {Romain Fran\c{c}ois}, - year = 2015, - note = {R package with version 0.4.7}, - url = CRAN # "package=highlight" -} - -@Manual{CRAN:inline, - title = {inline: Inline C, C++, Fortran function calls from - R}, - author = {Oleg Sklyar and Duncan Murdoch and Mike Smith and - Dirk Eddelbuettel and Romain Fran\c{c}ois}, - year = 2015, - note = {R package version 0.3.14}, - url = CRAN # "package=inline" -} - -@Manual{CRAN:Matrix, - title = {\pkg{Matrix}: Sparse and Dense Matrix Classes and Methods}, - author = {Douglas Bates and Martin Maechler}, - year = 2016, - note = {R package version 1.2-7.1}, - url = CRAN # "package=Matrix" -} - -@Manual{CRAN:minqa, - title = {minqa: Derivative-free optimization algorithms by - quadratic approximation}, - author = {Douglas Bates and Katharine M. Mullen and John - C. Nash and Ravi Varadhan}, - year = 2014, - note = {R package version 1.2.4}, - url = CRAN # "package=minqa" -} - -@Manual{CRAN:roxygen2, - title = {roxygen2: In-source documentation for R}, - author = {Hadley Wickham and Peter Danenberg and Manuel Eugster}, - year = 2015, - note = {R package version 5.0.1}, - url = CRAN # "package=roxygen2" -} - -@Book{Eddelbuettel:2013:Rcpp, - author = {Dirk Eddelbuettel}, - title = {Seamless R and C++ Integration with Rcpp}, - publisher = {Springer}, - series = {Use R!}, - year = 2013, - address = {New York}, - isbn = {978-1-4614-6867-7} -} - -@Article{Eddelbuettel+Sanderson:2013:RcppArmadillo, - title = {{RcppArmadillo}: Accelerating {R} with High-Performance {C++} Linear Algebra}, - author = {Dirk Eddelbuettel and Conrad Sanderson}, - journal = {Computational Statistics and Data Analysis}, - year = 2014, - volume = 71, - month = {March}, - pages = {1054--1063}, - doi = {10.1016/j.csda.2013.02.005}, - url = {http://dx.doi.org/10.1016/j.csda.2013.02.005} -} - -@Article{Eddelbuettel+Sanderson:2014:RcppArmadillo, - title = {{RcppArmadillo}: Accelerating {R} with High-Performance {C++} Linear Algebra}, - author = {Dirk Eddelbuettel and Conrad Sanderson}, - journal = {Computational Statistics and Data Analysis}, - year = 2014, - volume = 71, - month = {March}, - pages = {1054--1063}, - doi = {10.1016/j.csda.2013.02.005}, - url = {http://dx.doi.org/10.1016/j.csda.2013.02.005} -} - -; see http://eigen.tuxfamily.org/index.php?title=BibTeX -; replaced 'howpublished' with 'url' and updated year to 2011, and again to 2012 -@MISC{Eigen:Web, - author = {Ga\"{e}l Guennebaud and Beno\^{i}t Jacob and others}, - title = {Eigen v3}, - year = 2012, - url = {http://eigen.tuxfamily.org}, -} - -@Book{Gentleman:2009:RProgramming, - author = {Robert Gentleman}, - title = {R Programming for Bioinformatics}, - publisher = {Chapman \& Hall/CRC}, - year = 2009, - series = {Computer Science and Data Analysis}, - address = {Boca Raton, FL} -} - -@Article{Gropp+Lusk+Doss+Skjellum:1996:MPI, - author = {William Gropp and Ewing Lusk and Nathan Doss and Anthony Skjellum}, - title = {A high-performance, portable implementation of the {MPI} message passing interface standard}, - journal = {Parallel Computing}, - year = 1996, - url = {http://dx.doi.org/10.1016/0167-8191(96)00024-5}, - volume = 22, - number = 6, - pages = {789--828} -} - -@Book{Gropp+Lusk+Skjellum:1999:MPI, - author = {William Gropp and Ewing Lusk and Anthony Skjellum}, - title = {Using {MPI}: Portable Parallel Programming with the Message Passing Interface}, - publisher = {MIT Press}, - year = 1999, - series = {Scientific and Engineering Computation Series}, - edition = {2nd}, - month = {November}, - note = {{ISBN} 978-0-262-57132-6}} - -@Manual{GSL, - title = {{GNU} {S}cientific {L}ibrary {R}eference {M}anual}, - author = {Mark Galassi and Jim Davies and James Theiler and Brian Gough and Gerard Jungman and Patrick Alken and Michael Booth and Fabrice Rossi}, - year = {2010}, - edition = {3rd}, - note = {Version 1.14. {ISBN} 0954612078}, - url = {http://www.gnu.org/software/gsl} -} - -@Unpublished{Java+Gaile+Manly:2007:RCpp, - author = {James J. Java and Daniel P. Gaile and Kenneth - E. Manly}, - title = {{R/Cpp}: Interface Classes to Simplify Using {R} - Objects in {C++} Extensions}, - note = {Unpublished manuscript, University at Buffalo}, - url = - {http://sphhp.buffalo.edu/biostat/research/techreports/UB_Biostatistics_TR0702.pdf}, - month = {July}, - year = 2007 -} - -@InProceedings{Leisch:2008:Tutorial, - author = {Friedrich Leisch}, - title = {Tutorial on {C}reating \proglang{R} {P}ackages}, - booktitle = {COMPSTAT 2008 -- Proceedings in Computational - Statistics}, - year = 2008, - editor = {Paula Brito}, - address = {Heidelberg}, - publisher = {Physica Verlag}, - url = CRAN # "doc/contrib/Leisch-CreatingPackages.pdf" -} - -@Manual{Liang:2008:rcppbind, - title = {rcppbind: {A} template library for R/C++ developers}, - author = {Gang Liang}, - year = 2008, - note = {R package version 1.0}, - url = R-Forge # "projects/rcppbind" -} - -@Book{Lippman+Lajoie+Moo:2005:Cpp_Primer, - author = {Stanley B. Lippman and Jos\'{e}e Lajoie and Barbara E. Moo}, - title = {The C++ Primer}, - publisher = {Addison-Wesley}, - address = {Boston}, - year = 2005, - edition = {4th} -} - -@Book{Matloff:2011:ArtOfR, - author = {Norman Matloff}, - title = {The Art of R Programming: A Tour of Statistical Software Design}, - publisher = {No Starch Press}, - address = {San Francisco, CA}, - year = 2011 -} - -@book{Meyers:1995:MoreEffectiveC++, - author = {Scott Meyers}, - title = {More Effective C++: 35 New Ways to Improve Your - Programs and Designs}, - year = 1995, - note = {{ISBN} 020163371X}, - publisher = {Addison-Wesley}, - address = {Boston} -} - -@book{Meyers:2001:EffectiveSTL, - author = {Scott Meyers}, - title = {Effective STL: 50 specific ways to improve your use - of the standard template library}, - year = 2001, - note = {{ISBN} 0-201-74962-9}, - publisher = {Addison-Wesley}, - address = {Essex} -} - -@book{Meyers:2005:EffectiveC++, - author = {Scott Meyers}, - title = {Effective C++: 55 Specific Ways to Improve Your - Programs and Designs}, - year = 2005, - note = {{ISBN} 978-0321334879}, - publisher = {Addison-Wesley}, - address = {Boston}, - edition = {3rd}, -} - -@Book{Plauger+Et+Al:2000:STL, - author = {P.J. Plauger and Alexander Stepanov and Meng Lee and - David R. Musser}, - title = {The {C++} Standard Template Library}, - publisher = {Prentice Hall PTR}, - year = 2000, - note = {{ISBN} 978-0134376332}, -} - -@manual{R:Administration, - author = RCoreTeam, - organization = RFoundation, - address = {Vienna, Austria}, - year = 2015, - title = "R Installation and Administration", - annote = {{ISBN} 3-900051-09-7}, - url = manuals # "R-admin.html" -} - -@manual{R:Extensions, - author = RCoreTeam, - organization = RFoundation, - address = {Vienna, Austria}, - year = 2015, - title = "Writing R extensions", - annote = {{ISBN} 3-900051-11-9}, - url = manuals # "R-exts.html" -} - -@manual{R:Internals, - author = RCoreTeam, - organization = RFoundation, - address = {Vienna, Austria}, - year = 2015, - title = "R internals", - annote = {{ISBN} 3-900051-14-3}, - url = manuals # "R-ints.html" -} - -@manual{R:Main, - title = {R: A Language and Environment for Statistical - Computing}, - author = RCoreTeam, - organization = RFoundation, - address = {Vienna, Austria}, - year = 2015, - url = {http://www.R-project.org/}, -} - -@manual{R:Language, - author = RCoreTeam, - organization = RFoundation, - address = {Vienna, Austria}, - year = 2015, - title = "R language", - annote = {{ISBN} 3-900051-13-5}, - url = manuals # "R-lang.html" -} - -@Book{Venables+Ripley:2000:SProgramming, - author = {Willian N. Venables and Brian D. Ripley}, - title = {S Programming}, - publisher = {Springer-Verlag}, - year = 2000, - series = {Statistics and Computing}, - address = {New York} -} - -@InProceedings{Runnalls:2009:CXXR, - author = {Andrew Runnalls}, - title = {Aspects of {CXXR} internals}, - booktitle = {Directions in Statistical Computing}, - address = {University of Copenhagen, Denmark}, - year = 2009 -} - -@Manual{Samperi:2009:RcppTemplate, - title = {RcppTemplate: Rcpp {R/C++} Object Mapping Library - and Package Template}, - author = {Dominick Samperi}, - year = 2009, - note = {(Archived) R package version 6.1}, - url = CRAN # "/src/contrib/Archive/RcppTemplate" -} - -@TechReport{Sanderson:2010:Armadillo, - author = {Conrad Sanderson}, - title = {{Armadillo}: {An} open source {C++} Algebra Library - for Fast Prototyping and Computationally Intensive - Experiments }, - institution = {{NICTA}}, - year = 2010, - url = "http://arma.sf.net" -} - -@Book{Stroustrup:1997:Cpp, - author = {Bjarne Stroustrup}, - title = {The C++ Programming Language}, - publisher = {Addison-Wesley}, - address = {Boston}, - year = 1997, - edition = {3rd} -} - -@Book{Stroustrup:2013:Cpp, - author = {Bjarne Stroustrup}, - title = {The C++ Programming Language}, - publisher = {Addison-Wesley}, - address = {Boston}, - year = 2013, - pages = 1368, - edition = {4th} -} - -@Article{TempleLang:2009:ModestProposal, - author = {Duncan {Temple Lang}}, - title = {A modest proposal: an approach to making the - internal {R} system extensible}, - journal = {Computational Statistics}, - year = 2009, - volume = 24, - number = 2, - pages = {271-281}, - month = {May} -} - -@Article{TempleLang:2009:RGCCTranslationUnit, - author = {Duncan {Temple Lang}}, - title = {Working with meta-data from {C/C++} code in {R}: the - {RGCCTranslationUnit} package}, - journal = {Computational Statistics}, - year = 2009, - volume = 24, - number = 2, - pages = {283-293}, - month = {May} -} - -@InProceedings{Maurer+Wong:2008:AttributesInC++, - author = {Jens Maurer and Michael Wong}, - title = {Towards support for attributes in {C++} (Revision - 6)}, - booktitle = {JTC1/SC22/WG21 - The C++ Standards Committee}, - year = {2008}, - url = - {http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf}, - note = {{N2761=08-0271}} -} - -@InProceedings{Urbanek:2003:Rserve, - author = {Simon Urbanek}, - title = {{Rserve}: A Fast Way to Provide {R} Functionality to - Applications}, - booktitle = {Proceedings of the 3rd International Workshop on Distributed - Statistical Computing, Vienna, Austria}, - editor = {Kurt Hornik and Friedrich Leisch and Achim Zeileis}, - year = {2003}, - url = {http://www.ci.tuwien.ac.at/Conferences/DSC-2003/Proceedings/}, - note = {{ISSN 1609-395X}} -} - -@Book{Vandevoorde+Josuttis:2003:Templates, - author = {David Vandevoorde and Nicolai M. Josuttis}, - title = {{C++} {T}emplates: The Complete Guide}, - publisher = {Addison-Wesley}, - year = 2003, - address = {Boston} -} - -@inproceedings{Veldhuizen:1998:Blitz, - author = {Todd L. Veldhuizen}, - title = {Arrays in {Blitz++}}, - booktitle = {ISCOPE '98: Proceedings of the Second International - Symposium on Computing in Object-Oriented Parallel - Environments}, - note = {{ISBN} 3-540-65387-2}, - year = 1998, - pages = {223--230}, - publisher = {Springer-Verlag}, - address = {London}, -} - -@misc{KDE-TechBase:2012, - author = {KDE-TechBase}, - title = {Binary Compatibility Issues With {C++}}, - url = "http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++", - year = 2012, - note = "[Online; accessed 24-November-2012]" -} diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/discovery/cxx0x.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/discovery/cxx0x.R deleted file mode 100644 index 5cc3da4..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/discovery/cxx0x.R +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/env Rscript - -# Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois -# -# This file is part of Rcpp. -# -# Rcpp is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# Rcpp is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Rcpp. If not, see . - -# This script is used by the Rcpp::RcppCxx0xFlags function to -# generate the "-std=c++0x" flag when the compiler in use is GCC >= 4.3 - -local({ - flag <- function(){ - - cxx0x.code <- ' - #include - #include - - extern "C" SEXP cxx0x(){ - - #ifdef __GNUC__ - #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) - #if GCC_VERSION >= 40300 - return mkString( "-std=c++0x" ) ; - #endif - #endif - return mkString( "" ) ; - } - ' - td <- tempfile() - dir.create( td ) - here <- getwd() - setwd(td) - dll <- sprintf( "cxx0x%s", .Platform$dynlib.ext ) - on.exit( { - dyn.unload( dll ) - setwd(here) ; - unlink( td, recursive = TRUE ) - } ) - writeLines( cxx0x.code, "cxx0x.cpp" ) - cmd <- sprintf( "%s/R CMD SHLIB cxx0x.cpp", R.home(component="bin") ) - system( cmd, intern = TRUE ) - dyn.load( dll ) - res <- tryCatch( .Call( "cxx0x" ), error = "" ) - res - } - cat( flag() ) -}) - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.R b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.R deleted file mode 100644 index 04a1de0..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.R +++ /dev/null @@ -1,285 +0,0 @@ -### R code from vignette source 'Rcpp-FAQ.Rnw' - -################################################### -### code chunk number 1: Rcpp-FAQ.Rnw:51-56 -################################################### -prettyVersion <- packageDescription("Rcpp")$Version -prettyDate <- format(Sys.Date(), "%B %e, %Y") -require(Rcpp) -require(inline) -require(highlight) - - -################################################### -### code chunk number 2: Rcpp-FAQ.Rnw:84-86 (eval = FALSE) -################################################### -## vignette("Rcpp-introduction") -## vignette("Rcpp-attributes") - - -################################################### -### code chunk number 3: Rcpp-FAQ.Rnw:213-214 (eval = FALSE) -################################################### -## vignette("Rcpp-package") - - -################################################### -### code chunk number 4: Rcpp-FAQ.Rnw:238-244 -################################################### -fx <- cxxfunction(signature(x = "numeric"), - 'NumericVector xx(x); - return wrap(std::accumulate(xx.begin(), xx.end(), 0.0));', - plugin = "Rcpp") -res <- fx(seq(1, 10, by=0.5)) -res - - -################################################### -### code chunk number 5: Rcpp-FAQ.Rnw:245-246 -################################################### -stopifnot(identical(res, sum(seq(1, 10, by=0.5)))) - - -################################################### -### code chunk number 6: Rcpp-FAQ.Rnw:260-262 (eval = FALSE) -################################################### -## fx <- cxxfunction(signature(), paste(readLines("myfile.cpp"), collapse="\n"), -## plugin = "Rcpp") - - -################################################### -### code chunk number 7: Rcpp-FAQ.Rnw:282-287 -################################################### -cppFunction('double accu(NumericVector x) { - return(std::accumulate(x.begin(), x.end(), 0.0)); -}') -res <- accu(seq(1, 10, by=0.5)) -res - - -################################################### -### code chunk number 18: Rcpp-FAQ.Rnw:715-734 -################################################### -inc <- 'template - class square : public std::unary_function { - public: - T operator()( T t) const { return t*t ;} - }; - ' - -src <- ' - double x = Rcpp::as(xs); - int i = Rcpp::as(is); - square sqdbl; - square sqint; - return Rcpp::DataFrame::create(Rcpp::Named("x", sqdbl(x)), - Rcpp::Named("i", sqint(i))); - ' -fun <- cxxfunction(signature(xs="numeric", is="integer"), - body=src, include=inc, plugin="Rcpp") - -fun(2.2, 3L) - - -################################################### -### code chunk number 21: Rcpp-FAQ.Rnw:815-819 (eval = FALSE) -################################################### -## fx <- cxxfunction(signature(x_="numeric", Y_="matrix", z_="numeric" ), -## paste(readLines("myfile.cpp"), collapse="\n"), -## plugin="RcppArmadillo" ) -## fx(1:4, diag(4), 1:4) - - -################################################### -### code chunk number 22: Rcpp-FAQ.Rnw:821-822 -################################################### -unlink("myfile.cpp") - - -################################################### -### code chunk number 24: Rcpp-FAQ.Rnw:881-888 -################################################### -fx <- cxxfunction(signature(), - 'RNGScope(); - return rnorm(5, 0, 100);', - plugin="Rcpp") -set.seed(42) -fx() -fx() - - -################################################### -### code chunk number 25: Rcpp-FAQ.Rnw:897-904 -################################################### -cppFunction('Rcpp::NumericVector ff(int n) { return rnorm(n, 0, 100); }') -set.seed(42) -ff(5) -ff(5) -set.seed(42) -rnorm(5, 0, 100) -rnorm(5, 0, 100) - - -################################################### -### code chunk number 26: Rcpp-FAQ.Rnw:919-927 -################################################### -src <- 'Rcpp::NumericVector v(4); - v[0] = R_NegInf; // -Inf - v[1] = NA_REAL; // NA - v[2] = R_PosInf; // Inf - v[3] = 42; // see the Hitchhiker Guide - return Rcpp::wrap(v);' -fun <- cxxfunction(signature(), src, plugin="Rcpp") -fun() - - -################################################### -### code chunk number 28: Rcpp-FAQ.Rnw:955-963 (eval = FALSE) -################################################### -## txt <- 'arma::mat Am = Rcpp::as< arma::mat >(A); -## arma::mat Bm = Rcpp::as< arma::mat >(B); -## return Rcpp::wrap( Am * Bm );' -## mmult <- cxxfunction(signature(A="numeric", B="numeric"), -## body=txt, plugin="RcppArmadillo") -## A <- matrix(1:9, 3, 3) -## B <- matrix(9:1, 3, 3) -## C <- mmult(A, B) - - -################################################### -### code chunk number 30: Rcpp-FAQ.Rnw:1010-1028 (eval = FALSE) -################################################### -## ## simple example of seeding RNG and drawing one random number -## gslrng <- ' -## int seed = Rcpp::as(par) ; -## gsl_rng_env_setup(); -## gsl_rng *r = gsl_rng_alloc (gsl_rng_default); -## gsl_rng_set (r, (unsigned long) seed); -## double v = gsl_rng_get (r); -## gsl_rng_free(r); -## return Rcpp::wrap(v);' -## -## plug <- Rcpp:::Rcpp.plugin.maker( -## include.before = "#include ", -## libs = paste("-L/usr/local/lib/R/site-library/Rcpp/lib -lRcpp", -## "-Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib", -## "-L/usr/lib -lgsl -lgslcblas -lm")) -## registerPlugin("gslDemo", plug ) -## fun <- cxxfunction(signature(par="numeric"), gslrng, plugin="gslDemo") -## fun(0) - - -################################################### -### code chunk number 31: Rcpp-FAQ.Rnw:1049-1056 (eval = FALSE) -################################################### -## myplugin <- getPlugin("Rcpp") -## myplugin$env$PKG_CXXFLAGS <- "-std=c++11" -## f <- cxxfunction(signature(), settings=myplugin, body=' -## + std::vector x = { 1.0, 2.0, 3.0 }; // fails without -std=c++0x -## + return Rcpp::wrap(x); -## + ') -## f() - - -################################################### -### code chunk number 32: Rcpp-FAQ.Rnw:1072-1084 (eval = FALSE) -################################################### -## src <- ' -## Rcpp::NumericMatrix x(2,2); -## x.fill(42); // or more interesting values -## Rcpp::List dimnms = // two vec. with static names -## Rcpp::List::create(Rcpp::CharacterVector::create("cc", "dd"), -## Rcpp::CharacterVector::create("ee", "ff")); -## // and assign it -## x.attr("dimnames") = dimnms; -## return(x); -## ' -## fun <- cxxfunction(signature(), body=src, plugin="Rcpp") -## fun() - - -################################################### -### code chunk number 34: Rcpp-FAQ.Rnw:1114-1128 (eval = FALSE) -################################################### -## BigInts <- cxxfunction(signature(), -## 'std::vector bigints; -## bigints.push_back(12345678901234567LL); -## bigints.push_back(12345678901234568LL); -## Rprintf("Difference of %ld\\n", 12345678901234568LL - 12345678901234567LL); -## return wrap(bigints);', plugin="Rcpp", includes="#include ") -## -## retval<-BigInts() -## -## # Unique 64-bit integers were cast to identical lower precision numerics -## # behind my back with no warnings or errors whatsoever. Error. -## -## -## stopifnot(length(unique(retval)) == 2) - - -################################################### -### code chunk number 38: Rcpp-FAQ.Rnw:1416-1422 (eval = FALSE) -################################################### -## a <- 1.5:4.5 -## b <- 1.5:4.5 -## implicit_ref(a) -## a -## explicit_ref(b) -## b - - -################################################### -### code chunk number 40: Rcpp-FAQ.Rnw:1454-1461 (eval = FALSE) -################################################### -## a <- 1:5 -## b <- 1:5 -## class(a) -## int_vec_type(a) -## a -## num_vec_type(b) -## b - - -################################################### -### code chunk number 42: Rcpp-FAQ.Rnw:1485-1488 (eval = FALSE) -################################################### -## x <- 1:10 -## const_override_ex(x) -## x - - -################################################### -### code chunk number 46: Rcpp-FAQ.Rnw:1561-1562 (eval = FALSE) -################################################### -## vec_scalar_assign(5L, 3.14) - - -################################################### -### code chunk number 48: Rcpp-FAQ.Rnw:1584-1585 (eval = FALSE) -################################################### -## mat_scalar_assign(2L, 3.0) - - -################################################### -### code chunk number 50: Rcpp-FAQ.Rnw:1628-1629 (eval = FALSE) -################################################### -## test_long_vector_support() - - -################################################### -### code chunk number 52: Rcpp-FAQ.Rnw:1683-1687 (eval = FALSE) -################################################### -## set.seed(123) -## (X <- sample(c(LETTERS[1:5], letters[1:6]), 11)) -## preferred_sort(X) -## stl_sort(X) - - -################################################### -### code chunk number 54: Rcpp-FAQ.Rnw:1720-1723 (eval = FALSE) -################################################### -## x <- c("B", "b", "c", "A", "a") -## sort(x) -## rcpp_sort(x) - - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.Rnw b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.Rnw deleted file mode 100644 index 945e499..0000000 --- a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.Rnw +++ /dev/null @@ -1,1730 +0,0 @@ -% !Rnw driver = highlight::HighlightWeaveLatex() -\documentclass[10pt]{article} -%\VignetteIndexEntry{Rcpp-FAQ} -%\VignetteEngine{highlight::highlight} -%\VignetteKeywords{Rcpp, FAQ} -%\VignetteDepends{Rcpp} - -\usepackage[USletter]{vmargin} -\setmargrb{0.75in}{0.75in}{0.75in}{0.75in} - -\usepackage{color,alltt} -\usepackage[authoryear,round,longnamesfirst]{natbib} -\usepackage[colorlinks]{hyperref} -\definecolor{link}{rgb}{0,0,0.3} %% next few lines courtesy of RJournal.sty -\hypersetup{ - colorlinks,% - citecolor=link,% - filecolor=link,% - linkcolor=link,% - urlcolor=link -} - -\usepackage{microtype} %% cf http://www.khirevich.com/latex/microtype/ -\usepackage[T1]{fontenc} %% cf http://www.khirevich.com/latex/font/ -\usepackage[bitstream-charter]{mathdesign} %% cf http://www.khirevich.com/latex/font/ - -\newcommand{\proglang}[1]{\textsf{#1}} -\newcommand{\pkg}[1]{{\fontseries{b}\selectfont #1}} -\newcommand{\code}[1]{\texttt{#1}} -\newcommand{\R}[0]{\proglang{R}} -\newcommand{\Rs}[0]{\proglang{R }} - -%% defined as a stop-gap measure til interaction with highlight is sorted out -\newcommand{\hlboxlessthan}{ \hlnormalsizeboxlessthan} -\newcommand{\hlboxgreaterthan}{\hlnormalsizeboxgreaterthan} -\newcommand{\hlboxopenbrace}{ \hlnormalsizeboxopenbrace} -\newcommand{\hlboxclosebrace}{ \hlnormalsizeboxclosebrace} -\newcommand{\hlboxbacktick}{ \hlnormalsizeboxbacktick} -\newcommand{\hlboxunderscore}{ \hlnormalsizeboxunderscore} - -%% This corresponds to setting boxes=TRUE for highlight -\newsavebox{\hlbox} -\definecolor{hlBg}{rgb}{0.949019607843137,0.949019607843137,0.949019607843137} -\definecolor{hlBd}{rgb}{0.9,0.9,0.9} % border -\renewenvironment{Hchunk}{\vspace{0.5em}\noindent\begin{lrbox}{\hlbox}\begin{minipage}[b]{.9\textwidth}}% - {\end{minipage}\end{lrbox}\fcolorbox{hlBd}{hlBg}{\usebox{\hlbox}}\vspace{0.5em}} - -\newcommand{\faq}[1]{FAQ~\ref{#1}} -\newcommand{\rdoc}[2]{\href{http://www.rdocumentation.org/packages/#1/functions/#2}{\code{#2}}} - -<>= -prettyVersion <- packageDescription("Rcpp")$Version -prettyDate <- format(Sys.Date(), "%B %e, %Y") -require(Rcpp) -require(inline) -require(highlight) -@ - -\author{Dirk Eddelbuettel \and Romain Fran\c{c}ois} -\title{Frequently Asked Questions about \pkg{Rcpp}} -\date{\pkg{Rcpp} version \Sexpr{prettyVersion} as of \Sexpr{prettyDate}} - - -\begin{document} -\maketitle - -\abstract{ - \noindent This document attempts to answer the most Frequently Asked - Questions (FAQ) regarding the \pkg{Rcpp} - \citep{CRAN:Rcpp,JSS:Rcpp,Eddelbuettel:2013:Rcpp} package. -} - -\tableofcontents - -\section{Getting started} - -\subsection{How do I get started ?} - -If you have \pkg{Rcpp} installed, please execute the following command in \proglang{R} -to access the introductory vignette (which is a variant of the \citet{JSS:Rcpp} -paper) for a detailed introduction, ideally followed by at least the -Rcpp Attributes \citep{CRAN:Rcpp:Attributes} vignette: - -<>= -vignette("Rcpp-introduction") -vignette("Rcpp-attributes") -@ - -If you do not have \pkg{Rcpp} installed, these documents should also be available -whereever you found this document, \textsl{i.e.,} on every mirror of CRAN site. - -\subsection{What do I need ?} - -Obviously, \proglang{R} must be installed. \pkg{Rcpp} provides a -\proglang{C++} API as an extension to the \proglang{R} system. As such, it -is bound by the choices made by \proglang{R} and is also influenced by how -\proglang{R} is configured. - -In general, the standard environment for building a CRAN package from source -(particularly when it contains \proglang{C} or \proglang{C++} code) is required. This -means one needs: -\begin{itemize} -\item a development environment with a suitable compiler (see - below), header files and required libraries; -\item \proglang{R} should be built in a way that permits linking and possibly - embedding of \proglang{R}; this is typically ensured by the - \texttt{--enable-shared-lib} option; -\item standard development tools such as \texttt{make} etc. -\end{itemize} - -Also see the \href{http://www.rstudio.com/ide/docs/packages/prerequisites}{RStudio - documentation} on pre-requisites for R package development. - -\subsection{What compiler can I use ?} - -On almost all platforms, the GNU Compiler Collection (or \texttt{gcc}, which -is also the name of its \proglang{C} language compiler) has to be used along -with the corresponding \texttt{g++} compiler for the \proglang{C++} language. -A minimal suitable version is a final 4.2.* release; earlier 4.2.* were -lacking some \proglang{C++} features (and even 4.2.1, still used on OS X as the -last gcc release), has issues). - -Generally speaking, the default compilers on all the common platforms are suitable. - -Specific per-platform notes: -\begin{description} - \item[Windows] users need the \texttt{Rtools} package from the site maintained by - Duncan Murdoch which contains all the required tools in a single package; - complete instructions specific to Windows are in the `R Administration' - manual \citep[Appendix D]{R:Administration}. As of August 2014, it still - installs the \texttt{gcc/g++} 4.6.* compiler which limits the ability to use - modern C++ standards so only \code{s-std=c++0x} is supported. R 3.1.0 and - above detect this and set appropriate flags. - \item[OS X] users, as noted in the `R Administration' manual \citep[Appendix - C.4]{R:Administration}, need to install the Apple Developer Tools - (\textsl{e.g.}, \href{https://itunes.apple.com/us/app/xcode/id497799835?mt=12}{Xcode} (OS X $\le 10.8$) or \href{https://developer.apple.com/library/ios/technotes/tn2339/_index.html}{Xcode Command Line Tools} (OS X $\ge 10.9$) (as well as \texttt{gfortran} if \proglang{R} or - Fortran-using packages are to be built); also see \faq{q:OSX} and - \faq{q:OSXArma} below. Depending on whether on OS X release before or after - Mavericks is used, different additional installation may be needed. Consult - the \code{r-sig-mac} list (and its archives) for (current) details. - \item[Linux] user need to install the standard developement packages. Some - distributions provide helper packages which pull in all the required - packages; the \texttt{r-base-dev} package on Debian and Ubuntu is an example. -\end{description} - -The \texttt{clang} and \texttt{clang++} compilers from the LLVM project can -also be used. On Linux, they are inter-operable with \texttt{gcc} et al. On -OS X, they are unfortunately not ABI compatible. The \texttt{clang++} -compiler is interesting as it emits much more comprehensible error messages -than \texttt{g++} (though \texttt{g++} 4.8 and 4.9 have caught up). - -The Intel \texttt{icc} family has also been used successfully as its output -files can also be combined with those from \texttt{gcc}. - -\subsection{What other packages are useful ?} - -Additional packages that we have found useful are - -\begin{description} -\item[\pkg{inline}] which is invaluable for direct compilation, linking and loading - of short code snippets---but now effectively superseded by the Rcpp - Attributes (see \faq{using-attributes} and - \faq{prototype-using-attributes}) feature provided by \pkg{Rcpp}; -\item[\pkg{RUnit}] is used for unit testing; the package is recommended and - will be needed to re-run some of our tests but it is not strictly required - during use of \pkg{Rcpp}; -\item[\pkg{rbenchmark}] to run simple timing comparisons and benchmarks; it is also - recommended but not required. -\item[\pkg{microbenchmark}] is an alternative for benchmarking. -\item[\pkg{devtools}] can help the process of building, compiling and testing - a package but it too is entirely optional. -\end{description} - -\subsection{What licenses can I choose for my code?} - -The \pkg{Rcpp} package is licensed under the terms of the -\href{http://www.gnu.org/licenses/gpl-2.0.html}{GNU GPL 2 or later}, just like -\proglang{R} itself. A key goal of the \pkg{Rcpp} package is to make -extending \proglang{R} more seamless. But by \textsl{linking} your code against -\proglang{R} (as well as \pkg{Rcpp}), the combination is bound by the GPL as -well. This is very clearly -stated at the -\href{https://www.gnu.org/licenses/gpl-faq.html#GPLStaticVsDynamic}{FSF website}: - -\begin{quote} - Linking a GPL covered work statically or dynamically with other modules is - making a combined work based on the GPL covered work. Thus, the terms and - conditions of the GNU General Public License cover the whole combination. -\end{quote} - -So you are free to license your work under whichever terms you find suitable -(provided they are GPL-compatible, see the -\href{http://www.gnu.org/licenses/licenses.html}{FSF site for details}). However, -the combined work will remain under the terms and conditions of the GNU General -Public License. This restriction comes from both \proglang{R} which is GPL-licensed -as well as from \pkg{Rcpp} and whichever other GPL-licensed components you may -be linking against. - - -\section{Compiling and Linking} - -\subsection{How do I use \pkg{Rcpp} in my package ?} -\label{make-package} - -\pkg{Rcpp} has been specifically designed to be used by other packages. -Making a package that uses \pkg{Rcpp} depends on the same mechanics that are -involved in making any \proglang{R} package that use compiled code --- so -reading the \textsl{Writing R Extensions} manual \citep{R:Extensions} is a required -first step. - -Further steps, specific to \pkg{Rcpp}, are described in a separate vignette. - -<>= -vignette("Rcpp-package") -@ - -\subsection{How do I quickly prototype my code?} - -There are two toolchains which can help with this: -\begin{itemize} -\item The older one is provided by the \pkg{inline} package and described in - Section~\ref{using-inline}. -\item Starting with \pkg{Rcpp} 0.10.0, the Rcpp Attributes feature (described - in Section~\ref{using-attributes}) offered an even easier alternative via - the function \rdoc{Rcpp}{evalCpp}, \rdoc{Rcpp}{cppFunction} and - \rdoc{Rcpp}{sourceCpp}. -\end{itemize} -The next two subsections show an example each. - -\subsubsection{Using inline} -\label{using-inline} - -The \pkg{inline} package \citep{CRAN:inline} provides the functions -\rdoc{inline}{cfunction} and \rdoc{inline}{cxxfunction}. Below is a simple -function that uses \texttt{accumulate} from the (\proglang{C++}) Standard -Template Library to sum the elements of a numeric vector. - -<<>>= -fx <- cxxfunction(signature(x = "numeric"), - 'NumericVector xx(x); - return wrap(std::accumulate(xx.begin(), xx.end(), 0.0));', - plugin = "Rcpp") -res <- fx(seq(1, 10, by=0.5)) -res -<>= -stopifnot(identical(res, sum(seq(1, 10, by=0.5)))) -@ - -%\pkg{Rcpp} uses \pkg{inline} to power its entire unit test suite. Consult the -%\texttt{unitTests} directory of \pkg{Rcpp} for several hundred further examples. -% -%< < eval=FALSE>>= -% \list.files( system.file( "unitTests", package = "Rcpp" ), pattern = "^runit[.]" ) -% @ - -One might want to use code that lives in a \proglang{C++} file instead of writing -the code in a character string in R. This is easily achieved by using -\rdoc{base}{readLines}: - -<>= -fx <- cxxfunction(signature(), paste(readLines("myfile.cpp"), collapse="\n"), - plugin = "Rcpp") -@ - -The \texttt{verbose} argument of \rdoc{inline}{cxxfunction} is very -useful as it shows how \pkg{inline} runs the show. - -\subsubsection{Using Rcpp Attributes} -\label{using-attributes} - -Rcpp Attributes \citep{CRAN:Rcpp:Attributes}, and also discussed in -\faq{prototype-using-attributes} below, permits an even easier -route to integrating R and C++. It provides three key functions. First, \rdoc{Rcpp}{evalCpp} -provide a means to evaluate simple C++ expression which is often useful for -small tests, or to simply check if the toolchain is set up -correctly. Second, \rdoc{Rcpp}{cppFunction} can be used to create C++ functions -for R use on the fly. Third, \code{Rcpp}{sourceCpp} can integrate entire files in -order to define multiple functions. - -The example above can now be rewritten as: - -<<>>= -cppFunction('double accu(NumericVector x) { - return(std::accumulate(x.begin(), x.end(), 0.0)); -}') -res <- accu(seq(1, 10, by=0.5)) -res -@ - -The \rdoc{Rcpp}{cppFunction} parses the supplied text, extracts the desired -function names, creates the required scaffolding, compiles, links and loads -the supplied code and makes it available under the selected identifier. - -Similarly, \rdoc{Rcpp}{sourceCpp} can read in a file and compile, link and load -the code therein. - -\subsection{How do I convert my prototyped code to a package ?} -\label{from-inline-to-package} - -Since release 0.3.5 of \pkg{inline}, one can combine \faq{using-inline} and -\faq{make-package}. See \verb|help("package.skeleton-methods")| once -\pkg{inline} is loaded and use the skeleton-generating functionality to -transform a prototyped function into the minimal structure of a package. -After that you can proceed with working on the package in the spirit of -\faq{make-package}. - -Rcpp Attributes \citep{CRAN:Rcpp:Attributes} also offers a means to convert -functions written using Rcpp Attributes into a function via the -\rdoc{Rdoc}{compileAttributes} function; see the vignette for details. - -\subsection{How do I quickly prototype my code in a package?} -\label{using-a-package} - -The simplest way may be to work directly with a package. Changes to both the -\proglang{R} and \proglang{C++} code can be compiled and tested from the -command line via: - -<>= -$ R CMD INSTALL mypkg && Rscript --default-packages=mypkg -e 'someFunctionToTickle(3.14)' -@ - -This first installs the packages, and then uses the command-line tool -\rdoc{utils}{Rscript} (which ships with \code{R}) to load the package, and execute -the \proglang{R} expression following the \code{-e} switch. Such an -expression can contain multiple statements separated by semicolons. -\rdoc{utils}{Rscript} is available on all three core operating systems. - -On Linux, one can also use \code{r} from the \code{littler} package by Horner -and Eddelbuettel which is an alternative front end to \proglang{R} designed -for both \verb|#!| (hashbang) scripting and command-line use. It has slightly -faster start-up times than \rdoc{utils}{Rscript}; and both give a guaranteed clean -slate as a new session is created. - -The example then becomes - -<>= -$ R CMD INSTALL mypkg && r -l mypkg -e 'someFunctionToTickle(3.14)' -@ - -The \code{-l} option calls 'suppressMessages(library(mypkg))' before executing the -\proglang{R} expression. Several packages can be listed, separated by a comma. - -More choice are provide by the \pkg{devtools} package, and by using -RStudio. See the respective documentation for details. - -\subsection{But I want to compile my code with R CMD SHLIB !} -\label{using-r-cmd-shlib} - -The recommended way is to create a package and follow \faq{make-package}. The -alternate recommendation is to use \pkg{inline} and follow \faq{using-inline} -because it takes care of all the details. - -However, some people have shown that they prefer not to follow recommended -guidelines and compile their code using the traditional \texttt{R CMD SHLIB}. To -do so, we need to help \texttt{SHLIB} and let it know about the header files -that \pkg{Rcpp} provides and the \proglang{C++} library the code must link -against. - -On the Linux command-line, you can do the following:\newline -<>= -$ export PKG_LIBS=`Rscript -e "Rcpp:::LdFlags()"` # if Rcpp older than 0.11.0 -$ export PKG_CXXFLAGS=`Rscript -e "Rcpp:::CxxFlags()"` -$ R CMD SHLIB myfile.cpp -@ -which first defines and exports two relevant environment variables which -\texttt{R CMD SHLIB} then relies on. On other operating systems, appropriate -settings may have to be used to define the environment variables. - -This approach corresponds to the very earliest ways of building programs and -can still be found in some deprecated documents (as \textit{e.g.} some of -Dirk's older 'Intro to HPC with R' tutorial slides). It is still not -recommended as there are tools and automation mechanisms that can do the work -for you. - -\pkg{Rcpp} versions 0.11.0 or later can do with the definition of -\code{PKG\_LIBS} as a user-facing library is no longer needed (and hence no -longer shipped with the package). One still needs to set \code{PKG\_CXXFLAGS} -to tell R where the \pkg{Rcpp} headers files are located. - -Once \code{R CMD SHLIB} has created the dyanmically-loadable file (with -extension \code{.so} on Linux, \code{.dylib} on OS X or \code{.dll} on -Windows), it can be loaded in an R session via \rdoc{base}{dyn.load}, and the -function can be executed via \rdoc{base}{.Call}. Needless to say, we -\emph{strongly} recommend using a package, or at least Rcpp Attributes as -either approach takes care of a lot of these tedious and error-prone manual -steps. - - -\subsection{But R CMD SHLIB still does not work !} - -We have had reports in the past where build failures occurred when users had -non-standard code in their \verb|~/.Rprofile| or \texttt{Rprofile.site} (or -equivalent) files. - -If such code emits text on \texttt{stdout}, the frequent and implicit -invocation of \texttt{Rscript -e "..."} (as in \faq{using-r-cmd-shlib} -above) to retrieve settings directly from \pkg{Rcpp} will fail. - -You may need to uncomment such non-standard code, or protect it by wrapping -it inside \texttt{if (interactive())}, or possibly try to use \texttt{Rscript - --vanilla} instead of plain \texttt{Rscript}. - - -\subsection{What about \texttt{LinkingTo} ?} - -\proglang{R} has only limited support for cross-package linkage. - -We now employ the \texttt{LinkingTo} field of the \texttt{DESCRIPTION} file -of packages using \pkg{Rcpp}. But this only helps in having \proglang{R} -compute the location of the header files for us. - -The actual library location and argument still needs to be provided by the -user. How to do so has been shown above, and we recommned you use either -\faq{make-package} or \faq{using-inline} both which use the \pkg{Rcpp} -function \texttt{Rcpp:::LdFlags()}. - -If and when \texttt{LinkingTo} changes and lives up to its name, we will be -sure to adapt \pkg{Rcpp} as well. - -An important change arrive with \pkg{Rcpp} release 0.11.0 and concern the -automatic registration of functions; see Section~\ref{function-registration} below. - - -\subsection{Does \pkg{Rcpp} work on windows ?} - -Yes of course. See the Windows binaries provided by CRAN. - -\subsection{Can I use \pkg{Rcpp} with Visual Studio ?} - -Not a chance. - -And that is not because we are meanies but because \proglang{R} and Visual -Studio simply do not get along. As \pkg{Rcpp} is all about extending -\proglang{R} with \proglang{C++} interfaces, we are bound by the available -toolchain. And \proglang{R} simply does not compile with Visual Studio. Go -complain to its vendor if you are still upset. - -\subsection{I am having problems building Rcpp on OS X, any help ?} -\label{q:OSX} - -There are three known issues regarding Rcpp build problems on OS X. If you are -building packages with RcppArmadillo, there is yet another issue that is -addressed separately in \faq{q:OSXArma} below. - -\subsubsection{Lack of a Compiler} -By default, OS X does not ship with an active compiler. To enable a compiler one -must either install -\href{https://itunes.apple.com/us/app/xcode/id497799835?mt=12}{Xcode} (OS X -$\le 10.8$) or -\href{https://developer.apple.com/library/ios/technotes/tn2339/_index.html}{Xcode - Command Line Tools} (OS X $\ge 10.9$). We will focus on the later as the -installation requires the use of \texttt{Terminal} and the install size is -significantly less than the prior, which is setup using an installer. - -To install XCode Command Line Tools, one must do the following: - -\begin{enumerate} - \item Open \texttt{Terminal} found in \texttt{/Applications/Utilities/} - \item Type the following: - -<>= -$ xcode-select --install -@ - \item Press "Install" on the window that pops up. - \item After the installation is complete, type the following in \texttt{Terminal} to ensure the installation was successful: - -<>= -$ gcc --version -@ -\end{enumerate} - -After major system updates, e.g. going from version 10.11 to 10.12, you may need -to accept the terms and licenses associated the the Xcode command line tools -prior to being allowed to compile again. - -To do so, open the \texttt{Terminal} found in \texttt{/Applications/Utilities/} and type: - -<>= -$ git -@ - -Press spacebar to move down to the end of the file. There, you should see a -prompt asking whether or not you accept the terms via either "Yes" or -"No". Enter "Yes" if you agree to the terms to have the command line tools -reactivated. - -\subsubsection{Differing Mac OS X R Versions Leading to Binary Failures} - -There are currently two distinct versions of R for OS X. The first version is a -legacy version meant for Mac OS X 10.6 (Snow Leopard) - 10.8 (Mountain -Lion). The second version is for more recent system Mac OS X 10.9 (Mavericks), -10.10 (Yosemite), 10.11 (El Capitan). The distinction comes as a result of a -change in the compilers shipped with the operating system. As a result, avoid -sending package binaries if it is known that your collaborators are working on -older systems as the R binaries for these two versions will not be able to mix. - -\subsubsection{No OpenMP Support} -The OS X operating environment lacks the ability to parallelize sections of code -using the \href{http://openmp.org/wp/}{OpenMP} standard. As a result, make sure -to protect any reference to OpenMP. In this case, protect the inclusion of -headers with: - -<>= -#ifdef _OPENMP - #include -#endif -@ - -And when one goes to parallelize portions of code use: - -<>= -#ifdef _OPENMP - // multithreaded OpenMP version of code -#else - // single-threaded version of code -#endif -@ - -Doing so will enable the parallelization of the process on Linux and Windows. In -the event that Apple enables OpenMP later on, this code will also allow for -parallelization to occur. - -The reason for the lack of OpenMP support is because under OS X, you are not -using the \texttt{gcc} compiler. Instead, all the requests are being redirected -to \texttt{llvm}. As of LLVM 3.7, the -\href{https://clang-omp.github.io/}{community initiative} to enable OpenMP has -been merged into the \href{http://openmp.llvm.org/}{official branch}. Thus, -there is hope in the next release of Xcode (around WWDC in June 2016) that -OpenMP will work on OS X. - - -\subsubsection{Additional Information / Help} - -Below are additional resources that provide information regarding compiling Rcpp code on OS X. - -\begin{enumerate} - \item A helpful post was provided by Brian Ripley regarding the use of - compiling R code with OS X in April 2014 - \href{https://stat.ethz.ch/pipermail/r-sig-mac/2014-April/010835.html}{on - the \code{r-sig-mac} list}, which is generally recommended for OS - X-specific questions and further consultation. - \item Another helpful write-up for installation / compilation on OS X Mavericks is provided - \href{http://www.bioconductor.org/developers/how-to/mavericks-howto/}{by the BioConductor project}. - \item Lastly, another resource that exists for installation / compilation - help is provided at - \url{http://thecoatlessprofessor.com/programming/r-compiler-tools-for-rcpp-on-os-x/}. -\end{enumerate} - -\textbf{Note:} If you are running into trouble compiling code with RcppArmadillo, please also see \faq{q:OSXArma} listed below. - -%At the time of writing this paragraph (in the spring of 2011), \pkg{Rcpp} -%(just like CRAN) supports all OS X releases greater or equal to 10.5. -%However, building \pkg{Rcpp} from source (or building packages using -%\pkg{Rcpp}) also requires a recent-enough version of Xcode. For the -%\textsl{Leopard} release of OS X, the current version is 3.1.4 which can be -%downloaded free of charge from the Apple Developer site. Users may have to -%manually select \code{g++-4.2} via the symbolic link \code{/usr/bin/g++}. -%The \textsl{Snow Leopard} release already comes with Xcode 3.2.x and work as -%is. - -\subsection{Does \pkg{Rcpp} work on solaris/suncc ?} - -Yes, it generally does. But as we do not have access to such systems, some -issues persist on the CRAN test systems. - -\subsection{Does \pkg{Rcpp} work with Revolution R ?} - -We have not tested it yet. \pkg{Rcpp} might need a few tweaks to work -with the compilers used by Revolution R (if those differ from the defaults). - -\subsection{Is it related to CXXR ?} - -CXXR is an ambitious project that aims to totally refactor the \proglang{R} -interpreter in \proglang{C++}. There are a few similaritites with \pkg{Rcpp} -but the projects are unrelated. - -CXXR and \pkg{Rcpp} both want \proglang{R} to make more use of \proglang{C++} -but they do it in very different ways. - -\subsection{How do I quickly prototype my code using Attributes?} -\label{prototype-using-attributes} - -\pkg{Rcpp} version 0.10.0 and later offer a new feature 'Rcpp Attributes' -which is described in detail in its own vignette -\citep{CRAN:Rcpp:Attributes}. In short, it offers functions \rdoc{Rcpp}{evalCpp}, -\rdoc{Rcpp}{cppFunction} and \rdoc{Rcpp}{sourceCpp} which extend the functionality of the -\rdoc{Rcpp}{cxxfunction} function. - - -\subsection{What about the new 'no-linking' feature??} -\label{function-registration} - -Starting with \pkg{Rcpp} 0.11.0, functionality provided by \pkg{Rcpp} and -used by packages built with \pkg{Rcpp} accessed via the registration facility -offered by R (and which is used by \pkg{lme4} and \pkg{Matrix}, as well as by -\pkg{xts} and \pkg{zoo}). This requires no effort from the user / -programmer, and even frees us from explicit linking instruction. In most -cases, the files \code{src/Makevars} and \code{src/Makevars.win} can now be -removed. Exceptions are the use of \pkg{RcppArmadillo} (which needs an entry -\verb|PKG_LIBS=$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)|) and packages linking -to external libraries they use. - -But for most packages using \pkg{Rcpp}, only two things are required: -\begin{itemize} -\item an entry in \code{DESCRIPTION} such as \code{Imports: Rcpp} (which may - be versioned as in \code{Imports: Rcpp (>= 0.11.0)}), and -\item an entry in \code{NAMESPACE} to ensure \pkg{Rcpp} is correctly - instantiated, for example \code{importFrom(Rcpp, evalCpp)}. -\end{itemize} - -The name of the symbol does not really matter; once one symbol is imported all -symbols should be available. - -\subsection{I am having problems building RcppArmadillo on OS X, any help ?} -\label{q:OSXArma} - -Odds are your build failures are due to the absence of \texttt{gfortran} -and its associated libraries. The errors that you may receive are related to either: -\begin{center} -\textbf{``-lgfortran''} or \textbf{``-lquadmath''} -\end{center} - -To rectify the root of these errors, there are two options available. The first option is to download and use a fixed set of \texttt{gfortran} binaries that are used to compile R for OS X (e.g. given by the maintainers of the OS X build). The second option is to either use pre-existing \texttt{gfortran} binaries on your machine or download the latest. - -\subsubsection{Fixed set of \texttt{gfortran} binaries} - -Within this option, you will install a pre-compiled \code{gfortran} binary from -\href{http://r.research.att.com/libs/}{\texttt{r.research.att.com/libs/}}. The binary listed here was compiled by Simon Urbanek the maintainer of the OS X R versions. - -To install the pre-compiled \code{gfortran} binary, do the following: -\begin{enumerate} - \item Open \texttt{Terminal} found in \texttt{/Applications/Utilities/} - \item Type the following: - -<>= -curl -O http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2 -sudo tar fvxz gfortran-4.8.2-darwin13.tar.bz2 -C / -@ - -\end{enumerate} - -For more information on this error, please see TheCoatlessProfessor's \href{http://thecoatlessprofessor.com/programming/rcpp-rcpparmadillo-and-os-x-mavericks-lgfortran-and-lquadmath-error/}{Rcpp, RcppArmadillo and OS X Mavericks "-lgfortran" and "-lquadmath" error}. - -\subsubsection{Pre-existing or latest \texttt{gfortran} binaries} - -Most OS X users that have a pre-existing \texttt{gfortran} binaries or want the latest version, typically use a custom packaging solution to install \texttt{gfortran}; -\href{https://www.macports.org/}{\texttt{macports}}, -\href{http://brew.sh/}{\texttt{homebrew}}, and -\href{http://www.finkproject.org/}{\texttt{fink}} are the usual suspects -here. In general, we recommend using homebrew, and we provide a short -set of instructions for installing \texttt{gfortran} below. - -After installing \texttt{homebrew} by -\href{http://brew.sh/}{following the instructions here}, -you can install the latest version of \texttt{gfortran} with: - - \code{brew install gcc} - -Note that \texttt{gfortran} is available as part of the \texttt{gcc} -'formula' by default and cannot be downloaded separately, but one can -freely use \texttt{gfortran} with Apple (or LLVM) \texttt{clang} -compilers (as used by default on OS X since Mavericks). - -You may need to set the \code{FLIBS} variable in your -\texttt{~/.R/Makevars} to point to the location of the \texttt{gfortran} -library paths. A solution is outlined -\href{http://stackoverflow.com/questions/29992066/rccp-warning-directory-not-found-for-option-l-usr-local-cellar-gfortran-4-8/29993906#29993906}{on - StackOverflow}, but the relevant details are copied in brief here. - -In short, you want to add this entry to your \texttt{~/.R/Makevars}: - -<>= -FLIBS=`gfortran -print-search-dirs | grep ^libraries: | sed 's|libraries: =||' | sed 's|:| -L|g' | sed 's|^|-L|'` -@ - -This invocation explicitly asks and constructs the library link paths -from the \texttt{gfortran}'s reported search paths, and produces a set -of paths suitable to be passed to \code{FLIBS}. \R will then search -these paths when attempting to locate e.g \code{libgfortran} when -compiling \pkg{RcppArmadillo} or other FORTRAN-dependent code. - -Also see \faq{q:OSX} above, and the links provided in that answer. In the event -the above solution does not satisfy all the OS X build problems. - -\section{Examples} - -The following questions were asked on the -\href{https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel}{Rcpp-devel} -mailing list, which is our preferred place to ask questions as it guarantees -exposure to a number of advanced Rcpp users. The -\href{http://stackoverflow.com/questions/tagged/rcpp}{StackOverflow tag for - rcpp} is an alternative; that site is also easily searchable. - -Several dozen fully documented examples are provided at the -\href{http://gallery.rcpp.org}{Rcpp Gallery} -- which is also open for new contributions. - - -\subsection{Can I use templates with \pkg{Rcpp} ? } - -\begin{quote} - \emph{I'm curious whether one can provide a class definition inline in an R - script and then initialize an instance of the class and call a method on - the class, all inline in R.} -\end{quote} - -This question was initially about using templates with \pkg{inline}, and we -show that (older) answer first. It is also easy with Rcpp Attributes which is -what we show below. - -\subsubsection{Using inline} - -\noindent Most certainly, consider this simple example of a templated class -which squares its argument: - -<>= -inc <- 'template - class square : public std::unary_function { - public: - T operator()( T t) const { return t*t ;} - }; - ' - -src <- ' - double x = Rcpp::as(xs); - int i = Rcpp::as(is); - square sqdbl; - square sqint; - return Rcpp::DataFrame::create(Rcpp::Named("x", sqdbl(x)), - Rcpp::Named("i", sqint(i))); - ' -fun <- cxxfunction(signature(xs="numeric", is="integer"), - body=src, include=inc, plugin="Rcpp") - -fun(2.2, 3L) -@ - -\subsubsection{Using Rcpp Attributes} - -We can also use 'Rcpp Attributes' \citep{CRAN:Rcpp:Attributes}---as described -in \faq{using-attributes} and \faq{prototype-using-attributes} above. Simply -place the following code into a file and use \rdoc{Rcpp}{sourceCpp} on it. It -will even run the R part at the end. - -<>= -#include - -template class square : public std::unary_function { -public: - T operator()( T t) const { return t*t ;} -}; - -// [[Rcpp::export]] -Rcpp::DataFrame fun(double x, int i) { - square sqdbl; - square sqint; - return Rcpp::DataFrame::create(Rcpp::Named("x", sqdbl(x)), - Rcpp::Named("i", sqint(i))); -} - -/*** R -fun(2.2, 3L) -*/ -@ - -\subsection{Can I do matrix algebra with \pkg{Rcpp} ?} -\label{matrix-algebra} - -\begin{quote} - \emph{\pkg{Rcpp} allows element-wise operations on vector and matrices through - operator overloading and STL interface, but what if I want to multiply a - matrix by a vector, etc ...} -\end{quote} - -\noindent Currently, \pkg{Rcpp} does not provide binary operators to allow operations -involving entire objects. Adding operators to \pkg{Rcpp} would be a major -project (if done right) involving advanced techniques such as expression -templates. We currently do not plan to go in this direction, but we would -welcome external help. Please send us a design document. - -However, we have developed the \pkg{RcppArmadillo} package -\citep{CRAN:RcppArmadillo,Eddelbuettel+Sanderson:2014:RcppArmadillo} that -provides a bridge between \pkg{Rcpp} and \pkg{Armadillo} -\citep{Sanderson:2010:Armadillo}. \pkg{Armadillo} -supports binary operators on its types in a way that takes full advantage of -expression templates to remove temporaries and allow chaining of -operations. That is a mouthful of words meaning that it makes the code go -faster by using fiendishly clever ways available via the so-called template -meta programming, an advanced \proglang{C++} technique. -Also, the \pkg{RcppEigen} package \citep{JSS:RcppEigen} provides an alternative using the -\href{http://eigen.tuxfamily.org}{Eigen} template library. - -\subsubsection{Using inline} - -The following example is adapted from the examples available at the project -page of Armadillo. It calculates $ x' \times Y^{-1} \times z$ - -<>= - // copy the data to armadillo structures - arma::colvec x = Rcpp::as (x_); - arma::mat Y = Rcpp::as(Y_) ; - arma::colvec z = Rcpp::as(z_) ; - - // calculate the result - double result = arma::as_scalar(arma::trans(x) * arma::inv(Y) * z); - - // return it to R - return Rcpp::wrap( result ); -@ - -%% Running this now makes the package depend on RcppArmadillo being installed -%% and would require at least a Suggests - -If stored in a file \code{myfile.cpp}, we can use it via \pkg{inline}: - -<>= -fx <- cxxfunction(signature(x_="numeric", Y_="matrix", z_="numeric" ), - paste(readLines("myfile.cpp"), collapse="\n"), - plugin="RcppArmadillo" ) -fx(1:4, diag(4), 1:4) -@ -<>= -unlink("myfile.cpp") -@ - -The focus is on the code \verb|arma::trans(x) * arma::inv(Y) * z|, which -performs the same operation as the R code \verb|t(x) %*% solve(Y) %*% z|, -although Armadillo turns it into only one operation, which makes it quite fast. -Armadillo benchmarks against other \proglang{C++} matrix algebra libraries -are provided on \href{http://arma.sourceforge.net/speed.html}{the Armadillo website}. - -It should be noted that code below depends on the version \texttt{0.3.5} of -\pkg{inline} and the version \texttt{0.2.2} of \pkg{RcppArmadillo} - -\subsubsection{Using Rcpp Attributes} - -We can also write the same example for use with Rcpp Attributes: - -<>= -#include - -// [[Rcpp::depends(RcppArmadillo)]] - -// [[Rcpp::export]] -double fx(arma::colvec x, arma::mat Y, arma::colvec z) { - // calculate the result - double result = arma::as_scalar(arma::trans(x) * arma::inv(Y) * z); - return result; -} - -/*** R -fx(1:4, diag(4), 1:4) -*/ -@ - -Here, the additional \code{Rcpp::depends(RcppArmadillo)} ensures that code -can be compiled against the \pkg{RcppArmadillo} header, and that the correct -libraries are linked to the function built from the supplied code example. - -Note how we do not have to concern ourselves with conversion; R object -automatically become (Rcpp)Armadillo objects and we can focus on the single -computing a (scalar) result. - - - -\subsection{Can I use code from the Rmath header and library with \pkg{Rcpp} ?} - -\begin{quote} - \emph{Can I call functions defined in the Rmath header file and the - standalone math library for R--as for example the random number generators?} -\end{quote} - -\noindent Yes, of course. This math library exports a subset of R, but \pkg{Rcpp} has -access to much more. Here is another simple example. Note how we have to use -and instance of the \texttt{RNGScope} class to set and re-set the -random-number generator. This also illustrates Rcpp sugar as we are using a -vectorised call to \texttt{rnorm}. Moreover, because the RNG is reset, the -two calls result in the same random draws. If we wanted to control the draws, -we could explicitly set the seed after the \texttt{RNGScope} object has been -instantiated. - -<<>>= -fx <- cxxfunction(signature(), - 'RNGScope(); - return rnorm(5, 0, 100);', - plugin="Rcpp") -set.seed(42) -fx() -fx() -@ - -Newer versions of Rcpp also provide the actual Rmath function in the \code{R} -namespace, \textsl{i.e.} as \code{R::rnorm(m,s)} to obtain a scalar -random variable distributed as $N(m,s)$. - -Using Rcpp Attributes, this can be as simple as - -<<>>= -cppFunction('Rcpp::NumericVector ff(int n) { return rnorm(n, 0, 100); }') -set.seed(42) -ff(5) -ff(5) -set.seed(42) -rnorm(5, 0, 100) -rnorm(5, 0, 100) -@ - -This illustrates the Rcpp Attributes adds the required \code{RNGScope} object -for us. It also shows how setting the seed from R affects draws done via C++ -as well as R, and that identical random number draws are obtained. - -\subsection{Can I use NA and Inf with \pkg{Rcpp} ?} - -\begin{quote} - \emph{R knows about NA and Inf. How do I use them from C++?} -\end{quote} - -\noindent Yes, see the following example: - -<<>>= -src <- 'Rcpp::NumericVector v(4); - v[0] = R_NegInf; // -Inf - v[1] = NA_REAL; // NA - v[2] = R_PosInf; // Inf - v[3] = 42; // see the Hitchhiker Guide - return Rcpp::wrap(v);' -fun <- cxxfunction(signature(), src, plugin="Rcpp") -fun() -@ - -Similarly, for Rcpp Attributes: - -<>= -#include - -// [[Rcpp::export]] -Rcpp::NumericVector fun(void) { - Rcpp::NumericVector v(4); - v[0] = R_NegInf; // -Inf - v[1] = NA_REAL; // NA - v[2] = R_PosInf; // Inf - v[3] = 42; // see the Hitchhiker Guide - return v; -} -@ - -\subsection{Can I easily multiply matrices ?} - -\begin{quote} - \emph{Can I multiply matrices easily?} -\end{quote} - -\noindent Yes, via the \pkg{RcppArmadillo} package which builds upon \pkg{Rcpp} and the -wonderful Armadillo library described above in \faq{matrix-algebra}: - -<>= -txt <- 'arma::mat Am = Rcpp::as< arma::mat >(A); - arma::mat Bm = Rcpp::as< arma::mat >(B); - return Rcpp::wrap( Am * Bm );' -mmult <- cxxfunction(signature(A="numeric", B="numeric"), - body=txt, plugin="RcppArmadillo") -A <- matrix(1:9, 3, 3) -B <- matrix(9:1, 3, 3) -C <- mmult(A, B) -@ -% < < echo=FALSE,print=FALSE > > = -% A <- matrix(1:9, 3, 3) -% B <- matrix(9:1, 3, 3) -% A %*% B -% @ - -Armadillo supports a full range of common linear algebra operations. - -The \pkg{RcppEigen} package provides an alternative using the -\href{http://eigen.tuxfamily.org}{Eigen} template library. - -Rcpp Attributes, once again, makes this even easier: - -<>= - -#include - -// [[Rcpp::depends(RcppArmadillo)]] - -// [[Rcpp::export]] -arma::mat mult(arma::mat A, arma::mat B) { - return A*B; -} - -/*** R -A <- matrix(1:9, 3, 3) -B <- matrix(9:1, 3, 3) -mult(A,B) -*/ -@ - -which can be built, and run, from R via a simple \rdoc{Rcpp}{sourceCpp} -call---and will also run the small R example at the end. - - -\subsection{How do I write a plugin for \pkg{inline} and/or Rcpp Attributes?} - -\begin{quote} - \emph{How can I create my own plugin for use by the \pkg{inline} package?} -\end{quote} - -\noindent Here is an example which shows how to it using GSL libraries as an -example. This is merely for demonstration, it is also not perfectly general -as we do not detect locations first---but it serves as an example: - -<>= -## simple example of seeding RNG and drawing one random number -gslrng <- ' -int seed = Rcpp::as(par) ; -gsl_rng_env_setup(); -gsl_rng *r = gsl_rng_alloc (gsl_rng_default); -gsl_rng_set (r, (unsigned long) seed); -double v = gsl_rng_get (r); -gsl_rng_free(r); -return Rcpp::wrap(v);' - -plug <- Rcpp:::Rcpp.plugin.maker( - include.before = "#include ", - libs = paste("-L/usr/local/lib/R/site-library/Rcpp/lib -lRcpp", - "-Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib", - "-L/usr/lib -lgsl -lgslcblas -lm")) -registerPlugin("gslDemo", plug ) -fun <- cxxfunction(signature(par="numeric"), gslrng, plugin="gslDemo") -fun(0) -@ -% - -Here the \pkg{Rcpp} function \code{Rcpp.plugin.maker} is used to create a -plugin 'plug' which is then registered, and subsequently used by \pkg{inline}. - -The same plugins can be used by Rcpp Attributes as well. - -\subsection{How can I pass one additional flag to the compiler?} - -\begin{quote} - \emph{How can I pass another flag to the \code{g++} compiler without writing a new plugin?} -\end{quote} - -The quickest way is to modify the return value from an existing plugin. Here -we use the default one from \pkg{Rcpp} itself in order to pass the new flag -\verb|-std=c++0x|. As it does not set the \verb|PKG_CXXFLAGS| variable, we -simply assign this. For other plugins, one may need to append to the existing -values instead. - -<>= -myplugin <- getPlugin("Rcpp") -myplugin$env$PKG_CXXFLAGS <- "-std=c++11" -f <- cxxfunction(signature(), settings=myplugin, body=' -+ std::vector x = { 1.0, 2.0, 3.0 }; // fails without -std=c++0x -+ return Rcpp::wrap(x); -+ ') -f() -@ - -For Rcpp Attributes, the attributes \code{Rcpp::plugin()} can be -used. Currently supported plugins are for C++11 as well as for OpenMP. - -\subsection{How can I set matrix row and column names ?} - -\begin{quote} - \emph{Ok, I can create a matrix, but how do I set its row and columns names?} -\end{quote} - -Pretty much the same way as in \proglang{R} itself: We define a list with two -character vectors, one each for row and column names, and assign this to the -\code{dimnames} attribute: - -<>= -src <- ' - Rcpp::NumericMatrix x(2,2); - x.fill(42); // or more interesting values - Rcpp::List dimnms = // two vec. with static names - Rcpp::List::create(Rcpp::CharacterVector::create("cc", "dd"), - Rcpp::CharacterVector::create("ee", "ff")); - // and assign it - x.attr("dimnames") = dimnms; - return(x); -' -fun <- cxxfunction(signature(), body=src, plugin="Rcpp") -fun() -@ -% - -The same logic, but used with Rcpp Attributes: - -<>= -#include - -// [[Rcpp::export]] -Rcpp::List fun(void) { - Rcpp::NumericMatrix x(2,2); - x.fill(42); // or more interesting values - Rcpp::List dimnms = // two vec. with static names - Rcpp::List::create(Rcpp::CharacterVector::create("cc", "dd"), - Rcpp::CharacterVector::create("ee", "ff")); - // and assign it - x.attr("dimnames") = dimnms; - return(x); -} -@ - -\subsection{Why can long long types not be cast correctly?} - -That is a good and open question. We rely on the basic \proglang{R} types, -notably \code{integer} and \code{numeric}. These can be cast to and from -\proglang{C++} types without problems. But there are corner cases. The -following example, contributed by a user, shows that we cannot reliably cast -\code{long} types (on a 64-bit machines). - -<>= -BigInts <- cxxfunction(signature(), - 'std::vector bigints; - bigints.push_back(12345678901234567LL); - bigints.push_back(12345678901234568LL); - Rprintf("Difference of %ld\\n", 12345678901234568LL - 12345678901234567LL); - return wrap(bigints);', plugin="Rcpp", includes="#include ") - -retval<-BigInts() - -# Unique 64-bit integers were cast to identical lower precision numerics -# behind my back with no warnings or errors whatsoever. Error. - - -stopifnot(length(unique(retval)) == 2) -@ -% - -While the difference of one is evident at the \proglang{C++} level, it is no -longer present once cast to \proglang{R}. The 64-bit integer values get cast -to a floating point types with a 53-bit mantissa. We do not have a good -suggestion or fix for casting 64-bit integer values: 32-bit integer values -fit into \code{integer} types, up to 53 bit precision fits into -\code{numeric} and beyond that truly large integers may have to converted -(rather crudely) to text and re-parsed. Using a different representation as -for example from the \href{http://gmplib.org/}{GNU Multiple Precision Arithmetic - Library} may be an alternative. - -\subsection{What LaTeX packages do I need to typeset the vignettes ?} - -\begin{quote} - \emph{I would like to typeset the vignettes. What do I need?} -\end{quote} - -The \href{https://www.tug.org/texlive/}{TeXLive} distribution seems to get -bigger and bigger. What you need to install may depend on your operating -system. - -Specific per-platform notes: -\begin{description} - \item[Windows] users probably want the \href{http://miktex.org/}{MiKTeX}. - Suggestions for a more detailed walk through would be appreciated. - \item[OS X] users seem to fall into camps which like or do not like brew / - homebrew. One suggestion was to install - \href{https://tug.org/mactex/mactex-download.html}{MacTeX} but at - approximately 2.5gb (as of January 2016) this is not lightweight. - \item[Linux] users probably want the full - \href{https://www.tug.org/texlive/}{TeXLive} set from their distribution. On - \href{http://www.debian.org}{Debian} these packages are installed to build - the R package itself: \texttt{texlive-base, texlive-latex-base, - texlive-generic-recommended, texlive-fonts-recommended, - texlive-fonts-extra, texlive-extra-utils, texlive-latex-recommended, - texlive-latex-extra}. Using \texttt{texlive-full} may be a shortcut. - Fedora and other distributions should have similar packages. -\end{description} - -\subsection{Why is there a limit of 20 on some constructors?} - -\begin{quote} - \emph{Ok, I would like to pass $N$ object but you only allow 20. How come?} -\end{quote} - -In essence, and in order to be able to compile it with the largest number of -compilers, \pkg{Rcpp} is constrained by the older C++ standards which do not -support variadic function arguments. So we actually use macros and code -generator scripts to explicitly enumerate arguments, and that number has to stop -at some limit. We chose 20. - -A good discussion is available at -\href{http://stackoverflow.com/questions/27371543}{this StackOverflow question} -concering data.frame creation with \pkg{Rcpp}. One solution offers a custom -\code{ListBuilder} class to circumvent the limit; another suggests to simply -nest lists. - -\subsection{Can I use default function parameters with \pkg{Rcpp}?} - -Yes, you can use default parameters with \textit{some} limitations. -The limitations are mainly related to string literals and empty vectors. -This is what is currently supported: - -\begin{itemize} -\item String literals delimited by quotes (e.g. \code{"foo"}) -\item Integer and Decimal numeric values (e.g. \code{10} or \code{4.5}) -\item Pre-defined constants including: -\begin{itemize} -\item Booleans: \code{true} and \code{false} -\item Null Values: \code{R\_NilValue}, \code{NA\_STRING}, -\code{NA\_INTEGER}, \code{NA\_REAL}, and \code{NA\_LOGICAL}. -\end{itemize} -\item Selected vector types can be instantiated using the empty form of the -\code{::create} static member function. -\begin{itemize} -\item \code{CharacterVector}, \code{IntegerVector}, and -\code{NumericVector} -\end{itemize} -\item Matrix types instantiated using the rows, cols constructor \code{Rcpp::Matrix n(rows,cols)} -\begin{itemize} -\item \code{CharacterMatrix}, \code{IntegerMatrix}, and -\code{NumericMatrix}) -\end{itemize} -\end{itemize} - -To illustrate, please consider the following example that provides a short -how to: - -<>= -#include - -// [[Rcpp::export]] -void sample_defaults(NumericVector x = NumericVector::create(), // Size 0 vector - bool bias = true, // Set to true - std::string method = "rcpp rules!"){ // Default string - Rcpp::Rcout << "x size: " << x.size() << ", "; - Rcpp::Rcout << "bias value: " << bias << ", "; - Rcpp::Rcout << "method value: " << method << std::endl; -} - -/*** R -sample_defaults() # all defaults -sample_defaults(1:5) # supply x values -sample_defaults(bias = FALSE, - method = "rstats") # supply bool and string -*/ -@ - -Note: In \code{cpp}, the default \code{bool} values are \code{true} and -\code{false} whereas in R the valid types are \code{TRUE} or \code{FALSE}. - - -\subsection{Can I use C++11, C++14, C++17, ... with \pkg{Rcpp}?} - -But of course. In a nutshell, this boils down to \emph{what your compiler - supports}, and also \emph{what R supports}. We expanded a little on this in -\href{http://gallery.rcpp.org/articles/rcpp-and-c++11-c++14-c++17/}{Rcpp Gallery - article} providing more detail. What follows in an abridged summary. - -You can always \emph{locally} set appropriate \code{PKG\_CXXFLAGS} as an -environment variable, or via \code{~/.R/Makevars}. You can also plugins and/or R -support from \code{src/Makevars}: - -\begin{itemize} - -\item[\emph{C++11}] has been supported since early 2013 via a plugin selecting - the language standard which is useful for \code{sourceCpp()} etc. For - packages, R has supported it since R 3.1.0 which added the option to select - the language standard via \code{CXX\_STD = CXX11}. As of early 2017, over 120 - packages on CRAN use this. - -\item[\emph{C++14}] has been supported since early 2016 via a plugin selecting - the language standard which is useful for \code{sourceCpp()} etc. For - packages, R supports it since R 3.4.0 adding the option to select the language - standard via \code{CXX\_STD = CXX14}. - -\item[\emph{C++17}] is itself more experimental now, but if you have a compiler - supporting (at least parts of) it, you can use it via plugin (starting with - Rcpp 0.12.10) for use via \code{sourceCpp()}, or via \code{PKG\_CXXFLAGS} or - other means to set compiler options. R support may be available at a later - date. - -\end{itemize} - - -\section{Support} - -\subsection{Is the API documented ?} - -You bet. We use \proglang{doxygen} to generate html, latex and man page -documentation from the source. The html documentation is available for -\href{http://dirk.eddelbuettel.com/code/rcpp/html/index.html}{browsing}, as a -\href{http://dirk.eddelbuettel.com/code/rcpp/Rcpp_refman.pdf}{very large pdf file}, -and all three formats are also available a zip-archives: -\href{http://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-html.zip}{html}, -\href{http://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-latex.zip}{latex}, and -\href{http://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-man.zip}{man}. - -\subsection{Does it really work ?} - -We take quality seriously and have developped an extensive unit test suite to -cover many possible uses of the \pkg{Rcpp} API. - -We are always on the look for more coverage in our testing. Please let us know -if something has not been tested enough. - - -\subsection{Where can I ask further questions ?} - -The -\href{https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel}{Rcpp-devel} -mailing list hosted at R-forge is by far the best place. You may also want -to look at the list archives to see if your question has been asked before. - -You can also use \href{http://stackoverflow.com/questions/tagged/rcpp}{Stack - Overflow via its 'rcpp' tag}. - -\subsection{Where can I read old questions and answers ?} - -The normal \href{https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel}{Rcpp-devel} -mailing list hosting at R-forge contains an archive, which can be -\href{http://lists.r-forge.r-project.org/mailman/swish.cgi?query=listname=rcpp-devel}{searched via swish}. - -Alternatively, one can also use -\href{http://thread.gmane.org/gmane.comp.lang.r.rcpp/}{Gmane on Rcpp-devel} as well as -\href{http://www.mail-archive.com/rcpp-devel@lists.r-forge.r-project.org/info.html}{Mail-Archive - on Rcpp-devel} both of which offer web-based interfaces, including -searching. - -\subsection{I like it. How can I help ?} -\label{helping} - -We maintain a list of -\href{https://github.com/RcppCore/Rcpp/issues?state=open}{open issues in the - Github repository}. We welcome pull requests and suggest that code submissions -come corresponding unit tests and, if applicable, documentation. - -If you are willing to donate time and have skills in C++, let us know. If you are -willing to donate money to sponsor improvements, let us know too. - -You can also spread the word about \pkg{Rcpp}. There are many packages on CRAN -that use \proglang{C++}, yet are not using \pkg{Rcpp}. You could blog about -it, or get the word out otherwise. - -Last but not least the \href{http://gallery.rcpp.org}{Rcpp Gallery} is open -for user contributions. - - -\subsection{I don't like it. How can I help ?} - -It is very generous of you to still want to help. Perhaps you can tell us -what it is that you dislike. We are very open to \emph{constructive} criticism. - -\subsection{Can I have commercial support for \pkg{Rcpp} ?} - -Sure you can. Just send us an email, and we will be happy to discuss the -request. - -\subsection{I want to learn quickly. Do you provide training courses ?} - -Yes. Just send us an email. - -\subsection{Where is the code repository ?} - -From late 2008 to late 2013, we used the -\href{https://r-forge.r-project.org/scm/?group_id=155}{Subversion repository at R-Forge} -which contained \pkg{Rcpp} and a number of related packages. It still has the full -history as well as number of support files. - -We have since switched to a \href{http://github.com/RcppCore/Rcpp}{Git - repository at Github} for \pkg{Rcpp} (as well as for \pkg{RcppArmadillo} and -\pkg{RcppEigen}). - -\section{Known Issues} - -Contained within this section is a list of known issues regarding \pkg{Rcpp}. -The issues listed here are either not able to be fixed due to breaking -application binary interface (ABI), would impact the ability to reproduce -pre-existing results, or require significant work. Generally speaking, these -issues come to light only when pushing the edge capabilities of \pkg{Rcpp}. - -\subsection{\pkg{Rcpp} changed the (const) object I passed by value} - -\pkg{Rcpp} objects are wrappers around the underlying \Rs objects' \code{SEXP}, -or S-expression. The \code{SEXP} is a pointer variable that holds the location -of where the \Rs object data has been stored \citep[][Section 1.1]{R:Internals}. -That is to say, the \code{SEXP} does \textit{not} hold the actual data of the -\Rs object but merely a reference to where the data resides. When creating a new -\pkg{Rcpp} object for an \Rs object to enter \proglang{C++}, this object will -use the same \code{SEXP} that powers the original \Rs object if the types match -otherwise a new \code{SEXP} must be created to be type safe. In essence, the -underlying \code{SEXP} objects are passed by reference without explicit copies -being made into \proglang{C++}. We refer to this arrangement as a -\textit{proxy model}. - -As for the actual implementation, there are a few consequences of the proxy -model. The foremost consequence within this paradigm is that pass by value is -really a pass by reference. In essence, the distinction between the following -two functions is only visual sugar: - -<>= -void implicit_ref(NumericVector X); -void explicit_ref(NumericVector& X); -@ - -In particular, when one is passing by value what occurs is the instantiation of -the new \pkg{Rcpp} object that uses the same \code{SEXP} for the \Rs object. -As a result, the \pkg{Rcpp} object is ``linked'' to the original \Rs object. -Thus, if an operation is performed on the \pkg{Rcpp} object, such as adding 1 -to each element, the operation also updates the \Rs object causing the change to be propagated to \R's interactive environment. - -<>= -#include - -// [[Rcpp::export]] -void implicit_ref(Rcpp::NumericVector X){ - X = X + 1.0; -} - -// [[Rcpp::export]] -void explicit_ref(Rcpp::NumericVector& X){ - X = X + 1.0; -} -@ - -<>= -a <- 1.5:4.5 -b <- 1.5:4.5 -implicit_ref(a) -a -explicit_ref(b) -b -@ - -There are two exceptions to this rule. The first exception is that a deep copy -of the object can be made by explicit use of \code{Rcpp:clone()}. In this case, -the cloned object has no link to the original \Rs object. However, there is a -time cost associated with this procedure as new memory must be allocated and -the previous values must be copied over. The second exception, which was -previously foreshadowed, is encountered when \pkg{Rcpp} and \Rs object types -do not match. One frequent example of this case is when the \Rs object generated -from \code{seq()} or \code{a:b} reports a class of \code{"integer"} while the -\pkg{Rcpp} object is setup to receive the class of \code{"numeric"} as its -object is set to \code{NumericVector} or \code{NumericMatrix}. In such cases, -this would lead to a new \code{SEXP} object being created behind the scenes -and, thus, there would \textit{not} be a link between the \pkg{Rcpp} object -and \Rs object. So, any changes in \proglang{C++} would not be propagated to -\Rs unless otherwise specified. - -<>= -#include - -// [[Rcpp::export]] -void int_vec_type(Rcpp::IntegerVector X){ - X = X + 1.0; -} - -// [[Rcpp::export]] -void num_vec_type(Rcpp::NumericVector X){ - X = X + 1.0; -} -@ - -<>= -a <- 1:5 -b <- 1:5 -class(a) -int_vec_type(a) -a -num_vec_type(b) -b -@ - -With this being said, there is one last area of contention with the proxy model: -the keyword \code{const}. The \code{const} declaration indicates that an object -is not allowed to be modified by any action. Due to the way the proxy -model paradigm works, there is a way to ``override'' the \code{const} designation. -Simply put, one can create a new \pkg{Rcpp} object without the \code{const} -declaration from a pre-existing one. As a result, the new \pkg{Rcpp} object -would be allowed to be modified by the compiler and, thus, modifying the initial -\code{SEXP} object. Therefore, the initially secure \Rs object would be altered. -To illustrate this phenomenon, consider the following scenario: - -<>= -#include - -// [[Rcpp::export]] -Rcpp::NumericVector const_override_ex(const Rcpp::NumericVector& X) { - Rcpp::NumericVector Y(X); // Create object from SEXP - Y = Y * 2; // Modify new object - return X; // Return old object -} -@ - -<>= -x <- 1:10 -const_override_ex(x) -x -@ - -\subsection{Issues with implicit conversion from an \pkg{Rcpp} object to a scalar or -other \pkg{Rcpp} object} - -Not all \pkg{Rcpp} expressions are directly compatible with \code{operator=}. -Compability issues stem from many \pkg{Rcpp} objects and functions returning an -intermediary result which requires an explicit conversion. In such cases, the -user may need to assist the compiler with the conversion. - -There are two ways to assist with the conversion. The first is to construct -storage variable for a result, calculate the result, and then store a value -into it. This is typically what is needed when working with -\code{Character} and \code{String} in \pkg{Rcpp} due to the -\code{Rcpp::internal::string\_proxy} class. Within the following code snippet, -the aforementioned approach is emphasized: - -<>= -#include - -// [[Rcpp::export]] -std::string explicit_string_conv(Rcpp::CharacterVector X) { - std::string s; // define storage - s = X[0]; // assign from CharacterVector - return s; -} -@ - -If one were to use a direct allocation and assignment strategy, -e.g. \code{std::string s = X[0]}, this would result in the compiler triggering -a conversion error on \textit{some} platforms. The error would be similar to: - -<>= -error: no viable conversion from 'Proxy' (aka 'string_proxy<16>') -to 'std::string' (aka 'basic_string, allocator >') -@ - -The second way to help the compiler is to use an explicit \pkg{Rcpp} type conversion -function, if one were to exist. Examples of \pkg{Rcpp} type conversion functions -include \code{as()}, \code{.get()} for \code{cumsum()}, \code{is\_true()} -and \code{is\_false()} for \code{any()} or \code{all()}. - - -\subsection{Using \code{operator=} with a scalar replaced the object instead of -filling element-wise} - -Assignment using the \code{operator=} with either \code{Vector} and -\code{Matrix} classes will not elicit an element-wise fill. If you seek an -element-wise fill, then use the \code{.fill()} member method to propagate a -single value throughout the object. With this being said, the behavior of -\code{operator=} differs for the \code{Vector} and \code{Matrix} classes. - -The implementation of the \code{operator=} for the \code{Vector} class will -replace the existing vector with the assigned value. This behavior is valid -even if the assigned value is a scalar value such as 3.14 or 25 as the object -is cast into the appropriate \pkg{Rcpp} object type. Therefore, if a -\code{Vector} is initialized to have a length of 10 and a scalar is assigned -via \code{operator=}, then the resulting \code{Vector} would have a length of -1. See the following code snippet for the aforementioned behavior. - -<>= -#include - -// [[Rcpp::export]] -void vec_scalar_assign(int n, double fill_val) { - Rcpp::NumericVector X(n); - Rcpp::Rcout << "Value of Vector on Creation: " << std::endl << X << std::endl; - X = fill_val; - Rcpp::Rcout << "Value of Vector after Assignment: " << std::endl << X << std::endl; -} -@ - -<>= -vec_scalar_assign(5L, 3.14) -@ - - -Now, the \code{Matrix} class does not define its own \code{operator=} but -instead uses the \code{Vector} class implementation. This leads to unexpected -results while attempting to use the assignment operator with a scalar. In -particular, the scalar will be coerced into a square \code{Matrix} and then -assigned. For an example of this behavior, consider the following code: - -<>= -#include - -// [[Rcpp::export]] -void mat_scalar_assign(int n, double fill_val) { - Rcpp::NumericMatrix X(n, n); - Rcpp::Rcout << "Value of Matrix on Creation: " << std::endl << X << std::endl; - X = fill_val; - Rcpp::Rcout << "Value of Matrix after Assignment: " << std::endl << X << std::endl; -} -@ - -<>= -mat_scalar_assign(2L, 3.0) -@ - - -\subsection{Long Vector support on Windows} - -Prior to \Rs 3.0.0, the largest vector one could obtain was at most $2^{31} - 1$ -elements. With the release of \Rs 3.0.0, long vector support was added to -allow for largest vector possible to increase up to $2^{52}$ elements on x64 bit -operating systems (c.f. \href{https://stat.ethz.ch/R-manual/R-devel/library/base/html/LongVectors.html}{Long Vectors help entry}). -Once this was established, support for long vectors within the \pkg{Rcpp} paradigm -was introduced with \pkg{Rcpp} version 0.12.0 (c.f \href{http://dirk.eddelbuettel.com/blog/2015/07/25/}{\pkg{Rcpp} 0.12.0 annoucement}). - -However, the requirement for using long vectors in \pkg{Rcpp} necessitates the -presence of compiler support for the \code{R\_xlen\_t}, which is platform -dependent on how \code{ptrdiff\_t} is implemented. Unfortunately, this means -that on the Windows platform the definition of \code{R\_xlen\_t} is of type -\code{long} instead of \code{long long} when compiling under the -\proglang{C++98} specification. Therefore, to solve this issue one must compile -under the specification for \proglang{C++11} or later version. - -There are three options to trigger compilation with \proglang{C++11}. -The first -- and most likely option to use -- will be the plugin support offered -by \pkg{Rcpp} attributes. This is engaged by adding -\code{// [[Rcpp::plugins(cpp11)]]} to the top of the \proglang{C++} script. -For diagnostic and illustrativative purposes, consider the following code -which checks to see if \code{R\_xlen\_t} is available on your platform: - -<>= -#include -// Force compilation mode to C++11 -// [[Rcpp::plugins(cpp11)]] - -// [[Rcpp::export]] -bool test_long_vector_support() { -#ifdef RCPP_HAS_LONG_LONG_TYPES - return true; -#else - return false; -#endif -} -@ - -<>= -test_long_vector_support() -@ - -The remaining two options are for users who have opted to embed \pkg{Rcpp} code -within an \Rs package. In particular, the second option requires adding -\code{CXX\_STD = CXX11} to a \code{Makevars} file found in the \code{/src} -directory. Finally, the third option is to add \code{SystemRequirements:C++11} -in the package's \code{DESCRIPTION} file. - -Please note that the support for \proglang{C++11} prior to \Rs v3.3.0 on Windows -is limited. Therefore, plan accordingly if the goal is to support older -versions of \R. - -\subsection{Sorting with STL on a \code{CharacterVector} produces problematic -results} - -The Standard Template Library's (STL) \code{std::sort} algorithm performs -adequately for the majority of \pkg{Rcpp} data types. The notable exception -that makes what would otherwise be a universal quantifier into an existential -quantifier is the \code{CharacterVector} data type. Chiefly, the issue with -sorting strings is related to how the \code{CharacterVector} relies upon the -use of \code{Rcpp::internal::string\_proxy}. In particular, -\code{Rcpp::internal::string\_proxy} is \textit{not} MoveAssignable since the -left hand side of \code{operator=(const string\_proxy \&rhs)} is \textit{not} -viewed as equivalent to the right hand side before the operation -\citep[][p. 466, Table 22]{Cpp11}. This further complicates matters when -using \code{CharacterVector} with \code{std::swap}, \code{std::move}, -\code{std::copy} and their variants. - -To avoid unwarranted pain with sorting, the preferred approach is to use the -\code{.sort()} member function of \pkg{Rcpp} objects. The member function -correctly applies the sorting procedure to \pkg{Rcpp} objects regardless of -type. Though, sorting is slightly problematic due to locale as explained in the -next entry. In the interim, the following code example illustrates the preferred -approach alongside the problematic STL approach: - -<>= -#include - -// [[Rcpp::export]] -Rcpp::CharacterVector preferred_sort(Rcpp::CharacterVector x) { - Rcpp::CharacterVector y = Rcpp::clone(x); - y.sort(); - return y; -} - -// [[Rcpp::export]] -Rcpp::CharacterVector stl_sort(Rcpp::CharacterVector x) { - Rcpp::CharacterVector y = Rcpp::clone(x); - std::sort(y.begin(), y.end()); - return y; -} -@ - -<>= -set.seed(123) -(X <- sample(c(LETTERS[1:5], letters[1:6]), 11)) -preferred_sort(X) -stl_sort(X) -@ - -In closing, the results of using the STL approach do change depending on -whether \code{libc++} or \code{libstdc++} standard library is used to compile -the code. When debugging, this does make the issue particularly complex to -sort out. Principally, compilation with \code{libc++} and STL has been shown -to yield the correct results. However, it is not wise to rely upon this library -as a majority of code is compiled against \code{libstdc++} as it more complete. - -\subsection{Lexicographic order of string sorting differs due to capitalization} - -Comparing strings within \Rs hinges on the ability to process the locale or -native-language environment of the string. In \R, there is a function called -\code{Scollate} that performs the comparison on locale. Unfortunately, this -function has not been made publicly available and, thus, \pkg{Rcpp} does -\textit{not} have access to it within its implementation of \code{StrCmp}. -As a result, strings that are sorted under the \code{.sort()} member function -are ordered improperly. Specifically, if capitalization is present, then -capitalized words are sorted together followed by the sorting of lowercase -words instead of a mixture of capitalized and lowercase words. The issue is -illustrated by the following code example: - -<>= -#include - -// [[Rcpp::export]] -Rcpp::CharacterVector rcpp_sort(Rcpp::CharacterVector X) { - X.sort(); - return X; -} -@ - -<>= -x <- c("B", "b", "c", "A", "a") -sort(x) -rcpp_sort(x) -@ - - -\bibliographystyle{plainnat} -\bibliography{\Sexpr{Rcpp:::bib()}} -\end{document} - diff --git a/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.pdf b/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/doc/Rcpp-FAQ.pdf deleted file mode 100644 index 166cd80e162f669ee23742ee6f23513881de63a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236762 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�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ǻ+KkI-+*N@W37itP$N;_D9TAwjwzk3-t-7or04_um!DtsrMC zEDp)t$?g6mZ4_VY-3AtTnN%^`FeE5eH7zUKrnd3LMs@Vb5qPaNCX_Hvasw?@T7j91 zRpX#}_fAFXM_}H0%CZVMx>2)S_n9nKqqgpET4S+oSr)a~^uzf{jbWt6@NKw*Mg?I* zNE$g}L&_n6lU4V#zZ%+!<9EwBHY?L5_z1Lwq6y^krtQb!DJdOpA07eRf`56+|370A(SGqRDaDlV59j1mM&#~vCVx<=)=XViv%RxkLErjpflO@hW2?R1o()6 zzv_*f9Z?$m{&gO}={`saT4rd{_j5UVQt6s7*dL2~$oTSLB9~K0YFG#{+$RoWCT8;e zI!3h%pptelyxtzS*rv6xTjx>IqVQMvm-wm0WJ?%U0zPukmw?{(H*H8OEUJ~5xho=x z;mzB7YO2wt*r8_BF_`J!7fc;f$Tm&1Y6)s{P8Fxc?h#^OrO;qCca_Rrbc>q+Ensf8 zEb_OI<4(7I0b8%F6>0SN)8&RNKCvD&o}Q%Im5;XmV*>;NrXWxnYxEWn4ev>^>z9o$ z$ea&BMzEh1?;Uek2-|2UWWcR_mOJAP#7QPe8sW>*j8*z4;LF?gG+vo~$R)*>vV?of z2!R?EP?*VE-py*Rb8-Y!!07k!$jp@uJ9U(}AThw11LO z1j#O&{}w`*4mz@_L^sOgsc6QA=~7Lyh*a+6-{&m~M+c|~=DgoFWz5D3@MTG${7fnU z@`<%(mt;=v(~r^CrXk5KE`=%e!r@n4g_j`yP;S5(HwUDr2tV#=$zva)m?{sH;6U5{7v_ zfohcXk+*}jbq*#JUVgKVsO)jV8Ba`UBH*?BRa1aO9FTMdtl-dji>uarMD5ZecG8bh z#qEWno2Tm7AsxrSE{h_{zYzr4DAqWZ5u65~M=SqwH*5T5x`F&TOyv85j)~{j_TTc6 z1#k=RKX4~6tMhKbR)NJ|WjC7f=w-6P4xzgG?(&6J(}-J2@9apwO`IJDXS;OZLLk4c zmA8oZbX;B%)W=A)iTI>d2)DnWq}A`HAem!Dp+i1>Azpr*Mnwah*s3&7M4BUfxO83B z#9Bqj3I}(;^+1%Af-t?c1Af(%TsmyH8I9}!k@}M$5*DV~>&TG{OzWHsLoCFEVxD!~ zAwmh$71*unE(usts7%2HTUBeC{0fc1ZBp_Vdm`q?e>Bi|x5N2&F5&uW&JO$rw_UAK zUcbaB@+T}^U2$pq;@mmfSHv1-yVWSyqSA+P!htG#c_h2q#aos3Fi#)H)lw_Ea7#cQ z1!*1^X3No%3C`o0X3bdn93S;f!P)FG*cI0s8b^-_%QCA*PggBmfj0TeP1Vm{>yMM! z51O*Cd2w0Fi?!08Zk!X~2u(V8+QhALwy9_5^%txoL>*nUMEfqkPDwYhDn^QNz3bde z(gbWGg;LalPB5ugs-sbM1EkG7GS$~N5A#KUF_YH;Ek0q{)OW$(3%+mv2qezw8&15` z8W3sy$lggFcI>lBp-LyWuxK>9s<$;S-2Z-vm|Vt|kV)IBD+vA=V9-Idb)klOMP@XR zD)w|lEV`SR&N{SW%}as_4K;r$A~kU+XvUfi8hSP}iZZ>=lj4!%D(e+AG@eEa$1O!RrymYlj#xZd>5H zQ5mFqPa0({kOno0d9wiGx{H2<$sT4=!+-zUBcd1`^v%?vpr|QItg|{6nplC39%aFo zmliJQ(uQgRgA%~#lso!}DJ26HZzn3GHlvnaDQ25J~$ zg|AXb(>(b55TyV;>C`$Q-Gb`xf%(WIv^)qi8Pv+dbNy&h)`>!0=8godHV%L)#*J0= zU9wV5gN+^V#Z>V5ib!U7WUbYUC1e{YZHIqWOD>dBYR*=D;eeL9Kz36S@~z4IenV?| z6jJR^phRqg#FrgpQBMpdxm>Vcqfd(GBuxU^Ur)W{z)3WIonZ?yisG$UPMVBw$H2@*BS2Z!HXFT*W1`=JN<5RsI`msg#h z+vq>fUP|&dF_V@Q!wBcOoZU*(MX!nL(U8~wh||@e0XMjdA{tYMM@8Wm#s_%tQisKD zHpN}u*>H0;tJ5bp&M=JCoDir(w<1nB>sbAed=cIN;0`tE@n*&rt+ZUah8*T#I^8e9 zK5poejONoWR!Ezm2-gaKY~l`YE^!TU);vi~LE5La;1g zlzvU;O;koi6u}# zHLWBOfBRhRQw}=_`)Effaiyo_xj(F5@+jdQv1;B^`n{$+AR< zBreqc^_N=3{W1ou?K{r&R-}OJmMCC87332*Qe0k^dFDnqTO;3e;3NhD9~xE|)sn^} z8U9457Q2@aK+k3$4dv+dkEn<3BBB6jElkhsx~L<`9wkS1NaO-JRE3cL`r#{IiY%k> zo{g82sLtm04Gk(m+01U2d6Lx^_()REgU54HbmNiqB_b&;b9Njz;&<+;$d;w&%%)RU zxM?-P4D}=nrNf|bEdt?r>fu{!%S7k}i^QK*;@yI&e-4&}+o zorLj2q@Zj{*&x%x8!~-v9iaR*I2WXl!Y;Hke|_j+D*-JcoKrsQ5xm5WomplI=yc68{OAt@jmQiV8 zyo#UiJz)|4n!#}$Yp`=SmC)RbZ3y3TKhec;VLRnj9wP#2*CLmOi6UExmH1IeSsur6 zg3n#zISSUX`&WlG)r9x90h-+k!Iy|xOU;QR=D4NbJKgg|fn?;&j#d&dKAWQA$^}1OzKIP2 z+D3lf2bK?g5GlUx+Lk;l8z3z;fkuP~uS2OwU$S<74h{J1jAQII46BS4%tRHY24An%EL#nb|; z5;K$*T_vwI?mnK7^Ha&NC@6H#uj(JX(c~Pa%P9t2er(cnbZNtW_<)pi4a%& zDl%Lw2_w{7_tMh&dSt=N}S?Jh`+sACN!JoJn zkgpb_Le1I9Nq#Cfmt;B?ktKe_OdnMM^WNoz?0Ms^Cv6DlRA6v4@{c#9R3^H?b4*do_4*&u74vQ#uI zt5<6<$i;K+r!$lo_%Iy-m#|T#<1v92%d4=H6wT3`6Ka&28(ft-)_O(mYA8SQg{J?D zGY5{~W?lUFy?{$6gmISx#1;XdE$!=s=3_ykO>#TC8loait@-t69@M2&IwH*cn2-#s zDQ-v{e;%yMilTntwp=L?C?_Vo&n2NqTb0Q(!=|$ti8N@xA{4t41|&qZY8%W49|;5N zB47N71zqEi0uJlzeoKP>Qu zg9#ok?MOm}J@&BNjMYh)VQ6BwiWpTLQkU`E4Z?BmEK@X$?)t;{j+d|vw_k+x+{12uN)0DC;M2& zqXc#AU%VF+5n50Nn5C+OGZJIpu?Vd)FHE805GL{qqeCV`c#4Rb=T`*YjNcBVZkqo_ zq;$Lp*ux{8S(zAIYlNYd5h4dfXYZ@4-PqjDFeg@_msg~GFHm9;y5<_h>>_(x@rtMN!y)s{nx__8m&=yafe>$hg zQdt{NE0v&S=nE`1T=$ing9^q89~EdianuczcC}ozpU@=j${suRzH4r4b2-lY6JEwI%O_`x2D4 zDoWZ2J5@GvEZi-Z=9sY0+&R?deB)Goa3P1@bQ?)hB8&?nf+NBOBiA75I_hCL0?YPT zi!=wGW#XoHG7o~jYOyaG7$k71q;Uuo$fijaGYRRP%DXJ0aD0KgXmK&3WkF5FZxtbX ze+AT7eN$4=F=}sol*OHoi!xT$u94Ze-G<_zBb(PPs40TCdTg}P$D2;oET#Igoa`yg zvM9TVd4#h4$QB#!W8r;mKY;5t!Q^c!%0C8)tXk%}!S;PIek5&$Lk%L{ahLaNlle{> zY48x{oPO%F;Ll*6;$237Z#pI#Pxonqucn?2>^P|53Y?Epq1VrEC!9LqtgB|b;n2aP zzfY4ld;zlH=g+ixGpd^5RX=P{tQ>A>$lUh^j#LYQgP}p=;Xx&()fU}Np(%-=%)5m@ ztC=ulqjYX=%gj3A%}uyM47z~@e1-Zw^r0Pi3Cwk=s6L$E8+qpZpc7JoLyB|>mH+DH4X z{dsO@ThGr{SSIIC@=HcPFDqRh+^G`Zz~+4iv+qkY+g!=e&h^oIZLh8@gLcAOAIsKD z%I3z8;6L^H_j8ExMw)|nmOHEktUC7+6!^Oo5p(HnisZY#DpkUFQcK6K)r@|c0dcM3 z@$~!#19MXgHQtv$bcEc+-KoyoX?jN>$;d(sWK^ID?(y_L~ z;#Ce$GA?YB1K;~XXTWx~ue;NFe#KC|6yw{>olWB4A!Dcg(U%}f?yhrue&3Iir6&nW ze_h3pxluHt0VZkSa~)RgWH|6Q$h9_Odv1?XAwzTr?Ii4RAVLsdO}H3Y07tB{;Qd1u zSlHpLb`qtf({hK3J{lD&RA9=Bq4gM}m!4}I?DKJ4fG~=c`!vQ7CCL$@k9P~-^)KnYh1}78BX4IL&*1F%X;rF8@;1NTQh~oa5Tx0Ryup@U^?_>L%z|Zcq1R=Y{?w$kCtdmnlt|+c9BanY!Q*(YsDW zvHy-bHT4IZ9SZuo{Dv=0PjH|uc1(Ek{WfcW{A&(sj$3#*Id8TKh$kcXii2Fv(2a&+ziOn0!Aoui-lgR#cY!cn zridj`Kf{Sf6J&8E&dCFy|Ivl}EVtK=OHV(5dclPw7%3rSr zDp|{ul)eSoH^mcmg2P&L47B?m|CmJGv4(kVg~>ljhpy9Tb`|m`9TeZ{-bna{j;njR z$bQl)53Q;2m6EH+0=+rjpUZ#Ha$3)S8%HIO+U(7daA(Fw?3@+3Xz zf~W>kkU7dHnIB!2Frr!4ojUye87{|cpstbUcp)--x47%2RodGw(M>E34I3YUNtQs*QPA(DzUHPmrfiX7&Wcq(H4O1g+FIRnT0*ls2YbCuu+$}#kDEg082%&%qo zKK3}g8QVKkJP1;oBsd(dB&a`rv-TRAp&E^B%qu8YU#+Yk$Bd71OTp7Y13#3(h>ANy zA2JZBkJ+&ll^^j4EMiu*^WMD$Z3lIcCBB~RI%elDRiZpzOeKx%YA2ob%6RBEG+r$9 zv480iC}g>&dJD-4I1U&d6h-aM$JUM6WWmE(UUpz?;`dUYfv5^d3XBL~L@9NkXZo@@ z-mIG3ryD>lBHp=n95+Qh8XRVQ_27wt6G@!V3}6$^1>Pc=xU)lI8RDl9K`z!#A7qGX zp`6EY*y-Dz{S8kDm|D`Br_NRQ?TbZMsw8>@f65Wbo~)0Lus;G-AOrta`XgqdmzDG_ zAs)|{W>vA|IhdH71AcB=$cP#>;jUyv1US-1tNEpxjCh;A#{1iq#4`BWkWUk)_TsMH zIJ_r^HgI-E+YM=Ty%h4LJWs1#l(MwYddoCKK;F_<9#RuXGlBzsH%5;sCJ4(BB^`bww=J}8 zvPmg##a-|?Dg}^T=d-%A+`3Vo?i>Y{64CzAq3DF)ex4w?;HZ`d&1xX3;6ROsT-2La z&yY7cK#tn4d7O}f){R+)Pv?$SVm`=jLUN*-sO4o5^DWUUJBz^%fmhkWrdH@cj-pul zN@r}{C#mc;DJX@E+#I~lL?{5C^iQ4#8%iE1Fo z0viJ2e3Y`IX-#EQ8GKEqzcLI>eQL)QTI^tt2kgD*9$)$yn4yC`r z9IDbcI)$o^fkB6>3PQTt^`*4^PbC5)60Z!uKa8;4B=p~QdqTY|lXu%`DXpONL{;Ef z`32o3l{=w#IQZ?lj1(Hm=ieQNx>Z$4SIH?dD$3an8P2Jh9YWoM)rkn>i!UFgSvo|n z>NfAdI;gBATJ3T0A#W}Y7L}byTaE`V=a5Z<)m{Q>(-ei$QOmiEPb?iAcjUf7NiE8F z!0XvX3dM!XG(&MPvLo`Jmhwud!Gju5_J53=3%5dQZ`aMrnNoHQB0+m_zcijMs00Ly znVlupP0yeXj`7V(Ys;eZstqekc9ccgp6dtV2io!t$$vv5*q_@YQ@wDj!rc}gw63O* zFcXdw?zr^W`SJ0*7yle-Okc3qN%!5WYhC&SsAhj9x|GGrYiiK4zqMZ zd%Z{!dXf6?5;gH2vr{>`n&O|0@}W?E+aH9+mzEu9TdygO?B-}?>)_!M5w_noqDT@D zi{3VX{DkQw>M%1uwp=7(o_SF$lf&C}>3;Y$suB22DM_n)Z{&)I+Y>Gw!1rxh~{FhBx1}`Bj_>%6;QP-KqL#7efPy! z;FS8V996o1%*wYb-M>H9=C?CH^bMu0Oqq(>01~c^Td9Rh(QhVUy z2}W%UL+t8uW}a@uiFf_*kL--XJc|+GKLz^z65lr7tJdigoG>5$Y%KiMTI?TQw-2AG zjK;T5s1MCvV4D9y{*zDRu<%tzq8Hhwu zAnJk3JF>f1d0#u_W9O#sgN6@xiB7KBGqdVv0c2&6x*D$%C-2~bn@s#Bmc%VC2$D~r zD3Y5VQ3|S3LLu{f<<`B9yzDE&Wd>EhPJ-E)XMbXSgM~`9~y) z7#gpUY}VbFU9Ta`n|c4V*Rxv(a@Bw7v-tD(l+Pek?23V@tp7Wtv$)({Tca&@H;(dz z$v(VWqNBhc4N3kxl5H{>;)?#<>j4w?k}#(y&oVOOweo5?_35Y88>UqJCS)-Od3hu& zB_$S(H`dsw>9nP1zYu4)@$aQ?fWA53S&mmKOu1~Zz{urvZd{k9Y~iz8RquU-ZtUqF z>rZK=IYe6RS}EqFvx}G8lHg!yXe~>*;q*cX8FGCdh?C8(B-=79!ZMAO^BRa4nO$ES`6nK zeq`^RU^@RO#Dy!tV$JMMl+g-Q(u;NPWX+YhAS3V)yg#q5W&ELxaNdTiQbXAL?r#{d zvAJDB4qm|y0-(UX?|(Jyd!luEsfi+?nH^W8z~EviiC^Or_}oghpoVYz-Y~$M>R+ zBy!(d;wp@MX1WKEeXKhXED{dhNdzK9xN_)U!aU(3my=ijc!=Ve`%O&UC*EmpOs_r| zQgP!WLK=RJ%P`W?QessblEEwopIvb7!R}07#IU+&`RiZvD1p&HK&pCe3`HZ}9XMOb z(+KBPXh~)h9}-25gT=JA*-FqU#0ooLnP|_rrHY5?Q=%>PLC=O@2Y&*~HSd_&C`c}? zL#zxsUNO8~TXYJV_DMJ^lN+!;dWFP-zs5S|Lm2#JFOKtU5drphP5kV=cUOzUjm&uK z!8)%b#kP7jf6n-=fHwfn@><9t>5K~_T_!znq)lHKF1L*C0MvHNy(+*f)N|>%gKg*f zJE$IAq+Q5pu+k8Y$ z{O;9m4aS^%PI{jyO#M3|S4{n3fNh~6o1H|^FDQcx&OKJfOZY9=vBp%g@qNQlFD*=!3(EKwS!jssp|3zsoTuf%m}}rjg*kgY?uy2gOUKwn zzA`FN)urn5r$DTma`i*8`b%c25(i>sfL>65eERA(q;v5wy6yby!|eFYBeaFSgTG#EkEORt{dr--O1G0B5|0`3~?5=UTRb(V_8e>Gg&~8 z%aMi>obZY(mS(B}zuD_>suCBUCo{}CQt&*Lm26Y#Ft#SbP;B+iw+YUI{7#E>x&2|d zSa{~t{ON`RS$Fw5`q9eGj5T$EmZa;3Re0dnUGzWm8B_^Bm)2^1k#N-6xnaU+5r_^l zDO(JVG3$XqB6o1iM$&IzG#iZdEo3jD-Ah!xi)Y%O$FST*7m(j_GT$q%kjj0HuEUS( z%=*q^S>5isg3feca7OfvzP=lRy~zVF%$zL;Pjwp$508@FwI! zcHNCdcAF3Sk}ks0I+FMFIL|AR?Ehs?@S<~1*9JXX*`@mJD5ukE*DIAsVH8^tH@Q%$ zGWfYC%EA6{l1&!}{<#h#7xpDuam0cvU2~R_s&Uvxu#7AK^MK?Jac^oHRAIB#&8gzq z*HPujGgTSNnlkMQuBBdT#OAQGb;e@dc68ZGKXZd_I?r>WHc;k-b#!H*^u?63q@`P&Q88lQw` zV*qkZ4azJ3*Net7F0H;UjR};w=dDh6xvt+G_K$5n-}c`tX=a1c{n3N}cJ%hRCTzJW z;SOB>5m2(x(f^KRA%^q4^&T$=ah$sOL{_l3Sk}Ci7*%EAn*#jyD!QR`z9;>JuR;C} zP@)tD{jj=WNwA=5Xpb!JmQlukK2RjrJH)eE{hE@@2Ht`Jg55`&h*4O!)a^l*q^Y}T zUDf8-4(^QHp6V8`iQX4TciCOFsvS`!F%&%q@(s*Qd3ct$yQoRFjg2;pZ8!U-)urc7R@XT+ z6VLG3fQ>)gVMG&BP2LjjS+WEXYy>}t*-3uF;JQ60TlJDiiPtTZQ$!J<9hga?oCdEi zm@C&#zM_oTc5yGAQr~7WEzMk?V&|FJVPcY*S-Jka*<2r=Y+Y8@X8+qM;)AC6Jws1B zDJ^F7xX$WNT-D*C=1DCMv#=HSw<98KAB+IoYp$BCK`w|U+I-W6m^1-%jr7F{XPn{e zdXE?`#W~@c)au`swy6imP6V2FHmc^ZS2W%kJnd30Jwiot?^W>8=LlU4h@KJA7Y`5& zP;Xgvt1d&4H3aZ;Wq;&XzI1aDHO6$SbgO2z8z~oQAveAK2$Uklc5SuyyY+^`K2hXu zhN!Gn0JA8Xqy)RWt40j2kMC7M#5-fT7j=-{JvYkCBJ+w6dfyqNX&^Kk!IrP&wsw;G zZjXIDRp;oNWec){3Ik_1geMst%9JYk&8mOJ8GRGbQIDmS(I?JkR1Og#Gn!?HDD&jy zEXJ?x#p$q+wj<~*x639VS2m-R^VAZWvYP>!!FsqFPo4o9EOmXJQBFsei#YJ`$CJ>| zT-?!oA^q!EX{(9$T{G9LT9i`oa*FQsvQvfMV3&drQ(0Y4V`&f-$BG%j zW8b2)J_oZujT-BZ9~V&@JbS{aO>4@NxrasrxkN>M)pMiuiDoOWUg9}td^bD9s!COd z#P9E8S+(5uJH6psI(-cL;`iw~x5Cz8LoxAT)G+OTQP z!HSPJ%IXGHVcIXHi8c23Bj}7rrb65dGr30Rcrd%7&-Ix#w z_q<@w5zt~*B`Cz|?)EkYhnzHgd`2T}eJ}S5oR+q+T^1HY;;sM=Ol|DH^Ti zm^fnkiEx|`GoHE?E3H2%8&xm6W-pWGy#>E6-(YmCUpSJk61UtT?vs8in6+@Mz|<;? zz(LhEyczp+JS*8A)NgvogyfR5#hbn)L||QdUss7e4y{)1#`8dP*GRJY9d@t#7eq|K zDHv6aa?=sGiFy#EXypWNDyGv3#)9idWES*I_+;&_#xbuBx8bu%B#nrGfdAh)(caNf zl3KJB!B-y^jJUQCZ2Qi1Nk3@*_4aHz4T|UW(ut|I2F#cMqH8g^~!82>@vh_c^vK_KdDiSTLp_^f#KM-m7_sQ#o)9^Vh)|UCC0+Q;cgbHzD(}Roim$UMaRYz%ZmN50@JziEav54#hBEw^ zmc&AsU?nihbmp^~65nd|Z0b7{HDX1Dd4Ctqx$~OUF3Q#SJ>hF{rxs-wz=2UxxQOA` zA~DW>1MUru;pzr_eM1p^pVx~tiqTVBFI#XVk|7atwo}P+AVAjUW)wcYq3($t==dx$tVQ^wSOuj}O`? zUq;fj_at;uO-0>KoF-n;fZf}@;Jh%vNX6jMq%B#STH!o}N0Ut9wZ0lPF%+rQesWz? z7~@9#Q-5k7M8e`_0qZ@pM&l%7;|9sI(7@2ML*9>XdW-q<+@Km$a)Ojo4qPm3^mWOcXkGkV^d5tbKCj-|+4sMevuT*)e1?(=!H=ZY?vr`BO`%syK zh}tde*GbY(TCTWbRx&+khrR0AbOhi-<F_yz@W7(`a3WBUbeQbv|W$h)X_~112HG!%+XjSZUba!jn zU70VV0pOb0qxTzPQ0NA^(*E5ca-;WcCGRa&jvZB_593!!&Ts(3yFI}kJ$uz7YYjmm zGwrK`wcKP4RMixRdvMG9qyV4C)@P#{pLw{OX>E)LKIu*^7a6P}x6GP6C`Ls2nHKSy zJbC-s9_zIy9S9ZG1N97wAdIk0`EH-~Rxhga;WfPD5y=LGDB--E6ade(vYiTwU;CUW ztD>Lkaf@7l12yZmpyv!@Rogbx*HxJqV?;>?wuY)7Mvs!Pu!|Y77J(v=f2Z!sVulE8 zsQiybV4RYbBRrdCyph~x$JCw~v2CSCLdIr9Q)Ur@z*2rvf{&8FI|xE7+5lYRX7pX> z{}v42WJ0l)E=K3>=KnNeL9BeGS_1?c&N}q;C|b- z&0cJph=Z~Fie~4@{LS&E{!V{N8hb{ZzJ~yr>@Qmdc?L}fiVcvbr}V_u3kpG3hIT6a zjjl>wpY~C>$0pR{VSRCt#N~OT<7N_J8%<0$0o+O9O+z3EIz=(_i`*M=Uw!plY#_&a z>8%KJ*kE`tAy#%Ea>{(0A7@E00X$STN zXCL^RpL7pzFG&lQigsyBJ$u7D?zg0I z&nA^6SM9ds*UEQ9Df^$m3=a8nOzXk9MfiRj0-&L=E9!WRZS|Q<(atNC@jcoAk4+Lfs6v z5JHUYs&i-m@cu<&eaESJ!0ZjBWR4R+^&C;x#F`bAg`9@YpTcukNlY6s?ILxy?|Ezg zws6HrYI$hB!l)hgw%qZ;CI2!?U4+>16{yfh;_j6 z9}Z0V zS(@Y3)->G@;Vyxss}FKfc!UdSi-%i4VHjgUo60Z&DT)ys2!%^)(`!mqq(f`ifXsTy zStv_%#i#U~D_;C&7G%IBS%=V)etm0*z#qjj7+mcDEExQ?VmCW4Z22H85zI{|hs%K= zw5AxMNIWIQkUO4_jAxCH@?anYk0@UbD?#aOcb@*bbqe3-Dp@v=?CBOMTJ&DgZ={zOuY!e(WnD{tURC9ZpKZiEBfR{rwpUhjh>^P&UnNHOuOW4g1Rmy>8;jIEWW{@QiuuHvG6ivF^o_xcKePCN7gi z+vC8CEytllt2u~u^%R`X3G|U$yV`mq^ z)<55?qU}>D25+hy>^X?tCz2%WkH5*b35k9q6($6)Z)_T_%gXWv3Ne&I%(k1&3zClw|d_;_#0gASP& z1gAR47x)orrUp7ao%eq|%!^@KqV;|fy9wU0?+8K|elxD;EKCyDKpd;>ojiyWWffc#C3=xf^*NTa7{JeV^1`n^1VjLzon$r z4J&M#m;QO_Lp*k=HOBP*))LMo)OX!IR)nHAzlMpsfdn)fqD_X-LC-iwNk%*CYG{Sy zYFl*o-Jrk=2;-I_Fw7^Jf>wTB=1u_+O-yw8j%-RlRZXCNmr}WH-M61dX9;9*Bxvt5 z0W!`Sn)|Kq7M~r5a@^h$!GY;x!qg2Lnjx2|a^Gl7Us5QmU3Ki)*{J}FOxS+Db3^rR zgq>4xCP25YV|!vxY}>YziEZ1qZQJ(5wr$&X@+D{XKDAHni@)mhUElT9>h5~idY-7F zj^}|m(x{a41t3-oQ)xa^J@TXzHEc0jA#0IyD@nsnUJRRiXN_h8%~>NeNH|%#x{*ks zW-exh%P>55P&07>u)w$vJbLP^Z9AF9;G&@ye$uVRS8-@w*UyX$192H<63{p&Te9Eb zfSn`=>-Eg zH zJpy1Dd*$AcCOw*~ty#Jh+Rs;%v`QTLCxauX&O1&eLyBj+xqEbSaDuaD?Ta9oejB3w z(hVv{;o~42yeFWz*eSm2P)z3o4#=R(A&NieDqf+MgSvqD`^llr!rp$N#E3xvAFQJDI z0yUp|8LI08K}LOSEOJc9?#dx_$;`N^yY@-M|9(2N<(=@dyZ-g!^C-lh+Yig0s|!_| zSR<#Ei&n7gq@~+$4crxbiB2$|7Z<3%0P^+nS5t0u@2`o|NReus>_jZ#!01&2l2^5T znOv*R@1_wVfuf zps47b9`WW!cN`@!%a%1N%l&Q@EdmLufP_#kQ0i~414;B4D!WWszh~|3L)?Qcfu(fF z^&N2~?d_X7t>K5#QCjez%PINoI3PVC&JSP#lAxR$sM3waa4#wNr0lWos8|A6jX0HsTyLy!53HCd`#{8XbmxB zvnziof+YPTn9Vfm?vZSFZ-K-Pnb|)9)G|SN6z|fv^62U|72phQ> zb*jFOW!!&w2evnUD5vZ|xTwP$29pgB4MD%Upl2T^WjOi*(C#+~-+K!o&v)OM){*~E z&uOiebfRWWLFX}>6gP#lI~TF2-kn(_{XHBIuf3BPc*Hg`0{_{J9GTbAcX*uZPdin05WLvE4U-bJttIesirv}%X^iIG>v1#bIn6-}4aXSmG^ zlX@q&SQo3_=BH)hX{h5D&U#Vy(3~}(xkuhL2C8S+gpJj7V7IqMN%;}-8q-ZAz z{sadj=Vxt4@)nH;EmIz}B`=K{E1@tzOdpo0ay8|3wtR$Px@UBLN35+5hsWZKf|EFN z7KLlyXYw+4O;`oh@q^R%P`R8r<^C?kki# zkzT<2SMrN> z@%9zAY-PyrylG@}m{)c)z7mNyUkOp@4-a6?6YGY|_%`Xyg0%Hi`cTJ;$}(JUV$>rQ=Z(LS%T2<>qK_==Jz+N2+3iKsN)ZvjuXyNatXL{aMAz@&t`0> z#GMEiTytwbF|$8oqr*0d>|^(&zE?O5h+L`)raQ44QWew0P2;^trij=DF*3y-JFR9g zHC_^m8Hq5GyMjm}+yz{?OGG1}X&zs-8OAh59#Dy?I9S893Mfv_Fb*q z(XK@3^{QJKhW76Elgq`7^We<({BF*@U`-lZk0C(EtBonC82pues_rIiBUO|gU4@T- z=Ud|fop)hCLqr0A7=u+AJCTZ#o$C0KOE7sS-dMv!1K+lYuDJAqu>L`|S7SmO2Relp zGLi_4N7q%p>kD@DU`KwrU)(GbKU90+#-lQ%C#-sO!yksDe<|HLPqQGNztgI>>z&9< ziO(B}MPhIK&L#WMB%l!{X_#PEs})0lXt&+EqVX6IK#*{Q#!HTRaXay=9X|SN=??_X z=6OQpY1L`$YOs-Rk7QFSpOW?6yH}bxvq@qlx`94W6WqWEXaMPuZvT1;V94SFax+4? zo?~VBv~0UMDC@W*QV5Zz*MQIe?5gxuQ@=$k5Na%_`UzKhZD?>!mCRN^r*h_40K`Wj z+0g%1BeZYSlYAo*O{adp5QCkWQUcy_4GMxi9jlmHZ>HJsjFhlvg4579b&adLW6CdoJ>eOPvv{Hiz-R^AM zCpe?aLIXwtaT`Ya0oCy{a-i`Ht|QPMM>T@)L{sIqhYlM+#1kH}KoK4ehric5RupE> z{u399^FMN-*g5_O1jR(i#>~$7KfC{pg<@xB|G!iy!v8-ODo4ddJNdemG&%JKR|z{* z?i?Kx8X7t*12{Cj-+vwr5ZKoUkiUWiBVSqcyd3{Xg?uy*_nKBh{vX)`fge#ldB0a7g{ zaIe8O?^U)wCWOpBW`a2??!#v(Hw4roryC}=ew>KG+g>=o8{-&5FgF~Kt3bcLAE7Th z(61#GMi7Ze=%@%uSYQ+2E+jsnI?R(I#24hDDM7K!TQ>{cSOzeltCzBWJVBW}#%F*S zV0B)PYTHi@NMPd!x)P`IN6_uH&ls>jL>K`GlGa2uf{O;D_^Q(a(q#xmqlkD{>Yo}q zMr?=MwJZFYN<0}P1Zd^n-R>7E>O)~ipg4dN^Dqbt7-@!mY*+NYAG@ImNcxlE9>+pp z8i6o8?ec&jp@B+;L;qx%F>>h36yfdNm}9~)%fMlwp1_Q7pb)>>%>aWiE)GVIASA^S zqP$-_;RW-e5Pq&Qn$G>;4ZuCo>lh9c_O3=C3Im4{A=B{zQB37Z3;{)qz#;T~{%pnk zxcvIIK@9$xDL>yoFa&ZPw*Q8ennsQuDF2RAsi)o=KK)6zhWJ$Gs{=+khH-uOQh|gY z!IT8w_jgD{QczJ>)qJS~+S2)T10NK)XC6-6hkq5=aF^$#42Bx&7(lE~Sj_!3JE31Y z{!JUYE*s7aa&m(Z5AqG&&yf3*1uxXqOO7(F8KwZ{=hlNg9N(lT`malCoHfJ z1|5k{9|kMR|KWKfudJk6z}ce)8!|^m`IQC&6wr78q(SNM;};g_p0AL;{_TJ*cI)@^ zH_S*AHppX;P^3v&0;-qo`1tbd@xZJrx4Jwt>(w=1LA%>48a9fWNc6d5H%=;RiijUh z-@*seuw2!#*&2x&MN?1P2Dgt(W{U_uX-HR`+0x}#CwEzKV^zD4!CY~YB)1-jC`3*~ zd@IXBO`0WNRgU5b;EHu?v6HMj6tZAKfM?G5_W6MBuMTTY<@9osq|iLynXv~44=&q1 zGl8BytN%wM77vTG+?}I)-Ak+!SVyDl?@&(4mu?qrEr&P>g@{0CQG`|PA}9mb1(+2f zlG$ZraNQX8r;k2PhuZB54Ke-8KX%e*rVMYIT@IHhcOd)@PaUa^B8*O8=+bTGgY!;L z2?b#d{XZH%+++7oNy_N*Vwk+Q0!p$Py$_Y$s(0moJ*WpY#jPI_Z%gZOjE3T04d9%t zW#@2823lyu7CsBQ*PEaWFZK2~@J`$VBDljYKocU7qn44^sr1W`WR>i1bId}`_iyzU zCz;P*Y>9Jc5G+ z3SRBfwL$QuHz9i|Ly&`SEh25h1%keyC>$Ojx*&~VN9`Y9I~%MYjR^Y(J_ylv+VeDB zT01Vmy_<|j_k4=5VHK=^l|hNxw*t$PM=5c%qD*uzr-CCGK+IvGK~$@;)LzHd^t&1B z&T^;c<4hyV{B-(+;4I`D1WXUO@`CSd^W* zGjGVwTf%4yZO`B_$+dPkW+v#wvGiIjAhlme6Z`H%br(Cyy{{p^;k?b{P83&_$|OBXJ628D=MJ@3h`E^&*V{(C5(Or1L>lQlR#X20Q*CIvtgOMvq=p4)sr$H_k<9N0a3j$t`ev$Cz zIpT*8bB522!e4QQ5?-!ED{p`NK5?@I!?3i&l!!j_2q)XV+TlRZ^e(7%D~-*0>u1dp zzx7a8ZHH+krebH#k?LljgpZ=ixhj5#dKB`(2{4_49HGL%ux4g;A!cuQ>VcY5qSU1t zrZRu1kH_DXN8(1qJ@1iC1QPqEQlI5Mt&=)$&@E5zN+H}Q8&pwmU)#~ew?X^38-<`@ zUyXYmuJLHF8_+Icg1m9Ax%(K;#2j~2lLaQPK+QV^I7jGi+PrF2R=Ny1H*RV3+Fjsa z?x0O=O~zlHjNxPAl_{+4ouHUE$D1EqF44g`DIld~;Y)LmWkUL8ke>|GdW9^h&XL+< zdrVLax<)FU{-y8lSuwO&wSW2X$k}w@QcEGb#Ou;s>=jL{Fn!Zh9VzU>=I8`R!Ij?a zgz==-?ecRE+i?-F=FwI$Y9w^-$oH!fn$amsV#o(^6kTxAqbjriCs29>=t$WDD)2^2 zT!{7xc1bpY*PD0TS>B{OvnQ$zH5V)VU zWgCCFvW6+!%)pa34YLc-n~nf+8oXTf(6$5PUq=(d2T~<`++jdo*Y%@`0|9f<0XuAz zouzr;C(-4dR;9nR$5cA*wdEOcasZe&Bbv*st7?#|zHN+(%)t9bsMw@slYbBDNsi(L zmt>ADkHP28=Clmj`)gGF1Bs(v7KUF_nGu{gw<8w@IS|`FvMeTz{1n5q>ZK$JFk+@B zhMMc@SJfV#is6lep3nBf-Y#kRrR88Qz;nB9!;Y=&z`9QfJGHg=2jwTxOD%eHZ+3*pX|g*G=#a2IcgChY z$juGFf5{CUr#m;*vvuP*JywnrXZaYqRky$MeW22jg=GB_tjseUU|;IGyObtegQD)jqYgE|(Z;OF*>MgNXdpyJ6-LwuK`hd()y^{)4TFU}13&%t)dmHz##D zi~$1$l-n&>Woc5>1q}_Vqw%03xxCf&tp4n!@{b>05yC3W^5BtAm()1VXj{Ti!0p5N zSS%QsJS3IYHYD6}OB+&s`|}`Y*e%57j|uJs>C*F5jokBSbnB)DE?@{(y??W#pTg+m`*=ecGK2eM8#5SA6n>kq)ok; z(uF7rQ?z~Pet}TCrdOs4?q)3=i(AC$;_plf*NOk#p8r0g|Ko-=XV&>ro_s6`KNyc@ zLe{r=Ehr-iLnn)w_wHGgF$S={e-~6Zx{Cam)scO5(^I$BnX$+~Ma7eJ_hP*ZDd>j& zoDe3DmY;kp_D; zh-98Jl&Z>OY(PG)EjM={;@qz+y%a4Qlf?QI@%yRZk_`0y{2LI$g3D#ssyzf2ku$jV z1<-SWzgyUG^)9QcLPVHx3rib935{|CQ`M5kaQ$oDbsx=YYn^f8N$@Si5_am6`Fxb* z`R@BFofKjLv*o~3+y{zNcy$8j#QBu_8SRK`X8c%@&}qd2FtM)! zBy4T+6;)B-x;ZEfm|~bipXlyP(Be|)_=z^%Je0A-@5Stw{O|c*R%=6fcL5tG-pABy zJnp97Lxvr;3ci2g*4|c@UheA8+}SPhE-?;oWt!Q^WQ01UMM9OGkQK%vV zB)$bj4+%gmGagI#E)$T&A!B$>*l5vboL3}tSb6(&y+i{$czI^-)Ou$+hjRgKy!%%F zy#PaD`fV&eI=E6V$5UIqcFdUYF269tWGc#k5ESy z)11Y`c&i)s<`19QajWpkz$N$v;Z3p^rSR`Fcdjt&mxwAnGn^t#E3Wx%UI)17F7a>*x2^o*?cTbsJ6lO`9k#qFyKhD*0hzP+fL4l{~a4TKwZ?<}t&e z>G%SHdZnw-p)Sigd;T;g6R_Fkw*IuHIh}_5fS$flE1SvI;C<{MC}4ei&w#s+k-i~2 z74J{$<0PD1DwAtT{#hX9eTlF2jTfHkKepALdaru3ym_xyYXK(Nf8F2&wK>IsF^@Bj zYv(?nXm-XAp~i1djk75@XEDe8ObPK!F`TXV__&?Ln3)T&)zZT1Em|y{i*T?y;6%vU zdCca+X=+l?pnmAN$gx43zkYE$?BM+?CfFmdfJH77D{4601*RU5QG(em8P83$jx-#SuS=`t#5p4>j90^iE!Da;iv za!i@5xv&%xW6B=$%`|wsY9gJrZuk-QX!-@K_47ojm@N~lB&_MS+WH-9qL!@%#QQaw z!r~esT7GIeg#pu8&I-y>2aKR$LW720^eD8c1971cv@(btWJ^{Ar21ja&no9z<#m^$ zDeUX8C}_4ioaGgGOz)P)1P((Lr8O9{V6RD3MBFns1dPu_KZU! zLw4D+ZR#gDsNzdqym+Y@PW=I2Ei5KUebI&Eb;n$f*-seV(%7@@$oU1tyS}6!z|i6M zW@AnksJ%`#YDtyhvd&)H^$o%9Hz-?oVHEW8+--yP?X>q|Z~+4VZz5X61;d9 z@?k)Cz?@1MC~eu3{$`7tZCY!9!`3pbuVx}hQgE*3hUm(|pM>P~t;#CH z$GN!tGXT`ht@y)c^0KY%mquk7nGYbLOBcVkM65|pIO-)(V*^r5s_;1>2f!U7l?d6R zqf{C_ZDk%fd=zR*+foc`c^n-yk(PDMi`EO-!+?W+Wi>+~<%z|N=e^3q zwn})gOtP||bRrq>>@dO*APbYX}+AHpyN6RY4kB#Bur^*W^K!!?xcFHQ|T$u zKfLzZ)f2%_)G98=)NKy_XKL7l<+4*t^FX^_cl!EItKj8R|JO?Nu5ymbo7D{emwUxH zpK!VW)ko^poYy@7ocj*MK9Rlga)&cUI0uAn7CptT7Wem;mGbAwg&Ic^A7zdQ{kMV!OKgqSe`BbaKSSpFQSuL9Vf7 z$r)T+wJ_G1GPgD4r%L4EDj{zgJu=X-!u7~&)#r?&3(JpM8yyh2ca6SljX&m$e8ieP zAP>(olc)Tnq%=N*3f(?a5wvzZno2VjS~O8MkQ)DC%{DeF{zxv>QZJ%!1L8kQf1(<2 z6x^y09bWjnp`{bdUJuc%Wpg(lzZbBO`ZeBl%dEO`kE~1JG+MYYicDmDMQB5bgY19= z`e(MKrP$SwI>SyZ#8R3$BWg4%Wy?xO{!Qs)6?=t;O_DFxD2r^f81)_hU5~Hyvgz}+ zYMHzyZx`Gajb3$VE5mXk)<8khrtP%v;&#~S2(?XVr3u|i6G-dd_d>ajL>fA~c#`&V z2I@EDZ15n{M<r7W^)3)u5pA2k(Q->i zVByj=IQ0F2KbkrjJ!#rj5Z}0avDbG<%WWqpPJ##lT3c9j9dYF|64ByX2kzzPxo$4A zDlOK3>$f?zdlFQ^GR*m>T02;D4&J@3;iMHTeoMqL-YLwd-s(D;~h>n(aNg&YtgP zmeJz>di+&;g#c#>d5V?=oJh?944;5@@zQwE`Cgs3vI@1!PLo8D7lbPP)U#DObIeyZCgm7RlP@^|(2YxeDr{Bpb6zJH5C*tdogRXhMZ7e%k`LY zA$rc-O$ek5z8!JDPw7PJS;I8dbr{??{E#bhqXY!prk&uBz=WKSlFTPBLihlH{d^tQ`>DgQ*X-@w}>zcVP@Oxk#y^MtHo<@ff*@ z-^oPZnBh0U4@vdjT(d#zLUjJ)a6NN*vPo8vJX>TRDH{uBcUv6varkLQH4#L`=iLH$ z_Ay=b4N28Cs{b{b(_s6m7PvIJOy$-Q60s|P9i@+{g#=;TtZ(TrK_?z#<1yl zL|87j4E6l@i$T0{*4z~I)m4b&U74?B;a>+8?w#xD@Q_^HaA}_zwimZT*G19Rv04xt zx{8611Yb9{7+pJY&)=ApG)`V8~S){mTw>B7)A2@gs774ob&|P zcu2y1W9T>ATL^t%2B$}chKKqlA3S@%cVH13oot;RZyVssTm%6i<~;&9|H7p1_N0XC zG@YfL{>AZyt%2iRApZpBzA=P7%hNqeYol{(U>5MUO>Pa)Xx<+`|Ke*I%rl@uvDOi} z)Y20HF8?luL5#%u82CLs5;Ol_b696b5G*EdX?-(O3#jI&h8D(;AvQ4f_Kj}#jbI&^ zoE{+BS3j_?)B-VrA;5$c`E<2kI=Ww-R00~>qJK0rRsLwh<y8L*xhw1Ei_H!LVDEIBVTyZ=ToguwK} za{~KA@#jK7RMJV_(iW}1D-dy*-y?JD`^BT0?@#{st@KaD!h0SZ(2MC0_Au(ux9GnU zJ$$4+!bTkX**h>XHhn7xRvh~k0xgN@RZm^%=?&;*u6;?*h(03D|6C7CK88H`y)k|f z*G45JL_~G}Dym7yxlDti)2ng%C{zAnrT;PRpF)VQcXo6IF89Xrr~6_3e}Ww&(_Z`N z9&8)i^D7YN50uBKDO7W-C)NbL|X2i1cNI4`2CAkd$aERu7C&qn5Eh_*1Xvp z0S8~Z3Wexma(aJ2i*=%Vj=p<|qOJdVc7F5>zc)2N-|WzqcCT}+W30b7KL|h!xF72R z48JW$S1V+%9KyPX(|Ke3+# zZcRTfbaqcI(fB}krFCB!y|}$QKaUc(z2?K$GFP&+*HgVCcUE{Y*)l(?AwMBxM25G( zcco?q`#^I|^^V>xAxZFk)5AxfenJ^-T%10XAGh80oITXGD^NK2zzMkcqc!NwbGF9svVLt1 zn=BxXIDV0+QwW}Cf#mD3x7InyGDH{kLDT`$DG$vRnCN$D$Q3QnpY`fQwYD1Jo-;m$ zb$)S9h!bGE({hr5#k)C$OZsXy4Rl(n{Qc0<6;TR4hD7e)$K+3cb@-!K(TncUP}9F6 zs<=ch71AO*o+Sc<%YnPkUIzF^{E7JfEYUnHlZmZO1>3|wGfeyqaV*zFT#UoHd|O7S zLa((eGXd1_%Ynr3sb|UQ0ej5dFA}(zi+-Ie_ff3D`z-WyGH&s8iS4!(*d~3Fj*1Jh z^AI9DO9YlZY+K>pU*a*bv_v=F7CvL@kPoZ(U zce@ptTLh-tJ%;}^BsTaez*#QH7!XqxM3E2!ggd~{!Hs@al$@`r#k=ZKA0D`P6i0W} zoMl>waekwfBq7e?OM$o7Q@(kK5ECvHWM)h%@fSG(R|1PrYpt463uo^dZy-y zFK|;J1Rm_L)sJh($+UlE2Jl%jk|2mXuUmjo@yAY2aYg|@fwI1_`G#hj2Cxnbq{mO1 z9?pyn4fHkb%a4Cn@>|CBZ0~1SS;NAlWSY%R+kK^IdT)UR(mLdEQ=;0d)GfAdoAN{K z*0^JusWN6WN&1-ZqMiYbO$v;S_pTCbP}9)Fv6j_e4Rbz`zkz?GP07p6xz4b7K6mAs z?oc)17qDF_vrI2ra<>;Y58j_i5ZdGu!J^VqpwOE7Wvp97!LsrVH?3U;&$5tzEskoV znrOmgI>KgHf$@5mrYe6`G1P2v^7gbt{cI}57bd_0tWXR={v6kiX2o#G;Y)`d6sAR4Ir&*v$Z6n(B zuXV{Lm`!%yH*XB1G4xlS^O+xF64Mo10YP&(-6-#Sj@GZzOXQ(JpNU&h6(E^upWU^B|^JJ(%Rh zhpCMNupb{BWXX6>JcH^e1w%6?qzMB{Qk6+d_~d&HipPd1bDNZ`Ohshl&l16$ma6ap_1_AswgxGWDf%c#ln~A|!OU)bbPoV-*UPEr*RFXp_*a zMJuq!>xARSmCN-xB&Iea;_s|yf6t@9Ocg~kc!cnyOX;BN-_U^WndCbD)>U1n9wsKP36K`M?YiU@zOy>5PCg{Ot*yZ zF;mNN^O(2oV+@SlnLPz5@%P5fg`GB&_0p}DqGh;5mh-4qZ91pP#JNc4M24i(brj)c z6)Es6utl&}1jBs62JF)v2NF$i(Hr>OQ@Uj#u8#Pi5gKoj#I^IEHJ@jLMowES!Zz!~ z-h+QWUjK)$?*PYE$H-mj14HAXl~HMMr~EXehHxZ#6i=m`h;RH@{og&C{&2}h08*WF zfzv`>Pdc&vX;nd7*Fi;4%FojN(Cz7M$c! z+mO!CDC&z$v<9u^InV~;!kUb|Ldh7}w-8n~(#e)p>hF%Ozgx|a#Rh(UvjB|X3wQM$ z^v#MHUCAwk2zYLBp|0FoHKTv9Oqg12cyea_gd8FODAP+#BhR04QpN#;zUPonV9Iau z2&w6}Qq{*pf)A!7(wF~G!Pz7J)KoSS^`s<`UY3V)@B7Pw^v*8hopJ7}@}&x6(q$|8 zRclhVtV$ncY8b>h;*<wrwC zAg@z0VTk;|tnJWwroCO#wT>O$L9o0bC{Y7l4Mc)56mdhDu?Y&pfv0#?xSTDMRX`>$ zAKTX3xWZSbr^Z#r76Z%R9dhBx9Toa<+@p1s37M~~yer$H9~jWBAi~oq8)M@}!Qj8k ze!m+XJB<|4*|UN{tf)|S983+&OHjS=o*z&2$V(dNQ(gZ$b>8WqJ^yC!Mq4uI0G%yj zB4ev1+-V9$RcYe4tjUs`3mQhH0!T)&{@-M9KABs*Zp;>EqjvqjZ3%XvJo0mlQoWZv z$8jim*K+jCrN!R}VL5Njn&lQ*842SL4{G>QCN_R~oC>{%(-#{itlJjuu!*u{%ey$p z@^&?VeHQcxxw~S&0`F8Q@H$X*cL^pgH1c^Dwg)V`Xw@d1t@U3!HtU1K+0hrmGK4H; zjFlQ^q3jP{g@IAH4xcf=(sh0+t$6ZW^7a#a;XhJZ15<@Fi3gHRm)*fU>BfZmAzDnK z*1b@cq{c}$+~tcttVs8Gd2S>x>03hSz3(XOD)C%6w}ZTEx2~4J*bt}_-Z;}w9}l(2 z40VK??nDggQX}`U5EvzV=3UL?1h)C+QtBL^Z0brW8 za^aC0=0D`$p<>B@(Ri&l2{`r@LqwW7snL)s2F(ORDCGE^up6z@v>iH(bQ3>s`Uom1 zTcJOx7`M~j?qf5Yn;BR{^P{IQkUe_pdTSj!@c%ynu_^L-T(9w5BYE#>Yn?wdg5$okK~Ym>DR zD-1doe9w+z1@*860# zQSK~2*NLl%CmwHA{OE>(j^XFULl$nI`AuF|(DHKtNo0!hjza?#;hV?vRrwqWqq0>7 z6cF)ayFN_-_2>N`2ZBuhp=)A4x|Ge$B^%p4{a8fPDPkMnu^v&jSYL9nv=_jW42_z# zR1!j29Fy2_2&hTklplcuRxRCOk}cZE%|Q>FKL>6kfY+6c3>ZH|K5Co@ z*(bJ^wwG*j>wiAVI$m_HHa+|eHnU1)A&6txQ4r)?-c@XhXNV~}9Kka!H+B-CrJ3B- z9ctG>cb)`+YqTK$Gujp@Syb@Zt9Q=5w+dfMsv+suxp#-)a~~Ru_(4jG_y^DVg2oVA znN?twWZ(xwEA0@6}lMQ-8Ill)qKJCQVh(Dr8M9tY5sOgkNzsFD8 zd`@Xhqyo_`y@^wED8guh-qu6o8jmz3>V^3&5FdD7zR>u_vM>0Aj1F526)(4!A4pTV zF~@~ZS9884_GC)s?}p&vcKZ9)Z3|%B7SXtKabi)PPe^NF!y^}#`G3}7c55U!w7Bzw zGa3I5c}p0&@^k1|6-&ip7@CtRJS3d<&_a8E%ck%dqIszF3rwP5hp%nF%Y=*ryr>z& z*zE`JRoN5&vTovLYutd7Bc>8TFD*UtTj!yEjyl^mdcJ0hn3rH(dM?lbeG=#L$TkC6O` zeJn{=Eq`!wIMy)h2~&ibTx_o;LSP0;n_9#415G|ku2?sZY$wzIE}AN5NT6hga#3?n zZ>e*Ht(|?i=BVm2Dcun{&bFUM=;UV8IipxdF_SQX$xH7-`-g3Dq9SiK9)bx^K(a#< zC5`gxe37{w7jucY=X8B5#Q#n$Ojo+!&QN=`bzn5RRWS+uG%dvr)e9Ltd|Y7z`@*(9 zj;rtk`;Lo#=Qz^Yf}!=g-Ehb4UY8>-gRwC&6h_T_!UGJU`h;*1xXfy!y*>ldXj~x% zhP|QK;nGA{Q{>>lXU&*vg)8su-5XxN{S93r0ewTu%I9$Mqpb^By0>0W!7E`4ntObl zofl%zMWvHV$25Fz-pr`W(C?kV7H-Cm?T;r(GWb#8f?bNNKtSCx`f`Ap=t0t`O5XHh{GL!9*pp@r%=Sv0e$Jpal z>uA(XO_#sqxsG+Coq3Z+o1pHc-iv*ble3bN->up}gs74-U(>=+_vnCRrKeX1cs0^3 zsk5Pzg|P+Rj#iFLiY-f3AuRzYIO15WB1Sl0deoJ{YsS{n|Ug@RO_FKO54s> zGcUilJEUsi$LG(pxK3r=$^#2_8Pb|Sk?ud*>Q4jEHLgjKnWDrlW;l6o)}!zJi{UizM;keDlr631{oT#FP0NTk5rRw$N81Rc?E!1K)KnCi*CcgWbkTmyjpl~#_y?M_+L#(Mv-L_HhD6BEF+sw z$bag(1Cjz}sfGu!P^h@7|N8XlOLGjIo5}Q;L0?n$c|6%qlkxp|1yXVw(#L;&o$4nX zxV8erKTT^kC(aW}iFRd@OC(ZT_z@FdCXPZ`9vZK zigY#GL@fo>Vqnvistc&9z)SPMIJc+a?1D02Sk5jb;R@@&S!&toL!+4M#zu;JwJ*M3 zJIKnvxPCl~sEU~X#3FyvRlDp))8|x`;U?vaVS<1EN>NP4kcS~Sdhffx_K~oUkt`(` zDO2^U2?5+buS1lBq|`0}IZ$AIs^>DYZrDDgRH@>YJmUfVCzI!Jb55)pB~*`Mwzr9@YdioFy38?Atm zBMm7TD0)H%%dPVCw?deV_7S9$cW&{8^n>+k@M>`QWimm?Vget|Q z?P0PVb?MCgSu}pbDDbZC6NSI2FIY#VAc8Mq+hmw#iY8|ND(r^yPf;2r7}Y`v+_X}$ zhIA|AV~&Y%R~uG>do4U>^sAT0JlFpt8pqWTy0o@pzdl3t!4zFxP%%`Hr>I&mLanqe^q=Tx6K~ zBen46E_&_AC=p=YO4)DM6|$O?pu`V^cE;hnu`uW&EaAziDJF!UGjToxODHb?y3cGT1tF( zW3l#%+kWVjQHVQ4i6keSjnLJFXfkC1C3~?KHX{C22<%+4v>CC<%Z@E%hn(+E@7U7P zK7`yK`O9*bczM7McDF@GJB#HQ)Yd6I!OT^oCI8*KZ9^0$A|%?!=x3bwfnJ!WTF|y@ zEE82~%skD*$V`5E)x-6#6#uEKXV#q40y_9ZqDqhBNVuL2RnI4xO~>cG0Zt zDUB`cbo`}QKX%;+$@YfnXi5%d24A#xAi^)7GJ&_W65gP8{XD|K6rRm1>4xZIo#LUb zMr_fz|HIfh1ZNg@Ydf}Wqmzzp+qP}nw(WFm+qP|+9lvo-SN-+M=J=phN z>wd0lzufD7?O*j6%Y~W$2=vn&RLfc8_>#q`vM49+dS=7J3{?v$%{w;YiONSwY0h1; zxu`;mH58)8vV3ci6v2A$fJ9~Ui_&B~4`oGq3}^SAP73b56EnDgTR&;0Vb@FC2#bN) zwq1zwVqP)%a;9H=r}~}XPy?>~%C0+7Wkhd>k}3zM#2)B=WH*zTmQeWfnbPs7FD^^B z1A_m9rfIF6y&rhG-qlyt&u6g#mxj(i+D@m?A=|Tt z1Bl;7dea4PH^`hH^)|3 zS8-JNVjf!gm`oJ9JZ~u-<7)W~#6Zzy7&3?qsynV#8;TVTM8>red;;S<8?EhXQK6;e z&f63hqjG;vsm5^Y%&L1c@&4=A!7%5Z=PdowBp_4T%*tgH0=2Rj`RYD+zq~t_T12<2 z!4O7nG8TZxp8ksHfGH&alZ(z}Q(fzwKEXjaJ6!V1c9v!;&S#rP5Rq4u7dv-^4P>=K z`(iiy zG9+LYQM4^EvKHV0>iI3)X7#i+W%MAo4l^*?8D_kmJa;u*53=lvJQ?LqSC;vn5ST{@ z7`Jq`EB&lZHxgafF+?ea8g`K}+5LLLQmg8Q9p^Km7wo4>`%!79$n|DSh?vf-oo?iz z*>?Pt+u8R~X+1Z_Uw>Utba0t-Y}v3 z)BEMJvWEADxe-^?TN!(~DwWL|#Qkn6UI~*)Dw>U;Qv2&S=6m-zRn&0{-heP#158#(m8IvG1m%?_s^HV8)gIQR4EXBm@kQ#Zh3?8WE z&xsHf^S9yoLSX)RfzW~Ajb!@B$aqtQ{wRJv$8chVItOhV`Zd7_3|$R&IuZpViS8{~ zJ1McnQ0&?skEY1*@t<(R0B;P90hgcz+^bBq&;^#NANN>!X?NBuUSrMr4&D$d-HAWc zjdEAhjOiR;c&?gH8Gf6&Pi-hhz9SGG)l(O{t1he+QymKG0@%E;Kk`0@e+v$qKso4) zh4ch6lA>vl0u-}gqB=3x91Xhr&;)HoT>=kTY&+x#YLMYpE|qVu4!GEa{;3X;Bk*9U zUT$P$YAF}`K?hUNGhQx0h1)o^7h^RE=P0skRblBQVHdFc8+zopdQaAtLR%PY&ybe1 zIM1X?VMP|_?#**9;t%1c+jaLW1Ngruqj<^K&ES5&Lcu70>lLqQsV>u zl$zqq-DuZ1&TV|hNBu{h(fEPie_n<_8Kh3~XTI{nXkt};on6-+6Q+q5)oUsyuRIEO z^6Xan%t2RR{8apE^&tPeDg5;Az!^E6ZSwi((&|Dm=@-OZYqdcq2>ul1qN!E7 zzP)KA3OCC$v-;5Xh|gmQYfDKei{Ks~bdDN7BL0KS@} z#PX6fsj^xhd+;FkMsk>IzmiEjbOsqYwISgVICie~%(d@?;_^_DQlj#YUkRbp0p zhcXCe$?YUo2%v8%VZ!Kw;qYU7k57d}HN;7YcZ1{}TvvAamV&N9Gz7&9fnHgv)B_o%KPjNiu3R+MydoV(_7xiUp%+7;;E8x&-E zeAh+#RZ7iXnth-Y@^m&?_9yw*nJjO&nH4&I;j^SF-@@-9WnCi$l2`S_gMpXCrv6z~ z)2#BlJ`qT7YaF~BFl?>p$o+|_Tg5W!brtu{W*j;98civjlbdM2LpR0m)rIO{zhtGz z+ki_xj7(8uISbgc8c3`zpcO?^O3q%r?Dh7R=9savmp_N9>lAY$(97_E03ixy?$b9Q z81y)|s)(q|tDJ>73u&4f#(Bl=)Emsz)kIdeM$Idc9SS2tcmK;kj9kq2(4ypezEOaq z*f9}o2!~5Xa(hFoD*5tP$sX;90I_Asz;Z9s3bH3+%!Qtk6I%ZsGG4+L$^PJu2-4pL*#nL|-f(K8Qja=Yl}DYt1<$Yo zX?JIY4z^pE5KUcZVQkbWDI=+;aM4t2wtE9ZXvk|uOdw&ozn7=`=PtG&H65JWyF;pi zZHfTC@y9g^);CjQ%iSscvbV!{AI9GdE1vb}PnsVjHdqHjY}k@0$M82z)t3!UX-@8-o<%(Yb#a*vSMbaKM6O?d>Qvq^llFtS5|J*Ev z&ZTHK#Cfph4sj_Y!i}RBht5kmAZDCF7$CNfsrf$+}=9t?Ln!JC2=fy zUc`V!>^!mc6kKeNEZ~rY(~%he4t?eHLvY@Gl82m)Ol?GQyniqyD08q9ggh~A40WKk z!fG_R zZg^gI=Ha`fP;sH!j8AclF85aIE{`oifUZp>c+59JR`5oB_#DO;PnU1_d&z-apJ%if zj}~)k2WSMQ!38?XM15e%Brk0MqtHSgL-&f0o|tj0+GewA&`3EFKtcDO(auaME37}M zb6r<>BcMcA*9Y8#PZJHYv86Ddb(x9P6J}!r)lZf8T6AR2uHVYaj=~AFS*tfSMXEP#!<{sbJcKHlw3r6`!xBGP3js()Z6(x{4 zj_NDAY1s_`hjKHp9)!1~ZNK196}1U+`Vh*Gzky2wqFd@Bge>ipkFTbY0$tZLW zH$NO2O$@Pqsa4Wo0653pI^E8ufX|gX($1NKFsfQiSYOzI#okdUJ0so>iST6i@q*mu zv;1OUelg6#DKeoE?-eyHC8PRRfnRGzY2_)@(`yB(ow+KK@e6!2ss;IdHh=1_4i6|i zk6_PB=x|R*f&a56HX$t0!?lSN`&^duXS;{^m2Qs}GylF!#u< zc?iMUiWh5{1z&vxwHtB;!}daY_sJkEjLjf91;tl0Y=Y{gFo4SD6c2YviZ3a($V(fE z2hT#e&qvQFbv6m-dszVc&>gbz?Yn40v z8U+QJEh?i1#X_ZdGvPcKlWxL0N+BarG3jDEj#W9}DIFg~eQES?xDOXe#o#M# zhTA{eF_ObHInouvt@vmIK;1xW-{1iKc&58@c?Hw0@~>VMlEr6rxYLUWJc_N7v?Z}5 z6p^MkNTJE5kBf!XQna;;Ir0(_7O>RR0dGCK0WA4u9eQxyZHkO?yr>E9ZYC?{uFOCx zIygyDy0#@e)n6lRikBy*neSOfBGp>HJ5*TcVf@%~+f=cRnh;3-38{tf#w^-Ro@-mC zN%FU7Jf2LV(6Aru4RE52id6f>_FwowU$YLjgMVX;I$1WU*{%KZv3$ZfMfzxx*X2;O zRJzqc>MZw$$!j>N&R@$5s=y~3MJTIKLNcSiX#oQh^vH`$=rY%V<^#Ny)(Dx3WbR4| zdMb717f&F*Z-O<`$0Zz^zvWb8YM64ze^z5{0Eh(A7hRi0@5g2`8Dw|5)9pGzz=8b4 z0p~}7xhD)4GqruGxTGDp@KSCbEcHjRq)CyNy5mz-~foNyK8OXmbuYB4oY|F?ZPOe2P}=)3|@KIb>qWt+&vb z1+mTdKkxDYgKUBbQv&m!?t|I&Md0xX{R4cKNGhc|kc(vM?M^IavYqS_#C$EcV+vLj z?mnKn*~Hu`82Qre5z^l(*_3M`kgXmF<&3gq+y&dAVi`-OEiS(92~Xo1O=muYPQYU`(2S`Nq!3r4D*(CBS^F z=+Iod%PgBS=lIIQTs|_9tQ_0mbE)r&X{6|0O6x(x@`=KQS~doMvF4BX z*|X`0>%!$M$_$*gFrsd8B1X2bwT756PhgFLaY9n_+P|4QyPSHKU==J*D2A8qWqv}F zk+1*0I4bUb#-6U@AVZYGh((s8+=bQdiuZ^Urj zjkO&6LeiV|X@0#Qf6MG%NAlat3tM3fd+j~^tA$NY9gV7sg8X5Kvi~@Lhq>rbwdceb zL+3t0NlbXwCOrkbW`onJ6r|T7rm=Q{0_BMC@y#-Ev%GD6}GIQP~x?NBZZ7#Jo>vJ8q$)3pNApq4+ed_hEDkL($_u+(eplP_#=jKZO z*5}$dj#n9xzr0KX$)%gnvWqc)yY6u={-#93K?t2+-=||%Gy^XTkb4m-ry~EwDFzO4 z(%|#QwXSuCGl#!4Sb6Ph}gfs&{0%gRVg-e zMMBbSxw^)UC*;hudtaEHF=0}j_cRe4Z@HCBmL?3}>ejMozzNv)En{DUpW5_z%FU}n z#0gwiKZ)F-M=HrYaC%R}#uN$irOX<`r|~Qfu^l2N@fL-12+FkF-$*QcjGF8>uN*g! zm`7F4NP?aol+v?7#;$`FIv$QWuZTvA zx8112@wFjdq}xmJ_`tgP;1DMpxC*We$zB_OV+sUEWF*pXX$#mWpS@(Fm7aSx_ z>s#361B>``9PRofzq>w2SxA?3TY$O@?Knnr?bx1Y=yqYyGif=r=eLd5;6e5t%!&|z zsSYe4u7AT?{!H83a;5o;74-sJlYA2@AeUw3&r2k}L`jdU{vum3nf?+lT?bi@FPz$+ zb|B3iyBprYat%ARBYO{N#~eEk&YtDoJZ_E9_RFw(^`Oy`vKX(fMSs7_Hg8AQl$YtQ z<4V%alJKd??&vuCbCpW&BrkU+eJKTe2ap7oi$~f9js5hUVa5 zZek!yT^yfXrzL8amZW(0EV>+-NduAkS1W<9=f7iXI`=QDH=TPlIM!UBgJsM}AyI5W zbR$g6zojjnH9Qw_T>)Vgt=(5MtAs-nKRh=@EzWYX8Tf@_#L-3fy8t&dvs_#xy?oQ# zv`6vnGyvl}v!a|3X4ohe|1w-uQDlErBJIE1DKrG*WEqKZ#boi05^9j7W|Q{6YLRNH zua%_?@o=3!TQbgsnKK?rI;Tpr^C(T1(&eNO%v3T|^Yt<>Buc(LrIhM{t7hsBx8*Fa zw<%YR?W@%E?uKgLEaT%=hEN7(Obo&TZMsh0*USkM(5z1xqjXGxR@_NXMM%Lquduhl zL^m}-@D$#kunEblg}wLTC-=Ate@oTF(SH?})FR=763{23z)z&6^*VQWKPX?`n%0|Q zQ}6wL`B&Ir55=UIn=b;gzTIh-d5_lkPoCqJ=cy@XK_c5DfQ`weukrIvKTX)rD&w_Z0*yC8DN$phoa!JszKS8ELXmPukAd9VJwA@_KW#PbgQa>``X+*=*I z>U@9prizU?;1LXM_=Bu_`pJ`uq|j9fSLqGGy!te|sYW_dR~ucPSYNc0>Y@+ji3gka zHz3Kcan~J}Z6_bm!INvS{>gRM2#!9eDJM=6Ohd=PDTGmUg48oC0o_-=y1%tI6DVh5 zlkN%`cExLbd&^(uvjyfgo6)%wRFpQm!BvmQHw7J+^)Q8IAEsQ&MxHrIRrM}WR=vdEE&RNAR~w~`d;s&QBM*M0bD&S-V|6Y)nI0~_ z@z(IQT!NhTiW{DFdY8#jEJ*Uft%yB zF2~q2$Jf7VdaqB694i6__y1(c{aD)I4@9MOSq3WF%XOAw?PJ~jrL6A1_mH&E`qkCo zZLw5M*5%-95sOt7H+9F({3;%66*%{N{aRmJXMZ9Y6CJCLke+rW7 z)paDQI!(yNVlR?)x<;r7Ry@g@?k34Fd$l(5Q4{5Vpd0*Mxs2HH=b6g~_zuAqRCays zhe;O(S8M25zeyFCk{C4~WtJ+yMQ>LfYCB+mAh_AeUGGv&e}~IZ0!K{BWf`G$`9~4aCVB9sz;4uQ#sGo>22cI_zLar*}Uj?h+C#YnlX#^I>;fyAF+v{ zYWlYvk{@>5y-%U$$43PO3BjK{Vcw=3jxIEWW)SZB@6yj|G&R$-@p>*$01Y-+F@6?^g zm0ZBcETI!b-#^nx7hh-WeEi}}Z0RN&c5-=h?@p>2NGB`w4A^SAtwk&9w+;{#>Z;n( zYrsAnhN6XP;>BMDih49TlYjA}(`p=`3G$F_nT#95dXG!&JVtEEisRmThsr;n>N_2~ znwu(X=KqdQRj^ActwhbtGaVpy!W~7Bh3WFlzrw~5o$J1rZFB)waJX9Cy!SA}X-J=B zE2&cOwopZ17G=qa_U|supk!}CI?J#KH-!k`zO=CW`HHPS6tz^w-qLPGHRkcc@jVDr z(r|YkMs|IG;F=-!*N9@)BR$w-JqFvKD|-VM?a?>BZ=(l}g=l4RDyOTzSsw>J*fhhs zv=}M8GtkG6h=Mpa-ON(^{7hZ~I!aM4Oy(gyV~KMo7nx)&doA7#{aFGhhE?OtM!q(R zZHVOxZ_HiJ`9Uud@Clpb^T&9{U88-Ng#L;N#n^B_yiREt z{jdcq8Pw;CdQUHVla(VDpHaIvO+8-1uE1LGvCSd|S%MJgMOJJ9=NOCshX$u0<^=_zN$u_uq6}^O%gH*0PX&km(NX2J3YZ0tpMFd^Bi>4@%WITjMb)QVyEfM< zimG^@u>5H^)vu$OU&wQ0JNdlLZz71+oJg4d=Fs+>b6oTjEMqNZlTmYgaB;?)nK&K) zG*<|jy)1lQf+jwrwCR3Ub5GgUkZZPB!f9`HA3&3#BQ#~l{A(%`XELy_S^lSg&eY|$ zr}qA!QI(9+U!n8-@*z9T#dt9psf>T>rpxzaT(zOVzTo@#D~KybDG8g3`VQqv>?AoR zMm3I;DI&20Sk$i8QoJjp0)Ntxy9(#)78&DeVi(1$|E@fFv?M$qM9znvuV9VoWywTfBit)`h8$ z5BjzYZCBd4+8pOn{pSt&C%_KXW<6LvS$py)cp@VLA^sZ+wb)QQ``(M+DztNIe}#(G zz^e?yV_lMee`$>`5oBZ2sBzNKhb=M_dh z5(SKC>&3LPB}AFx^fWV@?D+gZ3=O`hP~9cAgmfCCBDDLoP?nKX=lkJ}vUE;#eT^R; zUt;t2RD_D-vKQY)3Si4c#r;6^ksK&il-*tI6lsxacb)Q1-k;gHCMr;fsFnkpj>ay~ zXF2!=jgEJP?$``rQWdi2F+eYAE~xqIZ0ibbQB6Rj`E78;DN(AHn+}7gQxj07!r0wk zFAOVfF=)Y%rEpU7A&2SgqDUbFiiRs^P^okJNDw$xXOzaxRN!u~v5D|4T)K#3TE0vM z-K%Mo0brap(lSVMg7I_m#|b{rHJeqHxo?GD1;m|qRFRpO>KM-5D~LCYG3=Z91_Ly_ zOi|20Cn}ph(fTPJq~9-hCt1pI3Ezy9(_FWHF%hLuyCYh(490~wo9)>WaOj0BipV8F zuw5`~@H#bLOH4tGG-Sh`QGltEN!`)Ks0`j#{Z#ZgLJgeXjv5J+Y7{&PPJk(Nw45F> z7Z~U&tGQSf;TEU&x;q6`0#U7kx|M4`wim6f!30G{Zf@I%jC#wj7PJGiJ}Fjt12`qc zwFADR3b>MSQY1Yyd*e=?YBqdfh|)kz_W`L@LZaSOWC<3Zc>}!!ocH}*DUt1WMqwS{ zKu3W4iM2sb`dLAv%aPHpUf-&Zv2!$(qUC)J6nazG-r>5hJ=gpK`r>KNB?nne6J)6h zNI|{uMx13@)~I2jMx=Xrg^2dic8qA59!-`3aq_MNvP>$%MGoJ7R>6vs6zV#xU+?W} zjoRkSwj`y^?)_hq?lKc2a`O!Jfa|{Q!D4M@6)R+)MxyPb`BJWdJ>UA)zYY>U9L3D2 z78{0FfBkv6Z^R0^Y!W=fnrXzEXWh2wBOJg=_MoW{O*gLYn_kO6wIR?FaUJN?x>c+T zh|@j>N9=!{*u1QV74xsyOctrH+FG*JC}%`sZAV9dHYNt0y%#eN1EQxCEV@L=;Sw{K ziVyTVxuA@llghYh7(rBZUKkULJIf{|B zx{bHIe<5G22{HXcZqqF2M>W%0|B6gK&-aQsfj_P&W+7ODT4fhoZlROv;R#{bTqZ;e z`AElEYpca2q&i|lh?mwEj=+IS5%4fFWIjtg6k#ZNSn#xf5VcGU(9!K$={F~)8XS7N z_ZYuk9v_ogP%s>i3NpTJQt$|H_UPZxNVZ6n2@g)q%8-x>^@l?ajxG@K`jgXHCo@@q zJ7>el`PC>IgW~4El4~u{icLN{hzFWtJ%VXZw%NSCAhLTFINU6B`16_97f8Mq`;}ef z7oR|=vUrWA-FqAEs$f$FoQp!Un{!IStxUWpBlqD|059fL!7RIv97`oZ+@6|N!&`{9 zY67M)LXc1JR+*p|K=bG>LK*0RH4$0#t9#4gHvB;T=D|B2>NUdzs_MK#fEI;)yHVp10w|$V5PJD6-}{z5j3rN`q@G0kRp-^NJ8of zNs4Mwg+YfL#Oy5S2m}@Jy~>!P4M(_I*$GpG`Se7hb-A%;g?e^hl=7W`GDDK^q% z)Wn!Q4!5Pgb>|V^l@{gdoLoTeK{_)KtrwI(>Fu$T9$fS0q_*z_xsZNgD04I ziTJA|KiAV?SQ-V0!?f%SG}0;gOC4})ga>u2um9kw!7s)R^j|%w(7o)`H(mJ%n;um& z6+=5f-dr2^;6?_MR;i`i?hHI7=#3=hwLpc;%sjLe+>Usk~M@5IFVpJ)GDUBJY|`2Tnt{|DektO~4(%m`}l&U9^SY0ubno|%|b4w;;$V}iOw6cUW?Q_^7` z-2=z*Y9f0m2Yv@h{B2%Eg7aFZ`;3`Y zV~+^U{GAx51h8Z@KIrVOQm4P*%sQpiMbFh!_VK@bKqh2Voq;Bu!! zmJHOPs1gBoZdhP%qCgosjvj)c8gY|Q;JSfQEz(TQrsK{C!(`tcR@6brFi~#3Kq_$& z6Txc?Vz=zzL#i6@=FG?=WRaVqWK!7wkXY%|iTeSDNEd}Z_vFN2cOgXMQ_-*qB|wVN z$=I71ia6MXuuLs>PSG(g*mR(g$0QOESrG~TDK6kSVL(E)B20^Y2r;d{WGE8;7=e%x zN&XUhQ_6KAjTB~+1m>)SfF()_lmW8z&)>sHB1_)SPHL+0nQ0W_6P2-C|6;IBc7-tlOVox zR6Q!Vwwg{Lr3Lh{ogr05j%ti++7 zg+0LBzMw=1M620SI!{(y@V?1imcWsGnddhZ#T7lmzLj;B;aS_B_(&RBekofYOA9z$ z(YG^zCtC}BUybLK{;k_KR#6qNwz;@RP};}1G%)a*xpTZ&tTW^M{VwUP_?=w40hp$N zoX75QY_aC+)a~h5pnE(7_`)7;ob32ad#!8$nqrQdFjR-j%?m}}Xe2p&|L82D^}4KkmBYM4GbNK2m zjUz2}!-r8w7GXZBE0c?2$RP-4gjm zy-{7~4R1$>tFa);zEn5@Zq@6CujLc-hAT@?ndSTK?w}iUBb=MhwgcYLXll{gXwFhI z)&XfeM6jRjiShB;rZX->q*U4{&IN3}lti;-H@k{~;kBqgF;<4l_MUde*6uL6R~%iJ za<*{0fMwR*FC`PmkNpOOK+z95y`kOYivL#w<6xUd@=dU;PVF_}N+nUAJ~QxZilH<|oaU=wnr!Z>lAeQd2lp(S2_bQss{9vIMu;0^@zrR}7=y;HR!!-P z1U{;3Ftcf+s|oz6Shmysem@oa^~nZlx~dvayK@|_uCC4aoiRKE+ITK6WD67a;Z`f; z6N&R6<)yymY=1qCGe7mcPYTETukQw7aC`_W*5Ab)=4;Y7O$n!Lk#buV5q9;IGwVI+ zUM>1e0J_dkr^vhH^$~Oiy4>$(p5Tu>JNChJ>2lE&)J}T~I72D8b$bO}C&>rTa{@;= zg4O@d_}fNB_4?0PvO7yz*4qGB#>kVqvNp}jY^RLzQ(yIVm%k0hS_YuIMJdMMUU2m? z-wz^eC7pXnXslPFZ>y)xEDa44R|*b?p35+E$MWQL?zQUcu@FroYxUfBBtUDLsUfI{R;ODAq;DqZZ)*^%-{LYdZhKf zw@VkB8t-O#G)vO;4=1}CMC~AF^ji4O?^$QFRi5$)U;R8!-Xl8vA;v`QT#&A+%q%Eq z>it!?XX*NVY-`kkcWib&9=jUZ0$0kI5&w1pgoJp#&p;^;H*}W{TfyBPF8yCs^ftFq z9n>9aUUcnPeyT6(et`2j`2_!4JYxNC@rad`;Xi?hiHMzrf$cx1{~eDwSeX9LW~bOz zaFrBmOg0%(_(fv49Yz+YMX1Ht5Qae@P*7pGot@a`5EscJmokZPsbCk0@a1r?UFX@4 z?;owbHnW<{v(1mqk6rJ*HNRDc#Y$^Osmvk0;1feP2RS0l_+J8IqSDe}{X;`zBSS;c z6XWIZfx-j+nT*)3195Ul8M)_uP)uAtpk+xxMJ{$_MpBsn+J z191W2L%>>5lR&KA^*e-(4}>6)`*j;Y0XqGCOJC?;zmbP;-5JKG;moWN8=b?~H9=^I z6c_|#^)g{^Auh75kSVJErA3O;lEe%k~2w%32ui^ zzyiOm5jv6>kF^-Qy@`K`Prly@QD7s3DW5ySRihoemgU@?Y>3puB~8y?!dljM0^kL z&7o^x3`E(09%79Ba6%b*$^=*}Aa@rCZ}0D|`#mUBD6kCS>HUB;1L+9-Q~nLYX@h9~ z*MkRqVmlz=JjfehV4glce|~KK@hLnrNY|h6?+?F@XFZEas>!CGi&y*nW|nFA{RygZ z$o*sVePAF@k5C|?AReH^lTaIuAf3NiPsHZ8`zw-VSccgkp(0LWaQN+%L zyVJ7u3YdGRAF-cXY-O^biMj!_f9~+|*)mZGXj4~OqtV`y(hR}*o))3_PaBF1E1Oyi zXU}Ps$jDBGI?1CxCw*raC~PeZ4T+lS*hBxm<|?_D7>GgFI`--PC${7)UAM(aVczN0Uh_J(71SjiBx~ zk=B$c^Qf-GAO)c`@;+bhCvF=@l#?UOHJtX`lj+;X59nPYl}vSUd5MsO=+wHhv6lLT z=watjrgB6bK26=!Xsu?6xa=;kYylgRnG#Qr2y@%P@3{sYo23j)`sKd5Le97v{{>A# z)P9ck%tTO9v8)tdYR0YXXz4U6*P9Gd5KpijPeFzzNk^<2xu)4E4sp2f6$`oM7XRv8 zZI_JOsLFakL*``Z#T2JgBaBV^8vRh@FZZg2-0$M ze&p|K0S@>(Ag8sPHGo
-[Top] -