From a3549faed98d8945dbf5b70c3e22f78a76e3f0c8 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 27 Apr 2010 20:20:48 +0100 Subject: [PATCH] temporary icons --- Makefile | 8 +- SparklePony.cs | 512 ++++++++++++++++++ .../16x16/places/folder-publicshare.png | Bin 0 -> 710 bytes .../22x22/places/folder-publicshare.png | Bin 0 -> 940 bytes .../24x24/places/folder-publicshare.png | Bin 0 -> 978 bytes .../256x256/places/folder-publicshare.png | Bin 0 -> 47324 bytes .../32x32/places/folder-publicshare.png | Bin 0 -> 1272 bytes .../48x48/places/folder-publicshare.png | Bin 0 -> 2103 bytes 8 files changed, 517 insertions(+), 3 deletions(-) create mode 100644 SparklePony.cs create mode 100644 data/icons/hicolor/16x16/places/folder-publicshare.png create mode 100644 data/icons/hicolor/22x22/places/folder-publicshare.png create mode 100644 data/icons/hicolor/24x24/places/folder-publicshare.png create mode 100644 data/icons/hicolor/256x256/places/folder-publicshare.png create mode 100644 data/icons/hicolor/32x32/places/folder-publicshare.png create mode 100644 data/icons/hicolor/48x48/places/folder-publicshare.png diff --git a/Makefile b/Makefile index 30b43d86..755f367f 100644 --- a/Makefile +++ b/Makefile @@ -3,13 +3,15 @@ SparklePony.exe : src/SparklePony.cs install: mkdir /usr/share/sparklepony - cp src/SparklePony.exe /usr/share/sparklepony - cp src/sparklepony /usr/bin + cp src/SparklePony.exe /usr/share/sparklepony/ + cp src/sparklepony /usr/bin/ + cp data/icons /usr/share/ -R uninstall: rm /usr/bin/sparklepony rm /usr/share/sparklepony/SparklePony.exe - mkdir /usr/share/sparklepony + rmdir /usr/share/sparklepony + rm /usr/share/icons/hicolor/*x*/places/folder-publicshare.png clean: rm src/SparklePony.exe diff --git a/SparklePony.cs b/SparklePony.cs new file mode 100644 index 00000000..e7c97b8e --- /dev/null +++ b/SparklePony.cs @@ -0,0 +1,512 @@ +// SparklePony 0.0.2 +// +// SparklePony, an instant update workflow to Git. +// Copyright (C) 2010 Hylke Bons +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// Dependencies: +// mono-core +// gtk-sharp2 +// gtk-sharp2-devel +// notify-sharp +// notify-sharp-devel +// dbus-sharp +// +// Compile: +// gmcs -pkg:gtk-sharp-2.0 -pkg:notify-sharp SparklePony.cs +// +// Run: +// mono SparklePony.exe + +using Gtk; +using System; +using System.IO; +using System.Diagnostics; +using System.Timers; +using Notifications; +using System.Text.RegularExpressions; + +public class SparklePony { + + public static void Main () { + Gtk.Application.Init (); + SparklePonyUI SparklePonyUI = new SparklePonyUI (); + SparklePonyUI.StartMonitoring (); + Gtk.Application.Run (); + } + +} + +public class SparklePonyUI { + + public SparklePonyWindow SparklePonyWindow; + public SparklePonyStatusIcon SparklePonyStatusIcon; + public string FoldersPath; + public string UserHome; + public Repository [] Repositories; + + public SparklePonyUI () { + + Process Process = new Process(); + Process.EnableRaisingEvents = false; + Process.StartInfo.RedirectStandardOutput = true; + Process.StartInfo.UseShellExecute = false; + + // Get home folder, example: "/home/user" + Process.StartInfo.FileName = "whoami"; + Process.StartInfo.Arguments = ""; + Process.Start(); + UserHome = "/home/" + Process.StandardOutput.ReadToEnd().Trim () + "/"; + + // Create 'Collaboration' folder in the user's home folder + FoldersPath = UserHome + "/Collaboration"; + if (!Directory.Exists (FoldersPath)) { + Directory.CreateDirectory (FoldersPath); + Console.WriteLine ("Created '" + FoldersPath + "'"); + } + + // Get all the folders in ~/Collaboration + string [] Folders = Directory.GetDirectories (FoldersPath); + Repositories = new Repository [Folders.Length]; + + int i = 0; + foreach (string Folder in Folders) { + Repositories [i] = new Repository (Folder); + i++; + } + + // Create the window + SparklePonyWindow = new SparklePonyWindow (Repositories); + SparklePonyWindow.DeleteEvent += CloseSparklePonyWindow; + + // Create the status icon + SparklePonyStatusIcon = new SparklePonyStatusIcon (); + SparklePonyStatusIcon.Activate += delegate { SparklePonyWindow.ToggleVisibility (); }; + + } + + public void CloseSparklePonyWindow (object o, DeleteEventArgs args) { + SparklePonyWindow = new SparklePonyWindow (Repositories); + SparklePonyWindow.DeleteEvent += CloseSparklePonyWindow; + } + + public void StartMonitoring () { } + public void StopMonitoring () { } + +} + +public class SparklePonyStatusIcon : StatusIcon { + + public SparklePonyStatusIcon () : base () { + IconName = "folder-publicshare"; + // Activate += delegate (object o, EventArgs args) { SetSyncingState (); }; + } + + public void SetIdleState () { + IconName = "folder-publicshare"; + } + + public void SetSyncingState () { + IconName = "view-refresh"; // Massively abusing this icon here :) + } + +} + +public class AutoFetcher { + + private Timer Timer; + + public AutoFetcher (Repository Repository) { + Timer = new Timer(); + // Fetch changes every 30 seconds + Timer.Interval = 30000; + Timer.Elapsed += delegate (object o, ElapsedEventArgs args) { Repository.Fetch (); }; + Timer.Start(); + } + + public void StartTimer () { + Timer.Start (); + } + + public void StopTimer () { + Timer.Stop (); + } + + public bool isRunning () { + return Timer.Enabled; + } + +} + +public class Repository { + + private Process Process; + private Timer Timer; + private Timer BufferTimer; + private FileSystemWatcher Watcher; + + public string Name; + public string Domain; + public string RepoPath; + public string RemoteOriginUrl; + public string CurrentHash; + + public string UserEmail; + public string UserName; + public bool MonitorOnly; + + public Repository (string Path) { + + Process = new Process(); + Process.EnableRaisingEvents = false; + Process.StartInfo.RedirectStandardOutput = true; + Process.StartInfo.UseShellExecute = false; + + RepoPath = Path; + Process.StartInfo.WorkingDirectory = RepoPath; + + // Get user.name, example: "User Name" + UserName = "Anonymous"; + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "config --get user.name"; + Process.Start(); + UserName = Process.StandardOutput.ReadToEnd().Trim (); + + // Get user.email, example: "user@github.com" + UserEmail = "not.set@git-scm.com"; + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "config --get user.email"; + Process.Start(); + UserEmail = Process.StandardOutput.ReadToEnd().Trim (); + + // Get remote.origin.url, example: "ssh://git@github.com/user/repo" + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "config --get remote.origin.url"; + Process.Start(); + RemoteOriginUrl = Process.StandardOutput.ReadToEnd().Trim (); + + // Get the repository name, example: "project" + Name = RepoPath.Substring (RepoPath.LastIndexOf ("/") + 1); + + // Get the domain, example: "github.com" + Domain = RemoteOriginUrl; + Domain = Domain.Substring (Domain.IndexOf ("@") + 1); + Domain = Domain.Substring (0, Domain.IndexOf ("/")); + + // Get hash of the current commit + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "rev-list --max-count=1 HEAD"; + Process.Start(); + CurrentHash = Process.StandardOutput.ReadToEnd().Trim (); + + + // TODO: This does not belong in this class... + // Watch the repository's folder + Watcher = new FileSystemWatcher (RepoPath); + Watcher.IncludeSubdirectories = true; + Watcher.EnableRaisingEvents = true; + Watcher.Filter = "*"; + Watcher.Changed += new FileSystemEventHandler(OnFileActivity); + Watcher.Created += new FileSystemEventHandler(OnFileActivity); + Watcher.Deleted += new FileSystemEventHandler(OnFileActivity); + + + // Call Fetch () every 30 seconds + BufferTimer = new Timer (); + Timer = new Timer(); + Timer.Interval = 30000; //TODO: Make this have get/set + Timer.Elapsed += new ElapsedEventHandler(Fetch); + Timer.Start(); + + +// TODO: uncomment when status checking is implemented +// Add (); + + } + + public void StartBufferTimer () { + int Interval = 3000; + if (!BufferTimer.Enabled) { + // Delay for a few seconds to see if more files change + BufferTimer.Interval = Interval; + BufferTimer.Elapsed += delegate (object o, ElapsedEventArgs args) { Add (); } ; + Console.WriteLine ("Waiting for more changes..."); + BufferTimer.Start(); + } else { + // Extend the delay when something changes + BufferTimer.Close (); + BufferTimer = new Timer (); + BufferTimer.Interval = 3000; + BufferTimer.Elapsed += delegate (object o, ElapsedEventArgs args) { Add (); } ; + BufferTimer.Start(); + Console.WriteLine ("Waiting for more changes..."); + } + } + + public void OnFileActivity (object o, FileSystemEventArgs args) { + WatcherChangeTypes wct = args.ChangeType; + if (!ShouldIgnore (args.Name)) { + Console.WriteLine(wct.ToString() + " '" + args.Name + "'"); + StartBufferTimer (); + } else { + // Console.WriteLine("[ignore] " + wct.ToString() + " '" + args.Name + "'"); + } + } + + public void Clone () { + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "clone " + RemoteOriginUrl; + Process.Start(); + // TODO: Add a gitignore file for *~ + } + + public void Add () { + Console.WriteLine ("Done waiting."); + BufferTimer.Stop (); + Console.WriteLine ("Staging changes..."); + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "add --all"; + Process.Start(); + // TODO: Format the commit message here + // TODO: Only commit if there are changes + Commit ("Stuff happened"); + } + + public void Commit (string Message) { + Console.WriteLine ("Commiting changes..."); + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "commit -m '" + Message + "'"; + ShowNotification ("Stuff happened", ""); + Process.Start(); + Fetch (); + Push (); + } + + public void Fetch () { + Timer.Stop (); + Console.WriteLine ("Fetching changes..."); + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "fetch"; + Process.Start(); + Merge (); + } + + public void Fetch (object o, ElapsedEventArgs args) { + Console.WriteLine ("Fetching changes..."); + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "fetch"; + Process.Start(); + Merge (); + } + + public void Merge () { + Timer.Stop (); + Watcher.EnableRaisingEvents = false; + Console.WriteLine ("Merging fetched changes..."); + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "merge origin/master"; + Process.Start(); + Process.WaitForExit (); + // TODO: Notify user with the last fetched commit + Watcher.EnableRaisingEvents = true; + Timer.Start (); + } + + public void Push () { + // TODO: Ping first, then push + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "push"; + Process.Start(); + Console.WriteLine ("Pushing changes..."); + Process.WaitForExit (); + } + + // Ignore folders, dotfiles, swap files and the like. + public bool ShouldIgnore (string s) { + if (s.Substring (0, 1).Equals (".") || + s.Contains (".lock") || + s.Contains (".git") || + s.Contains ("/.") || + Directory.Exists (Process.StartInfo.WorkingDirectory + "/" + s)) + return true; // Yes, ignore it. + else if (s.Length > 3 && s.Substring (s.Length - 4).Equals (".swp")) + return true; + else return false; + } + + // Can potentially be moved from this class as well + public void ShowNotification (string Title, string SubText) { + Notification Notification = new Notification (Title, SubText); + Notification.IconName = "folder-publicshare"; + Notification.Urgency = Urgency.Low; + Notification.Timeout = 3000; + + // Add a button to open the folder the changed file resides in +// Notification.AddAction(File, "Open Folder", + // delegate (object o, ActionArgs args) { + // Process.StartInfo.FileName = "nautilus"; + // Process.StartInfo.Arguments = "'" + Directory.GetParent (RepoPath + "/" + File) + "'"; + // Process.Start(); + // } ); + Notification.Show (); + } + +} + +public class SparklePonyWindow : Window { + + private bool Visibility; + + public SparklePonyWindow (Repository [] Repositories) : base ("Collaboration Folders") { + + Visibility = false; + SetSizeRequest (640, 480); + SetPosition (WindowPosition.Center); + BorderWidth = 6; + IconName = "folder-publicshare"; + + ListStore FoldersStore = new ListStore (typeof (Gdk.Pixbuf), typeof (string), typeof (string)); + string RemoteFolderIcon = "/usr/share/icons/gnome/16x16/places/folder-publicshare.png"; + + foreach (Repository Repository in Repositories) + FoldersStore.AppendValues (new Gdk.Pixbuf (RemoteFolderIcon), Repository.Name); + + TreeView FoldersView = new TreeView (FoldersStore); + FoldersView.AppendColumn ("", new Gtk.CellRendererPixbuf (), "pixbuf", 0); + FoldersView.AppendColumn ("", new Gtk.CellRendererText (), "text", 1); + + HBox AddRemoveButtons = new HBox (); + Button AddButton = new Button ("Add..."); + Button RemoveButton = new Button ("Remove"); + + AddRemoveButtons.PackStart (AddButton, true, true, 0); + AddRemoveButtons.PackStart (RemoveButton, false, false, 0); + + Process Process = new Process(); + Process.EnableRaisingEvents = false; + Process.StartInfo.RedirectStandardOutput = true; + Process.StartInfo.UseShellExecute = false; + + // TODO: fix hard coding, system independant + Process.StartInfo.WorkingDirectory = "/home/hbons/Collaboration/Deal"; + + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "log --pretty=oneline -20"; + Process.Start(); + + string Output = Process.StandardOutput.ReadToEnd().Trim (); + + ListStore LogStore = new ListStore (typeof (string), typeof (string), typeof (string)); + + foreach (string Message in Regex.Split (Output, "\n")) + LogStore.AppendValues ("", "Deal", "2 hours ago"); + + TreeView LogView = new TreeView (LogStore); + LogView.AppendColumn ("What?", new Gtk.CellRendererText (), "text", 0); + LogView.AppendColumn ("Where?", new Gtk.CellRendererText (), "text", 1); + LogView.AppendColumn ("When?", new Gtk.CellRendererText (), "text", 2); + + ScrolledWindow ScrolledWindow = new ScrolledWindow (); + ScrolledWindow.AddWithViewport (LogView); + ScrolledWindow.BorderWidth = 12; + + VBox LayoutVerticalLeft = new VBox (false, 0); + LayoutVerticalLeft.PackStart (FoldersView, true, true, 0); + LayoutVerticalLeft.PackStart (AddRemoveButtons, false, false, 0); + + LayoutVerticalLeft.BorderWidth = 12; + + VBox LayoutVerticalRight = new VBox (); + + // TODO: Fix this, it's hardcoded + + Label Label1 = new Label ("Remote URL:"); + Label1.UseMarkup = true; + Label1.SetAlignment (0, 0); + + Label Label2 = new Label ("ssh://git@github.com/hbons/Deal.git"); + Label2.UseMarkup = true; + Label2.SetAlignment (0, 0); + + + Label Label5 = new Label ("Path:"); + Label5.UseMarkup = true; + Label5.SetAlignment (0, 0); + + Label Label6 = new Label ("~/Collaboration/Deal"); + Label6.UseMarkup = true; + Label6.SetAlignment (0, 0); + + Button NotificationsCheckButton = new CheckButton ("Notify me when something changes"); + Button ChangesCheckButton = new CheckButton ("Synchronize my changes"); + + Table Table = new Table(6, 2, false); + Table.RowSpacing = 6; + + Table.Attach(Label1, 0, 1, 0, 1); + Table.Attach(Label2, 1, 2, 0, 1); + Table.Attach(Label5, 0, 1, 1, 2); + Table.Attach(Label6, 1, 2, 1, 2); + Table.Attach(NotificationsCheckButton, 0, 2, 3, 4); + Table.Attach(ChangesCheckButton, 0, 2, 4, 5); + + + LayoutVerticalRight.PackStart (Table, false, false, 24); + + + + HBox LayoutHorizontal = new HBox (false, 12); + LayoutHorizontal.PackStart (LayoutVerticalLeft, false, false, 0); + LayoutHorizontal.PackStart (LayoutVerticalRight, true, true, 0); + + Notebook Notebook = new Notebook (); + Notebook.AppendPage (LayoutHorizontal, new Label ("Folders")); + Notebook.AppendPage (ScrolledWindow, new Label ("Events")); + + + VBox LayoutVertical = new VBox (false, 0); + Button CloseButton = new Button (Stock.Close); + + HButtonBox DialogButtons = new HButtonBox (); + DialogButtons.BorderWidth = 6; + Notebook.BorderWidth = 6; + Button QuitButton = new Button ("Quit Service"); + QuitButton.Clicked += Quit; + DialogButtons.Add (QuitButton); + DialogButtons.Add (CloseButton); + + CloseButton.Clicked += delegate (object o, EventArgs args) { HideAll (); Visibility = false; }; + LayoutVertical.PackStart (Notebook, true, true, 0); + LayoutVertical.PackStart (DialogButtons, false, false, 0); + Add (LayoutVertical); + + } + + // General options: [X] Run at startup. [X] + + public void Quit (object o, EventArgs args) { + Application.Quit (); + } + + public void ToggleVisibility() { + if (Visibility) { + if (HasFocus) + HideAll (); + } else { + ShowAll (); + } + } + +} diff --git a/data/icons/hicolor/16x16/places/folder-publicshare.png b/data/icons/hicolor/16x16/places/folder-publicshare.png new file mode 100644 index 0000000000000000000000000000000000000000..ec131e294cfd6f7979b1e5a987a33ad75bb9e549 GIT binary patch literal 710 zcmV;%0y+JOP)+CthM}4h{>t(hr%+Apz5FAv9;#Glj&!#&ILT08voUCt*chb5Y}3ZF<5KyydqoM z8~MO5w$IGG_)rNTfk<_AHJ^4;r$yiQ$sA`WgFVi>kn%mW3Xq=XQCDBbe)=nK-p&C~Qxl`7`vyXY(}l&QWpcR_ z00!>fCNLVMG>%dltVPN&0I_I{zTN~*O2U`u{ET4^jGrAxe_kwjvU zWO5eYS4in1rHk(?lF3;Ti9zBGjY#R13|AUQ>i{7H(hV~@GC?$2#qiJ=g`&^g`~q|H z3lxez!$V_4qg9NKOd#DbI0B^uq*5A0Nx|V!x-WSd91}qYwf%B^{uYf*307Wf!bQjKw;M1&07*qoM6N<$g2rq;YXATM literal 0 HcmV?d00001 diff --git a/data/icons/hicolor/22x22/places/folder-publicshare.png b/data/icons/hicolor/22x22/places/folder-publicshare.png new file mode 100644 index 0000000000000000000000000000000000000000..52b7b1367ed253091ff6b9a6be46963403390ab9 GIT binary patch literal 940 zcmV;d15^BoP)n1*IjiHQ8O0Y_qfT zaX)<6$tGh8X)Qf)xR*2k^PhA7=gt{njNyKmbzfKkXKgb&HgZ%LF^(|qZE#D*=r<Ee)d%qK6~oaC%@cP#Y(H3>w3&y z-JG{$N0G-LdonkB^~#UO$3`|iH^zX#2i~1H`Oya{Vi_yy^%bHh-jrCWEYQ)hQ#`e2 zucNi5k$ECRR#PtJUxu%@nE9iYS&WEL849f&7VgUY{6$@59jz z6>DnMMVh|9@sJ=a`u82+k)GXKvPMzJXP-v-P5_O+X@rl=A(TUwnmK5AOO8#t=mT%S($Gqqk(tW?f_~X%h!Q^pG(DiDqXQb_>D#*pUHS_kVqN`u>XaFOr8A}fCKx>xNe@->}uWXwL#YK8yJlb;0Pg{ zS6?et|NLWicXxL;o|nh6Y=mWFSvIz9^Kf?uZ@u|8LI_q@>x7|?QYx7f3ZpejN#?F! z#~4)+LO2fKt}Nd=f9A~8P;c+kwq>nXdN-z&=E8*;wY*$E3%Cwo&&>S(g;Kh2Ztm|# z{}*dw&1Uo3rAt@70&D@ez)s+aWW5*r2bcwFg4SJjfDHHk57a;m$bSKUL2F`aoFp>< O0000S+O4g literal 0 HcmV?d00001 diff --git a/data/icons/hicolor/24x24/places/folder-publicshare.png b/data/icons/hicolor/24x24/places/folder-publicshare.png new file mode 100644 index 0000000000000000000000000000000000000000..15edfa5727a3002bfe8306837b2bf70e8f08764e GIT binary patch literal 978 zcmV;@11Rir5>Er}n=%$Sd6zTUg{ z9v3rxnP&z=TkC<#z4v_l&pG$pbFUH+ZYMdn75)Ek;I(eXC&pe?q9#$|x6xe@u`f+c zzW?csI8d!MI66MMJ}@x2!*yM(wTK8-EMhIST8$rn`o3bq`r{`~eDK3fWnir7@cn@K z%UkVt?dsp(|__4PHvFxmo8C@j(0xm!K_ z&?BC;mc}qxk;ZH-Q55c6{O$MSKzj$qXiB9Lm2x!!Zmc1UG)qf`e?N}~WnO>d#i_}+ z-W_j~fu&Sjrdp}ACJ)MCaNhy$>D#+4dKlLE=;IHM0!atQCdP(4yLNgjYbyx@&vSX= zu_x*2>7iKqqv3FSQn7s;z1D9(`}A|{xpU7ybcHaivAVL1h}{-Bo%Yd@-VE^iqE-v< z5~;CVScrw6fAJLncVx2+?(0tgot-_;M!5{Y&@%^PzU!sY+Qj>~lXav?`yHUv<^Zyp zEV*1h$ybV8E>AX-Z63%bKb;PUS~A#lpf#C}9e7?U9^GBtE^0V#3CXZC_*^X%r-s zTgi1i>h)^8R!X(i6>HjOAgD^YT+XCYK`c}%zRv7_>L4?xzXagG{ye^)q47>O`r`Vd zS+0~3OWdhm6Ucl1gch$$$gJQ2~JYJ};ptzJ8O>eS3gfB&Pd<7`HLBV>%_+_^cky1ITE z@Rd@=qtVvx+}zKf7-I((7XG~VrqG*ItyZsGxNzw+z@^zu3P=OHfd`uNtgEY)p}+A1Cl22-yt}ER$YA?@Bjb+07*qoM6N<$g4N8; Ap8x;= literal 0 HcmV?d00001 diff --git a/data/icons/hicolor/256x256/places/folder-publicshare.png b/data/icons/hicolor/256x256/places/folder-publicshare.png new file mode 100644 index 0000000000000000000000000000000000000000..8f73890a3684f2a7dc84695944163edd4ae89e6f GIT binary patch literal 47324 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 z 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 k8)5*+z}KOVyIbN~PV literal 0 HcmV?d00001 diff --git a/data/icons/hicolor/32x32/places/folder-publicshare.png b/data/icons/hicolor/32x32/places/folder-publicshare.png new file mode 100644 index 0000000000000000000000000000000000000000..c7a3cf0827dd9f360b1f97053a6bb34b0d7829cd GIT binary patch literal 1272 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 literal 0 HcmV?d00001