Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.67 KB | None | 0 0
  1. create table ghosts_mobile.versions_comparison as select
  2. a.id,
  3. a.socnet,
  4. coalesce(traffic_group,
  5. 'unknown') as traffic_group,
  6. coalesce(country_group,
  7. 'other') as country_group,
  8. coalesce(monetary_type,
  9. '(0) not payer') as monetary_type,
  10. a.version,
  11. days_since_move,
  12. a.is_new,
  13. a.comparison_type,
  14. timestamp 'epoch' + move_time * interval '1 second' as move_ts,
  15. a.move_date,
  16. ram,
  17. cpu,
  18. screen_resolution,
  19. payments,
  20. offer_bank_payments,
  21. offer_sale_payments,
  22. transactions,
  23. offer_bank_transactions,
  24. offer_sale_transactions,
  25. mquests_finish,
  26. complexity_covered,
  27. grzone_entries,
  28. sessions_num,
  29. sessions_time,
  30. session_1_length,
  31. session_2_flag,
  32. session_3_flag,
  33. ret_1d_flag,
  34. ret_2d_flag,
  35. ret_5d_flag,
  36. ret_7d_flag,
  37. rare_crafts,
  38. bank_open_flag,
  39. bank_accrual_flag,
  40. ad_views,
  41. click_on_fay_flag,
  42. fay_arrived_flag,
  43. ml_starts,
  44. sq_starts,
  45. tcsq_starts,
  46. sq_finishes,
  47. sq_prolongs,
  48. sq_forgets,
  49. sq_retries,
  50. sq_restarts,
  51. load_1_time,
  52. load_2_time,
  53. load_other_time,
  54. offer_bank_starts,
  55. offer_sale_starts,
  56. last_house_start,
  57. gfl_receive_flag,
  58. gfl_use_flag,
  59. first_map_load_time
  60. from
  61. ( select
  62. id,
  63. socnet,
  64. floor((utc_timestamp-move_time)*4.0/86400.0)/4 AS days_since_move,
  65. move_date,
  66. is_new,
  67. version,
  68. comparison_type,
  69. sum(real_value)/100.0 as payments,
  70. sum(case when payment_type='offer' and (offer_name like '%mult_%' or offer_name like '%nopayer%') then real_value else 0 end)/100.0 as offer_bank_payments,
  71. sum(case when payment_type='offer' and (offer_name like '%sale_%' or offer_name like '%event%') then real_value else 0 end)/100.0 as offer_sale_payments,
  72. count(id) as transactions,
  73. count(case when payment_type='offer' and (offer_name like '%mult_%' or offer_name like '%nopayer%') then id else null end) as offer_bank_transactions,
  74. count(case when payment_type='offer' and (offer_name like '%sale_%' or offer_name like '%event%') then id else null end) as offer_sale_transactions,
  75. 0 mquests_finish,
  76. 0 complexity_covered,
  77. 0 grzone_entries,
  78. 0 sessions_num,
  79. 0 sessions_time,
  80. 0 session_1_length,
  81. 0 session_2_flag,
  82. 0 session_3_flag,
  83. 0 ret_1d_flag,
  84. 0 ret_2d_flag,
  85. 0 ret_5d_flag,
  86. 0 ret_7d_flag,
  87. 0 rare_crafts,
  88. 0 bank_open_flag,
  89. 0 bank_accrual_flag,
  90. 0 ad_views,
  91. 0 click_on_fay_flag,
  92. 0 fay_arrived_flag,
  93. 0 ml_starts,
  94. 0 sq_starts,
  95. 0 tcsq_starts,
  96. 0 sq_finishes,
  97. 0 sq_prolongs,
  98. 0 sq_forgets,
  99. 0 sq_retries,
  100. 0 sq_restarts,
  101. 0 load_1_time,
  102. 0 load_2_time,
  103. 0 load_other_time,
  104. 0 offer_bank_starts,
  105. 0 offer_sale_starts,
  106. 0 last_house_start,
  107. 0 gfl_receive_flag,
  108. 0 gfl_use_flag,
  109. 0 first_map_load_time
  110. from master.mghost_payments natural join ghosts_mobile.versions_id
  111. where current_date-actdate<=40
  112.  
  113. group by
  114. 1,
  115. 2,
  116. 3,
  117. 4,
  118. 5,
  119. 6,
  120. 7
  121. union
  122. all select
  123. id,
  124. socnet,
  125. floor((utc_timestamp-move_time)*4.0/86400.0)/4 AS days_since_move,
  126. move_date,
  127. is_new,
  128. version,
  129. comparison_type,
  130. 0 payments,
  131. 0 offer_bank_payments,
  132. 0 offer_sale_payments,
  133. 0 transactions,
  134. 0 offer_bank_transactions,
  135. 0 offer_sale_transactions,
  136. count(case when event = 'finish' and mf = 1 then id else null end) mquests_finish,
  137. sum(case when event = 'finish' and mf = 1 then complexity else null end) complexity_covered,
  138. sum(case when event = 'enter' then 1 else 0 end) grzone_entries,
  139. 0 sessions_num,
  140. 0 sessions_time,
  141. 0 session_1_length,
  142. 0 session_2_flag,
  143. 0 session_3_flag,
  144. 0 ret_1d_flag,
  145. 0 ret_2d_flag,
  146. 0 ret_5d_flag,
  147. 0 ret_7d_flag,
  148. 0 rare_crafts,
  149. 0 bank_open_flag,
  150. 0 bank_accrual_flag,
  151. 0 ad_views,
  152. 0 click_on_fay_flag,
  153. 0 fay_arrived_flag,
  154. 0 ml_starts,
  155. 0 sq_starts,
  156. 0 tcsq_starts,
  157. 0 sq_finishes,
  158. 0 sq_prolongs,
  159. 0 sq_forgets,
  160. 0 sq_retries,
  161. 0 sq_restarts,
  162. 0 load_1_time,
  163. 0 load_2_time,
  164. 0 load_other_time,
  165. 0 offer_bank_starts,
  166. 0 offer_sale_starts,
  167. 0 last_house_start,
  168. 0 gfl_receive_flag,
  169. 0 gfl_use_flag,
  170. 0 first_map_load_time
  171. from (select * from ext_master.mghost_content_conversion where current_date-actdate<=40) a
  172. natural
  173. join
  174. ghosts_mobile.versions_id
  175. left outer join
  176. (select
  177. distinct source AS content_name,
  178. monetization_flag AS mf,
  179. complexity
  180. from
  181. ghosts_mobile.mghost_clusters) b
  182. on a.content_name = b.content_name
  183. where
  184. current_date-actdate<=40
  185. group by 1, 2, 3, 4, 5, 6, 7
  186. union all
  187. select id,
  188. socnet,
  189. floor((session_start_time-move_time+300)*4.0/86400.0)/4 AS days_since_move,
  190. move_date, is_new, version, comparison_type, 0 payments, 0 offer_bank_payments, 0 offer_sale_payments, 0 transactions, 0 offer_bank_transactions, 0 offer_sale_transactions, 0 mquests_finish, 0 complexity_covered, 0 grzone_entries, count(session_length) as sessions_num, sum(session_length) as sessions_time, max(case
  191. when session_number = 1 then session_length
  192. else null
  193. end) as session_1_length, max(case
  194. when session_number = 2 then 1
  195. else 0
  196. end) as session_2_flag, max(case
  197. when session_number = 3 then 1
  198. else 0
  199. end) as session_3_flag, max(case
  200. when floor((session_start_time-move_time+300)/86400.0) = 1 then 1 else 0 end) as ret_1d_flag,
  201. max(case when floor((session_start_time-move_time+300)/86400.0) = 2 then 1 else 0 end) as ret_2d_flag,
  202. max(case
  203. when floor((session_start_time-move_time+300)/86400.0) = 5 then 1 else 0 end) as ret_5d_flag,
  204. max(case when floor((session_start_time-move_time+300)/86400.0) = 7 then 1 else 0 end) as ret_7d_flag,
  205. 0 rare_crafts, 0 bank_open_flag, 0 bank_accrual_flag, 0 ad_views, 0 click_on_fay_flag, 0 fay_arrived_flag, 0 ml_starts, 0 sq_starts, 0 tcsq_starts, 0 sq_finishes, 0 sq_prolongs, 0 sq_forgets, 0 sq_retries, 0 sq_restarts, 0 load_1_time, 0 load_2_time, 0 load_other_time, 0 offer_bank_starts, 0 offer_sale_starts, 0 last_house_start, 0 gfl_receive_flag, 0 gfl_use_flag, 0 first_map_load_time
  206. from
  207. ( select
  208. id,
  209. socnet,
  210. session_start_time,
  211. session_length,
  212. move_time,
  213. move_date,
  214. is_new,
  215. version,
  216. comparison_type,
  217. ram,
  218. cpu,
  219. screen_resolution,
  220. row_number() over (partition
  221. by
  222. id,
  223. socnet,
  224. comparison_type,
  225. version
  226. order by
  227. (case
  228. when session_start_time-move_time+300<0 then null else session_start_time-move_time end)) as session_number
  229.  
  230. from
  231. master.mghost_sessions natural
  232. join
  233. ghosts_mobile.versions_id
  234. where
  235. current_date-actdate<=40
  236. )
  237. group by 1, 2, 3, 4, 5, 6, 7
  238. union all
  239. select id,
  240. socnet,
  241. floor((utc_timestamp-move_time)*4.0/86400.0)/4 AS days_since_move,
  242. move_date, is_new, version, comparison_type, 0 payments, 0 offer_bank_payments, 0 offer_sale_payments, 0 transactions, 0 offer_bank_transactions, 0 offer_sale_transactions, 0 mquests_finish, 0 complexity_covered, 0 grzone_entries, 0 sessions_num, 0 sessions_time, 0 session_1_length, 0 session_2_flag, 0 session_3_flag, 0 ret_1d_flag, 0 ret_2d_flag, 0 ret_5d_flag, 0 ret_7d_flag, count(id) as rare_crafts, 0 bank_open_flag, 0 bank_accrual_flag, 0 ad_views, 0 click_on_fay_flag, 0 fay_arrived_flag, 0 ml_starts, 0 sq_starts, 0 tcsq_starts, 0 sq_finishes, 0 sq_prolongs, 0 sq_forgets, 0 sq_retries, 0 sq_restarts, 0 load_1_time, 0 load_2_time, 0 load_other_time, 0 offer_bank_starts, 0 offer_sale_starts, 0 last_house_start, 0 gfl_receive_flag, 0 gfl_use_flag, 0 first_map_load_time
  243. from
  244. ext_master.mghost_item_account natural
  245. join
  246. ghosts_mobile.versions_id
  247. where
  248. current_date-actdate<=40 and event='receive' and origin='craft' and item_type='rare'
  249. group by 1, 2, 3, 4, 5, 6, 7
  250. union all
  251. select id,
  252. socnet,
  253. floor((utc_timestamp-move_time)*4.0/86400.0)/4 AS days_since_move,
  254. move_date, is_new, version, comparison_type, 0 payments, 0 offer_bank_payments, 0 offer_sale_payments, 0 transactions, 0 offer_bank_transactions, 0 offer_sale_transactions, 0 mquests_finish, 0 complexity_covered, 0 grzone_entries, 0 sessions_num, 0 sessions_time, 0 session_1_length, 0 session_2_flag, 0 session_3_flag, 0 ret_1d_flag, 0 ret_2d_flag, 0 ret_5d_flag, 0 ret_7d_flag, 0 rare_crafts, max(case
  255. when event='open' then 1
  256. else 0
  257. end) as bank_open_flag, max(case
  258. when event='accrual' then 1
  259. else 0
  260. end) as bank_accrual_flag, 0 ad_views, 0 click_on_fay_flag, 0 fay_arrived_flag, 0 ml_starts, 0 sq_starts, 0 tcsq_starts, 0 sq_finishes, 0 sq_prolongs, 0 sq_forgets, 0 sq_retries, 0 sq_restarts, 0 load_1_time, 0 load_2_time, 0 load_other_time, 0 offer_bank_starts, 0 offer_sale_starts, 0 last_house_start, 0 gfl_receive_flag, 0 gfl_use_flag, 0 first_map_load_time
  261. from
  262. ext_master.mghost_bank_conversion natural
  263. join
  264. ghosts_mobile.versions_id
  265. where
  266. current_date-actdate<=40 and event in ('open','accrual')
  267. group by 1, 2, 3, 4, 5, 6, 7
  268. union all
  269. select id,
  270. socnet,
  271. floor((utc_timestamp-move_time)*4.0/86400.0)/4 AS days_since_move,
  272. move_date, is_new, version, comparison_type, 0 payments, 0 offer_bank_payments, 0 offer_sale_payments, 0 transactions, 0 offer_bank_transactions, 0 offer_sale_transactions, 0 mquests_finish, 0 complexity_covered, 0 grzone_entries, 0 sessions_num, 0 sessions_time,\0 session_1_length, 0 session_2_flag, 0 session_3_flag, 0 ret_1d_flag, 0 ret_2d_flag, 0 ret_5d_flag, 0 ret_7d_flag, 0 rare_crafts, 0 bank_open_flag, 0 bank_accrual_flag, count(case
  273. when event in ('4_click_on_chest','ad_viewed') then id
  274. else null
  275. end) as ad_views, count(case
  276. when event in ('1_click_on_fay','click_on_icon') then id
  277. else null
  278. end) as click_on_fay_flag, count(case
  279. when event in ('0_advert_start','ad_loaded') then id
  280. else null
  281. end) as fay_arrived_flag, 0 ml_starts, 0 sq_starts, 0 tcsq_starts, 0 sq_finishes, 0 sq_prolongs, 0 sq_forgets, 0 sq_retries, 0 sq_restarts, 0 load_1_time, 0 load_2_time, 0 load_other_time, 0 offer_bank_starts, 0 offer_sale_starts, 0 last_house_start, 0 gfl_receive_flag, 0 gfl_use_flag, 0 first_map_load_time
  282. from
  283. ext_master.mghost_advert natural
  284. join
  285. ghosts_mobile.versions_id
  286. where
  287. current_date-actdate<=40 and event in ('ad_loaded','0_advert_start','4_click_on_chest','ad_viewed','1_click_on_fay','click_on_icon')
  288. group by 1, 2, 3, 4, 5, 6, 7
  289. union all
  290. select id,
  291. socnet,
  292. floor((utc_timestamp-move_time)*4.0/86400.0)/4 AS days_since_move,
  293. move_date, is_new, version, comparison_type, 0 payments, 0 offer_bank_payments, 0 offer_sale_payments, 0 transactions, 0 offer_bank_transactions, 0 offer_sale_transactions, 0 mquests_finish, 0 complexity_covered, 0 grzone_entries, 0 sessions_num, 0 sessions_time,\0 session_1_length, 0 session_2_flag, 0 session_3_flag, 0 ret_1d_flag, 0 ret_2d_flag, 0 ret_5d_flag, 0 ret_7d_flag, 0 rare_crafts, 0 bank_open_flag, 0 bank_accrual_flag, 0 ad_views, 0 click_on_fay_flag, 0 fay_arrived_flag, count(distinct(case
  294. when event='start'
  295. and map_name like '%ML%' then map_name
  296. else null
  297. end)) as ml_starts, count(distinct(case
  298. when event='start'
  299. and map_name like '%SQ%'
  300. and map_name not like '%TCSQ%' then map_name
  301. else null
  302. end)) as sq_starts, count(distinct(case
  303. when event='start'
  304. and map_name like '%TCSQ%' then map_name
  305. else null
  306. end)) as tcsq_starts, count(distinct(case
  307. when event='finish'
  308. and map_name like '%SQ%'
  309. and map_name not like '%TCSQ%' then map_name
  310. else null
  311. end)) as sq_finishes, count(distinct(case
  312. when event='prolong'
  313. and map_name like '%SQ%'
  314. and map_name not like '%TCSQ%' then map_name
  315. else null
  316. end)) as sq_prolongs, count(distinct(case
  317. when event='forget'
  318. and map_name like '%SQ%'
  319. and map_name not like '%TCSQ%' then map_name
  320. else null
  321. end)) as sq_forgets, count(distinct(case
  322. when event='retry'
  323. and map_name like '%SQ%'
  324. and map_name not like '%TCSQ%' then map_name
  325. else null
  326. end)) as sq_retries, count(distinct(case
  327. when event='restart'
  328. and map_name like '%SQ%'
  329. and map_name not like '%TCSQ%' then map_name
  330. else null
  331. end)) as sq_restarts, 0 load_1_time, 0 load_2_time, 0 load_other_time, 0 offer_bank_starts, 0 offer_sale_starts, max(case
  332. when cluster_name='quest_lines/grandfather'
  333. and event='start' then 1
  334. when cluster_name='quest_lines/mario'
  335. and event='start' then 2
  336. when cluster_name='quest_lines/gardener'
  337. and event='start' then 3
  338. when cluster_name='quest_lines/jane'
  339. and event='start' then 4
  340. when cluster_name='quest_lines/andrew'
  341. and event='start' then 5
  342. when cluster_name='quest_lines/alex'
  343. and event='start' then 6
  344. else null
  345. end) as last_house_start, 0 gfl_receive_flag, 0 gfl_use_flag, 0 first_map_load_time
  346. from
  347. ext_master.mghost_cluster_conversion natural
  348. join
  349. ghosts_mobile.versions_id natural
  350. join
  351. ghosts_mobile.cluster_names
  352. where
  353. current_date-actdate<=40
  354. group by 1, 2, 3, 4, 5, 6, 7
  355. union all
  356. select id,
  357. socnet,
  358. floor((utc_timestamp-move_time+300)*4.0/86400.0)/4 AS days_since_move,
  359. move_date, is_new, version, comparison_type, 0 payments, 0 offer_bank_payments, 0 offer_sale_payments, 0 transactions, 0 offer_bank_transactions, 0 offer_sale_transactions, 0 mquests_finish, 0 complexity_covered, 0 grzone_entries, 0 sessions_num, 0 sessions_time, 0 session_1_length, 0 session_2_flag, 0 session_3_flag, 0 ret_1d_flag, 0 ret_2d_flag, 0 ret_5d_flag, 0 ret_7d_flag, 0 rare_crafts, 0 bank_open_flag, 0 bank_accrual_flag, 0 ad_views, 0 click_on_fay_flag, 0 fay_arrived_flag, 0 ml_starts, 0 sq_starts, 0 tcsq_starts, 0 sq_finishes, 0 sq_prolongs, 0 sq_forgets, 0 sq_retries, 0 sq_restarts, max(case
  360. when load_number = 1
  361. and total_time>0 then total_time
  362. else null
  363. end) as load_1_time, max(case
  364. when load_number = 2
  365. and total_time>0 then total_time
  366. else null
  367. end) as load_2_time, avg(case
  368. when utc_timestamp-move_time+300>=0 and load_number>=3 and total_time>0 then total_time else null end) as load_other_time,
  369. 0 offer_bank_starts,
  370. 0 offer_sale_starts,
  371. 0 last_house_start,
  372. 0 gfl_receive_flag,
  373. 0 gfl_use_flag,
  374. 0 first_map_load_time
  375. from
  376. ( select id, socnet, utc_timestamp, move_time, move_date, total_time, is_new, version, comparison_type, ram, cpu, screen_resolution,
  377. row_number() over (partition by id, socnet, comparison_type, version order by (case when utc_timestamp-move_time+300<0 then null else utc_timestamp-move_time end)) as load_number
  378.  
  379. from
  380. ext_master.mghost_load_stat natural
  381. join
  382. ghosts_mobile.versions_id
  383. where
  384. current_date-actdate<=40 and event = 'game_start'
  385. )
  386. group by 1, 2, 3, 4, 5, 6, 7
  387. union all
  388. select id,
  389. socnet,
  390. floor((utc_timestamp-move_time)*4.0/86400.0)/4 AS days_since_move,
  391. move_date, is_new, version, comparison_type, 0 payments, 0 offer_bank_payments, 0 offer_sale_payments, 0 transactions, 0 offer_bank_transactions, 0 offer_sale_transactions, 0 mquests_finish, 0 complexity_covered, 0 grzone_entries, 0 sessions_num, 0 sessions_time, 0 session_1_length, 0 session_2_flag, 0 session_3_flag, 0 ret_1d_flag, 0 ret_2d_flag, 0 ret_5d_flag, 0 ret_7d_flag, 0 rare_crafts, 0 bank_open_flag, 0 bank_accrual_flag, 0 ad_views, 0 click_on_fay_flag, 0 fay_arrived_flag, 0 ml_starts, 0 sq_starts, 0 tcsq_starts, 0 sq_finishes, 0 sq_prolongs, 0 sq_forgets, 0 sq_retries, 0 sq_restarts, 0 load_1_time, 0 load_2_time, 0 load_other_time, sum(case
  392. when event='receive'
  393. and (offer_name like '%nopayer%'
  394. or offer_name like '%mult_%') then 1
  395. else 0
  396. end) as offer_bank_starts, sum(case
  397. when event='receive'
  398. and offer_name like '%sale_%' then 1
  399. else 0
  400. end) as offer_sale_starts, 0 last_house_start, max(case
  401. when offer_name like '%gift%'
  402. and event='receive' then 1
  403. else 0
  404. end) as gfl_receive_flag, max(case
  405. when offer_name like '%gift%'
  406. and event='spend' then 1
  407. else 0
  408. end) as gfl_use_flag, 0 first_map_load_time
  409. from
  410. ext_master.mghost_offer natural
  411. join
  412. ghosts_mobile.versions_id
  413. where
  414. current_date-actdate<=40 and offer_type<>'craft_offer' and offer_type<>'user_data'
  415. group by 1, 2, 3, 4, 5, 6, 7
  416. union all
  417. select a.id,
  418. socnet,
  419. floor((finish_time-move_time)*4.0/86400.0)/4 AS days_since_move,
  420. move_date, is_new, version, comparison_type, 0 payments, 0 offer_bank_payments, 0 offer_sale_payments, 0 transactions, 0 offer_bank_transactions, 0 offer_sale_transactions, 0 mquests_finish, 0 complexity_covered, 0 grzone_entries, 0 sessions_num, 0 sessions_time, 0 session_1_length, 0 session_2_flag, 0 session_3_flag, 0 ret_1d_flag, 0 ret_2d_flag, 0 ret_5d_flag, 0 ret_7d_flag, 0 rare_crafts, 0 bank_open_flag, 0 bank_accrual_flag, 0 ad_views, 0 click_on_fay_flag, 0 fay_arrived_flag, 0 ml_starts, 0 sq_starts, 0 tcsq_starts, 0 sq_finishes, 0 sq_prolongs, 0 sq_forgets, 0 sq_retries, 0 sq_restarts, 0 load_1_time, 0 load_2_time, 0 load_other_time, 0 offer_bank_starts, 0 offer_sale_starts, 0 last_house_start, 0 gfl_receive_flag, 0 gfl_use_flag, (finish_time-start_time) as first_map_load_time
  421. from
  422. ( select *
  423. from ghosts_mobile.versions_id
  424. where comparison_type='newbies'
  425. ) a
  426. join
  427. ( select id, min(utc_timestamp) as start_time
  428. from ext_master.mghost_content_conversion
  429. where current_date-actdate<=40 and content_name='quests/mario/map_1' and event='start'
  430.  
  431. group by
  432. id ) b
  433. on a.id = b.id
  434. join
  435. ( select
  436. id,
  437. min(utc_timestamp) as finish_time
  438. from
  439. ext_master.mghost_content_conversion
  440. where
  441. current_date-actdate<=40 and content_name='quests/mario/map_1' and event='finish'
  442. group by id
  443. ) c
  444. on a.id = c.id
  445. where (finish_time-start_time)>=0
  446. ) a
  447. left outer join
  448. ( select
  449. distinct id,
  450. monetary_type,
  451. actdate as pdate,
  452. socnet
  453. from
  454. ghosts_mobile.payer_type_distr
  455. where
  456. current_date-actdate<=40
  457. ) c
  458. on a.id = c.id and move_date = pdate and a.socnet = c.socnet
  459. left outer join
  460. ( select
  461. distinct a.id,
  462. country_group,
  463. traffic_group,
  464. a.socnet,
  465. date(timestamp 'epoch' + utc_timestamp * interval '1 second') as regdate
  466. from
  467. (select * from master.mghost_personal_info_new) a join (select * from master.mghost_personal_info_groups) b on a.id = b.id
  468. ) d
  469. on a.id = d.id and a.socnet = d.socnet
  470. join
  471. ( select *
  472. from ghosts_mobile.versions_id
  473. ) e
  474. on a.id = e.id and a.is_new = e.is_new and a.version = e.version and coalesce(a.comparison_type,'notest') = coalesce(e.comparison_type,'notest')
  475. where days_since_move>=-14
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement