(
(let $1 (DataType 'String))
(let $2 '('"value" $1))
(let $3 (StructType '('"key" $1) '('"subkey" $1) $2))
(let $4 '('('"_logical_id" '14255) '('"_id" '"14e9c5ba-e85fb425-a2eb2321-549c96a6") '('"_wide_channels" $3)))
(let $5 (DqPhyStage '() (lambda '() (block '(
  (let $19 '@@["StructType";[["key";["DataType";"String"]];["subkey";["DataType";"String"]];["value";["DataType";"String"]]]]@@)
  (let $20 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $19)))
  (let $21 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" '"false")))))
  (let $22 (YtStat '('Id '"Input") '('RecordsCount '"30") '('DataSize '"1170") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $23 (YtTable '"Input" $20 $21 $22 '() (Void) (Void) '"/Root/plato"))
  (let $24 '('"key" '"subkey" '"value"))
  (let $25 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $23 $24 (Void) (Void))) '()))))
  (return (FromFlow (WideFilter (DqReadWideWrap $25 '()) (lambda '($26 $27 $28) (== $26 (String '1))))))
))) $4))
(let $6 (DqCnHashShuffle (TDqOutput $5 '0) '('0) '0 '"HashV2"))
(let $7 (DataType 'Uint64))
(let $8 (OptionalType $7))
(let $9 (OptionalType (DataType 'Uint32)))
(let $10 (OptionalType $1))
(let $11 (StructType '('"dvalue_lead1" $10) '('"sum1" $8) '('"sum2" $8) $2 '('"value_lag2" $9)))
(let $12 '('('"_logical_id" '16032) '('"_id" '"170294c5-952ea474-dda0c414-8e0b8e4a") '('"_wide_channels" $11)))
(let $13 (DqPhyStage '($6) (lambda '($29) (block '(
  (let $30 (NarrowSqueezeToDict (ToFlow $29) (lambda '($35 $36 $37) $35) (lambda '($38 $39 $40) (AsStruct '('"key" $38) '('"subkey" $39) '('"value" $40))) '('Auto 'Many)))
  (let $31 (Bool 'true))
  (let $32 (Chopper (OrderedFlatMap $30 (lambda '($41) (OrderedFlatMap (DictPayloads $41) (lambda '($42) (Sort $42 $31 (lambda '($43) (Member $43 '"value"))))))) (lambda '($44) (Member $44 '"key")) (lambda '($45 $46) (AggrNotEquals $45 (Member $46 '"key"))) (lambda '($47 $48) (block '(
    (let $49 (FromFlow $48))
    (let $50 (QueueCreate $3 (Uint64 '"6") (Uint64 '1) (DependsOn $49)))
    (let $51 (Uint64 '"3"))
    (let $52 (Uint64 '0))
    (let $53 (lambda '($89) (Just (Member $89 'Sum0))))
    (let $54 (Nothing $8))
    (let $55 (Uint64 '"2"))
    (let $56 (lambda '($90) (Member $90 'Sum1)))
    (let $57 (lambda '($91) (SafeCast (Member $91 '"value") $9)))
    (let $58 (Nothing $9))
    (let $59 (Uint64 '"4"))
    (let $60 (lambda '($92) (block '(
      (let $93 (Member $92 '"value"))
      (return (Just (Concat $93 $93)))
    ))))
    (let $61 (Nothing $10))
    (let $62 (lambda '($94) (Just (SafeCast $94 $7))))
    (let $63 (Chain1Map (ToFlow (PreserveStream $49 $50 $51)) (lambda '($64) (block '(
      (let $65 (DependsOn $64))
      (let $66 (QueueCreate (StructType '('Sum0 $7) '('Sum1 $8)) $51 $51 $65))
      (let $67 (QueuePeek $66 $52 $65))
      (let $68 (IfPresent $67 $53 $54))
      (let $69 '('Sum0 $68))
      (let $70 (QueuePeek $66 $55 $65))
      (let $71 (IfPresent $70 $56 $54))
      (let $72 '('Sum1 $71))
      (let $73 (QueuePeek $50 $52 $65))
      (let $74 (IfPresent $73 $57 $58))
      (let $75 '('_yql_Lag0 $74))
      (let $76 (QueuePeek $50 $59 $65))
      (let $77 (IfPresent $76 $60 $61))
      (let $78 '('_yql_Lead0 $77))
      (let $79 (Member $64 '"subkey"))
      (let $80 (AsStruct $69 $72 $75 $78 '('"key" (Member $64 '"key")) '('"subkey" $79) '('"value" (Member $64 '"value"))))
      (let $81 (AsStruct $69 $72 $75 $78))
      (let $82 (SafeCast $79 $9))
      (let $83 '('Sum0 (SafeCast (Unwrap $82) $7)))
      (let $84 (IfPresent $82 $62 $54))
      (let $85 '('Sum1 $84))
      (let $86 (AsStruct $83 $85 '('_yql_Lag0 (Void)) '('_yql_Lead0 (Void))))
      (let $87 (AsStruct $83 $85))
      (let $88 (Seq $81 $86 $87 '($86 (QueuePush (QueuePop $66) $87))))
      (return '($80 $88))
    ))) (lambda '($95 $96) (block '(
      (let $97 (Nth $96 '1))
      (let $98 (Nth $97 '1))
      (let $99 (DependsOn $95))
      (let $100 (QueuePeek $98 $52 $99))
      (let $101 (IfPresent $100 $53 $54))
      (let $102 '('Sum0 $101))
      (let $103 (QueuePeek $98 $55 $99))
      (let $104 (IfPresent $103 $56 $54))
      (let $105 '('Sum1 $104))
      (let $106 (QueuePeek $50 $52 $99))
      (let $107 (IfPresent $106 $57 $58))
      (let $108 '('_yql_Lag0 $107))
      (let $109 (QueuePeek $50 $59 $99))
      (let $110 (IfPresent $109 $60 $61))
      (let $111 '('_yql_Lead0 $110))
      (let $112 (Member $95 '"subkey"))
      (let $113 (AsStruct $102 $105 $108 $111 '('"key" (Member $95 '"key")) '('"subkey" $112) '('"value" (Member $95 '"value"))))
      (let $114 (AsStruct $102 $105 $108 $111))
      (let $115 (SafeCast $112 $9))
      (let $116 (Nth $97 '0))
      (let $117 '('Sum0 (AggrAdd (SafeCast (Unwrap $115) $7) (Member $116 'Sum0))))
      (let $118 (IfPresent $115 $62 $54))
      (let $119 '('Sum1 (AggrAdd $118 (Member $116 'Sum1))))
      (let $120 (AsStruct $117 $119 '('_yql_Lag0 (Member $116 '_yql_Lag0)) '('_yql_Lead0 (Member $116 '_yql_Lead0))))
      (let $121 (AsStruct $117 $119))
      (let $122 (Seq $114 $120 $121 '($120 (QueuePush (QueuePop $98) $121))))
      (return '($113 $122))
    )))))
    (return (OrderedMap $63 (lambda '($123) (block '(
      (let $124 (Nth $123 '0))
      (return (AsStruct '('Sum0 (Member $124 'Sum0)) '('Sum1 (Member $124 'Sum1)) '('_yql_Lag0 (Member $124 '_yql_Lag0)) '('_yql_Lead0 (Member $124 '_yql_Lead0)) '('"value" (Member $124 '"value"))))
    )))))
  )))))
  (let $33 (Sort (Map $32 (lambda '($125) (AsStruct '('"dvalue_lead1" (Member $125 '_yql_Lead0)) '('"sum1" (Member $125 'Sum0)) '('"sum2" (Member $125 'Sum1)) '('"value" (Member $125 '"value")) '('"value_lag2" (Member $125 '_yql_Lag0))))) $31 (lambda '($126) (Member $126 '"value"))))
  (let $34 (lambda '($127) (Member $127 '"dvalue_lead1") (Member $127 '"sum1") (Member $127 '"sum2") (Member $127 '"value") (Member $127 '"value_lag2")))
  (return (FromFlow (ExpandMap $33 $34)))
))) $12))
(let $14 (DqCnMerge (TDqOutput $13 '0) '('('"3" '"Asc"))))
(let $15 (DqPhyStage '($14) (lambda '($128) (FromFlow (NarrowMap (ToFlow $128) (lambda '($129 $130 $131 $132 $133) (AsStruct '('"dvalue_lead1" $129) '('"sum1" $130) '('"sum2" $131) '('"value" $132) '('"value_lag2" $133)))))) '('('"_logical_id" '16044) '('"_id" '"5b7c444d-eae55c43-651ddd00-c082597e"))))
(let $16 '($5 $13 $15))
(let $17 '('"value" '"sum1" '"dvalue_lead1" '"sum2" '"value_lag2"))
(let $18 (DqCnResult (TDqOutput $15 '0) $17))
(return (KqpPhysicalQuery '((KqpPhysicalTx $16 '($18) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $11) '0 '0)) '('('"type" '"query"))))
)
