Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.21 KB | None | 0 0
  1. public void adicaoSubtracaoRadicais() {// RESOLVER: COEFICIENTE1 SÓ ESTÁ CALCULANDO POSITIVO, ARRUMAR NEGATIVO TAMBÉM
  2.  
  3.  
  4. if ((Objects.equals(indice1, indice2)) && (Objects.equals(radicando1, radicando2))) { // primeiro caso
  5. if (coeficiente2 > 0) {//if pra conferir se é soma
  6. answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1)+
  7. "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1)+ "} + "
  8. + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{"
  9. + NumberUtil.convertDoubleToString(radicando2)+ "}",
  10. "1º caso: Todos os radicais são semelhantes. Basta somar os coeficientes quando o índice e radicando forem iguais"));
  11.  
  12. double soma = coeficiente1 + coeficiente2;
  13. answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("(" + NumberUtil.convertDoubleToString(coeficiente1)+ "+"
  14. + NumberUtil.convertDoubleToString(coeficiente2)+ ")\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{"
  15. + NumberUtil.convertDoubleToString(radicando1)+ "}",
  16. "Basta somar os coeficientes quando o índice e radicando forem iguais"));
  17.  
  18. answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(soma)+ "\\sqrt["
  19. + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1)+ "}",
  20. "Resultado"));
  21. } else { //quando não for soma
  22. answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1)
  23. + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1)+ "} "
  24. + NumberUtil.convertDoubleToString(coeficiente2)+ "\\sqrt[" + NumberUtil.convertDoubleToString(indice2)
  25. + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  26. "Basta subtrair os coeficientes quando o índice e radicando forem iguais"));
  27.  
  28. answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("(" + NumberUtil.convertDoubleToString(coeficiente1)+ ""
  29. + NumberUtil.convertDoubleToString(coeficiente2) + ")\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{"
  30. + NumberUtil.convertDoubleToString(radicando1) + "}",
  31. "Basta subtrair os coeficientes quando o índice e radicando forem iguais"));
  32.  
  33. double subtracao = coeficiente1 + coeficiente2;
  34. answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(subtracao)+ "\\sqrt["
  35. + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "}",
  36. "Resultado"));
  37. }
  38. } else {
  39.  
  40. if (coeficiente2 > 0) {
  41. answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  42. "2º caso: Todos os radicais podem ser transformados em radicais semelhantes xuxu"));
  43. RootAlgorithm ra1 = new RootAlgorithm(indice1, radicando1, null);
  44. ArrayList<Integer> res1 = ra1.rootDecomposition();
  45. RootAlgorithm ra2 = new RootAlgorithm(indice2, radicando2, null);
  46. ArrayList<Integer> res2 = ra2.rootDecomposition();
  47.  
  48.  
  49. System.out.println("1: " + res1);//TIRAR
  50. System.out.println("2: " + res2);//TIRAR
  51. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + ra1 + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + sequence2 + "}",
  52. // "Decompor as duas raízes em números primos"));
  53.  
  54. //primeira raiz
  55. String sequence1 = "";
  56. for (Integer exatas : ra1.potenciasExatas) {
  57. if (sequence1.length() == 0) {
  58. sequence1 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
  59. } else {
  60. sequence1 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
  61. }
  62. }
  63.  
  64. for (Integer resto : ra1.restoRadicando) {
  65. if (sequence1.length() == 0) {
  66. sequence1 += "" + resto;
  67. } else {
  68. sequence1 += " \\times " + resto;
  69. }
  70. }
  71.  
  72. //segunda raiz
  73. String sequence2 = "";
  74. for (Integer exatas : ra2.potenciasExatas) {
  75. if (sequence2.length() == 0) {
  76. sequence2 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
  77. } else {
  78. sequence2 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
  79. }
  80. }
  81.  
  82. for (Integer resto : ra2.restoRadicando) {
  83. if (sequence2.length() == 0) {
  84. sequence2 += "" + resto;
  85. } else {
  86. sequence2 += " \\times " + resto;
  87. }
  88. }
  89.  
  90.  
  91. answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(ra1.rootDecomposition().get(0) + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "} + " + ra2.rootDecomposition().get(0) + " \\sqrt[" + ra2.rootDecomposition().get(1) + "]{" + ra2.rootDecomposition().get(2) + "}",
  92. "Tirar as potências exatas para fora da raiz e multiplicar elas. O resto continua dentro da raiz e também precisa ser multiplicado"));
  93.  
  94.  
  95. } else {
  96. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  97. // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
  98. }
  99.  
  100.  
  101.  
  102.  
  103. //
  104. // else if (coeficiente2 == null || coeficiente2 > 0) { //soma do segundo caso
  105. // if (coeficiente1 != null && (coeficiente1 > 1 || coeficiente1 < 1)) {
  106. // //coeficiente da primeira raiz existe
  107. //
  108. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  109. // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
  110. //
  111. // coeficiente1 = Math.pow(coeficiente1, indice1);
  112. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  113. // "Quando o coeficiente for maior que 1 elevar ele ao indíce"));
  114. //
  115. // radicando1 *= coeficiente1;
  116. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  117. // "Depois multiplicar ele com o radicando"));
  118. // }
  119. //
  120. // if (coeficiente2 != null && (coeficiente2 > 1 || coeficiente2 < 1)) {
  121. // //coeficiente da segunda raiz existe
  122. //
  123. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + " + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  124. // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
  125. //
  126. // coeficiente2 = Math.pow(coeficiente2, indice2);
  127. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + " + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  128. // "Quando o coeficiente for maior que 1 elevar ele ao indíce"));
  129. //
  130. // radicando2 *= coeficiente2;
  131. //
  132. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  133. // "Depois multiplicar ele com o radicando"));
  134. // }
  135.  
  136. // RootAlgorithm ra1 = new RootAlgorithm(indice1, radicando1, null);
  137. // ArrayList<Integer> res1 = ra1.rootDecomposition();
  138. // RootAlgorithm ra2 = new RootAlgorithm(indice2, radicando2, null);
  139. // ArrayList<Integer> res2 = ra2.rootDecomposition();
  140. //
  141. // if (res1.get(2).equals(res2.get(2))) { // if pra conferir se da pra transformar em semelhantes
  142. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  143. // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
  144. //
  145. // //primeira raiz
  146. // String sequence1 = "";
  147. // for (Integer exatas : ra1.potenciasExatas) {
  148. // if (sequence1.length() == 0) {
  149. // sequence1 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
  150. // } else {
  151. // sequence1 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
  152. // }
  153. // }
  154. //
  155. // for (Integer resto : ra1.restoRadicando) {
  156. // if (sequence1.length() == 0) {
  157. // sequence1 += "" + resto;
  158. // } else {
  159. // sequence1 += " \\times " + resto;
  160. // }
  161. // }
  162. //
  163. // System.out.println("Sequencia 1: " + sequence1); // TIRAR
  164. //
  165. // //segunda raiz
  166. // String sequence2 = "";
  167. // for (Integer exatas : ra2.potenciasExatas) {
  168. // if (sequence2.length() == 0) {
  169. // sequence2 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
  170. // } else {
  171. // sequence2 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
  172. // }
  173. // }
  174. //
  175. // for (Integer resto : ra2.restoRadicando) {
  176. // if (sequence2.length() == 0) {
  177. // sequence2 += "" + resto;
  178. // } else {
  179. // sequence2 += " \\times " + resto;
  180. // }
  181. // }
  182. //
  183. // System.out.println("Sequencia 2: " + sequence2);//TIRAR
  184. //
  185. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + sequence1 + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + sequence2 + "}",
  186. // "Decompor as duas raízes em números primos"));
  187. //
  188. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(ra1.rootDecomposition().get(0) + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "} + " + ra2.rootDecomposition().get(0) + " \\sqrt[" + ra2.rootDecomposition().get(1) + "]{" + ra2.rootDecomposition().get(2) + "}",
  189. // "Tirar as potências exatas para fora da raiz e multiplicar elas. O resto continua dentro da raiz e também precisa ser multiplicado"));
  190. //
  191. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("(" + ra1.rootDecomposition().get(0) + " + " + ra2.rootDecomposition().get(0) + ")\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "}",
  192. // "Somar os coeficientes"));
  193. //
  194. // System.out.println("(" + res1.get(0) + " + " + res2.get(0) + ")\\sqrt[" + res1.get(1) + "]{" + res1.get(2) + "}"); //TIRAR
  195. //
  196. // double somaCoeficientes = res1.get(0) + res2.get(0);
  197. //
  198. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(somaCoeficientes + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "}",
  199. // "Resultado"));
  200. //
  201. // System.out.println("Resultado: " + somaCoeficientes + "\\sqrt[" + res1.get(1) + "]{" + res1.get(2) + "}");
  202. // }
  203. // } else if (coeficiente2 != null && coeficiente2 < 0) { //subtração do segundo caso
  204. // if (coeficiente1 != null && coeficiente1 > 1) {
  205. // //coeficiente da primeira raiz existe
  206. //
  207. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(coeficiente1 + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  208. // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
  209. //
  210. // coeficiente1 = Math.pow(coeficiente1, indice1);
  211. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(coeficiente1 + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  212. // "Quando o coeficiente for maior que 1 elevar ele ao indíce"));
  213. //
  214. // radicando1 *= coeficiente1;
  215. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  216. // "Depois multiplicar ele com o radicando"));
  217. // }
  218. //
  219. // if (coeficiente2 != null && coeficiente2 > 1) {
  220. // //coeficiente da segunda raiz existe
  221. //
  222. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - " + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  223. // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
  224. //
  225. // coeficiente2 = Math.pow(coeficiente2, indice2);
  226. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - " + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  227. // "Quando o coeficiente for maior que 1 elevar ele ao indíce"));
  228. //
  229. // radicando2 *= coeficiente2;
  230. //
  231. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  232. // "Depois multiplicar ele com o radicando"));
  233. // }
  234. //
  235. // RootAlgorithm ra1 = new RootAlgorithm(indice1, radicando1, null);
  236. // ArrayList<Integer> res1 = ra1.rootDecomposition();
  237. // RootAlgorithm ra2 = new RootAlgorithm(indice2, radicando2, null);
  238. // ArrayList<Integer> res2 = ra2.rootDecomposition();
  239. //
  240. // if (res1.get(2).equals(res2.get(2))) { // if pra conferir se da pra transformar em semelhantes
  241. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  242. // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
  243. //
  244. // //primeira raiz
  245. // String sequence1 = "";
  246. // for (Integer exatas : ra1.potenciasExatas) {
  247. // if (sequence1.length() == 0) {
  248. // sequence1 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
  249. // } else {
  250. // sequence1 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
  251. // }
  252. // }
  253. //
  254. // for (Integer resto : ra1.restoRadicando) {
  255. // if (sequence1.length() == 0) {
  256. // sequence1 += "" + resto;
  257. // } else {
  258. // sequence1 += " \\times " + resto;
  259. // }
  260. // }
  261. //
  262. // System.out.println("Sequencia 1: " + sequence1); // TIRAR
  263. //
  264. // //segunda raiz
  265. // String sequence2 = "";
  266. // for (Integer exatas : ra2.potenciasExatas) {
  267. // if (sequence2.length() == 0) {
  268. // sequence2 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
  269. // } else {
  270. // sequence2 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
  271. // }
  272. // }
  273. //
  274. // for (Integer resto : ra2.restoRadicando) {
  275. // if (sequence2.length() == 0) {
  276. // sequence2 += "" + resto;
  277. // } else {
  278. // sequence2 += " \\times " + resto;
  279. // }
  280. // }
  281. //
  282. // System.out.println("Sequencia 2: " + sequence2);//TIRAR
  283. //
  284. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + sequence1 + "} - \\sqrt[" + indice2 + "]{" + sequence2 + "}",
  285. // "Decompor as duas raízes em números primos"));
  286. //
  287. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(ra1.rootDecomposition().get(0) + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "} - " + ra2.rootDecomposition().get(0) + " \\sqrt[" + ra2.rootDecomposition().get(1) + "]{" + ra2.rootDecomposition().get(2) + "}",
  288. // "Tirar as potências exatas para fora da raiz e multiplicar elas. O resto continua dentro da raiz e também precisa ser multiplicado"));
  289. //
  290. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("(" + ra1.rootDecomposition().get(0) + " - " + ra2.rootDecomposition().get(0) + ")\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "}",
  291. // "Somar os coeficientes"));
  292. //
  293. // System.out.println("(" + res1.get(0) + " - " + res2.get(0) + ")\\sqrt[" + res1.get(1) + "]{" + res1.get(2) + "}"); //TIRAR
  294. //
  295. // double somaCoeficientes = res1.get(0) + res2.get(0);
  296. //
  297. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(somaCoeficientes + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "}",
  298. // "Resultado"));
  299. //
  300. // System.out.println("Resultado: " + somaCoeficientes + "\\sqrt[" + res1.get(1) + "]{" + res1.get(2) + "}");
  301. // }
  302.  
  303. }
  304.  
  305. // } else { // quando nao der pra transformar em semelhantes
  306. // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
  307. // "3º caso: Os radicais são diferentes e não podem ser simplificados. Essa operação não entra no primeiro caso e nem no segundo caso."
  308. // + " Portanto, essa operação não é possível sem a extração das raízes"));
  309. // }
  310. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement