!jL2-      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+, None-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None=>?k`immCNewtype wrapper to prettyprint a key uniquely identifying an objectbimmInfix operator for Fv  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKPNOXWVUTSRQ[ZY^]\_`abcdefghijklmnopqrstuv`abcdefghijklmnopqrstu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKPNOXWVUTSRQ[ZY^]\_None=>?@A vyxzw{|~} {|~}vyxzwNone=>?"imm$Handle to perform GET HTTP requests.immSimple wrapper around " that also logs the requested URI.None &'.1=?SUVX$imm8Feed reference: either its URI, or its UID from databaseNone%None1=>?@AHSVX&immGeneric database table""None "#>HVk+iimm'Singleton type to represent feeds tableimmNewtype wrapper to provide  and  instances for immNewtype wrapper to provide  and  instances for immUnique key in feeds table##None70(imm`All information passed to external programs about a new feed item, are stored in this structure.imm+External program run for each feed element.A = is passed to this program through stdin, serialized in JSON. None0Mvwzxy}~Mvwzxy}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmmnopqqrstuvwxyz{|}~x      !"#$%&'()*+ ,-./ 01 02 34 35 6 7 8-.9 :; :< => ?@ ?A ?B C DE DF DG DH DI DJ DK DL DM DN DO DP-QR-QS-QT UV UW UX UY UZ U[ U\ U] U^ U_ U` Ua Ub Uc Ud Ue Uf Ug :h :i :j :k :l :m :n :o :p :q :r :s t u v w x y z {| {} {~ { { { { {-Q-Q-Q-Q-Q-Q-Q-Q  : : U U U U U U U U U U U : : : : : :                                    ---------        ---- : :--       --- -         !"#$"#%&'(&')&*+&,-&,.&,/&01&02&03&04&05&06&07&08&09&0:&0;&0<&=>&=?&=@&=A&BC&BD&BE&BF&BG&BH&BI&BJ&KL&KM&KN&KO&KP&KQ&KR&ST&SU&SV&WX&WY&WZ&W[&W\&W]&W^&W_&W`&Wa&bc&de&df&dg&dh&ij&ik&il&im&in&io&ip&iq&ir&is&it&iu&iv&iw&ix&iy&iz&i{&i|&}~&}&}&}&}&}&}&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& """"""""""""""  "  "  """#"#"#""""""-Q-Q-Q         ! " # $ % & ' ( ) * +, {- ./ 30 31 32 34 35 36 37 38 39 3: 3; 0< 0= 0> 0? 0@ 0A 0B 0C 0D 0E 0F 0G 0H 0I 0J 0K 0L 0M NO :P :Q :R :S :T :U :V :W X Y Z [\ [] [^ _` ab c d e fg fh fi fj fk lm ln op op qr qr qs t u v w x y z { |} |~          Q                                                                                            = = = = = = = = = = = =                                          ?     ! " #$ #% #& '( '( ') *+ *+ *, *- *- *. */ */ *0 *1 *2 *3 *4 *5 *6 *7 *8 *9 *: ; < D= D> ? @ A B C D E F *G *G *H IJ aK&LM NOPQORSTUVW"imm-1.6.1.0-5IpQiUexaHC8ztt48V6oc7 Imm.Pretty Imm.LoggerImm.HTTPImm.FeedImm.XML Imm.DatabaseImm.Database.FeedTable Imm.CallbackPreludeImmbaseGHC.Base<>*prettyprinter-1.2.1-JPC8f5cJn5SAkoQXDSGO7Z"Data.Text.Prettyprint.Doc.InternalDoc'Data.Text.Prettyprint.Doc.Symbols.Asciipipeequals backslashslashdotspacecommacolonsemirbracelbracerbracketlbracketranglelanglerparenlparendquotesquotebracesbracketsanglesparensdquotessquotes layoutCompact layoutSmart layoutPrettydefaultLayoutOptionsremoveTrailingWhitespacefusealterAnnotationsS reAnnotateS unAnnotateSalterAnnotations reAnnotate unAnnotateannotatesurroundencloseplural fillBreakfill pageWidthnestingcolumn punctuatecatfillCatvcathcatsepfillSepvsephsep concatWith<+>tupled encloseSepindenthangalignflatAltgrouphardline softline'softlineline'linenestemptyDoc unsafeViaShowviaShow prettyListprettyPrettyDeepShallow FusionDepthSAnnPopSAnnPushSLineSTextSCharSEmptySFailSimpleDocStream UnboundedAvailablePerLine PageWidthlayoutPageWidth LayoutOptions:prettyprinter-ansi-terminal-1.1.1.2-8Hd119TbPHN6T9qJ6QGNJ82Data.Text.Prettyprint.Doc.Render.Terminal.Internal AnsiStyle PrettyKey<++> prettyTree prettyTime prettyPerson prettyLinkprettyAtomText prettyElement prettyNode prettyContent prettyEntry prettyItem prettyURI prettyGuidprettyAtomContentmagentayellowredgreencyanboldLogLevelDebugInfoWarningErrorHandlelog getLogLevel setLogLevelsetColorizeLogs flushLogs$fPrettyLogLevel $fEqLogLevel $fOrdLogLevel$fReadLogLevel$fShowLogLevelhttpGetgetFeedURI FeedElement RssElement AtomElementFeedRssAtomFeedRefByUIDByURI sameURIType withFeedURI renderFeedrenderFeedElement parseFeedparseFeedElementremoveElements getFeedTitle getElementsgetDategetTitle getContentgetLinkgetId$fPrettyFeedRef$fEqFeedElement$fOrdFeedElement$fPrettyPrettyKey $fOrdFeedURI $fEqFeedURI $fEqFeedRef $fOrdFeedRef $fShowFeedRef$fEqFeed $fOrdFeed $fShowFeed$fShowFeedElement $fShowFeedURIparseXmlDatabaseException NotCommitted NotDeletedNotFound NotInserted NotPurged NotUpdatedUnableFetchAll_describeDatabase _fetchList _fetchAll_update _insertList _deleteList_purge_commitTableKeyEntryrepreadOnlyfetch fetchListfetchAllupdateinsert insertListdelete deleteListpurgecommittable$fPrettyDatabaseException$fExceptionDatabaseException$fShowDatabaseException$fEqDatabaseExceptionDatabase FeedStatusUnknownNew LastUpdate FeedTable DatabaseEntryentryURI entryTagsentryReadHashes entryFeed entryItemsentryLastUpdate JsonElement unwrapElementJsonURI _unwrapURIFeedID prettyFeedID getHashesprettyShortDatabaseEntryprettyDatabaseEntrynewDatabaseEntryregister getStatusmarkAsProcessedmarkAsUnprocessedlistUnprocessedElementsisRead$fPrettyFeedID$fToJSONJsonURI$fFromJSONJsonURI$fToJSONFeedID$fFromJSONFeedID$fToJSONKeyJsonElement$fToJSONJsonElement$fFromJSONKeyJsonElement$fFromJSONJsonElement$fToJSONDatabaseEntry$fFromJSONDatabaseEntry$fTableFeedTable$fPrettyFeedTable$fPrettyFeedStatus $fEqFeedID $fOrdFeedID $fShowFeedID$fEqJsonElement$fOrdJsonElement$fEqDatabaseEntry$fShowDatabaseEntry $fEqFeedTable$fOrdFeedTable$fReadFeedTable$fShowFeedTable $fEqDatabase$fShowDatabaseMessageCallback _executable _arguments$fPrettyCallback$fInterpretCallback$fFromJSONMessage$fToJSONMessage $fEqCallback$fGenericCallback $fOrdCallback$fReadCallback$fShowCallback $fEqMessage$fGenericMessage $fOrdMessage $fShowMessage++ghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$coerceGHC.Real fromIntegral realToFrac Control.MonadguardGHC.ExtsIsListfromList fromListNjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexpsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonad>>=>>returnFunctorfmap<$GHC.NumNum+*-negate fromIntegerabssignumOrd>=compareminmax><<=GHC.ReadReadReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEERealFracproperFractiontruncateroundceilingfloorGHC.ShowShowData.Typeable.InternalTypeableControl.Monad.Fail MonadFailfail Data.StringIsString fromString Applicativepure<*>*><*liftA2 Data.FoldableFoldabletoListfoldrfoldlengthfoldMapnullfoldl'Data.Traversable TraversabletraversemapM sequenceAsequence GHC.GenericsGeneric GHC.TypeNatsKnownNatGHC.OverloadedLabelsIsLabel fromLabel SemigroupsconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleD#FloatF#IntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeInteger GHC.NaturalNatural GHC.MaybeMaybeNothingJustOrderingLTEQGTRatioRationalIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightType ConstraintNatCmpNat CoercibleGHC.Stack.Types CallStackStringbytestring-0.10.8.2Data.ByteString.Internal ByteString Data.Functor<$>'hashable-1.2.7.0-2SI038axTEd7AEZJ275kpiData.Hashable.ClassHashable hashWithSalt text-1.2.3.1Data.Text.InternalText4unordered-containers-0.2.10.0-LgoTL3wbBEY5bZIDJiyxW4Data.HashMap.BaseHashMapcontainers-0.6.0.1Data.Map.InternalMap stm-2.5.0.0Control.Concurrent.STM.TVar modifyTVar' Data.TextunwordsunlineslineswordsData.Text.Encoding decodeUtf8'decodeUtf8WithData.Text.Encoding.Error lenientDecode strictDecodeOnError OnDecodeErrorUnicodeExceptiontransformers-0.5.5.0Control.Monad.Trans.MaybeexceptToMaybeTmaybeToExceptT#relude-0.5.0-20kLFagzhCjJeGfP8HGvhhRelude.Applicativepass appliedToRelude.FunctionidentityRelude.Functor.Fmap<<$>>flap??Relude.Lifted.Concurrent newEmptyMVarnewMVarputMVarreadMVarswapMVartakeMVar tryPutMVar tryReadMVar tryTakeMVar atomically newTVarIO readTVarIORelude.Lifted.ExitexitWith exitFailure exitSuccessdieRelude.Lifted.IORefnewIORef readIORef writeIORef modifyIORef modifyIORef'atomicModifyIORefatomicModifyIORef'atomicWriteIORefRelude.Monad.Maybe?:whenJust whenJustM whenNothing whenNothing_ whenNothingM whenNothingM_Relude.Lifted.FilereadFile writeFile appendFileRelude.Monad.Trans usingReaderT usingReader usingStateT usingStateevaluatingStateTevaluatingStateexecutingStateTexecutingState hoistMaybe hoistEither Relude.Monoid maybeToMonoid Relude.NubordNubhashNubsortNub unstableNubRelude.String.Conversion LazyStricttoStricttoLazyToStringtoStringToLTexttoLTextToTexttoText ConvertUtf8 encodeUtf8 decodeUtf8decodeUtf8Strict LByteStringLText readEithershowfromLazy fromStrict Relude.PrintputText putTextLnputLText putLTextLnputBSputBSLnputLBSputLBSLnRelude.Monad.Either leftToMaybe rightToMaybe maybeToRight maybeToLeftwhenLeft whenLeft_ whenLeftM whenLeftM_ whenRight whenRight_ whenRightM whenRightM_ Relude.Monad chainedToRelude.List.NonEmpty viaNonEmpty whenNotNull whenNotNullMRelude.ExceptionBugExcbugRelude.DeepSeq evaluateWHNF evaluateWHNF_ evaluateNF evaluateNF_Relude.Bool.GuardwhenMunlessMifMguardM&&^||^Relude.NumericintegerToBoundedintegerToNaturalRelude.Container.OneOneOneItemoneRelude.Foldable.FoldElemErrorMessage DisallowElem flipfoldl'asumMapfoldMapAfoldMapMsumproductelemnotElemandMorMallManyM Relude.File readFileText writeFileTextappendFileText readFileLTextwriteFileLTextappendFileLText readFileBS writeFileBS appendFileBS readFileLBS writeFileLBS appendFileLBS Relude.Debug Undefinedtrace traceShow traceShowId traceShowMtraceMtraceIderror undefinedRelude.Lifted.TerminalgetLineprintputStrputStrLnData.HashSet.BaseHashSet Control.Monad.Trans.State.Strict execStateT evalStateT withState execState evalStaterunStateStateControl.Monad.Trans.Reader withReaderT withReader runReaderReaderControl.Monad.Trans.Except runExceptT mtl-2.2.2Control.Monad.Reader.Class MonadReaderasklocalreaderasksControl.Monad.State.Classmodifymodify'getsControl.Monad.Trans.Identity IdentityT runIdentityT MonadStateputstatedeepseq-1.4.4.0Control.DeepSeqNFDatarnfdeepseq$!!Data.Set.InternalSetData.Sequence.InternalSeqData.IntSet.InternalIntSetData.IntMap.InternalIntMapControl.Monad.Trans.Class MonadTransliftExceptTMaybeT runMaybeTReaderT runReaderTStateT runStateTnot||&&GHC.Exception.Type SomeExceptionData.Semigroup.InternalstimesIdempotentMonoid HasCallStack getCallStackNonEmpty:|<**>liftA3=<<whenordidconst.flip$!asTypeOf GHC.Stack.CCScurrentCallStacksubtractGHC.MVarMVarcurryuncurryswap Data.MaybemaybeisJust isNothing fromMaybe maybeToList listToMaybe catMaybesmapMaybeunconsscanlscanriteraterepeat replicatecycle takeWhile dropWhiletakedropsplitAtbreakreversezip3zipWithunzipunzip3GHC.Charchr numerator denominatorevenodd^^^gcdlcm<&>$>void Data.Functionfixon& Data.Boolbool Data.BitstoIntegralSized byteSwap16 byteSwap32 byteSwap64 GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeControl.Category<<<>>> Data.ProxyProxyData.OrdDown comparingeitherleftsrightspartitionEithersisLeftisRightfromLeft fromRight Text.Readreads readMaybe Data.OldList isPrefixOf intersperse intercalate transpose genericLength genericTake genericDropgenericSplitAtgenericReplicateinitstails subsequences permutationssortsortBysortOnunfoldrSomeNatnatVal someNatValAltgetAltProduct getProductSumgetSumAnygetAnyAllgetAllEndoappEndoDualgetDualstimesIdempotent stimesMonoid Data.MonoidApgetApLastgetLastFirstgetFirstfoldlM traverse_for_mapM_forM_ sequenceA_ sequence_asumconcat concatMapandoranyallfindData.Functor.ConstConstgetConst Exception toException fromExceptiondisplayException GHC.Exception prettySrcLocprettyCallStackGHC.IOFilePath GHC.IORefIORefGHC.IO.Handle.FDstdout GHC.Conc.SyncTVarSTMnewTVarreadTVar writeTVar GHC.Stack callStackwithFrozenCallStackstdinstderr System.IOwithFileData.Functor.IdentityIdentity runIdentityControl.ApplicativeZipList getZipListoptionalforM mapAccumL mapAccumRfilterM>=><=<forever mapAndUnzipMzipWithM zipWithM_ replicateM replicateM_unless<$!>mfilterControl.Monad.IO.ClassMonadIOliftIOGHC.ExecutionStack getStackTraceshowStackTraceData.List.NonEmptynonEmptyheadtaillastinitData.Bifunctor BifunctorfirstsecondbimapData.Bifoldable Bifoldablebifold bifoldMapbifoldrbifoldlbifoldr'bifoldrMbifoldl'bifoldlM bitraverse_bifor_ bisequence_biasumbiListbinullbilengthbielembiandbiorbianybiallbifindData.Bitraversable Bitraversable bitraverse bisequencebifor bimapDefaultbifoldMapDefaultsortWithData.SemigroupOption getOption WrappedMonoidcycle1 mtimesDefault Data.VoidVoidabsurdvacuousData.Functor.ComposeCompose getComposeData.Functor.ContravariantOpgetOp EquivalencegetEquivalence Comparison getComparison Contravariant contramap>$phantom$<>$<>$$<defaultComparisondefaultEquivalencecomparisonEquivalenceminIntmaxIntboundedEnumFromboundedEnumFromThen MonadPlusmzeromplus Alternativeempty<|>somemany Predicate getPredicate Control.Arrow&&&xorRelude.Extra.Maplookupio$aeson-1.4.3.0-CKhfOL9YUanCoDzOlq0iJCData.Aeson.Types.FromJSONFromJSONData.Aeson.Types.ToJSONToJSON-uri-bytestring-0.3.2.1-KaOhoUSLzZoDrTzVsohSxWURI.ByteString.TypesURI