bplist00*+,B _inputParameters^virtualPatches_frameworkVersion^portAttributesYrootPatch_editorViewerWindow #()_Article_durationYBar_colorZDate_color[Title_Color]Content_color^Article_Y_Axis[Search_Term#@SredUalphaTblueUgreen#?#?Q#?9@#?S@#?ܓ@#?#?9@#?S@ !"#?ǀ#?#?#?,@$%&'#?#?G#?߀#?#}?LZphantogramV156.16 -.///////:=_Download_ProgressW_enable0123[descriptionTname_The input port.UInput01230123012301230123012301;<_The output port.VOutput>?@ATname[descriptionVEnable_ Controls execution of the patch.CDEFUclassUstateWQCPatchGHIJKLMNo_publishedInputPorts[connections_publishedOutputPortsXtimebaseUnodesXuserInfo_systemInputPortStatesOW[_cgkDPQRSU VTnodeSkeyTportLTOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle Y AxisZSplitter_4UinputDPQRXZ VLYOu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Date colorZSplitter_6DPQR\^ VL]Ox streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Content colorZSplitter_7DPQR`b VLaOt streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Bar colorZSplitter_8DPQRdf VLeOv streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Title ColorZSplitter_5DPQRhjVLiO{ streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle durationZSplitter_9DPQRlnVLmOv streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Search TermZSplitter_3pqrstuvwxyz{|}~]connection_14\connection_7]connection_10\connection_8]connection_15\connection_1\connection_9]connection_11\connection_2]connection_16\connection_3]connection_12\connection_4]connection_17]connection_13\connection_5]connection_18\connection_6^ ZsourceNode_destinationPortZsourcePort_destinationNodeVoutputWPatch_2_RSSDownloader_1\Start_Signal\outputSignalWPatch_3_StringReplace_1XinputURL\outputStringZSplitter_1UColorb WPatch_1_Article_StructureWArticlen_inputReplaceStringU _Interpolation_1[inputValue1[outputValue]Conditional_1ZSplitter_2_inputSourceStringf[Title_colorj_Article_Duration[inputSignal\outputResultZ ZinputColorWClear_1V^outputProgress[Splitter_10\Article_List^outputArticlesDPQR-LO| streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameDownload ProgressVparentu9 CDQWQCClearML_clearColorBuffer_clearDepthBuffer .Uvalue O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}  CDQ]QCSyndicationL_keylessStructures_synchronousMode_preserveExtensions\preserveHTMLO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}yCDQWQCPatchHJGILKxvzquULFO_1^Article_Signal[outputValuen[inputPeriodZinputIndexUIndex_StructureMember_index_1^inputStructure_inputStartSignalWClock_1U_timeZoutputTimeDPQRVLOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Article ListDPQRVLOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Start SignalDPQRnVLO{ streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle DurationDPQRLOr streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle\outputMemberO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd} zoomFactorNSNumberfnameGet the Article scrolling@8noteListNSMutableArrayNSArraybounds {CGRect={CGPoint=dd}{CGSize=dd}}@܏@stringXAfter we recieve a "Start Signal" we generate a true value every "Duration" in seconds. colorNSColorcffff?=CKVmDQCZidentifierLO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}_QCStructureMemberUindexCDQWQCPatchHJGILK u ]connection_20    _StructureCount_1Yoperand_1[outputCountVMath_1 YCounter_1ZinputValue[outputCountDPQR LOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Article List^inputStructureDPQRLOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle Signal[inputSignalDPQR LOp streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameIndex[outputValueO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}M zoomFactorNSNumberfnameGet the Article Index scrollingƘ@noteListNSMutableArrayNSArraybounds {CGRect={CGPoint=dd}{CGSize=dd}}^@@stringHere we count the number of times we recieve the "Article Signal". This indicates that it is time to display a new article. We modulo by the number of Articles in order to keep the index in range. colorNSColorcffff?!-9CDQ"#YQCCounterLJ$%&_ivarInputPortStatesO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}'()+_inputSignalReset_inputSignalDownCDQ./ VQCMath012L348_numberOfOperations^operationCount_customInputPortStatesWversion56[operation_17O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}eCDQ:; _QCStructureCountL?ZQCSplitterL3@ABYportClassO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name StructurepositionNSValue* {CGPoint=dd}_QCStructurePortCDQDEZQCSplitter@2L3FGJ]QCBooleanPortVHLIOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Start SignalO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Start SignalpositionNSValue* {CGPoint=dd}{CDQLMWQCClockLJ$NOO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}PQRT_inputResetSignal_inputStopSignalCDQWXUQCLFO$JYLZjklZrandomSeed[\]^_`bdfh[inputOffsetYinputType]inputPWMRatioZinputPhase^inputAmplitudea#?ce#?g#i#?Xexternal,XO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}6CDQnonZQCSplitter@2L3pqt\QCNumberPortVrLsO{ streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle DurationO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle DurationpositionNSValue* {CGPoint=dd}vCDQvwWQCPatchHGMLKx!ywyz{|spu}~|}{qtrz~vx]connection_32]connection_28]connection_23]connection_19]connection_30]connection_26]connection_21]connection_33]connection_29]connection_24]connection_31]connection_27]connection_22]connection_25\Expression_2VinputY\outputResult[Billboard_4_StructureMember_key_3YinputTime_DateFormatter_1\Expression_1[Billboard_3\Expression_3[inputHeightXSprite_1[TextImage_3ZdateHeight\outputHeight\Expression_4UZinputColor[Billboard_2[TextImage_2_descriptionHeightZdateHeight_StructureMember_key_1ZinputImage[outputImage[TextImage_1[Billboard_1ZZinputColor_StructureMember_key_2[inputString_StringTruncate_1^GaussianBlur_1nXarticleYnXarticleY]articleHeightf[titleHeight[inputString\outputString\outputStringnXarticleY_StructureMember_key_4VinputY[outputImage_StructureMember_key_5DPQRVLO| streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle StructureDPQRn VLOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle Y AxisDPQRVLOv streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Title colorDPQRU VLOu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Date colorDPQRf VLOx streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Content colorDPQRZ VLOt streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Bar color. O< streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}y zoomFactorNSNumberfnameDisplay the Article scrollingޝ@noteListNSMutableArrayNSArraybounds {CGRect={CGPoint=dd}{CGSize=dd}}tCstringThis is the article title. Along with the other text elements it is being displayed on a Billboard whose dimensions are set to the "Real Size" of the input "Image". It is also "Pixel Aligned" to ensure that the text is drawn on pixel boundaries. The Billboard is positioned so that its bottom edge coincides with the "Article Y Position" input. This means that it will expande from the bottom up. colorNSColorcffff??This is the article description. Here we are offsetting the "Y Position" so that it sits below the article title. We also truncate the article if it is too long.ccF>A sprite is positioned to the left of the article description.?bounds7The article Date.?$9&This is a glow added behind the title.?7IQWo %*/4CDQ[QCTextImage$23L_verticalAlignmentXfontSize_horizontalAlignment\manualLayoutXfontNameVNormal#?С^inputGlyphSize]inputFontName\inputLeading\inputKerningZinputWidth[inputHeight#?С\LucidaGrande###?#     \inputKerning^inputGlyphSize\inputLeadingZinputWidth[inputHeightO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}$TCDQ[QCBillboard$3ML1725[CIRendering_optimizedRenderingXsizeMode\pixelAligned !"(*+-]inputRotation]inputBlendingVinputX_inputPixelAligned#$%&'#?#?#?#?)#,# Treal.3 O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameTitlepositionNSValue* {CGPoint=dd}sH CDQ89[QCBillboard$3ML:17DG !;<>@=#?# .E O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameTitlepositionNSValue* {CGPoint=dd}  DQCJPQL2KLO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}@MNXinputKeyOWauthors_QCStructureMemberDQCRVQL2STO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}MU0_QCStructureMemberCDQXY[QCTextImage$23LZ[gn#?333333\^_ace]#?333333`#b#d#?f#     a\_ceb]`dfO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}4CDQpq[QCBillboard$3MLr17| !stvxu#w#? .} O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name DescriptionpositionNSValue* {CGPoint=dd}% CDQ\QCExpressionLZexpressionO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name-"articleY - dateHeight - descriptionHeight/2"positionNSValue* {CGPoint=dd}%_+articleY - dateHeight - descriptionHeight/2CDQ\QCExpressionLO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"articleY + titleHeight/2 "positionNSValue* {CGPoint=dd}\_articleY + titleHeight/2 CDQXQCSprite$ML\antialiasingVinputZVinputX\inputZBuffer]inputBlending\inputCullingZinputWidthWinputRZWinputRYWinputRX## ěT#?###. O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}rCDQ\QCExpressionLO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"articleHeight * .95"positionNSValue* {CGPoint=dd}_articleHeight * .95CDQZQCSplitterL3@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"Structure Splitter"positionNSValue* {CGPoint=dd}JV_QCStructurePortCDQnZQCSplitterL3@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle Y PositionpositionNSValue* {CGPoint=dd}\QCNumberPortDQCQL2O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}VMZsystemTime_QCStructureMemberCDQ[QCTextImage$23L#?333333#?333333###?#     O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}&VCDQ[QCBillboard$3ML17 !## . O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameDatepositionNSValue* {CGPoint=dd}! CDQ_QCDateFormatterLYdateStyleYtimeStyleO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}VVMediumCDQ\QCExpressionLO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"articleY - dateHeight/2 "positionNSValue* {CGPoint=dd}^_articleY - dateHeight/2 DQC23LYhasBypass]filterVersion_normalizeCoordinates\wrappingMode]filteringMode[inputRadius#@$XBilinearO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}T]QCImageFilter^CIGaussianBlurCDQ  _QCStringTruncateL$  O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}ZinputToken^inputDirectionYinputModeXinputMaxa &,DQCQL2O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}sMXauthor_1_QCStructureMemberDQC $QL2!"O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}M#1_QCStructureMemberCDQ&'ZQCSplitterL3@()O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameColorpositionNSValue* {CGPoint=dd}t[QCColorPortCDQ+,UZQCSplitterL3@-.O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameColorpositionNSValue* {CGPoint=dd}[QCColorPortCDQ01fZQCSplitterL3@23O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameColorpositionNSValue* {CGPoint=dd}i[QCColorPortCDQ56ZZQCSplitterL3@78O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameColorpositionNSValue* {CGPoint=dd}[QCColorPortCDQ:;WQCPatchHJGMLK<KSVWxvzp|ru=@CEFGIJ>?ZinputAlpha_ColorTransform_2AB\ScreenInfo_1[outputWidth?D[outputColor.AH\outputHeightLODPQRMVLNOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Start SignalDPQRP?RLQOp streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameColorZinputColor.T OF streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd} zoomFactorNSNumberfnameLoading Screen... scrollingR@noteListNSMutableArrayNSArraycolorNSColorcffff?string3Smoothly fade out once we recieve the start signal.bounds {CGRect={CGPoint=dd}{CGSize=dd}}A@ 2@~?#A Sprite sized to the background. 0ޕ@K@w@ZUo@ff&?33s? ?Once the value from the Interpolation patch reaches 0 we disable the Sprite. This optimization keeps us from drawing this Sprite when it is no longer visible.boundsQXlrzCDQYZXQCSpriteL$[\O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}]]_acdefhj^#`#b#g#i#k#CDQmnA\QCScreenInfoLop]cleanApertureO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd} CDQstZQCSplitter@2L3uvy]QCBooleanPortVwLxOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Start SignalO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Start SignalpositionNSValue* {CGPoint=dd}3CDQ{|WQCClockLJ$}~O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}3PQCDQ_QCInterpolation$J2L3j[inputValue2]inputDuration[inputValue1[inputRepeat\inputTension##?#?#_inputInterpolation O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}03CDQ?_QCColorTransformL$O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}6_inputLuminosityXinputHue_inputSaturation#?##?CDQ]QCConditionalL$O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}^inputTolerance[inputValue2YinputTest##CDQZQCSplitter@2L3[QCColorPortV#?y##?y#?yO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Clear ColorpositionNSValue* {CGPoint=dd}CDQ_QCStringReplaceL$O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}O%_inputSearchString_inputCaseSensitiveYqueryterm CDQZQCSplitter@2L3\QCStringPortV_1http://search.twitter.com/search.atom?q=querytermO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameStringpositionNSValue* {CGPoint=dd}(CDQnZQCSplitterL3@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameReplace StringpositionNSValue* {CGPoint=dd}yX\QCStringPortCDQUZQCSplitter@L3XinputMaxXinputMin\QCNumberPort#@#O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle Y AxispositionNSValue* {CGPoint=dd}CDQfZQCSplitterL3@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Title colorpositionNSValue* {CGPoint=dd}[QCColorPortCDQZZQCSplitterL3@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Date colorpositionNSValue* {CGPoint=dd}([QCColorPortCDQ^ZQCSplitterL3@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Content colorpositionNSValue* {CGPoint=dd}([QCColorPortCDQbZQCSplitterL3@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Bar colorpositionNSValue* {CGPoint=dd}X[QCColorPortCDQjZQCSplitter@L3\QCNumberPort#@N#O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameArticle DurationpositionNSValue* {CGPoint=dd}6CDQ_QCInterpolation$J2L3  #?#?# # O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}CDQ]QCConditionalL$O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}#?=x֣#?CDQZQCSplitterL3@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameDownload ProgresspositionNSValue* {CGPoint=dd}$\QCNumberPortO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+noteListNSMutableArrayNSArraystringQOriginal patch in Apple examples. Modified by Blair Neal. 2010. www.blairneal.comboundsNSValue* {CGRect={CGPoint=dd}{CGSize=dd}} 32colorNSColorcffff? scrolling {CGPoint=dd}t[ zoomFactorNSNumberf?.LO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameEnable description Controls execution of the patch._1058 584 512 430 0 0 1680 1028 !3BUdn!&,5>GPajs| 0DLUafx~$*08Ukwmx~ (-@K\ayiw  & 4 A O \ m x  ' 4 E P V g x    - > I ] n z   ) : G V Y j o  ) 1 B U h i n s y z*?Sez -5Nk|':BSYdu| "03DI )3?FWalx} -2FR #/>V^cotv */l  ) 1 > !!!! ! !!!0!;!P!\!f!t!!!!!!!!!!!!!!"o"|"""""#-###$ $$$$$$$$%%%%,%:%H%V%g%t%{%%%%%%%%&&&!&-&6&G&S&^&k&x&&&&&&&&&''''2'>'O'['g'x''''''''( (('(0(A(O(`(q((((((((()))#);)L)S)d)p))))))))*n**++++++,,.,3,,,-;-@-E-F22222333.3;3D3K3T3m3|3333333333333344 44(454D4Q4\4h4m4r4w4|44455%515R5^5s5|555555555566666"6'60656667686=6B6G6H6667 7,7=7B7G7P7U7^7c7d7e7f7k7p7q888,858888889 9999999:: :$:):2:7:<:E:J:S:X:a:f:o:::::::;2;?;K;l;};;;;;;;;;;;;<`p>>>>>>>>????&?.?6?>?C?L?Q?Z?_?a?f?k?p?y?~????????@B@O@\@eAA4AAALAYBB#B0B;BHBC CC%CCCCCCCD D)DBDGDPDUDZDcDhDqDvDDDDDDDDDDEPE]EiEEEEEEEEEEEEEEFwFxFFFFFGLGSG`GmGvH4HOH`HHHHHHHHHHHIIIIIIJaJrJ}JJJJJJJJJJJKgKlKqKzKKKLZGZLZUZZZcZhZmZvZ{ZZZ[+[8[K[T[[\\\"\'\0\5\>\C\L\Y\g\p]]] ],]6];]D]I]R]W]d]o]]]]]]]]]^z^^^_6_?_S_h_m_w_|_}_______````araaaaaaaaabbbbcccoc|ccdBdNd[dfdse$e0e=eHeUffff&f;fHfQfZggg-gBgWg\gegjgsgxggggggh2h?hMhVhhhii iii%i0i=iikkklz!l