math-exercises 3.0.177 → 3.0.179

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving1.d.ts +14 -0
  2. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving1.d.ts.map +1 -0
  3. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving1.js +283 -0
  4. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving3.d.ts +15 -0
  5. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving3.d.ts.map +1 -0
  6. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving3.js +296 -0
  7. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.js +3 -3
  8. package/lib/exercises/math/derivation/derivative/exp/expDerivativeProductFExp.d.ts +14 -0
  9. package/lib/exercises/math/derivation/derivative/exp/expDerivativeProductFExp.d.ts.map +1 -0
  10. package/lib/exercises/math/derivation/derivative/exp/expDerivativeProductFExp.js +346 -0
  11. package/lib/exercises/math/derivation/derivative/exp/expDerivativeQuotientFExp.d.ts +15 -0
  12. package/lib/exercises/math/derivation/derivative/exp/expDerivativeQuotientFExp.d.ts.map +1 -0
  13. package/lib/exercises/math/derivation/derivative/exp/expDerivativeQuotientFExp.js +435 -0
  14. package/lib/exercises/math/derivation/derivative/valueDerivativeFromFunctionExpression.d.ts +13 -0
  15. package/lib/exercises/math/derivation/derivative/valueDerivativeFromFunctionExpression.d.ts.map +1 -0
  16. package/lib/exercises/math/derivation/derivative/valueDerivativeFromFunctionExpression.js +326 -0
  17. package/lib/exercises/math/derivation/derivativeNumber/signOfDerivativeNumberFromFunctionCurve.d.ts +14 -0
  18. package/lib/exercises/math/derivation/derivativeNumber/signOfDerivativeNumberFromFunctionCurve.d.ts.map +1 -0
  19. package/lib/exercises/math/derivation/derivativeNumber/signOfDerivativeNumberFromFunctionCurve.js +181 -0
  20. package/lib/exercises/math/derivation/derivativeNumber/valueTableImageAndDerivativeFromFunctionExpression.d.ts +10 -0
  21. package/lib/exercises/math/derivation/derivativeNumber/valueTableImageAndDerivativeFromFunctionExpression.d.ts.map +1 -0
  22. package/lib/exercises/math/derivation/derivativeNumber/valueTableImageAndDerivativeFromFunctionExpression.js +272 -0
  23. package/lib/exercises/math/derivation/problems/index.d.ts +5 -0
  24. package/lib/exercises/math/derivation/problems/index.d.ts.map +1 -0
  25. package/lib/exercises/math/derivation/problems/index.js +4 -0
  26. package/lib/exercises/math/derivation/problems/problemMaximizeBoxVolumeFindX.d.ts +8 -0
  27. package/lib/exercises/math/derivation/problems/problemMaximizeBoxVolumeFindX.d.ts.map +1 -0
  28. package/lib/exercises/math/derivation/problems/problemMaximizeBoxVolumeFindX.js +171 -0
  29. package/lib/exercises/math/derivation/problems/problemMaximizeProfitFindProduction.d.ts +15 -0
  30. package/lib/exercises/math/derivation/problems/problemMaximizeProfitFindProduction.d.ts.map +1 -0
  31. package/lib/exercises/math/derivation/problems/problemMaximizeProfitFindProduction.js +328 -0
  32. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.d.ts +13 -0
  33. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.d.ts.map +1 -0
  34. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.js +275 -0
  35. package/lib/exercises/math/derivation/problems/problemProjectileHeightFindAbscissa.d.ts +8 -0
  36. package/lib/exercises/math/derivation/problems/problemProjectileHeightFindAbscissa.d.ts.map +1 -0
  37. package/lib/exercises/math/derivation/problems/problemProjectileHeightFindAbscissa.js +137 -0
  38. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineY.d.ts +10 -0
  39. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineY.d.ts.map +1 -0
  40. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineY.js +478 -0
  41. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineYAndSlope.d.ts +10 -0
  42. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineYAndSlope.d.ts.map +1 -0
  43. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineYAndSlope.js +499 -0
  44. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingPoint.d.ts +10 -0
  45. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingPoint.d.ts.map +1 -0
  46. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingPoint.js +240 -0
  47. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingBuildingTangent.d.ts +12 -0
  48. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingBuildingTangent.d.ts.map +1 -0
  49. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingBuildingTangent.js +436 -0
  50. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingPoint.d.ts +12 -0
  51. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingPoint.d.ts.map +1 -0
  52. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingPoint.js +219 -0
  53. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingSecant.d.ts +13 -0
  54. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingSecant.d.ts.map +1 -0
  55. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingSecant.js +273 -0
  56. package/lib/exercises/math/derivation/tangent/placePointsOfDerivativeFromGraph.d.ts +18 -0
  57. package/lib/exercises/math/derivation/tangent/placePointsOfDerivativeFromGraph.d.ts.map +1 -0
  58. package/lib/exercises/math/derivation/tangent/placePointsOfDerivativeFromGraph.js +295 -0
  59. package/lib/exercises/math/derivation/tangent/tangentEquationFromFunctionExpression.d.ts +13 -0
  60. package/lib/exercises/math/derivation/tangent/tangentEquationFromFunctionExpression.d.ts.map +1 -0
  61. package/lib/exercises/math/derivation/tangent/tangentEquationFromFunctionExpression.js +388 -0
  62. package/lib/exercises/math/derivation/tangent/tangentEquationFromGraph.d.ts +9 -0
  63. package/lib/exercises/math/derivation/tangent/tangentEquationFromGraph.d.ts.map +1 -0
  64. package/lib/exercises/math/derivation/tangent/tangentEquationFromGraph.js +308 -0
  65. package/lib/exercises/math/derivation/variations/findAbscissaOfExtremaFromFunctionExpression.d.ts +14 -0
  66. package/lib/exercises/math/derivation/variations/findAbscissaOfExtremaFromFunctionExpression.d.ts.map +1 -0
  67. package/lib/exercises/math/derivation/variations/findAbscissaOfExtremaFromFunctionExpression.js +439 -0
  68. package/lib/exercises/math/derivation/variations/findExtremaFromFunctionExpression.d.ts +14 -0
  69. package/lib/exercises/math/derivation/variations/findExtremaFromFunctionExpression.d.ts.map +1 -0
  70. package/lib/exercises/math/derivation/variations/findExtremaFromFunctionExpression.js +547 -0
  71. package/lib/exercises/math/derivation/variations/plausibleDerivativeGraphFromFunctionGraphByManipulatingPolynomial.d.ts +15 -0
  72. package/lib/exercises/math/derivation/variations/plausibleDerivativeGraphFromFunctionGraphByManipulatingPolynomial.d.ts.map +1 -0
  73. package/lib/exercises/math/derivation/variations/plausibleDerivativeGraphFromFunctionGraphByManipulatingPolynomial.js +537 -0
  74. package/lib/exercises/math/derivation/variations/plausibleFunctionGraphFromDerivativeGraphByManipulatingPolynomial.d.ts +15 -0
  75. package/lib/exercises/math/derivation/variations/plausibleFunctionGraphFromDerivativeGraphByManipulatingPolynomial.d.ts.map +1 -0
  76. package/lib/exercises/math/derivation/variations/plausibleFunctionGraphFromDerivativeGraphByManipulatingPolynomial.js +639 -0
  77. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.js +1 -1
  78. package/lib/exercises/math/derivation/variations/signVarTableFromFunctionExpression.d.ts +14 -0
  79. package/lib/exercises/math/derivation/variations/signVarTableFromFunctionExpression.d.ts.map +1 -0
  80. package/lib/exercises/math/derivation/variations/signVarTableFromFunctionExpression.js +530 -0
  81. package/lib/exercises/math/derivation/variations/signVarTableProductFExp.d.ts +10 -0
  82. package/lib/exercises/math/derivation/variations/signVarTableProductFExp.d.ts.map +1 -0
  83. package/lib/exercises/math/derivation/variations/signVarTableProductFExp.js +451 -0
  84. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.d.ts +11 -0
  85. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.d.ts.map +1 -0
  86. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.js +514 -0
  87. package/lib/exercises/math/functions/composition/index.d.ts +0 -1
  88. package/lib/exercises/math/functions/composition/index.d.ts.map +1 -1
  89. package/lib/exercises/math/functions/composition/index.js +1 -1
  90. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts +0 -1
  91. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts.map +1 -1
  92. package/lib/exercises/math/functions/exponential/algebraic/index.js +1 -1
  93. package/lib/exercises/math/functions/trinoms/sign/index.d.ts +1 -0
  94. package/lib/exercises/math/functions/trinoms/sign/index.d.ts.map +1 -1
  95. package/lib/exercises/math/functions/trinoms/sign/index.js +1 -0
  96. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.d.ts +8 -0
  97. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.d.ts.map +1 -0
  98. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.js +226 -0
  99. package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.d.ts.map +1 -1
  100. package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.js +10 -10
  101. package/lib/exercises/math/geometry/quadrilaterals/parallelogramAngles.js +8 -8
  102. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.js +6 -6
  103. package/lib/exercises/math/geometry/triangles/triangleThirdAngleValue.js +8 -8
  104. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.js +1 -1
  105. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.js +2 -2
  106. package/lib/exercises/math/geometry/vectors/scalarProduct/angleFromScalarProduct.js +2 -2
  107. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOrthoInSquare.d.ts.map +1 -1
  108. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOrthoInSquare.js +32 -17
  109. package/lib/exercises/math/probaStat/conditional/conditionalProbaFromTableWithContext.d.ts +13 -0
  110. package/lib/exercises/math/probaStat/conditional/conditionalProbaFromTableWithContext.d.ts.map +1 -0
  111. package/lib/exercises/math/probaStat/conditional/conditionalProbaFromTableWithContext.js +195 -0
  112. package/lib/exercises/math/probaStat/conditional/conditionalProbaWriteFromFrench.d.ts +9 -0
  113. package/lib/exercises/math/probaStat/conditional/conditionalProbaWriteFromFrench.d.ts.map +1 -0
  114. package/lib/exercises/math/probaStat/conditional/conditionalProbaWriteFromFrench.js +220 -0
  115. package/lib/exercises/math/probaStat/conditional/conditionalProbability.d.ts +15 -0
  116. package/lib/exercises/math/probaStat/conditional/conditionalProbability.d.ts.map +1 -0
  117. package/lib/exercises/math/probaStat/conditional/conditionalProbability.js +332 -0
  118. package/lib/exercises/math/probaStat/conditional/fillTableConditionalProbabilitySituation.d.ts +8 -0
  119. package/lib/exercises/math/probaStat/conditional/fillTableConditionalProbabilitySituation.d.ts.map +1 -0
  120. package/lib/exercises/math/probaStat/conditional/fillTableConditionalProbabilitySituation.js +222 -0
  121. package/lib/exercises/math/probaStat/conditional/index.d.ts +5 -0
  122. package/lib/exercises/math/probaStat/conditional/index.d.ts.map +1 -0
  123. package/lib/exercises/math/probaStat/conditional/index.js +4 -0
  124. package/lib/exercises/math/probaStat/index.d.ts +1 -2
  125. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  126. package/lib/exercises/math/probaStat/index.js +1 -2
  127. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts +1 -0
  128. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
  129. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +26 -199
  130. package/lib/exercises/math/probaStat/randomVariable/index.d.ts.map +1 -1
  131. package/lib/exercises/math/probaStat/randomVariable/index.js +1 -0
  132. package/lib/exercises/math/probaStat/randomVariable/randomVariableSituationProbabilityLaw.d.ts.map +1 -1
  133. package/lib/exercises/math/probaStat/randomVariable/randomVariableSituationProbabilityLaw.js +6 -2
  134. package/lib/exercises/math/probaStat/randomVariable/utils/randomVariableSituations.d.ts.map +1 -1
  135. package/lib/exercises/math/probaStat/randomVariable/utils/randomVariableSituations.js +6 -5
  136. package/lib/exercises/math/probaStat/trees/buildTreeFromSituation.d.ts.map +1 -1
  137. package/lib/exercises/math/probaStat/trees/buildTreeFromSituation.js +4 -27
  138. package/lib/exercises/math/probaStat/twoEventsSituations.d.ts +29 -0
  139. package/lib/exercises/math/probaStat/twoEventsSituations.d.ts.map +1 -0
  140. package/lib/exercises/math/probaStat/twoEventsSituations.js +145 -0
  141. package/lib/exercises/math/python/index.d.ts +1 -0
  142. package/lib/exercises/math/python/index.d.ts.map +1 -1
  143. package/lib/exercises/math/python/index.js +1 -0
  144. package/lib/exercises/math/python/sequences/pySequenceThresholdInstructionCompletion.d.ts.map +1 -1
  145. package/lib/exercises/math/python/sequences/pySequenceThresholdInstructionCompletion.js +11 -8
  146. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFromTwoTerms.d.ts.map +1 -1
  147. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFromTwoTerms.js +4 -3
  148. package/lib/exercises/math/sequences/arithmetic/index.d.ts +4 -3
  149. package/lib/exercises/math/sequences/arithmetic/index.d.ts.map +1 -1
  150. package/lib/exercises/math/sequences/arithmetic/index.js +4 -3
  151. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindExplicitFormulaFromSituation.d.ts.map +1 -1
  152. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindExplicitFormulaFromSituation.js +3 -2
  153. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindRankFromSituation.d.ts.map +1 -1
  154. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindRankFromSituation.js +8 -6
  155. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindThresholdFromSituation.d.ts.map +1 -1
  156. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindThresholdFromSituation.js +6 -5
  157. package/lib/exercises/math/sequences/arithmetic/situations/index.d.ts +0 -2
  158. package/lib/exercises/math/sequences/arithmetic/situations/index.d.ts.map +1 -1
  159. package/lib/exercises/math/sequences/arithmetic/situations/index.js +2 -2
  160. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.d.ts +1 -0
  161. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.d.ts.map +1 -1
  162. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.js +65 -14
  163. package/lib/exercises/math/sequences/arithmetic/sum/index.d.ts +0 -1
  164. package/lib/exercises/math/sequences/arithmetic/sum/index.d.ts.map +1 -1
  165. package/lib/exercises/math/sequences/arithmetic/sum/index.js +1 -1
  166. package/lib/exercises/math/sequences/explicitFormulaUsage.d.ts +4 -1
  167. package/lib/exercises/math/sequences/explicitFormulaUsage.d.ts.map +1 -1
  168. package/lib/exercises/math/sequences/explicitFormulaUsage.js +47 -7
  169. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.d.ts +14 -0
  170. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.d.ts.map +1 -0
  171. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.js +291 -0
  172. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoTerms.d.ts.map +1 -1
  173. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoTerms.js +4 -3
  174. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.d.ts +15 -0
  175. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.d.ts.map +1 -0
  176. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.js +249 -0
  177. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoTerms.js +2 -2
  178. package/lib/exercises/math/sequences/geometric/index.d.ts +3 -2
  179. package/lib/exercises/math/sequences/geometric/index.d.ts.map +1 -1
  180. package/lib/exercises/math/sequences/geometric/index.js +6 -2
  181. package/lib/exercises/math/sequences/geometric/situations/geometricFindExplicitFormulaFromSituation.d.ts.map +1 -1
  182. package/lib/exercises/math/sequences/geometric/situations/geometricFindExplicitFormulaFromSituation.js +3 -2
  183. package/lib/exercises/math/sequences/geometric/situations/geometricFindTermFromSituation.js +1 -1
  184. package/lib/exercises/math/sequences/geometric/situations/index.d.ts +0 -1
  185. package/lib/exercises/math/sequences/geometric/situations/index.d.ts.map +1 -1
  186. package/lib/exercises/math/sequences/geometric/situations/index.js +1 -1
  187. package/lib/exercises/math/sequences/geometric/sum/geometricComputeSumWithDots.js +2 -2
  188. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.js +2 -2
  189. package/lib/exercises/math/sequences/index.d.ts +1 -0
  190. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  191. package/lib/exercises/math/sequences/index.js +1 -0
  192. package/lib/exercises/math/sequences/recurrenceFormulaUsage.d.ts +5 -1
  193. package/lib/exercises/math/sequences/recurrenceFormulaUsage.d.ts.map +1 -1
  194. package/lib/exercises/math/sequences/recurrenceFormulaUsage.js +89 -9
  195. package/lib/exercises/math/sequences/seqArithmGeom/seqArithmGeomRecurrenceFormulaUsage.d.ts.map +1 -1
  196. package/lib/exercises/math/sequences/seqArithmGeom/seqArithmGeomRecurrenceFormulaUsage.js +5 -9
  197. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.js +1 -1
  198. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts.map +1 -1
  199. package/lib/exercises/math/trigonometry/circle/associatePoint.js +55 -6
  200. package/lib/exercises/math/trigonometry/circle/selectQuadrantOnTrigoCircle.d.ts.map +1 -1
  201. package/lib/exercises/math/trigonometry/circle/selectQuadrantOnTrigoCircle.js +5 -6
  202. package/lib/exercises/math/trigonometry/functions/associateAngleSimplification.d.ts.map +1 -1
  203. package/lib/exercises/math/trigonometry/functions/associateAngleSimplification.js +1 -3
  204. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.js +2 -2
  205. package/lib/exercises/pc/snellDescartes.js +2 -2
  206. package/lib/exercises/vea/polynomialVEA.d.ts +2 -0
  207. package/lib/exercises/vea/polynomialVEA.d.ts.map +1 -0
  208. package/lib/exercises/vea/polynomialVEA.js +17 -0
  209. package/lib/exercises/vea/valueTableVEA.d.ts +8 -0
  210. package/lib/exercises/vea/valueTableVEA.d.ts.map +1 -0
  211. package/lib/exercises/vea/valueTableVEA.js +12 -0
  212. package/lib/index.d.ts +152 -41
  213. package/lib/index.d.ts.map +1 -1
  214. package/lib/latexTester.d.ts.map +1 -1
  215. package/lib/latexTester.js +9 -6
  216. package/lib/math/polynomials/affine.d.ts +1 -0
  217. package/lib/math/polynomials/affine.d.ts.map +1 -1
  218. package/lib/math/polynomials/affine.js +5 -0
  219. package/lib/math/utils/arithmetic/primeFactors.js +1 -1
  220. package/lib/math/utils/functions/functionComposition.d.ts.map +1 -1
  221. package/lib/math/utils/functions/functionComposition.js +18 -1
  222. package/lib/math/utils/polynomial/polynomialInterpolationUtils.d.ts +19 -0
  223. package/lib/math/utils/polynomial/polynomialInterpolationUtils.d.ts.map +1 -0
  224. package/lib/math/utils/polynomial/polynomialInterpolationUtils.js +53 -0
  225. package/lib/math/utils/polynomial/polynomialUtils.d.ts +37 -0
  226. package/lib/math/utils/polynomial/polynomialUtils.d.ts.map +1 -0
  227. package/lib/math/utils/polynomial/polynomialUtils.js +223 -0
  228. package/lib/math/utils/sequences/situations/seqArithmeticSituations.d.ts +18 -4
  229. package/lib/math/utils/sequences/situations/seqArithmeticSituations.d.ts.map +1 -1
  230. package/lib/math/utils/sequences/situations/seqArithmeticSituations.js +434 -333
  231. package/lib/math/utils/sequences/situations/seqArithmeticUtils.d.ts.map +1 -1
  232. package/lib/math/utils/sequences/situations/seqArithmeticUtils.js +3 -1
  233. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts +5 -0
  234. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts.map +1 -1
  235. package/lib/math/utils/sequences/situations/seqGeometricSituations.js +58 -25
  236. package/lib/prototypesEnhancement.d.ts +1 -0
  237. package/lib/prototypesEnhancement.d.ts.map +1 -1
  238. package/lib/prototypesEnhancement.js +3 -0
  239. package/lib/tests/pdfs/mdCodeToLatex.d.ts.map +1 -1
  240. package/lib/tests/pdfs/mdCodeToLatex.js +8 -15
  241. package/lib/tests/questionTest.d.ts.map +1 -1
  242. package/lib/tests/questionTest.js +6 -3
  243. package/lib/tree/nodes/geometry/degree.js +1 -1
  244. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  245. package/lib/tree/nodes/operators/multiplyNode.js +1 -1
  246. package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
  247. package/lib/tree/nodes/operators/substractNode.js +2 -1
  248. package/lib/tree/parsers/degreeParser.js +2 -2
  249. package/lib/tree/utilities/nodeUtils.d.ts +6 -0
  250. package/lib/tree/utilities/nodeUtils.d.ts.map +1 -0
  251. package/lib/tree/utilities/nodeUtils.js +24 -0
  252. package/lib/utils/strings/prependArticle.d.ts +2 -0
  253. package/lib/utils/strings/prependArticle.d.ts.map +1 -0
  254. package/lib/utils/strings/prependArticle.js +1 -0
  255. package/package.json +1 -1
@@ -9,6 +9,7 @@ import { random } from "../../../utils/alea/random.js";
9
9
  import { handleVEAError } from "../../../utils/errors/handleVEAError.js";
10
10
  import { dollarize } from "../../../utils/latex/dollarize.js";
11
11
  import { mdTable } from "../../../utils/markdown/mdTable.js";
12
+ import { twoEventsSituations } from "./twoEventsSituations.js";
12
13
  const rebuildIdentifiers = (oldIds) => {
13
14
  const newIds = {
14
15
  indexSituation: 0,
@@ -25,192 +26,8 @@ const rebuildIdentifiers = (oldIds) => {
25
26
  };
26
27
  return newIds;
27
28
  };
28
- const situations = [
29
- //genre et lunettes
30
- {
31
- events: {
32
- //single
33
- A: "une fille",
34
- "\\overline{A}": "un garçon",
35
- B: "un élève qui porte des lunettes",
36
- "\\overline{B}": "un élève qui ne porte pas de lunettes",
37
- //intersection
38
- "A \\cap B": "une fille qui porte des lunettes",
39
- "A \\cap \\overline{B}": "une fille qui ne porte pas de lunettes",
40
- "\\overline{A} \\cap B": "un garçon qui porte des lunettes",
41
- "\\overline{A} \\cap \\overline{B}": "un garçon qui ne porte pas de lunettes",
42
- //union
43
- "A \\cup B": "une fille ou un élève qui porte des lunettes",
44
- "A \\cup \\overline{B}": "une fille ou un élève qui ne porte pas de lunettes",
45
- "\\overline{A} \\cup B": "un garçon ou un élève qui porte des lunettes",
46
- "\\overline{A} \\cup \\overline{B}": "un garçon ou un élève qui ne porte pas de lunettes",
47
- },
48
- instruction: {
49
- context: `Le tableau suivant donne le nombre de filles et de garçons portant des lunettes dans un lycée`,
50
- table: {
51
- A: `Une fille`,
52
- "\\overline{A}": `Un garçon`,
53
- B: `Porte des lunettes`,
54
- "\\overline{B}": `Ne porte pas de lunettes`,
55
- },
56
- beforeQuestion: `On choisit un élève au hasard.`,
57
- },
58
- hint: {
59
- single: `On lit le total d'élèves correspondant au cas demandé, puis on divise par le total des élèves.`,
60
- intersection: `On lit la case des élèves correspondant à la fois aux deux cas demandés.`,
61
- union: `On compte tous les élèves qui sont soit dans le premier cas,
62
- soit dans le second (ou à la fois dans les deux). Attention à ne pas compter certains élèves en double.`,
63
- },
64
- correction: {
65
- total: `Le total des élèves se lit à l'intersection de la ligne "Total" et de la colonne "Total"`,
66
- },
67
- },
68
- //chien et sport
69
- {
70
- events: {
71
- A: "une personne qui possède un chien",
72
- "\\overline{A}": "une personne qui ne possède pas de chien",
73
- B: "une personne qui fait du sport",
74
- "\\overline{B}": "une personne qui ne fait pas de sport",
75
- "A \\cap B": "une personne qui possède un chien et fait du sport",
76
- "A \\cap \\overline{B}": "une personne qui possède un chien mais ne fait pas de sport",
77
- "\\overline{A} \\cap B": "une personne qui n’a pas de chien mais fait du sport",
78
- "\\overline{A} \\cap \\overline{B}": "une personne qui n’a pas de chien et ne fait pas de sport",
79
- "A \\cup B": "une personne qui possède un chien ou qui fait du sport",
80
- "A \\cup \\overline{B}": "une personne qui possède un chien ou ne fait pas de sport",
81
- "\\overline{A} \\cup B": "une personne qui n’a pas de chien ou qui fait du sport",
82
- "\\overline{A} \\cup \\overline{B}": "une personne qui n’a pas de chien ou ne fait pas de sport",
83
- },
84
- instruction: {
85
- context: "Le tableau suivant donne les résultats d’une enquête sur la possession d’un chien et la pratique du sport",
86
- table: {
87
- A: "Possède un chien",
88
- "\\overline{A}": "Ne possède pas de chien",
89
- B: "Fait du sport",
90
- "\\overline{B}": "Ne fait pas de sport",
91
- },
92
- beforeQuestion: "On choisit une personne au hasard parmi les sondés.",
93
- },
94
- hint: {
95
- single: "On lit le total des personnes correspondant au cas demandé, puis on divise par le total des sondés.",
96
- intersection: "On repère la case correspondant aux deux caractéristiques simultanées.",
97
- union: "On additionne les individus appartenant à l’un ou l’autre des groupes, sans double comptage.",
98
- },
99
- correction: {
100
- total: `Le total des élèves se lit à l'intersection de la ligne "Total" et de la colonne "Total"`,
101
- },
102
- },
103
- //vélo et ponctualité
104
- {
105
- events: {
106
- A: "un élève qui vient au lycée à vélo",
107
- "\\overline{A}": "un élève qui ne vient pas au lycée à vélo",
108
- B: "un élève qui arrive à l'heure",
109
- "\\overline{B}": "un élève qui arrive en retard",
110
- "A \\cap B": "un élève qui vient à vélo et arrive à l'heure",
111
- "A \\cap \\overline{B}": "un élève qui vient à vélo et arrive en retard",
112
- "\\overline{A} \\cap B": "un élève qui ne vient pas à vélo et arrive à l'heure",
113
- "\\overline{A} \\cap \\overline{B}": "un élève qui ne vient pas à vélo et arrive en retard",
114
- "A \\cup B": "un élève qui vient à vélo ou qui arrive à l'heure",
115
- "A \\cup \\overline{B}": "un élève qui vient à vélo ou arrive en retard",
116
- "\\overline{A} \\cup B": "un élève qui ne vient pas à vélo ou arrive à l'heure",
117
- "\\overline{A} \\cup \\overline{B}": "un élève qui ne vient pas à vélo ou arrive en retard",
118
- },
119
- instruction: {
120
- context: "Le tableau suivant indique le mode de transport et la ponctualité des élèves d'un lycée",
121
- table: {
122
- A: "Vient à vélo",
123
- "\\overline{A}": "Ne vient pas à vélo",
124
- B: "Arrive à l'heure",
125
- "\\overline{B}": "Arrive en retard",
126
- },
127
- beforeQuestion: "On choisit un élève au hasard.",
128
- },
129
- hint: {
130
- single: `On lit le total d'élèves correspondant au cas demandé, puis on divise par le total des élèves.`,
131
- intersection: `On lit la case des élèves correspondant à la fois aux deux cas demandés.`,
132
- union: `On compte tous les élèves qui sont soit dans le premier cas,
133
- soit dans le second (ou à la fois dans les deux). Attention à ne pas compter certains élèves en double.`,
134
- },
135
- correction: {
136
- total: `Le total des élèves se lit à l'intersection de la ligne "Total" et de la colonne "Total"`,
137
- },
138
- },
139
- //révision et réussite
140
- {
141
- events: {
142
- A: "un élève qui a révisé pour le contrôle",
143
- "\\overline{A}": "un élève qui n’a pas révisé pour le contrôle",
144
- B: "un élève qui a réussi le contrôle",
145
- "\\overline{B}": "un élève qui a échoué au contrôle",
146
- "A \\cap B": "un élève qui a révisé et a réussi",
147
- "A \\cap \\overline{B}": "un élève qui a révisé mais a échoué",
148
- "\\overline{A} \\cap B": "un élève qui n’a pas révisé mais a réussi",
149
- "\\overline{A} \\cap \\overline{B}": "un élève qui n’a pas révisé et a échoué",
150
- "A \\cup B": "un élève qui a révisé ou qui a réussi le contrôle",
151
- "A \\cup \\overline{B}": "un élève qui a révisé ou a échoué",
152
- "\\overline{A} \\cup B": "un élève qui n’a pas révisé ou a réussi",
153
- "\\overline{A} \\cup \\overline{B}": "un élève qui n’a pas révisé ou a échoué",
154
- },
155
- instruction: {
156
- context: "Le tableau suivant présente les résultats d’un contrôle selon que les élèves ont révisé ou non",
157
- table: {
158
- A: "A révisé",
159
- "\\overline{A}": "N’a pas révisé",
160
- B: "A réussi",
161
- "\\overline{B}": "A échoué",
162
- },
163
- beforeQuestion: "On choisit un élève au hasard.",
164
- },
165
- hint: {
166
- single: `On lit le total d'élèves correspondant au cas demandé, puis on divise par le total des élèves.`,
167
- intersection: `On lit la case des élèves correspondant à la fois aux deux cas demandés.`,
168
- union: `On compte tous les élèves qui sont soit dans le premier cas,
169
- soit dans le second (ou à la fois dans les deux). Attention à ne pas compter certains élèves en double.`,
170
- },
171
- correction: {
172
- total: `Le total des élèves se lit à l'intersection de la ligne "Total" et de la colonne "Total"`,
173
- },
174
- },
175
- //cinéma et lecture
176
- {
177
- events: {
178
- A: "un élève qui va souvent au cinéma",
179
- "\\overline{A}": "un élève qui ne va pas souvent au cinéma",
180
- B: "un élève qui lit régulièrement des livres",
181
- "\\overline{B}": "un élève qui ne lit pas régulièrement de livres",
182
- "A \\cap B": "un élève qui va souvent au cinéma et lit régulièrement",
183
- "A \\cap \\overline{B}": "un élève qui va souvent au cinéma mais ne lit pas régulièrement",
184
- "\\overline{A} \\cap B": "un élève qui ne va pas au cinéma mais lit régulièrement",
185
- "\\overline{A} \\cap \\overline{B}": "un élève qui ne va pas au cinéma et ne lit pas régulièrement",
186
- "A \\cup B": "un élève qui va souvent au cinéma ou lit régulièrement",
187
- "A \\cup \\overline{B}": "un élève qui va au cinéma ou ne lit pas régulièrement",
188
- "\\overline{A} \\cup B": "un élève qui ne va pas au cinéma ou lit régulièrement",
189
- "\\overline{A} \\cup \\overline{B}": "un élève qui ne va pas au cinéma ou ne lit pas régulièrement",
190
- },
191
- instruction: {
192
- context: "Le tableau suivant décrit les habitudes culturelles des élèves d’un lycée",
193
- table: {
194
- A: "Va au cinéma",
195
- "\\overline{A}": "Ne va pas au cinéma",
196
- B: "Lit",
197
- "\\overline{B}": "Ne lit pas",
198
- },
199
- beforeQuestion: "On choisit un élève au hasard parmi ceux du lycée.",
200
- },
201
- hint: {
202
- single: `On lit le total d'élèves correspondant au cas demandé, puis on divise par le total des élèves.`,
203
- intersection: `On lit la case des élèves correspondant à la fois aux deux cas demandés.`,
204
- union: `On compte tous les élèves qui sont soit dans le premier cas,
205
- soit dans le second (ou à la fois dans les deux). Attention à ne pas compter certains élèves en double.`,
206
- },
207
- correction: {
208
- total: `Le total des élèves se lit à l'intersection de la ligne "Total" et de la colonne "Total"`,
209
- },
210
- },
211
- ];
212
29
  const getInstruction = ({ indexSituation, values, event, allowedAnsType, }) => {
213
- const situation = situations[indexSituation];
30
+ const situation = twoEventsSituations[indexSituation];
214
31
  const { "A \\cap B": aCapB, "A \\cap \\overline{B}": aCapBBarre, "\\overline{A} \\cap B": aBarreCapB, "\\overline{A} \\cap \\overline{B}": aBarreCapBBarre, } = values;
215
32
  return `${situation.instruction.context} :
216
33
 
@@ -276,11 +93,12 @@ const getProbaFromTableWithContextQuestion = (optsIn) => {
276
93
  const bBarreTotal = aBarreCapBBarre + aCapBBarre;
277
94
  let event = "";
278
95
  let proba = [];
279
- const type = random([
280
- "singleEvent",
281
- "intersection",
282
- "union",
283
- ]);
96
+ const frenchType = opts?.probaTypes?.length
97
+ ? random(opts.probaTypes)
98
+ : random(["Événement simple", "Intersection", "Union"]);
99
+ const type = frenchType === "Événement simple"
100
+ ? "singleEvent"
101
+ : frenchType.toLocaleLowerCase();
284
102
  switch (type) {
285
103
  case "singleEvent":
286
104
  [event, proba] = random([
@@ -307,7 +125,7 @@ const getProbaFromTableWithContextQuestion = (optsIn) => {
307
125
  ]);
308
126
  break;
309
127
  }
310
- const indexSituation = randint(0, situations.length);
128
+ const indexSituation = randint(0, twoEventsSituations.length);
311
129
  const identifiers = {
312
130
  values,
313
131
  indexSituation,
@@ -365,20 +183,20 @@ const isAnswerValid = (ans, { answer }) => {
365
183
  };
366
184
  const getHint = (identifiers) => {
367
185
  const { indexSituation, type } = identifiers;
368
- const situation = situations[indexSituation];
186
+ const situation = twoEventsSituations[indexSituation];
369
187
  switch (type) {
370
188
  case "singleEvent":
371
- return situation.hint.single;
189
+ return `On lit le nombre des ${situation.population}s correspondant au cas demandé, puis on divise par le total des ${situation.population}s.`;
372
190
  case "union":
373
- return situation.hint.union;
191
+ return `Compte tous les ${situation.population}s qui sont soit dans le premier cas, soit dans le second (ou à la fois dans les deux). Attention à ne pas compter certains ${situation.population}s en double. Puis divise par le total des ${situation.population}s.`;
374
192
  case "intersection":
375
193
  default:
376
- return situation.hint.intersection;
194
+ return `Lis la case des ${situation.population}s correspondant à la fois aux deux cas demandés. Puis divise par le total des ${situation.population}s.`;
377
195
  }
378
196
  };
379
197
  const getCorrection = (identifiers) => {
380
198
  const { values, probaFrac, type, event, indexSituation, allowedAnsType } = identifiers;
381
- const situation = situations[indexSituation];
199
+ const situation = twoEventsSituations[indexSituation];
382
200
  const { "A \\cap B": aCapB, "A \\cap \\overline{B}": aCapBBarre, "\\overline{A} \\cap B": aBarreCapB, "\\overline{A} \\cap \\overline{B}": aBarreCapBBarre, } = values;
383
201
  const aTotal = aCapB + aCapBBarre;
384
202
  const bTotal = aCapB + aBarreCapB;
@@ -394,7 +212,7 @@ const getCorrection = (identifiers) => {
394
212
  const isLine = event === "A" || event === "\\overline{A}";
395
213
  return `On lit le total de la ${isLine ? "ligne" : "colonne"} "${tableLabel}" : c'est $${probaFrac[0]}$.
396
214
 
397
- ${situation.correction.total} : c'est $${probaFrac[1]}$.
215
+ Le total des ${situation.population}s se lit à l'intersection de la ligne "Total" et de la colonne "Total" : c'est $${probaFrac[1]}$.
398
216
 
399
217
  La probabilité recherchée vaut donc :
400
218
 
@@ -415,7 +233,7 @@ ${strRoundTo}
415
233
  On doit ensuite soustraire la case à l'intersection de la ligne "${tableLabels[0]}" et de la colonne "${tableLabels[1]}", car on l'a compté deux fois dans les totaux. Cela donne $${rowTotal + columnTotal} - ${rowTotal + columnTotal - probaFrac[0]} = ${probaFrac[0]}
416
234
  $.
417
235
 
418
- ${situation.correction.total} : c'est $${probaFrac[1]}$.
236
+ Le total des ${situation.population}s se lit à l'intersection de la ligne "Total" et de la colonne "Total" : c'est $${probaFrac[1]}$.
419
237
 
420
238
  La probabilité de tomber sur ${situation.events[event]} vaut donc :
421
239
 
@@ -432,7 +250,7 @@ ${strRoundTo}
432
250
  const tableLabels = interEvemnts.map((event) => situation.instruction.table[event]);
433
251
  return `On lit la case à l'intersection de la colonne "${tableLabels[1]}" et de la ligne "${tableLabels[0]}" : c'est $${probaFrac[0]}$.
434
252
 
435
- ${situation.correction.total} : c'est $${probaFrac[1]}$.
253
+ Le total des ${situation.population}s se lit à l'intersection de la ligne "Total" et de la colonne "Total" : c'est $${probaFrac[1]}$.
436
254
 
437
255
  La probabilité de tomber sur ${situation.events[event]} vaut donc :
438
256
 
@@ -468,6 +286,7 @@ const createFormattedNode = (exactNode, strInternalAllowedAnswerTypes) => {
468
286
  };
469
287
  const optsDefault = {
470
288
  allowedAnsType: ["exacte", "arrondie à 2 décimales"],
289
+ probaTypes: ["Événement simple", "Intersection", "Union"],
471
290
  };
472
291
  const options = [
473
292
  {
@@ -478,6 +297,14 @@ const options = [
478
297
  values: ["exacte", "arrondie à 2 décimales"],
479
298
  defaultValue: optsDefault.allowedAnsType,
480
299
  },
300
+ {
301
+ id: "probaTypes",
302
+ label: "Type de probabilité demandée",
303
+ target: GeneratorOptionTarget.generation,
304
+ type: GeneratorOptionType.multiselect,
305
+ values: ["Événement simple", "Intersection", "Union"],
306
+ defaultValue: optsDefault.probaTypes,
307
+ },
481
308
  ];
482
309
  export const probaFromTableWithContext = {
483
310
  id: "probaFromTableWithContext",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/randomVariable/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AAErD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,iDAAiD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/randomVariable/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AAGrD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,iDAAiD,CAAC"}
@@ -3,6 +3,7 @@ export * from "./randomVariableVariance.js";
3
3
  export * from "./isTableProbabilityLaw.js";
4
4
  export * from "./randomVariableStandardDeviation.js";
5
5
  // export * from "./findValueForFairRandomVariable.js";
6
+ // export * from "./findValueToMatchRandomVariableAverage.js";
6
7
  export * from "./findValueToMatchRandomVariableAverage.js";
7
8
  export * from "./calculateProbaFromVATableLaw.js";
8
9
  export * from "./randomVariableSituationValues.js";
@@ -1 +1 @@
1
- {"version":3,"file":"randomVariableSituationProbabilityLaw.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/randomVariable/randomVariableSituationProbabilityLaw.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAQrC,OAAO,EAGL,6BAA6B,EAC9B,MAAM,qCAAqC,CAAC;AAE7C,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,6BAA6B,CAAC;IACtC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AAyMF,eAAO,MAAM,qCAAqC,EAAE,QAAQ,CAAC,WAAW,CAiBvE,CAAC"}
1
+ {"version":3,"file":"randomVariableSituationProbabilityLaw.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/randomVariable/randomVariableSituationProbabilityLaw.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAQrC,OAAO,EAGL,6BAA6B,EAC9B,MAAM,qCAAqC,CAAC;AAE7C,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,6BAA6B,CAAC;IACtC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AA+MF,eAAO,MAAM,qCAAqC,EAAE,QAAQ,CAAC,WAAW,CAiBvE,CAAC"}
@@ -115,8 +115,12 @@ const getKeys = () => {
115
115
  };
116
116
  const isAnswerTableValid = (ans, { answerTable }) => {
117
117
  try {
118
- return (xTableLineVEA(ans[0], answerTable[0]) &&
119
- xTableLineVEA(ans[1], answerTable[1]));
118
+ const sorted = ans[0]
119
+ .map((v, i) => [v, ans[1][i]])
120
+ .sort((a, b) => a[0].unfrenchify() - b[0].unfrenchify());
121
+ const sortedStudentAns = [sorted.map((x) => x[0]), sorted.map((x) => x[1])];
122
+ return (xTableLineVEA(sortedStudentAns[0], answerTable[0]) &&
123
+ xTableLineVEA(sortedStudentAns[1], answerTable[1]));
120
124
  }
121
125
  catch (err) {
122
126
  return handleVEAError(err);
@@ -1 +1 @@
1
- {"version":3,"file":"randomVariableSituations.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/probaStat/randomVariable/utils/randomVariableSituations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAU1E,KAAK,UAAU,GAAG;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAqDF,KAAK,UAAU,GAAG;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAmEF,KAAK,kBAAkB,GAAG;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAkCF,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA4BF,MAAM,MAAM,6BAA6B,GACrC,CAAC,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7B,CAAC,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7B,CAAC,kBAAkB,GAAG;IAAE,EAAE,EAAE,cAAc,CAAA;CAAE,CAAC,GAC7C,CAAC,WAAW,GAAG;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAIpC,eAAO,MAAM,0BAA0B,GACrC,QAAQ,6BAA6B;;;CActC,CAAC;AAEF,eAAO,MAAM,4BAA4B,QACnC,6BAkBH,CAAC"}
1
+ {"version":3,"file":"randomVariableSituations.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/probaStat/randomVariable/utils/randomVariableSituations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAU1E,KAAK,UAAU,GAAG;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAsDF,KAAK,UAAU,GAAG;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAmEF,KAAK,kBAAkB,GAAG;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAkCF,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA4BF,MAAM,MAAM,6BAA6B,GACrC,CAAC,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7B,CAAC,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7B,CAAC,kBAAkB,GAAG;IAAE,EAAE,EAAE,cAAc,CAAA;CAAE,CAAC,GAC7C,CAAC,WAAW,GAAG;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAIpC,eAAO,MAAM,0BAA0B,GACrC,QAAQ,6BAA6B;;;CActC,CAAC;AAEF,eAAO,MAAM,4BAA4B,QACnC,6BAkBH,CAAC"}
@@ -30,11 +30,12 @@ const getUrneSituation = (params) => {
30
30
  },
31
31
  getVA: () => {
32
32
  const total = b + r + n;
33
- return new RandomVariable([gb, gr, gn], [
34
- frac(b, total).simplify(),
35
- frac(r, total).simplify(),
36
- frac(n, total).simplify(),
37
- ]);
33
+ const sorted = [
34
+ { gain: gb, eff: b },
35
+ { gain: gr, eff: r },
36
+ { gain: gn, eff: r },
37
+ ].sort((a, b) => a.gain - b.gain);
38
+ return new RandomVariable(sorted.map((s) => s.gain), sorted.map((s) => frac(s.eff, total).simplify()));
38
39
  },
39
40
  };
40
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"buildTreeFromSituation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/trees/buildTreeFromSituation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAGL,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,wBAAwB,CAAC;CAClC,CAAC;AAoMF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAiBxD,CAAC"}
1
+ {"version":3,"file":"buildTreeFromSituation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/trees/buildTreeFromSituation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAGL,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,wBAAwB,CAAC;CAClC,CAAC;AA6KF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAiBxD,CAAC"}
@@ -67,33 +67,10 @@ $$
67
67
  `;
68
68
  }
69
69
  break;
70
- case "car":
71
- {
72
- const { pAutreSinistreIds, pJeuneIds, pJeuneSinistreIds } = params;
73
- secondCondProba = reifyAlgebraic(pAutreSinistreIds);
74
- mainEventProba = reifyAlgebraic(pJeuneIds);
75
- firstCondProba = reifyAlgebraic(pJeuneSinistreIds);
76
- }
77
- break;
78
- case "dragee":
79
- mainEventProba = reifyAlgebraic(params.pAmandeIds);
80
- firstCondProba = reifyAlgebraic(params.pBlancheAmandeIds);
81
- secondCondProba = reifyAlgebraic(params.pBlancheChocolatIds);
82
- break;
83
- case "lycee":
84
- mainEventProba = reifyAlgebraic(params.pFIds);
85
- firstCondProba = reifyAlgebraic(params.pFMathsIds);
86
- secondCondProba = reifyAlgebraic(params.pGMathsIds);
87
- break;
88
- case "match":
89
- mainEventProba = reifyAlgebraic(params.pDomicileIds);
90
- firstCondProba = reifyAlgebraic(params.pVDomicileIds);
91
- secondCondProba = reifyAlgebraic(params.pVExterieurIds);
92
- break;
93
- case "usine":
94
- mainEventProba = reifyAlgebraic(params.pAIds);
95
- firstCondProba = reifyAlgebraic(params.pDefAIds);
96
- secondCondProba = reifyAlgebraic(params.pDefBIds);
70
+ default:
71
+ mainEventProba = situation.mainEventProba;
72
+ secondCondProba = situation.secondCondProba;
73
+ firstCondProba = situation.firstCondProba;
97
74
  break;
98
75
  }
99
76
  return `D'après l'énoncé, on a :
@@ -0,0 +1,29 @@
1
+ export type TwoEventsSituation = {
2
+ instruction: {
3
+ context: string;
4
+ table: {
5
+ A: string;
6
+ "\\overline{A}": string;
7
+ B: string;
8
+ "\\overline{B}": string;
9
+ };
10
+ beforeQuestion: string;
11
+ };
12
+ events: {
13
+ A: string;
14
+ "\\overline{A}": string;
15
+ B: string;
16
+ "\\overline{B}": string;
17
+ "A \\cap B": string;
18
+ "A \\cap \\overline{B}": string;
19
+ "\\overline{A} \\cap B": string;
20
+ "\\overline{A} \\cap \\overline{B}": string;
21
+ "A \\cup B": string;
22
+ "A \\cup \\overline{B}": string;
23
+ "\\overline{A} \\cup B": string;
24
+ "\\overline{A} \\cup \\overline{B}": string;
25
+ };
26
+ population: string;
27
+ };
28
+ export declare const twoEventsSituations: TwoEventsSituation[];
29
+ //# sourceMappingURL=twoEventsSituations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoEventsSituations.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/twoEventsSituations.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE;YACL,CAAC,EAAE,MAAM,CAAC;YACV,eAAe,EAAE,MAAM,CAAC;YACxB,CAAC,EAAE,MAAM,CAAC;YACV,eAAe,EAAE,MAAM,CAAC;SACzB,CAAC;QACF,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QAEN,CAAC,EAAE,MAAM,CAAC;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,CAAC,EAAE,MAAM,CAAC;QACV,eAAe,EAAE,MAAM,CAAC;QAExB,WAAW,EAAE,MAAM,CAAC;QACpB,uBAAuB,EAAE,MAAM,CAAC;QAChC,uBAAuB,EAAE,MAAM,CAAC;QAChC,mCAAmC,EAAE,MAAM,CAAC;QAE5C,WAAW,EAAE,MAAM,CAAC;QACpB,uBAAuB,EAAE,MAAM,CAAC;QAChC,uBAAuB,EAAE,MAAM,CAAC;QAChC,mCAAmC,EAAE,MAAM,CAAC;KAC7C,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EAyKnD,CAAC"}
@@ -0,0 +1,145 @@
1
+ export const twoEventsSituations = [
2
+ //genre et lunettes
3
+ {
4
+ events: {
5
+ //single
6
+ A: "une fille",
7
+ "\\overline{A}": "un garçon",
8
+ B: "un élève qui porte des lunettes",
9
+ "\\overline{B}": "un élève qui ne porte pas de lunettes",
10
+ //intersection
11
+ "A \\cap B": "une fille qui porte des lunettes",
12
+ "A \\cap \\overline{B}": "une fille qui ne porte pas de lunettes",
13
+ "\\overline{A} \\cap B": "un garçon qui porte des lunettes",
14
+ "\\overline{A} \\cap \\overline{B}": "un garçon qui ne porte pas de lunettes",
15
+ //union
16
+ "A \\cup B": "une fille ou un élève qui porte des lunettes",
17
+ "A \\cup \\overline{B}": "une fille ou un élève qui ne porte pas de lunettes",
18
+ "\\overline{A} \\cup B": "un garçon ou un élève qui porte des lunettes",
19
+ "\\overline{A} \\cup \\overline{B}": "un garçon ou un élève qui ne porte pas de lunettes",
20
+ },
21
+ instruction: {
22
+ context: `Le tableau suivant donne le nombre de filles et de garçons portant des lunettes dans un lycée`,
23
+ table: {
24
+ A: `Une fille`,
25
+ "\\overline{A}": `Un garçon`,
26
+ B: `Porte des lunettes`,
27
+ "\\overline{B}": `Ne porte pas de lunettes`,
28
+ },
29
+ beforeQuestion: `On choisit un élève au hasard.`,
30
+ },
31
+ population: "élève",
32
+ },
33
+ //chien et sport
34
+ {
35
+ events: {
36
+ A: "une personne qui possède un chien",
37
+ "\\overline{A}": "une personne qui ne possède pas de chien",
38
+ B: "une personne qui fait du sport",
39
+ "\\overline{B}": "une personne qui ne fait pas de sport",
40
+ "A \\cap B": "une personne qui possède un chien et fait du sport",
41
+ "A \\cap \\overline{B}": "une personne qui possède un chien mais ne fait pas de sport",
42
+ "\\overline{A} \\cap B": "une personne qui n’a pas de chien mais fait du sport",
43
+ "\\overline{A} \\cap \\overline{B}": "une personne qui n’a pas de chien et ne fait pas de sport",
44
+ "A \\cup B": "une personne qui possède un chien ou qui fait du sport",
45
+ "A \\cup \\overline{B}": "une personne qui possède un chien ou ne fait pas de sport",
46
+ "\\overline{A} \\cup B": "une personne qui n’a pas de chien ou qui fait du sport",
47
+ "\\overline{A} \\cup \\overline{B}": "une personne qui n’a pas de chien ou ne fait pas de sport",
48
+ },
49
+ instruction: {
50
+ context: "Le tableau suivant donne les résultats d’une enquête sur la possession d’un chien et la pratique du sport",
51
+ table: {
52
+ A: "Possède un chien",
53
+ "\\overline{A}": "Ne possède pas de chien",
54
+ B: "Fait du sport",
55
+ "\\overline{B}": "Ne fait pas de sport",
56
+ },
57
+ beforeQuestion: "On choisit une personne au hasard parmi les sondés.",
58
+ },
59
+ population: "sondé",
60
+ },
61
+ //vélo et ponctualité
62
+ {
63
+ events: {
64
+ A: "un élève qui vient au lycée à vélo",
65
+ "\\overline{A}": "un élève qui ne vient pas au lycée à vélo",
66
+ B: "un élève qui arrive à l'heure",
67
+ "\\overline{B}": "un élève qui arrive en retard",
68
+ "A \\cap B": "un élève qui vient à vélo et arrive à l'heure",
69
+ "A \\cap \\overline{B}": "un élève qui vient à vélo et arrive en retard",
70
+ "\\overline{A} \\cap B": "un élève qui ne vient pas à vélo et arrive à l'heure",
71
+ "\\overline{A} \\cap \\overline{B}": "un élève qui ne vient pas à vélo et arrive en retard",
72
+ "A \\cup B": "un élève qui vient à vélo ou qui arrive à l'heure",
73
+ "A \\cup \\overline{B}": "un élève qui vient à vélo ou arrive en retard",
74
+ "\\overline{A} \\cup B": "un élève qui ne vient pas à vélo ou arrive à l'heure",
75
+ "\\overline{A} \\cup \\overline{B}": "un élève qui ne vient pas à vélo ou arrive en retard",
76
+ },
77
+ instruction: {
78
+ context: "Le tableau suivant indique le mode de transport et la ponctualité des élèves d'un lycée",
79
+ table: {
80
+ A: "Vient à vélo",
81
+ "\\overline{A}": "Ne vient pas à vélo",
82
+ B: "Arrive à l'heure",
83
+ "\\overline{B}": "Arrive en retard",
84
+ },
85
+ beforeQuestion: "On choisit un élève au hasard.",
86
+ },
87
+ population: "élève",
88
+ },
89
+ //révision et réussite
90
+ {
91
+ events: {
92
+ A: "un élève qui a révisé pour le contrôle",
93
+ "\\overline{A}": "un élève qui n’a pas révisé pour le contrôle",
94
+ B: "un élève qui a réussi le contrôle",
95
+ "\\overline{B}": "un élève qui a échoué au contrôle",
96
+ "A \\cap B": "un élève qui a révisé et a réussi",
97
+ "A \\cap \\overline{B}": "un élève qui a révisé mais a échoué",
98
+ "\\overline{A} \\cap B": "un élève qui n’a pas révisé mais a réussi",
99
+ "\\overline{A} \\cap \\overline{B}": "un élève qui n’a pas révisé et a échoué",
100
+ "A \\cup B": "un élève qui a révisé ou qui a réussi le contrôle",
101
+ "A \\cup \\overline{B}": "un élève qui a révisé ou a échoué",
102
+ "\\overline{A} \\cup B": "un élève qui n’a pas révisé ou a réussi",
103
+ "\\overline{A} \\cup \\overline{B}": "un élève qui n’a pas révisé ou a échoué",
104
+ },
105
+ instruction: {
106
+ context: "Le tableau suivant présente les résultats d’un contrôle selon que les élèves ont révisé ou non",
107
+ table: {
108
+ A: "A révisé",
109
+ "\\overline{A}": "N’a pas révisé",
110
+ B: "A réussi",
111
+ "\\overline{B}": "A échoué",
112
+ },
113
+ beforeQuestion: "On choisit un élève au hasard.",
114
+ },
115
+ population: "élève",
116
+ },
117
+ //cinéma et lecture
118
+ {
119
+ events: {
120
+ A: "un élève qui va souvent au cinéma",
121
+ "\\overline{A}": "un élève qui ne va pas souvent au cinéma",
122
+ B: "un élève qui lit régulièrement des livres",
123
+ "\\overline{B}": "un élève qui ne lit pas régulièrement de livres",
124
+ "A \\cap B": "un élève qui va souvent au cinéma et lit régulièrement",
125
+ "A \\cap \\overline{B}": "un élève qui va souvent au cinéma mais ne lit pas régulièrement",
126
+ "\\overline{A} \\cap B": "un élève qui ne va pas au cinéma mais lit régulièrement",
127
+ "\\overline{A} \\cap \\overline{B}": "un élève qui ne va pas au cinéma et ne lit pas régulièrement",
128
+ "A \\cup B": "un élève qui va souvent au cinéma ou lit régulièrement",
129
+ "A \\cup \\overline{B}": "un élève qui va au cinéma ou ne lit pas régulièrement",
130
+ "\\overline{A} \\cup B": "un élève qui ne va pas au cinéma ou lit régulièrement",
131
+ "\\overline{A} \\cup \\overline{B}": "un élève qui ne va pas au cinéma ou ne lit pas régulièrement",
132
+ },
133
+ instruction: {
134
+ context: "Le tableau suivant décrit les habitudes culturelles des élèves d’un lycée",
135
+ table: {
136
+ A: "Va au cinéma",
137
+ "\\overline{A}": "Ne va pas au cinéma",
138
+ B: "Lit",
139
+ "\\overline{B}": "Ne lit pas",
140
+ },
141
+ beforeQuestion: "On choisit un élève au hasard parmi ceux du lycée.",
142
+ },
143
+ population: "élève",
144
+ },
145
+ ];
@@ -18,4 +18,5 @@ export * from "./pythonWhileStatementCompletion.js";
18
18
  export * from "./pythonWhileStatementOperationCompletion.js";
19
19
  export * from "./pythonForLoopInstructionCompletion.js";
20
20
  export * from "./pythonSimpleFunctionInstructionCompletion.js";
21
+ export * from "./sequences/index.js";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/python/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sBAAsB,CAAC"}
@@ -18,3 +18,4 @@ export * from "./pythonWhileStatementCompletion.js";
18
18
  export * from "./pythonWhileStatementOperationCompletion.js";
19
19
  export * from "./pythonForLoopInstructionCompletion.js";
20
20
  export * from "./pythonSimpleFunctionInstructionCompletion.js";
21
+ export * from "./sequences/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"pySequenceThresholdInstructionCompletion.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/python/sequences/pySequenceThresholdInstructionCompletion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,sBAAsB,EACvB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAEL,oBAAoB,EACrB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAkB7C,KAAK,WAAW,GAAG;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,eAAe,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAykBF,KAAK,OAAO,GAAG,sBAAsB,GACnC,oBAAoB,GAAG;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAoCJ,eAAO,MAAM,wCAAwC,EAAE,QAAQ,CAC7D,WAAW,EACX,OAAO,CAkBR,CAAC"}
1
+ {"version":3,"file":"pySequenceThresholdInstructionCompletion.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/python/sequences/pySequenceThresholdInstructionCompletion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,sBAAsB,EACvB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAEL,oBAAoB,EACrB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAkB7C,KAAK,WAAW,GAAG;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,eAAe,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AA4kBF,KAAK,OAAO,GAAG,sBAAsB,GACnC,oBAAoB,GAAG;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAoCJ,eAAO,MAAM,wCAAwC,EAAE,QAAQ,CAC7D,WAAW,EACX,OAAO,CAkBR,CAAC"}